halcon deeplearn 语义分割经验分享 1

news2025/3/12 9:02:10

本人因为公司遗留问题,为了解决识别错误的问题。尝试过yolo12进行目标检测。初步测试良好但是是halcon的socket通信不行。故而去测试halcon 的deeplearn。自己标注数据。
注: 这个软件使用非常无脑。推荐没有基础的人去用

语义分割

在这里插入图片描述
以下是halcon的调用模型


*读取模型
read_dl_model ('E:/hacon学习/深度学习/纱筒.hdl', DLModelHandle)  //读取预训练模型
*设置模型参数,batch_size将数据集分为较小的数据子集,称为批处理
set_dl_model_param (DLModelHandle, 'batch_size', 1)  
*获取图像的ImageDimensions
get_dl_model_param(DLModelHandle, 'image_dimensions', ImageDimensions)  
*获取ClassIDs
get_dl_model_param(DLModelHandle, 'class_ids', ClassIDs)  
*读取第一张图片
read_image (Image,'E:/hacon学习/深度学习/测试/2025-03-11-14-25-08-254_src_R.jpg')  
*获取图片的大小
get_image_size(Image, Width, Height)  
*灰度化图片
rgb1_to_gray(Image,Image)
*设置新字典
create_dict (DLSample)
*图像缩放到定尺寸
zoom_image_size (Image, ImagePreprocessed, ImageDimensions[0], ImageDimensions[1], 'constant') 
*转换图片的类型为:real
convert_image_type (ImagePreprocessed, ImagePreprocessed, 'real')  
*缩放图像的灰度值。
scale_image (ImagePreprocessed, ImagePreprocessed, 1, -127)  
*在字典中添加一个键/对象对。
set_dict_object (ImagePreprocessed, DLSample, 'image')  
*在一组图像上应用基于深度学习的网络以进行推理。
apply_dl_model (DLModelHandle, DLSample, [], DLResult)
*获取掩码
get_dict_object (SegImage, DLResult, 'segmentation_image') 
*掩码扩展
zoom_image_size (SegImage, ImageZoom, Width, Height, 'constant')
* 将掩码图像转换为区域,这里假设阈值为 1 到 255,可根据实际调整
threshold(ImageZoom, Region, 1, 255)
* 连通区域分析
connection(Region, ConnectedRegions)
* 面积筛选,保留面积在 100000 - 400000 之间的区域
select_shape(ConnectedRegions, FilteredRegions, 'area', 'and', 100000, 400000)
*生成xld轮廓
gen_contour_region_xld (FilteredRegions, Contours, 'border')
*拟合圆形xld
fit_circle_contour_xld (Contours, 'algebraic', -1, 0, 0, 3, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder)
*生成圆形xld
gen_circle_contour_xld (ContCircle, Row, Column, Radius, 0, 6.28318, 'positive', 1)

效果

完全达到了需要的分割效果。但是有个重要问题,模型调用后没有类似模板匹配的相似度评分,!!!!
以下是问题总结

  • 错误的分割像素点: 这些像素点漂离在我目标区域外。所幸可以通过面积去除掉 这个问题在u-net系列模型中也出现过
  • 没有评分机制 这个问题在生产中会导致很严重的问题。语义分割没有评分,生产中如果出现了问题,会导致严重的残次品。我的项目要求比较高,虽然可以提供掩码+xld匹配的方式盖过去。
  • 小区域面积问题: 如果用256256的图片训练会导致IOU非常的难以上升。可以提升为640640去训练。but我要部署的设备cpu不怎么新。会导致调用模型结果变慢,影响生产节拍。
  • 区域不可重复: 大标签的掩码中有小标签的掩码,训练一下。小标签便无了。解决方法: 分离训练多个模型。

国内开发能不用halcon就别用。如果你的项目没有后续的精简要求的话就用halocn吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2313665.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从零开始的python学习(五)P75+P76+P77+P78+P79+P80

本文章记录观看B站python教程学习笔记和实践感悟,视频链接:【花了2万多买的Python教程全套,现在分享给大家,入门到精通(Python全栈开发教程)】 https://www.bilibili.com/video/BV1wD4y1o7AS/?p6&share_sourcecopy_web&v…

Kylin麒麟操作系统服务部署 | ISCSI存储服务

以下所使用的环境为: 虚拟化软件:VMware Workstation 17 Pro 麒麟系统版本:Kylin-Server-V10-SP3-2403-Release-20240426-x86_64 一、网络存储结构 网络存储技术(Network Storage Technologies)是基于数据存储的一种通…

数据结构_单链表

今天我们要开启链表的学习 🖋️🖋️🖋️ 学了顺序表我们可以知道: 🎈链表其实就是争对顺序表的缺点来设计的,补足的就是顺序表的缺点 🎈链表在物理上是上一个节点存放的下一个节点的地址 链表 …

深陷帕金森困境,怎样重燃生活信心?

帕金森,这个悄然影响无数中老年人生活的神经系统疾病,正逐渐走进大众视野。患病后,患者常出现静止性震颤,安静时手部、下肢不自主抖动,如同在默默诉说着身体的异常。肢体变得僵硬,行动迟缓,起步…

C语言(23)

字符串函数 11.strstr函数 1.1函数介绍: 头文件:string.h char *strstr ( const char * str1,const char *str2); 作用:在一个字符串(str1)中寻找另外一个字符串(str2)是否出现过 如果找到…

Docker运行hello-world镜像失败或超时:Unable to find image ‘hello-world:latest‘ locally Trying to pull reposi

Docker运行hello-world镜像失败或超时,报错:Unable to find image ‘hello-world:latest’ locally Trying to pull repository docker.io/library/hello-world … /usr/bin/docker-current: missing signature key. See ‘/usr/bin/docker-current run …

Linux内核如何和设备树协同工作的?

1.编写设备树 cd arch/riscv/boot/dts/ 再cd到厂商,例如下述内容。 2.编译设备树(dts->dtb)通过dtc命令来转换 3.解析设备树 例如上述内容,都是对设备树的解析。 这里重点说一下内核对设备树的处理吧,因为这个内…

LLM中的transformer结构学习(二 完结 Multi-Head Attention、Encoder、Decoder)

文章目录 LLM中的transformer结构学习(二 完结 Multi-Head Attention、Encoder、Decoder)Self-Attention (自注意力机制)结构多头注意力 EncoderAdd & Norm 层Feed Forward 层 EncoderDecoder的第一个Multi-Head AttentionMas…

高效编程指南:PyCharm与DeepSeek的完美结合

DeepSeek接入Pycharm 前几天DeepSeek的充值窗口又悄悄的开放了,这也就意味着我们又可以丝滑的使用DeepSeek的API进行各种辅助性工作了。本文我们来聊聊如何在代码编辑器中使用DeepSeek自动生成代码。 注:本文适用于所有的JetBrains开发工具&#xff0c…

爱可以传递,幸福可以具象化

遇到什么:晚上上课学生吵吵吵,把学生手机全部收了,放讲台上。 感受到的情绪:很烦躁。 反思:收手机也不是长久之计,可是物理有什么翻转课堂呢? 明天的待办事项:早上高数选修课&#x…

力扣-数组-367 有效的完全平方数

思路和时间复杂度 思路:利用二分,确定区间是左闭右闭,然后根据大小进行二分时间复杂度: 代码 class Solution { public:bool isPerfectSquare(int num) {bool flag false;if(num 0 || num 1) return true;long long …

Java关键字与标识符

Java关键字是预定义的保留字,用于定义程序结构和语义,如if、for、class等,不能用作标识符。JDK 8有50个关键字,JDK 11引入var用于局部变量类型推断。标识符用于命名变量、类等,由字母、数字、_、$组成,不能…

【神经网络】python实现神经网络(二)——正向推理的模拟演练

一.神经网络假设 在开始讲解之前,首先我们假设有这样一套神经网络,一共有三层: 其中,关于神经网络的权重、偏置的符号定义如下(如果不知道什么是权重和偏置,可以参考我之前写过的一篇文章:【机器学习】机器学习是什么意思): 以下文章将沿用以上这个设…

DeepSeek模型本地化部署方案及Python实现

DeepSeek实在是太火了,虽然经过扩容和调整,但反应依旧不稳定,甚至小圆圈转半天最后却提示“服务器繁忙,请稍后再试。” 故此,本文通过讲解在本地部署 DeepSeek并配合python代码实现,让你零成本搭建自己的AI…

Houdini SOP层 Scatter节点

SOP 代表 Surface Operator(几何体操作节点),所有几何体的建模、变形、分布等操作都在此层级完成。 Scatter节点的作用就是 以不同的密度在模型表面撒点 Scatter 节点属于 SOP(几何体)层级: 进入 Geometr…

【网络安全工程】任务12:网络安全设备

目录 一、防火墙​ 1、作用​ 2、配置方式​ 3、存在的漏洞​ 二、入侵检测系统(IDS)和入侵防御系统(IPS)​ 1、作用​ 2、配置方式​ 3、存在的漏洞​ 三、防病毒网关​ ​1、作用​ 2、配置方式​ 3、存在的漏洞​ …

Linux 进程控制:创建、终止、等待与程序替换全解析

亲爱的读者朋友们😃,此文开启知识盛宴与思想碰撞🎉。 快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。 目录 1.进程创建 1-1 fork函数初识​ 1-2 fork函数返回值​ 1-3…

SwiftUI 让视图自适应高度的 6 种方法(四)

概览 在 SwiftUI 的世界里,我们无数次都梦想着视图可以自动根据布局上下文“因势而变”‌。大多数情况下,SwiftUI 会将每个视图尺寸处理的井井有条,不过在某些时候我们还是得亲力亲为。 如上图所示,无论顶部 TabView 容器里子视图…

1035.不相交的线

1035.不相交的线 力扣题目链接(opens new window) 在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。 现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足: nums1[i] nums2[j]且绘制的直线…

2001-2023年上市公司数字化转型年报词频统计(年报词频统计和MDA词频统计两种方式)(吴非、赵宸宇、甄红线300+关键词三种方法)

2001-2023年上市公司数字化转型年报词频统计(年报词频统计和MD&A词频统计两种方式)(吴非、赵宸宇、甄红线300关键词三种方法) 1、时间:2001-2023年 2、来源:上市公司年报 3、参考文献: …