自动图像配准与MATLAB
作者:加里玛·沙玛和安迪Thé, MathWorks
图像配准是将来自两个或多个数据集的图像对齐的过程。它包括整合图像以创建复合视图,提高信噪比,并提取不可能从单个图像中获得的信息。图像配准用于遥感、医学成像、制图和其他依赖于从图像中获取精确信息的应用程序,例如,从卫星图像中发现一个区域如何被淹没,或从MRI扫描中检测肿瘤。
确定一种有效的图像配准方法取决于情况,可能是一个复杂和耗时的过程。它需要仔细选择一个点转换模型,以提供图像之间的参考点,以及一种比较信息的方法,以确定正确对齐图像所需的参数。
在自动图像配准的过程中有两种众所周知的方法:基于特征的配准算法和基于强度的配准算法。在本文中,我们将使用一个发烧检测的例子来说明一个基于强度的自动图像配准工作流imregister ()
以及图像处理工具箱™中的相关功能。该工作流程是一种快速有效的方法来整合来自不同相机的图像。
图像注册术语
参考(固定)图像:图像的目标方向,指定为2D或3D灰度图像
目标(移动)图像:要转换为与参考图像对齐的图像,指定为2D或3D灰度图像
灰度注册:根据图像的相对强度模式对图像进行对齐
基于功能的注册:利用特征检测、提取和匹配对图像进行对齐
发烧检测示例:目标和挑战
在2003年严重急性呼吸系统综合症(SARS)爆发期间,台湾桃园国际机场开始对乘客进行发烧症状筛查,以遏制这种致命病毒的传播。由于不可能对每位乘客进行单独检查,临床医生使用了红外热成像技术,这是一种通过分析热数据的红外图像来检测发烧的非侵入性技术。
虽然这种方法是有效的,但实现起来可能具有挑战性。红外摄像机对环境条件极其敏感,必须正确校准,以考虑所有可能影响温度读数的因素,包括环境室温、相对湿度、反射表面和被摄对象与摄像机的距离。有效的热筛查还依赖于能够产生可靠热信息的身体部位的一致识别——在我们的例子中,就是眼睛周围的区域。
我们将使用MATLAB构建一个筛选热成像原型®一个前视红外(IR)摄像机和一个网络摄像头。红外摄像机可以测量100毫开尔文的面部温度,而网络摄像机可以提供更详细的面部特征信息。通过注册来自两个来源的图像,我们将能够从网络摄像头图像中检测眼睛周围的位置(图1),并从红外摄像头图像中测量眼睛周围的温度。
红外摄像机图像的获取与标定
使用图像采集工具箱™,我们从网络摄像头和红外摄像机捕获图像,并将它们导入MATLAB工作区。红外摄像机使用GigE Vision®接口,而网络摄像头使用标准的DirectShow®接口。
为了校准红外相机,我们调整主体距离、湿度、发射率(表面辐射热量的相对功率)和其他特性。在图像采集过程中,大气温度为295.15K,墙面与受试者的发射率为0.98。
图像可视化
我们使用imshow ()
图像处理工具箱中的函数。因为我们捕获了16位数据,其中实际温度读数以100 mK为增量进行测量,所以在显示器上显示图像之前,我们执行对比度调整以缩放数据(图2)。
我们在同一个图形窗口中使用imshowpair ()
.
此函数提供了几个可视化选项,包括“falsecolor”
,用于创建使用不同颜色带的复合RGB图像,以及“混合”
,用于可视化alpha混合图像(图3)。
注册映像
我们通过指定红外图像为固定图像和网络摄像头图像为运动图像开始配准过程。固定的图像是静态的参考。我们的目标是将运动图像与固定图像对齐。由于基于强度的图像配准算法需要灰度,我们使用彩色网络摄像头图像转换为灰度rgb2gray ()
.
为了对齐图像,我们使用图像处理工具箱imregister ()
函数。除了一对图像之外,基于强度的自动图像配准还需要一个度量、一个优化器和一个转换类型。我们得到“指标”
而且“优化”
值使用imregconfig ()
与“多通道”
选择。然后将返回值插入imregister ()
作为图像配准的起点。
要开始注册过程,我们使用imregister ()
默认转换类型“翻译”
调用来查看结果imshowpair ()
.两幅图中受试者的轮廓有点不对齐(图4)。头部和肩部周围图像之间的间隙表明缩放和旋转都有问题。
请注意,从基于优化的图像配准中获得良好的结果通常需要对优化器和度量值进行多次修改。还要注意的是imshowpair ()
在它的默认模式下,对于我们示例中的图像工作得很好,但它可能不适用于所有图像对。最好是探索所有的可视化风格imshowpair ()
,例如“falsecolor”
,“差异”
,“混合”
,“蒙太奇”
,以识别特定图像对的最佳图像。
为了考虑尺度和旋转失真,我们切换变换类型imregister ()
从“翻译”
来“相似”
.
我们现在有了一个相当精确的配准图像,其中眼睛紧密对齐(图5)。
绿色和洋红色区域的存在是因为图像来自不同的来源。它们并不表明登记错误。
探测眼睛,读取温度
为了检测眼睛,我们使用计算机视觉工具箱™中的级联对象检测器。该物体检测器使用Viola-Jones算法,该算法使用haar样特征和多级Gentle Adaboost分类器检测眼睛。然后,我们在眼睛附近绘制一个边界框,以突出显示注册图像上感兴趣的区域。
因为我们已经注册了图像,所以我们可以使用摄像头图像中眼睛周围的包围框来采样红外图像中眼睛附近的温度值。使用这个读数,我们将温度测量值从毫开尔文转换为华氏度,然后在注册图像上显示它在眼睛附近。我们看到受试者没有发烧(图6)。
发布于2013年9月1日