目标检测(Object Detection)原理与实现

目标检测(Object Detection)原理与实现

ID:37777850

大小:1.74 MB

页数:34页

时间:2019-05-31

目标检测(Object Detection)原理与实现_第1页
目标检测(Object Detection)原理与实现_第2页
目标检测(Object Detection)原理与实现_第3页
目标检测(Object Detection)原理与实现_第4页
目标检测(Object Detection)原理与实现_第5页
资源描述:

《目标检测(Object Detection)原理与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、目标检测(ObjectDetection)原理与实现基于阈值图像处理的目标检测     从今天起开始要写一些关于目标检测的文章,涵盖从简单的阈值图像处理检测、霍夫变换(houghtransform)检测、模版匹配检测(刚体匹配)、AAM+ASM+ACM(非刚体)匹配检测到近代机器学习方法检测,尽量贴一些代码,这些很实用。本篇就从阈值图像处理检测开始。阈值顾名思义就是一个分界值,做图像处理的都明白阈值的用途,但是考虑到各种观众,干脆把OpenCV中的各种阈值标识符和对应代码示意都贴出来,如(图一)所示:(图一)    仔细阅读下(图

2、一)中的各种伪代码,就很容易明白阈值函数的工作机制,其中src(x,y)是图像像素点值。下面就给出一个处理答题卡的例子,(图二)是从网上找到的一个答题卡样图,我们的目标是检测到哪些选项被涂黑了,然后根据坐标判定是哪个数字,其实根据坐标是有依据的,因为答题卡四个角有一些对准线,对齐后用扫描仪扫描后紧跟着经过算法处理就可以判断出考生选项,本篇文章就简化流程,考虑到涂的选项是黑色的,因此我们使用第二个阈值方法,经过处理后如(图三)所示。   (图二)                    (图三)几乎perfect,嘿嘿,下面把代码也贴

3、出来,python版本的。importnumpyasnpimportcv2img=cv2.imread('anwser_sheet.jpg')grey=cv2.cvtColor(img,cv2.cv.CV_BGR2GRAY)retval,grey=cv2.threshold(grey,90,255,cv2.cv.CV_THRESH_BINARY_INV)grey=cv2.erode(grey,None)grey=cv2.dilate(grey,None)contours,hierarchy=cv2.findContours(gre

4、y.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)newimg=np.zeros_like(grey)cv2.drawContours(newimg,contours,-1,255)cv2.imshow('test',newimg)cv2.imwrite("processed.jpg",newimg)cv2.waitKey()代码流程先是读取图像文件,接着转成灰度图,接着做个开运算(腐蚀后再膨胀),接着阈值处理,最后把目标轮廓画出,根据目标块的坐标可以大概的推算出对应的数字,接着

5、秀一下打印出某个涂项,比如最后一个,那么只需要把cv2.drawContours(newimg,contours,-1,255)改成cv2.drawContours(newimg,contours,0,255)第三个参数为负数表示打印所有轮廓,0表示打印最后一个选项,打印是倒着数的。如(图四)所示:(图四)   基于阈值图像处理的目标检测一般只适应于自己能控制颜色和亮度的项目中,这也为什么规定答题卡要尽量使用黑色的(同一颜色方便阈值处理),另外这种方法也可以用在目标的三维重建上,如(图五)所示,用阈值的方法找到汽车上的标定点对后续

6、点云的获取很有帮助,进而完成整个汽车模型的三位重建,此方法虽然简单,但对这几种场景很实用,通过简单的图像处理(各个阶段去噪)后,然后简单的查找下各种闭合小轮廓就OK了,好了,今天就说到这,比较简单,后续会越来越复杂些,用到的数学知识也越来越多。(图五)基于霍夫变换和广义霍夫变换的目标检测    上节讨论了基于阈值处理的目标检测,今天就来讨论下基于霍夫投票的目标检测,霍夫投票打算分成两个小节,第一个小节简单的说下霍夫变换和广义霍夫变换(generalizedhoughtransform),他们投票的权重都是相等的,下一节讨论概率空间

7、中的霍夫投票,顾名思义他们的投票权重是不确定的。   先来看下霍夫变换(houghtransform),霍夫变换一般适用于有解析表达式的几何形状目标检测,例如直线、圆、椭圆等。用个统一的解析表达式来表达他们:f(x,alpha)=0,其中x是图形上点,alpha则是解析表达式参数,比如欧式坐标系中直线的参数就是斜率m和截距c(或者极坐标系中的theta和ρ),圆的参数则是原点和半径。霍夫变换的核心就是把图像空间的直线变换到参数空间(也叫霍夫空间),比如一个直线y=mx+c,给定一个点(x’,y’),把它代入直线方程,得到y’=mx

8、’+c,其实此时仍然是一条直线(在参数空间的直线,斜率是-x’,截距是y’),图像空间和霍夫空间的对应关系如(图一)所示:(图一)   (图一)中左图是图像空间,右图是霍夫空间(参数空间),对于图像空间中线段pq上任意一点带入直线方程后,都可以在霍

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。