美文网首页
多目标卡尔曼滤波器物体追踪

多目标卡尔曼滤波器物体追踪

作者: 幽并游侠儿_1425 | 来源:发表于2019-07-16 02:48 被阅读0次

一、canny算子滤波求边缘

https://blog.csdn.net/MoreWindows/article/details/8239625

void cvCanny(

  const CvArr* image,

  CvArr* edges,

  double threshold1,double threshold2,

  int aperture_size=3

);

函数说明:

第一个参数表示输入图像,必须为单通道灰度图。

第二个参数表示输出的边缘图像,为单通道黑白图。

第三个参数和第四个参数表示阈值,这二个阈值中当中的小阈值用来控制边缘连接,大的阈值用来控制强边缘的初始分割即如果一个像素的梯度大与上限值,则被认为是边缘像素,如果小于下限阈值,则被抛弃。如果该点的梯度在两者之间则当这个点与高于上限值的像素点连接时我们才保留,否则删除。

第五个参数表示Sobel 算子大小,默认为3即表示一个3*3的矩阵。Sobel 算子与高斯拉普拉斯算子都是常用的边缘算子,详细的数学原理可以查阅专业书籍。

二、提取轮廓

用到的函数 cv2里面的cv2.findcontours

第四个参数:int型的mode,定义轮廓的检索模式:

取值一:CV_RETR_EXTERNAL只检测最外围轮廓,包含在外围轮廓内的内围轮廓被忽略

第五个参数:int型的method,定义轮廓的近似方法:

           取值一:CV_CHAIN_APPROX_NONE 保存物体边界上所有连续的轮廓点到contours向量内

           取值二:CV_CHAIN_APPROX_SIMPLE 仅保存轮廓的拐点信息,把所有轮廓拐点处的点保存入contours

                   向量内,拐点与拐点之间直线段上的信息点不予保留

           取值三和四:CV_CHAIN_APPROX_TC89_L1,CV_CHAIN_APPROX_TC89_KCOS使用teh-Chinl chain 近

                   似算法

遇到错误:ValueError: not enough values to unpack (expected 3, got 2)

参考网站:https://blog.csdn.net/miao0967020148/article/details/88623631

解决办法:

OpenCV旧版,返回三个参数:

im2, contours, hierarchy = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

要想返回三个参数:

把OpenCV 降级成3.4.3.18 就可以了,在终端输入pip install opencv-python==3.4.3.18

OpenCV 新版调用,返回两个参数:

 contours, hierarchy = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

三、提取圆心

这里用到这个函数cv2.minEnclosingCircle(cnt)

检查方法:圆心画图画到图上检查。

参考网站:https://www.cnblogs.com/skyfsm/p/6897313.html

circle—画圆形

函数原型:circle(img, center, radius, color, thickness=None, lineType=None, shift=None)

img:在img上绘图;

center:圆心;例如:(0,0)

radius:半径;例如:20

color:线的颜色;例如:(0,255,0)(绿色)

thickness:线的粗细程度,例如:-1,1,2,3…

其它参数默认即可。

四、debug代码

1.细胞消失的情况:

这一段要改:不是删除轨迹,而是增加轨迹。

if len(del_tracks) > 0: # only when skipped frame exceeds max

            for id in del_tracks:

                if id < len(self.tracks):

                    del self.tracks[id]

                    del assignment[id]

                else:

                    dprint("ERROR: id is greater than length of tracks")

相关文章

  • 多目标卡尔曼滤波器物体追踪

    一、canny算子滤波求边缘 https://blog.csdn.net/MoreWindows/article/...

  • 文科生也能懂的卡尔曼滤波理论小释

    纪念卡尔曼滤波器发明60周年 零数学基础 最近我想写点关于卡尔曼滤波器的科普材料,一查今年恰好是卡尔曼博士发表他那...

  • 图文并茂,卡曼滤波

    ​卡尔曼滤波是如何工作? 看图说话! 我务必向大家介绍卡尔曼滤波器(Kalman Filter),因为它之所能, ...

  • 【Intro2SDC】卡尔曼方程参考

    卡尔曼方程参考 卡尔曼滤波器方程 变量定义 - 状态向量 - 状态转移矩阵 - 误差协方差矩阵 - 过程噪声协方差...

  • 卡尔曼滤波器 opencv

    卡尔曼滤波器 opencv http://blog.csdn.net/akunainiannian/article...

  • 深入理解互补滤波器

    低通滤波器:滤掉高频噪声高通滤波器:滤掉低频噪声互补滤波器:滤掉部分高频噪声和部分低频噪声卡尔曼滤波器:动态版本的...

  • 卡尔曼滤波器

    姓名:李嘉蔚学号:16020520034 【嵌牛导读】:本帖讲一讲如何直观的理解卡尔曼滤波器,因为著名的五大公式一...

  • 卡尔曼滤波器

    是一种滤波算法 应用场景:传感器数据融合与状态估计。比如你有一个加速度计,又有陀螺仪或GPS 。假设当前状态值可靠...

  • 卡尔曼滤波器

    简单的insignt 方程中,下标上的k是状态。在这里我们可以将其视为离散的时间间隔,例如k=1表示1ms,k=2...

  • 源码阅读:使用Cartographer进行毫米波SLAM(番外篇

    老版本的滤波器用卡尔曼滤波 ,也就是做位姿预估的时候用卡尔曼 新版本改成位姿差值器 有些新特性 common 普...

网友评论

      本文标题:多目标卡尔曼滤波器物体追踪

      本文链接:https://www.haomeiwen.com/subject/fufeqctx.html