1.7~1.9opencv学习总结

图像处理——OpenCV学习(1.7~1.9)

一、人脸识别程序剖析

下面就图片预处理、级联分类器这两大块进行分析:

1) 图片预处理流程

基于人脸识别的代码进行分步解析。

Mat gray;

cvtColor(img, gray, CV_RGB2GRAY); //转换成灰度图

equalizeHist(gray, gray);   //直方图均衡化

ccf.detectMultiScale(gray, faces, 1.1, 3, 0, Size(10, 10), Size(100, 100)); //检测人脸

①如下为将原图像转换成灰度图的效果,因为Haar特征是从灰度图中读取的

 

 

②如下为将原图像直方图均衡化的效果,这一步是通过拉伸各个像素分布来实现图像增强。

 

③最后一步,人脸检测并显示结果

 

2)级联分类器原理

程序中用到了OPENCV自带的级联分类器,CascadeClassifier,来检测图片或视频流中的目标——人脸(视频中多一个人眼)。所以接下来就浅谈一下这个级联分类器。

首先,Haar分类器 = Harr-like特征 + 积分图方法 + Adaboost算法 + 级联。

① 使用Haar-like特征做检测。

② 使用积分图(Integral Image)对Haar-like特征求值进行加速。

③ 使用AdaBoost算法训练区分人脸和非人脸的强分类器。

④ 使用筛选式级联把强分类器级联到一起,提高准确率。

值得一提的是其中的Haar-like特征检测,下面做较详细的分析。

 

二、Haar特征

前面所讲的AdaBoost算法的实现,采用的是输入图像的矩形特征,也叫Haar特征。影响Adaboost检测训练算法速度很重要的两方面是特征的选取和特征值的计算。人脸的一些特征可以由矩形特征简单地描绘。如下图,特征值的定义为白色矩形像素和减去黑色矩形像素和,根据特征值判断出人脸样本和非人脸样本。

 

为了找出这些特征和计算出所需的特征值,首先,我们要在图片中划分出满足特定条件的矩形,即条件矩形,其中的条件称为(s,t)条件。(s,t)条件有两个内容

(1)x轴方向边长必须能被自然数s 整除(能均等分成s 段);

(2)y 轴方向边长必须能被自然数t 整除(能均等分成t 段);

所以矩形的最小尺寸为s×t或者t×s, 最大尺寸为[m/s]·s×[m/t]·t 或[m/t]·t×[m/s]·s;其中[ ]为取整运算符。这在利用该函数时需要用到

 

 

 

找出条件矩形后,计算其特征值,

对于理想的像素值随机分布的图像来说,同一个矩形特征对不同图像的特征值的平均值应该趋于一个定值k。

在对输入图像进行检测的时候,一般输入图像都是很大的。在Adaboost 算法中采用了扩大检测窗口的方法,而不是缩小图片。在检测的最初,检测窗口和样本大小一致,然后按照一定的尺度参数(即每次移动的像素个数,向左然后向下)进行移动,遍历整个图像,标出可能的人脸区域。遍历完以后按照指定的放大的倍数参数放大检测窗口,然后在进行一次图像遍历;这样不停的放大检测窗口对检测图像进行遍历,直到检测窗口超过原图像的一半以后停止遍历。在检测窗口遍历完一次图像后,处理重叠的检测到的人脸区域,进行合并等操作。

 

三、车牌识别进展

整个车牌识别过程实际上相当于包含了两个过程:1,是车牌的识别;2,车牌字符的识别。由于工程较大及陌生的部分较多,目前只对前一个过程进行了分析。以下为所得:

1、大致流程及运行截图如下

1)准备

转换图片格式至HSV,取S通道图像,再转化为灰度图。

2)检测

利用opencv中自带的MSER函数,分别进行MSER+MSER-检测,再进行闭操作连接缝隙,寻找外部轮廓。

3)输出

根据最终保存区域,设置矩形大小,截出车牌区域并输出图像。

 

 

四、总结

通过学习人脸识别/车牌识别来提升自己在图像识别方面的工程经验是非常好的,因为它非常好的说明了计算机视觉的一般过程:

图像→→预处理→→图像分析→→目标提取→→目标识别。

而学到现在,我们的感觉就是:要学的东西还很多,网上的资源也非常丰富,剩下的就只是一步步地走下去了。相信付出都是有回报的,走过的路都不会白走。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值