APP下载

基于嵌入式Linux环境下OpenCV的人脸检测跟踪系统研究

2019-12-05翟岁兵

科技风 2019年31期

翟岁兵

摘 要:在嵌入式Linux环境下使用OpenCV网络摄像机解决了不受控制程序中自动面部检测和跟踪的问题,检测到的面部与相应的人和轨迹相关联。现实场景和实时限制的动态特性使我们的任务变得复杂。与之前使用广角相机和OpenCV混合的工作不同,我们探索了单个OpenCV相机可以预期的限制。在缩小模式下检测并跟踪行人,然后使用调度程序选择要放大的人。放大后,我们回到广域模式,解决人与人,面对面和面对面数据关联问题。在挑战室内不受控制的条件下的广泛实验证明了所提出的系统的有效性。

关键词:嵌入式Linux环境;人脸检测跟踪;OpenCV

1 简介

本文介绍了一种全自动OpenCV人脸检测和跟踪系统,该系统非常适合真实场景中的这些挑战。据我们所知,所提出的方法是第一个使用单个OpenCV摄像机解决高分辨率人脸图像与人和轨迹的关联。相机以缩小模式开始,检测并跟踪行人,根据调度程序放大下一张脸,以高分辨率捕捉脸部图像,然后缩小。然后,它解决了人与人,面对面和面对面的关联问题。最后,记录高分辨率面部以及相应的人和轨迹。

2 基于嵌入式Linux环境下OpenCV人脸跟踪系统

我们提出的系统有两种模式,缩小模式和放大模式。我们从OpenCV摄像机接收图像序列,并在这两种模式之间切换,以便在远场场景中捕捉来自多个人的面部。

在缩小模式下,如果观察对象的任务尚未开始,我们会从常规CCTV摄像机中检测和跟踪图像序列中感兴趣的对象。然后觸发摄像机调度模块以确定调度并基于其状态信息为每个对象分配资源。根据从摄像机调度获得的有序列表,OpenCV摄像机通过加权循环方法依次更接近地查看每个对象。每当我们回到缩小模式时,我们将当前帧与存储的列表相关联,直到整个过程完成。

摄像机调度模块。在从跟踪中获得每个对象的状态信息之后,然后触发相机调度模块以确定调度并分配资源以观察视图中的每个对象。由于视野中的人数多于摄像机的数量,因此不希望摄像机在他/她整个停留在场景期间花费所有资源仅观察一个人而忽略所有其他人。这里,考虑加权循环方法。摄像机依次观察每个对象,并将剩余的时间用于放大模式和缩小模式之间。

在放大模式下执行面部检测和关联。

3 实验结果与分析

我们在实验中使用现成的索尼OpenCV网络摄像机SNC-RZ50N。该相机提供大范围的平移角度(-170°→+170°),倾斜角度(-90°→+25°)和大变焦比(26倍光学)。接收640×480图像的最大帧速率为30 fps。我们在室内不受控制的场景中进行了长达30米的实验。我们已将系统安装在非合作科目走过的走廊中。挑战在于每个受试者的观察期很短,通常为5秒,这意味着放大操作必须快速进行。

在连续运行五个小时的过程中,我们的系统可以检测并跟踪47人。在跟踪的47人中,有21人正朝着包含脸部图像的相机移动。我们的系统成功捕获了21个人的19个不同面孔。19个面与相应的轨迹相关联。选择要放大的对象和面对关联的过程,跟踪多个人。人们的数字表示根据调度程序放大的顺序。选择放大的人用蓝色矩形中突出显示。被跟踪的人和相关的面部分别用相同的颜色标记。

在关联模块中,最佳分配由OpenCV算法解决。如果两个检测响应之间的距离大于阈值,我们拒绝该分配。当在放大模式中检测到面部时,执行面对面关联。每当相机缩放到广域模式时执行人对人关联,而如果检测到的脸部没有与缩小模式中的任何人相关联,则执行面对面关联。

采用多目标跟踪中的度量,对象纯度和ID切换来验证关联模块的有效性。对象纯度(OP)定义为检测到的面部/人与模块正确关联的帧与包含面部/人的帧的总数的比率。ID开关(IDS)记录面部/人员更改其ID的总次数。值越高,OP的性能越好;值越低,IDS的性能越好。结果总结在下表中。

4 结论

我们提出了一种新颖的实时系统,使用OpenCV摄像头获取高分辨率人脸。面部与相应的人和轨迹相关联。我们已经在各种真实的室内和室外场景中验证了我们的方法。使用OpenCV摄像机进行实时物体检测,跟踪和关联远未解决。我们绝不会声称在这里完全解决了它,还有许多工作要做,我们未来的工作将集中在改进现有系统并将当前系统扩展到多个摄像机。

参考文献:

[1]梁路宏,艾海舟.基于人脸检测的人脸跟踪算法[J].计算机工程与应用,2001,37(17):42-45.

[2]胡一帆,胡友彬,李骞,等.基于视频监控的人脸检测跟踪识别系统研究[J].计算机工程与应用,2016,52(21):1-7.

项目:陕西省教育厅专项科学研究计划(基于Linux与OpenCV的教室人数检测统计系统研究18JK0933)