基于视频分析技术的鱼苗计数装置设计与试验

2021-09-25 08:45杨昱皞王书献孙永文张胜茂隋江华
农业技术与装备 2021年7期
关键词:像素点鱼苗活塞

杨昱皞,王书献,孙永文,张胜茂,戴 阳,隋江华

(1.大连海洋大学 航海与船舶工程学院,辽宁 大连 116023;2.中国水产科学研究院东海水产研究所,农业农村部东海渔业资源开发利用重点实验室,上海 200090;3.浙江省海洋渔业资源可持续利用技术研究重点实验室,浙江省海洋水产研究所,浙江 舟山 316021)

鱼苗计数是鱼苗销售、鱼苗养殖的重要环节。目前,大部分鱼苗计数的工作依然依赖人工完成。现有的鱼苗计数设备功能单一,对鱼苗进行计数时需要人工将鱼苗装入容器中,计数完成后需要移除,存在费时费力、可能损伤鱼苗的问题。因此,无论是鱼苗的生产者还是销售者都迫切需要一种简单、快速的鱼苗计数设备[1]。

计算机视觉技术是一种快速、经济、有效的测量和评价手段,在农业生产中有着广泛应用和广阔的发展前景[2]。目前已经有许多研究人员将机器视觉应用于鱼苗计数来实现鱼苗计数的自动化。朱从容[3]采用一次多项式拟合方法确定图像中鱼苗所占像素点数与鱼苗数量关系来得到鱼苗的数量,黄玲等[4]提出统计连通域和鱼苗像素点相结合的技术算法,范嵩等[1]使用的基于端点的细化算法统计鱼苗数量,以及曲线演化法[5],但是以上大都针对静态鱼苗单帧计数,且对鱼苗和拍摄环境有一定要求,不能够满足鱼苗养殖中鱼苗大小、形状不同和大批量连续计数的要求。王文静等[6]将计算机视觉和硬件结合,通过统计单个目标面积和和平均面积的比值来确定数量,实现了实时鱼苗计数,但是该方法对于鱼苗的大小要求较为严格,不能够满足多样化鱼苗计数。

本文提出一种基于视频分析计数的鱼苗计数装置,通过摄像设备拍摄鱼苗实时图像,对图像灰度、降低分辨率、腐蚀和膨胀、阈值二值化进行一系列处理后,提取每一帧图像,将该帧图像中的像素点按照规定进行统计,再与上一帧对比得出鱼苗数量的变化,对比完成后再将该帧图像作为下一帧图像的对比组,按照此步骤重复至最后一帧图像,最终得出测量的鱼苗总数,并且通过硬件能够实现装置的持续间歇性工作、减少鱼苗与机械碰撞损伤和重叠情况[7]。本装置能够适应多种鱼苗和多样化环境下的计数,在搭建了鱼苗计数试验模型的基础上,对本装置的可行性以及准确性进行了验证。

1 数据与方法

1.1 工作原理

基于视频分析技术的鱼苗计数装置基本机构如图1所示,包括吸鱼装置、计数装置、控制装置。

图1 鱼苗计数装置基本结构Fig.1 Thebasic structure of fish fry counting device

工作时,将该计数装置与鱼苗养殖池连通,启动气泵抽出计数箱中的空气,使计数箱内呈负压状态。大气压会将鱼苗养殖池中的水和鱼苗压入计数箱中,通过阶梯状通道缓和水流并且使鱼苗尽量不重叠地流过摄像设备拍摄区域,最终在计数箱出水口出的阶梯状通道处堆积。摄像设备将采集到的视频数据上传至开发板中,开发板对采集到的视频数据进行逐帧对比分析处理,利用机器视觉[8]得到本次测量的鱼苗总数。该鱼苗计数装置中的浮球、连杆、活塞对计数箱中的气压进行控制,当水进入计数箱中开始,浮球随着水面的高度升高而上浮;浮球推动连杆将活塞向上方推动;当水面到达一定高度时,活塞会被浮球、连杆完全推出计数箱,此时箱内负压状态消失,鱼苗停止进入计数箱;密封门末端设置为一段电磁铁,活塞为导电材料,当活塞没被推出计数箱时,密封门末端电磁铁通电与计数箱阶梯状通道的末端铁块吸引,密封门关闭;当活塞被完全推出计数箱时,密封门末端电磁铁断电失去磁性,密封门打开,计数箱内的水和鱼苗流出;当计数箱内的水流出,浮球会随着水面高度下降而下沉,活塞被浮球、连杆拉至初始位置,使计数箱再次呈密封状态;出水口处的阶梯状通道斜度大,能让水和鱼苗尽快流出,并且能暂时储存未及时流出的水和鱼苗,使其不会出现在摄像设备拍摄区域;当气泵继续工作,鱼苗会持续间歇性进入计数箱中进行计数[9]。

1.2 关键部件设计以及参数确定

鱼苗计数装置控制系统如图2所示。锥形筒装在计数箱出气口上,活塞放置在锥形筒内,保证活塞能够回到初始位置,活塞采用导电材料制作。当活塞未被推出计数箱时,密封门末端电磁铁通电,电磁铁拥有磁性后吸在计数箱内阶梯状通道的铁块上;当活塞被推出计数箱时,密封门末端电磁铁断电,失去磁性,水和鱼苗在重力作用下流出计数箱,同时浮球和活塞下降至初始位置,形成一个循环。

图2 鱼苗计数装置控制系统示意Fig.2 The schematic diagram of control system of fry counting device

活塞采用铸铁制作,制作成空心圆柱状以减小质量,并套上密封圈;连杆采用塑料制作;锥形筒采用黄铜制作,并且在表面抛光、镀膜来减小活塞移动的阻力。经过查表1可得,铜与铸铁表面滑动摩擦系数约为0.3;拟定活塞半径为1.5 cm;拟定活塞、连杆、浮球的质量为40 g、20 g、10 g,拟定活塞和锥形筒表面压力为3 N。根据浮力的计算公式以及二力平衡的条件,可推导出浮球的最小半径为:

表1 各种材料摩擦系数Tab.1 Thefriction coefficient of variousmaterials

式中:F浮——浮球的浮力,N;m活塞——活塞的质量,kg;m连杆——连杆的质量,kg;m浮球——浮球的质量,kg;g——重力系数,取g=9.8 N/kg;FN——活塞和锥形筒接触表面压力,N;ρ液——浮球所处液体环境的密度,kg/m3;V——浮球的体积,m3。

求得r≈0.033 7 m,因此浮球半径至少为3.37 cm。

1.3 视频处理过程

实现鱼苗计数的方法主要由3部分组成:收集图像并判断是否为最后一帧图像;对图像进行处理,便于识别目标;识别到目标后与上一帧对比计数,完成后再回到第一步循环。具体流程,如图3所示。

图3 视频处理方法流程Fig.3 Thevideo processing method flow

2 视频处理与结果分析

2.1 视频处理

直接处理彩色图像会大大地降低系统的执行速度,所以通常将输入的彩色图像转换为灰度图像[10],由摄像设备对计数箱内流过的鱼苗采集视频数据,获取每帧的图像,将得到的图像去除颜色层,将其转化为灰度图像[11-12]。彩色图像的亮度值是由红、绿、蓝决定,要将原图像量化为256个灰度级的黑白图像,首先读取图像中每个像素的红、绿、蓝值,再通过公式Y=0.299×R+0.587×G+0.114×B计算出当前像素点的亮度值[13],然后将原图像转化为如图4所示的256位灰度图像。

图4 灰度图像Fig.4 Thegray image

对输出的灰度图像进行腐蚀处理,去除目标边缘的多余杂质;遍历原图像的每个像素,然后用结构元素的中心点对准当前正在遍历的像素,然后取当前结构元素所覆盖下的原图对应区域内的所有像素的最小值,用最小值替换当前像素值,然后再进行膨胀处理,将目标内部的残缺和边缘补充完整[14];使用相同次数的腐蚀和膨胀能够使目标图像变得平滑。对图像腐蚀和膨胀处理后,再进行阈值二值化处理,使整个图像只有黑、白像素点[15];设定1个阈值进行阈值分割,阈值分割分为2种方式:全局阈值是选用1个固定的阈值适用于整个图像;局部阈值是在1个图像上须知不是1个固定的常数。由于在鱼苗图像中背景灰度恒定,鱼苗和背景的对比度几乎不变,因此采用全局阈值方法[17]。默认的阈值为110,该阈值可以在源码中配置修改,使灰度值≥110像素点,将该像素点的灰度值设置为255;使灰度值<110像素点,将该像素点的灰度值设置为0,保证经此步骤后图像中只存在像素值为0的黑点和像素值为255的白点[1]。输出的图像,如图5所示。

图5 阈值二值化处理后的图像Fig.5 Theimage after threshold binarization

按照配置的列号,提取出5列像素数据,预处理5列数据,确定统计像素,排除无效像素。若某1列中连续的黑像素数为1,则跳过该像素,不做特别处理;若某1列中连续的黑像素数为2,则将第1个像素作为统计像素,也即将第2个黑像素设为无效像素;若某列中连续的黑像素数大于2,则保留中间位置的黑像素作为统计像素,其他黑像素设为无效像素;若检测到无效像素,则直接跳过;在上述过程中,将像素设为无效的具体方式是将像素值设为128,如图6。将该五列像素数据与上一帧五列像素数据逐行对比,若像素由白转为黑,则鱼苗统计值自增1。直至对比到最后一行像素,获取下一帧像素,重复此步骤,直至提取到最后一帧像素数据[16]。

图6 鱼苗统计像素示意图Fig.6 Thestatistical pixel diagram of fry

2.2 结果分析

打开开关,鱼苗和水被压入计数箱中,计数箱中阶梯状通道宽且能缓和水流,使鱼苗平缓的流过摄像设备拍摄区域,图像采集的帧速应大于鱼苗流过的速度。鱼苗随水流动时,个别鱼苗出现沿阶梯状通道反向游动,由于鱼道较长,其游动最多经过纵向的两排项目,出现鱼苗数多计算一次。

首先获取到第一帧数据,为加快处理速度,且不影响计数效果,降低该帧图像的分辨率。降低倍数确定原则为:降低后每个鱼苗在垂直方向上约占1~5个像素。为保证数据质量,对原视频横纵向进行等比缩小。腐蚀图像去除图像中存在的杂质,膨胀图像补偿图像中目标边缘和内部的空白。以110的阈值二值化该帧图像,将所有<110的像素设为0,所有≥110的像素设为255。提取出列号分别为31、63、95、127、159的5列像素数据,对该5列数进行预处理。

将上述首帧数据存入列表作为第1组对比数据。获取下一帧图像,按照灰度处理、降低分辨率、腐蚀和膨胀、阈值二值化、确定统计像素的步骤得到新的列表,列表中包含5组子列表元素,每个子列表元素表示一列数据,包含有108个元素,每个元素表示1个像素点。将该列表与第1组对比数据进行对比:若对比数据为255,且当前数据为0,则当前元素所在列的鱼苗计数值自增1,否则不操作。2个列表对比完成后,将当前列表数据设为对比数据,等待下一帧数据的对比。直至对比到最后一帧。

数据处理结束后,得到本次试验的结果如表3所示。

表3 鱼苗数统计Tab.3 The statistics of fry

上述过程搭建了简易模型统计了鱼苗数据,测试出鱼苗规格数量。利用视频数据统计鱼苗数量,且在较差环境下也能有较好的表现。本文提出的基于视频分析技术的鱼苗计数装置,通过软硬件结合的方式实现持续间歇性计数,能够对多种目标问题进行计数,适应性强,能够减少人工操作,并且减少了鱼苗与机械的碰撞损伤,间歇性工作减少主机的工作负荷,可以对大批量的鱼苗进行计数。

多功昊等[17-19]使用摄像设备拍摄鱼缸内的鱼苗,用连通域总面积除以提前设置好的连通域最小面积就可以求出连通域重心坐标并在重心坐标描绘数字,从而得出连通域个数对鱼苗计数。王硕等[5]采用水平集建模再连续常值演化,通过最大轮廓曲线数最大值确定鱼苗的数量。王文静等[6]提出了一种采用帧画面计数,目标数量通过单个目标面积和平均面积的比值来确定,先求当前帧的幼苗数量,再求下一帧目标数量,通过累加获取总数量。本文提出的计数方法是通过摄像设备采集鱼苗图像,将每一帧图像经过灰度处理、降低分辨率、腐蚀和膨胀、阈值二值化,按照规定统计像素,对比像素点的变化得出每一帧图像中的鱼苗数变化,最终得出鱼苗总数。与其他计数方法相比,本计数方法能够适应各种鱼苗大小形状的动态计数。

3 总结

本文提出的基于视频分析技术的鱼苗计数装置可行性已经通过验证,但是当鱼苗密度较大时,计数精度下降,可通过以下几个方面完善:通过改善摄像设备和光照条件提高采集图像的精度,采用多角度拍摄;通过改变通道的结构和尺寸改善鱼苗重叠情况和降低鱼苗流速,使鱼苗能够清晰完整的呈现在摄像设备中;完善程序中处理图像的部分,更准确地识别和对比出鱼苗的数量。当需要对多批次、高密度的鱼苗计数时,尝试在软硬件上的改善以达到足够的计数精度,将连通域法、曲线演化法等方法结合解决鱼苗重叠的问题,适应不同鱼苗计数时的情况。

猜你喜欢
像素点鱼苗活塞
基于局部相似性的特征匹配筛选算法
控流优选鱼苗检疫器
一种X射线图像白点噪声去除算法
基于canvas的前端数据加密
图像采集过程中基于肤色理论的采集框自动定位
高原地区青海湖裸鲤鱼苗运输注意事项
KS Kolbenschmidt公司的新型钢活塞
低噪声活塞——降低活塞销的拍击噪声
Mahle公司的复合型活塞销
Kolbenschmidt公司的新型活塞合金材料