halcon模板匹配实践(6)差异模型

简介: halcon模板匹配实践(6)差异模型

Variation Model的主要原理是将待检测的图像与一张标准图像作比较,找出待检测图像与标准图像(idealimage)的明显差异(也就是不良)。标准图像可以采用几张OK品的图像训练(training)得到,也可以通过对一张OK品图像进行处理得到。训练后得到标准图像和一张variation图像(variationimage),variation图像中包含了图像中每个像素点灰度值允许变化的范围。标准图像和variation图像用来创建一个variationmodel,如此,其他图像就可以与variationmodel作比较了。



1、create_variation_model( : : Width, Height, Type, Mode : ModelID)


输入参数:width、Height是模板和待检测图像的尺寸。


输入参数:Type,是图像的类型。


输入参数:Model,决定如何计算idealimage和variationimage,其有三种模式


1)、standard,该模式下,可以使用算子train_variation_model对多张图片进行迭代训练,此时ideal image是通过计算多张图片的平均值获得,variation image是通过计算多张图片的标准方差获得。该模式的优点是可以迭代计算多张good image,缺点是在训练图片时,一旦有不良的图片混入会导致算法检测时出现误判。


注意:在训练多张图片时,每张图片的位置、角度都必须一致,可使用基于形状匹配来进行定位处理,然后再进行训练train_variation_model


2)、'robust',如果在训练多张图片时,无法避免训练的图片中出现未知瑕疵,可以使用该模式。此时,ideal image时通过计算多张图片的中值获得,variation image也是通过计算多张图片中值获得。该模式的优点是鲁棒性更强,缺点是无法进行迭代预算。


注意:训练多张张图片时,每张图片的位置、角度必须一致,然后使用concat_obj将图片组合起来,在使用train_variation_model进行训练。


以上两种模式下,训练完图片后只能使用prepare_variation_model算子准备用于图像比较的模板。


3)、'direct',该模式下,可以使用一张图片训练,并不需要使用train_variation_model训练模板,但只能使用prepare_direct_variation_model准备模板,并且prepare_direct_variation_model中的RefImage,就是模板图像,而 VarImage必须通过其他边缘算子生成如,sobel_amp,edges_image, or gray_range_rect.,或者自己制造一个边缘(见Halcon12例程variation_model_single)


2、train_variation_model(Images : : ModelID : )


训练Variation Model。


3、get_variation_model( : Image, VarImage : ModelID : )


返回variation model中的标准图像(Image)和variation image(VarImage),此算子主要用来检视创建的variation model是否OK。


4、prepare_variation_model( : : ModelID, AbsThreshold, VarThreshold : )


     prepare_direct_variation_model(RefImage, VarImage : : ModelID, AbsThreshold, VarThreshold : )


这两个算子的作用是准备用于比较图片的模板,其不同在上文已说明。


输入参数:ModelID,训练或生成的模板。


输入参数:AbsThreshold,绝对阈值。


输入参数:VarThreshold ,相对阈值。


AbsThreshold,VarThreshold 可以分别有一个值,也可以分别有两个值。当都只有一个值的时候,亮暗缺陷都是其决定的。


i(x,y)表示ideal image灰度值,v(x,y)表示variation image灰度值,c(x,y)表示待检测图片的灰度值,a=AbsThreshold,b=VarThreshold


当c(x,y)>i(x,y)+ max{a,b*v(x,y)}为亮缺陷。


当c(x,y)<i(x,y)- max{a,b*v(x,y)}为暗缺陷。


当AbsThreshold,VarThreshold有两个值时,第一个值决定亮缺陷,第二个值决定暗缺陷。


i(x,y)表示ideal image灰度值,v(x,y)表示variation image灰度值,c(x,y)表示待检测图片的灰度值,AbsThreshold=[a1,a2],VarThreshold =[b1,b2]


当c(x,y)>i(x,y)+ max{a1,b1*v(x,y)}为亮缺陷。


当c(x,y)<i(x,y)- max{a2,b2*v(x,y)}为暗缺陷。


5、compare_variation_model(Image : Region : ModelID : )


输入参数:Image,该图像为待检测图像,需要注意的是,该图像也必须与模板图像对齐。待检测图像与variation model进行比较,超过阈值的区域在Rgion参数中返回。同threshold一样,返回的区域被看做一个区域,可以使用connection算子进行连通性分析,然后根据区域的特征(如面积)对区域进行选择。


输出参数:Region,检测出来的区域。输入参数:ModelID,准备好的模板ID。


6、compare_ext_variation_model(Image : Region : ModelID, Mode : )


该算子是算子compare_variation_model的拓展,其参数 MODE可以控制输出暗或亮缺陷或者都输出


7、clear_train_data_variation_model( : : ModelID : )


清除variation model的训练数据所占用的内存。


8、clear_variation_model( : : ModelID : )


释放一个variation model的内存空间



官方案例:


print_check.hdev


stamp_catalogue.hdev


variation_model_single.hdev


variation_model_illumination.hdev



总结:


Variation Model使用标准图像与待检测图像灰度值相比较,来判断产品是否OK,适用于印刷品检测及产品表面检测。从实际算法过程可以看出,此检测实际可分为两部分,对于图像中的大面积灰度一致区域,主要利用待检测图像与标准图像(ideal image)比较得出差异区域,对于图像中的边缘位置(edges)区域,主要利用待检测图像与Variation图像(variation image)比较得出差异区域。所以在实际应用中,应根据实际情况设置AbsThreshold和VarThreshold的值。


相关文章
|
6月前
|
机器学习/深度学习 监控 算法
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
|
6月前
|
数据可视化 数据挖掘
【数据分析与可视化】对图像进行SVD分解并重构图像实战(附源码)
【数据分析与可视化】对图像进行SVD分解并重构图像实战(附源码)
166 0
|
1月前
|
机器学习/深度学习 JSON 算法
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
本文介绍了DeepLab V3在语义分割中的应用,包括数据集准备、模型训练、测试和评估,提供了代码和资源链接。
198 0
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
|
1月前
|
数据采集
遥感语义分割数据集中的切图策略
该脚本用于遥感图像的切图处理,支持大尺寸图像按指定大小和步长切割为多个小图,适用于语义分割任务的数据预处理。通过设置剪裁尺寸(cs)和步长(ss),可灵活调整输出图像的数量和大小。此外,脚本还支持标签图像的转换,便于后续模型训练使用。
18 0
|
5月前
|
数据采集 算法 安全
CVPR 2024:给NeRF开透视眼!稀疏视角下用X光进行三维重建,9类算法工具包全开源
【6月更文挑战第28天】CVPR 2024亮点:SAX-NeRF框架开源!融合X光与NeRF,提升3D重建效果。X3D数据集验证,Lineformer+MLG策略揭示物体内部结构,增强几何理解。虽有计算成本及泛化挑战,但为计算机视觉和医学影像开辟新路径。[论文链接](https://arxiv.org/abs/2311.10959)**
172 5
|
6月前
halcon基础系列之基于相关性模板匹配算子
halcon基础系列之基于相关性模板匹配算子
174 0
|
6月前
halcon基础系列之几何工具相关算子
halcon基础系列之几何工具相关算子
128 0
|
6月前
|
算法 数据挖掘
[Halcon&图像] 阈值分割算法拓展
[Halcon&图像] 阈值分割算法拓展
134 1
|
算法 计算机视觉 网络架构
【项目实践】基于Mask R-CNN的道路物体检测与分割(从数据集制作到视频测试)(一)
【项目实践】基于Mask R-CNN的道路物体检测与分割(从数据集制作到视频测试)(一)
191 0
|
计算机视觉
【项目实践】基于Mask R-CNN的道路物体检测与分割(从数据集制作到视频测试)(二)
【项目实践】基于Mask R-CNN的道路物体检测与分割(从数据集制作到视频测试)(二)
75 0
下一篇
无影云桌面