今天同学让我帮忙制作一个人脸表情识别的样本库,其中主要是对人脸进行裁剪,这里用到了一个相对较新的Matlab人脸检测方法Face Parts Detection,网上百度了一下发现关于Matlab人脸检测的代码和资源并不多,故此专门撰写一篇博客来详细介绍这个人脸检测方法的用途。
一、下载对应的工具包
首先下载对应的工具包,matlab最方便的地方莫过于此了,直接下载、配置简单、并且可以查看源码,这里给出对应的工具包下载地址:Face Parts Detection工具包。
点击“Download Zip”下载按钮开始下载,下载完成后解压,得到如下文件:
二、配置工具包
下载完成后开始配置工具箱。首先需要强调一点,这个方法需要依赖两个Matlab图像处理方面的工具箱Image Processing Toolbox和Computer Vision System Toolbox,几乎所有版本的Matlab都默认集成了Image Processing工具箱,但对于Computer Vision System工具箱只有相对较高版本(Matlab2013及以上)的Matlab版本才进行了集成,因此如果在程序执行过程中提示缺少对应的工具箱,则需要手动进行配置Computer Vision System。
假设Matlab已经配置好了以上两个工具箱,接下来开始配置Face Parts Detection工具包,方法极其简单,只需在Set Path对话框中将当前工具箱的文件夹(这里是Face_detection_Parts文件夹)路径添加到系统的搜索路径即可:
三、进行批量人脸检测
工具箱配置完成后开始利用其进行人脸检测。
3.1、批量读取图片
首先,需要对数据库中的图像进行批量读取,读取完之后再进行人脸检测。首先给出批量读取的代码,稍后解释:
clear;
stImageFilePath= 'E:\CAS-PEAL-R1(1)\CAS-PEAL-R1\FRONTAL\Expression\';
stImageSavePath = 'E:\Face_Detection\';
dirImagePathList = dir(strcat(stImageFilePath,'*.tif')); %读取该文件夹下所有图片的路径(字符串格式)
iImageNum= length(dirImagePathList); %获取图片的总数量if iImageNum > 0 %批量读入图片,进行五官检测,再批量检测for i = 1: iImageNum</