论文部分内容阅读
随着计算机视觉领域的快速发展,大量机器学习算法被用于图像分析和处理,其中人脸检测技术因其广泛的应用领域而备受关注。本文将以人脸检测算法为基础实现一个完整的前端视频人脸检测系统,系统的功能包括实时视频捕获、传输、人脸检测、误检过滤以及人脸图片去重、编码和上传。本系统以基于AdaBoost的NPD(Normalized Pixel Difference)人脸检测算法为研究对象,并对其进行了改进和优化,最终在高性能、低功耗的多核DSP平台上实现。实现整个系统的主要工作包括算法研究和系统构建两个方面。在算法方面,首先介绍了基于AdaBoost的人脸检测算法的总体思路、基本原理以及常用人脸特征表示。然后利用人脸检测算法评价标准对比了部分常用检测算法的性能。最后选择对基于AdaBoost的NPD人脸检测算法进行研究和改进。一方面通过重新训练分类器和叠加眼睛检测过滤非人脸来降低算法误检率。另一方面对检测算法的深层二次树结构的分类器进行了分析,并通过将原始数据重构为满二叉树来提高算法执行效率。另外由于视频的连续性导致系统捕获的人脸中存在大量近似重复的图片,因此对图片去重算法进行了研究。在对比了多种特征之后选择利用LBP特征实现人脸图片去重算法。在系统构建方面,本文以DM8168多核DSP平台为硬件基础,利用McFW软件开发框架构建视频链路实现视频的捕获、预处理和传输。人脸检测算法在进行了仿真和优化之后移植到DSP核实现视频检测。另外为了实现系统需求,对系统进行了完善和改进。首先利用运动目标检测算法提取运动目标候选区域,并在目标区域上做人脸检测。该方法通过过滤一部分背景区域来提高系统实时性,并且在一定程度上减少了由背景图像带来的误检。其次本系统通过核间通信机制将人脸数据从DSP核发送到ARM核,并在ARM核实现人脸图片去重、jpeg编码和上传服务器的功能。在开发过程中从两个方面对算法性能进行测试和对比。一是利用FDDB数据库和基准测试算法在大量图片上的总体检测性能。二是为了方便对比算法在视频上的检测性能,在PC上实现了一个视频人脸检测测试工具。该工具能够对视频中的人脸进行标记,并利用FDDB的基准判断漏检和误检。对视频执行人脸检测算法之后可以获取漏检数量、误检数量、执行时间等信息。