技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种基于关键点和双目立体视觉估算养殖鱼类长度的方法  >  正文

一种基于关键点和双目立体视觉估算养殖鱼类长度的方法

  • 国知局
  • 2024-07-31 22:43:15

本发明属于养殖鱼体长度测量,涉及一种基于关键点和双目立体视觉估算养殖鱼类长度的方法。

背景技术:

1、鱼类体长信息是指导鱼类养殖的重要指标,对渔业养殖有重要意义。传统获取养殖鱼体长的方法是将养殖鱼带离水体进行手工测量,不仅费时费力,还可能会影响养殖鱼生长,不利于养殖。目前机器视觉技术已经广泛应用于水产养殖中的质量分级、品种识别、计数等领域。在鱼类体长测量领域,由于养殖鱼始终处于游动状态,以及养殖环境的复杂,使用机器视觉技术测量养殖鱼体长仍具有挑战。

2、当前国内外学者基于机器视觉的鱼体尺寸测量研究已有相当成果。miranda等在aprototype to measure rainbow trout’s length using image processing中,通过设置水中管道,使目标鱼以相同的校准距离游过摄像机,从而获取目标鱼长度;但该方法需要安装设施,不适用于真实养殖鱼环境。monkman等在using machine vision to estimatefish length from images using regional convolutional neural networks中,使用深度学习模型检测鱼体表面放置的标记块信息得到像素长度和真实长度间的关系并计算鱼长,解决需要额外安装设施的问题;但该方法基于单目相机,只能在固定深度下获取三维信息,而养殖环境下养殖鱼处于游动状态,该方法无法有效获取深度信息,不适用于真实养殖环境。为实现养殖环境下游动状态养殖鱼的动态长度测量,需要获取不同深度下养殖鱼深度信息。目前主流方法是通过光学3d视觉系统获取深度信息,光学3d视觉系统可分为结构光视觉系统与双目立体视觉系统。结构光视觉系统具有资源消耗较低、夜晚可使用以及在一定范围内精度高、分辨率高等特点。petterrisholm等基于结构光视觉系统与图像分割技术,构建了一套水下鱼类长度测量系统,解决了不同深度下养殖鱼深度信息获取问题。但结构光视觉系统具有容易受环境光干扰,随检测距离增加,精度会变差,且结构光相机造价昂贵的缺点。双目立体视觉系统受环境光影响较小,且双目相机硬件要求低,相较结构光视觉系统更适合养殖环境使用。ruoshi cheng等在underwater fish body length estimationbased on binocular image processing中,基于双目立体视觉系统与图像分割技术,构建了一套水下鱼类长度测量系统,并提高了立体匹配算法的效率,实现高效率的水下鱼体长度测量。上述两方法通过图像分割技术确认养殖鱼体长测量像素,但图像分割技术需要计算养殖鱼边缘所有像素,但鱼类体长测量并不需要所有边缘像素,且分割方法无法确定养殖鱼游动方向,这些都会造成额外计算量,降低模型效率。为了解决该问题,本发明使用yolopose算法对养殖鱼长度估算点进行识别,相比分割方法,减少了识别像素的数量也实现了养殖鱼方向的识别。yolopose算法是yolov5算法与关键点识别技术的结合,可以同时实现养殖鱼目标识别与关键点识别。yolo算法作为当前主流目标识别算法,具有识别速度快、精度高与可开发的特点。关键点识别技术可以识别养殖鱼指定部位关键点,对比图像分割技术确定测量点的方法,可以减少计算像素数量,同时可以确定养殖鱼游动方向,提高模型效率。对比hourglass、deeppose、openpose与hrnet等主流关键点识别算法,yolopose算法在多目标关键点识别效果更好,更适合养殖环境中养殖鱼关键点识别。yolov7pose算法将yolopose算法中yolov5算法更换为更新的yolov7算法,具有更好识别效果。

技术实现思路

1、本发明的目的是提出一种基于关键点和双目立体视觉估算养殖鱼类长度的方法,通过yolov7pose算法获取检测鱼目标与关键点坐标信息,使用双目立体视觉算法获取鱼类关键点坐标深度信息,最终使用空间距离算法得到养殖鱼长度信息。

2、本发明的技术方案为:

3、一种基于关键点和双目立体视觉估算养殖鱼类长度的方法,包括以下步骤:

4、步骤1:基于双目相机采集养殖鱼双目数据并进行数据预处理,得到养殖鱼关键点数据集。

5、步骤2:基于yolov7pose模型获取养殖鱼关键点数据集中的养殖鱼目标与关键点坐标信息。

6、步骤3:通过双目视觉法对识别出的养殖鱼关键点进行测距,得到养殖鱼体长关键点深度信息。

7、步骤4:根据养殖鱼关键点深度信息的数量与位置,计算得到养殖鱼体长。

8、步骤5:设计养殖鱼体长过滤器对异常体长数据进行过滤。

9、进一步的,所述步骤1的具体步骤如下:

10、步骤1.1:为避免相机装配公差对双目视觉的深度估计影响,采用张氏标定法进行双目相机校准,通过多视角拍摄标准校对棋盘格,提取棋盘格中的角点作为特征点,建立单应性矩阵求解相机参数,完成相机校准。

11、步骤1.2:使用双目相机俯拍养殖场水面得到双目视频,对双目视频进行视频抽帧处理得到养殖鱼双目数据集。

12、步骤1.3:鱼类关键点识别骨架共设置3个关键点,分别为鱼头、鱼游动弯曲点、鱼尾三个关键点,使用labelme软件按养殖鱼目标、鱼头关键点、鱼游动弯曲点、鱼尾关键点顺序进行标记,只标记左相机部分,最终得到养殖鱼关键点数据集。

13、进一步的,所述步骤2的具体过程如下:

14、步骤2.1:将关键点数据集中的图像输入yolov7pose模型中进行训练,得到养殖鱼关键点yolov7pose模型权重。

15、步骤2.2:通过训练好的yolov7pose模型确定关键点数据集中的被测量养殖鱼目标,用于确定图像中被测量体长的养殖鱼目标位置与数量信息,未被检测到的养殖鱼目标不会进行体长测量。

16、步骤2.3:通过训练好的yolov7pose模型对步骤2.2中已识别的养殖鱼目标进行关键点识别,得到养殖鱼关键点坐标信息,用于养殖鱼体长计算。

17、进一步的,所述步骤3中,获取养殖鱼关键点深度的具体方法如下:

18、基于视差原理,根据左右相机拍摄的同一物体的位置差来计算深度信息;根据相似三角形的原理,养殖鱼各关键点深度计算公式为:

19、

20、式中,f是摄像机的焦距,b是镜头的间距,d是视差,z是养殖鱼关键点深度,xleft是检测关键点在左图像上的x坐标信息,xright是经过sgbm(semi-global block matching)算法匹配后关键点在右图像上的x坐标信息。

21、进一步的,所述步骤4中,当检测到三个关键点,根据养殖鱼三个关键点坐标信息,根据公式(2)得到养殖鱼两关键点间像素长度:

22、

23、其中,l_i是图像中养殖鱼两关键点间像素长度,p1(x1,y1)与p2(x2,y2)分别是两关键点坐标。

24、根据相似三角形原理,将养殖鱼两关键点间像素长度转换为养殖鱼关键点间实际长度,计算公式如下:

25、

26、其中,f是摄像机的焦距,l_i是图像中两关键点间像素长度,zt是从相机到物体的深度,l_r是养殖鱼两关键点间的实际长度。

27、但实际养殖环境中,当养殖鱼上浮或下潜时,养殖鱼三个关键点并不处于同一深度,此时根据公式(3)得到的l_r是养殖鱼长度在相机水平面上的投影,存在误差。为减少误差,将两关键点深度差结合两关键点的投影长度建立直角三角形,根据直角三角形三边长度公式得到养殖鱼实际长度:

28、

29、其中,z1、z2分别代表两关键点深度,l_r是养殖鱼两关键点在真实角度下的长度。

30、分别计算鱼头关键点到鱼弯曲点关键点长度,以及鱼弯曲点关键点到鱼尾关键点长度,两长度之和为鱼体长。

31、进一步的,所述步骤4中,设计养殖鱼长度测量补偿机制测量缺失关键点深度的养殖鱼体长。

32、由于养殖环境的复杂,部分情况下养殖鱼关键点无法检测深度,导致无法测量养殖鱼长度。为解决该问题,本发明提出一种养殖鱼长度测量补偿机制,在养殖鱼环境中,养殖鱼不会进行大幅度的弯曲运动,对于三关键点缺失其中一个关键点深度的情况,使用已有深度信息线段长度估算缺失深度信息线段的长度,养殖鱼长度测量补偿机制根据缺失深度信息关键点的位置分为以下两种情况:

33、1)当鱼弯曲点深度信息缺失时,使用鱼头关键点与鱼尾关键点深度差作为养殖鱼整体深度差。根据公式(5)计算得到养殖鱼长度:

34、

35、其中,l_r为养殖鱼两点在真实角度下的长度,lac为鱼头关键点到鱼尾关键点在相机水平面的投影长度,za为鱼头关键点深度,zc为鱼尾关键点深度。

36、2)当鱼头或者鱼尾关键点深度信息缺失时,由于养殖鱼环境中养殖鱼不会进行大幅度的弯曲运动,可将鱼头关键点到鱼弯曲点投影长度与两点深度差构成的三角形,以及鱼弯曲点到鱼尾关键点投影长度与两点深度差构成的三角形视为相似三角形。以缺失鱼头关键点深度信息为例,此时由于鱼头关键点深度缺失,导致鱼头关键点a到鱼弯曲关键点b在相机水平面的投影长度lab缺失,以及鱼头关键点a与鱼弯曲点关键点b间的深度zab信息缺失。养殖鱼各点间在相机水平面上的投影长度与各点间像素长度比例关系相同,则根据相似三角形原理,使用公式(6)计算养殖鱼体长:

37、

38、其中,a(xa,ya)为鱼头关键点,b(xb,yb)为鱼弯曲点关键点,c(xc,yc)为鱼尾关键点;lbc是鱼弯曲点关键点b到鱼尾关键点c在真实角度下的长度,lbc由公式(4)计算可得。

39、进一步的,所述步骤5中,由于养殖环境的复杂,会出现养殖鱼关键点检测深度偏大或者偏小的情况,使得养殖鱼长度检测结果异常。为了剔除异常养殖鱼体长信息,减少误差,设计一个养殖鱼体长过滤器过滤异常养殖鱼体长数据。所述养殖鱼体长过滤器通过限制记录的养殖鱼长度信息范围以过滤异常养殖鱼体长数据。

40、本发明的有益效果:本发明解决了真实养殖环境下养殖鱼体长测量方法获取深度信息困难与确定养殖鱼体长测量点困难的问题。在确定养殖鱼体长测量点方面,使用yolov7pose模型中的关键点检测方法确定养殖鱼体长测量点,减少边缘像素计算量,提高检测性能;在深度信息获取方面,通过双目视觉法获取深度信息,解决只能在固定距离完成养殖鱼体长测量的问题;最后结合养殖鱼关键点坐标信息与深度信息,提出养殖鱼体长计算方法,并针对真实养殖环境提出养殖鱼体长测量补偿机制。本发明所述方法检测精度高,适用于养殖环境。

本文地址:https://www.jishuxx.com/zhuanli/20240730/194280.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。