1、Opencv DNN
1.1 opencv DNN
- OpenCV DNN github
- Deep Neural Networks (dnn module)(opencv dnn 教程)
-
ROS工程不使用ROS自带的OpenCV
1.2 opencv DNN 调用tensorflow
confidenceThreshold = 0.50
confidenceThreshold = 0.20
2、Tensorflow
3、行人目标识别
3.1 OpenCV HOG SVM
- Opencv之HOG特征与SVM相结合的人体检测
- 行人检测 基于 OpenCV 的人体检测
- 基于opencv的行人检测(支持图片,视频)
- opencv︱opencv中实现行人检测:HOG+SVM(二)(此文较好,综合评价,如何降低行人检测误识率)
直接使用,速度很慢,识别率低
3.2 OpenCV DNN
参见前面1.2
- OpenPose 基于OpenCV DNN 的多人姿态估计
- 基于OpenCV使用OpenPose进行多个人体姿态估计
- Tensorflow+OpenCV实战行人检测(笔记)
- 基于Tensorflow和Opencv的行人检测 细致
- 行人检测--OpenCV与TensorFlow SSD对比
![]() | ![]() |
3.3 DPM 行人检测
4、目标跟踪
4.0 原理
4.1 OPENCV Object Tracking
- 目标跟踪的深度学习方法与opencv下的KCF方法(有python代码)
- 代码参考(C++):opencv3使用KCF或TLD跟踪目标跟踪算法----KCF进阶(基于KCF改进的算法总结)
- opencv的目标跟踪算法(OpenCV Object Tracking)
- [OpenCV实战]14 使用OpenCV实现单目标跟踪(有各个方法评价)
4.2 CamShift目标跟踪
-
OpenCV视频分析与对象跟踪C++(三)CAMShift对象跟踪 颜色空间改到Lab,发现效果不错
- OpenCV2马拉松第10圈——直方图反向投影(back project)
如果速度慢,跟踪可以。
如果变化快或者突变,很容易丢失
CAMShift跟踪算法对于跟踪的目标,即使发生远近变换,形变,都能准确跟踪到,甚至跟踪目标离开了屏幕再回来也能继续跟踪到,
但是离开的期间也会产生 selection,所以这个时候的selection是不对的,当跟踪目标回到屏幕后也不是立即就察觉到,需要一定时间
so CAMShift无法判断目标是否离开屏幕,这段期间产生的误差如何解决?
同时CAMShift跟踪算法适合比较简单的图像,如果图像颜色数据很复杂,有很多大量与跟踪目标颜色重复的像素的话(也就是干扰很强),CAMShift效果就不太好了
4.3 光流目标跟踪
基于光流场分析的运动目标检测方法,不仅包含了被观察物体的运动信息,而且携带了三维结构的丰富信息,因此它不仅可以用于运动目标检测,还可以直接应用于运动目标跟踪,能够很精确的计算出运动目标的速度,同时在摄像机存在运动的情况下也能够检测出运动目标。而在实际的应用中,由于存在多光源、遮挡性、噪声和透明性等多方面的原因,光流场基本方程中的灰度守恒这个假设条件是得不到满足的,因此不能求解出正确的光流场,同时由于其采用的是迭代的求解计算方法,故需要的计算时间比较长,从而无法满足实时的要求,并且该方法受噪声的影响较大,因而该方法多适用于目标运动速度不大,图像噪声比较小的情况。
特征点跟踪,速度基本可以。如何结合目标跟踪?
4.4 kalman 滤波目标跟踪
- 目标跟踪学习笔记_5(opencv中kalman点跟踪例子)
-
学习OpenCV2——卡尔曼滤波(KalmanFilter)详解(各种例子综合)
-
无味卡尔曼滤波——非线性UKF-Matlab UKF无味卡尔曼滤波在自动驾驶车辆定位中的应用
- OpenCV3之卡尔曼滤波KalmanFilter例子魔改代码
- 从程序中学习UKF-SLAM 理论
- 无迹卡尔曼滤波(UKF)超详细解释 详细学习入门
- 2D UKF Design and Implementation
- Object Tracking with Sensor Fusion-based Unscented Kalman Filter 论文与代码 机器人轨迹
5、机器人跟随
ROS turtlebot_follower :让机器人跟随我们移动
ROS学习笔记(四) 先锋机器人跟随(跟随总结 2017年)