刘星桥, 张 弛
(江苏大学电气信息工程学院/机械工业设施农业测控技术与装备重点实验室,江苏镇江 212013)
随着信息化、集约化水产养殖的发展,养殖规模日益扩大,高效准确的水质变化、养殖密度等信息可以为鱼类的优质高产提供有效保证。应激反应是鱼类受到氨氮、溶解氧等应激源影响所表现出的机能障碍和防御反应。鱼类的行为变化则是监测应激反应的灵敏指标[1]。适当的应激可使鱼类逐步适应环境,增强免疫机能,从而提高生产性能,然而过度地应激不仅影响鱼类的生产性能,而且会诱发多种疾病,甚至造成鱼类死亡[2]。现代集约化养殖方式极大地限制了鱼类的行为反应,常导致其行为异常,引起生理系统的应激反应[3]。在这种环境下,养殖密度大,养殖水体水质变化很快,当鱼类处于缺氧、水质恶化等应激条件下在较短的时间内就会产生严重的后果[4]。随着计算机图像处理技术在水产养殖领域的作用不断加强,国内外学者已经取得了可观的研究成果。在国外,Ma等利用计算机视觉系统对鱼在不同运动模式下的运动轨迹进行分析从而实现对水质监测[5]。在国内,卢焕达等利用摄像设备对鱼的行为进行监控发现,鱼类由于应激或疾病等引起体色和游动速度的变化[6]。目前,在水产养殖中鱼类的行为信息基本上是通过人直接观察得到,耗费人力、时间,难以及时发现养殖系统中出现的问题[7]。利用图像处理技术对鱼类进行监测能够提升鱼类养殖过程中的科技含量,对提高管理效率和增加养殖产量具有非常重要的意义[8]。利用嵌入式系统实时处理鱼类图像并分析鱼类轨迹,为养殖管理提供有价值的信息,从而提高生产效率。
试验平台包括嵌入式开发板、摄像头、玻璃水槽、支架以及背光灯(图1)。玻璃水槽长为80 cm,宽为38 cm,高为 48 cm,水深为40 cm;嵌入式开发板选用型号Tiny4412;配置2个摄像头,分别放置在水槽上方距水面26 cm处和水槽前方距前玻璃30 cm处。为保证拍摄到的背景清晰均匀,玻璃水槽的后玻璃和槽底用白色聚氯乙烯(polyvinyl chloride,简称PVC)墙纸覆盖。
开发在嵌入式Linux系统上运行的人机界面,为嵌入式平台下的复杂图像处理算法的设计和实现作基础。在PC端流行的Ubuntu操作系统中交叉编译OpenCV(开源计算机视觉库)和Qt(跨平台C++图形用户界面库)移植到嵌入式Linux系统。嵌入式硬件结构如图2所示。使用Qt设计图像处理系统的人机交互界面;OpenCV库作为提供图像处理函数的静态库添加到Qt的工程文件中作算法函数支持。
本设计采用的基本流程由图像采集、图像预处理、目标分割、目标标记、目标跟踪以及输出轨迹6个部分组成(图3)。
处理彩色图像会造成不必要的系统开销,所以要对采集到的图像进行灰度化处理。灰度化处理是将RGB(red,green,blue)格式的彩色图像转换为灰度图像,转换公式如公式(1)所示:
Gray=0.229×R+0.587×G+0.114×B。
(1)
式中:Gray表示灰度值;R、G、B分别表示图像的红、绿、蓝3分量。
目标分割就是把鱼类目标从采集到的图像中分割出来,实现前景目标的提取。
2.2.1 背景差分 背景差分法是将当前包含鱼类目标的图像与背景图片作差,得到的差值图像即前景图像。通过对前景图像的二值化,就可以提取出鱼类目标区域。差分公式如公式(2)所示:
Ik(x,y)=|Fk(x,y)-Bk(x,y)|。
(2)
式中:Ik(x,y)为作差获得的差分图像;Fk(x,y)、Bk(x,y)分别为k时刻视频帧图像和背景图像。
2.2.2 阈值分割 对差分图像进行最大类间方差法(OTSU)阈值分割得到二值图像。OTSU是通过整幅图像的灰度特性来选取合适的阈值。用假设的一个灰度值T将图像的所有像素灰度值分成2组,当这2组的类间方差最大时,所分出来的前景组和背景组的灰度差最大,此灰度值T被采用为阈值[9]。效果如图4所示。
2.2.3 形态学处理 此时二值图像往往是带有噪声的,比如剩余饲料、鱼类粪便等,须要使用形态学处理去除噪声点。采用开操作,即先对二值图像腐蚀处理,然后用膨胀处理恢复。腐蚀操作可以去除小噪声点,使目标边界向内部收缩。膨胀操作可以扩大噪声点,使目标边界向外扩张。形态学处理的效果如图5所示。
采用Two-pass连通域标记的方法标记鱼类目标。连通域标记是指在二值图像中把所有的连通域都赋予1个编号并作记录。Two-pass法指2遍扫描法,其中心思想为:第1遍扫描时先赋予每1个值为1的像素位置1个编号,在扫描过程中即使是同1个连通域的像素集合也可能会被赋予多个不同的编号,所以将属于同1个连通域但又不同的编号合并成1个编号,建立相等关系;第2遍扫描就是根据相等关系将所标记的像素归为1个连通域,赋予1个相同的编号,大多数情况下此编号取相等关系集合中的最小编号值。所有连通域的编号都存储在一个编号序列中。
目标标记时按由下至上、由右至左的顺序赋予目标编号。连通域标记效果如图6所示。
直接从图像序列中获取目标的相关信息,根据图像特征构造目标的外观模型,跟踪器根据目标模型确定目标在图像中的位置对目标进行跟踪[10]。采用先提取目标边缘计算目标边缘点的形心,然后匹配目标特征实现对鱼类目标的跟踪。
2.4.1 边缘检测 Canny边缘检测算法包括高斯滤波器平滑图像、计算梯度幅值和角度图像、梯度幅值图像非最大抑制、双阈值处理和连接边缘4个步骤。计算梯度的幅值和方向采用Sobel算子,双阈值处理时高低阈值比率为3 ∶1。边缘检测效果如图7-a所示。
2.4.2 形心提取 将形心作为鱼类目标的跟踪点。边缘检测后,在连通域最外围矩形区域的基础上,把每个矩形区域的长宽各扩展4像素,将矩形区域设置为感兴趣区域(region of interest,简称ROI)。在每个ROI内都只包含1个鱼类目标的完整边缘,根据这些ROI中的边缘数据提取鱼类目标的形心。
在按照目标编号设置ROI之后,提取形心的操作都将在每个ROI中独立进行。假设边缘图像为g(x,y),原点不变矩的计算公式为:
(3)
式中:i,j为计数变量;g为灰度值。
0阶矩m00是边缘图像ROI的灰度值和,由公式(4)来计算ROI中边缘图像的形心(xc,yc):
(4)
式中:m10表示x方向的一阶矩;m01表示y方向的一阶矩。
形心作为目标的跟踪点,用小点标记。形心提取效果如图7-b所示。
2.4.3 目标特征匹配 建立以椭圆模型近似鱼类目标的运动模型如图8所示。其中,(xc,yc)表示目标的形心;a为半长轴长;θ为椭圆的倾斜角度;vx、vy分别为2帧间速度V在x、y轴上的分量。
以10帧/s的速度进行采样,同一鱼类目标的形心在相邻2帧之间距离不远,以检测到的目标为基础,对当前帧检测到的团块与前1帧中的目标计算最近邻,作初步匹配。
当目标个体与周围目标距离的最小值大于设定的阈值Td时,说明下1帧该目标不会与其他目标重叠、遮挡,用全局最近邻法就能够对目标进行跟踪。若第i帧目标检测中得到mi个团块,第i-1帧有mi-1个目标,形心距离公式如公式(5)所示。其中,α对第i帧mi个团块进行遍历,β对第i-1帧mi-1个目标进行遍历。
(5)
对于目标重叠、遮挡的情况,为保持鲁棒性配合目标的椭圆模型的角度、运动方向特征来处理。根据鱼类个体运动的特点,在短时间内的游动方向、游动姿态不会有很大的变化,所以可以选用椭圆运动模型的角度、速度方向的余弦值作特征值。
(1)椭圆的角度:
(6)
式中:α对第i帧mi个团块进行遍历,β对第i-1帧mi-1个目标进行遍历。计算前后2帧中,第i帧中的某个团块与第i-1 帧中目标的椭圆角度差异性,Pθ(α,β)值越小,表示此团块和前1帧中目标的相似度越高。
(2)运动方向:
(7)
式中:S表示位移;Δt表示时间差;V由vx、vy等2个分量组成,α对第i帧mi个团块进行遍历,β对第i-1帧mi-1个目标进行遍历。2个速度方向夹角范围为[0,180],cos范围为[-1,1],Pv(α,β)范围为[0,2],值越小表示速度方向的夹角越小,相似度越高。dp(α,β)值表示目标距离的远近,Pθ(α,β)、Pv(α,β)值分别表示形态、运动方向的相似度,由此来进行目标特征匹配。对于发生重叠、遮挡的团块,一般可以假设目标在进行直线运动,可以将目标融合前的目标和目标分裂后的团块进行椭圆角度、运动方向的特征确定其相似度,然后进行特征匹配,连接匹配目标的形心,实现目标的跟踪。
使用Qt GUI类库编写的人机交互界面(图9),按“开始”键摄像头开始采集;按“停止”键停止采集;按“拍背景”键更新背景图像;按“退出”键退出程序。显示图像区域的左上角为当前图像的帧数以及处理当前帧所消耗的时间,此帧图像为第156帧,该帧处理耗时89.15 ms。
软件设计以帧为单位对输入的图像进行上述处理。软件设计采集到的图像分辨率为640像素×480像素,帧数设置为10帧/s,平均处理每帧图像的时间为90 ms左右,能保持较好的实时性。
当鱼类目标处于非应激状态时,鱼类目标相对静止,误差能够保持在2个像素以内,对目标跟踪点的检测能达到较高的精度。
将作为目标跟踪点的形心按时间顺序连接起来后就形成鱼类目标的运动轨迹。轨迹数据会以帧为单位储存在本地的SQLite数据库中,用户需要后续的分析评估时可提取使用轨迹数据。
采用多个方向拍摄图像的方式,能更加全面地分析鱼类的行为。通过对轨迹数据的分析可建立模型,计算出鱼类目标的运动速度和位移量。采集图像的方向为正上方和侧面,分别由图1中的摄像头1和摄像头2拍摄。
2台摄像机分开时间拍摄,每台拍摄时间为25 s,每台采集到的图像共为250帧。从上方拍摄的第156帧,图像处理耗时89.15 ms(图10-a);从侧面拍摄的第172帧,图像处理耗时89.07 ms(图10-b)。
根据存储在本地SQLite数据库中的轨迹数据重新绘制轨迹(图11)。
采集到的图像分辨率为640像素×480像素,帧数设为10帧/s,玻璃水槽的长为80 cm、宽为38 cm、高为48 cm。除去玻璃水槽的玻璃厚度2 cm,从正上方拍摄到的投影面积为48 cm×36 cm。从侧面拍摄到的投影面积设置为48 cm×36 cm。
使用形心作为跟踪点,设在第i-1帧和第i帧的时间分别为ti-1、ti时刻,形心的位置分别为(xi-1,yi-1)、(xi,yi),则鱼的位移量(di)、总位移(D)、运动速度Vi可由公式(8)、(9)、(10)计算得到。
(8)
(9)
(10)
根据保存的轨迹数据,每帧之间的时间差为100 ms,经过换算得到鱼类目标位移曲线(图12)。
通过公式(9)、(10)分析可得最大速度和总位移(表1)。
采用2条鲫鱼作为试验对象,拍摄方向为正上方,在不同溶解氧条件下观察鱼类目标的行为反应。
表1 轨迹参数分析
3.3.1 试验过程 试验前1周,将2条鲫鱼放入玻璃水槽内,定期喂食和清洁水槽。在实验前1 d停止喂食,添加新水使水位达到40 cm,pH值保持在6.9~7.5之间,室温为26 ℃左右。通过管道向水体通入纯氮压缩气体以获得低溶解氧条件。为了提高氧剥离的效率,在水槽上方盖上塑料布;通过布置在水体中的传感器获得实时的溶解氧数值。溶解氧值正常情况下在6.5~7.0 mg/L之间,进行试验的溶解氧浓度分别为较高的7.0 mg/L和较低的1.0 mg/L。
试验开始时溶解氧在(7.0±0.1) mg/L,轻轻敲击水槽,拍摄25 s的视频序列,帧数为250帧。然后向水体通入压缩氮气一段时间,溶解氧控制在(1.0±0.1) mg/L,经过6 min后轻轻敲击水槽,拍摄25 s的视频序列,帧数为250帧。按照上述方法分析在不同溶解氧浓度下的鱼类轨迹。
3.3.2 试验结果分析 试验获得多组视频,选择其中1组分析鱼类目标轨迹(图13)。通过公式(9)、公式(10)分析可得,在不同溶解氧浓度下鱼类目标总位移和最大速度(表2)。
表2 不同溶解氧浓度下的鱼类轨迹参数分析
由图13、表2可以看出,与7.0 mg/L溶解氧环境下相比,鱼类目标在1.0 mg/L溶解氧环境下移动速度缓慢、移动距离短、活跃程度明显降低。在严重缺氧时鱼的活跃程度减小,为了生存鱼在缺氧条件下的对策是降低新陈代谢来减少能量消耗,减少运动活跃性是减少能量消耗的常用方式[11]。试验结果与此论点相符,验证了本试验分析方法的有效性。
(1)嵌入式系统结合图像处理技术能够对实时的鱼类图像进行处理。结合OpenCV和Qt,嵌入式系统通过友好的用户界面展示复杂图像的处理结果。
(2)设计由图像采集、预处理、目标分割、目标标记、目标跟踪以及输出轨迹组成的鱼类轨迹跟踪方法,准确地计算速度、位移量,用于检测鱼类活跃程度。
(3)通过试验对比分析在不同溶解氧浓度下的鱼类轨迹,检测其活跃程度。试验验证在严重缺氧时鱼的活跃程度明显减小,也验证了鱼类运动轨迹参数分析方法的有效性。
(4)跟踪鱼类轨迹是分析处理鱼类行为的前置步骤。根据鱼类行为标准分析鱼类活跃程度等指标以确定其自身健康状况和养殖环境的变化,为信息化和应对突变情况的快速反应提供保证。
参考文献:
[1]刘小玲. 鱼类应激反应的研究[J]. 水利渔业,2007,27(3):1-3.
[2]王国强,王 雯. 应激反应对鱼类影响的研究进展[J]. 安徽农业科学,2009,37(24):11579-11580.
[3]赵建华,杨德国,陈建武,等. 鱼类应激生物学研究与应用[J]. 生命科学,2011,23(4):394-401.
[4]徐建瑜,崔绍荣,苗香雯,等. 计算机视觉技术在水产养殖中的应用与展望[J]. 农业工程学报,2005,21(8):174-178.
[5]Ma H,Tsai T F,Liu C C. Real-time monitoring of water quality using temporal trajectory of live fish[J]. Expert Systems with Applications,2010,37(7):5158-5171.
[6]卢焕达,刘 鹰,范良忠. 基于计算机视觉的鱼类行为自动监测系统设计与实现[J]. 渔业现代化,2011,38(1):19-23.
[7]江丹丹,桂福坤. 基于视频图像的鱼类行为轨迹追踪[J]. 浙江海洋学院学报(自然科学版),2015,34(2):112-118.
[8]于 欣,侯晓娇,卢焕达,等. 基于光流法与特征统计的鱼群异常行为检测[J]. 农业工程学报,2014,30(2):162-168.
[9]孙少林,马志强,汤 伟. 灰度图像二值化算法研究[J]. 价值工程,2010,29(5):142-143.
[10]王书朋. 视频目标跟踪算法研究[D]. 西安:西安电子科技大学,2009:16.
[11]Wu R S S. Hypoxia:from molecular responses to ecosystem responses[J]. Marine Pollution Bulletin,2002,45:35-45.