logo资料库

模式识别大作业实验报告.doc

第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
资料共13页,剩余部分请下载后查看
模式识别
——Human dection
一、实验目的:
二、实验数据:
三、实验流程:
四、实验内容:
五、实验结果:
六、 实验总结:
模式识别 ——Human dection 一、 实验目的: 通过摄像头捕捉公交车上的情况,经过计算机的图像处理,检测出公交
车上座位有无乘客。 二、 实验数据: 50 副采集自公交车上摄像头拍摄的图像,其中 46 幅为有人图像,4 幅 为无人图像。 三、 实验流程: 开 始 将 图 像 分 为 上 下 两 个区域 YES YES 检测区域一 是否有人? NO 检测区域二 是否有人? NO 输出:无人出现 结 束 输出:有人出现, 标记位置 输出:有人出现, 标记位置 四、 实验内容: 1) 区域分割:将一个座位的图像分为上下两部分区域。
区域一的坐标为:SReg1.x1=60 SReg1.y1=0 SReg1.x2=175 SReg1.y2=55 区域二的坐标为:SReg2.x1=40;SReg2.y1=55 SReg2.x2=175;SReg2.y2=150 图例 4-1 2) 区域一检测: a) 预处理:将采集到的灰度图像经过二值化。二值化的过程可以简述为: 先计算区域一的平均灰度值,然后再将图像的各个像素点与平均值作 比较,若高于均值的 80%则判定为是黑色(像素值为 0),小于则判定 为是背景,置为灰色(像素值为 200)。 然后进行一次闭运算(先膨胀,再腐蚀),得到处理后的二值图像。
b) 特征提取:得到预处理后的二值图像后,我们计算出图像的直方图, 区域一的预处理代码 然后根据直方图的均值、方差等数据进行分类。 直方图的计算代码如下所示:
c) 分类算法:得到图像的直方图后,将进行分类算法,具体规则如下: i. 去除非常狭长的区域 ii. 去除非常平坦的区域 iii. 得到面积较大,顶部变化缓慢的区域 iv. 得到均值大于 15 的区域 v. 得到最大值大于 5 的区域 主要代码如下:
d) 坐标定位:根据得到的图像直方图可以快速的得到黑色区域的中心位 置。代码如下: 得到了坐标位置后,只需要在其位置标记“X”即可,代码如下: 3) 区域二检测: a) 预处理:区域二的图像比区域一更加复杂一些,背景噪声较多,所以 我想办法先将区域二中的背景噪声去除,以方便接下来的检测。具体 做法是:将区域二边角缩小 15 个像素点。因为区域二的已经包括了 座位坐在区域的大部分面积,而人头出现在边角的可能性很小,所以 预先排除。具体代码如下:
接下来,对区域二进行二值化操作,跟区域一的方法相同,但是我修改了 下二值化的阈值,能够更好的将前-背景分离,阈值选择在平均灰度值的 90%, 大于 90%的判为黑色,小于 90%的判为灰色(像素值为 200)。 通过观察处理后的区域二的二值图像发现,人头和背景还是没有 很好的分离出来,那么我采用了不断腐蚀很膨胀的方法,将背景噪声 尽可能的去除。我采用了先腐蚀 3 次,在膨胀 4 次的操作。结果能将 大部分的背景噪声去除。 具体代码如下:
b) 分类算法:经过上述的预处理操作后发现区域二的部分图像的背景噪 声很好的去除了,只剩下人头的部分,和个别的小面积区域,那么我 采用的分类方法就很简单了,只要判别黑色区域面积的大小,调整阈 值,就分类出人头的区域。 具体代码如下:
分享到:
收藏