Halcon 二维匹配

匹配:在训练图像中呈现一个所谓的模板。系统从这个模板中派生出一个模型,通过使用该模型来定位于搜索图像中的相似模板对象。此方法能够处理打光、杂乱、位置和旋转变换的图像。

匹配优点:鲁棒性和灵活性。匹配不需要对目标进行任何形式的分割。通过某些匹配方法,即使对象与其他对象重叠,也可以定位对象。

Halcon提供不同的匹配方法,选择哪种方法取决于图像和需要解决的问题。

不同的匹配方法如下:

基于相关性的匹配是根据灰度值和归一化的关系。

基于形状匹配代表机器视觉最新技术,而不适应灰度值,沿着轮廓提取特征,并用于模型的生产和匹配。

局部变换匹配类似于形状匹配,这可处理和返回不同的变形。特别是,除位置和分数外,匹配可以返回搜索图像重要特征,描述变换的向量场以及找到的模型实例的轮廓变换。

透视可变换匹配也类似基于形状匹配,此方法可处理变换较大的透视图,并且返回二维投影变换矩阵而不是2D姿态。

基于描述符的匹配与透视可变形匹配意义相同,在未校准情况下课二维投影变换矩阵,在校准情况下课获得三维位置信息。注意区别是点而不是轮廓被用来创建和识别模型。因此,适应于高纹理对象,但不适合具有圆形边缘的低纹理对象。下图总结二维匹配方法:

1 基本概念

匹配分为以下几步:

1.1 读取图像

获取图像进行模板匹配和训练。

1.2 创建模板

创建模板对象,需要指定覆盖训练图像中模板的感兴趣区域。图像稳定的部分才适合用于训练,训练算子的输入是简化图和控制参数,模型的句柄是训练输出。然后将用于立即搜索或存储到文件中。

1.3 寻找模型

创建(或加载)模型后,现在可以使用它来定位图像中的对象。每个方法都提供直线此任务的特定方法。如果找到一个或多个对象,则返回他妈的姿态(位置、旋转和缩放)或二维投影变换矩阵以及分数。这些值是期望结果可作为视觉过程的下一步的输入,例如定位感兴趣区域。

2 程序示例

2.1 简单示例

cpp 复制代码
read_image(ReferenceImage,'board/board_01')
create_generic_shape_model(ModelID)
gen_rectangle1(ROI,450,470,580,755)
reduce_domain(ReferenceImage,ROI,TrainingImage)
train_generic_shape_model(TrainingImage,ModelID)
set_generic_shape_model_param(ModelID,'num_matches',1)
set_generic_shape_model_param(ModelID,'min_score',0.6)

*
for i:=1 to 9 by 1
    read_image(SearchImage,'board/board_'+i$'02')
    find_generic_shape_model(SearchImage,ModelID,MatchResultID,NumMatchResult)
    
    *检索图像匹配结果
    get_generic_shape_model_result_object(Objects,MatchResultID,'all','contours')
    
    * 显示结果
    dev_display(SearchImage)
    dev_display(Objects)
    Text:='Found instances'
    dev_disp_text(Text,'window',12,12,'black', [], [])
    wait_seconds(1)
endfor

2.2 基于关联的匹配:在纹理中识别标签

cpp 复制代码
read_image(Image,'face_masks/face_mask_01')
create_generic_shape_model(ModelID)
gen_rectangle2(ROI,616.5,708.5,rad(-82.4054),50,35)
reduce_domain(Image,ROI,ImageReduced)
create_ncc_model(ImageReduced,'auto',rad(0),rad(360),'auto','use_polarity',ModelID)

NumImages:=9
Color:='green'
for Index:=1 to NumImages by 1
    read_image(Image,'face_masks/face_mask_'+Index$'02')
    find_ncc_model(Image,ModelID,rad(0),rad(360),0.7,1,0.5,'true',0,Row,Column,Angle,Score)
    dev_display_ncc_matching_results(ModelID,Color,Row,Column,Angle,0)
endfor
相关推荐
HPC_fac1305206781641 分钟前
以科学计算为切入点:剖析英伟达服务器过热难题
服务器·人工智能·深度学习·机器学习·计算机视觉·数据挖掘·gpu算力
小陈phd3 小时前
OpenCV从入门到精通实战(九)——基于dlib的疲劳监测 ear计算
人工智能·opencv·计算机视觉
Guofu_Liao4 小时前
大语言模型---LoRA简介;LoRA的优势;LoRA训练步骤;总结
人工智能·语言模型·自然语言处理·矩阵·llama
ZHOU_WUYI8 小时前
3.langchain中的prompt模板 (few shot examples in chat models)
人工智能·langchain·prompt
如若1238 小时前
主要用于图像的颜色提取、替换以及区域修改
人工智能·opencv·计算机视觉
老艾的AI世界9 小时前
AI翻唱神器,一键用你喜欢的歌手翻唱他人的曲目(附下载链接)
人工智能·深度学习·神经网络·机器学习·ai·ai翻唱·ai唱歌·ai歌曲
DK221519 小时前
机器学习系列----关联分析
人工智能·机器学习
Robot2519 小时前
Figure 02迎重大升级!!人形机器人独角兽[Figure AI]商业化加速
人工智能·机器人·微信公众平台
浊酒南街10 小时前
Statsmodels之OLS回归
人工智能·数据挖掘·回归
畅联云平台10 小时前
美畅物联丨智能分析,安全管控:视频汇聚平台助力智慧工地建设
人工智能·物联网