论文部分内容阅读
随着时代的发展和科技的进步,可以应用于录像的设备越来越多,常见的设备有摄像头、数码摄像机、手机等。这些设备已经广泛应用于各个领域,比如,视频监控、大型会议拍摄、旅游摄影等等,它们已经成为了人们生活和工作中不可或缺的一部分。但是常见的拍摄方式一般都是固定于一个特定的拍摄方向或者是需要人为的控制拍摄方向,这些拍摄的方式都不具有跟踪录像的效果。因此针对于如何能跟踪录像这个问题的研究,本文使用Android手机为录像设备、以演讲者单人脸对象为录像跟踪目标,结合人脸检测技术,设计并实现了“演讲者跟踪”系统。本系统主要包括Android手机客户端、云台部分、服务器端和PC网页客户端这四个部分。Android手机客户端实现的功能是可以在手机录制视频的时候检测出人脸位置,并将控制字指令通过手机蓝牙发送给云台部分。云台部分实现的功能是根据控制字指令控制手机的转动,从而达到跟踪人脸的效果。服务器端实现的功能是与Android手机客户端和PC网页客户端进行数据交互。PC网页客户端实现的功能是通过页面方式管理从Android手机客户端上传到服务器的照片和视频文件。本系统主要工作如下:(1)在Android手机客户端,分析现有的人脸检测技术,以及可以在Android手机客户端上实现的人脸检测方法,通过分析和对比研究,从中选取利用Android 5.0之后新出的Camera2 API+MediaRecoder的方法实现视频录制和人脸检测,其中MediaRecoder实现视频录制的功能,而Camera2实现在手机视频录制的过程中检测出每帧视频数据的face数据,根据得到的face数据进行分析和转换,再利用增加SurfaceView的方式,将每帧视频中人脸的位置框出来,最后根据框出人脸位置的中点坐标进行计算,形成云台控制字,再通过手机蓝牙将控制字指令发送给云台。(2)在云台部分,采用舵机云台来跟踪人脸。云台由一个STM32单片机最小系统,一个蓝牙收发模块和2个舵机的方式组成。其中蓝牙模块负责接收从Android手机客户端发送过来的控制字指令,然后转交给STM32单片机处理,STM32单片机通过输出PWM波的方式控制2个舵机,实现云台的上下左右四个方向的转动。由于Android手机是放置在舵机的支架上,因此,手机可以通过云台的转动而实现转动,从而达到跟踪人脸的效果。(3)服务器端采用SSH框架+MySQL数据库+Tomcat服务器方式来实现。服务器端实现的功能是与Android手机客户端,以及PC网页客户端进行数据交互。在Android手机客户端完成视频录制,或者拍照后,可以选择将已经存储在Android手机里的视频文件或照片上传到服务器。(4)PC网页客户端利用JSP技术+SSH框架中的Struts2标签的方式来实现。PC网页客户端主要实现功能是通过页面方式管理服务器中的视频或照片文件,并实现对这类文件进行下载或删除等操作。(5)分别对Android手机客户端、云台部分和PC网页客户端这三部分的各项功能进行了详细的综合测试,测试结果达到了本系统的设计要求。