基于3D点云深度学习对蝶窦进行身份认定
2021-07-02文瀚杰
文瀚杰
(四川大学视觉合成图形图像技术国防重点学科实验室,成都610065)
0 引言
身份信息确认,在日常的刑事领域和灾难调查中是至关重要的一个环节。因此,个体身份认定在法医学领域长久以来一直是研究的重心。目前已经有了很多成熟的方法对身份未定的个人进行身份识别,例如大家耳熟能详的指纹识别[1]、DNA检测分析[2]、齿科对比检验[3]、纹身对比[4]等方法。
但是这些方法在一些特殊情况下却难以奏效。例如在生物组织被破坏、丢失,或因耗时耗力,成本极高而难以实现。在某些案件或者灾难中,因为尸体出现腐败、白骨化,或者已经被周围的环境进行了污染,那么常规的方法就会束手无策。在这种情况下,通过对比生前或者死后的影像学资料进行个体识别被认为是一种行之有效的替代方法。国内这方面的研究不多,在国外,Beaini,T.L等人[5]就通过计算机技术利用人头骨内的额窦部位对人的身份进行了识别认定。与额窦类似,人体头颅中的蝶窦部位其解剖和生物学特征具有一定的特异性。尽管蝶窦气化发育过程尚未形成统一的认知,但是普遍认为成人以后其大小、形态,在正常的生理状态下基本保持稳定。
过往的研究已经证实,蝶窦在小范围进行主观视觉对比具有极好的可靠性和有效性[6]。但是,但是既往的研究通常是基于人工提取影像特征进行比较,需要经验丰富的阅片者人工识别、提取、分类,主观性强,当面对大样本时人工识别方法费时费力,限制了人工视觉比较进行识别的应用。
随着医学图像处理技术的发展,以及对于薄层CT断层图像的开发。使用薄层CT断层图像进行三维重建来获取蝶窦的三维结构成为可能。如果将蝶窦的三维形状通过相应的技术提取出来,并且应用计算机视觉、三维识别、深度学习等技术对于蝶窦的三维进行识别和分析。或许能够实现自动化的个体识别,减少识别的时间,增加识别的准确性,进一步拓展深度学习的适用范围,增加身份识别认定的方法,提高效率。
基于此,本文利用蝶窦的三维结构,应用三维点云深度学习方法,对于蝶窦的三维特征进行提取,并且进行身份认定,验证了这种方法的可行性和适应性。
1 材料与数据
1.1 材料来源
本实验主要采用基于脑部薄层CT断层图像的三维蝶窦模型进行实验。其提取出来的蝶窦三维模型如图1所示。蝶窦是位于人体头骨内,蝶骨体内不规则的气腔结构,发育较缓慢,气化程度变异很大。相比较额窦而言,蝶窦其解剖位置较深,难以被常规方法触达。所以其不容易受死亡因素及外界环境因素的影响,在特殊情况下,其形态结构更易保存完整。为了实现身份的同一性认定,模拟灾难发生后的身份认定情景,每位研究对象至少收集了不同时期两次薄层CT断层图像。
图1 蝶窦三维模型(女性)
蝶窦数据稀少,只存在于脑部薄层CT断层图像中,为了尽量提高深度学习的泛化效果和相应的准确率,本实验收集了尽可能多的实验数据。一共收集了120人的数据,包含薄层CT断层图像一共240份。本次数据收集范围排除了18岁以下的未成年人,任何一个含有可能影响蝶窦发育的疾病对象、外伤对象、手术对象都被排除在外,图像清晰且不存在伪影。所有数据均取自四川大学华西医院,全部数据按人打标签进行分类。取出100人用作深度学习网络的训练,20人用作深度学习网络的测试。每个对象至少包含两次薄层CT断层图像用作提取蝶窦三维模型
1.2 数据处理
对于每一个薄层CT断层图像,将其导入对应的医学图像处理软件,通过医学图像处理软件对薄层CT断层图像中的蝶窦窦腔进行三维重建。利用软件中的气体在CT断层图像上的灰度差异,利用分布在不同位置的识别点、分割气腔、重建蝶窦处窦腔的完整形态,并将其以STL格式导出,一共导出了240个三维蝶窦模型,每个实验对象包含两个,归属于不同时期。
然后通过对应的程序将STL格式转换成存储点云的PCD格式。这一步操作从STL格式转换到PCD是无损的,是相同数据的不同的存储形式,所以并不会对三维蝶窦形状和大小造成影响,进而影响实验结果。具体的转换过程如图2所示。首先将a中DICOM格式的薄层CT断层图像,通过医学处理软件转换成b中的STL格式的三维蝶窦模型,然后通过程序将三维蝶窦模型转换成PCD格式存储的点云数据,以三维坐标x,y,z存储,如c所示,这是蝶窦三维模型的点云展示。蝶窦三维模型经过转换成点云数据以后,由于其蝶窦模型复杂程度不一,大小不一,所以其点云数据的点数并不相同。所以,还需要经过下采样处理,如d中所示,是经过下采样以后的蝶窦点云数据。将蝶窦的点云数据通过下采样算法统一到相同的点数以后,进行深度学习实现身份认定。
图2 蝶窦数据转换过程
2 算法实现
2.1 网络选择与识别流程
蝶窦是人体头骨复杂的一部分,其局部特征差异大,模型表面具有褶皱和相应的凸起,所以点云数据模型的特征学习具有挑战性。Point-Net++[7]相比较它的上一个版本而言,提出了多层级特征提取结构,并且利用上一个版本的主网络作为特征提取器,加强了局部特征感知能力,使得网络的分类和分割效果相比之前的网络得到了巨大的提升。并且针对不均匀点云数据的挑战,增加了密度自适应层,提升了相应的鲁棒性和应对稀疏点云的能力。根据Point-Net++以上的优势,为了更好地提取蝶窦点云数据的特征和提升识别效果,本实验选择Point-Net++深度学习网络,作为复现对象,来当作点云数据的特征提取器。
整个实验流程如图3所示。首先将原始的DI⁃COM格式的头骨薄层扫描CT通过软件导出蝶窦的三维模型,然后将蝶窦的三维模型,通过相应的程序将蝶窦的三维模型转换成点云数据并进行预处理。然后搭建Point-Net++模型,将100个实验对象的蝶窦模型按人分类进行分类训练。随后将训练好的模型当作特征提取器,将最后一层分类网络层前的全连接层视作特征提取层,输入测试模型提取特征。最后通过比对模型提取的特征实现身份认定,相似度的对比方法采用的是余弦相似度算法。
图3 实验流程
2.2 数据扩增与训练
现有的数据比较稀少,相比较现有成熟的图像识别巨大数据集而言,是十分稀少的。所以为了解决这个问题,本实验采用与图像识别类似的方式对于放入的点云数据进行扩增,主要采用放大、旋转、平移、缩小等方法进行数据快速扩增,增强模型提取特征的能力,并且增加鲁棒性和泛化性。相应的数据扩增效果展示在图4。其中a是原蝶窦点云数据,b是a经过平移和缩小(0.5)以后的点云数据,c是a经过平移和旋转(绕着X轴旋转180°,绕着Y轴旋转90°)以后的点云数据,d是a经过平移和放大(1.4)以后的点云数据。
图4 蝶窦点云数据的不同扩增方式
经过随机数据扩增以后,蝶窦模型被输入Point-Net++网络进行特征提取能力的学习。本实验设备基于Windows 10平台,显卡为NVIDIA GeForce RTX2080,CPU为Intel Core i7-8700。本实验框架使用了PyTotch 1.2.0深度学习框架,采用了VTK 8.1对点云进行了转换,利用了PCL 1.9.1对点云进行了数据预处理,随机数据扩增采用自己写的程序,在数据输入阶段随机增强。
训练过程Batch Size设置为12,优化算法设置为Adam,初始学习率为0.001,输入点数为2048,当训练Loss达到最低的时候停止。学习Decay Rate设置为0.0001,测试集包含20人,共40个蝶窦模型。采用准确率评价指标,将数据集划分为基准集和对比集。每个人两个模型分别随机平均划入基准集和对比集,每个基准集和对比集分别包含20个模型。进行测试时,将所有模型通过训练的网络进行特征抽取,将基准集中的每一个模型拿出来与对比集中的20个模型分别对比,并进行相似度排序,如果对比集中相似度最高的模型与基准集中的基准属于同一个人,则身份认定成功,按其相似度排序进行准确率认定,排第一其Top1准确率增加对应的数值,以此类推。
3 结果与讨论
100个人的训练集在310epoch时达到最优,这时训练的Loss为0.012,训练分类准确率为89.58%。通过对比其余弦相似度,我们得到20个人的测试集Top1准确率为100%,Top3准确率为100%。其特征相似度的heatmap展示如图5所示。
图5右侧是20个人的Heat Map,从左上到右下可以看到一个非常明显的白色的线。说明在同一个人的时候,其特征相似度是非常高的,具体的数值可以从左侧的10个人的Heat Map看出,同一个人的相似度基本在97%以上,不同的人相似度却很低。从图5可以看出网络提取特征的能力非常强,不同人之间的特征差异很大。
图5 Heat Map
4 结语
本次研究中,尽管测试集上效果很好,达到了100%,但是这仅仅是在测试集20人上面的相似度,在这真实世界中,是非常小的数据集。所以在实际应用中,该方法的识别率并没有足够的参考。但是通过本方法,证明了通过蝶窦进行深度学习来实现身份认定的可能性。可以预见的是,随着数据量的增大和网络模型结构的完善,这一方法肯定具有应用价值,可以为法医实践提供对应的思路。