本发明涉及测量领域,更具体地,涉及一种基于机器视觉的鱼类生长数据测量装置及测量方法。
背景技术
我国作为渔业发展大国,鱼类养殖工厂规模庞大。鱼类生长数据测量在养殖过程中必不可少,关系到企业对鱼类鱼苗投放、饲料的投喂、病害防治、收获捕捞等。
传统鱼类数据的收集主要靠单一仪器测量,即游标卡尺测量体长体宽,体重测量器测量体重等,测量过程中需要多名工人协同工作,过程繁琐且鱼体长时间暴露在空气中,易给鱼体造成压力,增加损害的风险或降低鱼的进食率而抑制其生长。目前已经出现将游标卡尺和电子秤结合起来测量鱼类生长数据的仪器,但是此类仪器仍耗时较长,需要人为记录数据,可能造成测量误差。
技术实现要素:
本发明提供一种克服上述问题或者至少部分地解决上述问题的基于机器视觉的鱼类生长数据测量装置及测量方法。
第一方面,本发明提供一种基于机器视觉的鱼类生长数据测量装置,包括:用于盛放鱼体的带刻度尺的托盘、输入装置、称重传感器、控制器和照相机;
所述称重传感器安装在所述托盘上,所述照相机与所述托盘和所述托盘的刻度尺对应设置,所述输入装置、所述照相机和所述称重传感器均连接所述控制器;
所述输入装置,用于接收拍摄指令和称重指令,并发送所述控制器;
所述控制器,用于将接收到的拍摄指令发送给所述照相机,根据鱼体图像和刻度尺的图像,分别计算鱼体体长、鱼体体宽、鱼体周长和鱼体面积,并将接收到的称重指令发送给所述称重传感器,接收鱼体体重;
所述照相机,用于根据所述拍摄指令对所述托盘上的鱼体和托盘的刻度尺进行拍照,获取鱼体图像和刻度尺的图像后发送给所述控制器;
所述称重传感器,用于根据所述称重指令对鱼体进行称重,获取鱼体体重,并发送给所述控制器。
优选的,所述托盘设置在所述照相机的对地垂直线上,且所述照相机的镜头朝向所述托盘和所述刻度尺。
优选的,还包括:支撑架和安装板;
所述照相机安装在所述安装板上,所述安装板与所述支撑架连接,所述支撑架与所述托盘连接。
优选的,还包括:显示装置;
所述控制器连接所述显示装置,用于显示所述鱼体体长、鱼体体宽、鱼体周长、鱼体面积以及鱼体体重。
第二方面,本发明还提供一种基于所述的基于机器视觉的鱼类生长数据测量装置的鱼类生长数据测量方法,包括:
所述输入装置接收拍摄指令和称重指令,并发送所述控制器;
所述控制器将接收到的拍摄指令发送给所述照相机,并将接收到的称重指令发送给所述称重传感器;
所述照相机根据所述拍摄指令对所述托盘上的鱼体和托盘的刻度尺进行拍照,获取鱼体图像以及刻度尺的图像,并发送给所述控制器;
所述称重传感器根据所述称重指令对鱼体进行称重,获取鱼体体重,并发送给所述控制器;
所述控制器根据所述鱼体图像和所述刻度尺的图像,分别计算鱼体体长、鱼体体宽、鱼体周长和鱼体面积,并接收鱼体体重。
优选的,所述控制器根据所述鱼体图像和所述刻度尺的图像,计算鱼体体长,包括:
所述控制器根据所述鱼体图像获取鱼体的轮廓对应的各像素点的坐标值,并根据所述刻度尺的图像获取刻度尺预设长度对应的的各像素点的坐标值和所述预设长度的刻度值;
根据所述鱼体的轮廓对应的各像素点的坐标值、所述刻度尺预设长度对应的各像素点的坐标值和所述预设长度的刻度值,计算鱼体体长。
优选的,所述控制器根据所述鱼体图像和所述刻度尺的图像,计算鱼体体宽,包括:
所述控制器根据所述鱼体图像获取鱼体的轮廓对应的各像素点的坐标值,并根据所述刻度尺的图像获取刻度尺预设长度对应的各像素点的坐标值和所述预设长度的刻度值;
根据所述鱼体的轮廓对应的各像素点的坐标值、所述刻度尺预设长度对应的各像素点的坐标值和所述预设长度的刻度值,计算鱼体体宽。
优选的,所述控制器根据所述鱼体图像和所述刻度尺的图像,计算鱼体周长,包括:
所述控制器根据所述鱼体图像获取鱼体的轮廓包括的像素点个数,并根据所述刻度尺的图像获取刻度尺预设长度对应的各像素点的坐标值和所述预设长度的刻度值;
根据所述鱼体的轮廓包括的像素点个数、所述刻度尺预设长度对应的各像素点的坐标值和所述预设长度的刻度值,计算鱼体周长。
优选的,所述控制器根据所述鱼体图像和所述刻度尺的图像,计算鱼体面积,包括:
所述控制器根据所述鱼体图像获取鱼体包括的像素点个数,并根据所述刻度尺的图像获取刻度尺预设面积包括的像素点个数和预设面积中长度方向的刻度值和宽度方向的刻度值;
根据所述鱼体包括的像素点个数、所述刻度尺预设面积包括的像素点个数和预设面积中长度方向的刻度值和宽度方向的刻度值,计算鱼体面积。
优选的,所述方法还包括:
显示所述鱼体体长、鱼体体宽、鱼体周长、鱼体面积和鱼体体重。
由上述技术方案可知,本发明实施例基于照相机的机器视觉测量鱼体体长、鱼体体宽、鱼体周长、鱼体面积和鱼体体重,由于采用机器测量,因此耗时短,使鱼体离开水池的时间短,给鱼体造成的压力小,损害的风险小,对鱼的进食率的影响小,而且测量准确。
附图说明
图1为本发明一实施例的基于机器视觉的鱼类生长数据测量装置的结构示意图;
图2为本发明一实施例的基于机器视觉的鱼类生长数据测量装置的控制原理图;
图3为本发明一实施例提供的鱼类生长数据测量方法的流程图;
图4为本发明一实施例提供的鱼类生长数据测量装置的具体控制原理图;
图5为本发明一具体实施例提供的触摸显示屏的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
图1为本发明一实施例的基于机器视觉的鱼类生长数据测量装置的结构示意图,图2为本发明一实施例的基于机器视觉的鱼类生长数据测量装置的控制原理图。
如图1和图2所示的一种基于机器视觉的鱼类生长数据测量装置,包括:用于盛放鱼体的带刻度尺的托盘103(刻度尺为104)、输入装置106、称重传感器107、控制器108和照相机102;
所述称重传感器107安装在所述托盘103上,所述照相机102与所述托盘103和所述托盘103的刻度尺104对应设置,所述输入装置106、所述照相机102和所述称重传感器107均连接所述控制器108;
所述输入装置106,用于接收拍摄指令和称重指令,并发送所述控制器108;
所述控制器108,用于将接收到的拍摄指令发送给所述照相机102,根据鱼体图像和刻度尺104的图像,分别计算鱼体体长、鱼体体宽、鱼体周长和鱼体面积,并将接收到的称重指令发送给所述称重传感器107,接收鱼体体重;
所述照相机102,用于根据所述拍摄指令对所述托盘103上的鱼体和托盘103的刻度尺104进行拍照,获取鱼体图像和刻度尺104的图像后发送给所述控制器108;
所述称重传感器107,用于根据所述称重指令对鱼体进行称重,获取鱼体体重,并发送给所述控制器108。
在测量时,将待测的鱼体放在所述托盘103中。本发明实施例基于照相机102的机器视觉测量鱼体体长、鱼体体宽、鱼体周长、鱼体面积和鱼体体重,由于采用机器测量,因此耗时短,使鱼体离开水池的时间短,给鱼体造成的压力小,损害的风险小,对鱼的进食率的影响小,而且测量准确。
再参照图1,作为一种优选实施例,还包括:支撑架101和安装板;
所述照相机102安装在所述安装板上,所述安装板与所述支撑架101连接,所述支撑架101与所述托盘103连接。
该种结构便于安装照相机102以及设置照相机102与托盘103的相对位置。
为了显示结果,便于查看,作为一种优选实施例,还包括:显示装置;
所述控制器108连接所述显示装置,用于显示所述鱼体体长、鱼体体宽、鱼体周长、鱼体面积以及鱼体体重。
作为一种优选实施例,所述显示装置可以和所述输入装置106集成为一体,如集成为触摸显示屏105,可以简化装置结构,减小装置整体体积。
图3为本发明一实施例提供的鱼类生长数据测量方法的流程图。
如图3所示的一种基于所述的基于机器视觉的鱼类生长数据测量装置的鱼类生长数据测量方法,包括:
s301、所述输入装置接收拍摄指令和称重指令,并发送所述控制器;
s302、所述控制器将接收到的拍摄指令发送给所述照相机,并将接收到的称重指令发送给所述称重传感器;
s303、所述照相机根据所述拍摄指令对所述托盘上的鱼体和托盘的刻度尺进行拍照,获取鱼体图像以及刻度尺的图像,并发送给所述控制器;
s304、所述称重传感器根据所述称重指令对鱼体进行称重,获取鱼体体重,并发送给所述控制器;
s305、所述控制器根据所述鱼体图像和所述刻度尺的图像,分别计算鱼体体长、鱼体体宽、鱼体周长和鱼体面积,并接收鱼体体重。
作为一种优选实施例,所述步骤s305中的所述控制器根据所述鱼体图像和所述刻度尺的图像,计算鱼体体长,包括:
所述控制器根据所述鱼体图像获取鱼体的轮廓对应的各像素点的坐标值,并根据所述刻度尺的图像获取刻度尺预设长度对应的各像素点的坐标值和所述预设长度的刻度值;
根据所述鱼体的轮廓对应的各像素点的坐标值、所述刻度尺预设长度对应的各像素点的坐标值和所述预设长度的刻度值,计算鱼体体长。
作为一种具体实施例,鱼体体长的具体计算方法如下:
以预设长度为单位刻度为例说明。
先根据鱼体图像得到鱼体的轮廓图像,遍历轮廓上的各个白色像素点坐标值(x,y)并存入向量组中,找到长度方向(可人为设定哪一方向为长度方向)上的最小坐标点(x1,y1)与最大坐标点(x2,y2)(坐标点即为像素点,下同),利用下述公式算出两个像素点之间的距离|dis|,即为鱼体在图像中的长度。
根据所述刻度尺的图像获取刻度尺单位刻度对应的各像素点的坐标值和所述单位刻度的刻度值;
用所述刻度尺单位刻度对应的各像素点中长度方向的最大坐标值减去最小坐标值得到刻度尺单位刻度在图像中的长度;
用所述单位刻度的刻度值中长度方向的最大刻度值减去最小刻度值得到刻度尺单位刻度的实际长度;
根据鱼体在图像中的长度、刻度尺单位刻度在图像中的长度和刻度尺单位刻度的实际长度、通过下述公式计算鱼体体长。
其中,l为鱼体长,|dis|为鱼体在图像中的长度,s为刻度尺单位刻度的实际长度,t为刻度尺单位刻度在图像中的长度。
值得说明的是,预设长度还可采用任意大小的刻度范围,并不局限于上述的单位刻度。若对鱼体图像处理后最终得到的鱼体的像素点为黑色像素点,则上述白色像素点均替换为黑色像素点。
作为一种优选实施例,所述步骤s305中的所述控制器根据所述鱼体图像和所述刻度尺的图像,计算鱼体体宽,包括:
所述控制器根据所述鱼体图像获取鱼体的轮廓对应的各像素点的坐标值,并根据所述刻度尺的图像获取刻度尺预设长度对应的各像素点的坐标值和所述预设长度的刻度值;
根据所述鱼体的轮廓对应的各像素点的坐标值、所述刻度尺预设长度对应的各像素点的坐标值和所述预设长度的刻度值,计算鱼体体宽。
值得说明的是,鱼体体宽的具体计算方法可参照鱼体体长的具体计算方法,此处不再赘述。
作为一种优选实施例,所述步骤s305中的所述控制器根据所述鱼体图像和所述刻度尺的图像,计算鱼体周长,包括:
所述控制器根据所述鱼体图像获取鱼体的轮廓包括的像素点个数,并根据所述刻度尺的图像获取刻度尺预设长度对应的各像素点的坐标值和所述预设长度的刻度值;根据所述鱼体的轮廓包括的像素点个数、所述刻度尺预设长度对应的各像素点的坐标值和所述预设长度的刻度值,计算鱼体周长。
在一种具体实施例中,根据所述鱼体的轮廓包括的像素点个数、所述刻度尺预设长度对应的各像素点的坐标值和所述预设长度的刻度值,计算鱼体周长,包括:以预设长度为单位刻度为例说明。
用所述刻度尺单位刻度对应的各像素点中长度方向的最大坐标值减去最小坐标值得到刻度尺单位刻度在图像中的长度;用所述单位刻度的刻度值中长度方向的最大刻度值减去最小刻度值得到刻度尺单位刻度的实际长度;
根据鱼体的轮廓包括的像素点个数、刻度尺单位刻度在图像中的长度和刻度尺单位刻度的实际长度,通过下述公式计算鱼体周长
其中,c为鱼体周长,n为鱼体轮廓包括的像素点个数,s为单位刻度的实际长度,t为刻度尺单位刻度在图像中的长度。
值得说明的是,预设长度还可采用任意大小的刻度范围,并不局限于上述的单位刻度。上述得到的像素点可为白色像素点,也可以为黑色像素点,具体根据二值化后鱼体和背景的颜色而定。
作为一种优选实施例,所述步骤s305中的所述控制器根据所述鱼体图像和所述刻度尺的图像,计算鱼体面积,包括:
所述控制器根据所述鱼体图像获取鱼体包括的像素点个数,并根据所述刻度尺的图像获取刻度尺预设面积包括的像素点个数和预设面积中长度方向的刻度值和宽度方向的刻度值;
根据所述鱼体包括的像素点个数、所述刻度尺预设面积包括的像素点个数和预设面积中长度方向的刻度值和宽度方向的刻度值,计算鱼体面积。
在一种具体实施例中,根据所述鱼体包括的像素点个数、所述刻度尺预设面积包括的像素点个数和预设面积中长度方向的刻度值和宽度方向的刻度值,计算鱼体面积,包括:
以预设面积为单位刻度为例说明。
用所述单位刻度中长度方向的最大刻度值减去最小刻度值得到刻度尺单位刻度的实际长度,用所述单位刻度中宽度方向的最大刻度值减去最小刻度值得到刻度尺单位刻度的实际宽度,刻度尺单位刻度的实际长度乘以刻度尺单位刻度的实际宽度得到刻度尺单位刻度的实际面积;
根据所述鱼体包括的像素点个数、刻度尺单位刻度包括的像素点个数和刻度尺单位刻度的实际面积,通过下述公式计算鱼体面积
其中,a为鱼体面积,n为鱼体包括的像素点个数,w为刻度尺单位刻度的实际面积,q为刻度尺单位刻度包括的像素点个数。
值得说明的是,预设面积度还可采用任意面积范围,并不局限于上述的单位刻度。上述得到的像素点可为白色像素点,也可以为黑色像素点,具体根据二值化后鱼体和背景的颜色而定。
作为一种优选实施例,所述方法还包括:
显示所述鱼体体长、鱼体体宽、鱼体周长、鱼体面积和鱼体体重。
下面通过一个具体实施例说明本发明。
本实施例中的基于机器视觉的鱼类生长数据测量装置可放置于养殖池边,需将鱼体打捞后放置于带有刻度尺的托盘103上(刻度尺为104),控制器108控制照相机102拍摄鱼体图像和刻度尺104的图像。
一种基于机器视觉的鱼类生长数据测量装置,包括支撑架101、安装板、照相机102、控制器108、带刻度尺的托盘103。所述照相机102安装在所述安装板上,所述安装板与所述支撑架101连接,所述支撑架101与所述托盘103连接,所述托盘103设置在所述照相机102的对地垂直线上,且所述照相机102的镜头朝向所述托盘103和所述刻度尺104,该种情况拍摄的照片更清晰,计算的结果更准确。如图1所示。
所述支撑架101,一端装有螺丝钮,可安置不同型号的照相机102。
所述照相机102,通过数据线与控制器108相连接,相机设置为快门优先,控制器108选择拍照后,相机拍摄照片。
所述带刻度尺的托盘103,尺寸为70cmx50cm,刻度条精确到1cm,每隔5cm标记刻度值,确保测量值直观易读。
所述控制器108,其内部结构集成一个工控机、电子计量模块、摄像头模块、数据处理模块和人机交互模块,其中,电子计量模块、摄像头模块、数据处理模块和人机交互模块均连接工控机,设计如附图4所示。电子计量模块、摄像头模块、数据处理模块和人机交互模块均可通过电路或硬件设备实现。
其中,电子计量模块连接称重传感器107,称重传感器107获取鱼体体重,并将鱼体体重反馈给工控机。摄像头模块与照相机102连接,主要有图像拍摄和数据储存两个功能。数据处理模块主要有图像处理、体长计算、体宽计算、周长计算、面积计算和数据储存功能。人机交互模块连接触摸显示屏105,主要用于数据展示和人工操作。
触摸显示屏105页面设计如图5所示,所述图像拍摄,包括拍摄、确定、保存和取消。当操作员点击拍摄按钮时,信号传至照相机102,打开镜头。镜头调整至合适的位置时,点击确定按钮,拍摄照片。点击保存按钮,选择将照片存储至默认文件夹。点击取消按钮重新拍摄。点击处理按钮图片传输至图像处理。
所述图像处理,包括将图像灰度化、二值化、去噪点及轮廓提取。将拍摄的彩色图像转化成灰度图像的过程叫图像的灰度化处理(本发明中默认照相机102拍摄的图像为彩色图像),彩色图像中每个像素的颜色有r、g、b三个分量决定,而每个分量有255中值可取,而灰度图像是rgb三个分量相同的一种特殊彩色图像,所以采集到鱼类图像后,采用下述公式将三个分量进行加权,得到灰度化图像。
f(i,j)=0.30r(i,j)+0.59g(i,j)+0.11b(i,j)
其中,r(i,j)为横坐标为i,纵坐标为j的像素点的r分量,g(i,j)为横坐标为i,纵坐标为j的像素点的g分量,b(i,j)为横坐标为i,纵坐标为j的像素点的b分量。
灰度化之后为了使得计算方便,将图像进行二值化处理。即将图像中的每个像素点的灰度值设置为0(黑色)和255(白色),让整个图像呈现只有黑和白的效果。当鱼体照片灰度化之后,点击二值化,程序通过计算图像中像素点矩阵中所有像素点的灰度值的平均值,然后让每一个像素点的灰度值与平均值进行比较,小于平均值的设置为0,大于平均值的设置为255,得到二值化图像。如果得到的二值化图像周围存在白色噪点,点击去噪点按钮,利用中值滤波器将像素矩阵遍历一边,让与周围像素灰度值的差比较大的像素改取与周围像素值接近的值,消除孤立的噪声点。最后点击轮廓提取按钮,根据图片灰度值变化剧烈的地方,定义为边缘,利用边缘检测算法提取出鱼体轮廓信息,并显示在控制器108的触摸显示屏105上。
所述体长测量,需在图片经过图像处理得到鱼体轮廓信息后点击体长计算按钮,程序获取横向扫描轮廓上的白色像素点(本实施例中默认二值化后的鱼体包括的是白色像素点,背景是黑色像素点,下同),根据上文所述方法计算鱼体体长,并以cm为单位显示在下方方框内。
所述体宽测量,需在图片经过图像处理得到鱼体轮廓信息后点击体宽计算按钮,程序获取纵向扫描轮廓上的白色像素点,根据上文所述方法鱼体体宽,并以cm为单位显示在下方方框内。
所述周长测量,需在图片经过图像处理得到鱼体轮廓信息后点击周长计算按钮,程序获取周长上的白色像素点,根据上文所述的方法计算鱼体周长,并以cm为单位显示在下方方框内。
所述面积测量,需在图片经过图像处理得到鱼体轮廓后点击面积计算按钮,根据上文所述的方法计算鱼体面积,并以cm为单位显示在下方方框内。
所述数据保存,默认为程序安装路径下自动创建.txt文件,点击后可选择保存路径与文件名,数据以拍摄时间、鱼类编号、鱼体体长、鱼体体宽、鱼体体重为储存值保存。
在实际操作时,在本发明的一个实施例中,将照相机102设置好参数,安置于支撑架101上,将鱼体捕捞后放置于带刻度尺的托盘103上,垂直于照相机102,操作人员在控制器108的触摸显示屏105上点击拍摄按钮,照相机102拍摄一张鱼体的照片,点击保存按钮,将照片保存至默认文件夹。点击处理,图像传送至处理界面。点击灰度化按钮,界面出现图像灰度化后的图像。点击二值化按钮,界面出现二值化后的黑白图像。点击去噪点按钮,程序处理出现的噪点,处理后的图片显示于界面上。点击轮廓提取,界面出现正方形红框将鱼体包围,鱼体轮廓内部的像素点消失,只留下轮廓上的像素点。点击体长测量按钮,程序通过轮廓上的像素点计算体长并显示在方框里。点击体宽测量按钮,程序通过轮廓上的像素点计算体宽并显示在方框里。点击周长测量按钮,程序通过轮廓上的像素点计算周长并显示在方框里。点击面积测量按钮,程序通过轮廓上的像素点计算面积并显示在方框里。电子计量模块将鱼体重量显示于体重记录下方方框里。点击数据保存按钮,选择保存文件夹,将一条测量出来的数据以fish.txt保存下来。
本发明以刻度尺104为标准测量鱼体体长、体宽、周长和面积,并存入数据库,该种实现方式结构简单,容易实现,成本低,可实现采集过程精确简易化。
应当注意的是,在本发明的装置的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本发明不受限于此,可以根据需要对各个部件进行重新划分或者组合,例如,可以将一些部件组合为单个部件,或者可以将一些部件进一步分解为更多的子部件。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。单词“包括”不排除存在未列在权利要求中的元件或步骤。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。
以上实施方式仅适于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。