基于脊线提取的鲟鱼快速统计方法与流程

文档序号:16473379发布日期:2019-01-02 23:20阅读:317来源:国知局
基于脊线提取的鲟鱼快速统计方法与流程
本发明涉及统计方法,特别涉及一种基于脊线提取的鲟鱼快速统计方法。
背景技术
:鲟鱼是一种具有高经济价值的水产物种,人工养殖基地主要分布在浙江、湖北、山东等地,目前产自中国的鱼子酱占世界20%以上。鲟鱼养殖工序繁多,盘点鲟鱼数目是其中的一个重要环节,普遍采用了人工清点的方法,操作时间视养殖规模、作业人数而定。传统的人工方法,不但费时费力,而且极易因连续作业产生疲劳,存在安全隐患。且人工清点属于主观行为,最终的资产数据不具客观性,容易造假,市场无法较好地评估公司产值,造成投资者的财产损失。已有的生物盘点方法包括图像深度学习法、图像形态学法和红外传感器检测法等。这些方法已成功应用于人数统计、医学血细胞计数、鱼苗计数等特定场景,其中红外传感器检测法适用于低黏连度、体积小的鱼苗或虾苗计数,且设备较为复杂;图像深度学习法和图像形态学法是基于图像处理的识别技术,取样方便,设备简易,识别算法对计数精度有较大的影响。在鲟鱼养殖过程中,由于年龄或生长原因个体体积差异较大,鱼池形状不固定(尺寸、外形),属于群体养殖,而且游动的鲟鱼极易出现黏连现象,形态不固定。而采用深度学习则需要采集大量的识别样本,红外传感器检测法无法较好地处理黏连的个体。技术实现要素:本发明所要解决的技术问题是针对现有技术的现状,提供一种识别精度高、速度快、安全可靠的基于脊线提取的鲟鱼快速统计方法。本发明解决上述技术问题所采用的技术方案为:一种基于脊线提取的鲟鱼快速统计方法,其特征在于:包括以下步骤:步骤(1)、在养殖有鲟鱼的鱼池上部设置图像采集装置,获取包含整个鱼池的图像;步骤(2)、根据步骤(1)获取的图像,计算出鲟鱼脊线的平均长度:在步骤(1)中采集的图像中圈定出n1条独立无黏连的鲟鱼,然后滤除上述n1条独立无黏连的鲟鱼之外的其他信息,得到第一图像,再对第一图像进行二值化处理,得到第二图像,根据第二图像计算出n1条独立无黏连的鲟鱼脊线的平均长度;其中,n1为正整数,n1≥3;步骤(3)、对步骤(1)获取的图像进行预处理:在步骤(1)获取的图像中圈定出全部鲟鱼存在的有效区域,然后滤去无关的场景信息,得到第三图像;步骤(4)、对第三图像进行二值化处理,得到第四图像;步骤(5)、对第四图像进行细化处理得到第五图像;步骤(6)、在第五图像中设置搜索区域,对每个搜索区域内出现断连的脊线进行重连,得到鲟鱼脊线图;步骤(7)、根据第四图像获取多个不同的连通域,统计步骤(6)中鲟鱼脊线图相对应位置的每个连通域内的鲟鱼脊线长度,并计算出不同连通域内的鲟鱼总数,从而得到整个鱼池内的鲟鱼总数,其中计算公式为:其中n为整个鱼池内的鲟鱼总数,n为连通域的个数,其中n为正整数,n≥3,round()为四舍五入函数,li为第i个连通域的鲟鱼脊线长度,lavg为鲟鱼脊线的平均长度;步骤(8)、多次采集同一鱼池的图像,重复步骤(2)~步骤(7),并计算出鱼池内鲟鱼总数的均值,作为最后的鲟鱼总数。为了增加图像识别的准确率,所述步骤(1)中在对鱼池图像进行采集前先将鱼池底部铺设白色背景,并将鱼池水位降至能露出鲟鱼的脊背。通过将鱼池底部铺设白色背景使鲟鱼与鱼池背景之间形成鲜明的对比,并将鱼池水位降至能辨识出鲟鱼的位置,从而能更好的辨识出鲟鱼,减少鱼池背景和水位对鲟鱼统计的干扰。作为优选,所述步骤(2)和步骤(4)中的二值化处理采用大津法。由于实际场景较为复杂,为了减少实际场景的影响,采取以下方案:所述步骤(2)和步骤(4)中第一图像和第三图像通过二值化处理之后,再根据手动微调阈值分别得到第二图像和第四图像;其中,第二图像和第四图像中的背景为黑色像素点,鲟鱼为白色像素点。其中,在本方案中,所述步骤(6)中对每个搜索区域内出现断连的脊线进行重连的具体步骤为:步骤(6-1)、搜索第五图像中的非零点:遍历第五图像,如果当前像素点p的像素值为非零,则转入步骤(6-2);反之,则继续搜索;步骤(6-2)、搜索第五图像中的端点:如果当前像素点p的八邻域范围内有且只有一个非零像素点,则当前像素点p为端点,转入步骤(6-3);反之,则跳转到步骤(6-1);步骤(6-3)、搜索第五图像中的重连点:如果同时满足以下三个条件时,则目标像素点d为重连点,则使用线性方法连接当前像素点p和目标像素点d;反之,则跳转到步骤(6-1);(1)、目标像素点d的像素值为非零;(2)、以当前像素点户为中心,目标像素点d处于r×r的搜索区域内;(3)、目标像素点d在最终的腐蚀计数图中相对应位置处的数值大于腐蚀次数的阈值t,其中腐蚀次数的阈值t为预设值。进一步的,获取最终的腐蚀计数图的具体步骤为:步骤a、获取与第四图像相同大小的灰度图像,作为初始腐蚀计数图,其中搜索第四图像中的非零像素点,将初始腐蚀计数图内与第四图像中的非零像素点相对应位置的数值置为1,其他位置的数值置为0:步骤b、使用腐蚀算子对第四图像进行首次腐蚀,获取一次腐蚀之后的二值图,其中腐蚀算子为:010111010搜索一次腐蚀之后的二值图中的非零像素点,在步骤a中获取的初始腐蚀计数图相对应的位置上的数值加1,其他位置的数值保持不变,得到一次腐蚀计数图;步骤c、按照步骤b相同的方式,再次使用腐蚀算子对n次腐蚀之后的二值图进行腐蚀,获取n+1次腐蚀之后的二值图,其中腐蚀算子为:010111010在通过步骤b获取的n次腐蚀计数图相对应的位置上的数值加1,其他位置的数值保持不变,得到n+1次腐蚀计数图,其中n为大于等于2的自然数,n的初始值为1;步骤d、将n的值加1后再次执行步骤c;步骤e、反复执行步骤d,直到n+1次腐蚀之后的二值图中无非零像素点为至,将此次获得的n+1次腐蚀计数图作为最终的腐蚀计数图。与现有技术相比,本发明的优点在于:将鲟鱼的识别问题转化成一维求取问题,通过求取脊线长度,并根据连通域内的脊线长度估算黏连区域内的鲟鱼数目,结合统计平均法减轻数据的随机噪声,提高识别率;利用椭圆形工具和多边形工具确定图像中的目标区域,降低图像处理的难度,因此该方法提高了工作效率,解决了人工清点中对鲟鱼造成的影响,提高了安全性,减少了劳动力,方便快速地统计出鲟鱼数量。附图说明图1为本发明实施例的鲟鱼快速统计方法的流程图;图2为图1中对断连的脊线重连的流程图;图3为本发明实施例的鱼池图像拍摄的结构示意图。具体实施方式以下结合附图实施例对本发明作进一步详细描述。如图1所示,一种基于脊线提取的鲟鱼快速统计方法,包括以下步骤:步骤(1)、在养殖有鲟鱼的鱼池上部设置图像采集装置,获取包含整个鱼池的图像;本实施例中,如图3所示,图像采集装置采用高速工业相机,能避免因外界晃动导致画面模糊,为之后的处理提供清晰的画质。拍摄时,通过摇臂固定高速工业相机,通过控制摇臂的高度和相机高速工业拍摄的角度,将养殖有鲟鱼的整个鱼池画面置于图像内时即可拍摄。本实施例中,高速工业相机的帧率为50帧/秒,近120度的视场角。因为鲟鱼生活在水深大于1.5米的水池中,池水浑浊,高速工业相机拍摄的图像中无法辨识鲟鱼的位置,所以先将降低鱼池水位至一定高度。本实施例中,根据经验数据可将鱼池水位降至0.4米时,露出鱼的脊背即可,并且为了增强目标对象和背景的对比度,由于鲟鱼呈深黑色,为了减少背景对目标对象识别的影响,在对鱼池图像进行采集前先将鱼池底部铺设白色背景,因此在鱼池底部铺设了白色帆布,黑白两色形成了鲜明的对比;现有的鱼池大多为方形鱼池和圆形鱼池两种,根据不同的鱼池形状铺设的帆布形状分成方形衬底和圆形衬底两种,方形衬底主要用于面积较小的方形鱼池,一次性铺设;圆形衬底用于面积较大的圆形鱼池,由多块矩形和扇形衬底组合而成,一般从中间开始铺设这类衬底,之后逐渐拓展至池壁,避免出现帆布缝隙。通过高速工业相机采集了鱼池的黑白化场景照片。由于图像中的彩色信息属于无效信息,因此对采集的图像进行黑白处理。步骤(2)、根据步骤(1)获取的图像,计算出鲟鱼脊线的平均长度:在步骤(1)中采集的图像中圈定出n1条独立无黏连的鲟鱼,然后滤除上述n1条独立无黏连的鲟鱼之外的其他信息,得到第一图像,再对第一图像进行二值化处理,得到第二图像,根据第二图像计算出n1条独立无黏连的鲟鱼脊线的平均长度;其中,n1为正整数,n1≥3;场地形状包括圆形鱼池和方形鱼池两种,无论哪种形状的鱼池都会由于光学系统与感光芯片不适配产生画面中池壁轮廓的畸变,导致无法使用规则的圆形或矩形工具选择出理想的区域。本实施例中提供了椭圆形工具和多边形工具,妥善地解决了鱼池形状不规则的问题,其中,本实施例中n1=5,采用多边形工具对n1条独立无黏连的鲟鱼进行圈定,圈定后的图像中滤去了无关的场景信息,其中,二值化处理采用大津法,对图像进行降噪处理。步骤(3)、对步骤(1)获取的图像进行预处理:在步骤(1)获取的图像中圈定出全部鲟鱼存在的有效区域,然后滤去无关的场景信息,得到第三图像;该步骤(3)中选用椭圆形工具或多边形工具圈定有效区域,滤去了无关的场景信息。步骤(4)、对第三图像进行二值化处理,得到第四图像;其中,二值化处理采用大津法,对图像进行降噪处理,由于实际场景较为复杂,为了减少实际场景的影响,步骤(2)和步骤(4)中第一图像和第三图像通过二值化处理之后,再根据手动微调阈值分别得到第二图像和第四图像;其中,第二图像和第四图像中的背景为黑色像素点,鲟鱼为白色像素点。步骤(5)、对第四图像进行细化处理得到第五图像;其中,细化处理技术采用现有的常规技术,如:[1]王业琳,宁新宝,尹义龙.指纹图像细化算法的研究[j].南京大学学报:自然科学版,2003,39(4):468-475;[2]卞维新,徐德琴.指纹图像细化的复合式算法[j].中国图象图形学报,2011,16(6):1015-1021。步骤(6)、在第五图像中设置搜索区域,对每个搜索区域内出现断连的脊线进行重连,得到鲟鱼脊线图;其中,如图2所示,对每个搜索区域内出现断连的脊线进行重连的具体步骤为:步骤(6-1)、搜索第五图像中的非零点:遍历第五图像,如果当前像素点p的像素值为非零,则转入步骤(6-2);反之,则继续搜索;步骤(6-2)、搜索第五图像中的端点:如果当前像素点p的八邻域范围内有且只有一个非零像素点,则当前像素点p为端点,转入步骤(6-3);反之,则跳转到步骤(6-1);步骤(6-3)、搜索第五图像中的重连点:如果同时满足以下三个条件时,则目标像素点d为重连点,则使用线性方法连接当前像素点p和目标像素点d;反之,则跳转到步骤(6-1);(1)、目标像素点d的像素值为非零;(2)、以当前像素点p为中心,目标像素点d处于r×r的搜索区域内;本实施例中r=50;(3)、目标像素点d在最终的腐蚀计数图中相对应位置处的数值大于腐蚀次数的阈值t,其中腐蚀次数的阈值t为预设值;本实施例中,t=30。并且获取最终的腐蚀计数图的具体步骤为:步骤a、获取与第四图像相同大小的灰度图像,作为初始腐蚀计数图,其中搜索第四图像中的非零像素点,将初始腐蚀计数图内与第四图像中的非零像素点相对应位置的数值置为1,其他位置的数值置为0:步骤b、使用腐蚀算子对第四图像进行首次腐蚀,获取一次腐蚀之后的二值图,其中腐蚀算子为:010111010搜索一次腐蚀之后的二值图中的非零像素点,在步骤a中获取的初始腐蚀计数图相对应的位置上的数值加1,其他位置的数值保持不变,得到一次腐蚀计数图;步骤c、按照步骤b相同的方式,再次使用腐蚀算子对n次腐蚀之后的二值图进行腐蚀,获取n+1次腐蚀之后的二值图,其中腐蚀算子为:010111010在通过步骤b获取的n次腐蚀计数图相对应的位置上的数值加1,其他位置的数值保持不变,得到n+1次腐蚀计数图,其中n为大于等于2的自然数,n的初始值为1;步骤d、将n的值加1后再次执行步骤c;步骤e、反复执行步骤d,直到n+1次腐蚀之后的二值图中无非零像素点为至,将此次获得的n+1次腐蚀计数图作为最终的腐蚀计数图。步骤(7)、根据第四图像获取多个不同的连通域,统计步骤(6)中鲟鱼脊线图相对应位置的每个连通域内的鲟鱼脊线长度,并计算出不同连通域内的鲟鱼总数,从而得到整个鱼池内的鲟鱼总数,其中计算公式为:其中n为整个鱼池内的鲟鱼总数,n为连通域的个数,其中n为正整数,n≥3,round()为四舍五入函数,li为第i个连通域的鲟鱼脊线长度,lavg为鲟鱼脊线的平均长度;其中,根据第四图像获取多个不同的连通域可通过在matlab平台上调用连通域函数bwlabel(bw,8),将第四图像中转换到连通域三维视图中,方便观察连通域情况,并计算鲟鱼脊线图中相对应位置的每个连通域内的鲟鱼脊线长度。步骤(8)、多次采集同一鱼池的图像,重复步骤(2)~步骤(7),并计算出鱼池内鲟鱼总数的均值,作为最后的鲟鱼总数。将本发明的方法应用于实际鲟鱼统计中时,在陆地流水养殖基地和网箱养殖基地分别随机抽取了6个鱼池,总计12个样本,利用本方法对每个样本池进行了3次图像采集,并由计算机(windows10企业版,64位操作系统,i7处理器,cpu2.59ghz,8gb内存)现场运算报数。验收组当场对样本进行人工逐尾点数,将两组数据进行对比分析,计算出本方法在鲟鱼统计过程中的准确率。如表1所示,对陆地流水养殖基地的6个鱼池使用本方法的统计数据总计为927尾,人工逐尾进行盘点统计数据总计为956尾,差异为29尾,平均准确率96.97%;表1陆地流水养殖基地的测试数据如表2所示,对网箱养殖基地的6个鱼池使用本方法的统计数据总计为258尾,人工逐尾盘点数据总计为259尾,差异为1尾,平均准确率99.61%。表2网箱养殖基地的测试数据两个基地的平均准确率达97.53%,平均耗时0.76秒,本方法中将目标识别问题转换成一维问题,通过求取脊线长度而统计出鲟鱼数量;基于连通域内的脊线长度估算黏连的区域内的鲟鱼数目,结合统计平均法减轻了数据的随机噪声;并且利用椭圆形工具和多边形工具确定图像中的目标区域,降低图像处理的难度。因此本发明的方法具有很高的识别准确率,稳定性好,识别率高,并且成本低、可快速地获取鱼池中的鲟鱼数量,对于成千上万的养殖鱼池,极大地缩短了作业时间,提高了工作效率。盘点的鲟鱼一般重达50斤至250斤不等,在连续长时间清点鲟鱼过程中,极易因搬运不当、鲟鱼游动、疲劳作业等不安全因素造成工伤,该系统减少了劳动力和工人直接接触鲟鱼的时间,提高了作业的安全性。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1