一种足迹图像的处理方法
【技术领域】
本发明涉及刑事侦查技术领域,具体涉及一种足迹图像的处理方法。
【背景技术】
足迹图像是犯罪现场中遗留率较高的痕迹物证之一,能提供可靠的法定依据。足迹图像的有效识别不仅能够帮助调查人员实现案件的串并联,而且可以帮助其锁定罪犯。因此,犯罪嫌疑人的足迹图像在侦查破案中的地位越来越突出,足迹图像的提取和识别也逐渐成为刑事侦查工作中痕迹检验的重要组成部分。
在勘察现场进行足迹痕迹图像采集时,传统的足迹采集方法为:使用强平行光源以小倾角近似平行地照射足迹所在平面,利用足迹颗粒对光源的漫反射显现出足迹图像信息,用数码相机拍摄采集数字格式的足迹彩色图像。图像中足迹为目标,足迹之外的其他像素为背景。但是,以该种方法采集和提取足迹图像存在以下缺点:1.目标与背景对比不强;2.光照不均匀,光滑表面易产生光斑;3.直方图特征不明显,不利于阈值确定。
【发明内容】
鉴于以上原因,本发明提供一种足迹图像的处理方法,以数字化处理为主要手段,实现了对三维激光扫描技术采集的足迹图像进行特征提取和识别,有效地避免了传统方法中光照不均匀、目标与背景对比不强、二值化阈值难以确定的不足。
为达到上述目的,本发明所采用的技术方案是:一种足迹图像的处理方法,包括如下步骤:
S10.数据采集:采用三维激光扫描仪对足迹进行采集,得到点云数据;
S20.数据预处理:利用数据处理软件对采集到的点云数据进行预处理,保留点云数据中的X、Y坐标数据,将Z坐标数据进行转化加以利用,将颜色信息作为冗余数据去除;
S30.特征提取与足迹识别:根据特定算法进行足迹图像的特征提取和足迹识别。
在所述数据预处理时,将Z坐标数据通过如下步骤进行转化:
S21.通过算法计算合适的阈值,找到足迹Z坐标的取值范围,保留该范围内的坐标点数据,去除范围外的坐标点数据;
S22.将足迹Z坐标取值范围对应到0-255灰度区间上,将Z坐标数据转换为灰度数据。
所述特定算法包括如下步骤:
S31.使用Haar级联进行足迹识别:对整个图像区域进行分割,并通过训练OpenCV库中的Haar特征级联分类器将单个足迹或疑似足迹的图像识别出来;
S32.足迹图像区域的提取:针对不同的足迹图像的特点,采用OTSU算法或Bernsen算法将足迹图像提取出来;
S33.图像降噪:采用高斯滤波或中值滤波的方式进行图像降噪,在设置过滤器强度后,在OpenCV库中调用函数:
cv.fastNlMeansDenoisingColored(img,None,10,10,10,20);
S34.足迹纹理特征提取:使用mahotas API中的Haralick算法计算足迹图像的纹理特征提取;
S35.图像二值化与层次聚类:采用全局阈值法或动态阈值法对足迹图像进行二值化,并通过层次聚类合并相似集群以完成足迹分类和比对:
AgglomerativeClustering(n_clusters=NCLUSTERS,connectivity=connectivity)。
作为优选,步骤S35中,在进行层次聚类之前,重复、交叉进行图像降噪和足迹图像区域提取的步骤。
进一步地,通过训练OpenCV库中的Haar特征级联分类器来进行足迹识别的步骤包括:
S311.选择Haar级联特征,创建积分图像并进行Adaboost训练,训练集包括包含足迹图像和不包含足迹图像;
S312.通过级联的分类器逐级逐步过滤掉不包含足迹的区域。
作为优选,所述OTSU算法为OpenCV库的OTSU算法,表达式为:
cv.threshold((cv.cvtColor(img,cv2.COLOR_BGR2GRAY)_),0,255,cv2.THRESH_OTSU)。
作为优选,所述Haralick算法的表达式为:
Mahotas.features.haralick(digits.img.astype(numpy.uint8))。
相对于现有技术,本发明具有以下有益效果:
1.本发明以数字化处理为主要手段,将由三维激光扫描仪器采集到的足迹图像,采用Python语言的相关算法,实现了对三维激光扫描技术采集的足迹图像进行特征提取和识别,有效地避免了传统方法中光照不均匀、目标与背景对比不强、二值化阈值难以确定的不足。
2.对原始数据进行预处理时,将Z坐标数据转换为灰度数据,将目标足迹从背景中分离出来,使得采集到的图像数据更有利于足迹图像的二值化处理。
3.由于足迹采集的过程中各步骤都有引入噪声的可能,因此在进行层次聚类之前,重复交叉地进行图像降噪、足迹图像区域提取的步骤,以得到不同足迹比对效果,并采用合适的算法得到了较优的识别效果。
【附图说明】
图1是本发明足迹图像的处理方法的流程图。
图2是Z坐标数据转化步骤的流程图。
图3是特定算法步骤的流程图。
图4是训练OpenCV库中的Haar特征级联分类器进行足迹识别步骤的流程图。
【具体实施方式】
下面将结合附图以及具体实施方式对本发明作进一步的说明:如图1所示,本发明的一种足迹图像的处理方法,包括如下步骤:
S10.数据采集:采用三维激光扫描仪对足迹进行采集,得到点云数据;
S20.数据预处理:利用数据处理软件对采集到的点云数据进行预处理,保留点云数据中的X、Y坐标数据,将Z坐标数据进行转化加以利用,将颜色信息作为冗余数据去除;
S30.特征提取与足迹识别:根据特定算法进行足迹图像的特征提取和足迹识别。
根据足迹检验的特点,能够用于足迹检验的三维激光扫描仪一般需要满足高精度和便携性两个需求。目前能用于足迹检验的三维激光扫描仪为手持式,性能参数可达到每毫米扫描6个点,X、Y、Z的轴向精度分别达到0.22mm、0.16mm、0.008mm,扫描速度可达到1.2138mm/s,图像分辨率可达1920*1080,全套设备由两组激光器和一组数码成像系统构成。其工作原理为,精密电机在控制系统的驱动下,调节多面反射镜进行微小角度的转动,以完成光栅测角,配合脉冲激光束分别沿X和Y轴两个方向进行扫描。数码相机根据两台激光器得到的结构化光源建立立体投影关系,计算得出足迹的三维数据,并与CCD采集到的RGB数据一起构成一帧原始数据。
采用三维激光扫描仪对足迹进行采集,得到的原始数据称之为点云数据,即足迹在空间中的坐标数据点的集合。数据点包括足迹的每一个像素在X、Y、Z三个方向上的坐标数据,以及该像素的RGB颜色信息。为了进一步进行足迹图像的特征提取和识别,必须使用点云数据处理软件对采集到的点云数据进行预处理,保留关心的信息和去掉冗余的信息。
作为足迹检验的关键步骤,足迹比对更关心二值化后的足迹图像特征,因此需要保留点云数据中的X、Y坐标数据,对于颜色信息则可以作为冗余数据去除。而Z坐标数据可以通过转化加以利用,为了突出作为目标数据的足迹图像,需要进一步将冗余的背景数据以及各种噪声去除。
一种将点云数据中足迹图像数据从背景数据中分离出来的可行的方法为:通过算法找到合适的阈值,即试图找到足迹Z坐标的取值范围,将该范围内的坐标点数据保留,范围外的则去除。之后,对足迹Z坐标数据进一步处理,将Z坐标取值范围对应到0-255灰度区间上,实现将Z坐标数据转换为灰度数据,这样处理后使得采集到的图像数据更有利于足迹图像的二值化处理了。如图2所示,在所述数据预处理时,将Z坐标数据通过如下步骤进行转化:
S21.通过算法计算合适的阈值,找到足迹Z坐标的取值范围,保留该范围内的坐标点数据,去除范围外的坐标点数据;
S22.将足迹Z坐标取值范围对应到0-255灰度区间上,将Z坐标数据转换为灰度数据。
由于采用了三维扫描技术,足迹图像采集过程得到的足迹图像数据更真实地还原了足迹在XY平面上的特征,通过处理Z坐标数据更有效地将目标足迹从背景中分离出来,从而有效地避免了传统方法中光照不均匀、目标与背景对比不强、二值化阈值难以确定的不足。
由于原始足迹提取环境的复杂多样,导致采用不同的图像处理优化算法会得到差别较大的效果,本发明主要采用Python语言实现对足迹特征提取和识别的算法。如图3所示,所述特定算法包括如下步骤:
S31.使用Haar级联进行足迹识别:对整个图像区域进行分割,并通过训练OpenCV库中的Haar特征级联分类器将单个足迹或疑似足迹的图像识别出来;
S32.足迹图像区域的提取:针对不同的足迹图像的特点,采用OTSU算法或Bernsen算法将足迹图像提取出来;
S33.图像降噪:由于足迹采集的过程中各步骤都有引入噪声的可能,因此图像降噪是必不可少的步骤。采用高斯滤波或中值滤波的方式进行图像降噪,在设置过滤器强度后,在OpenCV库中调用函数:
cv.fastNlMeansDenoisingColored(img,None,10,10,10,20)
S34.足迹纹理特征提取:使用mahotas API中的Haralick算法计算足迹图像的纹理特征提取;所述Haralick算法的表达式为:
Mahotas.features.haralick(digits.img.astype(numpy.uint8))
S35.图像二值化与层次聚类:采用全局阈值法或动态阈值法对足迹图像进行二值化,并通过层次聚类合并相似集群以完成足迹分类和比对:
AgglomerativeClustering(n_clusters=NCLUSTERS,connectivity=connectivity);
采用三维激光扫描技术在现场采集到的图像经过预处理后往往仍然是杂乱的,在成片区域中往往混杂了多个足迹和别的非足迹痕迹,这时候需要先对整个图像区域进行分割,试图将单个足迹或疑似足迹的图像识别出来。本发明通过训练OpenCV库中的Haar特征级联分类器来进行足迹识别。如图4所示,通过训练OpenCV库中的Haar特征级联分类器来进行足迹识别的步骤包括:
S311.选择Haar级联特征,创建积分图像并进行Adaboost训练,训练集包括包含足迹图像和不包含足迹图像;
S312.通过级联的分类器逐级逐步过滤掉不包含足迹的区域。
足迹被识别后,需要将足迹图像提取出来,该过程可以使用多种算法来实现,如OTSU算法、Bernsen算法等,针对不同的足迹图像特点,采用合适的算法可以得到较优效果。例如调用OpenCV库的OTSU算法实现:
cv.threshold((cv.cvtColor(img,cv2.COLOR_BGR2GRAY)_),0,255,cv2.THRESH_OTSU)
为了提高比对成功率,通常需要对足迹图像进行二值化,可以采用的方法有全局阈值法和动态阈值法两种。由于不同的足迹图像采集方法引入噪声的情况不同,往往在在进行层次聚类之前,会重复、交叉地进行图像降噪和足迹图像区域提取等步骤,以得到不同足迹比对效果。