申请号 | CN202311601629.7 |
公开号(公开) | CN117710683A |
申请日 | 2023.11.27 |
申请人(公开) | 超音速人工智能科技股份有限公司 |
发明人(公开) | 张俊峰(总); 杨培文(总); 沈俊羽; 张小村 |
摘要
本发明涉及一种基于分类模型的轻量级工业图像关键点检测方法,包括以下步骤:将待检测图像输入特征提取网络,通过特征提取网络提取关键点的图像特征;将图像特征输入网络输出头中,通过网络输出头输出关键点的预测横坐标、预测纵坐标和预测可见性;在待检测图像上标注关键点,并将关键点映射到横坐标轴和纵坐标轴上,计算关键点的横坐标与预测横坐标的第一损失值、纵坐标与预测纵坐标的第二损失值以及真实可见性信息与预测可见性的第三损失值。本发明能满足低算力设备的实时运行需求,并基于分类模型消除基于热图模型的理论误差下界,通过增加关键点的可见性损失函数,避免检测出不存在的关键点。
我的理解
基于分类模型的轻量级工业图像关键点检测方法,包括以下步骤:
一,将待检测图像输入特征提取网络,通过特征提取网络提取关键点的图像特征;
二,将图像特征输入网络输出头中,通过网络输出头输出关键点的预测横坐标、预测纵坐标和预测可见性;
三,在待检测图像上标注关键点,并将关键点映射到横坐标轴和纵坐标轴上,计算关键点的横坐标与预测横坐标的第一损失值、纵坐标与预测纵坐标的第二损失值以及真实可见性信息与预测可见性的第三损失值,根据第一损失值、第二损失值和第三损失值总损失值,并判断总损失值能否通过阈值,若不能则筛选掉该关键点。
四,所述特征提取网络包括步长为1的卷积和MobileNetV3smal l中的一层倒残差结构。
五,,所述网络输出头包括纵坐标分类头、横坐标分类头和可见性分类头,所述纵坐标分类头预测关键点的纵坐标,所述横坐标分类头预测关键点的横坐标,所述可见性分类头预测关键点的可见性。
六,所述纵坐标分类头预测关键点的纵坐标包括以下步骤:
a,将图像特征经过横坐标方向步长为2、纵坐标方向步长为1的二维卷积和ReLU激活函数后,得到图像特征y1;
b,将特征y1经过横坐标方向步长为2、纵坐标方向步长为1的二维卷积和ReLU激活函数后,得到图像特征y2;
c,将特征y2横坐标方向的特征进行全局池化后,得到特征y3;
d,将特征y3经过一维反卷积后,得到特征y4;
e,将特征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编码与纵坐标预测的第二损失值。
九:计算关键点真实可见性信息与预测可见性的第三损失值的方法包括:
用二值交叉熵损失函数计算关键点真实可见性信息和预测可见性的第三损失值。
十:总损失值为第一损失值、第二损失值和第三损失值的加权和,第一损失值、第二损失值和第三损失值的权重分别根据横坐标、纵坐标和可见性的预测难度确定,预测难度与权重成正比。
扩展阅读
视频课程
先学简单的课程,请移步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++**实现。