[转载]五官分割

Click

%本文使用CascadeObjectDetector提供的官方Model实现对人脸的多个区域检测,
%当然detector也支持自定义模形(以xml形式加载)
img=imread('friend.jpg');
imshow(img);title('Original IMG');

detector = vision.CascadeObjectDetector;
% detector成员属性:
%(1) ClassificationModel(官方的分类器模型)
%
% -'FrontalFaceCART'(默认值): 训练图片大小[20 20];检测直立和向前朝面的面.该模型由弱分类器组成,
% 基于分类和回归树分析 (cart)。这些分类器使用 haar 特征来编码面部特征。
% 基于块的分类器提供了在面部特征之间建立高阶依赖关系模型的能力。
% -'FrontalFaceLBP': 训练图片大小[24 24];检测直立和向前朝面的面。该模型由弱分类器组成, 基于决策树桩。
% 这些分类器使用本地二进制模式 (lbp) 来编码面部特征。lbp 功能可以提供抵御照明变化的鲁棒性。
% -'UpperBody': 训练图片大小[18 22]:检测上身区域, 其定义为头部和肩部区域。此模型使用 haar 功能对头部和肩部区域的详细信息进行编码。
% 因为它在头部周围使用了更多的功能, 所以这种模型对姿势变化 (例如头部旋转) 更可靠。
% -'EyePairBig'/'EyePairSmall': 训练图片大小:[11 45]/[5 22];检测一双眼睛。'EyePairSmall'训练 "眼类" 模型。
% 这使得该模型能够检测到'EyePairBig'模型所能检测到的更小的眼睛。
% -'LeftEye'/'RightEye': 训练图片大小:[12 18];分别检测左眼和右眼。这些模型是由弱分类器,
% 基于决策树桩。这些分类器使用 haar 功能对详细信息进行编码。
% -'LeftEyeCART'/'RightEyeCART': 训练图片大小:[20 20];分别检测左眼和右眼。构成这些模型的弱分类器是 cart-树。
% 与决策树桩相比, 基于 cart 树的分类器能够更好地建模高阶依赖关系。
% -'ProfileFace': 训练图片大小:[20 20];检测直立面部轮廓。该模型由弱分类器组成, 基于决策树桩。
% 这些分类器使用 haar 功能对人脸详细信息进行编码。
% -'Mouth': 训练图片大小[15 25];检测口腔。该模型由弱分类器组成, 基于决策树桩, 利用 haar 特征对口腔细节进行编码。
% -'Nose': 训练图片大小[15 18];该模型由弱分类器组成, 基于决策树桩, 使用 haar 特征对鼻子细节进行编码。
%
%(2) MinSize(最小可检测对象的大小):
% 最小可检测对象的大小, 指定为两个元素向量 [height weight]。对于包含对象的最小大小区域, 以像素为单位设置此属性。
% 该值必须大于或等于用于训练模型的图像大小。当您在处理图像之前知道最小对象大小时, 使用此属性可以减少计算时间。
% 如果不指定此属性的值, 探测器会将其设置为用于训练分类模型的图像的大小。
%
%(3) MaxSize(最大可检测对象的大小):
% 最大可检测对象的大小, 指定为两个元素向量 [height weight]。指定要检测的最大对象的大小 (以像素为单位)。
% 当您在处理图像之前知道最大对象大小时, 使用此属性可以减少计算时间。如果不为此属性指定值, 探测器会将其指定为size(IMG).
%
%(4) ScaleFactor(用于多尺度对象检测的缩放):
% 用于多尺度对象检测的缩放, 指定为大于1.0001的值。比例因子以增量MinSize缩放 minsize 和MaxSize之间的检测分辨率。
% 您可以使用以下方法将比例因子设置为理想值: size(IMG)/(size(IMG)-0.5).
% 探测器使用以下关系以 "MinSize" 和MaxSize之间的增量缩放搜索区域:
% 搜索区域= round(训练图片大小) * (ScaleFactor)^n))
%
%(5) MergeThreshold(检测阈值):
% 检测阈值, 指定为整数。阈值定义在对象周围有多个检测的区域中声明最终检测所需的条件。合并满足阈值的共置检测组,
% 以在目标对象周围生成一个边界框。通过要求在多尺度检测阶段多次检测目标对象, 提高此阈值可能有助于抑制错误检测。
% 将此属性设置为0, 将返回所有检测, 而不执行阈值或合并操作。此属性是可调整的。
%
%(6) UseROI(使用感兴趣的区域):
% 使用感兴趣的区域, 指定为true或false。将此属性设置为true可检测输入图像中感兴趣的矩形区域内的对象。

%% 测试1:FrontalFaceCART
bboxes=detector(img);
FrontalFaceCART=insertObjectAnnotation(img,'rectangle',bboxes,'Face');
figure(1);imshow(FrontalFaceCART);title('FrontalFaceCART');

%% 测试2:FrontalFaceLBP
release(detector);
detector.ClassificationModel='FrontalFaceLBP';
bboxes=detector(img);
FrontalFaceLBP=insertObjectAnnotation(img,'rectangle',bboxes,'Face');
figure(2);imshow(FrontalFaceLBP);title('FrontalFaceLBP');

%% 测试3:UpperBody
release(detector);
detector.ClassificationModel='UpperBody';
detector.MergeThreshold=3;%适当增加合并阈值
bboxes=detector(img);
UpperBody=insertObjectAnnotation(img,'rectangle',bboxes,'UpperBody');
figure(3);imshow(UpperBody);title('UpperBody');
detector.MergeThreshold=4;%恢复合并阈值
%% 测试4:EyePairBig/EyePairSmall
release(detector);
detector.ClassificationModel='EyePairBig';
bboxes=detector(img);
EyePairBig=insertObjectAnnotation(img,'rectangle',bboxes,'Eyes');
figure(4);subplot(211);imshow(EyePairBig);title('EyePairBig');
release(detector);
detector.ClassificationModel='EyePairSmall';
bboxes=detector(img);
EyePairSmall=insertObjectAnnotation(img,'rectangle',bboxes,'Eyes');
figure(4);subplot(212);imshow(EyePairSmall);title('EyePairSmall');

%% 测试5:LeftEye/RightEye
release(detector);
detector.ClassificationModel='LeftEye';
detector.MergeThreshold=10;%适当增加合并阈值
bboxes=detector(img);
LeftEye=insertObjectAnnotation(img,'rectangle',bboxes,'LeftEye');
figure(5);subplot(211);imshow(LeftEye);title('LeftEye');
release(detector);
detector.ClassificationModel='RightEye';
bboxes=detector(img);
RightEye=insertObjectAnnotation(img,'rectangle',bboxes,'RightEye');
figure(5);subplot(212);imshow(RightEye);title('RightEye');
detector.MergeThreshold=4;%恢复合并阈值

%% 测试6:LeftEyeCART/RightEyeCART
release(detector);
detector.ClassificationModel='LeftEyeCART';
bboxes=detector(img);
LeftEyeCART=insertObjectAnnotation(img,'rectangle',bboxes,'LeftEye');
figure(6);subplot(211);imshow(LeftEyeCART);title('LeftEye');
release(detector);
detector.ClassificationModel='RightEyeCART';
bboxes=detector(img);
RightEyeCART=insertObjectAnnotation(img,'rectangle',bboxes,'RightEye');
figure(6);subplot(212);imshow(RightEyeCART);title('RightEye');

%% 测试7:ProfileFace
release(detector);
detector.ClassificationModel='ProfileFace';
bboxes=detector(img);
ProfileFace=insertObjectAnnotation(img,'rectangle',bboxes,'Face');
figure(7);imshow(ProfileFace);title('ProfileFace');

%% 测试8:Mouth
release(detector);
detector.ClassificationModel='Mouth';
detector.MergeThreshold=100;%增加合并阈值
bboxes=detector(img);
Mouth=insertObjectAnnotation(img,'rectangle',bboxes,'Mouth');
figure(8);imshow(Mouth);title('Mouth');
detector.MergeThreshold=4;

%% 测试9:Nose
release(detector);
detector.ClassificationModel='Nose';
detector.MergeThreshold=10;;%增加合并阈值
bboxes=detector(img);
Nose=insertObjectAnnotation(img,'rectangle',bboxes,'Nose');
figure(9);imshow(Nose);title('Nose');

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,176评论 5 469
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,190评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,232评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,953评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,879评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,177评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,626评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,295评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,436评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,365评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,414评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,096评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,685评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,771评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,987评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,438评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,032评论 2 341

推荐阅读更多精彩内容