功能概述
SpireCV-SDK是一个专为智能无人系统打造的边缘实时感知SDK库。该库能够控制无人机的相机和吊舱,包括拍照、录像、推流等功能,并可以保存视频和进行推流。此外,SpireCV-SDK还集成了目标检测、识别与跟踪功能,以实现更智能的无人系统控制。本文将详细介绍如何利用SpireCV进行吊舱控制,并提供相关算法原理及操作步骤。
注:
- 控制Amov的吊舱产品,如G1、Q10等,具体功能实现详情,请在公众号内搜索相关文章或者关注阿木实验室官网。
- 若要使用SpireCV-Ros接口,请先跳转到ros通信部分,进行ros环境配置。
目标检测+点击跟踪
SpireCV-Sdk提供了基于深度学习的目标检测算法和基于图像处理的目标跟踪算法。通过实时检测图像中的目标物体并生成检测结果,同时通过点击图像中的目标物体实现跟踪,为后续的吊舱控制提供位置信息。此外,SpireCV-Sdk还集成了吊舱控制算法,可实现半自动搜寻功能。通过设置搜索区域和搜索条件,吊舱可以自动在目标区域内进行搜索,并实时反馈搜索结果。
检测跟踪原理
目标检测基于深度学习模型来实现,SpireCV-Sdk使用预训练的深度学习模型来识别图像中的对象,并根据这些对象的特征来对其进行分类和定位。其原理是通过卷积神经网络(CNN)对图像进行前向传播,提取出图像的特征,并使用这些特征来预测图像中每个像素的类别。一旦目标被检测到,SpireCV-Sdk会将其位置、大小、旋转角度等信息提取出来。
跟踪算法原理
点击跟踪是SpireCV-Sdk的高级功能之一,它基于目标检测和图像处理技术来实现。使用目标检测算法来识别图像中的对象,并根据这些对象的特征来对其进行分类和定位。并根据提取出每个对象的轮廓信息来计算出每个对象的形状和大小。一旦目标被检测到并定位,SpireCV-Sdk会根据用户的点击位置和目标的位置来计算出点击点和目标之间的距离和角度等信息。
一、原理说明
1、Nanotrack原理
Nanotrack算法是一种基于深度学习的目标跟踪方法,通过在每一帧中搜索与目标模板最匹配的区域来定位目标。它是一个轻量级的高速跟踪网络,主要指SiamBAN和LightTrack。它适合部署在嵌入式或移动设备上。事实上,它可以在NVIDIA Jetson Orin NX上以 > 60FPS的速度运行。
2、Nanotrack算法结构图
二、算法对比实验
下表对比实验表明,NanoTrack算法在跟踪数据集上具有良好的性能。
操作步骤
1.# G1吊舱权限设置
ls /dev/ttyUSB*
sudo chmod 777 /dev/ttyUSB*
2.# 配置吊舱网络
打开终端,输入ping 192.168.2.64 ,检测吊舱是否连接成功。
3.# 运行demo
cd <path to SpireCV/build>
./GimbalClickedTracking
执行命令启动demo程序。通过点击鼠标左键选择目标物体并实现跟踪。
Ros通信
ROS接口编译及调用:ROS(Robot Operating System)是一个开源的机器人操作系统,提供了丰富的功能和工具,方便开发者进行机器人控制和数据处理等方面的开发。SpireCV-Sdk提供了ROS接口编译和调用的功能,开发者可以使用ROS提供的工具和功能来扩展SpireCV-Sdk的功能和应用场景。
接口编译
1.首先确认是否安装SpireCV SDK,参考:SDK安装
2.ROS安装(可选择一键安装或者官网安装)
2.1一键安装
wget http://fishros.com/install -O fishros && . fishros
注:参照提示安装ROS1
2.2官网安装:
安装ROS,根据Ubuntu系统版本自行选择(链接打开较慢,请耐心等待)
1.Ubuntu1804
2.Ubuntu2004
3.执行如下命令
#下载SpireCV-ros目录
git clone https://gitee.com/amovlab1/spirecv-ros.git
cd spirecv-ros
chmod +x build.sh
./build.sh
# 添加到自动执行
echo "source devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
4.接口调用
使用如下命令启动ROS接口:
roslaunch spirecv_ros gimbal_track.launch
注:gimbal_track.launch文件在SpireCVROS的add-lgimbal分支下