项目简介
本项目构建了一个基于佳能相机所捕获图像来移动相机的系统。系统能跟踪物体位置并移动相机,确保物体始终处于相机画面内。主要由三部分构成:由步进电机驱动、Arduino Uno控制的3D打印云台;通过USB连接相机、运行物体识别服务器程序(提供Python和C++两种实现)的树莓派;可通过网络连接树莓派、查看捕获帧和跟踪物体当前位置并选择感兴趣区域的笔记本或台式机配套应用程序。
项目的主要特性和功能
- 多语言实现:物体识别服务器程序有Python和C++两种实现,便于开发者按需选择,研究不同语言对性能的影响。
- 物体跟踪:利用OpenCV对用户选择的物体进行位置跟踪,支持CSRT、KCF和MIL等多种跟踪算法。
- 云台控制:通过Arduino Uno控制步进电机驱动的云台,依据物体位置移动和倾斜相机。
- 配套应用:提供桌面应用程序,可查看相机捕获的帧和跟踪物体的位置,选择感兴趣区域。
安装使用步骤
假设用户已经下载了本项目的源码文件。
1. 安装Arduino程序
- 打开Arduino IDE,使用库管理器安装以下库:
- AccelStepper
- TMCStepper
- 打开
microproccesor
目录下的Arduino程序,编译并上传到Arduino Uno。
2. 安装物体识别服务器(Python)
- 进入
raspi
目录,执行以下命令安装依赖:bash pip3 install -r requirements.txt
- 编辑
main.py
文件中的配置选项,如HEADLESS
、TRACKER
等。 - 使用Python 3解释器运行
main.py
文件:bash python3 main.py
- 在非无头模式下,使用热键T选择跟踪区域,A连接Arduino,Q退出程序。
3. 安装物体识别服务器(C++)
- 安装依赖:
- OpenCV 4:可通过Linux发行版的包管理器安装,或参考
install-opencv.sh
从源码安装。 - Boost ASIO:通过Linux发行版的包管理器安装。
- 进入
raspi
目录,使用cmake
和make
编译程序:bash cmake . make
- 直接运行生成的可执行文件。
4. 安装GUI配套应用程序
- 进入
companion
目录,执行以下命令安装依赖:bash pip3 install -r requirements.txt
- 编辑
companion.py
文件,指定服务器地址和类型。 - 使用Python解释器运行
companion.py
文件:bash python3 companion.py
- 使用热键T选择跟踪区域,A连接Arduino,Q退出程序。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】