当前位置: 首页 > news >正文

Halcon 模型变化

模型变化主要原理是将一个或多个图像与理想图像进行比较,以发现显著差异。通过比较有缺陷的对象和正常的对象来识别判断生产的对象。理想图像通常是通过使用多个参考图像进行训练而获得。除了理想图像之外,训练还派生出图像中每个点允许的灰度值变换信息。这些信息存储在所谓的变换中,这两个图像都用于创建一个变化模型,与其他图像进行比较。
模型变换优点可以直接通过灰度值对图像进行比较,并通过图像变换进行空间加权。

1 基本概念

模型变换有几个步骤:
在这里插入图片描述

1.1 图像获取

获取图像进行训练。

1.2 创建模型变换

模型变换通过算子create_variation_model进行图像比较。该算子存在了以下步骤所需的信息。

1.3 图像或ROI定位

模型变换的训练,所有训练图像必须放置在相同位置和相同方向。因此,在训练模型之前,需要定位对象。与变换模型进行比较也需要定位。

1.4 训练模型

模型变换可以通过提供一组包含的优秀样本的图像进行训练,算子train_variation_model使用训练图像计算出理想图像和模型变化的图像的差异。图像变换表示图像上每一点的灰度值变异量,即差值。
如果想多个图像训练模型,例如考虑到存储,可以使用单个图像作为理想图像,但是需要了解空间分布的边界。如果知道可接受的公差在物体的边缘附件,可以通过对理想图像应用边缘滤波器来创建变换图像。在此过程中,跳过训练步骤。

1.5 准备模型

为比较图像模板变换,将理想图像和图像变换转换为两个阈值图像。如果使用train_variation_model算子训练多个模型,则使用算子prepare_variation_model准备模型。如果使用单个图像作为理想图像,并通过过滤理想图像手动创建相应的变换图像。使用sobel_amp,edges_image或gray_range_rect,则必须使用prepare_direct_variation_model进行准备,是因为理想图像和图像变换并没有连接到模型变换中。
获得阈值图像可以使用算子get_thresh_images_variation_model直接获取。

1.6 比较模型差异

使用算子compare_variation_model将图像与准备好的模型变量进行比较。获得的两个阈值(并存储在模型差异中)来确定包含图像中与模型显著不同的所有点的区域。当使用算子compare_ext_variation_model代替时,可以使用比较扩展参数设置。

2 扩展概念

在比较之前,需要对结果进行可视化显示。
在这里插入图片描述

2.1 检测模型质量

用多张图像训练一个模型,可以通过算子get_variation_model查询理想对象的图像和对应图像的差异,检测用于训练的图像是否全部包含类似对象,如果图像差异在应没有边缘的区域中包含了其他差异,可以得出结论,有一个训练图像保护了不需要的特征。

2.2 清理模型数据

在准备好的模型之后,可以通过应用算子clear_train_data_variation_model来减少模型所需的内存。但是,只有当不再需要使用模型进行比较时,才建议使用这方法。删除模型数据后不能够进行的使用算子get_variation_model。

2.3 结果可视化

显示的目标是标记图像中与模型不对应的部分。可以通过连通域进行连通得到区域连通域,然后通过select_shape选择在特定区域范围内的区域来进行显示提取。

2.4 程序示例

read_image(Image,'pen/pen-01')
get_image_size(Image,Width,Height)
gen_rectangle1 (RegionROI, 134.342, 231.317, 200.026, 280.585)reduce_domain(Image,RegionROI,ImageReduced)
create_generic_shape_model(ShapeModelID)
set_generic_shape_model_param (ShapeModelID, 'contrast_low', 40)
set_generic_shape_model_param (ShapeModelID, 'contrast_high', 50)train_generic_shape_model (ImageReduced, ShapeModelID)
set_generic_shape_model_param (ShapeModelID, 'min_contrast', 40)
set_generic_shape_model_param (ShapeModelID, 'angle_start', rad(-10))
set_generic_shape_model_param (ShapeModelID, 'angle_end', rad(10))
edges_sub_pix (ImageReduced, Edges, 'sobel_fast', 0.5, 10, 20)
hom_mat2d_identity (HomMat2DIdentity)
hom_mat2d_scale (HomMat2DIdentity, 4, 4, 0, 0, HomMat2DScale)
affine_trans_contour_xld (Edges, ZoomedEdges, HomMat2DScale)
gen_image_const (VarImageBig, 'byte', 4 * Width, 4 * Height)
count_obj (ZoomedEdges, NEdges)for i := 1 to NEdges by 1select_obj (ZoomedEdges, ObjectSelected, i)get_contour_xld (ObjectSelected, RowEdge, ColEdge)gen_region_polygon (Region1, RowEdge, ColEdge)dilation_circle (Region1, RegionDilation, 2.5)paint_region (RegionDilation, VarImageBig, VarImageBig, 255, 'fill')
endforzoom_image_size (VarImageBig, VarImageSmall, Width, Height, 'weighted')
binomial_filter (VarImageSmall, VarImage, 3, 3)
create_variation_model (Width, Height, 'byte', 'direct', VarModelID)
prepare_direct_variation_model (Image, VarImage, VarModelID, 15, 4)

在这里插入图片描述
琐碎时间阅读基础知识,详情关注微信公众号“知识代码AI”。在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 题解题解题解题解
  • 《古代希腊赛会研究:能揭开古希腊赛会的神秘面纱吗?》
  • 学习编程的第二十天,加油!
  • 【Android】通知的使用
  • 【java基础】徒手写Hello, World!程序
  • 剪画小程序:致敬奥运举重冠军:照片变成动漫风格!
  • Python 爬虫项目实战(二):爬取微博热搜榜
  • Flink笔记整理(六)
  • WordPress资源下载类主题 CeoMax-Pro_v7.6绕授权开心版
  • 函数递归(第十九天)
  • Spring中ImportBeanDefinitionRegistrar源码和使用
  • idea使用free流程,2024idea、2023idea都可以安装免费使用
  • 【Scene Transformer】scene transformer论文阅读笔记
  • jupyter支持跨机器远程访问
  • C语言——数组和排序
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 08.Android之View事件问题
  • ES6系列(二)变量的解构赋值
  • ES6系统学习----从Apollo Client看解构赋值
  • ESLint简单操作
  • HTML-表单
  • Invalidate和postInvalidate的区别
  • Java基本数据类型之Number
  • java取消线程实例
  • nodejs:开发并发布一个nodejs包
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 订阅Forge Viewer所有的事件
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 算法之不定期更新(一)(2018-04-12)
  • 新版博客前端前瞻
  • 一个JAVA程序员成长之路分享
  • 硬币翻转问题,区间操作
  • 原生js练习题---第五课
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ### RabbitMQ五种工作模式:
  • #、%和$符号在OGNL表达式中经常出现
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (10)STL算法之搜索(二) 二分查找
  • (12)Hive调优——count distinct去重优化
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (WSI分类)WSI分类文献小综述 2024
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (安卓)跳转应用市场APP详情页的方式
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (第一天)包装对象、作用域、创建对象
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (力扣)循环队列的实现与详解(C语言)
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (一)u-boot-nand.bin的下载