APP下载

基于AKAZE-FLANN 算法的色卡自动提取方法研究

2023-07-12党媛媛陈兆学

软件工程 2023年7期
关键词:色卡尺度空间尺度

党媛媛,陈兆学

(上海理工大学健康科学与工程学院,上海 200093)

0 引言(Introduction)

在图像处理和计算机视觉领域,标准色卡通常用于定位和校准图像中的颜色信息[1]。传统的标准色卡定位方法通常需要人工交互手动提取色卡中的颜色信息,当有大量的色卡待提取颜色信息时,该方法效率极低。因此,研究如何自动实现标准色卡的定位和识别是当前的研究热点之一。目前,国内外已有相关研究及成果,JACKOWSKI等[2]提出了一种半自动色卡检测的算法,即先手动注释补丁角,再利用有理高斯曲面和超曲面建模及模板匹配知识对色卡进行几何变形。樊明杰[3]和KORDECKI等[4]提出了基于颜色聚类的色卡自动识别方法,均先对图像进行形态学处理,再利用K-means算法聚类颜色簇定位标准色卡。葛超[5]提出了一种将尺度不变特征(SIFT)与随机抽样一致匹配算法相结合的色卡信息提取方法。

在真实采集环境下,不可避免地存在色卡倾斜、旋转、弯曲及多色卡同时采集等情况。以上方法针对性强但鲁棒性差,难以实现各种场景下色卡自适应识别和精准定位。为弥补上述既有方法的不足,本文提出了一种结合AKAZE 特征检测、FLANN特征匹配与RANSAC算法的色卡自动识别与颜色信息自动提取方法。通过实验表明该方法能快速、准确地定位不同场景下的色卡图像和提取颜色信息,便于后续的颜色校正和图像特征自动分析处理工作。

1 算法流程(Algorithmic flow)

标准色卡是一种用于标准化和比较颜色的工具,通常由国际标准化组织(ISO)或其他行业组织制定,并根据特定的颜色空间(如RGB、CMYK 或LAB等)和颜色体系进行编码和标识,其中X-Rite Color Checker 24色标准色卡具有极佳的稳定性,在颜色校正领域被广泛使用。该颜色检查器包含24个色标,其RGB参考值由官方提供,确保目标值的准确性。这些色标的很多颜色代表自然界对象,例如天空、草地和皮肤等,可以在任何光照条件下与其自然物体的色彩互相匹配[6],带有24个色标的X-Rite色卡如图1所示。在采集目标物体图像的同时,拍摄标准色卡,则可将其用作视觉参考以辅助任何色彩再现流程,也常常用于评价成像设备拍摄图像的颜色校正质量。

图1 爱色丽24色标准色卡Fig.1 X-Rite Color Checker Classic with 24 colors

本文提出的结合AKAZE特征检测、FLANN 特征匹配与RANSAC误匹配剔除的标准色卡自动识别与颜色信息提取方法的主要实现步骤如下。

(1)利用AKAZE算法提取标准色卡及包含标准色卡的待检测图像中的特征点,并利用FLANN算法建立两幅图像特征点集合的映射关系,从而得到特征匹配点集合,进而大致识别出标准色卡在待检测图像中的位置[7]。

(2)通过RANSAC算法过滤特征匹配点集合中的误匹配点,从而得到更准确的匹配点集[8]。

(3)根据“步骤(2)”中的匹配点集,将匹配条件设为10,选择两幅图像中相似性最高的关键点位置坐标计算透视变换矩阵M。

(4)根据透视变换矩阵M,校正待检测图像中标准色卡的角度,并提取24个色标的颜色信息。由于X-Rite颜色检查器的材质会造成漫反射,色卡上或多或少地存在噪声,因此这里选取每个色标中心的一定区域,采用基于均值的方法计算每个色块的颜色值[9]。设计的算法流程架构如图2所示。

图2 本文算法流程图Fig.2 Algorithm flow chart

1.1 AKAZE特征检测

在计算机视觉图像处理领域提取图像局部特征的各种算法中,比较经典的有尺度不变特征(Scale-Invariant Feature Transform,SIFT)和加速稳健特征(Speeded Up Robust Features,SURF)算法[10-11]。这两种算法提取的图像特征都具有旋转和尺度不变性,并且采用金字塔结构;然而在构造不同尺度空间时,常用的高斯模糊算法难以保持目标物体的边缘信息,于是ALCANTARILLA等[12]提出了AKAZE特征检测方法。相比传统的线性尺度空间,非线性尺度空间能够更好地模拟图像的局部结构,并且在多尺度特征检测中能够更好地保留特征。与SIFT、SURF等算法相比,AKAZE算法利用非线性尺度空间进行图像特征检测的速度更快,并且其可重复性与鲁棒性更高。

1.1.1 构造非线性尺度空间

为了解决高斯尺度空间边缘模糊的问题,引入非线性扩散滤波[13]。该方法描述了图像亮度L在不同尺度上随时间变化的规律,可以描述如下:

其中,div表示散度,∇代表梯度算子,L表示图像亮度,c(x,y,t)取决于图像差分结构的传导函数,决定了图像平滑程度和边缘保留程度,可以根据像素相似性自适应地调整,公式表示如下:

为了实现特征的快速计算,提高尺度空间的构建速度,利用快速显性扩散算法(Fast Explicit Diffusion,FED)求解公式(1)的非线性偏微分方程,得到非线性尺度图像[14],定义如下:

公式(4)和公式(5)中,I是单位矩阵,τj为时间步长,τmax表示最大时间步长,L i表示第i次迭代包含的图像像素点灰度值的向量,通过计算第i幅图像传导矩阵A(L i)就可以得到第i+1幅图像,从而构造出非线性尺度空间图像序列关系。

AKAZE算法在构建非线性尺度空间时采用金字塔型结构,其中尺度级别按对数递增排列[15]。算法构建了一个包含多个图像的金字塔结构,每个图像在空间和尺度上都不同,尺度空间的构建是通过对原始图像进行多次高斯模糊实现的,每个模糊后的图像被称为一个尺度级别,与SIFT、SURF算法等其他线性构造尺度空间方法都不同。具体来说,一共O组图像,每组图像有S个子层,各层图像尺度参数表示如下:

公式(6)中,σ0表示尺度参数的初始基准值,N=O×S是整个尺度空间中图像的总数。由于非线性扩散滤波是用于时间序列的方法,而公式(6)计算得到的结果是像素级别的灰度值,因此需要将像素尺度转化为时间尺度,以便构造非线性尺度空间。具体而言,可以将像素尺度转化为时间尺度,进而得到每层尺度空间中的时间参数,然后按照时间参数构造非线性尺度空间,从而实现对图像的多尺度特征提取和匹配:

1.1.2 特征点检测

非线性尺度空间构造完成后,需要计算不同尺度下金字塔每一层滤波图像L i的Hessian行列式[16]:

图3 特征点检测原理图Fig.3 Schematic diagram of feature point detection

特征具有旋转不变性,在确定图像特征点的位置后,以此为原点寻求特征点的主方向。计算特征点圆形区域内所有邻点的一阶微分值并进行高斯加权,接着将其作为响应,采用一个60°扇形滑动窗口局部遍历所有的像素点,并对滑动窗口内像素点的响应值进行求和。在求和过程中,值最大的方向即为特征点的主方向。

1.2 FLANN特征匹配

为了提高算法的运行速度,实现特征匹配的实时性,本文选择快速最近邻搜索算法(Fast Library for Approximate Nearest Neighbors,FLANN)对特征点进行匹配[17]。FLANN算法与其他特征匹配方法(如暴力匹配法)相比,可以更有效地匹配具有高维或大规模数据集的特征。FLANN基于欧式距离从实例点的最近邻域搜索到最近的点,当两个关键点之间的距离小于匹配阈值时,它们会被标记为匹配对。在本实验中,将匹配阈值设置为0.8。N维空间中,欧式距离的数学定义如下:

其中,D(x,y)表示欧式距离,i代表空间维度。FLANN 算法流程如下。

(1)构建随机树:首先建立随机树将N维空间中的数据进行排序,选择中位数作为根节点,然后将数据集分成两个子集,分别递归构建左子树和右子树,直到每个叶节点只包含一个数据点或者达到预设树的深度。

(2)索引:将构建好的随机树分别按照深度优先、广度优先、最近邻优先等方式进行遍历,对每个节点进行索引,计算每个节点的划分平面和划分维度,记录节点的左、右子节点等信息。

(3)利用K-最邻近算法搜索与剪枝:给定正整数K,计算所有测试数据的欧式距离,根据距离进行升序排序,选取距离最小的K个点,根据单个数据占前K个数据距离的比值综合计算前K个数据的类别,从而判断测试数据的类别。在访问每个节点时,计算查询点到节点划分平面的距离,如果小于当前最近邻的距离,则更新最近邻。在搜索过程中,根据查询点与节点的距离和当前最近邻的距离,可以预测查询点到其他节点的距离是否可能更小,如果不可能,则不再递归访问该节点的子树。

(4)使用FLANN算法进行近似最近邻搜索高维数据时,可能会出现“维数灾难”,导致搜索时间急剧增加。为解决这个问题,FLANN算法采用局部敏感哈希(LSH)和随机树等技术实现高维数据的近似最近邻搜索。此外,FLANN 算法提供了自动调参的方法,可以根据数据集的特点自动选择最佳参数。当检查的树叶节点数满足预先设定的值时,停止搜索,搜索的精度可由用户设定。

1.3.8 膨胀度(SC)的测定。准确称取约1 g的样品,记为M,将其加入量筒中,使其所占的体积记为V1,加入10 mL蒸馏水,振摇使其均匀分散,置于25 ℃的水浴锅恒温24 h,使样品充分膨胀后记录其体积V2,并按以下公式计算:

1.3 RANSAC算法删除误匹配

图像匹配对中不可避免地会存在一些错误的匹配,鉴于随机抽样一致匹配优化算法(RANSAC)对样本数据有较强的勘误能力且鲁棒性较高,可应用于消除特征匹配过程中产生的误匹配点。该算法基本思想是从样本集中给定一组(通常很小的)内群,利用迭代方法拟合一个模型,这个模型可以估算出最佳解释或最适用于这一数据模型的参数,然后对该模型进行评价。通过不断迭代重复这一过程,当迭代次数足够大,随机给定的样本点有可能全部属于内点,从而找到最优的拟合模型[18]。

本实验中RANSAC算法筛选剔除错误的匹配对的步骤如下。

(1)从匹配对样本中随机抽取4组匹配对组成一个样本集,计算其单应性矩阵,模型记为Q,设定阈值为5。

(2)计算数据样本中所有数据与模型Q的误差,若误差小于5,则将其视为内点,加入内点集N。

(3)根据内点集中元素个数判断组成的内点集是否为最大一致集。

(4)当足够多的点进入内点集,选择此时的模型,重复“步骤(1)”和“步骤(2)”的操作过程,直至内点集元素个数达到一定阈值,将内群最多的模型作为该问题的解。RANSAC剔除误匹配后的特征检测与匹配结果如图4所示。

图4 特征检测与匹配结果Fig.4 Feature detection and matching results

2 实验结果与分析(Experimental results and analysis)

本文色卡定位与颜色信息提取实验使用Python 语言及Pytorch框架实现,实验环境如下:Windows 10操作系统,处理器为Intel(R)

图5为本文方法与基于SIFT和SURF算法的色卡检测效果的对比图,从实验结果可知,大矩形框所框选的部分即为场景中的标准色卡,24个小正方形大致为各色块中心位置,尽管场景中有其他物体,但本文方法可以对标准色卡进行准确且有效的自动识别。在实际的图像采集过程中,应尽可能地平整摆放场景中标准色卡,有效地避免色卡形变或阴影等因素对后期颜色校正结果的影响。此外,以上两种方法也可以定位图像中的色卡区域,但是基于SIFT和SURF算法的定位效果易受高斯模糊影响而难以保存边缘信息。

图5 色卡检测及定位结果Fig.5 Color checker detection and positioning results

从图5可以看出,在提取色卡中心位置,基于SIFT 和SURF的方法定位结果会有个别色块明显偏离色块区域中心位置,而本文算法的结果较为准确。表1是本文算法对一帧图像进行识别所得的24色标准色卡色块中心位置及颜色提取结果。

表1 色卡信息Tab.1 Color checker information

为验证本文算法的有效性,进一步比较不同算法的色卡检测效果,对数据集中114幅包含标准色卡的图片进行色卡定位及颜色提取。图6为使用本文方法开展部分实验的结果,24个小正方形的位置即算法定位的各色块中心位置。利用Matlab R2018a软件搭建手动标定色卡各色块中心系统(数据均进行3次标定且标定过程互不干扰,取其平均值),将该结果作为标准色卡各色块中心位置。图7是基于SIFT、SURF算法与本文算法对115幅图像进行色卡检测所得的24色色块中心数据与标准色卡色块中心位置距离的平均误差,图7中,“方法一”对应SIFT算法,“方法二”对应SURF算法,“方法三”对应AKAZE-FLANN算法。

图6 部分实验结果Fig.6 Partial experimental results

图7 中心位置距离的平均误差Fig.7 Center position distance error

通过图7可知,本文提出的方法检测出的24色色块中心的像素误差基本稳定在 0~15 pixels,基本可以满足场景下色卡定位与颜色信息提取要求。相比之下,基于SIFT 算法和SURF算法的误差稳定在小于30 pixels,较本文方法识别精度略低。表2是用手动标定SIFT、SURF算法与本文算法的色卡检测效果的对比结果。实验结果显示,运用本文算法检测色卡结果与人工标定结果的一致性比其他方法好且算法运行时间更短,表明该算法能够更准确地检测色卡且实时性更好。

表2 算法性能对比Tab.2 Algorithm performance comparison

此外,本文算法也适用于同一场景下多色卡识别任务,如图8所示,图中数据样本包含标准色卡及肤色色卡,本文算法在色卡平整摆放、色卡倾斜摆放及色卡弯曲摆放三种情景下均可较好地完成多色卡场景下的色卡识别,具有一定的鲁棒性。

图8 多色卡场景的检测及定位结果Fig.8 Detection results of multi-colorchecker scene

3 结论(Conclusion)

实现标准色卡的自动检测,在中医诊断、光学估计和计算机视觉等领域都有着重要且广泛的应用价值。本文在人机交互技术高度发展的背景下,为了在还原采集图像本征色彩的过程中节约人力和时间成本,提出了一种基于AKAZE特征检测与匹配的标准色卡自动化提取方法,在AKAZE特征提取的基础上,考虑运用FLANN 算法进行特征匹配并应用RANSAC算法剔除误匹配点。经实验检验,本文提出的算法较好地实现了标准色卡中各色块中心的快速定位与颜色信息的自动提取,具有一定的实用价值,可以推广应用于医疗、食品、纺织、化妆、印刷等领域。

猜你喜欢

色卡尺度空间尺度
基于AHP的大尺度空间域矿山地质环境评价研究
数字色卡
颜色读数与物质浓度模型的新思考
财产的五大尺度和五重应对
2018/19秋冬国际流行色定案色卡分析
居住区园林空间尺度研究
宇宙的尺度
2016年情人节色卡
基于降采样归一化割的多尺度分层分割方法研究
基于尺度空间的体数据边界不确定性可视化研究