本发明涉及一种基于深度摄像机的行人检测跟踪算法,特别涉及应用于安防系统视频监控中行人的检测跟踪方法。
背景技术:
随着深度摄像机的普及,能够实时的同步获取稳定的彩色图像觉深度图像已经成为现实。行人检测是计算机领域的一个重要分支,也是智能监控系统的主体,基于深度摄像机的行人检测跟踪方法越来越成为人们的研究重点。目前已经存在很多优秀的行人检测算法,但大都存在一些不足,主要体现在:行人位置不准确,检测得到的行人框有时偏大,有时偏小;存在一定的误检测,不是行人的区域被误判为行人;行人位置不稳定,往往是由检测器造成的;运行速度慢,不能满足实时性的要求。
为了克服以上技术不足,本发明提出了一种基于深度摄像机rgb-d图像的行人检测跟踪。
技术实现要素:
本发明的目的在于提供了一种基于深度摄像机的行人检测跟踪方法,其特征在于,包括步骤:
步骤101:读取视频流的一帧图像,并对图像的帧计数,计数为fn,每读取一帧fn加1,并判断fn能否被常量整除,如果能整除则进入步骤102,否则进入步骤107;
步骤102:使用聚合通道特征法做行人检测,其中选取yuv颜色通道+梯度幅值通道+梯度方向通道组合成聚合通道特征;检测结果为一个矩形序列pr[n],其中n为检测到的行人的个数,pr[n]表示检测结果的第n个行人的矩形位置,然后进入步骤103;
步骤103:深度图像去噪声,先对rgb-d的d通道进行腐蚀操作,腐蚀半径为r,然后在进行膨胀操作,膨胀半径也为r,此操作可去除半径小于或等于r的噪声,并且对非噪声区域造成最少的影响,以便于更好的从深度图像中提取出行人的轮廓,然后进入步骤104;
步骤104:修正行人位置,在rgb_d的d通道找到pr[n]对应的位置,然后使用canny算子找到图像的边缘,也就是行人的边缘轮廓c[n],然后找c[n]的最小外接矩形brect,brect即为修正后行人的位置,然后用brect替换pr[n],进入步骤105;
步骤105:去除误检测,在深度图像中,pr[n]默认为行人的位置,找到pr[n]的中心点center,然后以center作为漫水填充的种子点,一直向四周填充,填充的条件是相邻像素之间的深度值之差应当不低于阈值ther_d;漫水区域的面积为m_area,计算m_area与pr[n]的面积比值,如果比值过大,或者过小则判定位置pr[n]为误检测,然后将其删除,进入步骤106;
步骤106:目标匹配,目标匹配充分利用图像的时空信息,根据图像的相邻两帧之前只存在微小的运动这一特性;
步骤107:目标跟踪,以t_list为起点,开始对目标进行跟踪,直到fn能否被所述常量整除,进入步骤102,开始进行行人检测。
优选地,步骤107的具体方法为:
步骤201:对于跟踪目标t_list[n],以其中心为原点,将眼矩形放大到原来的2倍,结果产生矩形p_rect,进入步骤202;
步骤202:提取跟踪目标t_list[n]的“指纹”f_phash,然后进入步骤203;
步骤203:以p_rect的左上角为起点,以t_list[n]的大小为大小,每次向右移动t_list[n]的宽度除以10或向下移动t_list[n]的高度除以10,得到的矩形提取指纹,并找到指纹相识度最大的矩形s_rect,然后进入步骤204;
步骤204:s_rect即为跟踪结果,用p_rect更新t_list[n]。
优选地,步骤202的“指纹”的具体方法为:
步骤301:缩小图像尺寸,将原始图像缩放到32*32;
步骤302:简化色彩,如果是将rgb图像,则将其转化为灰度图像;
步骤303:对图像进行dct变换;
步骤304:缩小dct图像,只保留左上角8*8的矩阵;
步骤305:计算8*8dct图像的像素平均值;
步骤306:对于8*8dct图像的每个点的,如果像素值大于像素平均值,则此像素点编码为1,否则编码为0;最终生成的编码序列即为图像的指纹。
本发明能适用于深度摄像机,行人检测的位置准确稳定,跟踪平稳,误检测少,且运行速度快,完全可以满足实时性要求。
应当理解,前述大体的描述和后续详尽的描述均为示例性说明和解释,并不应当用作对本发明所要求保护内容的限制。
附图说明
参考随附的附图,本发明更多的目的、功能和优点将通过本发明实施方式的如下描述得以阐明,其中:
图1示出了根据本发明的基于深度摄像机的行人检测跟踪方法的流程图;
图2示出了根据本发明的目标跟踪方法流程图;
图3示出了根据本发明的生成指纹方法流程图。
具体实施方式
通过参考示范性实施例,本发明的目的和功能以及用于实现这些目的和功能的方法将得以阐明。然而,本发明并不受限于以下所公开的示范性实施例;可以通过不同形式来对其加以实现。说明书的实质仅仅是帮助相关领域技术人员综合理解本发明的具体细节。
在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
为了便于本领域普通技术人员理解和实施本发明,下面结合附图对本发明作进一步的详细描述。
图1示出了根据本发明的适基于深度摄像机的行人检测跟踪方法的流程图;
步骤101:读取视频流的一帧图像,并对图像的帧计数,计数为fn,每读取一帧fn加1,并判断fn能否被常量,即skip整除,如果能整除则进入步骤102,否则进入步骤107。
步骤102:本发明使用聚合通道特征法做行人检测,其中选取yuv颜色通道+梯度幅值通道+梯度方向通道组合成聚合通道特征。检测结果为一个矩形序列pr[n],其中n为检测到的行人的个数,pr[n]表示检测结果的第n个行人的矩形位置。然后进入步骤103。
步骤103:深度图像去噪声,先对rgb-d的d通道进行腐蚀操作,腐蚀半径为r,然后在进行膨胀操作,膨胀半径也为r,此操作可去除半径小于或等于r的噪声,并且对非噪声区域造成最少的影响,以便于更好的从深度图像中提取出行人的轮廓,然后进入步骤104。
步骤104:修正行人位置,在rgb_d的d通道找到pr[n]对应的位置,然后使用canny算子找到图像的边缘,也就是行人的边缘轮廓c[n],然后找c[n]的最小外接矩形brect,brect即为修正后行人的位置,然后用brect替换pr[n],进入步骤105。
步骤105:去除误检测,漫水填充非常适用于深度图(rgb_d的d通道),可充分利用深度图的最大的特征:内部连续。在深度图像中,pr[n]默认为行人的位置,找到pr[n]的中心点center,然后以center作为漫水填充的种子点,一直向四周填充,填充的条件是相邻像素之间的深度值之差应当不低于阈值ther_d。漫水区域的面积为m_area,计算m_area与pr[n]的面积比值,如果比值过大,或者过小则判定位置pr[n]为误检测,然后将其删除,进入步骤106。
步骤106:目标匹配,目标匹配充分利用图像的时空信息,根据图像的相邻两帧之前只存在微小的运动这一特性。
令t_list[n]为跟踪列表,pr[n]逐个比对t_list[n],如果pr[n]与t_list[n]的重合度达到80%,则进行相似度比对,否则把pr[n]直接加入到跟踪列表t_list[n],作为新的跟踪目标。
对于重合度达到80%的目标,先将图像的rgb通道进行灰度化处理,生成单通道的灰度图像m_gray。从m_gray中扣取处跟踪图像列表tm_list[n]。同时从m_gray中扣取处行人检测的结果prm[n]。并且将tm_list[n]和prm[n]缩放到同一大小(m_w*m_h)。
将prm[n]在点(x,y)及其存在的周围(x-1,y-1),(x-1,y),(x-1,y+1),(x,y-1),(x,y+1),(x+1,y-1),(x+1,y),(x+1,y+1)的像素值,与tm_list[i]在点(x,y)及存在的周围的像素值做差,如果其中的至少有一处的差值小于20,则记点(x,y)为相似点。依次计算点(x,y+1)…直到整幅图像遍历结束,得出prm[n]与tm_list[i]相似点最多的i,相似点个数为s[i],如果s[i]小于相识度匹配阈值,则把pr[n]加入到跟踪列表。否则记为prm[n]与tm_list[i]为同一目标。
步骤107:目标跟踪,以t_list为起点,开始对目标进行跟踪,直到fn能否被skip整除,进入步骤102,开始进行行人检测。其详细步骤如图2,后面会有详细的描述。
图2示出了根据本发明的目标跟踪方法流程图;
步骤201:对于跟踪目标t_list[n],以其中心为原点,将眼矩形放大到原来的2倍,结果产生矩形p_rect。进入步骤202。
步骤202:提取跟踪目标t_list[n]的“指纹”f_phash,“指纹”的详细提取步骤如图3,后面会有详细的描述。然后进入步骤203。
步骤203:以p_rect的左上角为起点,以t_list[n]的大小为大小,每次向右移动t_list[n]的宽度除以10或向下移动t_list[n]的高度除以10,得到的矩形提取指纹,并找到指纹相识度最大的矩形s_rect,然后进入步骤204。
步骤204:s_rect即为跟踪结果,用p_rect更新t_list[n]。
图3示出了根据本发明的生成指纹方法流程图。
步骤301:缩小图像尺寸,将原始图像缩放到32*32。
步骤302:简化色彩,如果是将rgb图像,则将其转化为灰度图像。
步骤303:对图像进行dct变换。
步骤304:缩小dct图像,只保留左上角8*8的矩阵。
步骤305:计算8*8dct图像的像素平均值。
步骤306:对于8*8dct图像的每个点的,如果像素值大于像素平均值,则此像素点编码为1,否则编码为0。最终生成的编码序列即为图像的指纹。
本专利能适用于深度摄像机,行人检测的位置准确稳定,跟踪平稳,误检测少,且运行速度快,完全可以满足实时性要求。
结合这里披露的本发明的说明和实践,本发明的其他实施例对于本领域技术人员都是易于想到和理解的。说明和实施例仅被认为是示例性的,本发明的真正范围和主旨均由权利要求所限定。