【超音速 专利 CN117710683A】基于分类模型的轻量级工业图像关键点检测方法

申请号CN202311601629.7
公开号(公开)CN117710683A
申请日2023.11.27
申请人(公开)超音速人工智能科技股份有限公司
发明人(公开)张俊峰(总); 杨培文(总); 沈俊羽; 张小村

技术领域

本发明涉及图像关键点检测技术领域,具体讲的是一种基于分类模型的轻量级工业图像关键点检测方法。

背景技术

工业关键点检测是指从工业场景中的图像或视频中自动识别出工业产品中的关键点位置,如机器人的末端执行器、零件的定位点等。传统的工业关键点检测算法需要大量的计算资源,并且往往需要训练大规模的数据集,因此在实际应用中存在着一定的局限性。因此迫切需要轻量级的工业关键点检测算法,使在计算资源有限的情况下也能够实现较好的关键点检测效果。
基于热图表示的模型需要多个开销较高的反卷积产生热图,因此速度慢,开销高。由于热图比原图小几倍,因此基于热图的方法会存在理论误差下界。而基于回归的方法受到噪声和随机性影响较大,导致结果不稳定。基于分类的模型不会产生热图,且分类的维度可以是原图尺寸,有更高的精度。分类模型受噪声和随机性影响较小,训练过程更稳定,模型更易收敛。

我的理解

一,将待检测图像输入特征提取网络,通过特征提取网络提取关键点的图像特征。
二,将图像特征输入网络输出头中,通过网络输出头输出关键点的预测横坐标、预测纵坐标和预测可见性。
三,在待检测图像上标注关键点,并将关键点映射到横坐标轴和纵坐标轴上,计算关键点的横坐标与预测横坐标的第一损失值、纵坐标与预测纵坐标的第二损失值以及真实可见性信息与预测可见性的第三损失值,根据第一损失值、第二损失值和第三损失值总损失值,并判断总损失值能否通过阈值,若不能则筛选掉该关键点。
四,所述特征提取网络包括步长为1的卷积和MobileNetV3small中的一层倒残差结构。
五,所述网络输出头包括纵坐标分类头、横坐标分类头和可见性分类头,所述纵坐标分类头预测关键点的纵坐标,所述横坐标分类头预测关键点的横坐标,所述可见性分类头预测关键点的可见性。
六,所述纵坐标分类头预测关键点的纵坐标包括以下步骤:
七,将图像特征经过横坐标方向步长为2、纵坐标方向步长为1的二维卷积和ReLU激活函数后,得到图像特征y1;
八,将特征y1经过横坐标方向步长为2、纵坐标方向步长为1的二维卷积和ReLU激活函数后,得到图像特征y2;
九,将特征y2横坐标方向的特征进行全局池化后,得到特征y3;
十,将特征y3经过一维反卷积后,得到特征y4;
十一,将特征y4经过一维反卷积和ReLU激活函数后,得到关键点的预测纵坐标。
十二,进一步的,所述横坐标分类头预测关键点的横坐标包括以下步骤:
a,将图像特征经过横坐标方向步长为1、纵坐标方向步长为2的二维卷积和ReLU激活函数后,得到图像特征x1;
b,将特征x1经过横坐标方向步长为1、纵坐标方向步长为2的二维卷积和ReLU激活函数后,得到图像特征x2;
c,将特征x2纵坐标方向的特征进行全局池化后,得到特征x3;
d,将特征x3经过一维反卷积后,得到特征x4;
e,将特征x4经过一维反卷积和ReLU激活函数后,得到关键点的预测横坐标。
十三,进一步的,所述可见性分类头预测关键点的可见性包括以下步骤:
将图像特征经过两次横坐标方向和纵坐标方向均为4的卷积,使图像特征的长宽变为原来的1/64,再将卷积后的图像特征进行全局化和全连接操作后,得到关键点的预测可见性。
十四,计算关键点的横坐标与预测横坐标的第一损失值和纵坐标与预测纵坐标的第二损失值,包括以下步骤:
将关键点映射到横坐标轴和纵坐标轴后,形成横坐标方向上的one-hot编码和纵坐标方向上的one-hot编码,再用交叉熵损失函数计算横坐标方向上的one-hot编码与横坐标预测的第一损失值,和纵坐标方向上的one-hot编码与纵坐标预测的第二损失值。
十五,计算关键点真实可见性信息与预测可见性的第三损失值的方法包括:
用二值交叉熵损失函数计算关键点真实可见性信息和预测可见性的第三损失值。
十六,总损失值为第一损失值、第二损失值和第三损失值的加权和,第一损失值、第二损失值和第三损失值的权重分别根据横坐标、纵坐标和可见性的预测难度确定,预测难度与权重成正比。


如果有不明白的,请加文末QQ群。

扩展阅读

视频课程

先学简单的课程,请移步CSDN学院,听白银讲师(也就是鄙人)的讲解。
https://edu.csdn.net/course/detail/38771

如何你想快速形成战斗了,为老板分忧,请学习C#入职培训、C++入职培训等课程
https://edu.csdn.net/lecturer/6176

相关推荐

我想对大家说的话
《喜缺全书算法册》以原理、正确性证明、总结为主。
按类别查阅鄙人的算法文章,请点击《算法与数据汇总》。
有效学习:明确的目标 及时的反馈 拉伸区(难度合适) 专注
闻缺陷则喜(喜缺)是一个美好的愿望,早发现问题,早修改问题,给老板节约钱。
子墨子言之:事无终始,无务多业。也就是我们常说的专业的人做专业的事。
如果程序是一条龙,那算法就是他的是睛

测试环境

操作系统:win7 开发环境: VS2019 C++17
或者 操作系统:win10 开发环境: VS2022 C++17
如无特殊说明,本算法用**C++**实现。

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

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

相关文章

数据库MySQL下载安装

MySQL下载安装地址如下: MySQL :: Download MySQL Community Server 1、下载界面 2、点击下载 3、解压记住目录 4、配置my.ini文件 未完..

C语言课程回顾:九、C语言之预处理命令

9 预处理命令 9 预处理命令9.1 概述9.2 宏定义9.2.1 无参宏定义9.2.2 带参宏定义 9.3 文件包含9.4 条件编译9.5 本章小结9.6 扩展 10种软件滤波方法的示例程序1、限副滤波2、中位值滤波法3、算术平均滤波法4、递推平均滤波法(又称滑动平均滤波法)5、中位…

Vue.js学习笔记(五)抽奖组件封装——转盘抽奖

基于VUE2转盘组件的开发 文章目录 基于VUE2转盘组件的开发前言一、开发步骤1.组件布局2.布局样式3.数据准备 二、最后效果总结 前言 因为之前的转盘功能是图片做的,每次活动更新都要重做UI和前端,为了解决这一问题进行动态配置转盘组件开发,…

【jvm】字符串常量池问题

目录 一、基本概念1.1 说明1.2 特点 二、存放位置2.1 JDK1.6及以前2.2 JDK1.72.3 JDK1.8及以后 三、工作原理3.1 创建字符串常量3.2 使用new关键字创建字符串 四、intern()方法4.1 作用 五、优点六、字节码分析6.1 示例16.1.1 代码示例6.1.2 字节码6.1.3 解析 6.2 示例26.2.1 代…

STM32智能仓储管理系统教程

目录 引言环境准备晶智能仓储管理系统基础代码实现:实现智能仓储管理系统 4.1 数据采集模块 4.2 数据处理与决策模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:仓储管理与优化问题解决方案与优化收尾与总结 1. 引言 智能仓储管理系统…

7 月12日学习打卡--栈和队列的相互转换

hello大家好呀,本博客目的在于记录暑假学习打卡,后续会整理成一个专栏,主要打算在暑假学习完数据结构,因此会发一些相关的数据结构实现的博客和一些刷的题,个人学习使用,也希望大家多多支持,有不…

什么是STM32?嵌入式和STM32简单介绍

1、嵌入式和STM32 1.1.什么是嵌入式 除了桌面PC之外,所有的控制类设备都是嵌入式 嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置”。 嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板,是一种专用的计算机系统。…

初阶数据结构速成

本篇文章算是对初阶数据结构的总结,内容较多,请耐心观看 基础概念部分 顺序表 线性表( linear list )是n个具有相同特性的数据元素的有限序列。 线性表是⼀种在实际中⼴泛使 ⽤的数据结构,常⻅的线性表:…

C语言 错题本

C语言 错题本 文章目录 C语言 错题本77月11号整数求逆--掌握 7月12号求符合给定条件的整数集水仙花数打印九九口诀表--掌握统计素数并求和--掌握 7月13号凑硬币前n项和(一加一减)最大公约数 7月14号正序整数分解 7月17号简单计算器 217月26号求符合给定条件的整数集水仙花数 旨…

【安全设备】上网行为管理

一、什么是上网行为管理 上网行为管理是对企业内部员工使用互联网行为的监视和管理,旨在规范网络使用者的上网行为,提高网络安全性,保护企业信息安全,同时提高员工的工作效率。上网行为管理通过对员工的上网行为进行监控、记录和…

机器学习——关于极大似然估计法的一些个人思考(通俗易懂极简版)

最近在回顾机器学习的一些相关理论知识,回顾到极大似然法时,对于极大似然法中的一些公式有些迷糊了,所以本文主要想记录并分享一下个人关于极大似然估计法的一些思考,如果有误,请见谅,欢迎一起前来探讨。当…

单元测试实施最佳方案(背景、实施、覆盖率统计)

1. 什么是单元测试? 对于很多开发人员来说,单元测试一定不陌生 单元测试是白盒测试的一种形式,它的目标是测试软件的最小单元——函数、方法或类。单元测试的主要目的是验证代码的正确性,以确保每个单元按照预期执行。单元测试通…

合肥高校大学智能制造实验室数字孪生可视化系统平台建设项目验收

合肥高校大学智能制造实验室近日迎来了一项重要时刻,数字孪生可视化系统平台建设项目顺利通过了验收。这一项目的成功实施,不仅标志着合肥高校在智能制造领域取得新的突破,为我国智能制造技术的发展注入新活力。 合肥高校智能制造实验室作为…

T972 切换至pdm 声音输入的方法

1.在hardware/amlogic/audio/audio_hal/audio_hw.c下,直接切换 在 static unsigned int select_port_by_device(struct aml_audio_device *adev) 中先强制切换为pdm 2.在device mk 配置文件中 #add fof fix the mic bug by jason 20230621 PRODUCT_PROPERTY_OVE…

MySQL 数据库基础概念

一、什么是数据库? 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。 每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。 我们也可以将数据存储在文件中&…

浅析Kafka Streams中KTable.aggregate()方法的使用

KTable.aggregate() 方法是 Apache Kafka Streams API 中用于对流数据进行状态化聚合的核心方法之一。这个方法允许你根据一个键值&#xff08;通常是<K,V>类型&#xff09;的流数据&#xff0c;应用一个初始值和一个聚合函数&#xff0c;来累积和更新一个状态&#xff0…

MSPM0G3507(三十六)——超声波PID控制小车固定距离

效果图&#xff1a; 波形图软件是VOFA&#xff0c;B站有教程 &#xff0c;虽然有缺点但是非常简单。 视频效果&#xff1a; PID控制距离 之前发过只有超声波测距的代码&#xff0c;MSPM0G3507&#xff08;三十二&#xff09;——超声波模块移植代码-CSDN博客 SYSCFG配置&#…

Ubuntu下如何设置程序include搜索路径及链接路径

添加库的include及lib路径 linux下系统默认路径为 /usr/include, /usr/local/include, gcc在编译程序时会按照当前目录路径->系统默认路径->系统环境变量的路径方式去查找&#xff0c;所以当我们想调用的库未安装在系统默认路径时&#xff0c;我们可以通过手动添加环境变…

数据压缩的艺术:Kylin Cube设计中的自动压缩特性

数据压缩的艺术&#xff1a;Kylin Cube设计中的自动压缩特性 在大数据的浩瀚宇宙中&#xff0c;Apache Kylin以其卓越的数据立方体&#xff08;Cube&#xff09;技术&#xff0c;为企业提供快速的多维数据分析能力。随着数据量的不断增长&#xff0c;存储效率成为了一个关键问…

用友NC Cloud blobRefClassSearch FastJson反序列化RCE漏洞复现

0x01 产品简介 用友 NC Cloud 是一种商业级的企业资源规划云平台,为企业提供全面的管理解决方案,包括财务管理、采购管理、销售管理、人力资源管理等功能,实现企业的数字化转型和业务流程优化。 0x02 漏洞概述 用友 NC Cloud blobRefClassSearch 接口处存在FastJson反序列…