本技术涉及关键点检测,具体涉及一种猪只关键点修正方法、系统、设备及存储介质。
背景技术:
1、关键点检测是计算机视觉领域中的一个重要任务,其目标是在图像或视频中定位并标识出具有意义的关键点。在人体关键点方面,关键点检测可用于识别人体姿势和动作,例如运动员的姿势分析、健身教练的应用等;在行为分析方面,关键点检测可用于步态分析、手势识别、人体活动跟踪;在安防监控领域中,关键点检测可用于人体追踪、异常行为检测;在人脸应用方面,关键点检测在人脸识别中至关重要,可用于检测人脸的眼睛、鼻子、嘴巴等关键点,进而进行人脸识别和身份验证等。
2、然而,现有的关键点检测方法仍然存在一些不足之处,例如:
3、(1)一些关键点检测方法在处理复杂场景或遮挡时存在精度不足的问题,关键点的偏移可能导致错误定位,特别是在目标之间存在相似性或相似结构的情况下,由于猪群之间存在体型相似性,将关键点检测应用于猪只识别则可能会出现以上问题。
4、(2)一些关键点检测方法对于目标尺度的变化可能过于敏感,如果目标在图像中的尺度发生变化,关键点的位置可能发生偏移,从而影响检测的准确性。另外,当目标被部分遮挡时,一些方法可能无法有效的处理关键点的偏移,遮挡可能导致关键点不可见,使得模型难以正确预测关键点的位置。
5、鉴于此,本技术提出了一种猪只关键点修正方法、系统、设备及存储介质,结合rgb、深度双摄像头,修正关键点的深度值,避免出现因关键点位置漂移导致的定位偏差过大的现象。
技术实现思路
1、为了解决现有技术难以避免关键点的偏移而导致定位错误等问题,本技术提供一种猪只关键点修正方法、系统、设备及存储介质,以解决上述技术缺陷问题。
2、根据本技术的一个方面提出了一种猪只关键点修正方法,该方法包括以下步骤:
3、s1、采集猪只数据图像,猪只数据图像包括rgb图像和深度图像,将猪只数据图像输入至关键点检测模型中,获得多个关键点;
4、s2、根据猪只数据图像中的猪身位置不同,选取相应部分关键点作为预测点,将预测点的中心位置定为锚点,并且从深度图像中获取锚点对应的深度值;
5、s3、获取预测点与锚点之间连线的所有像素点,以及像素点对应的深度值集合;
6、s4、根据预测点与锚点之间的深度值变化情况,从深度值集合中提取出真实深度值,将真实深度值作为预测点所在像素点的深度值;
7、s5、将预测点所在的像素点和真实深度值进行融合,实现rgb图像和深度图像中的预测点对应。
8、通过上述技术方案,本技术可以将深度值偏离猪身的关键点进行深度值修正,进而将rgb通道与深度通道的关键点的像素值与深度值进行融合,实现rgb图与深度图的关键点对应,进而可以对后续的项目起到精度提升的作用,比如猪身长度、宽度、高度的预测以及重量预测等等。
9、优选的,在步骤s4中,根据预测点与锚点之间的深度值变化情况,从深度值集合中提取出真实深度值,将真实深度值作为预测点所在像素点的深度值,包括以下内容:
10、响应于确定预测点与锚点之间的深度值为连续的,则判定为预测点位于猪只身上,提取预测点所在的像素点对应的深度值,作为预测点的真实深度值;
11、响应于确定预测点与锚点之间的深度值存在跃变,则判定为预测点不在猪只身上的第一种情况,提取跃变后的第一个像素点对应的深度值,作为预测点的真实深度值;
12、响应于确定预测点与锚点之间存在一段深度值为零,则判定为预测点不在猪只身上的第二种情况,提取第一个不为零的深度值作为预测点的真实深度值。
13、关键点若想获取到真实的深度值,取决于两个因素:一是由于深度镜头的本身测量误差,容易出现深度空洞(即深度值为0的点),二是由于关键点预测的误差导致关键点偏离,将猪身关键点定位到地面或栏杆上的深度。通过上述技术方案中对三种情况的分析,可正确选取位于猪只身上的预测点的深度值。
14、优选的,步骤s1中,采集猪只数据图像,将猪只数据图像输入至关键点检测模型前,还包括以下步骤:
15、s111、通过rgb和深度双摄像头采集猪只数据图像,猪只数据图像包含有不同品类的猪只、不同角度拍摄的猪只和不同姿态的猪只;
16、s112、对猪只数据图像进行清洗,去除不符合标准的猪只数据图像;
17、s113、使用labelme图像标注工具对清洗后的猪只图像数据进行关键点标注。
18、通过上述技术方案,有利于后续关键点检测模型更未精准的识别出猪只的关键点。
19、优选的,步骤s1中,将猪只数据图像输入至关键点检测模型前,还包括以下步骤:
20、s121、使用猪身旋转目标检测器对输入的猪只数据图像进行检测,获取目标边界框信息,其中目标边界框信息采用旋转矩形表示,最终输出旋转矩形的四点坐标;
21、s122、从四点坐标中,分别选取x轴的最小值和最大值,选取y轴的最小值和最大值,获得最大外接矩形信息;
22、s123、使用最大外接矩形信息对原始的猪只数据图像进行裁剪,获得裁剪图像。
23、优选的,步骤s1中,将猪只数据图像输入至关键点检测模型中,还包括以下步骤:
24、s124、将裁剪图像的长边缩放到固定长度;
25、s125、根据缩放后的长边长度,计算裁剪图像的短边长度;
26、s126、将裁剪图像的短边进行填充,使得短边的长度与裁剪图像的长边长度相同,获得填充图像;
27、s127、将填充图像输入至关键点检测模型中,获得猪只的多个关键点的位置和置信度。
28、通过上述技术方案,本技术能够快速识别出猪只关键点。
29、优选的,在步骤s2中,根据猪只数据图像中的猪身位置不同,选取相应部分关键点作为预测点,包括以下内容:
30、若猪只数据图像中的猪身为左侧,则选取猪只的左前大腿骨根、前胸中心、肚子中间、下腹中部、左后大腿骨根、尾巴根、后腰椎中点以及肩胛骨中点这些关键点中置信度大于阈值的点作为预测点;
31、若猪只数据图像中的猪身为右侧,则选取猪只的右前大腿骨根、前胸中心、肚子中间、下腹中部、右后大腿骨根、尾巴根、后腰椎中点以及肩胛骨中点这些关键点中置信度大于阈值的点作为预测点;
32、若猪只数据图像中的猪身为上面,则选取猪只的左前大腿骨根、左侧猪肚、左后大腿骨根、尾巴根、右后大腿骨根、右侧猪肚、右前大腿骨根以及两耳根中心这些关键点中置信度大于阈值的点作为预测点。
33、通过上述技术方案,可有效避免猪身关键点取到地面或空洞区域的深度值。能够将关键点的深度变到最近猪身区域的深度值,进而优化偏离误差。
34、优选的,在步骤s2中,还包括:获取所有预测点的x轴列表的中心位置以及y轴列表的中心位置,进而将中心位置定为锚点。
35、第二方面,本技术提供了一种猪只关键点修正系统,系统包括:
36、关键点获取模块,配置于采集猪只数据图像,猪只数据图像包括rgb图像和深度图像,将猪只数据图像输入至关键点检测模型中,获得多个关键点;
37、锚点定位模块,配置于根据猪只数据图像中的猪身位置不同,选取相应部分关键点作为预测点,将预测点的中心位置定为锚点,并且从深度图像中获取锚点对应的深度值;
38、深度值集合获取模块,配置于获取预测点与锚点之间连线的所有像素点,以及像素点对应的深度值集合;
39、深度值修正模块,配置于根据预测点与锚点之间的深度值变化情况,从深度值集合中提取出真实深度值,将真实深度值作为预测点所在像素点的深度值;
40、跨通道融合模块,配置于将预测点所在的像素点和真实深度值进行融合,实现rgb图像和深度图像中的预测点对应。
41、第三方面,本技术提供了一种终端设备,包括处理器、存储器以及存储在存储器内的计算机程序,计算机程序被处理器执行以实现如上述中任意一项的猪只关键点修正方法。
42、第四方面,本技术提供了一种计算机可读存储介质,介质中存储有计算机程序,在计算机程序被处理器执行时,实施如上述中任意一项的猪只关键点修正方法。
43、与现有技术相比,本发明的有益成果在于:
44、(1)由于猪身关键点的训练数据集中存在部分人为的标注偏差,且存在数据不均衡的现象,故在关键点检测模型预测输出关键点的位置时,会出现关键点定位偏移的现象。使用本技术提出的一种猪只关键点修正方法,能够有效避免猪身关键点取到地面或空洞区域的深度值,将关键点的深度变到最近猪身区域的深度值,进而优化偏离误差。
45、(2)将深度值偏离猪身的关键点进行深度值修正,进而将rgb通道与深度通道的关键点的像素值与深度值进行融合,实现rgb图与深度图的关键点对应,进而可以对后续的项目起到精度提升的作用,比如猪身长度、宽度、高度的预测以及重量预测等等。