CN105389586B - 一种基于计算机视觉自动检测虾体完整性的方法 - Google Patents
一种基于计算机视觉自动检测虾体完整性的方法 Download PDFInfo
- Publication number
- CN105389586B CN105389586B CN201510683298.5A CN201510683298A CN105389586B CN 105389586 B CN105389586 B CN 105389586B CN 201510683298 A CN201510683298 A CN 201510683298A CN 105389586 B CN105389586 B CN 105389586B
- Authority
- CN
- China
- Prior art keywords
- shrimp
- test
- template
- contour images
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
- G06V10/7515—Shifting the patterns to accommodate for positional errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于计算机视觉自动检测虾体完整性的方法,包括步骤:1)以完整虾体为模板虾,并提取模板虾的轮廓图像作为轮廓模板;2)提取测试虾的轮廓图像,并根据所述的轮廓模板,利用仿射变换方法对测试虾轮廓的形态位置进行纠正;3)在所述轮廓图像内提取测试虾的主骨架曲线,以获取虾体的最大曲率点作为腹部旋转的支撑点,并对测试虾的腹部偏离角进行修正;4)对模板虾和测试虾的轮廓图像使用基于模板遍历的8‑邻域free链码方法计算相似度;5)设定相似度阈值,完成虾体的完整性判别。本发明可直接用于对虾养殖加工厂的样本预处理环节,把其中的不完整虾剔除,在产品加工中满足产品精选分级的需要。
Description
技术领域
本发明涉及计算机视觉技术领域的方法,尤其涉及一种基于计算机视觉自动检测虾体完整性的方法。
背景技术
在对虾加工厂里,对虾加工成品中存在的缺陷虾是通过人工挑选的方法去除的,这种方式不仅效率低且工人容易疲劳;在劳动力相对匮乏和昂贵的今天,使用大量劳动力从加工对虾产品中精选正品虾的方式早已经过时,急需简单、快速、自动的方法来取代人工挑选的方式,这样不仅可以减少劳动力的开销,而且还可以提高加工产品精选分级的准确率和效率,提高产品检测和加工的效率。
一般从养殖厂池塘捕捞上来的对虾中通常存在虾体不完整的情况,这些情况通常发生在对虾打捞过程中人为的导致虾体破损,虾体的相互碰撞与挤压造成虾体部分残缺或缺失,包括只存在头胸部或者只存在尾腹部或者尾部缺失等等。针对一般对虾完整性的判别方法通常采用虾体面积和轮廓对对虾的完整性进行判别,但是由于生长环境状况、营养状况以及虾体自身的体制等因素导致对捕捞上来的对虾在形体上大小不一,使用上述方法判别虾体完整性时,容易把个体较小的对虾误判为不完整虾而剔除掉,而且如果这些残缺的虾体不及时清除而流入市场中,容易给对虾养殖厂带来一定的经济损失。
发明内容
为了解决现有技术无法对对虾的完整性进行检测问题,本发明公开了一种基于计算机视觉自动检测对虾完整性的方法,可直接用于对虾养殖加工厂的样本预处理环节,把其中的不完整虾剔除。将该方法装配到在线的对虾分级监测装备中去,可以实现机械装备检测的智能化和自动化,为一些中小型养殖企业每年因生产加工的不完整对虾产品带来的经济损失提供了一套解决方案。发明方法综合应用了人工智能、图像处理和计算机软件技术对目标进行外观特征提取与处理,结果精确且处理速度快。
在虾的收获季节中,针对捕捞上岸的虾群中,由于人为因素、相互碰撞等因素导致的虾体不完整的问题,也为了在产品加工中满足产品精选分级的需要,专门设计开发一种适合于配合相应的自动精选分级装置一起使用的虾体完整性的识别方法。具体技术方案如下:
一种基于计算机视觉自动检测虾体完整性的方法,包括以下步骤:
1)以完整虾体为模板虾,并提取模板虾的轮廓图像作为轮廓模板;
2)提取测试虾的轮廓图像,并根据所述的轮廓模板,利用仿射变换方法对测试虾轮廓的形态位置进行纠正;
3)在所述轮廓图像内提取测试虾的主骨架曲线,以获取虾体的最大曲率点作为腹部旋转的支撑点,并对测试虾的腹部偏离角进行修正;
4)对模板虾和测试虾的轮廓图像使用基于模板遍历的8-邻域free链码方法计算相似度;
5)设定相似度阈值,完成虾体的完整性判别。
其中,虾体轮廓信息的提取步骤包括:
1.1提取虾体所处图像中的最小外接矩形对应的感兴趣区域并转化为灰度图;
1.2对所述的灰度图依次进行局部阈值分割和5×5模板的中值滤波;
1.3在中值滤波处理后的图像中获取最大面积的连通区域;
1.4对连通区域图像依次进行开、闭运算和膨胀腐蚀运算,然后提取虾体的轮廓图像信息。
优选的,步骤2)中的纠正包括:
根据所述最大曲率点的开口方向进行方向纠正;
根据测试虾和模板虾的轮廓图像内的像素总和,对测试虾的轮廓图像进行缩放纠正;
根据测试虾和模板虾的轮廓图像内头部特征点的间隔距离,对测试虾的轮廓图像进行位移纠正;
根据测试虾和模板虾的轮廓图像中最大曲率点和所述头部特征点间的连线,确定两幅图像中的连线夹角θ,对测试虾的轮廓图像进行头胸部偏转角度纠正;
在两幅轮廓图像中,根据最大曲率点、头部特征点和尾部特征点构建三角形,根据两三角形内最大曲率点所处顶角的角度差,对测试虾的轮廓图像进行腹部偏转角度纠正。
进一步的,进行缩放纠正时,分别统计测试虾与模板虾中轮廓图像的像素总和,分别标记为sum1和sum2,设二者之比
若α=1,说明测试虾和模板虾两者尺寸大小适中,不需要缩放;
若α>1,说明测试虾大于模板虾,需要对测试虾进行缩小,缩小的数值为即
若α<1,说明模板虾大于测试虾,需要对测试虾进行放大,放大的数值为即
进一步的,进行位移纠正时,将测试虾头部最前端的特征点a(x1,y1)移动到模板虾头部对应位置的特征点b(x2,y2)上,计算a点与b点之间的欧氏距离d,直接把a点移动d个单位距离。
进一步的,在头胸部偏转角度纠正时,判断测试虾的轮廓图像位于坐标内的象限,若位于第一、二、四象限,则把测试虾的轮廓按逆时针方向旋转θ角度;若位于第二、三、四象限,则把测试虾的轮廓按顺时针方向旋转θ角度。
在本发明的步骤4)中,利用基于模板遍历的8-邻域free链码方法对两轮廓图像建立两次模板匹配的遍历:
第一次遍历:以测试虾和模板虾的轮廓图像中相距最大的两个像素点的连线为对角线建立正方形,以作为图像模板匹配的移动窗口n×n,利用移动窗口n×n依次遍历模板虾的轮廓图像内的像素,并统计移动窗口内轮廓图像中的像素个数,若与测试虾的轮廓图像中对应位置的像素相等,则把该位置的坐标放入矩阵C中,再把模板虾统计的像素个数的结果放到矩阵N中,N的行和列分别记录着分别沿着x轴和y轴遍历时像素为1的周围像素个数;
第二次遍历,在同一坐标系下用移动窗口n×n进行模板匹配,与第一次遍历的原理相同,通过统计的像素个数建立矩阵M,M的行和列分别记录着依次遍历x轴和y轴周围像素的个数。
进一步的,计算矩阵N和矩阵M的相似度以判别测试虾的完整性,具体为:
令i的n领域用Ui(i,n)来表示,j的n领域用Uj(j,n)来表示,则有:
Ui(i,n)={x|i-n<x<i+n},i=1,2,...X;
Uj(j,n)={y|j-n<y<j+n},j=1,2,...Y;
其中,X,Y表示图像的横坐标和纵坐标遍历范围;
A)若矩阵M中所有数字之和大于N中所有数字之和,即
其中∑是求和符号,(i,j)是图像中像素位置的横坐标与纵坐标,且对于所有的(i,j)均要
考虑模板虾与测试虾在相同的位置上是否存在重叠像素,即{(h,s)|h,s∈C}与{(i,j)|i∈
Ui(i,n)∪j∈Uj(j,n)}是否相等的问题;
A-1){(h,s)|h,s∈C}≠{(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)},表明在点(i,j)的n领域内存在除了模板虾之外的其他像素值且无像素重叠的情况,多余的像素值即为测试虾在点(i,j)的像素值,此时测试虾是完整虾;
A-2){(h,s)|h,s∈C}={(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)},说明在点(i,j)的n领域内存在除了模板虾之外的其他像素位置有像素重叠的情况,需要减去n领域内有像素重叠的情况的像素值,
即在时,测试虾也是完
整虾;
B)若矩阵M中所有数字之和等于N中所有数字之和,
且对于所有的(i,j)均要考虑{(h,s)|h,s∈C}与{(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)}是否相
等;
B-1)若{(h,s)|h,s∈C}={(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)},则说明测试虾与模板虾两者完全重合,不存在缺失的情况,此时测试虾是完整虾;
B-2)对于{(h,s)|h,s∈C}≠{(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)}的情况下,测试虾是不完整虾。
进一步的,针对所述的(A)、(B)两种情况下,对相似度进行分析并设定相应的阈值来判别测试虾的完整性:
(1)如果每个n×n领域之内都出现且直到遍历完模板虾,则有则测试虾为完整虾;
(2)若出现等式且{(h,s)|h,s
∈C}={(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)},则测试虾为完整虾;
(3)若出现等式且{(h,s)|h,
s∈C}≠{(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)},则测试虾为残缺虾。
附图说明
图1为检测虾的完整性的流程图;
图2为虾的位移还原示意图;
图3为虾轮廓、骨架线、最大曲率点、过最大曲率点的直线、过最大曲率点的直线与虾轮廓的两个交点所有点显示的示意图;
图4为虾的头胸部偏转角度还原示意图;
图5为虾的腹部偏转角还原示意图;
图6为证明测试虾与模板虾最大曲率点的不变形示意图。
具体实施方式
下面结合说明书附图及虾的实施例对本发明作进一步详细描述。
如图1所示,一种虾的完整性的自动识别方法,其步骤包括训练阶段和测试阶段。训练阶段主要是对虾图像的轮廓信息进行提取,包括以下阶段:感兴趣区域提取→灰度处理→局部阈值分割→5×5模板的中值滤波→获取连通区域→开运算→闭运算→膨胀腐蚀处理→获取轮廓信息,提取后的样本作为模板。测试阶段主要也是通过以上步骤动态提取的对虾图像的轮廓信息进行提取,然后利用仿射变换方法根据模板虾轮廓信息依次对方向、偏转角度、位移的偏移量进行一定的纠正,对处理后的图像提取主骨架线获取最大曲率点作为对虾腹部旋转的支撑点,目的是为了让测试虾与模板虾的腹部匹配起来,再对模板虾的轮廓像素点周围使用基于模板遍历的8-邻域free链码方法进行相似度方法计算与测量,设定相似度阈值,完成虾体的完整性判别。
由于本发明中试验样本的采集都是由分辨率为640×480的CCD相机硬触发而完成的,而对虾并不是全部占据了相机视场的范围,而且图像是动态采集的,每幅图像出现的位置并不是固定的,因此有必要去除多余的冗余信息对图像进行感兴趣区域提取。感兴趣区域表示整幅图像中样本图像出现的最小外接矩形。具体方法:依次遍原始图像的长与宽,通过灰度直方图找出背景与样本图像差异最明显的像素阈值,大于该阈值且小于255的所有像素为样本所在的像素范围,再取其中的最大与最小值组成的矩形便是感兴趣区域,具体公式表述如下:
设相机的视场实际长为x,宽为y,图像所占有实际长为x1,宽为y1,由相机本身属性可知,其拍摄的图像像素横坐标取值范围为[0,640],纵坐标取值范围为[0,480],以虾体完整的对虾为模板虾,预先拍摄多张对虾图像,统计其中样本占有的图像像素区域最大值,即感兴趣像素区域,设为l×w(l表示感兴趣像素区域的长,w表示感兴趣像素区域的宽)通过公式:
由公式(1)和(2)可以计算出感兴趣区域的范围,实际感兴趣区域横轴、纵轴范围变化分别为和实际感兴趣区域长、宽分别为和在该区域范围内包含最小的目标图像。
经过ostu阈值处理的图像再进行5×5模板的中值滤波处理,具体做法如下:设原始图像用G(m,n)表示,使用5×5窗口对图像进行均值滤波处理,用5×5像素邻域内各点的二值平均值来代替该图像原来的灰度值,处理后的图像用表示:
其中,S是点(m,n)邻域内点集坐标的集合,但其中不包括(m,n)点,M是集合内坐标点的总数,N表示图像尺寸的大小。
图像中的每个像素的灰度值均由包含在(m,n)指定的邻域中几个像素的灰度平均值所决定的。
经过中值滤波处理后的图像中还存在一些孤立的白色点,首先标记各个连通区域,获得各个连通区域的面积,将获取的面积值放入一个矩阵中,取最大面积作为最终的最大连通区域显示出来就是经过处理的对虾图像,此时的图像中把一些孤立的点删除,使得图像更具有表现原始图像的轮廓与外貌,再经过开、闭运算和膨胀腐蚀运算之后利用Sobel算子提取对虾边缘信息,即轮廓信息。至此,模板虾和测试虾都要经过以上过程求得轮廓信息,下面计算测试虾的轮廓与模板虾提取的轮廓相似性程度:
1、不论是模板虾还是测试虾,均取CCD相机获取的视场大小为640×480的中心点作为坐标中心建立二维平面直角坐标系,x轴的变化范围为[-320,320],y轴的变化范围为[-240,240],依次把获取动态采集的图像提取的轮廓图像中放入二维坐标系;
1)方向纠正:提取待测试虾体的主骨架曲线中腹部部分建立一元二次方程判断测试虾腹部最大曲率点的开口方向是否朝下;若不朝下,取测试虾的镜像作为纠正后的图像;
2)缩放纠正:分别统计测试虾与模板虾中轮廓的像素总和,分别标记为sum1和sum2,设二者之比
若α=1,说明测试虾和模板虾两者尺寸大小适中,不需要缩放;
若α>1,说明测试虾大于模板虾,需要对测试虾进行缩小,缩小的数值为即
若α<1,说明模板虾大于测试虾,需要对测试虾进行放大,放大的数值为即
3)位移纠正:如图2所示,目标是将测试虾头胸甲上最前端的位置的坐标点a(x1,y1)移动到模板虾的头胸甲上最前端的坐标点b(x2,y2)上,计算a点与b点之间的欧氏距离d,根据运算结果直接把a点移动d个单位距离即可。
4)头胸部偏转角度纠正:经过以上三步,测试虾变换到如图4所示的位置,设测试虾的头胸甲轮廓与模板虾头胸甲轮廓之间的夹角θ,而由图3可知,可以求得过虾体骨架线上最大曲率点直线与虾体轮廓上的两个交点坐标,因此在图4中的θ角度可以由k1点、k2点和虾头点坐标而确定。此时,只要把测试虾整体轮廓沿逆时针方向旋转角度θ即可纠正。在第3步我们可以知道,图2中的a点与b点重合,且它们的坐标都可求得。用欧式距离依次连接图4中a,k1,k2三点,形成三条边,它们的长度依次为A,B,C,因此用余弦定理可以求得旋转角度:
其中arccos表示取得反余切值。之后再判断测试虾所占的位置的大部分是位于坐标系的第几象限;若位于第一、二、四象限,则把测试虾的轮廓按逆时针方向旋转θ角度;若位于第二、三、四象限,则把测试虾的轮廓按顺时针方向旋转θ角度即可。求出头胸部偏转角θ,再将测试虾以逆时针方向旋转θ角度转到与模板虾的最大曲率点附近的位置(两点重合的证明见5))。
5)腹部偏转角度纠正:提取测试虾的主骨架曲线以获取虾体的最大曲率值,采用了一种基于局部区域的曲率获取方法,得到主骨架曲线上每一点的曲率,确定出曲率最大点,分别将主骨架曲线的端点和末点与该点相连,两条线的夹角即为最大曲率点。提取测试虾的最大曲率点为其腹部旋转的支点,经过上述仿射变换四个步骤的处理,事实上可以得出,每个测试虾与模板虾具有相同的腹部旋转支点,证明如下:
如图6所示,由步骤三可知,测试虾与模板虾的轮廓中的像素个数分别有sum1和sum2个,像素之比为w和s点分别表示测试虾与模板虾的最大曲率点,它们的坐标已知,其中w点经过位移、缩放变换之后占总体像素值坐标由w(x5,y5)变为其中d1=|x6-x5|,d2=|y6-y5|;而对于模板虾,由于其不需要进行位移与缩放变化,其s点占总体像素值的坐标由s(x6,y6)变为下面利用反证法来判断w’与s’的关系,假设w’与s’不重合,则有以下两个不等式:
因为(4)和(5)可以转化为:
(x6-d1)≠x5 (6)
(y6-d2)≠y5 (7)
又因为d1=|x6-x5|且d2=|y6-y5|,(6)式和(7)式是相互矛盾的关系,不成立。因此假设不成立,w′与s′重合,命题得证。
由此结论,就可以把测试虾与模板虾统一到相同的支点为旋转点,因为通过罗艳在2013年撰写的浙江大学硕士毕业论文《基于机器视觉技术的对虾规格检测方法研究》中可以计算出轮廓中每个像素的曲率及其对应的夹角,两者之差即为所求测试虾所要偏转的角度,如图5所示,设二者轮廓中每个像素最大曲率对应的角度分别为和根据测试虾的大部分图像位于坐标系的第几象限可以判断角度的偏转转向;若图像位于第一、二、四象限,则把测试虾的腹部轮廓按顺时针方向旋转角度;若图像位于占据了全部四个象限,则把测试虾的轮廓按逆时针方向旋转角度;
2、等到测试虾的轮廓按照模板虾方位确定好之后,下面开始使用基于模板遍历的8-邻域free链码方法对两者的相似度进行计算与测量:
将经过上述处理后的测试虾图像与模板虾图像放于同一个建立的直角坐标系中,建立两次模板匹配的遍历,在遍历之前需要考虑测试虾轮廓与模板虾的轮廓重合的情况,因此在第一次遍历模板虾轮廓时,要同时判断与测试虾相同位置的像素值的相等情况。第二次是遍历模板虾与测试虾轮廓同在一个坐标系中两者的相似度。此两次模板匹配的遍历是一前一后进行的,在第一次模板匹配的遍历,首先计算出测试虾与模板虾的轮廓中相距最大的两个像素点之间的距离作为模板匹配的尺寸大小,设为n×n,让该模板依次遍历虾体轮廓,期间模板每移动一个像素就把其周围n×n范围内像素个数进行统计并与测试虾在相同位置的像素值大小进行判断;若相等,则把该位置标记出来放进矩阵C中,再把统计的结果放到一个矩阵N中,N行和列分别记录着依次遍历x轴和y轴周围像素的个数;再进行第二次模板匹配的遍历,同样的以n×n作为模板匹配的大小,让其依次遍历两幅图像的轮廓线,每移动一个像素就把其周围n×n范围内像素个数进行统计,统计的结果放到另一个矩阵中M,M的行和列分别记录着依次遍历x轴和y轴周围像素的个数;此时的矩阵N和M分别代表了模板虾的“轮廓特征”和测试虾与模板虾融合之后的“轮廓特征”,而C中存放着测试虾与模板虾像素重叠的位置。下面只要比对矩阵N和M的相似度就可以,并且把其中“假相似”的像素剔除即可:
(1)令i的n领域用Ui(i,n)来表示,j的n领域用Uj(j,n)来表示,则有:
Ui(i,n)={x|i-n<x<i+n},i=1,2,...640,
Uj(j,n)={y|j-n<y<j+n},j=1,2,...480;
A)若矩阵M中所有数字之和大于N中所有数字之和,即
其中∑是求和符号,(i,j)是图像中像素位置的横坐标与纵坐标(下同),且对于所有的(i,
j)均要考虑模板虾与测试虾在相同的位置上是否存在重叠像素的问题,即{(h,s)|h,s∈C}
与{(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)}是否相等的问题((h,s)表示矩阵C中行与列,∪表示并
集符号(下同))。
A-1){(h,s)|h,s∈C}≠{(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)},表明在点(i,j)的n领域内存在除了模板虾之外的其他像素值且无像素重叠的情况,多余的像素值即为测试虾在点(i,j)的像素值。该种情况下对于测试虾来说,不存在残缺的情况,此时测试虾是完整虾。
A-2){(h,s)|h,s∈C}={(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)},说明在点(i,j)的n领域内存在除了模板虾之外的其他像素位置有像素重叠的情况,这种情况下需要减去n领域内有像素重叠的情况的像素值,
即在时,测试虾也是完
整虾。
B)若矩阵M中所有数字之和等于N中所有数字之和,
且对于所有的(i,j)均要考虑{(h,s)|h,s∈C}与{(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)}是否相
等的问题。
B-1)若{(h,s)|h,s∈C}={(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)},则说明测试虾与模板虾两者完全重合,不存在缺失的情况,此时测试虾是完整虾。
B-2)对于{(h,s)|h,s∈C}≠{(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)}的情况下,测试虾是不完整虾。
3、设定相似度阈值,完成测试虾的完整性判别。
基于步骤2)中的A)、B)两种情况下,对相似度进行分析并设定相应的阈值大小判别测试虾的完整性:
对虾完整性的判定方法:以模板虾像素出现的位置为基准,根据统计出的n邻域之内的求和公式,设定为阈值:
(1)如果每个n×n领域之内都出现且直到遍历完模板虾
的情况为完整虾;
(2)若出现等式且{(h,s)|h,s
∈C}={(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)}的情况为完整虾;
(3)若出现等式且{(h,s)|h,s
∈C}≠{(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)}的情况为残缺虾。
Claims (8)
1.一种基于计算机视觉自动检测虾体完整性的方法,其特征在于,包括以下步骤:
1)以完整虾体为模板虾,并提取模板虾的轮廓图像作为轮廓模板;
2)提取测试虾的轮廓图像,并根据所述的轮廓模板,利用仿射变换方法对测试虾轮廓的形态位置进行纠正;
步骤2)中的纠正包括:
根据最大曲率点的开口方向进行方向纠正;
根据测试虾和模板虾的轮廓图像内的像素总和,对测试虾的轮廓图像进行缩放纠正;
根据测试虾和模板虾的轮廓图像内头部特征点的间隔距离,对测试虾的轮廓图像进行位移纠正;
根据测试虾和模板虾的轮廓图像中最大曲率点和所述头部特征点间的连线,确定两幅图像中的连线夹角θ,对测试虾的轮廓图像进行头胸部偏转角度纠正;
在两幅轮廓图像中,根据最大曲率点、头部特征点和尾部特征点构建三角形,根据两三角形内最大曲率点所处顶角的角度差,对测试虾的轮廓图像进行腹部偏转角度纠正;
3)在所述轮廓图像内提取测试虾的主骨架曲线,以获取虾体的最大曲率点作为腹部旋转的支撑点,并对测试虾的腹部偏离角进行修正;
4)对模板虾和测试虾的轮廓图像使用基于模板遍历的8-邻域free链码方法计算相似度;
5)设定相似度阈值,完成虾体的完整性判别。
2.如权利要求1所述的基于计算机视觉自动检测虾体完整性的方法,其特征在于,虾体轮廓信息的提取步骤包括:
1.1提取虾体所处图像中的最小外接矩形对应的感兴趣区域并转化为灰度图;
1.2对所述的灰度图依次进行局部阈值分割和5×5模板的中值滤波;
1.3在中值滤波处理后的图像中获取最大面积的连通区域;
1.4对连通区域图像依次进行开、闭运算和膨胀腐蚀运算,然后提取虾体的轮廓图像信息。
3.如权利要求1所述的基于计算机视觉自动检测虾体完整性的方法,其特征在于,进行缩放纠正时,统计测试虾与模板虾中轮廓图像的像素总和,分别标记为sum1和sum2,设二者之比
若α=1,说明测试虾和模板虾两者尺寸大小适中,不需要缩放;
若α>1,说明测试虾大于模板虾,需要对测试虾进行缩小,缩小的数值为即
若α<1,说明模板虾大于测试虾,需要对测试虾进行放大,放大的数值为即
4.如权利要求1所述的基于计算机视觉自动检测虾体完整性的方法,其特征在于,进行位移纠正时,将测试虾头部最前端的特征点a(x1,y1)移动到模板虾头部对应位置的特征点b(x2,y2)上,计算a点与b点之间的欧氏距离d,直接把a点移动d个单位距离。
5.如权利要求1所述的基于计算机视觉自动检测虾体完整性的方法,其特征在于,在头胸部偏转角度纠正时,判断测试虾的轮廓图像位于坐标内的象限,若位于第一、二、四象限,则把测试虾的轮廓按逆时针方向旋转θ角度;若位于第二、三、四象限,则把测试虾的轮廓按顺时针方向旋转θ角度。
6.如权利要求1所述的基于计算机视觉自动检测虾体完整性的方法,其特征在于,在步骤4)中,利用基于模板遍历的8-邻域free链码方法对两轮廓图像建立两次模板匹配的遍历:
第一次遍历:以测试虾和模板虾的轮廓图像中相距最大的两个像素点的连线为对角线建立正方形,以作为图像模板匹配的移动窗口n×n,利用移动窗口n×n依次遍历模板虾的轮廓图像内的像素,并统计移动窗口内轮廓图像中的像素个数,若与测试虾的轮廓图像中对应位置的像素相等,则把该位置的坐标放入矩阵C中,再把模板虾统计的像素个数的结果放到矩阵N中,N的行和列分别记录着分别沿着x轴和y轴遍历时像素为1的周围像素个数;
第二次遍历:在同一坐标系下用移动窗口n×n进行模板匹配,与第一次遍历的原理相同,通过统计的像素个数建立矩阵M,M的行和列分别记录着依次遍历x轴和y轴周围像素的个数。
7.如权利要求6所述的基于计算机视觉自动检测虾体完整性的方法,其特征在于,计算矩阵N和矩阵M的相似度以判别测试虾的完整性,具体为:
令i的n领域用Ui(i,n)来表示,j的n领域用Uj(j,n)来表示,则有:
Ui(i,n)={x|i-n<x<i+n},i=1,2,...X;
Uj(j,n)={y|j-n<y<j+n},j=1,2,...Y;
其中,X,Y表示图像的横坐标和纵坐标遍历范围;
A)若矩阵M中所有数字之和大于N中所有数字之和,即其中∑是求和符号,(i,j)是图像中像素位置的横坐标与纵坐标,且对于所有的(i,j)均要考虑模板虾与测试虾在相同的位置上是否存在重叠像素,即{(h,s)|h,s∈C}与{(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)}是否相等的问题;
A-1){(h,s)|h,s∈C}≠{(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)},表明在点(i,j)的n领域内存在除了模板虾之外的其他像素值且无像素重叠的情况,多余的像素值即为测试虾在点(i,j)的像素值,此时测试虾是完整虾;
A-2){(h,s)|h,s∈C}={(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)},说明在点(i,j)的n领域内存在除了模板虾之外的其他像素位置有像素重叠的情况,需要减去n领域内有像素重叠的情况的像素值,
即在时,测试虾也是完整虾;
B)若矩阵M中所有数字之和等于N中所有数字之和,且对于所有的(i,j)均要考虑{(h,s)|h,s∈C}与{(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)}是否相等;
B-1)若{(h,s)|h,s∈C}={(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)},则说明测试虾与模板虾两者完全重合,不存在缺失的情况,此时测试虾是完整虾;
B-2)对于{(h,s)|h,s∈C}≠{(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)}的情况下,测试虾是不完整虾。
8.如权利要求7所述的基于计算机视觉自动检测虾体完整性的方法,其特征在于,针对所述的(A)、(B)两种情况下,对相似度进行分析并设定相应的阈值来判别测试虾的完整性:
(1)如果每个n×n领域之内都出现且直到遍历完模板虾,则有则测试虾为完整虾;
(2)若出现等式且{(h,s)|h,s∈C}={(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)},则测试虾为完整虾;
(3)若出现等式且{(h,s)|h,s∈C}≠{(i,j)|i∈Ui(i,n)∪j∈Uj(j,n)},则测试虾为残缺虾。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510683298.5A CN105389586B (zh) | 2015-10-20 | 2015-10-20 | 一种基于计算机视觉自动检测虾体完整性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510683298.5A CN105389586B (zh) | 2015-10-20 | 2015-10-20 | 一种基于计算机视觉自动检测虾体完整性的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105389586A CN105389586A (zh) | 2016-03-09 |
CN105389586B true CN105389586B (zh) | 2019-01-29 |
Family
ID=55421856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510683298.5A Active CN105389586B (zh) | 2015-10-20 | 2015-10-20 | 一种基于计算机视觉自动检测虾体完整性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105389586B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104463866B (zh) * | 2014-12-04 | 2018-10-09 | 无锡日联科技有限公司 | 一种基于轮廓随机采样的局部形状匹配方法 |
CN106096499A (zh) * | 2016-05-26 | 2016-11-09 | 天津艾思科尔科技有限公司 | 一种视频图像中星月图案检测的方法及系统 |
CN106900601B (zh) * | 2017-02-09 | 2020-04-17 | 浙江大学 | 一种快速精准识别对虾图像虾头点与虾尾点的方法 |
CN107704861B (zh) * | 2017-10-23 | 2021-07-27 | 九竹物联技术有限公司 | 用于计算机视觉系统的图像轮廓数据结构的转换模版的构造方法 |
CN108596917B (zh) * | 2018-04-19 | 2021-10-22 | 湖北工业大学 | 一种目标主骨架线提取方法 |
CN108921057B (zh) * | 2018-06-19 | 2021-06-01 | 厦门大学 | 基于卷积神经网络的对虾形态测量方法、介质、终端设备及装置 |
CN111684462B (zh) * | 2018-08-20 | 2024-03-01 | 深圳配天机器人技术有限公司 | 一种图像匹配方法及视觉系统 |
CN109211136A (zh) * | 2018-08-31 | 2019-01-15 | 广州大学 | 一种手表玻璃盖板轮廓度检测方法 |
CN108967246B (zh) * | 2018-09-29 | 2020-08-11 | 中国水产科学研究院渔业机械仪器研究所 | 虾苗定位方法 |
CN109829465B (zh) * | 2019-01-03 | 2023-03-24 | 上海交通大学 | 一种搜寻对虾最佳吸取位置和识别尾肢特征的方法 |
CN110069400A (zh) * | 2019-03-16 | 2019-07-30 | 平安普惠企业管理有限公司 | 漏洞测试报告生成方法、装置、计算机设备和存储介质 |
CN110738631A (zh) * | 2019-08-26 | 2020-01-31 | 中国农业机械化科学研究院 | 一种基于图像的对虾外形信息检测方法和检测系统 |
CN111832532A (zh) * | 2020-07-24 | 2020-10-27 | 上海电气集团自动化工程有限公司 | 一种小龙虾位姿识别的在线视觉检测方法及系统 |
CN112179294A (zh) * | 2020-09-21 | 2021-01-05 | 杭州星网测绘技术有限公司 | 一种土地校对方法、装置以及系统 |
CN112784713A (zh) * | 2021-01-08 | 2021-05-11 | 深圳喜为智慧科技有限公司 | 一种基于图像的猪体重估测方法、系统、设备及存储介质 |
CN113673518B (zh) * | 2021-08-24 | 2024-02-06 | 凌云光技术股份有限公司 | 一种目标定位候选位置筛选策略方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901477A (zh) * | 2010-07-27 | 2010-12-01 | 中国农业大学 | 植物叶片田间图像边缘提取方法及其系统 |
CN102122350A (zh) * | 2011-02-24 | 2011-07-13 | 浙江工业大学 | 基于骨架化和模板匹配的交警手势识别方法 |
CN102521600A (zh) * | 2011-11-03 | 2012-06-27 | 北京农业信息技术研究中心 | 基于机器视觉的南美白对虾病害识别方法及系统 |
-
2015
- 2015-10-20 CN CN201510683298.5A patent/CN105389586B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901477A (zh) * | 2010-07-27 | 2010-12-01 | 中国农业大学 | 植物叶片田间图像边缘提取方法及其系统 |
CN102122350A (zh) * | 2011-02-24 | 2011-07-13 | 浙江工业大学 | 基于骨架化和模板匹配的交警手势识别方法 |
CN102521600A (zh) * | 2011-11-03 | 2012-06-27 | 北京农业信息技术研究中心 | 基于机器视觉的南美白对虾病害识别方法及系统 |
Non-Patent Citations (2)
Title |
---|
Classification of Harvested Raw Shrimp Based on GLCM and IDS;Zihao Liu 等;《International Agricultural Engineering Joumal》;20150930;3-14 |
基于机器视觉技术的对虾规格检测方法研究;罗艳;《中国优秀硕士学位论文全文数据库 信息科技辑》;20130615(第6期);33-47 |
Also Published As
Publication number | Publication date |
---|---|
CN105389586A (zh) | 2016-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105389586B (zh) | 一种基于计算机视觉自动检测虾体完整性的方法 | |
CN111062915B (zh) | 一种基于改进YOLOv3模型的实时钢管缺陷检测方法 | |
CN106709950B (zh) | 一种基于双目视觉的巡线机器人跨越障碍导线定位方法 | |
CN109447945B (zh) | 基于机器视觉和图形处理的小麦基本苗快速计数方法 | |
CN108364280A (zh) | 结构裂缝自动化描绘及宽度精准测量方法与设备 | |
CN106600600A (zh) | 基于特征匹配的晶圆缺陷检测方法 | |
CN107230203A (zh) | 基于人眼视觉注意机制的铸件缺陷识别方法 | |
CN101782526B (zh) | 一种钢材韧窝图像的自动复原、测量分类方法及装置 | |
CN107437068B (zh) | 基于Gabor方向直方图和猪体毛发模式的猪个体识别方法 | |
CN109559324A (zh) | 一种线阵图像中的目标轮廓检测方法 | |
CN105675626A (zh) | 一种轮胎模具的字符缺陷检测方法 | |
CN104268853A (zh) | 一种红外图像与可见光图像配准方法 | |
Rahamathunnisa et al. | Vegetable disease detection using k-means clustering and svm | |
CN110309808A (zh) | 一种大范围尺度空间下的自适应烟雾根节点检测方法 | |
CN109543595A (zh) | 基于深度可分离卷积神经网络的电线的训练方法和检测方法 | |
CN107392849A (zh) | 基于图像细分的靶标识别与定位方法 | |
CN109003275A (zh) | 焊缝缺陷图像的分割方法 | |
CN107358628A (zh) | 基于靶标的线阵图像处理方法 | |
CN111161295A (zh) | 一种菜品图像背景剥离方法 | |
CN108280833B (zh) | 一种植物根系分叉特征的骨架提取方法 | |
CN105956592B (zh) | 一种基于图像显著性与svm的飞机目标检测方法 | |
Sibi Chakkaravarthy et al. | Automatic leaf vein feature extraction for first degree veins | |
CN113793385A (zh) | 鱼头鱼尾定位方法及装置 | |
CN107993243B (zh) | 一种基于rgb图像的小麦分蘖数自动检测方法 | |
CN113435460A (zh) | 一种亮晶颗粒灰岩图像的识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |