DrugChecking:一种多颜色空间下毒驾检测试纸识别方法

2021-02-05 03:28魏婷婷曹仰杰魏君飞
小型微型计算机系统 2021年1期
关键词:试纸类别边缘

魏婷婷,林 楠,曹仰杰,魏君飞,杨 聪

1(郑州大学 软件学院,郑州 450002) 2(郑州大学 汉威物联网研究院,郑州 450002)

1 引 言

近年来,随着一些恶性交通事故的发生,使“毒驾”这一民众所不了解的高危驾驶行为逐渐进入到公众的视野当中.“毒驾”(Drug-driving)是指交通行为参与人在未完全戒断毒瘾、正在使用毒品或使用毒品后进行机动车驾驶的行[1].“毒驾”行为隐蔽性高且社会危害性极大,目前,我国对由“毒驾”引发的道路交通事故尚无权威的统计数字,在国内的相关报道中,2003-2005年,由“毒驾”引发的交通道路事故平均每年不足10起;2006-2008年,达到每年10~20起;2009年则上升至40起以上[2].2013-2016年,国内媒体有关“毒驾”的报道分别为1940篇、4120篇、10400篇和13500篇,从近年相关报道反应出,其造成的交通道路事故呈上升态势[3].因此,对于“毒驾”行为的检测,是避免其造成公民的人身和财产安全的重要措施.

毒品检测标准方法包括气相-质谱联用(GC-MS)[4]与液相-质谱联用技术(LC-MS)[5,6],这两种技术相对比较成熟.此外,常见的毒品检测方法还有色谱法[7]、光谱法[8]、免疫分析法[9,10]等方法,此类检测方式需要使用大型专业仪器设备.对于实验环境具有一定要求,因此面对复杂道路环境,这些方法虽然检测准确但无法适用于常规道路稽查.国内对于机动车驾驶者的毒驾检测主要采用血液检测、尿液检测和唾液检测3种方式,如表1所示.相较于另外两种方式,唾液检测在毒检道路现场更为普遍.唾液检测采用的试纸检测方式,只需将待检测物质与试纸反应区接触即可完成检测,具有成本低、灵敏度高、方便快捷等特点.但在实际研究和应用中其试纸判断方式存在不足.目前毒驾道路检测中对唾检试纸的常用判断方式为目测法,目测法进行试纸反应色域的识别,会受到环境影响及人眼颜色识别的差异,且唾液检纸体积较小,其有效试纸前景区域面积为15mm×15mm,仅仅依靠目测,检测结果缺乏准确性.

表1 国内常见机动车驾驶员毒驾检测方式对比Table 1 Comparison of common driving test methods for motor vehicle drivers in China

随着移动设备的普及以及图像识别技术的发展,使得利用手机、相机等摄像设备结合机器学习等方法,形成一种更加高效便捷的毒驾识别方式成为了可能.首先,利用摄像头采集毒检试纸,经转换后存储为图片格式,之后从试纸图像上提取色块信息经过数字信号处理后,对数据进行分类,最终得出检测结果.但在实际毒驾检测试纸图像成像过程中,存在以下问题:

1)由于摄影设备、环境光照、色温等影响,造成图像目标与背景对比度较低、噪声较高、阴影干扰以及边缘模糊的问题,对于毒驾试纸图像的识别检测造成影响.

2)试纸图像弱边缘化.当待检测物质浓度处于临界范围内,试纸条显色区域呈现的色块颜色较浅,且形状不规则,呈现试纸色域边界弱边缘化,对判断色域是否存在产生影响.

针对上述问题,本文提出一种面向弱边缘毒驾唾检试纸图像识别方法DrugChecking,旨在实现对采集到的毒驾唾检试纸图像进行识别,并对所属毒品类别进行准确分类.本文使用多颜色空间信息和机器学习方式,在真实毒驾唾检试纸图像数据集中进行验证,试验结果表明,DrugChecking在高效准确分割弱边缘试纸图像的同时能够实现对毒品的精确分类,为常规道路毒驾稽查提供了准确有效的识别方式.

2 DrugChecking毒驾唾液试纸检测

本节将重点介绍DrugChecking的整体流程,如图1所示为毒驾唾检试纸图像的整体识别流程.首先,对原始图像进行预处理,使用边缘检测、投影变换等方式获得试纸前景区域图像,之后结合多颜色空间下不同图像信息,进行前景图像的试纸分割,获得原始图像中的试纸图像,采用PCA对试纸图像进行降维处理,并对降维后的数据进行分类,从而获得毒驾试纸中毒品所属类别.

图1 DrugChecking毒驾试纸检测流程图Fig.1 Flow chart of drug driving test strip image detection

2.1 试纸前景区域获取

原始毒驾唾检试纸图像中包含大量图像信息,首先对图像进行预处理,排除干扰信息,锁定试纸前景区域,不仅能减少设备计算量,也能避免由干扰信息引起的分类错误.边缘检测是图像处理领域的重要技术,是计算机视觉尤其是特征检测和提取的基本工具.传统的边缘检测算法一阶包括Prewitt算子、Sobel算子[11]、Roberts算子,二阶包括Laplace算子、LOG算子等.通常,这类算子以导数极大值点或过零点作为候选边缘点,根据有效阈值,得到图像边缘.此类算子操作简单、运算速度较快,但噪声对该类算子影响较大,抗干扰能力弱,例如:LOG算子常产生双边界,Sobel算子易形成不闭合的区域,导致图像边缘不够精准.而Canny算子[12]是最佳阶梯型边缘检测算法,信噪比大且边缘检测精度高.

本文基于算法复杂度以及实际应用效果考虑,采用Canny算子进行图像边缘的获取.由于采集到原始图像边缘存在无关信息干扰,如图2(b)为原始图像经过边缘检测后所得图像,因此,为获得原始图像中试纸前景图像,选取边缘图像中的最大连通区域,从而排除其他无关图像信息.首先在获得的边缘图像中搜索所有连通域,从中寻找所需最大连通域(图2(c))的位置,获得试纸前景区域(图2(d))并从原始图像中裁剪得到图2(e)试纸前景图像,将图像数据量由1920×2560×3减少至480×480×3,识别结果如图2所示.

图2 试纸前景图像获取示意图Fig.2 Schematic diagram of obtaining test strip foreground image

试纸前景图像四边形角点位置由中点以及图形所在点间距离决定,即图2(d)中标记区域.设Cj(j=1,2,3,4)为四边形角点,Oi为四边形中点,Pi表示最大连通域中坐标点,Pi∈{[x1,y1],[x2,y2],…,[xn,yn]},其中i=1,2,…,n.角点Cj的输出定义如公式(1)所示.根据得到的4个角点,对图像裁剪获得试纸前景图像.

Cj=Max[(Pi-O0)(Pi-O0)T]

(1)

2.2 多颜色空间下毒品试纸边缘提取

毒驾唾检试纸图像由于在成像过程中容易收到光照、色温等影响,图像中产生阴影、伪影等情况,同时试剂晕染模糊也会对试纸图像的边缘确定产生严重影响.常用的RGB颜色空间是面向硬件设备描述的颜色空间,通常摄像系统都是基于RGB颜色空间成像,但由于摄像设备所采集的图像,存在由于设备物理性、环境高亮度比、色温等诸多因素的影响,使得摄像得到的图像与标准光照下比,会存在高噪声、阴影、强度不均匀等情况,致使RGB颜色空间在描述物体色彩和计算处理方面不够完全.HSV(Hue,Saturation,Value)颜色空间即色调、饱和度和亮度,3个分量相互独立,受外界环境影响较小[13].因此将RGB颜色空间和HSV颜色空间的分量信息相结合,能够从不同角度有效获得所需试纸图像特征信息.

将毒驾唾检RGB图像转换到HSV颜色空间[14],图像的各分量计算公式如下:

(2)

(3)

V=max(R,G,B)

(4)

式中,Cmax=max(R,G,B),Cmin=min(R,G,B),Δ=Cmax-Cmin.

本文采用RGB颜色空间中的B通道,HSV颜色空间中的H通道,以及由RGB颜色空间转化所得灰度通道,共同构建毒驾唾检试纸图像边缘信息.B通道边缘能够拟合图像的大部分边缘,因此首先对B通道进行形态学处理——膨胀,之后与其他通道进行并运算,这样既能保持原有图像边缘轮廓,又能通过其他通道补充边缘信息.最后,进行闭操作能够消除狭窄的间断和细长的鸿沟,使得图像轮廓平滑,填补边缘轮廓的断裂,具体数学表达式[15]如下:

EB=A⊕B={x,y|Bxy⊆A}

(5)

E=EB∩EH∩Egray

(6)

E′=E·C=(E⊕C)⊖C

(7)

假设结构元素B对集合A进行操作,EB即为膨胀后B通道边缘,E和E′分别表示进行闭操作前后的试纸边缘轮廓,EB,EH,Egray分别表示B通道、H通道和灰度通道的边缘轮廓,最终得到试纸边缘轮廓E′.

2.3 试纸条区域获取

根据试纸条边缘为直线的特点,本文采用霍夫变换对图像进行直线检测,从每张前景图像中可以得到3张毒驾试纸图像.Hough变换[16]的参数方程如下所示:

ρ=xcosθ+ysinθ

(8)

用θ和ρ参数来描述直线,ρ表示原点到直线的垂直距离,θ表示该垂线与x轴的夹角.

霍夫变换通常可以在图像中寻找到所需形状曲线,根据曲线信息进行下一步图像处理.从原始图像中获取试纸前景图像后,采用霍夫变换直线检测,图3(a)即为采用霍夫直线检测结果,霍夫变换的基本方法[16]:用图像空间的边缘数据点计算参数空间中的参数点的可能轨迹,并在一个累加器中给计算出参考点的计数,最后选出符合条件的峰值,该峰值由ρ和θ决定,则在对应到图像空间中满足该式的点(x,y)就组成该直线.得到所需试纸边缘信息之后,裁剪获得试纸图像,图3(b)为裁剪后试纸图像.

图3 毒驾图像中试纸条区域的提取Fig.3 Images of drug driving test strips

2.4 试纸条区域主成分分析

直接对唾检试纸图像进行分类会耗费大量计算资源,通过对图像进行降维处理能够有效提升处理速度.主成分分析(PCA)是一种利用从高维到低微的降维思想,是从高维的可观测显示变量中获取信息,组成低维不可直接观测的隐式变量.PCA[17]通过K-L变换,使用尽可能少的低维主成分代替之前高维数据信息,计算公式见式(9)-式(14).假设每张试纸图像数据样本矩阵为{x1,x2,…,xm},首先将数据样本进行中心化处理,取每个特征的均值:

(9)

(10)

从样本特征中提取主要成分,进行数据降维.需要计算样本集的协方差矩阵,并使用SVD函数进行数据计算:

(11)

[U,Λ,V]=svd(∑)

(12)

式中,∑表示样本x的协方差矩阵,由∑计算可得样本x的特征值和特征向量,特征值Λ=[λ1,λ2,…,λp],特征向量U=[u1,u2,…,up],其特征值是递减排列,可选取全部p维特征中的前n维特征作为主要成分,通常选取保留的能量百分比E为95%以上的特征维度,即:

(13)

最终降维后的样本数据为:

xPCA=[u1,u2,…,un]Td

(14)

本文480×100×3将维的分割所得试纸图像,经过PCA降维,成为480×1维数据,由于降维后第一主成分的能量百分比为98.7376%,因此,使用第一主成分即可代表该图像主要数据,部分降维结果图4所示:

图4 部分试纸图像降维结果示意图Fig.4 Schematic diagram of PCA results of test strip images

从图4可以看出,降维后图像存在不同数目的峰值,峰值高低与图像的明暗度和色块颜色强弱有关,而峰值个数则与试纸条图像中色块数目相对应,如图4左上图中,峰值与试纸色块均为2,右上图中峰值与试纸色块均为1.因此,降维后的数据能够有效代表原始图片.

2.5 毒驾试纸分类

支持向量机(Support Vector Machine,SVM)[18]是机器学习中适用于小样本数据的有效分类方法,通过构造最优超平面从而对未知样本进行分类.针对毒驾检测试纸的小样本性以及样本特点,本文选用机器学习支持向量机对试纸毒品进行分类.SVM对于解决小样本非线性的高维数据识别中具有很好的准确率和泛化能力.非线性的支持向量机学习算法[19]如下:

输入:训练数据集T={(x1,y1),(x2,y2),…,(xN,yN)},其中,xi∈Rn,yi∈{+1,-1},i=1,2,…,N;

输出:分离超平面和分类决策函数f(x)

步骤1.选取合适的核函数K(x,z)和惩罚参数C>0;

步骤2.构造并求解凸优化问题

(15)

(16)

0≤ai≤C,i=1,2,…,N

得到最优解:

(17)

(18)

步骤4.构造决策函数

(19)

式中,sgn()表示符号函数.

SVM中常用核函数包括:线性核函数(Liner Kernel,Linear)、多项式核函数(Polynomial Kernal,Poly)、Sigmoid核函数、径向核函数(Radical Basis Function,RBF),其表达式分别为:

K(y,yi)Linear=yyi

(20)

K(y,yi)Poly=(yyi+1)d

(21)

K(y,yi)Sigmoid=tanh(k(yyi)+θ)

(22)

K(y,yi)RBF=exp(-‖y-yi‖2/(2σ2))

(23)

针对不同数据,核函数的选择对于分类的准确性具有重大影响,经试验,Poly核函数对于毒品试纸的正确分类具有显著效果.在使用SVM进行样本分类时,由于绝大数问题都是非线性问题,因此需要选用合适的核函数K(y,yi)将输入向量由低维映射到高维特征空间,由非线性变为线性可分的数据向量.

3 实验结果与分析

本文实验采用64位Windows10操作系统,处理器为Intel(R)Core(TM)i7-8700,内存为16.0 GB,整体实验流程基于Matlab实现.

3.1 数据集

本文所使用的毒驾检测试纸图像均是真实场景下常规道路稽查环节检测所得图像,共包括1920×2560×3尺寸的247张原始图片,经过图片分割处理后获得741张480×100×3尺寸的试纸图像,按照试纸图像中色块位置的不同分为5个类别,类别信息如表2所示.

表2 毒驾试纸原始类别信息Table 2 Type information of drug driving test strips

每张试纸包含3个色块,从上而下分别代表色块有效性、毒品A和毒品B,为了类别标记的便捷性,我们将色块的有无分别用1和0表示,组成5种类别,包括000,100,110,111和101,如图5所示.000表示该试纸检测无效;100表示试纸检测有效,并且不存在毒品A和B;110表示试纸有效且存在毒品A,不存在毒品B;111表示试纸有效,同时毒品A和B都已检测到;101表示试纸有效,不存在毒品A,存在毒品B.

3.2 数据增强

在分类后的试纸数据中,类别之间样本数量差距较大,类别3和类别4较多,而类别0、1、2则远远小于其样本数量,存在严重数据不平衡现象,影响后续SVM的样本分类,造成分类精确度下降.目前解决样本数据不平衡问题的方法主要有加权法、采样法以及对原始数据增加噪声扩大样本量等方法[20,21].本文通过在原始图像中加入均值为0,方差为0.025的高斯噪声,将类别0、1、2进行数据扩充,数据扩充后信息如表3所示,使得每个类别的样本数据量处于均衡状态,这样不仅增加了训练样本量,解决数据不平衡问题,也增强了算法分类的鲁棒性.

图5 试纸类别示意图Fig.5 Different types of test strips

表3 毒驾试纸数据扩充类别信息Table 3 Drug driving test strip data extended category information

3.3 评价指标

在机器学习方法中,分类模型的评价指标通常为准确率(Accuracy,Acc)、精准率(Precision,Pre)、召回率(Recall)、综合评价指标F1-Score(F1),各评价指标所使用的样本数据类别如表4所示.Acc表示该算法所有分类正确的样本占所有数据样本的比率,则Acc越高,代表该算法检测出数据样本真实情况的能力越强.Pre和Recall都表示在不同分类情况下对该类别的判断能力,Pre和Recall数值越高,则该算法对该类别的分类能力越强.各项评价指标如下所示:

表4 样本数据类别表Table 4 Sample data category Table

(24)

(25)

(26)

(27)

3.4 实验结果

3.4.1 试纸区域识别

为了从原始图像中得到所需唾检试纸图像,通常选用RGB颜色空间或将彩色图像转化为灰度图,进行边缘信息提取.由于毒驾检测图像中干扰信息较多,存在阴影、伪影以及颜色晕染等情况,使得在RGB颜色空间下无法获得准确边缘,从而影响后续图像识别,各通道边缘识别准确率如表5所示.

表5 不同颜色通道的边缘识别准确率Table 5 Accuracy of edge recognition for different color channels

在图6中,Green、Blue、Gray分别代表RGB图像的G通道、B通道以及由RGB图像转化得到的灰度图通道,图6(a)中由于颜色晕染及阴影,导致3个通道均未正确检测到试纸边缘,在图6(b)中只有B通道能够准确识别识别试纸边缘.因此,本文采用HSV颜色空间中H通道,RGB颜色空间中B通道和灰度图通道,从表5中看出,使用Green、Blue、Gray颜色通道进行图像分割,分割正确率分别为88%、98%和97%,利用3个通道所叠加的边缘信息进行分割,在目前数据集中分割正确率为100%,能够高效准确识别试纸边缘,进行试纸图像分割.

图6 不同颜色通道试纸边缘识别示意图Fig.6 Test strip edges with different color channels

3.4.2 试纸分类结果

本文实验采用十折交叉验证策略,将数据集分成10份,其中9份作为训练数据,剩余1份作为测试数据.交叉验证重复10次实验,综合每次实验得出的Acc,Pre,Recall和F1,计算平均值作为对模型整体性能的评估,避免随机结果造成的影响.

对于机器学习,数据集中样本类别的数据不平衡会影响单个类别预测精度,导致模型整体性能下降.因此在数据预处理时,对原始图像数据加入高斯噪声,生成新的数据图像,以平衡数据样本类别.为了验证数据扩充前后,模型对不同样本类别及整体分类性能,本文经过一系列对比实验,得到数据扩充前后的各种模型指标如表6所示.

表6 数据扩充前后各指标对比Table 6 Comparison of indicators before and after data expansion

根据表6看出,加入噪声后的扩充数据,分类准确率由0.946提升至0.9804,其余3种评价指标的数值也明显高于原始数据.由于原始数据中某些类别数据较少,模型对该类别学习能力较弱,当扩大数据集后,丰富的信息,使模型做出更加准确的判断.实验结果表明,使用该方法对数据集进行扩充能够有效提高模型鲁棒性,增强泛化能力.

此外,对于不同分类问题,不同核函数的选择对SVM算法模型性能有不同影响.本文使用Linear、Poly、Sigmoid和RBF核函数进行实验对比,评价不同核函数对实验分类,结果见表7.

表7 不同核函数的评价指标对比Table 7 Comparison of evaluation indicators of different kernel functions

根据表7看出,采用Poly核函数进行毒驾试纸分类,由于数据内部关联性,其各个指标均高于另外3种核函数,因此,在SVM进行样本分类时,本文选用Poly核函数能够达到当前最优结果.

3.4.3 对比试验

本文所提出的使用毒检试纸图像的DrugChecking与常用毒品检测方法(GC-MS[4]、LC-MS[6])相比具有较低的检测时间,能够有效提高对驾驶员的毒驾检测效率,不同检测方式用时如表8所示.

表8 不同检测方式所的检测时间Table 8 Time taken for different detection methods

常规的毒品检测方式CG-MS和LC-MS需要首先对采集到的唾液等试剂进行多种预处理,之后由于试剂的不同导致所需反应时间也有所差异,但整个检测过程通常耗费较多时间.与试纸检测的目测法相比,DrugChecking依然有更高的检测效率.

3.4.4 模型分析

DrugChecking毒驾检测试纸识别方法采用模块化思想,降低算法耦合性,具有更高的灵活性和可扩展性,为毒驾试纸检测提供新的思路.当该模型框架应用于其他领域时,可以根据不同需求进行模块或算法的修改,例如颜色空间的选择、主成分分析时特征维度的保留、分类算法的选择等方面.

表9 不同类别试纸的识别准确率Table 9 Recognition accuracy of different types of test strip

DrugChecking同样具有较强的抗干扰性,对环境干扰和试纸污染都能够有效处理.一方面,此算法是应用于日常道路毒驾检测,因此检测环境的光照、天气和温度,所产生的高曝光、阴影、伪影等,都会对图像的拍摄造成影响.另一方面,待检测试剂与试纸的反应不可避免的会产生色块晕染情况.如图6所示,阴影、伪影和色块晕染对边缘的识别具有影响.本文采用多颜色空间融合方式,HSV颜色空间能够消除图像中光线所造成的影响,而采用RGB颜色空间和灰度图能够排除试纸晕染带来的干扰.本文采用的测试图像包含此类干扰图像,不同类别试纸的识别准确率,如表9所示,DrugChecking对每个类别的试纸都具有较高的识别率.

4 结 论

本文针对毒驾唾检试纸的特点,提出了一种简洁、高效的试纸分类方法——DrugChecking.该方法在融合不同颜色空间下的试纸图像边缘信息基础上,提取了毒驾唾检试纸条区域,并对试纸条区域进行降维分类,最终实现毒检分类.本文针对毒驾唾检试纸中样本不平衡的问题,通过数据扩充有效提高了模型鲁棒性,并增强模型泛化能力.此外,经试验验证,DrugChecking对于常规道路毒驾检测具有稳定的识别能力和良好的分类性能.在之后的工作中,将进一步提高模型对毒驾唾检试纸的识别准确率,并加强对处于检测阈值的弱色块识别能力.

猜你喜欢
试纸类别边缘
一起去图书馆吧
血糖试纸保存方法及注意事项
简析基于概率预测的网络数学模型建构
血糖试纸不要放进冰箱
一张图看懂边缘计算
选相纸 打照片
在边缘寻找自我
走在边缘
边缘艺术