机器人视觉项目:视觉检测识别+机器人跟随(3)

目标:检测并跟随目标(人) on TX2

基本方案

嵌入式设备,计算资源有限,对算法的运行时间敏感。

  • detection: YOLOv3(-tiny)

  • tracking: KCF

当前状态

  1. YOLOv3在TX2上能跑到5fps,但存在偶尔漏检的情况。YOLOv3使用darknet。

  2. KCF虽然非常快,但很容易跟丢,对于目标形变(人的姿态变化)、目标移动较快、目标离开场景等情况,效果较差。KCF使用opencv contrib的实现。

工作内容

Detection

  1. 使用TensorRT移植YOLOv3,减少检测时间。

  2. 使用应用场景的数据,训练YOLO。

Tracking

  1. 改进特征,加入“人体”特征,同时要注意特征计算要很快。

  2. 多帧融合预测搜索范围。

Detection和Tracking的结合

  1. 结合的方法,一部分取决于两个算法的精度和速度。越好越快,结合的方式可以越简单。

RGBD

  1. 获取方法

    • Kinect,已测试

    • ZED, 未测试

  2. YOLO@RGBD

  3. KCF@RGBD

用pytorch实现yolov3模型

调试时发现,pytorch版本的代码和darknet相差很大。

发现原因:图像预处理时的resize,虽然都使用双线性插值,darknet自己实现的插值算法,我使用opencv的resize实现,计算的结果小数点第3位有很大差别,第2位有少许差别。由于输入不同,网络参数相同,另外网络结构的具体实现,也存在差异,这些共同导致了pytorch代码的输出,和darknet差别巨大。

解决办法:用pytorch重新训练yolov3,进行适度的参数调整,使得参数适应移植后的平台。

任何重现或者移植的工作,一定要实现学习过程,才是有意义的复现。

猜你喜欢

转载自blog.csdn.net/Synioe/article/details/82793113