Introduction: 基于人脸识别的自动录播系统
在学校积极开展在线课程的同时,很多精彩的课程、讲座、习题课都无法用视频记录下来或是通过网络直播出去。在询问过学生电视台的工作人员后我们得知,造成这种情况的原因是学生电视台没有足够多受过培训的摄像师来满足这些录像直播需求。
目前市面上的录播系统、软件已经十分成熟,但现有的摄像设备均需要人工操作,这说明了在线课程、讲座无法大范围推广的瓶颈在于可以调用的人力资源的短缺。本项目由此出发,旨在设计一个可以自动、智能操控摄像设备同兼具录播功能的系统。
Step 1: 前期验证
我们用一个不需要调整驱动的摄像头进行前期的人脸识别、在线转播、机械控制的验证。如您所见,摄像头被固定在一个两自由度的舵机云台上,这一云台随后我们会介绍。
Step 2: 供电与连接
系统的额定电压为12V(后面用到的摄像头需要12V的电源),在本项目中使用的是航模锂电池。通过7805这一简单有效的稳压芯片为舵机和Arduino提供电压。Demo系统的连接情况如图所示。
Step 3: 人脸识别
我们使用的是OpenCV开源库中的Haar Cascade算法,它的识别率足够满足我们的需求。
Step 4: Demo效果
在Ubuntu下使用Python实现Haar Cascade算法、串口通讯、vlc调用。
Step 5: 新的摄像头和云台
上一版Demo中,舵机云台存在转速不分级,摄像头清晰度的问题。
现在使用了新的摄像头,但是随之而来的就是驱动的问题。在这里我们使用EasyCap DC60 采集卡,里面的芯片型号是Somagic,关于这个采集卡的驱动,在linuxtv这一网站上有详细的说明。
Step 6: 麦克、摄像头、云台
又找到一个功能更强大的摄像头了!通过485协议可以控制变焦和对角,配合301云台的效果一定更好!
Step 7: 项目原理
在一个现场中,摄像头采集到的视频通过采集卡转换为标准的video4linux视频流,在服务器上我们把这个视频流通过RTSP协议转发出去,客户端可以直接观看。同时运⾏行⼈人脸识别算法,控制机械云台的转动。
在人像追踪这部分,通过人脸识别我们可以得到人像的坐标和大小信息。我们通过这三个数值,操控云台和摄像头把人脸的位置和大小控制在一定范围内。现阶段通过闭环控制,由服务器通讯 Arduino操作云台,通过摄像头新采集到的数据做反馈。
Step 8: 项目推进
项目仍在推进中,希望加入更多的功能!