一种基于计算机视觉的残留鱼饵计数方法与流程

文档序号:16978077发布日期:2019-02-26 19:13阅读:396来源:国知局
一种基于计算机视觉的残留鱼饵计数方法与流程

本发明涉及水产养殖和图像处理领域,尤其是涉及一种基于计算机视觉的残留鱼饵计数方法。



背景技术:

饵料浪费一直是水产养殖中的严重问题。一方面,由于饵料在水产养殖经济成本中占比较大,剩余的饵料是巨大的经济损失。另一方面,剩余的饵料会污染水源、恶化养殖生物的生长环境,加重养殖生物的患病风险。因此,准确获取饵料的剩余情况,对于实现精准投饵和计算机视觉具有十分重要的现实意义。

随着数字图像处理、防水摄像机等理论和技术的快速发展,越来越多的计算机视觉技术被用于水产养殖业的各个领域,例如对养殖生物的尺寸测量、疾病诊断、残饵检测等方面。目前,已有学者研究将计算机视觉技术用于残留饵料检测。foster等人使用了一个水下摄像机对着一个海水笼子,观察并统计在喂食过程中落下的饵料颗粒,计数时要对鱼饵进行追踪,需考虑鱼饵的下落速度、帧采样速率等(foster,m.,petrell,r.,ito,m.r.,ward,r.,1995.detectionandcountingofuneatenfoodpelletsinaseacageusingimageanalysis.aquacult.eng.14,251269.)。基于卡尔曼滤波和成本最小化的整合方法,等人提出了一个来定量海水网箱饲料密度的设计(kr,alvermo,alfredsenja.,2014.acomputervisionapproachfordetectionandquantificationoffeedparticlesinmarinefishfarms.ieeeinternationalconferenceonimageprocessing16481652.)。parsonage设计了一个图像处理框架,通过向上观察大西洋鲑鱼网箱养殖的相机来检测和识别鱼饲料颗粒(parsonage,k.d.,2001.detectionoffish-foodpelletsinhighly-clutteredunderwaterimageswithvariableillumination.masterthesis.universityofbritishcolumbia,canada.)。穆春华等人根据残饵和粪便在灰度分布、形状上的差异,提取平均灰度、骨架数等特征输入支持向量机(svm)和改进的决策树,进而辨别残饵和粪便(穆春华,范良忠,刘鹰.基于计算机视觉的循环水养殖系统残饵识别研究[j].渔业现代化,2015,42(2):33-37.)。

从现有的研究可知,许多研究人员已运用计算机视觉技术检测残留饵料且取得一些成果,但是很多算法由于未考虑池水浑浊、光照不均、饵料粘连等养殖环境中常见的情况,实际检测饵料时准确度较低,仅处于理论研究阶段并不能用于实际生产无法创造经济效益。

因此,为了提高实际生产中饵料计数的准确性,必须考虑解决水产养殖中检测残留饵料经常遇到的更为实际的问题。



技术实现要素:

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于计算机视觉的残留鱼饵计数方法。

本发明的目的可以通过以下技术方案来实现:

一种基于计算机视觉的残留鱼饵计数方法,包括以下步骤:

1)获取水下图像,并对池水浑浊导致的图像模糊和细节丢失,采用图像清晰化算法对图像进行预处理;

2)考虑人工光源引起的光照不均,采用自适应分类分割算法分割前景和背景,并转化为二值图;

3)搜寻前景物体的轮廓序列,并剔除轮廓点数不属于设定范围内的轮廓;

4)基于前景物体的轮廓特征,剔除非饵料物体的轮廓;

5)计算剔除处理后各个轮廓的面积并排序,确定单颗饵料的面积;

6)估计当前轮廓包含的饵料颗粒数,将所有轮廓估得的颗粒数相加,即得到最终残留饵料颗粒数。

所述的步骤1)中,图像清晰化算法具体包括以下步骤:

11)基于暗通道先验理论获取水下图像的暗通道图,并计算所有暗通道的中值m,并判断中值m是否小于设定的阈值μ,若是,则进行步骤12),若否,则进行步骤14);

12)计算水下图像的透射率,并采用导向滤波的方法对透射率进行优化,所述的透射率t(x)的计算式为:

其中,ω为调整去雾程度的因子,且0<ω<1,ω(x)为以像素点x为中心的局部区域,c为图像r,g,b通道中的一个颜色通道,ic(y)为彩色图像每个通道的值,ac为彩色图像每个通道的背景光值;

13)采用自适应的背景光复原水下图像,并进行步骤2),复原后的水下图像j(x)表示为:

其中,i(x)为输入的水下图像,a为自适应背景光,t0为透射率t(x)的下限值;

14)采用限制对比度自适应直方图均衡化处理水下图像的r,g,b通道,具体为:

对于分离出三个通道,采用限制对比度自适应直方图均衡化依次处理r,g,b通道,得到三个通道的处理结果,并将三个通道的均衡化结果合并;

15)修正增强后的r,g,b通道的值,平衡水下图像色彩,所述的修正后的r,g,b通道的表达式为:

r′n=rn+(δr-δrn)

g′n=gn

b′n=bn+(δb-δbn)

δr=mr-mg

δb=mb-mg

δrn=mrn-mgn

δbn=mbn-mgn

其中,r′n、g′n、b′n为修正后的r,g,b通道,rn、gn、bn为均衡化后的r,g,b通道,mg为g通道中像素值的众数,mr、mb为与mg对应位置相同r,b通道的像素点的像素平均值,mrn、mgn、mbn为均衡化的图像中与mg对应位置相同的r,g,b通道的像素点的像素平均值。

所述的步骤2)具体包括以下步骤:

21)根据图像大小和处理时间确定子窗口的大小l,对预处理后的图像进行边界拓展,并将拓展后的图像转换成灰度图,以拓展前图像为基准,子窗口从最左上角的像素开始扫描;

22)采用expectationmaximization算法拟合子窗口内的像素点得到两个混合高斯分布,记两个高斯分布的均值、方差分别为μ1,σ1,μ2,σ2,若|μ1-μ2|>1.3(σ1+σ2),则进行步骤23),否则进行步骤24);

23)在子窗口内运用otsu算法得到阈值thotsu,并计算补偿值则子窗口内中心像素对应的第一阈值thbimodal=thotsu-δ,其中,a,c为系数,为类间方差;

24)若直方图为单峰,则计算第二阈值thunimodal,具体计算式为:

25)比较子窗口中心像素的灰度值与阈值thbimodal或thunimodal,若像素灰度值大于阈值,则二值图像相应像素设为0,即黑色,否则二值图像相应像素设为255,即白色;

26)判断子窗口中心像素是否为拓展前图像最左下角的像素,若是则结束处理,否则右移一个像素,并重复步骤23)-25)。

所述的步骤3)具体包括以下步骤:

31)对二值图采用形态学方法,修复二值图中目标边界的缺陷并消除噪声;

32)采用基于边缘跟踪的数字化二值图像拓扑结构分析方法,提取单像素宽度的物体的最外层轮廓;

33)遍历找到的目标轮廓序列,将各个轮廓所包含的点数与设置的阈值上下限比较,将不在范围内的轮廓从目标轮廓序列中删除。

所述的步骤4)具体包括以下步骤:

41)通过外接轮廓和原轮廓面积比的形式识别饵料类型为散落的单颗饵料或星型饵料堆,具体为:

411)在目标轮廓序列中获取当前目标物体轮廓的面积;

412)获取当前目标物体轮廓的最小外接圆,并计算最小外接圆的面积;

413)获取最小外接圆面积和当前目标物体轮廓面积的比值r,并将该比值与设定的阈值th进行比较,若r≤th,则判定当前物体轮廓为单颗饵料,若r>th,则判定当前物体轮廓为星型饵料堆;

42)采用曲线逼近方法识别长条形饵料堆和非饵料物体,具体为:

421)在目标轮廓序列中,获取当前目标物体轮廓上点的数量contours;

422)采用曲线逼近当前目标物体轮廓,获取逼近曲线上点的数量contours_poly;

423)根据当前目标物体轮廓上点的数量和逼近曲线上点的数量进行判断,具体为:

若contours_poly为0,则判断当前目标物体轮廓为饵料;

计算比值ratio=contours/contours_poly,设定阈值为threshold,若ratio<threshold,则判定当前目标物体的轮廓为饵料,若ratio>threshold,则判定当前目标物体的轮廓为非饵料物体。

所述的步骤5)具体包括以下步骤:

51)在目标轮廓序列中遍历剔除后的剩余轮廓序列,获取剩余轮廓的面积并存入剩余面积向量中;

52)对剩余轮廓的面积从小至大排序,选定面积的中值sm作为单颗饵料的面积;

53)由剩余面积向量的1/2处向前遍历直至1/4处,记当前的值为cur,其前面的一个值为pre,若cur与pre的比值大于1.5,则将中值sm的值更新为pre,并继续向前遍历至向量的1/4处。

所述的步骤6)具体包括以下步骤:

61)计算当前轮廓的面积,并将其单颗饵料的面积进行比较,记当前轮廓的面积和单颗饵料面积的比值为rs,若0.5<rs<1.5,则饵料的计数变量加1,否则进行步骤62);

62)若rs<0.5,则将当前轮廓判定为饵料残屑并忽略当前轮廓,若rs>1.5,则进行步骤62);

63)将剩余的轮廓作为黏连的饵料堆,并用其面积除以单颗饵料的面积,取结果的近似整数作为黏连的饵料堆中包含饵料的数量,将计数结果添加至计数变量;

64)判断当前轮廓是否为最后一个轮廓,若是,则结束计数,若否,则重复步骤61)-63)。

与现有技术相比,本发明具有以下优点:

一、适应浑浊池塘水环境:本发明提出了一种图像清晰化方法,能够有效提升图像对比度、增加细节表现,使得残留饵料计数算法可以适应较浑浊的池塘水环境;

二、适应光照不均情况:本发明所采用的自适应分类分割算法结合周围像素点信息确定相应的阈值,可以适应光照不均的情况,比较准确地分割前景和背景;

三、考虑粘连、计数准确:本发明采用面积阈值区分的方式,即便是在饵料粘连严重的情况下,该基于计算机视觉的残留饵料检测算法亦能取得较为准确的计数结果。

附图说明

图1为本发明的算法流程图。

图2为图像清晰化算法流程图。

图3为自适应分类分割算法流程图。

图4为计数策略流程图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。

实施例

如图1所示,本发明提供一种基于计算机视觉的残留鱼饵计数方法,包括以下步骤:

步骤1,从所捕获的水下视频中按照间隔10s的频率,截取饵料图像;

步骤2,对图像进行预处理;

具体的,针对池水浑浊导致的图像模糊、细节丢失等问题,采用一种图像清晰化算法,该算法结合基于暗通道先验的去雾算法和限制对比度自适应直方图均衡,如图2所示,具体步骤包括:

步骤2.1,基于暗通道先验理论,计算所截取的饵料图像的暗通道图并求所有暗通道的中值m,判断m是否小于设定的阈值25,若m<25,则跳至步骤2.2,若m>=25,跳至步骤2.4;

基于暗通道先验理论计算水下图像的暗通道,其中任一图像j的暗通道jdark(x)的定义为:

式中,c是j的一个颜色通道,ω(x)是以像素点x为中心的局部区域,为求取图像三个通道中的最小值,为求取图像j以像素点x为中心的局部区域中的最小值,ω(x)为15*15的方形;

步骤2.2,计算水下图像的透射率,采用导向滤波的方法对透射率进行优化;

计算水下图像的透射率t(x)的计算公式为:

式中,ω是调整去雾程度的因子(0<ω<1);

采用导向滤波的方法对透射率进行优化,将原饵料图像的灰度图作为导向图,将求得的透射率图作为输入图,输出即优化后的透射率图;

步骤2.3,采用自适应的背景光来复原水下图像,跳至步骤3,具体为:

采用自适应的背景光,该背景光为:

在步骤2.1求得的暗通道图中,以待复原像素点(x,y)为中心,使r*r的子窗口每次移动一个像素点,先选取子窗口中暗通道值最大的点,再选取输入图像中该点对应的值作背景光值,然后与设定的阈值上限(aup)、下限(adown)相比较从而最终确定点(x,y)的背景光的值;通过上限aup限制背景光,可减少由人工光源引起的亮度,避免复原水下图像时过补偿。

复原后的水下图像j(x)可表示为:

式中,将t0的值设为0.1;

步骤2.4,使用限制对比度自适应直方图均衡化处理图像的r,g,b通道,具体包括:

分离出三个通道,使用限制对对比度自适应直方图均衡化依次处理r,g,b通道,得到三个通道的处理结果,再将三个通道的均衡化结果合并成一幅图;

步骤2.5,修正增强后的r,g,b通道的值,使图像看起来更加自然,具体包括:

在原图像中,求g通道中像素值的众数mg,存入向量vg中,取与这些像素点对应的r,b通道的像素值分别存至向量vr,vb中,计算vr,vb中像素值的平均值得mr,mb,求得mr,mb和mg的差值δr=mr-mg,δb=mb-mg;

在三个分别均衡化后的图像中,取与vg中向量位置相同的像素点分别存入向量vgn,vrn,vbn中,计算其平均值mgn,mrn,mbn,然后计算mgn,mrn和mbn的差值δrn=mrn-mgn,δbn=mbn-mgn;

调整处理后图像中r,g,b通道的值,记均衡化后的通道为rn,gn,bn,调整后的通道分别为rn+(δr-δrn),gn,bn+(δb-δbn);

在三个分别均衡化后的图像中,取与vg中向量位置相同的像素点分别存入向量vgn,vrn,vbn中,计算其平均值mgn,mrn,mbn,然后计算mgn,mrn和mbn的差值δrn=mrn-mgn,δbn=mbn-mgn;

调整处理后图像中r,g,b通道的值,记均衡化后的通道为rn,gn,bn,调整后的通道分别为rn+(δr-δrn),gn,bn+(δb-δbn);

调整处理后图像中r,g,b通道的值,记均衡化后的通道为rn,gn,bn,调整后的通道分别为rn+(δr-δrn),gn,bn+(δb-δbn);

步骤3,采用自适应分类分割算法分割前景和背景,具体为:

考虑人工光源引起的光照不均的问题,结合像素点周围的灰度信息确定与之对应的分割阈值,如图3所示,包括如下步骤:

步骤3.1,综合考虑图像大小、处理时间,将子窗口的大小定为49,对图像进行边界拓展,所需复制的像素条数为(49-1)/2,将拓展后的图像转换成灰度图,子窗口从拓展前图像的最左上角的像素开始扫描;

步骤3.2,用expectationmaximization算法拟合子窗口内的像素得两个混合高斯分布,记两个高斯分布的均值、方差分别为μl,σ1,μ2,σ2,若|μ1一μ2|>1.3(σ1+σ2)成立,转至步骤3.3,否则转至步骤3.4;

步骤3.3,在子窗口内运用otsu算法得阈值thotsu,计算得一补偿值,则子窗口内中心像素对应的阈值thbimodal=thotsu-δ;

补偿值是otsu算法计算出的类间方差,系数a和c的值由实验得取值范围分别是(4,15),(3,30);

步骤3.4,若直方图为单峰,中心像素阈值

步骤3.5,比较子窗口中心像素的灰度值与所求的阈值(thbimodal或thunimodal),若像素灰度值大于阈值,二值图像相应像素设为0,即黑色,否则设为255,即白色;

步骤3.6,判断子窗口中心的像素是否是拓展前图像最左下角的像素,若是则结束处理,否则右移一个像素(以边界拓展前图像为准,若到一行的最后一个像素,则从下一行第一个像素开始),重复步骤3.3~3.5;

步骤4,找出前景物体的轮廓点并存储;

具体的,寻找前景物体的轮廓序列,并剔除轮廓点数过少或者过多的轮廓,包括如下步骤:

步骤4.1,对于经步骤3得到的原饵料图像的二值图运用形态学的方法,修复二值图中目标边界的缺陷并消除噪声;

步骤4.2,运用基于边缘跟踪的数字化二值图像拓扑结构分析方法,提取单像素宽度的物体的最外层轮廓,将目标物体轮廓点的序列保存在一个向量中;

步骤4.3,遍历找到的目标轮廓序列,将各个轮廓所包含的点数同设置的阈值上下限比较,将不在范围内的轮廓从轮廓序列中删除;

步骤5,剔除游鱼、水草等非饵料物体的轮廓;

步骤5.1,通过外接轮廓和原轮廓面积比的形式分出散落的单颗饵料、星型饵料堆;

所述通过外接轮廓和原轮廓面积比的形式,(1)利用步骤4提取的轮廓点序列,计算当前轮廓的面积;(2)寻找当前轮廓的最小外接圆;(3)计算最小外接圆的面积;(4)计算最小外接圆面积和当前轮廓面积的比值;(5)将计算得到的面积比值与设定的阈值进行比较,判断是否是散落的单颗饵料或者星型饵料堆;

步骤5.2,通过曲线逼近方法区分长条形的饵料堆和游鱼等非饵料物体;

所述通过曲线形逼近方法,(1)利用步骤4找到的轮廓序列,记当前轮廓上点的数量为contours;(2)用曲线去逼近当前的轮廓,记录逼近的曲线的轮廓,记曲线上点的数量为contours_poly;(3)求原轮廓点数与逼近的曲线的轮廓点数的比值进行判断:①若contours_poly为0,则当成饵料;②计算ratio=contours/contours_poly;③threshold是设定的阈值,若ratio<threshold,则把当前轮廓当成饵料;④如果ratio>threshold,则把当前轮廓当成游鱼等非饵料物体;

步骤6,求单颗饵料的面积;

具体的,计算各个轮廓的面积并排序,确定单颗饵料的面积,包括如下步骤:

步骤6.1,遍历剩余的轮廓序列,计算剩余轮廓的面积并存入一个向量中;

步骤6.2,对向量中的面积从小至大排序,选定面积的中值sm作单颗饵料的面积;

步骤6.3,由向量的1/2处向前遍历直至向量的1/4处,记当前的值为cur,其前面的一个值为pre,若cur和pre的比值大于1.5,则将sm的值更新为pre,向前遍历至向量的1/4处;

步骤7,对饵料轮廓进行计数;

具体的,估计当前轮廓包含的饵料颗粒数,将所有轮廓估得的颗粒数相加,如图4所示,包括如下步骤:

步骤7.1,首先计算当前轮廓的面积,然后和单颗饵料的面积进行比较,记当前轮廓的面积和选定的单颗饵料面积的比值为rs,若0.5<rs<1.5,则饵料的计数变量加1,否则跳至步骤7.2;

步骤7.2,若rs<0.5,则把当前轮廓当成饵料残屑、忽略当前轮廓,若rs>1.5,则跳至步骤7.3;

步骤7.3,把剩余的轮廓当作黏连的饵料堆,用其面积除以单颗饵料的面积,取结果的近似整数代替这些轮廓中包含的饵料的数量,将计数结果相加至计数变量;

步骤7.4,判断是否到最后一个轮廓,若是则结束计数,否则,循环步骤7.1~步骤7.4。

本发明中所描述的具体实施例仅仅是对本发明的一种基于计算机视觉的残留鱼饵计数算法作举例说明,但本发明不限于实施例。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1