摘要:为进一步提高剩余油边缘检测的质量和精度,提出一种改进多方向Sohel算子的剩余油边缘检测方法。该方法通过改进双边滤波方法去除微观剩余油分布图像噪声,实现保边去噪的目的;结合Otsu算法使其能自适应获得微观剩余油图像的最佳阈值;在改进的4个方向上依次使用幅度为3x3的Sohel算子计算剩余油图像梯度的幅值和方向;最后利用非极大值抑制算法过滤伪边缘像素点,从而得到最终的剩余油边缘检测图像。实验结果表明,该方法能在去除微观剩余油图像噪声的同时,精确检测出微观剩余油分布图像中的剩余油边缘信息。
关键词:剩余油;边缘检测;双边滤波:Otsu算法;Sobel算子
中图分类号:TP391. 41 文献标志码:A
0 引言
随着油田开发的不断深入,我国大多数油田进入高含水开发阶段,不同类型油层平面和层内的剩余油分布零散程度越来越高,挖潜难度增大,为提高油田的开采效率和资源利用率,需要采取有效措施挖潜剩余油。从微观结构出发对剩余油进行研究,可确定剩余油的赋存形态、储集方式和分布规律等关键信息,对剩余油挖潜和油田的二次开发具有重要意义。由于了解剩余油的边缘信息是掌握其赋存形态的前提,因此有必要在分类前对剩余油图像进行边缘检测,提取图像中剩余油的边缘信息。
边缘检测首先测量出区域局部特征上的不连续性,随后进行了边缘连接,并通过封闭的边界对剩余油区域实现边缘分割。典型的边缘检测算法是基于图像的一阶或二阶导数检测边缘点,从而产生了一系列不同形式的微分算子,其中一阶微分边缘检测算子包括Roberts算子、Sobel算子和Prewitt算子等;二阶微分边缘检测算子包括Canny算子、Log算子和Laplacian算子等。许多学者还将边缘检测应用于地质或油气切片图像中,高喜龙等使用Canny算子实现对地震数据层切片多尺度边缘检测。邱兆泰使用高斯一拉普拉斯算子实现断层切片的多边形检测。董娜利用去噪的拉普拉斯边缘检测算法实现地质小断层的精细识别。Xiang等使用Canny边缘检测算法和双边滤波算法去除噪声但保留全波形反演(FWI:Full-Waveform Inversion)梯度的边缘,因此得到与地震波长相似大小的结构速度模型。Karbalaali等使用Shearlet变换检测地震通道数据中二维和更高维数据中的各向异性奇点。Shafiabadi等利用Canny边缘检测算法和Hough变换算法以及图像处理算子识别储层裂缝和裂缝倾角;Shafiabadi等使用Canny和Sobel算子检测FMI(Full-MicroScanner Image)图像中的油气藏裂缝井壁上的区域。刘传奇等使用Roberts算子边缘检测技术对剩余油分布图实现沉积体边界的刻画精度,提高砂坝间的连通性认识。但上述边缘检测算法在含噪图像中平滑噪音时容易丢失高频信息,因此检测精确度不高,处理效果不够理想。
综上,笔者提出基于改进Sobel算子的微观剩余油图像边缘检测方法。首先,对微观剩余油分布图像进行预处理,笔者改进的双边滤波方法可消除图像噪声,实现保边去噪的目的;其次,利用Otsu算法代替传统的人工设定阈值,使其能自适应获得微观剩余油图像的最佳阈值;然后.在改进的4个方向上分别使用梯度模板大小为3x3的Sobel算子计算微观剩余油分布图像的梯度幅值;最后,利用非极大值抑制算法过滤伪边缘像素点,从而得到最终的剩余油边缘检测图像。相较于其他算法,笔者改进的Sobel算子在微观剩余油分布图像上较完整地检测出剩余油边缘,使其去除噪声的影响,剩余油的边缘得到了较好保护。
1 传统Sobel算子边缘检测算法
Sobel算子是典型的基于一阶导数的边缘检测算子,该算子分别包含横向和纵向两组3x3的矩阵,如图1所示。在图像处理过程中,将该卷积因子与检测图像进行加权平均或邻域平均,分别得出横向及纵向的亮度差分近似值,最后利用一阶微分计算检测图像的边缘信息。
传统的Sobel算子在水平和垂直方向的边缘检测能力较强,边缘定位精度较高,但该算子存在以下缺点:
1)人为设定算子的阈值不具备自适应性:
2)计算方向比较单一,仅考虑水平和垂直方向的像素点,对其余方向的灰度变化不敏感,极易导致目标边缘信息丢失:
3)抑制噪声能力不强,将噪点当成边缘点形成伪边缘。
2 基于改进多方向Sobel算子的剩余油边缘检测算法
笔者采用冷冻制片荧光显微镜获得的纳米级分辨率图像研究微观剩余油分布图像,如图2所示。从图2可看出,微观剩余油分布图像中清晰标记了剩余油、岩石基质和水的分布情况。这3种物质呈现出不规则的形状,大小和分布方式各异。同时,图像中还存在大量干扰噪声。
因此,若是只使用传统Sobel算子提取图像中的剩余油边缘效果并不理想,针对传统Sobel算子人为设定阈值不具备自适应性,存在梯度方向比较单一以及抑制噪声能力差的问题,为此,笔者提出一种基于改进多方向Sobel算子的剩余油边缘检测算法。首先,改进双边滤波方法消除图像噪声;其次,将Otsu算法代替传统人工设定阈值,使其能自适应获得微观剩余油分布图像的最佳阈值;然后,在梯度增强后的4个方向上分别利用Sobel算子计算图像的梯度幅值:最后,利用非极大值抑制算法过滤掉伪边缘像素点,实现微观剩余油分布图像的剩余油边缘检测,该方法检测流程如图3所示。
2.1 改进双边滤波去噪
2.1.1 传统双边滤波器
双边滤波是一种非线性的滤波方法,该方法同时考虑了空域信息和灰度相似性,能较好地保持图像边缘处的梯度,达到保边去噪的目的。双边滤波是基于空间分布的高斯函数,在高斯滤波的基础上增加了一个高斯方差σd。在双边滤波器中,邻域像素值的加权值决定了输出像素的值,如下:
其中(i,j)为模板窗口其他系数的坐标点,(k,l)为模板窗口中心坐标点,f(i,j)为点(i,j)的像素值,f(k,l)为点(k,l)的像素值,ω(i,j,k,l)为加权系数;σd为空间标准差,στ为灰度标准差。
由于双边滤波考虑了像素点灰度信息的权重,所以邻域中像素点与中心点的灰度值相差越大,其权重值越小,则双边滤波器会判定该点为目标边缘点,让该点以较小的权重值参与滤波,使其对中心点产生较小的影响,达到保护图像目标边缘的目的。但当滤波窗口较大,参与滤波的邻域像素点越多时.每个像素点都以一定的权重参与滤波,这会对中心点造成不利的影响,因此无法充分保护图像的目标边缘。
2.1.2 改进双边滤波器
为解决上述问题,笔者对双边滤波中的灰度核函数进行改进,以完全消除邻域像素点对中心点产生的不利影响。
构造双边滤波阈值:
其中T为双边滤波阈值,σ为微观剩余油图像的标准差,△为中心像素点和它周围像素点的灰度值的差值,式(6)将△进行归一化,并与双边滤波阈值T行对比;L为图像的灰度级。
式(6)将传统灰度核函数变为分段函数,当阈值T小于等于中心像素点与其邻域某一个像素点的灰度值之差时,将该点标记为目标边缘,则该邻域像素点的滤波权重为零,不参与滤波。相反,求其权重后参与双边滤波。其优势在于通过将滤波器认定的边缘像素点的权重值调整至零,可有效地减少其对中心像素点的干扰,从而最大限度地保留图像的目标边缘和细节特征。
2.2 基于Otsu的自适应阈值选取
传统Sobel算子的阈值需要进行多次实验人为设定,适应能力较差,而Otsu算法可根据不同的图片自适应选择阈值,基于Otsu选取阈值的实施方案简述如下。
设改进后的双边滤波结果为f,图像大小为M×N,L为图像的灰度级,ni为灰度级为i的像素数。像素的灰度级为i的概率为pi =ni / n, i =0,1,…,L-1,并且满足:∑ L-1 i=0 pi=1。假设阈值T(k)=k,0<k<L-1。根据阈值k将滤波处理后的图像分为两类C1和C2,其中C1由图像中灰度值在范围[0,k]内的所有像素组成,C2由灰度值在范围[k+1,L-1]内所有像素组成。
前景与背景概率:
其中P1(k)为像素属于C1 的概率, P2(k)为像素属于C2 的概率; m1(k)、m2(k)分别为像素被分配到C1和C2的平均灰度值;mk为灰度像素[0,k]的平均灰度值,mc为整个图像的平均灰度值;由于P1(k)+P2(k)= 1,式(14)可表示为式(15),σ2(k)为图像的类间方差。
当部分目标(剩余油)错分为背景(油和水)或部分背景(油和水)错分为目标(剩余油)时,导致类间方差变小。因此类间方差越大时,错分的概率越小,计算精度越高。
当类间方差σ2(k)取最大值时,说明C1与C2之间差距越大,即剩余油与油水分割效果越好,对应的k值为图像f的最佳阈值,据此即可初步获得边缘检测结果。
2.3 Sobel算子梯度增强
笔者在传统Sobel算子水平和垂直方向的基础上,新增了45°和135°两个方向的卷积模板,称为四方向Sobel算子,该算子在四方向上的卷积模板如图4所示。
假设f(x,y)为图像像素点(x,y)处的灰度值,用四方向Sobel算子卷积模板对图像中所有像素进行遍历,则有:
其中G(x,y)用四维向量表示梯度。幅值G(x,y)可用无穷范数计算,该像素点的梯度幅值可以用式(21)表示,Gx为该像素点的梯度幅值。
改进后的梯度计算式中增加了两个梯度方向G45°和G135°,从而可更加精细地捕捉边缘信息。
2.4 非极大值抑制
为进一步准确地定位目标边缘,通常使用线性插值法对梯度幅值做非极大值抑制。笔者采用3x3矩阵,将像素点的梯度与其梯度方向上相邻像素点的梯度相比较,如果目标像素点的梯度幅值小于其梯度方向相邻像素点的梯度幅值,则认为其是非极大值,梯度值设置为0:反之梯度幅值保持不变,如图5所示。
3 实验结果与分析
3.1 双边滤波效果及分析
为节省实验时间成本,笔者随机裁剪微观剩余油分布图像,选择其中一张图像作为实验对象,然后,将笔者改进的双边滤波分别与均值滤波、高斯滤波以及传统双边滤波进行比较,其中4种滤波的卷积模板均为7×7,实验结果如图6所示。
为了能客观地评价不同滤波对图像的降噪效果,笔者采用峰值信噪比(PSNR: Peak Signal to NoiseRatio)和结构相似度(SSIM:Structural Similarity Index Metric)[28]作为衡量图像质量的评价指标,峰值信噪比常通过均方差(MSE:Mean Squared Error,EMSE)进行定义,评价标准结果如表1所示。
假设输入的原始微观剩余油图像为x,滤波去噪后的图像为y,评价指标计算如下:
其中,(i,j)为微观剩余油图像在(i,j)处的灰度值,K(i,j)为滤波处理后图像在(i,j)处的灰度值,m、n为图像的长度和宽度;EMSE为微观剩余油图像与滤波处理后图像的均方误差;DMaxI为微观剩余油图像颜色的最大数值,即255。l(x,y)为亮度比较函数,c(x,y)为对比度比较函数,s(x,y)为结构比较函数,μx和μy分别为x和y的平均值,σ2x和σ2y分别为x和y的方差,σxy为x和y的协方差,c1、c2、c3为调整系数。当MSE越小,PSNR越大,滤波降噪后的图像越接近原图像,降噪效果越好;SSIM的取值范围是[0,1],其值越接近1,表示图像失真越小,降噪效果越好,如表1所示。
从表1可看出,均值滤波的结果最不理想,高斯滤波的效果次之,在图像中改进后的双边滤波与传统双边滤波不能明显观察出太大差异。但由表1数据可看出,笔者采用的双边滤波算法的PSNR数值最高,高于均值滤波、高斯滤波算法和传统的双边滤波,SSIM的值更接近于1,从而证明了改进后的双边滤波能充分保留微观剩余油图像的目标边缘信息,并且能高效地消除图像中的噪声,达到了保边去噪的目的。
由于均值滤波会影响未受噪声污染像素的灰度值,破坏了微观剩余油图像的细节信息。高斯滤波只考虑了像素间的欧氏距离,未考虑像素灰度值之间的差值,导致滤波后的结果不理想。而双边滤波同时考虑了空间域和值域信息,在去噪的同时较为充分地保留微观剩余油图像边缘信息。而笔者的双边滤波改进了灰度核函数,将邻域像素点对中心像素点的干扰程度减至最小,因此笔者的双边滤波对微观剩余油图像保边去噪的效果更加明显。
3.2 不同阈值选取方法的对比及分析
传统的Sobel算子的阈值需要进行多次实验对比才能设定,而不同的阈值选择将导致在边缘计算中产生不同的结果。笔者选取不同的阈值在不同微观剩余油图像上进行实验,经过实验对比,阈值分别取40、150、240以及Otsu算法获取的阈值,检测结果如图7所示。
从实验结果可看出,当阈值越大时,检测到的图像边缘信息越少,阈值设置为40明显比阈值为240的边缘检测信息更多。但这并不意味设置的阈值越小,检测的效果越好,而是根据不同的图像设定最佳阈值。从图7中的第2张和第4张图像可见,当阈值设置为240时,基本没有检测到边缘信息,而原图像中存在少许剩余油。
传统Sobel算子需要经过大量实验对比,然后选择相对合适的阈值,由于相近的阈值检测结果并没有显著改变,仅通过人为判断选取合适的阈值较为困难,而Otsu算法通过把图像分为前景和后景,自适应选取微观剩余油图像中的最佳阈值,节约了时间成本,也提高了检测效率。
3.3 图像边缘检测效果及分析
实验使用笔者提出剩余油边缘检测算法对图像进行边缘检测,4个单方向的检测结果如图8所示。
为验证算法对剩余油边缘检测的有效性,将传统Sobel算子、四方向Sobel算子以及笔者算法分别在不同的微观剩余油分布图像上进行边缘检测,实验结果如图9所示。
从检测结果可明显看出,使用传统Sobel算子进行边缘检测后的图像中含有许多噪声,说明其抑制噪声的能力较差,而且图像中只存在单侧轮廓,完整的轮廓区域较少。使用四方向Sobel算子可较为精确地检测出剩余油边缘并形成连续的闭合轮廓。而笔者算法不仅可以抑制图像噪声,较精确地定位剩余油的边缘信息,而且可去除伪边缘像素点,得到较完整、清晰的剩余油边缘。
根据PSNR、SSIM评价指标比较3种算法对剩余油边缘检测结果如表2所示。从表2可看出,笔者算法比其他两种算法的PSNR都高,SSIM的值最大,客观说明笔者算法可以更准确提取剩余油的边缘,并且失真较小。
由于改进Sobel算子的剩余油边缘检测算法引入改进的双边滤波去除图像噪声:并综合考量了4个方向梯度,更为精准地捕捉边缘灰度变化;在此基础上利用Otsu算法自适应获取微观剩余油图像阈值,其中最优阈值判别选取公式能自适应获取理想阈值,使背景与目标图像得到更好的分割效果,最后利用非极大值抑制更好地定位边缘信息,因此该算法可以提高剩余油边缘检测的精确度。
4 结论
笔者在传统Sobel算子的基础上进行改进,引入改进的双边滤波、Otsu算法和非极大值抑制,提出了一种基于改进Sobel算子的剩余油边缘检测方法,主要结论如下。
1)笔者改进双边滤波对微观剩余油图像进行去噪处理,结果表明,该滤波的峰值信噪比和结构相似度比均值滤波、高斯滤波以及双边滤波算法都高,有较好的保边去噪效果。
2)笔者使用Otsu算法获取阈值,比传统的人工设置阈值更具备自适应性。结果表明,加入Otsu算法能自适应获取微观剩余油图像的最佳阈值,为下一步实现更加完整的边缘检测奠定基础。
3)笔者通过梯度增强,将传统的两方向卷积模板扩展到四方向卷积模板,并利用非极大值抑制方法过滤掉伪边缘像素点,和传统Sobel算子对比,其能在抑制噪声的同时检测出其余梯度方向的边缘,进一步定位剩余油的边缘信息。
实验结果表明,笔者算法能较好地检测出图像中剩余油的边缘,根据剩余油的边缘轮廓为后续研究微观剩余油赋存形态的分类与识别奠定基础。但笔者所提出的方法存在如下不足:由于微观剩余油分布图像中剩余油的颜色值在一个区间范围内,并不是固定的值,仅依靠一个阈值可能导致不在此区间范围内的剩余油区域被忽略,后续可以考虑设置双阈值提取剩余油边缘。因此,可以针对该问题进行进一步研究,以提高剩余油边缘检测的准确性。
(责任编辑:张洁)
基金项目:国家自然科学青年基金资助项目(52204037);黑龙江省自然科学基金资助项目(LH2022F006)