【超音速 专利 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文件 未完..

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

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

STM32智能仓储管理系统教程

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

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

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

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

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

初阶数据结构速成

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

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

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

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

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 用于创建,访问,管理,搜索和复制所保存的数据。 我们也可以将数据存储在文件中&…

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

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

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

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

开源PHP论坛HadSky本地部署与配置公网地址实现远程访问

文章目录 前言1. 网站搭建1.1 网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道(云端设置)2.3 Cpolar稳定隧道(本地设置)2.4 公网访问测试 总结 前言 今天和大家分享…

idea启动ssm项目详细教程

前言 今天碰到一个ssm的上古项目,项目没有使用内置的tomcat作为服务器容器,这个时候就需要自己单独设置tomcat容器。这让我想起了我刚入行时被外置tomcat配置支配的恐惧。现在我打算记录一下配置的过程,希望对后面的小伙伴有所帮助吧。 要求…

SpringBoot3.3.0升级方案

本文介绍了由SpringBoot2升级到SpringBoot3.3.0升级方案,新版本的升级可以解决旧版本存在的部分漏洞问题。 一、jdk17下载安装 1、下载 官网下载地址 Java Archive Downloads - Java SE 17 Jdk17下载后,可不设置系统变量java_home,仅在id…

开发技术-Java BigDecimal 精度丢失问题

文章目录 1. 背景2. 方法3. 总结 1. 背景 昨天和小伙伴排查一个问题时,发现一个 BigDecimal 精度丢失的问题,即 double a 1.1;BigDecimal ba new BigDecimal(a).subtract(new BigDecimal(0.1));System.out.println(ba);输出: 1.000000000…

Vue3 使用 Vue Router 时,prams 传参失效和报错问题

Discarded invalid param(s) “id“, “name“, “age“ when navigating 我尝试使用 prams 传递数据 <script setup> import { useRouter } from vue-routerconst router useRouter() const params { id: 1, name: ly, phone: 13246566476, age: 23 } const toDetail…

快速使用BRTR公式出具的大模型Prompt提示语

Role:文章模仿大师 Background: 你是一位文章模仿大师&#xff0c;擅长分析文章风格并进行模仿创作。老板常让你学习他人文章后进行模仿创作。 Attention: 请专注在文章模仿任务上&#xff0c;提供高质量的输出。 Profile: Author: 一博Version: 1.0Language: 中文Descri…

半边数据结构学习

半边数据结构学习 一、网格数据结构二、半边数据结构顶点(Vertex)半边(HalfEdge)面片(Face) 三、OpenMesh 相关代码拓扑关联对象遍历 四、OpenFilpper 相关代码HoleInfo类孔洞检测孔洞信息HoleFiller类孔洞补全 一、网格数据结构 对于表面网络来说&#xff0c;其关键在于拓扑&…