论文部分内容阅读
目标检测是自动驾驶、人脸检测、视频监控等不同应用领域的一项重要任务。虽然最新研发的一些图像和视频实时定位和识别技术可以保证较高的识别精度和检测速度,但目前大多数深度学习应用程序只能在服务器或台式电脑上运行。Android平台不仅可以通过摄像头捕捉图像、视频,还可以检测动物的面部。考虑到目前有很多移动计算设备,本文实现了基于Android设备的目标检测算法的牛脸检测和识别应用。由于现阶段的移动设备基本都可以达到深度研究的计算需求,这使得在Android设备上运行目标检测成为可能。本文中提到的应用程序能够实时识别和检测多头牛的面部。为这个项目中选择的模型的速度进行了优化,因为代码的实时性对工作速度的影响不容小觑。我使用TensorFlow训练了SSD-MobileNet-V1模型。TensorFlow提供了一个预先训练的模型为检测到的图像绘制边框,并使用跟踪代码进行目标跟踪。SSD-MobileNet模型可以大大减少参数的数量,达到更高的精度。SSD网络是一种回归模型,它利用不同卷积层的特征进行分类回归和边框回归。开发MobileNet网络是为了在有限的硬件条件下提高深度学习的实时性。MobileNet和SSD的结合使得牛的检测和识别变得非常准确快速。该模型包含四个部分:用于导入目标图像的输入层、用于提取图像特征的MobileNet基网络、用于分类回归和边框回归的SSD以及用于导出检测结果的输出层。对于数据集,使用7444张图像数据集训练了一个效果好,精度高的模型。在这收集的数据集中,包含256头牛的面部图像,每头牛大约40-50张图像。数据集包含训练数据集和测试数据集两部分。训练过程中,利用Nvidia GTX 1060进行了243000次迭代,大约用了4天的时间。经过训练,模型损失下降到0.410,精度上升到0.95。所有牛类别的平均精度均值(total mAP)为96-100%。检测与识别过程采用两种方法实现,分别用Android camera(Galaxy S9)和PC上的TensorFlow目标检测从精度和检测速度两个方面对检测与识别性能进行评估。实验结果表明,该方法大大提高牛脸检测精度和识别效率。作为参考,该模型在训练过程中使用了Intel i5-4590 CPU@3.30GHZ x4所有核心的80-100%。