又到研究生毕业季,大家都在忙着论文的撰写。闲来无事,和同门一起看了下网上某外国友人共享的一个实时人脸检测的MATLAB程序,本非我专业,只不过看到那个效果确实蛮有意思的,所以特意卸载了用了好久的2012a版本,重新装了一个9G多的2014a 版本的MATLAB。
话说MATLAB是越来越大,记得大一那会老师上课时说这个软件有1G大,很占空间,当时听了好生诧异。没想到几年不到,随着存储和电脑性能的提升,这个软件也是成倍的增长。不过话说回来,功能却是越来越强大了。
首先下载一个WEBcamera的插件,现在的软件都效仿apple的账户管理,非得要注册一个mathwork的账号才能下载安装该插件,无奈注册安装。。。
之后运行友人所共享的程序,果然能够完美运行。实时的获取摄像头视频然后检测其中的人脸。但是美中不足的有二:
1. 关闭程序之后webcam的调用仍然存在,需要清除内存空间,才能够关闭。
2. 不能从电脑任意输入视频,然后检测其中的人脸信息。
针对这两点,我们查找了mathwork网站上作者所分享的信息,以及同门所分享给我的几个国外网站的代码。修改了视频的获取方式从: vidObj =webcam; 为
vidObj = vision.VideoFileReader(‘D:\桌面\图像处理\a1.avi‘); 然后相应的将帧获取方式进行修改,因为其中人脸检测是通过每一帧提取特征点所实时获取的。
帧获取从:frame = snapshot(vidObj); 修改为:frame = step(vidObj); 之后完美解决。
从桌面输入一个视频,所得实时检测结果如下所示:
感谢原作者的分享,源代码地址:http://www.mathworks.com/matlabcentral/fileexchange/47105-detect-and-track-multiple-faces