王冰妍,刘必林,顾心雨
(1 上海海洋大学信息学院,上海 201306;2 上海海洋大学海洋科学学院,上海 201306;3 大洋渔业资源可持续开发教育部重点实验室, 上海 201306;4 国家远洋渔业工程技术研究中心,上海 201306;5 农业农村部大洋渔业开发重点实验室,上海 201306;6 农业农村部大洋渔业资源环境科学观测实验站,上海 201306)
边缘检测(Edge detection)是利用计算机视觉处理图像的一种基本方法,其原理是标识数字图像中亮度变化明显的像素点,图像中像素的显著变化通常反映了图像的重要特征[1],因此边缘检测被广泛应用于计算机视觉和图像处理的研究中,尤其是特征提取的研究。传统的边缘检测算子包括Sobel算子[2]、Prewitt算子[3]、Canny算子[4]等,其中Canny算子是最常用的边缘检测方法,具有低错误率、高定位性、最小响应的优点[5-6]。随着计算机视觉技术在生产生活中的应用与发展,人们研发出各种改进的算法,提高了生活质量与工作效率,如徐武等[7]研究的基于改进Canny算子的图像边缘检测方法中,采用双滤波设计代替高斯滤波,采用Otsu算法自适应计算高低阈值,自适应能力强、去噪效果好,边缘提取更完整。
角质颚是头足类口球内的几丁质硬组织,具有形态结构稳定、耐腐蚀的特点,能够良好地储存头足类的生物信息[8]。其形态特征的研究一般基于特征点的标定以及特征参数的提取,通过游标卡尺的手动径向测量法是获取角质颚形态参数的传统方法[9]。近年来,人工智能技术被越来越多地利用在角质颚生物形态研究[10],如宋自根等[11]采用Mask-RCNN深度学习的神经网络模型,实现了角质颚色素沉积的识别,为角质颚等生物信息研究提供了新的方法与思路;贺芊菡等[12]采用Canny边缘检测算法提取角质颚轮廓图,以辅助标定特征点并提取特征参数,实现了利用计算机技术进行角质颚形态特征的研究,改善了传统人工测量存在的耗时耗力等问题。但由于Canny算子具有低错误率的特性,在图像处理过程中无可避免会产生与研究不相关的冗余边缘信息,包括由图像背景环境中的噪声、图像中检测目标的纹理信息等产生[13-14]。并且对于阈值的把控要求很高[15],极易使提取的目标轮廓产生缺损。这将导致后续研究中产生误差,同时也限制了利用计算机视觉技术进行研究的范围。
本研究基于计算机视觉研究一种边缘检测算法,并应用在头足类角质颚的识别中,旨在能够准确提取角质颚外轮廓,并减少甚至消除在边缘检测中产生的冗余边缘信息,为进一步研究奠定基础。
本研究以30尾中东太平洋茎柔鱼、30尾西北太平洋柔鱼、30尾中东大西洋翼柄柔鱼共90尾角质颚上颚作为研究对象,样本保存于盛有70%的乙醇溶液的试管中,拍摄时用镊子取出角质颚并洗净表面黏液。
在图像采集过程中,使用三脚架固定相机,使镜头视角平行于桌面。所用相机分辨率为200万像素,光圈为F3.5,快门速度为1/50 s,ISO为3 200。将角质颚样本水平放置于蓝色卡纸,同时根据拍摄效果打光,以减小光照对图像效果的影响。采集角质颚的侧视图图像如图1,并将其保存为JPEG(Joint Photographic Experts Group)或PNG(Portable Network Graphics)文件格式。
图1 角质颚彩色二维侧视图
Canny边缘检测算子是一种多级边缘检测算法,相比普通的梯度算法,Canny算子能够有效抑制噪声引起的伪边缘并实现边缘细化,是边缘检测的一种标准算法,在众多领域包括生物学领域的研究中应用广泛,通常分为以下5个步骤实现[16]:
(1)图像灰度化通常采用加权法计算,计算方法有以下两种:
Gray(x,y)=0.114 0×B(x,y)+0.587 0×G(x,y)+0.298 9×R(x,y)
(1)
Gray(x,y)=0.114 0×R(x,y)+0.587 0×G(x,y)+0.298 9×B(x,y)
(2)
式中:(x,y)为像素点坐标,R(x,y)、G(x,y) 、B(x,y)分别为该像素点的RGB三通道色彩空间中的红色分量、绿色分量和蓝色分量,Gray(x,y)为计算所得该像素点的灰度值。
(2)高斯滤波处理。高斯滤波是一种线性滤波器,能够抑制噪声,平滑图像。高斯滤波器模板的生成,基于二维高斯函数h(x,y)的离散化取样,计算得到模板系数Hx,y。对于(2k+1)×(2k+1)的窗口模板,模板中心像素值为[17]:
(3)
(4)
(3)用一阶偏导的有限差分来计算梯度的幅值和方向。图像边缘的方向具有不确定性,在经典Canny算法中分别计算了水平、垂直两个方向的梯度幅值:
(5)
(6)
式中:Gray(x,y) 为坐标为(x,y)的像素点的灰度值,由Px[x,y]与Py[x,y]计算得到(x,y)处梯度的幅值M(x,y)与方向θ(x,y)[18]:
(7)
(8)
(4)梯度幅值的非极大值抑制。如当前像素的梯度幅值为局部极大值,即其梯度幅值均大于梯度方向上与八邻域两交点处的梯度幅值,则保留该像素点为边缘,否则将抑制。
(5)选择双阈值连接边缘。设置一个高阈值与一个低阈值,当像素点的梯度值大于高阈值时被认为是强边缘,当像素点的梯度值小于高阈值而大于低阈值时被认为是弱边缘,否则被抑制。
1.3.1 算法流程
本研究的方法主要通过图像灰度化、滤波去噪、图像二值化、构造目标连通域、提取边缘轮廓5个步骤,实现边缘检测具体流程如图2。
图2 边缘检测流程示意图
1.3.2 图像灰度化
在边缘检测中,认为有效信息为物体的边缘信息,因此需要对图像的梯度信息进行分析处理。虽然三通道的图像所反映的梯度信息更完整,但一个像素点的颜色取值有2563种,使运算速度极大受限,也增大了运算的存储负担。因此,对图像进行灰度化处理,即对图像矩阵进行降维,既可以使运算速度得到大幅提高,也能够保留边缘检测所需要的梯度信息。同时,又满足了OpenCV库函数在作图像处理时对输入图像的格式要求。本研究中对彩色图像中每个像素点的3个颜色分量R、G、B分别按照0.298 9、0.587 0、0.114 0的比例加权计算,得到灰度化图像。本研究选择如下方式计算:
Gray(x,y)=0.114 0×B(x,y)+0.587 0×G(x,y)+0.298 9×R(x,y)
(9)
1.3.3 滤波去噪
过滤可以减少图像中的噪声,增强感兴趣的可视特征,是图像处理中的重要环节[19]。本研究使用双边滤波(Bilateral filter)对图像作去噪处理,这是一种非线性的滤波方法[20],对于待处理的像素点,结合其空间邻近度和像素值相似度作折中处理,即同时考虑空域信息σd和灰度相似性σr两个因素。在图像的频域分析中,边缘检测需要增强高频波段、抑制低频波段,图像中的边缘信息即为高频信息,而双边滤波恰好能够很好地保存高频信息,过滤低频噪声,达到保边去噪的目的。对于每一个像素点值的计算方法为:
(10)
式中:(i,j)是当前被卷积像素的坐标,(k,l)是邻域像素的坐标点,w(i,j,k,l) 为权重系数,取决于定义域核及值域核的乘积,即[21]:
(11)
1.3.4 图像二值化
在灰度图像的基础上,对图像做二值化处理,将灰度图像的256个亮度级在合适的阈值下进行分割,使图像的像素值只由0与255两个数值呈现。其中,目标轮廓的像素值为255,显示为白色;其余像素的值均为0,显示为黑色。经过二值化处理的图像呈现出黑白效果,进一步减少了图像中的数据信息[22],更加凸显出目标轮廓,同时也适应了OpenCV库中轮廓检测函数对输入图像的格式要求,为进一步图像处理奠定了基础。
OpenCV库中实现图像的二值化处理有两种方法:固定阈值和自适应阈值。本研究中采用自适应阈值二值化方法,阈值类型选择黑白二值反转,自适应方法选择高斯加权均值,设置像素值上限为255。当待处理的像素灰度值大于自适应阈值时,将该像素值处理为0;当待处理的像素灰度值小于自适应阈值时,将该像素值处理为像素值上限[23],算法如下:
(12)
式中:maxValue为阈值上限,thresh为自适应阈值。
1.3.5 构造目标连通域
针对二值化的图像效果分析,目标轮廓可能存在部分不连通的情况,且冗余轮廓信息主要出现在目标轮廓内部,主要由样本表面的纹理产生,还存在由拍摄环境造成的光斑等其他一些因素产生。通过技术手段完全消除这些影响因素难度较高、成本较大,因此设计算法做进一步图像处理,消除冗余边缘信息。
本研究设计算法思路,构造目标连通域,再进行轮廓检测,实现边缘轮廓提取。主要分为以下3个步骤实现:
(1)采集轮廓信息。将相连的像素值为255的像素点保存在同一个列表中,定义为一个轮廓。使用轮廓检测函数采集二值化图像中的轮廓信息,由于目标轮廓可能存在部分不连通的情况,因此不能够只检测最外侧轮廓。选择轮廓的近似方法为CHAIN_APPROX_NONE,采用树形结构输出的检索模式,检测二值图中的所有轮廓信息并保存,即以轮廓为单位,保存构成该轮廓的像素点坐标[24]。
(2)自定义去噪。先根据样本在图像中占据的像素比例,选择一个合适的值m,将包含少于m个像素点的轮廓作为噪音从轮廓集中删除,避免了目标轮廓周围的噪音对边缘连通产生不利影响,有效降低了后续形态学处理时轮廓的形变程度。
(3)构造目标连通域。本研究结合形态学技术处理图像,确保边缘连通,构造目标连通域。新建一张单通道的黑色幕布,绘制经过筛查的轮廓集,如果轮廓闭合则进行填充。对去噪图像采用一个3×3的结构元素作一次形态学闭运算处理,初步得到连通域的图像。通常情况下,一次形态学闭运算无法完全实现目标分割[25]。再次检索角质颚轮廓,如果得到的轮廓集中的轮廓数量等于1,则表示已经完成目标连通域的构造,直接进行1.3.6节中的提取边缘轮廓操作;如果轮廓数量大于1,理论上说明填充的轮廓图像仍然存在缺损,未形成一个完整的连通域,则图像做如下进一步处理:
①按级增大结构元素,对图像做形态学闭运算处理;
②检索图像中的轮廓及其数量;
③重复①②直至轮廓数量为1。
同时,为了避免图像中存在面积较大且距离目标较远的噪声连通域未被去除,也为了防止形态学处理过度造成图像变形严重,应根据样本在图像中占据的像素比例,选择一个合适的值n,确保(3)的执行次数不超过n次。
1.3.6 提取边缘轮廓
得到完全填充的边缘轮廓图像后,新建单通道黑色幕布,检测并绘制出最长轮廓。
2.1.1 滤波去噪
对采集到的角质颚样本彩色图像做灰度处理,再分别采用双边滤波和高斯滤波进行平滑去噪(图3)。其中,双边滤波需要根据具体图像选择合适的颜色空间的σr值和坐标空间的σd值,本文中选用值为10、15;高斯滤波的卷积核设置为3×3。可以观察到使用滤波前后的图像效果对比明显,颗粒状噪声基本得到平滑 ,而角质颚仍保持形态清晰,形态特异性显著。观察局部放大图(图4),双边滤波的保边效果显著优于高斯滤波,因此后续采用双边滤波做进一步研究。
图3 分别用双边滤波(左)和高斯滤波(右)处理后的角质颚灰度图像
图4 分别用双边滤波(左)和高斯滤波(右)处理后的角质颚灰度图像局部放大图
2.1.2 构造角质颚连通域
对图像作继续做二值化处理,图像呈现为角质颚形态与背景分割的二值图像,但仍可见图像中分布有噪声点(图5)。
图5 角质颚二值图像
因此在构造角质颚连通域的过程中,首先进行自定义去噪能够进一步抑制二值图像背景中的噪声,分别设置m的值为5、10、20、50,得到不同程度去噪的角质颚二值图像(表1、图6)。
注:6-1(m=5),6-2(m=10),6-3(m=20),6-4(m=50)
表1 m值对噪声处理程度的影响
本研究中m值选择20,将像素点个数大于20的连通域作为噪声删除,使角质颚的边缘轮廓能够精确地完成连通。进而经过1次迭代闭运算,卷积核增至5×5,得到角质颚连通域。
2.1.3 提取边缘轮廓
将经过双边滤波与高斯滤波去噪处理的灰度图,分别进一步处理构造连通域,得到角质颚连通域二值图像后检测出连通域图像中的最长轮廓并提取,得到角质颚外轮廓图像(图7)。结果显示,经过双边滤波处理后提取得到的角质颚轮廓能够更好地保留其形态特异性,故最终选择双边滤波做图像的平滑去噪处理。再将本研究提取得到的轮廓图与传统的Canny算子提取得到的结果图进行对比(图8)可知,本研究的边缘检测算法提取得到的轮廓更完整,保留的边缘信息更简洁明确。
图7 分别用双边滤波(左)和高斯滤波(右)处理后最终得到的角质颚轮廓图像对比
图8 改进算法(左)与Canny算法(右)对二维角质颚彩色图像边缘检测结果对比
通过本研究方法与Canny算子随机取30张角质颚二维形态图像进行轮廓提取,计算识别的准确率并分析。本研究分别计算像素准确率(Pixel Accuracy)与平均像素准确率(Mean Pixel Accuracy)对比两种算法的识别准确率计算结果,本研究方法的两种准确率均优于传统的Canny算子,本研究方法的 PA与MPA分别为97.79%与97.53%,而Canny算子的PA与MPA分别为95.03%与93.90%。由此可见,本研究方法较Canny算子不仅图像分割效果更佳,且提取到的轮廓更加完整精确。
高斯滤波为图像处理中最常用的滤波器之一,是一种全局的滤波器,适用于消除高斯噪声[26],在边缘检测研究中会较明显地模糊边缘,缺失对高频信息的保护。与之相比,双边滤波器多计算了一个高斯方差,即基于空间分布的高斯滤波函数。它结合当前被卷积像素的领域的空间邻近度σd和像素值σr相似度计算被卷积像素的像素值, 在边缘附近,距离较远的像素不会对边缘上的像素值影响太大,保证了边缘附近像素值的保存[27]。在相关研究中,刘瑞[28]选取了均值滤波、高斯滤波、中值滤波、双边滤波四种常用的滤波方法处理点云深度图像,再对图像边缘提取的结果进行定性分析,研究发现双边滤波在图像去噪与边缘保持上效果较好。
在局部放大图中(图4)两种滤波的保边效果对比明显。其中,双边滤波能够在平滑去噪的基础上,基本保证了轮廓边缘信息的准确保存,有利于后续算法步骤的顺利实现,为提取得到标准的角质颚外轮廓奠定了良好的基础(图7)。而对于相同的图像,虽然高斯滤波处理后,肉眼仍可以清晰分辨出角质颚轮廓,但对边缘信息并未设置特殊保护,全图得到了相同程度的平滑。本研究中即使采用最小的卷积核进行滤波平滑后,在构造连通域的步骤中,由于轮廓缺损程度较大,为了能够使边缘轮廓闭合,共需要迭代进行多达6次形态学闭运算,卷积核增达13,使角质颚边缘轮廓产生较明显形变,失去了角质颚的形态特征,无法在此基础上展开进一步研究。而双边滤波做预处理后,只需在构造连通域进行2次闭运算处理。因此,在本研究中选取双边滤波做图像预处理。
本研究选取自适应局部阈值方法对灰度图像做二值化处理,这种方法为图像中每一个像素点根据其邻域内的亮度分布单独计算阈值,实现了动态自适应调整属于每个像素点的阈值,使二值化结果更加精确。在对图像的二值化处理中,自适应局部阈值方法较固定阈值方法有以下两点优势[29]:
(1)固定阈值方法虽然对于以单张图片为单位的二值化处理也有较理想的效果,但处理多张图片时,需要对每张图片做大量不同阈值的对比以筛选找到适应于该图片的最佳阈值[30]。避免在批量处理时,由于光线等拍摄因素导致各图片的最佳阈值不同,从而引起轮廓提取失败。
(2) 固定阈值方法为全局性阈值的二值化方法,相较于局部性阈值的方法准确性较低。通过对比不难得出,自适应局部阈值的二值化方法能够高效准确地实现图像的批量处理,在本文研究的改进的边缘检测算法中作为重要的一步,对于角质颚等生物形态研究具有普适性。
传统的图像处理算法中大多使用固定阈值,如Canny算子。近年来,在人们提出的各种改进的算法中,自适应阈值方法的优势也日渐凸显。胡峰松等[31]研究的疲劳识别方法中采用自适应阈值对人眼图像做二值化处理,通过计算二值图中黑色像素累积差值,识别闭眼状态,识别准确率高达96.78%。
目前,各类改进的边缘检测算法推动着形态学研究的进展,如郑如新等[32]对Canny算法进行改进,优化了边缘检测效果,并应用于金银花的自动采摘,识别率为79.17%,提高了金银花采摘效率;范凌云等[33]提出一种鸭蛋外壳检测系统,基于机器视觉采集鸭蛋图像,并进行灰度化、二值化、边缘检测处理,实现裂纹鸭蛋等破损鸭蛋的精确检测,能够有效代替传统的人工检测。
分别采用本研究中的算法与Canny算法提取角质颚边缘轮廓(图8)。通过本研究中的边缘检测算法能够提取得到标准的角质颚外轮廓。同时不难发现,利用Canny算法提取得到的头足类角质颚轮廓图中存在许多冗余轮廓信息。在调整了合适的阈值,消除了由于拍摄条件的限制而产生的背景噪声后,仍然无法完全避免角质颚的纹理经图像处理后产生的冗余轮廓。同时,角质颚外轮廓存在缺损。这将对后续利用计算机视觉提取特征点产生潜在影响,进而极大限制了利用计算机视觉在生物形态中的研究。
本研究提出了一种改进的边缘检测方法,通过图像灰度化、滤波去噪、图像二值化、构造目标连通域、提取边缘轮廓5个步骤,提取研究对象的形态外轮廓。将改进的算法在头足类角质颚的模式识别中进行研究分析,并与Canny算子的处理效果进行对比。本研究的方法效果良好,能够有效区分信噪,提高了目标选择的准确性,同时又能够在误差允许的范围内保证轮廓的完整性。应用在头足类角质颚的识别中,能够提取得到标准的角质颚边缘轮廓,对以角质颚为例的生物形态研究具有普适性。与 Canny算子的检测结果相比,本研究中的检测结果直观、完整、精确度更高,为解决传统的人工测量角质颚形态特征参数存在的检测精度差、检测效率低等弊端提供新思路。随着计算机视觉技术与形态测量学的发展,利用相关算法提取生物边缘轮廓、从数量和形状上来总结形态数据、将生物形态差异定量描述并可视化,具有传统形态学方法所无法达到的分析效果,促进了生物形态学研究的智能化发展。
□