基于机器视觉跟踪的计数算法*
2018-01-26陈俊华刘年福
郭 俊,郑 堤,2,陈俊华, 刘年福
(1.宁波大学 机械工程与力学学院,浙江 宁波 315211;2.浙江大学 宁波理工学院 机电与能源工程学院,浙江 宁波 315100;3.浙江大学 机械工程学院,浙江 杭州 310058)
0 引 言
随着养殖生产规模的不断扩大,鱼群在设施养殖中的精确计数为鱼苗销售运输、养殖密度控制等环节的有效管理提供了基础。传统的人工鱼群计数方法有分布取样统计平均法和称重法,前者费时费力,且亦受到人为主观因素的影响[1,2],后者会对幼苗产生应激和物理伤害,测量过的幼苗需较长时间才能恢复正常的摄食生长[3]。
随着计算机视觉和图像处理技术的迅速发展,依靠传感器技术科学的指导养殖生产势在必行[4],基于图像处理技术鱼群计数方法得到了广泛的关注,具有操作简便、效率高、准确度高、对鱼体基本无伤害等特点[5],在农业的生产中有着广泛的应用和广阔的发展前景。目前,已有研究人员利用端点细化算法[6]、神经网络[7,8]、四邻域标记[9]、灰度图像分析[10]、曲线演化法[11]等方法对生物幼苗进行计数,但主要针对单帧图像且对于因鱼苗黏连导致的计数误差较大并未有很好的解决方法。
本文提出了一种基于视觉跟踪和回归分析的鱼苗计数方法,对无黏连的正常图像和有黏连的异常图像分别进行分析处理和回归建模,较好地解决了图像黏连导致的计数误差较大的问题,为精确、高效的设施养殖管理奠定基础。
1 计数系统总体设计
鱼苗计数系统由养殖水箱、计数水箱、出鱼水箱和图像采集与处理子系统等部分组成,如图1所示。养殖水箱中养殖待计数的鱼苗;计数水箱用于暂存按批次从养殖水箱放下来的鱼苗,并供摄像机摄取每批次鱼苗的图像信息;出鱼水箱用于收集经过计数的鱼苗供销售、检验分析或其他研究与管理使用;电荷耦合器件(charge coupled device,CCD)摄像机进行图像采集,处理子系统可按一定时间间隔动态跟踪拍摄多幅计数水箱中的鱼苗图像,并以计算机为平台,采用NI公司开发的NI Vision Assistant视觉模块对采集的鱼群图像进行相关处理,利用MATLAB软件求出相关参数,得出相关算法模型。鱼苗计数系统的工作原理:控制球阀(球阀内部安装电磁阀,防止球阀关闭时误伤正在通过的鱼),让鱼苗从养殖水箱通过管道进入计数水箱;由图像采集与处理子系统采集计数水箱中的鱼群图像并进行分析处理与计数;将计数水箱中的鱼群通过球阀和管道放入出鱼水箱。上述过程持续进行,直至出鱼水箱中鱼的总数达到预定值。
图1 计算机视觉鱼苗自动计数系统
1.1 计算机图像分析
对采集自计数水箱中的一张鱼苗图像如图2(a)所示,进行滤波、二值化等预处理,其结果如图2(b)所示。
图2 图像预处理
对预处理后的鱼苗图像中每个图像块分别进行标记,如图3(a)所示,未黏连的每尾鱼单独标记,称其为正常图像,在图中有4个图像块为正常图像;如图3(b)中的标签7和8所示,两尾或多尾鱼因重叠而黏连在一起的图像整块标记,称其为异常图像,图中有两个图像块为异常图像。
图3 图像误判标记
分析正常图像,选取面积最小的正常图像的值记为c1,选取面积最大的5个正常图像求平均值记为c2。对正常图像的面积在区间[c1,c2]上进行归一化处理,得
(1)
式中Fa为正常图像测得的面积;Sa为归一化处理后该正常图像的面积。
1.2 计算机视觉跟踪分析
由于鱼群在水箱中自由游动,其拍摄的图像具有多样性,如图4(a)中标签1与图4(b)中标签7的图像块,其面积相差不大且均超过正常图像的面积,在划分图像时可能会同时被误判为异常图像。因此,需要对异常图像进行视觉跟踪分析,便于区分黏连的图像。
图4 异常图像误判分析
在跟踪分析异常面积的过程中,若由于图像面积太大而被判定为异常图像,可考虑在0~t时刻内观察图像是否变化进行分析;若由于黏连而被判定为异常图像,在0~t时刻内跟踪异常图像,若图像块的面积Fa变化幅度较大(超过1/3Fa)或者分为多个独立的图像块,则判定为黏连导致的异常图像。在鱼苗的计数时,不同范围的图像面积对应的计算方法有所不同。
(2)
2 计算机视觉的图像算法研究
2.1 计数模型建立
为了计算图像中每个图像块对应的鱼苗的数目,将定义为正常图像或异常图像的面积的归一化值作为自变量,定义的正常图像或异常图像转化为量值0或1作为修正变量,每个图像块对应不同的鱼数目作为因变量,构建数学模型[12~15],反映图像块面积与鱼苗数目之间存在相关关系。
根据式(1)和式(2),对于图像块设自变量x1,x2,x3,系数θ0,θ1,θ2,θ3,因变量n建立数目计算的估计函数模型
n=θ0+θ1x1+θ2x2+θ3x3
(3)
式中x1此图像块的面积归一值;x2,x3分别为正常图像和异常图像的量值,取值0或1。
2.2 相关系数的求解
若在一组图像中有n个图像块,为了便于得出相关系数,则式(3)改写成矩阵形式为
h(x)=XθT
(4)
利用梯度下降法进行迭代直到收敛得到最佳系数,其迭代公式为[16]
(5)
式中θj为初始系数值,根据初始系数进行系数迭代,迭代曲线逐渐趋于平稳,直至收敛,输出θ值;hθ(x(i))为图像中的第i个图像块计算对应的数目;ni为第i个图像块对应的实际鱼的数目;n为一组图像中参与计算的图像块的数目;α为学习速率,文中选取1×10-3。
2.3 计数算法应用
每块图像的面积大小决定了所对应鱼的计算数目。在图像分析中可知,正常图像(即c1 (6) 式中n1为正常图像的个数;x1为正常图像的面积归一化值(即为Sa),由于是正常图像则取x2=1,x3=0。 对于异常图像,为了判定面积相差较大导致的异常图像和黏连导致的异常图像,需要在0~t时刻对异常图像跟踪分析,若为面积较大导致的异常图像,结合式(1)和式(3),其对应的鱼的数目计算如公式(7)中N21;若为黏连导致的异常图像,则结合式(2)和式(3),其对应的鱼的数目计算如式(7)中N22 (7) 式中n21,n22分别为为由于面积尺寸较大导致的异常面积的数目和由于黏连导致的异常面积的数目。N21中参与计算的x1由于是误判为异常面积,所以,在计算时需要在正常图像面积范围内取值,在计算中x1取值为原始面积(c1+c2)/2经过归一化的值,其中x2=1,x3=0;N22中参与计算的x1根据实际面积的归一化值代入计算,x2=0,x3=1。 对一组图像中不同的图像块分别计算鱼的数目,累加求和得出图像中鱼苗的数目 N=N1+N21+N22 (8) 为了确保鱼苗数目估计函数中相关系数的精度,需要拍摄多组图像作为训练组,并拟合出最佳系数。在鱼苗计数实验系统中进行样本采集,养殖鱼苗种类为鲫鱼,水箱直径100 cm,水深50 cm。计数水箱中首先放入25尾鱼,并拍摄鱼群游动过程中动态图像作为训练组。拍摄第一张图像且通过软件处理得到面积参数,选取正常图像中的图像面积范围(c1,c2)为(1 000,2 000),若在(2 000,+∞)范围内则为异常图像。为了便于精确图像划分和分类,分组拍摄图像,每组2张,时间间隔为2 s,第一张图像作为初始图像识别正常图像和异常图像,第二张图像作为对比图像分析识别导致异常图像的原因并计算一组系数。同理,在2 s后进行第二组拍摄,共计拍摄100张图像50对图像组进行分析。根据训练组得出图像划分情况如表1所示。 表1 图像划分 个 根据鱼苗的游动特性2 s内能够明显判断出导致异常图像的原因。由表1可知,开始时的第一组图像中识别的正常图像的数目有13个,异常图像的数目有6个,经过2 s拍摄的图像中识别的由于面积较大导致的异常图像的数目有1个,由于黏连导致的异常图像的数目有5个。根据图像面积的不同,对图像进行划分的方法解决了图像黏连的问题。 在训练组的图像划分的基础上根据式(1)~式(3),通过梯度下降法迭代求解每组的相关系数,然后回归拟合得出最佳系数[17],确定估计函数n为 n=0.598 7+0.352 8x1+1.266 5x1+0.332 2x2 (9) 为了验证此估计函数的准确性和适用性,在实验中控制球阀1,拍摄在一定的时间内进入计数水箱中的鱼苗并进行数目计算。根据每次进入计数水箱中鱼群的数目不同,鱼苗的数目统计如表2所示。 表2 鱼苗的数目计算结果 尾 由表2可知,此算法计算鱼苗的数目接近真实值,最大误差约为4.18 %,且每次计数只需要4 s,即可完成。实验表明:基于图像面积分析的方法计算鱼群的数目精度较高且时间较短。 范嵩等人[5]提出了基于端点的细化算法,通过连通域中的端点数目确定鱼群中鱼的尾数,2个端点判断为1尾鱼,3个端点判断为3尾鱼,n个端点则根据n/2+1公式计算,计算数目误差较大,计数的鱼苗的数目较少且平均误差达到7.13 %;黄玲等人[6]用连通域中像素点分析法进行鱼群计数,对16~19尾鱼数目统计,当连通域内鱼数较多且图像黏连情况较严重时,多尾鱼的像素点重叠在一起,计数误差达到11.76 %。王文静等人利用图像阈值分割法通过单一目标面积和平均面积的关系确定目标数量,对不重叠区域计算幼苗的数量,黏连的幼苗利用标记的方法区分,然后估算出黏连的鱼苗数目,并未具体分析黏连的数目,导致最终累加求出鱼苗的的总数误差较大,虽然统计的数目较大,但是精度较低,误差达到11.5 %。鱼苗的购销过程中对鱼苗的计算时间和数目精度要求比较高,本文主要设计了一种对于一批或多批鱼苗连续实时的在线计数系统,计算数目适当且精确度较高,解决了人工计数的繁琐和精度误差较大的问题,并为鱼苗销售运输、养殖密度控制方面提供实用的理论基础。 算法的计算精度和可行性已通过验证,为了进一步提高精度可以通过以下方面进行改进:1)在实验中最佳的效果是控制球阀的开启时间,根据管道直径的尺寸和水流速度估算在一定的时间内进入计数水箱中鱼群的数目,水箱中水的高度不应超过3倍鱼体的尺寸高度,防止鱼被完全遮挡;2)鱼的图像划分尺寸选择不合理会影响计算精度,在选取鱼的正常图像面积范围时要根据多数合理的形状统计后进行选取;3)在实验数据采集时,多数的鱼苗尽量分散,可以将圆形水箱设计为扁型的水箱。 采用计算机视觉技术实时跟踪分析鱼苗规律完成计数并解决鱼苗计数过程中黏连问题。基于图像面积的不同建立图像特征值与鱼苗数量之间的相关关系模型,根据图像块面积大小不同划分图像,对其中异常图像的跟踪分析识别出黏连的图像并获得鱼苗数目计算的算法,在相同样实验情况下,对不同数目的鱼群进行验证,此研究方法计算得出的鱼群的数目精度较高,且用时短,同其他计数算法相比较,计算精度较高。算法可为鱼苗的饲养、运输和销售过程中对一定数量或批量的鱼苗精确计数提供理论参考。对于非设施养殖的复杂的环境中鱼苗的批量计数算法有待进一步的探讨与研究。 [1] 王文静.基于计算机视觉鱼苗自动计数系统研究 [J].渔业现代化,2016,43(3):34-38. [2] 徐斐力,马应森,黄应生.分布取样式鱼(虾)苗计数器:中国,CN88202836.7[P].1989—12—13. [3] 卢建琦.称量式鱼(虾)计数方法及其设备:中国,CN88100193.7[P].1989—08—09. [4] 石 尧,李 晖,杨永钦,等.海洋牧场多参数智能监测系统设计与实现[J].传感器与微系统,2017,36(9):70-72. [5] Chatain B,Debas L,Bourdillon A.A photographic larval fish counting technique:Comparison with other methods,statistical appraisal of the procedure and practicaluse[J].Aquaculture,1996,141:83-96. [6] 范 嵩,刘 娇,杨 轶.图像识别技术在鱼苗计数方面的研究与实现[J].水产科学,2008,27(4):210-212. [7] Fan L Z,Liu Y.Automate fry counting using computer vision and multi-class least squares support vector machine[J].Aquaculture,2013,380-383:91-98. [8] Newbury P F,Culverhouse P F,Pilgrim D A.Automatic fish population counting by artificial neural network[J].Aquaculture,1995,133(1):45-55. [9] 刘世晶,陈 军,刘兴国,等.基于图像处理技术的小球藻荧光图像自动计数方法研究[J].渔业现代化,2012,39(5):16-19. [10] Foster M,Petrell R,Ito M R,et al.Detection and counting of uneaten food pellets in a sea cage using image analysis[J].Aquacultural Engineering,1995,4(3):251-269. [11] 王 硕,范良忠,刘 鹰.基于计算机视觉的大菱鲆鱼苗计数方法研究[J].渔业现代化,2015,42(1):16-19. [12] 汪奇生,杨德宏,杨腾飞.线性回归总体最小二乘平差模型及解算[J].大地测量与地球动力学,2015,35(1):126-128. [13] 王惠文,孟 洁.多元线性回归的预测建模方法[J].北京航空航天大学大学学报,2007,33(4):500-504. [14] 陈永胜,宋立新.多元线性回归建模以及SPSS软件求解[J].通化师范学院学报,2007,28(12):8-9,12. [15] 刘 严.多元线性回归的数学模型[J].沈阳工程学院学报:自然科学版,2005(Z1):128-129. [16] 郭跃东,宋旭东.梯度下降法的分析和改进[J].科学展望,2016,26(15):115-117. [17] 鞠升辉,李杨民.基于运动分析的运动目标实时跟踪系统[J].传感器与微系统,2016,35(7):58-61.3 验证与分析
4 讨 论
4.1 计数方法比较
4.2 尚需改善的部分
5 结束语