CN116309516A - 基于计算机视觉的智能检测方法 - Google Patents
基于计算机视觉的智能检测方法 Download PDFInfo
- Publication number
- CN116309516A CN116309516A CN202310336496.9A CN202310336496A CN116309516A CN 116309516 A CN116309516 A CN 116309516A CN 202310336496 A CN202310336496 A CN 202310336496A CN 116309516 A CN116309516 A CN 116309516A
- Authority
- CN
- China
- Prior art keywords
- image
- angle
- straight line
- detection
- contour
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 83
- 238000000034 method Methods 0.000 claims abstract description 29
- 238000012545 processing Methods 0.000 claims abstract description 23
- 230000000877 morphologic effect Effects 0.000 claims abstract description 11
- 230000009466 transformation Effects 0.000 claims abstract description 10
- 230000007797 corrosion Effects 0.000 claims abstract description 6
- 238000005260 corrosion Methods 0.000 claims abstract description 6
- 238000003708 edge detection Methods 0.000 claims abstract description 6
- 230000006870 function Effects 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 9
- 238000012423 maintenance Methods 0.000 claims description 6
- 230000011218 segmentation Effects 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 3
- 230000001788 irregular Effects 0.000 claims description 3
- 238000010191 image analysis Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000000605 extraction Methods 0.000 description 6
- 238000009826 distribution Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000005266 casting Methods 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 101100172288 Pseudomonas fluorescens biotype A endX gene Proteins 0.000 description 1
- 240000007651 Rubus glaucus Species 0.000 description 1
- 235000011034 Rubus glaucus Nutrition 0.000 description 1
- 235000009122 Rubus idaeus Nutrition 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000002902 bimodal effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010894 electron beam technology Methods 0.000 description 1
- 230000003628 erosive effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000000465 moulding Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000002834 transmittance Methods 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
- G06T7/0006—Industrial image inspection using a design-rule based approach
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
- G06T5/30—Erosion or dilatation, e.g. thinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/168—Segmentation; Edge detection involving transform domain methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20048—Transform domain processing
- G06T2207/20061—Hough transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20172—Image enhancement details
- G06T2207/20192—Edge enhancement; Edge preservation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
- G06T2207/30164—Workpiece; Machine component
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Quality & Reliability (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于计算机视觉的智能检测方法,包括以下步骤:S1.检测目标进行颜色标记,获取检测目标图像,利用HSV颜色模型提取检测目标的标记区域图像;S2.进行图像形态学膨胀、腐蚀、开运算、闭运算处理,生成掩码图并进行按位与操作,提取图像结构特征;S3.对掩码图进行边缘检测获得图像轮廓,对图像轮廓进行多边形逼近操作,将图像轮廓拟合成直线图像;S4.利用HSV颜色模型提取直线图像,使用霍夫变换检测直线,遍历所有直线图像,计算直线斜率和角度;S5.将直线角度与设置的允许偏移角度进行对比,根据直线角度偏差对比结果,判断检测目标的检测结果。采用图像拟合方法,提高图像数据处理精度,采用计算机视觉能自主完成图像分析和检测故障判断。
Description
技术领域
本发明涉及图像处理技术领域,具体地说,涉及一种应用于机器设备检修时基于计算机视觉的智能检测方法。
背景技术
机器设备无法实现整体模型浇铸成型,无法实现机器设备的总装,并且浇铸工件无法满足机械自由度和模块化检修的实际要求,所以机械生产组装过程中,常采用螺丝等连接部件进行各模块的装配。在实际生产和使用周期中,不可避免地要对连接部位进行检查和维护,对机械关键禁锢连接部件进行检修。检修工作要求技术员具备大量检修知识和现场工作经验,并且运维检修成本高、效率低,普通机器视觉处理无法满足机器设备高精度检修参数的要求。
发明内容
本发明的目的在于克服现有机器视觉和图像处理技术精度不高的缺点,提供一种基于计算机视觉的智能检测方法,提高机器设备对图像自主处理技术精度。
为了实现上述目的,本发明所采用的技术方案如下:
一种基于计算机视觉的智能检测方法,包括以下步骤:
S1.检测目标进行颜色标记,获取检测目标图像,利用HSV颜色模型提取检测目标的标记区域图像;
S2.进行图像形态学膨胀、腐蚀、开运算、闭运算处理,生成掩码图并进行按位与操作,提取图像结构特征;
S3.对掩码图进行边缘检测获得图像轮廓,对图像轮廓进行多边形逼近操作,将图像轮廓拟合成直线图像;
S4.利用HSV颜色模型提取直线图像,使用霍夫变换检测直线,遍历所有直线图像,计算直线斜率和角度;
S5.将直线角度与设置的允许偏移角度进行对比,根据直线角度偏差对比结果,判断检测目标的检测结果。
优选地,开运算处理和闭运算处理,具体为:
开运算是对图像先腐蚀后膨胀,用来消除小物体,在纤细点处分离物体,在平滑物体边界时不明显改变其面积;
闭运算是对图像先膨胀后腐蚀,排除小型空洞,平滑物体轮廓,连接窄的间断点以及沟壑,填补断裂的轮廓线。
优选地,生成掩码图并进行按位与操作,提取图像结构特征,具体为:
利用bitwise_and操作将检测目标上标记区域外的图像过滤,只显示标记区域图像,bitwise_and函数控制选择感兴趣的通道或区域进行输出,并用相似性变量或图像匹配方法检测和提取图像结构特征。
优选地,对掩码图进行边缘检测获得图像轮廓,具体为:
先将掩码图转成灰度图,再将灰度图转成二值图,利用轮廓检测函数cv2.findContours()函数对图像进行轮廓检测。
优选地,对图像轮廓进行多边形逼近操作,将图像轮廓拟合成直线图像,具体为:
根据图像轮廓通过多边形拟合approxPolyDP()函数把不规则的轮廓逼近于一条直线,approxPolyDP()函数逼近的精度通过参数进行设置。
优选地,利用HSV颜色模型提取直线图像,具体为:
选取绿色区域的颜色HSV范围,设置H、S、V的最小值lower_reg=np.array([35,43,46]),H、S、V的最大值upper_reg=np.array([77,255,255]),再利用函数inRange进行颜色分割,提取出绿色直线图像。
优选地,使用霍夫变换检测直线,遍历所有直线图像,计算直线斜率和角度,具体为:
通过霍夫变换检测直线,得到直线的数据及坐标,画出拟合直线所在的位置,遍历所有直线图像的数据及坐标,计算出直线斜率和角度。
优选地,将直线角度与设置的允许偏移角度进行对比,根据直线角度偏差对比结果,判断检测目标的检测结果,具体为:
将直线角度与设置的允许偏移角度进行对比,如果直线角度差超过规定的偏差范围,输出高电平到检测装置的蜂鸣器和报警灯,提醒检修人员进行检修;如果直线角度差在规定的偏差范围内,则继续监测下个检测目标。
一种电子设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一项所述的基于计算机视觉的智能检测方法的步骤。
一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述任一项所述的基于计算机视觉的智能检测方法的步骤。
与现有技术相比,本发明具有如下优点和有益效果:
本发明采用OpenCV算法,提高图像数据分析能力,采用多种图像拟合方法,提高图像数据处理精度,采用计算机视觉能自主完成预处理图像的分析和检测故障判断。
附图说明
图1为基于计算机视觉的智能检测方法的流程示意图。
图2为获取检测目标图像示意图。
图3为HSV颜色提取结果示意图。
图4为开运算操作结果示意图。
图5为闭运算操作结果示意图。
图6为保留标记颜色区域结果示意图。
图7为图像检测轮廓结果示意图。
图8为选取0.1*周长精度结果示意图。
图9为HSV颜色提取结果示意图。
图10为标记检测线段示意图。
图11为直线角度检测结果示意图。
图12为直线角度检测结果示意图。
图13为检测目标松动结果示意图。
图14为检测目标安全结果示意图。
具体实施方式
下面结合附图和具体实施例对本发明基于计算机视觉的智能检测方法作进一步说明。
请参阅图1,本发明公开了一种基于计算机视觉的智能检测方法,包括以下步骤:
S1.检测目标进行颜色标记,获取检测目标图像,利用HSV颜色模型提取检测目标的标记区域图像。
S2.进行图像形态学膨胀、腐蚀、开运算、闭运算处理,生成掩码图并进行按位与操作,提取图像结构特征。
S3.对掩码图进行边缘检测获得图像轮廓,对图像轮廓进行多边形逼近操作,将图像轮廓拟合成直线图像。
S4.利用HSV颜色模型提取直线图像,使用霍夫变换检测直线,遍历所有直线图像,计算直线斜率和角度。
S5.将直线角度与设置的允许偏移角度进行对比,根据直线角度偏差对比结果,判断检测目标的检测结果。
本实施例通过智能小车对轨道车辆转向架螺丝松紧度的检测,对本发明基于计算机视觉的智能检测方法进行详细说明。智能小车设有摄像头,并搭载有树莓派处理器,通过电机驱动车轮行使,以对轨道车辆转向架螺丝松紧度进行检测。
本发明为提高图像数据提取精度,降低环境对数据分析的影响,将摄像头采集的图像数据,使用HSV图像颜色模式分析范围,分离提取出标记的颜色部分。使用形态学对图像膨胀、腐蚀、开闭操作,降低环境光和其他零部件的影响,提高提取标记精确度。位与操作对图像二值处理,提取数据框架,基于边缘算法检测数据轮廓,获取图像预处理信息。视觉预处理的图像数据进行多边形操作,提高图像数据精度。利用OpenCV的颜色HSV模式的颜色通道二次提取图像数据的检测信息,使用霍夫变换检测直线,遍历获取图像数据。通过遍历数据计算直线斜率,与标准偏移角度的范围对比,得到检测螺丝部件预处理后验证的结果。
获取检测目标图像,提取检测目标图像信息
通过目标检测获得螺丝所在的位置,获得边框四个点的坐标,图像在Open CV中表现为Numpy数组,至此可以很轻松地使用数组切片来截取目标区域,Numpy数组的代码如下:
ROI;roi=image[startY:endY,startX:endX]
只需提供开始和结束(x,y)坐标的顺序,就可以使用Open CV裁剪图像,结果如图2所示。
色彩像素不一致的点在全部图像区域里所占的比例的直方图称为颜色直方图。直方图(Histogram)是一种常见的概率分布的非参数表达方法,区别于高斯分布、泊松分布等用参数表达概率密度的方法。直方图可以看成概率密度分布的离散化表达方法,假设N个样本数据x量化为1~M之间的整数,Hist是M维数组,为了表示成概率分布,需要Hist数组和为1,对应的直方图计算方法如下:
initializing
for i=1:M Hist[i]=0;end
Voting
for i=1:N Hist[x[i]]+=1;end
Normalize
for j=1:M Hist[j]=Hist[j]
sum(Hist);
sum(Hist)=Hist[1]+Hist[2]+...+Hist[M];end
sum(Hist)等于样本个数N,以上“投票+归一化”两个步骤,即每个样本x[i]有一个对应的权重w[i]=1/N,投票的时候往小盒子里放的是权重:
Initializing for i=1:M
Hist[i]=0;end
Voting for i=1:N
Hist[x[i]]+=w[i];end
数组Hist获取权重的每个值都是一个0-1之间的小数,表示当x取这个值(数组对应的下标)时的概率。颜色直方图在计算时,首先要量化其中的颜色,就是把0-250的区间划分为一定量的子区间,统计某一色彩落在每个子区间中的像素点的个数,最终形成直方图。它的结果就是将色彩特征完成向量化,向量的长度等于子区间数。
HSV提取标记区域图像
HSV是一种将RGB色彩空间中的点在倒圆锥体中的表示方法。HSV即色相(Hue)、饱和度(Saturation)、亮度(Value),色相为颜色的基本属性,饱和度指色彩的纯度,越高则色彩越纯,亮度指色彩的明亮程度。计算机色彩显示器采用R、G、B相加混色的原理,通过发射出三种不同强度的电子束,使屏幕内侧覆盖的红、绿、蓝磷光材料发光而产生色彩。在RGB颜色空间中,任意色光F都可以用RGB三色不同分量的叠加混合而成,图像中每个像素的颜色值用一个三元值(R,G,B)来表示。
HSV和RGB颜色模型相似,也是由三个属性决定颜色,H、S、V分别是色彩、深度、明暗,按着图中方向的变化,其对应的颜色也会改变,三者也同样有取值范围。H(色调)用角度度量,取值范围为0°~360°。S(饱和度)表示颜色接近光谱色的程度,通常取值范围为0%~100%,值越大,颜色越饱和。V(明度)表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关,对于物体色,此值和物体的透射比或反射比有关,通常取值范围为0%(黑)到100%(白)。
HSV空间中三个指标相互独立,能够非常直观的表达色彩的明暗、色调以及鲜艳程度,方便进行颜色之间的对比,所以经常在HSV中进行颜色的分割识别。在HSV中各个颜色的范围如表1所示。
表1 HSV颜色检测结果
识别选取标记颜色(红色)区域的颜色HSV范围,设置H、S、V的最小值lower_reg=np.array([156,43,46]),H、S、V的最大值upper_reg=np.array([179,255,255]),再利用函数inRange进行颜色分割,提取出标记颜色(红色)的部分得到如图3所示。
图像形态学处理
图像形态学处理是数字图像处理中的形态学处理,是指将数字形态学作为工具,从图像中提取对于表达和描绘区域形状有用处的图像分量,如边界、骨架以及凸壳,还包括预处理或后处理的形态学过滤、细化和修剪等。图像形态学处理中主要处理的是二值图像,在二值图像中,所有黑色像素的集合是图像完整的形态学描述,二值图像的各个分量是Z2的元素。假定二值图像A和形态学处理的结构元素B是定义在笛卡儿网格上的集合,网格中值为1的点是集合的元素,当结构元素的原点移到点(x,y)时,记为Sxy,为简单起见,结构元素为3x3,且全都为1。在这种限制下,决定输出结果的是逻辑运算。膨胀和腐蚀这两种操作是形态学处理的基础,许多形态学算法都是以这两种运算为基础的。
膨胀是以得到B的相对与它自身原点的映像,并且由z对映像进行移位为基础的。A被B膨胀是所有位移z的集合,这样和A至少有一个元素是重叠的。可以把上式改写为结构元素B看作一个卷积模板,区别在于膨胀是以集合运算为基础。
卷积是以算术运算为基础的,但两者的处理过程的相似部分如下:
用结构元素B,扫描图像A的每一个像素;用结构元素与其覆盖的二值图像做“与”操作;如果都为0,结果图像的该像素为0,否则为1。
腐蚀对Z中的集合A和B,B对A进行腐蚀的整个过程如下:
用结构元素B,扫描图像A的每一个像素;用结构元素与其覆盖的二值图像做“与”操作;如果都为1,结果图像的该像素为1,否则为0。
腐蚀处理的结果是使原来的二值图像减小一圈。开运算是对图像先腐蚀后膨胀的过程,可用来消除小物体,在纤细点处分离物体,并且在平滑较大物体的边界的同时不明显改变其面积。开运算的数学表达式为:
dst=open(src)=dilate(erode(src,element))
闭运算与开运算是相反的一对操作,闭运算是先膨胀后腐蚀,能够排除小型空洞,平滑物体轮廓,连接窄的间断点以及沟壑,同时也能够填补断裂的轮廓线。闭运算的数学表达式为:
dst=close(src)=erode(dilate(src,element))
通过数据图像运算得到的图3有很多噪点,对图像的识别产生了很大干扰。先进行形态学操作的开运算,消除了图像中的小白色噪点,得到如图4所示效果图,但是图案中间还有黑色的小噪点,再对进行了开运算后的图像进行闭运算,得到了相对整洁清晰的图像,如图5所示。
保留掩码区域
用bitwise_and操作将标记线(红线)之外的东西都过滤掉,只显示标记颜色(红色)的部分。运算bitwise_and函数的语法及计算方法,图像和标量的按位与、构造的掩膜图像和图像的按位与。可以看到bitwise_and可以控制选择感兴趣的通道(调整四元组的元素值)或区域进行输出。同时bitwise_and可以用于对图像上某些区域作屏蔽,使其不参加处理,也可以进行图像结构特征提取,用相似性变量或图像匹配方法检测和提取图像中相似的结构特征,得到如图6所示结果。
将提取出的部分进行霍夫直线检测,就可以得到两条直线。但是霍夫直线检测容易受到线段形状与噪声的干扰而失真,需要通过对图像进行二值分析,提取目标骨架,对骨架像素点拟合生成直线,完成图像目标元素的拟合和处理。
图像轮廓检测
对图像进行轮廓检测cv2.findContours()函数接受的参数需要的是二值图,即黑白的(不是灰度图),所以读取的图像要先转成灰度的,再转成二值图。在数字图像处理中,图像的二值化使图像中数据量大为减少,从而能凸显出目标的轮廓二值化方法。
cv2.threshold(src,thresh,maxval,type)
OTSU会通过一系列计算,计算比较优的阈值(可以理解为,在图像直方图中,如果存在两峰,那么阈值应该尽可能的在两峰之间的峰谷)。因此非双峰图,用这种方法可能效果不太理想。OTSU是计算二值化的算法,计算二值化的算法有很多,一般使用OTS二值化处理后进行轮廓检测,cv2.findContours()函数来查找检测物体的轮廓。
contours,hierarchy=cv2.findContours(image,mode,method)
cv2.RETR_EXTERNAL只检测外轮廓;cv2.RETR_LIST检测的轮廓不建立等级关系;cv2.RETR_CCOMP建立两个等级的轮廓,上一层为外边界,内层为内孔的边界。如果内孔内还有连通物体,则这个物体的边界也在顶层;cv2.RETR_TREE建立一个等级树结构的轮廓;method:轮廓的近似方法。
cv2.CHAIN_APPROX_NOME存储所有的轮廓点,相邻的两个点的像素位置差不超过1;cv2.CHAIN_APPROX_SIMPLE压缩水平方向、垂直方向、对角线方向的元素,只保留该方向终点坐标,例如一个矩形轮廓只需要4个点来保存轮廓信息;cv2.CHAIN_APPROX_TC89_L1、cv2.CV_CHAIN_APPROX_TC89_KCOS、contours(返回的轮廓)、hierarchy(每条轮廓对应的属性)。经过了二值化和轮廓检测得到的结果如图7所示。
多边形逼近操作
根据图像预处理的两个图像的轮廓,通过多边形拟合approxPolyDP()函数可把不规则的轮廓逼近于一条直线,这样测量出来的角度会是一个相对中间的结果,误差会更小approxPolyDP()函数是opencv中对指定的点集进行多边形逼近的函数,其逼近的精度可通过参数设置。对应的函数为:
void approxPolyDP(InputArray curve,
qOutputArray approxCurve,double epsilon,bool closed);
InputArray curve(输入的点集)、OutputArray approxCurve(输出的点集,当前点集是能最小包容指定点集的,画出来即是一个多边形)
double epsilon(指定的精度)也即是原始曲线与近似曲线之间的最大距离;boolclosed(若为true,则说明近似曲线是闭合的,反之false则断开)。
在approxPolyDP(InputArray curve,OutputArray approxCurve,doubleepsilon,bool closed)函数中double epsilon表示的是精度,不同的精度针对不同的图像得到的结果是不一样的。
虽然通过不断的更换double epsilon精度数值是可以找出实现拟合成直线的图像,但是这并不符合自动识别的要求。通过多次试验发现利用arcLength函数计算出轮廓的周长乘以0.1的结果作为精度数值,就可以实现准确得到近似成直线的图像,如图8所示。
基于OpenCV的HSV颜色通道提取颜色
利用HSV空间中三个指标在HSV中进行颜色的分割识别。在HSV中各个颜色的范围如表2所示。
表2 HSV模式颜色标准表
选取绿色区域的颜色HSV范围,设置H、S、V的最小值lower_reg=np.array([35,43,46]),H、S、V的最大值upper_reg=np.array([77,255,255]),再利用函数inRange进行颜色分割,提取出选定颜色(绿色)区域的部分得到如图9所示。
霍夫直线变换,遍历获取数据
经过前面多个步骤的预处理和形态学操作,得到了图9中清晰明了的两条直线。可以利用高精度的霍夫直线变换进行数据遍历,霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,通过一种投票算法检测具有特定形状的物体。该过程在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换结果。
CvSeq cvHonghLines2(CvArr*image)
Void line_storage,int mehtod
double rho,double theta
int threshold
double param1=0
double param2=0)
Image(输入8-比特、单通道二值图像)、line_storage(存储检测到的线段,可以是序列或者单行/单列矩阵)、mehtod(Hough变换变量)、rho(与象素相关单位的距离精度)、theta(弧度测量的角度精度)、threshold(阈值参数,如果相应的累计值大于threshold,则函数返回的这个线段)、Param1(对传统Hough变换,不使用(0))、Hough变换(它是最小线段长度)、Param2(对传统Hough变换,不使用(0);对概率Hough变换)。这个参数表示在同一条直线上进行碎线段连接的最大间隔值(gap),即当同一条直线上的两条碎线段之间的间隔小于param2时,将其合二为一。
通过霍夫直线变换,得到两条直线的数据及坐标,用标记线(蓝色线)画出拟合直线所在的位置,如图10所示。
通过遍历数据计算出直线斜率和角度
霍夫直线变换的数据结果,可以得到直线的全部坐标数据,包括直线的端点(x1,y1)(x2,y2),利用k=-(y2-y1)/(x2-x1)求出斜率。再通过将斜率代入arctan(k)*57.29577可求出直线的角度,结果如图11和图12所示。
设置允许偏移角度,将两条直线进行角度对比
通过分别求出两条直线的角度,再设置好允许的角度偏差范围,再将两条直线进行角度对比。如果两条直线角度相差超过规定的偏差范围,就会输出高电平到小车的蜂鸣器和报警灯,并且显示“螺丝松动,及时处理”的字样,如图13所示,提醒检修人员进行检修。如果角度相差不大,说明螺丝的拧紧状态的,显示“安全”字样,如图14所示,继续监测下个螺丝,实现自动化的检修过程。
综上所述,本发明具有以下优点和有益效果:
本发明采用OpenCV算法,提高图像数据分析能力,采用多种图像拟合方法,提高图像数据处理精度,采用计算机视觉能自主完成预处理图像的分析和检测故障判断。
本发明还公开了一种电子设备,电子设备包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述任一项所述的基于计算机视觉的智能检测方法的步骤。本发明的电子设备,可执行本发明的基于计算机视觉的智能检测方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。
本发明还公开了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上述任一项所述的基于计算机视觉的智能检测方法的步骤。本发明的计算机可读存储介质,可执行本发明的基于计算机视觉的智能检测方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。
虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有说明,功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的系统中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
上述说明是针对本发明较佳可行实施例的详细说明,但实施例并非用以限定本发明的专利申请范围,凡本发明所揭示的技术精神下所完成的同等变化或修饰变更,均应属于本发明所涵盖专利范围。
Claims (10)
1.一种基于计算机视觉的智能检测方法,其特征在于,包括以下步骤:
S1.检测目标进行颜色标记,获取检测目标图像,利用HSV颜色模型提取检测目标的标记区域图像;
S2.进行图像形态学膨胀、腐蚀、开运算、闭运算处理,生成掩码图并进行按位与操作,提取图像结构特征;
S3.对掩码图进行边缘检测获得图像轮廓,对图像轮廓进行多边形逼近操作,将图像轮廓拟合成直线图像;
S4.利用HSV颜色模型提取直线图像,使用霍夫变换检测直线,遍历所有直线图像,计算直线斜率和角度;
S5.将直线角度与设置的允许偏移角度进行对比,根据直线角度偏差对比结果,判断检测目标的检测结果。
2.根据权利要求1所述的基于计算机视觉的智能检测方法,其特征在于,开运算处理和闭运算处理,具体为:
开运算是对图像先腐蚀后膨胀,用来消除小物体,在纤细点处分离物体,在平滑物体边界时不明显改变其面积;
闭运算是对图像先膨胀后腐蚀,排除小型空洞,平滑物体轮廓,连接窄的间断点以及沟壑,填补断裂的轮廓线。
3.根据权利要求1所述的基于计算机视觉的智能检测方法,其特征在于,生成掩码图并进行按位与操作,提取图像结构特征,具体为:
利用bitwise_and操作将检测目标上标记区域外的图像过滤,只显示标记区域图像,bitwise_and函数控制选择感兴趣的通道或区域进行输出,并用相似性变量或图像匹配方法检测和提取图像结构特征。
4.根据权利要求1所述的基于计算机视觉的智能检测方法,其特征在于,对掩码图进行边缘检测获得图像轮廓,具体为:
先将掩码图转成灰度图,再将灰度图转成二值图,利用轮廓检测函数cv2.findContours()函数对图像进行轮廓检测。
5.根据权利要求1所述的基于计算机视觉的智能检测方法,其特征在于,对图像轮廓进行多边形逼近操作,将图像轮廓拟合成直线图像,具体为:
根据图像轮廓通过多边形拟合approxPolyDP()函数把不规则的轮廓逼近于一条直线,approxPolyDP()函数逼近的精度通过参数进行设置。
6.根据权利要求1所述的基于计算机视觉的智能检测方法,其特征在于,利用HSV颜色模型提取直线图像,具体为:
选取绿色区域的颜色HSV范围,设置H、S、V的最小值lower_reg=np.array([35,43,46]),H、S、V的最大值upper_reg=np.array([77,255,255]),再利用函数inRange进行颜色分割,提取出绿色直线图像。
7.根据权利要求1所述的基于计算机视觉的智能检测方法,其特征在于,使用霍夫变换检测直线,遍历所有直线图像,计算直线斜率和角度,具体为:
通过霍夫变换检测直线,得到直线的数据及坐标,画出拟合直线所在的位置,遍历所有直线图像的数据及坐标,计算出直线斜率和角度。
8.根据权利要求1所述的基于计算机视觉的智能检测方法,其特征在于,将直线角度与设置的允许偏移角度进行对比,根据直线角度偏差对比结果,判断检测目标的检测结果,具体为:
将直线角度与设置的允许偏移角度进行对比,如果直线角度差超过规定的偏差范围,输出高电平到检测装置的蜂鸣器和报警灯,提醒检修人员进行检修;如果直线角度差在规定的偏差范围内,则继续监测下个检测目标。
9.一种电子设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时实现如权利要求1至8任一项所述的基于计算机视觉的智能检测方法的步骤。
10.一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,其特征在于,计算机程序被处理器执行时实现如权利要求1至8任一项所述的基于计算机视觉的智能检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310336496.9A CN116309516A (zh) | 2023-03-30 | 2023-03-30 | 基于计算机视觉的智能检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310336496.9A CN116309516A (zh) | 2023-03-30 | 2023-03-30 | 基于计算机视觉的智能检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116309516A true CN116309516A (zh) | 2023-06-23 |
Family
ID=86835995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310336496.9A Pending CN116309516A (zh) | 2023-03-30 | 2023-03-30 | 基于计算机视觉的智能检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116309516A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118038452A (zh) * | 2024-04-12 | 2024-05-14 | 广东海洋大学 | 基于弱监督的菠萝检测方法、系统及存储介质 |
CN118067043A (zh) * | 2024-04-24 | 2024-05-24 | 长春理工大学 | 基于机器视觉的扁线电机定子中扁线旋转角度检测方法 |
-
2023
- 2023-03-30 CN CN202310336496.9A patent/CN116309516A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118038452A (zh) * | 2024-04-12 | 2024-05-14 | 广东海洋大学 | 基于弱监督的菠萝检测方法、系统及存储介质 |
CN118067043A (zh) * | 2024-04-24 | 2024-05-24 | 长春理工大学 | 基于机器视觉的扁线电机定子中扁线旋转角度检测方法 |
CN118067043B (zh) * | 2024-04-24 | 2024-06-28 | 长春理工大学 | 基于机器视觉的扁线电机定子中扁线旋转角度检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108921176B (zh) | 一种基于机器视觉的指针式仪表定位与识别方法 | |
CN105445277B (zh) | 一种fpc表面质量视觉智能检测方法 | |
CN116309516A (zh) | 基于计算机视觉的智能检测方法 | |
CN104680519B (zh) | 基于轮廓和颜色的七巧板识别方法 | |
CN115082683A (zh) | 一种基于图像处理的注塑缺陷检测方法 | |
CN111611643A (zh) | 户型矢量化数据获得方法、装置、电子设备及存储介质 | |
CN109658391B (zh) | 一种基于轮廓归并和凸包拟合的圆半径测量方法 | |
CN110097596A (zh) | 一种基于opencv的目标检测系统 | |
CN114549981A (zh) | 一种基于深度学习的智能巡检指针式仪表识别及读数方法 | |
CN111539927B (zh) | 汽车塑料组合件紧固卡扣缺装检测装置的检测方法 | |
CN111815555A (zh) | 对抗神经网络结合局部二值的金属增材制造图像检测方法及装置 | |
CN117253024B (zh) | 一种基于机器视觉的工业盐质检管控方法及系统 | |
CN113436157A (zh) | 一种用于受电弓故障的车载图像识别方法 | |
CN115597494B (zh) | 一种基于点云的预制构件预留孔的精度检测方法、系统 | |
CN108154496B (zh) | 一种适用于电力作业机器人的电力设备外观变化识别方法 | |
CN113793337A (zh) | 基于人工智能的机车配件表面异常程度评估方法 | |
CN112435272A (zh) | 一种基于图像轮廓分析的高压输电线连通域去除方法 | |
CN110567383A (zh) | 基于结构森林和亚像素的受电弓磨耗预警系统及检测方法 | |
CN112102189B (zh) | 一种线结构光光条中心线提取方法 | |
CN111539951B (zh) | 一种陶瓷砂轮头轮廓尺寸视觉检测方法 | |
CN113902667B (zh) | 一种用于机器视觉的螺纹旋向识别方法与系统 | |
CN114266748B (zh) | 一种轨交检修领域工艺板表面完整性判定的方法及装置 | |
CN115393290A (zh) | 边缘缺陷检测方法、装置及设备 | |
CN115471650A (zh) | 一种气体压力仪表读数方法、装置、设备及介质 | |
Aleksi et al. | Features extraction and texture defect detection of sawn wooden board images |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |