一种基于Mask-Rcnn识别鱼类状态的检测方法

文档序号:191455 发布日期:2021-11-02 浏览:32次 >En<

阅读说明:本技术 一种基于Mask-Rcnn识别鱼类状态的检测方法 (Detection method for identifying fish state based on Mask-Rcnn ) 是由 牛广宇 钱思文 朱星臣 张继 张振伟 徐淑玲 于 2021-07-28 设计创作,主要内容包括:本发明涉及图像识别技术领域,涉及一种基于Mask-Rcnn识别鱼类状态的检测方法,包括以下步骤:S1、对视频数据进行灰度化处理、压缩、间隔M1帧选取图像数据帧;S2、选取连续M2帧图像数据进行时空卷积和降采样处理;S3、对每个图像数据帧赋予一个标签;S4、对图像数据帧进行灰度化处理、压缩;S5、每个图像数据帧利用大小为m×m像素的滑窗分成t个分块;S6、判断标签数据二的值与所在图像的标签数据一的值相等。本发明通过K-Means算法标签鱼饥饿状态;通过检测鱼白占比标签鱼的死亡;通过Mask-Rcnn模型的Softmax分类器对鱼饥饿状态和死亡状态准确分类。(The invention relates to the technical field of image recognition, in particular to a detection method for recognizing fish states based on Mask-Rcnn, which comprises the following steps: s1, carrying out gray processing and compression on the video data, and selecting image data frames at intervals of M1 frames; s2, selecting continuous M2 frames of image data to perform time-space convolution and down-sampling processing; s3, assigning a label to each image data frame; s4, carrying out gray processing and compression on the image data frame; s5, dividing each image data frame into t blocks by using a sliding window with the size of m multiplied by m pixels; and S6, judging that the value of the label data II is equal to the value of the label data I of the image. The fish hunger state is labeled through a K-Means algorithm; detecting the death of the labeled fish by detecting the white ratio of the fish; the fish hunger status and death status were accurately classified by the Softmax classifier of Mask-Rcnn model.)

一种基于Mask-Rcnn识别鱼类状态的检测方法

技术领域

本发明涉及图像识别技术领域,尤其涉及一种基于Mask-Rcnn识别鱼类状态的检测方法。

背景技术

在水产养殖业,饲料成本永远是所有投入中最大的项目,优化投喂方案将大大降低成本。附加地,饲料利润率的提升,也可以减少残饵降解产生的毒素,减轻环境和养殖水体的压力,所以现代化的养殖工艺中一个优秀的投喂方案是重中之重。

现有技术方案是使用人工投喂养殖,只能靠饲养人员的个人经验和观察料台来投喂饲料。而往往在水产养殖中,养殖生物处在不断的生长过程中,所以需要实时的调整投喂方案,于是需要开发可以识别鱼虾的生长特性,从而实现自动投喂的系统。

现有鱼类养殖中还存在以下问题:

1、投喂时间无法准确把控:鱼类处在不断的生长过程中,传统的人工养殖方式投喂饲料时间都是固定的,无法根据鱼类的饥饿状态判断何时投喂。

2、鱼类死亡无法及时监控:通常鱼类死亡一段时间后会浮出水面,此时氨化作用已经进行一大半,死鱼体内的油脂就已经开始外渗,未能及时发现和处理外渗的油脂就会对水体造成污染。

发明内容

本发明解决的技术问题:通过K-Means算法标签鱼饥饿状态,为准确提供投喂时间提供依据;通过检测鱼白占比标签鱼的死亡,从而准确打捞死鱼提供依据;通过Mask-Rcnn模型的Softmax分类器对鱼饥饿状态和死亡状态准确分类。

本发明所采用的技术方案:一种基于Mask-Rcnn识别鱼类状态的检测方法,包括以下步骤:

S1、通过设置在鱼缸上的摄像机采集鱼类视频流数据,从采集到的视频流数据中选取一段数据作为视频数据一,对视频数据一进行灰度化处理、压缩、间隔M1帧选取一个图像数据帧形成样本一;

S2、对样本一中选取连续M2帧图像数据进行时空卷积和降采样处理;

S3、对样本一的每个图像数据帧赋予一个标签数据一,如果正常行为状态标签为1,异常行为状态为2;

S4、再对样本一中的图像数据帧进行灰度化处理、压缩,在压缩后的图像数据帧中,间隔M3帧选取一个图像数据帧形成样本二;

S5、将样本二中的每个图像数据帧利用大小为m×m像素的滑窗分成t个分块;

S6、给每个分块赋予一个标签数据二,当标签数据二的值与所在图像的标签数据一的值相等时,进入下一步;

S7、将所有分块融合成一个m×m×t行、n列的输入矩阵,同时形成一个n行、1列的标签矩阵;对输入矩阵和标签矩阵求互信息,并求出每m×m行的互信息总和,对各互信息总和降序排序;保留互信息总和排序第一的行、n列的矩阵,并按列拆解,对某一列,每m行作为新矩阵的一列,形成m行m列的新矩阵,对每个新矩阵做转置,最终获得n个大小为m×m的新分块矩阵;

S8、对S7得到的n个互信息最高的新分块矩阵,按每M4帧个连续分块的输入矩阵进行时空卷积和降采样处理,得到M5帧个特征图及对应的标签矩阵;

S9、将S8得到的M5帧个特征图与标签矩阵输入Mask-Rcnn模型的Softmax分类器中进行训练;

S10、从采集到鱼视频数据中再选取一段数据作为视频数据二(视频数据一和视频数据二不重复),对视频数据二图像数据帧进行灰度化处理,压缩,每隔M6帧选取一个图像数据帧形成测试样本,对测试样本进行时空卷积和降采样处理;

S11、将S10测试样本数据输入训练好的Mask-Rcnn模型,验证Mask-Rcnn模型的准确性。

进一步的,所述S3的异常行为状态包括鱼饥饿状态和死亡状态。

进一步的,鱼饥饿状态检测包括:

S311、获取鱼体的坐标参数,计算出鱼的特征点坐标;

采用Opencv库函数cornerHarris()对鱼的图像进行检测,获取鱼的特征点坐标;

S312、使用坐标系绘制鱼体的特征点图;

使用python绘图库函数Matplotlib对鱼的特征点进行绘制;

S313、使用K-Means聚类算法求出聚类块、中心点、密集度参数;

求聚类块、中心点计算过程如下:

a)从输入的数据点集合中随机选择一个点作为第一个聚类中心μ1;

b)对于数据集中的每一个点xi,计算它与已选择的聚类中心中最近聚类中心的距离D(xi)=argmin||xi-μr||^2……r=1,2,...k;

c)选择下一个新的数据点作为新的聚类中心,选择的原则是:D(x)较大的点,被选取作为聚类中心的概率较大;

d)重复b和c直到选择出k个聚类质心;

e)利用这k个质心来作为初始化质心去运行标准的K-Means算法;

求密集度过程:

针对每个聚类块中最外侧的点,将其两两相连,计算其覆盖面积S1,然后再选取该聚类最外侧的点,计算其与中心点的距离L,计算以L为半径的圆的面积S2,密集度为S1/S2;

从而计算出饥饿程度=密集度×聚类块的面积占比;

其中,聚类块面积占比=聚类块面积Xn/聚类块总面积为X;使用Opencv库中的contourArea()函数,计算得到每个聚类块的面积X1,2,3…n,对其求和,可得到聚类块总面积X,第n个聚类块的面积占比即为Xn/X;

S314、按照不同的聚类块进行分类(如A、B、C组),针对每个聚类块进行求中心以及计算点密度操作;

S315、对比投喂食前后,鱼食附近聚类块的密集度变化;如果在短时间内(30秒内),密集度显著增大,比如从20%增加至60%,便判断鱼为饥饿状态;

进一步的,鱼死亡检测包括:

S321、利用Python-opencv库对图像数据的鱼特征点坐标对鱼体部分进行ROI的区域提取,得到鱼的图像面积Y;

采用hsv模型进行提取,hsv模型中颜色的参数分别是:色调(h:hue),饱和度(s:saturation),亮度(v:value),对于白色,其hsv参数如下:h:0~180;s:0~30;v:221~255;

S322、将图像进行二值化处理、二值化是指将图像过滤为只有黑白两色,便于对鱼白部分的提取;

将图像进行直方图均衡化处理,接着使用opencv库中的inRange()函数对图像进行颜色检测,设置hsv的阈值为h:0~180;s:0~30;v:221~255;

S323、检测提取图像中鱼白的占比,计算公式为Y1/Y,例如当鱼白占比大于阈值30%时,则判断为鱼死亡;

通过inRange()函数得到二值化图像,使用opencv函数findContours()提取该图像中的轮廓,接着再使用contourArea()函数便可计算出鱼白的图像面积Y1;

进一步的,当鱼死亡达到一定数量后,联动检测系统发出警告,检测系统根据鱼缸中的死鱼数达到预警值触发系统告警提示。

本发明的有益效果是:

1、利用K-Means算法准确标签鱼饥饿状态;

2、通过检测鱼白占比,准确标签鱼的死亡状态;

3、通过Mask-Rcnn模型的Softmax分类器对鱼饥饿状态和死亡状态准确分类。

附图说明

图1是本发明基于基于Mask-Rcnn识别鱼类状态的检测方法流程图;

图2是本发明鱼饥饿状态和正常状态的效果对比图。

具体实施方式

下面结合附图和实施例对本发明作进一步说明,此图为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。

一种基于基于Mask-Rcnn识别鱼类状态的检测方法,如图1所示,S1、对采集到的视频流数据中选取一段数据作为视频数据一,对视频数据一进行灰度化处理、压缩、间隔100ms帧选取一个图像数据帧形成样本一;

S2、对样本一中选取连续10ms帧图像数据进行时空卷积和降采样处理;

S3、对样本一的每个图像数据帧赋予一个标签数据一,如果正常行为状态标签为1,异常行为状态为2;

S4、再对样本一中的图像数据帧进行灰度化处理、压缩,在压缩后的图像数据帧中,间隔10ms帧选取一个图像数据帧形成样本二;

S15、将样本二中的每个图像数据帧利用大小为256×256像素的滑窗分成10个分块;

S16、给每个分块赋予一个标签数据二,当标签数据二的值与所在图像的标签数据一的值相,进入下一步;

S7、将所有分块融合成一个256×256×10行、10列的输入矩阵,同时形成一个10行、1列的标签矩阵;对输入矩阵和标签矩阵求互信息,并求出每256×256行的互信息总和,对各互信息总和降序排序;保留互信息总和排序第一的行、10列的矩阵,并按列拆解,对某一列,每256行作为新矩阵的每一列,形成256行256列的新矩阵,对每个新矩阵做转置,最终获得10个大小为256×256的新分块矩阵;

S18、对S7得到的10个互信息最高的新分块矩阵,按每10ms帧个连续分块的输入矩阵进行时空卷积和降采样处理,得到10ms帧个特征图及对应的标签矩阵;

S19、将S18得到的10ms帧个特征图与标签矩阵输入Mask-Rcnn模型的Softmax分类器中进行训练;

S20、从采集到鱼视频数据中再选取一段数据作为视频数据二(视频数据一和视频数据二不重复),对视频数据二图像数据帧进行灰度化处理,压缩,每隔10ms帧选取一个图像数据帧形成测试样本,对测试样本进行时空卷积和降采样处理;

S21、将S20测试样本数据输入训练好的Mask-Rcnn模型,验证Mask-Rcnn模型的准确性

进一步的,鱼饥饿状态检测包括:

S311、获取鱼体的坐标参数,计算出鱼的特征点坐标;

S312、使用坐标系绘制出这些点;

S313、使用K-Means聚类算法求出聚类块、中心点、密集度参数;

求聚类块、中心点:

a)从输入的数据点集合中随机选择一个点作为第一个聚类中心μ1;

b)对于数据集中的每一个点xi,计算它与已选择的聚类中心中最近聚类中心的距离D(xi)=argmin||xi-μr||^2……r=1,2,...k;

S314、按照不同的聚类块进行分类(如A、B、C组),针对每个聚类块进行求中心以及计算点密度操作;

S315、对比投喂食前后,鱼食附近聚类块的密集度变化;指如果在短时间内,密集度由20%增加60%,便判断鱼为饥饿状态;

如图2所示为十四条鱼正常状态和饥饿状态下的特征点坐标图,图2的右图中左下角鱼群密集度明显增大,鱼为饥饿状态。

进一步的,鱼死亡检测包括:

S321、利用Python-opencv库对图像数据的鱼特征点坐标对鱼体部分进行ROI的区域提取;

S322、将图像进行二值化处理、二值化是指将图像过滤为只有黑白两色,便于对鱼白部分的提取;

S323、检测提取图像中鱼白的占比,当鱼白占比大于30%,则判断为鱼死亡。

本发明的有益效果:利用图像识别和Mask-Rcnn算法准确计算鱼的长度,并根据长度计算出重量,从而准确计算出饲料投喂量。利用K-Means算法,准确标签鱼饥饿状态;通过检测鱼白占比准确标签鱼的死亡状态。

以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于识别交通标志的方法和设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!