一种基于图像处理技术的镜框尺寸测量系统

2022-11-11 06:28张志浩付东翔
电子科技 2022年11期
关键词:镜框算子轮廓

张志浩,付东翔,闫 蕊

(上海理工大学 光电信息与计算机工程学院,上海 200093)

传统镜框轮廓尺寸测量方法为接触式测量,虽然测量精度高,但必须与人接触,在一些特殊场合和情况下不适用。此外,人工检查过程缓慢,效率较低,还增加了成本[1]。随着自动化工艺技术的飞速发展,非接触测量方式在解决新型测量问题上取得了较大的进展。其中,图像处理技术因其高准确率、高速率、环境适应性强、不存在对被测物体造成损伤等优点,逐渐凸显出优势[2]。目前,部分眼镜公司已开始使用自动化系统进行镜框尺寸测量。本文采用非接触式的测量方法,通过级联回归树(Ensemble of Regression Trees,ERT)和图像处理的方法,开发了一款在线测量镜框轮廓尺寸的应用(Application,App),可以直接对手机端中人物佩戴眼镜的图片进行识别和快速计算,得到图片中人物所佩戴眼镜的物理尺寸信息。本文所提算法的整体流程图如图1所示。相较于传统方法,该方法降低了制作成本,对推进国内眼镜行业的自动化发展有一定的辅助作用[3]。

图1 算法流程图

1 人脸图像的特征点定位

1.1 ERT定位人脸特征点

图2为68点示意图,人脸特征点检测的级联回归模型的定义为:

图2 68点示意图

定义1在人脸特征点检测的级联回归模型中,对于给定的正整数和初始的人脸形状,有

(1)

在实际的特征点检测过程中,将经过所有级联梯度提升树后的结果作为对人脸特征点的预测,如式(2)所示。

(2)

1.2 基于特征点定位的人脸镜框区域提取

输入的图片大小存在差异,图片过大或者过小都会对后续镜框区域图像提取造成影响,所以需先对输入的图像进行指定的缩小或者扩大,再用ERT进行人脸定位[6]。

2 镜框图像预处理

预处理主要是对图片进行去躁、增强等操作,从而减少后续处理过程中的干扰,突出待检测目标[7]。由于图片拍摄条件和背景存在较大差别,因此可能会因为背景噪声过大导致镜框轮廓被淹没[8]。所以需要对输入图像进行预处理操作来确保原始信息不会丢失,并加强关键信息。

2.1 图像灰度处理

输入的图像是彩色图像,具有R、G、B共3个通道,每个通道的颜色变化范围为0~255。彩色图像转换成灰度图像后可以使得图像的运算更加简单,加快图像处理速度[9]。和彩色图像一样,灰度图像也能够较好地描述整幅图像中整体和局部细节特征的变化。对图像进行灰度化后,可更加便捷地从镜框图像中提取轮廓图像。

2.2 图像去噪

通过摄像头获取的图像存在一定的噪声,为了确保在随后的镜框轮廓检测中获取更好的效果,需要采用中值滤波对读取的图像去噪[10]。

2.3 基于整个图像的灰度值对图像进行二值化

为了便于后续对镜框图像进行轮廓提取,需要进一步对图像进行二值化操作,以保存镜框条纹的形状、位置信息。

2.4 基于数学的形态学处理

经过二值化后,可以获得质量较高的镜框条纹,但是镜框的边缘会存在明显的毛刺,这些毛刺将对后续镜框尺寸数据提取造成不利的影响[11]。通过观察可知这些毛刺大部分集中在镜框轮廓边缘处,因此可采用边缘模板匹配方法将其去除[12]:首先提取出镜框轮廓的单个像素的连续边缘,使用形态学开运算去除未连接的小边缘;然后,通过膨胀运算消除毛刺;最后,采用连通域分析消除不连续的边缘点。

3 镜框图像边缘检测及轮廓提取

3.1 图像边缘检测概述

图像边缘检测在图像处理和机器视觉中起着重要的作用。在图像中,最重要的参数是边缘,边缘主要用于图像分析和处理[13],边缘检测的目的是把目标物体与背景区分开。虽然算法各不相同,但其步骤大致可分为4步:噪声滤波、边缘增强、检测和定位[14]。

3.2 检测算子选取

边缘检测最常见的算子有Sobel算子和Canny算子。Canny算子可以保存更完整的检测图像边缘信息,轮廓断裂和缺失情况也较少;而采用Sobel算子检测后,轮廓图较模糊,也会丢失部分边缘信息[15],因此本文使用Canny算子作为检测算子。

传统Canny算子定义了两个阈值(一个较高的阈值和一个较低的阈值,证明了对滞后的引用),使用者可根据经验来输入两个阈值。过高的阈值会导致边缘的断裂,从而使原本连续的边缘变得不连续,进而导致边缘信息丢失;过低的阈值可能导致出现伪边缘[16]。当图像的外界情况发生改变时,相机拍摄的图片整体灰度化分布也会随之变化,故阈值也需要进行相应的变换。由于传统的Canny算子阈值是手动输入的,并不能根据环境变化做出相应的调整,因此缺乏适用性[17]。为了弥补传统Canny算子在自适应方面的不足,本文采用自适应阈值分割算法,根据图像灰度特征变化来自适应选择较为合适的阈值。本文采用的改进Canny算子算法流程如图3所示。

图3 改进Canny算子流程

3.3 镜框轮廓提取

当确定好镜框轮廓线后,即可进行识别处理。实验中镜框的轮廓尺寸在整个图片区域里属于最大封闭轮廓,在经过上述一系列步骤后会留下一些相似的小轮廓,可通过面积筛选法进行去除。去除原理为:设置一个固定的面积阈值,面积超过阈值者被保留,否则去除。

4 测量方法

4.1 尺寸标定方法

在获取到镜框轮廓后,需要进行标定,这样才能得到镜框尺寸参数的实际信息。

(3)

本文以瞳距为参照物,利用ERT特征点和最小外接矩形的4个顶点的已知坐标,只需进行简单的几何运算便可以得到实验数据的真实值。

4.2 数据测量方法

根据级联回归树定位人脸特征点来定位左右瞳孔。对点37、点38、点40、点41这4个特征点的坐标求取平均值,得到左瞳孔坐标为e1(ex1,ey1);求取点43、点44、点46及点47这4个特征点坐标平均值,获得右瞳孔的坐标为e2(ex2,ey2)。瞳距的像素尺寸e的计算如式(4)所示。

(4)

图4中为眼镜店制作镜框所需要的参数,本文中这些参数的计算方法如下:

图4 镜框参数

(2)镜框宽度(HBOX)。长度为镜框轮廓提取图中最小外接矩形的宽;

(3)镜框高度(VBOX)。长度为镜框轮廓提取图中最小外接矩形的高;

(4)瞳高(SEGHT)。瞳高指瞳孔中心到镜框底部的距离,其长度为镜框最小外接矩形的左下顶点与左瞳孔纵坐标之差;

(5)中梁(DBL)。中梁长度为级联回归树特征点27的横坐标与左瞳孔横坐标差值的两倍。

另外还需要得到瞳孔到镜框边缘的最大直径(ED)。左瞳孔坐标为e1(xe1,ye1),设镜框上的点坐标为c(xi,yi),则镜框上的点到瞳孔的距离Bi如式(5)所示。

(5)

遍历镜框上所有的点,所求得的最大值即为需要的ED值。由于外接矩形4个顶点的坐标和级联回归树特征点的坐标已知,因此可以算出以上数据的像素距离,然后根据算出的长度当量即可得到各个参数的实际值。

5 实验结果

本文实验算法环境如下:CPU为Intel(R)Core(TM)i5-4 210 M 2.60 GHz,内存为16 GB,Windows 10操作系统,编程语言为Python3.7,集成开发环境为PyCharm、Opencv3.2.0和Dlib19.15。本文采用的是经典的面向过程编程方法,对关键算法函数实现进行了打包和优化,从输入图像到输出数据仅需0.5 s。

5.1 实验算法流程

具体算法的实现步骤如下:

(1)人脸镜框区域提取。考虑到有些镜框的尺寸较大,为保证将镜框区域完整的提取出来,选取特征点0、16、19、33作为裁剪矩形的4个坐标,提取效果如图5所示;

图5 镜框区域提取图

(2)自适应阈值处理。由图6到图8的对比可以看出,与传统方法相比,采用改进后的Canny算法增强了边缘效果且干扰部分显著减少。由于低阈值是算法依据图像的灰度分布计算得到的,因此也减少了伪边缘的产生,保证了后续镜框轮廓检测和提取的准确性;

图6 Sobel算子效果

图7 传统Canny算子效果

图8 改进Canny算子效果

图9 镜框轮廓提取图

(3)镜框轮廓提取。镜框识别模式采用最小外接矩形法进行校正,提高了对镜框的计算精度,同时方便后续对镜框轮廓的尺寸测量;

(4)根据章节4中描述的数据测量方法对镜框轮廓尺寸进行测量。

文献[14]中虽然设计了提取镜框轮廓系统,但并未设计尺寸测量系统,同时由于数据点的提取误差较大,采集到的镜框轮廓存在较大误差。文献[13]中的实验平台搭建复杂,实验流程繁琐,对外界环境要求较高,适用性不强。本文所用方法仅需用户提供瞳距的真实值就可以准确地测出镜框轮廓尺寸的准确信息,与文献[14]和文献[13]中的方法相比,实验环境复杂度更小。

5.2 实验数据

对采集到的300张人脸图像分别用传统Canny算子和本文改进的Canny算子代入程序中进行测试,并将测试结果与实际镜框尺寸参数进行对比,得到的误差分布如表1、表2所示。

表1 改进Canny算子误差分布

表2 传统Canny算子误差分布

通过对比可以看出,本文使用的改进后的Canny算子在±1.5 mm和±2 mm误差内的精度达到了92%以上,与传统Canny算法相比提高了10%左右;在±0.5 mm误差范围内,本文算法的测量精度达到72%,与传统Canny算法相比提高了21%。

表3 测量结果对比

对300次测量的长度结果取平均值,得到最大误差为2.01%,最小误差为0.20%,总体平均误差为1.10%。从实验结果可以看出,本文提出的镜框轮廓测量方法可以满足实际测量的需求。

6 结束语

本文提出的方法在确定镜框轮廓尺寸时只需要一个实验参数。通过大量测试和实际数值对比分析可知,本文测量方法可以快速准确地识别镜框的轮廓并计算实际尺寸。在预处理、边缘检测等过程中,本文算法的优化处理效果较好,计算精度较高,可被用于开发手机App。在今后的工作中,将尝试将其他新技术引入到边缘检测系统当中,使其性能更加完善,精度越来越高,从而满足顾客的多种需求。

猜你喜欢
镜框算子轮廓
有界线性算子及其函数的(R)性质
Domestication or Foreignization:A Cultural Choice
跟踪导练(三)
一天比一天老
QK空间上的叠加算子
Geek潮流:我是爱凹造型的读书人
一天比一天老
金属画框生锈了怎么办?
儿童筒笔画
创造早秋新轮廓