当图像分割遇上关键点检测

事情是这样的,我之前通过分割磁共振头部矢状位胼胝体来实现定位线测量功能,但最近发现这种方式存在几个问题:

1胼胝体并不是我们最终想要的结果,最终结果是由胼胝体计算得到的,但我们却不得不承担分割胼胝体带来的性能损失。

2通过分割胼胝体得到的定位线方向过于单一,患者不同的病变可能需要扫描不同的方向。

当图像分割遇上关键点检测_第1张图片

此时此刻,如果读过我之前写的[换个角度看问题]这篇文章的肯定知道我今天要写什么了!没错,就是换个角度,通过关键点检测重新实现定位线测量功能。

先看一下关键点的应用:

当图像分割遇上关键点检测_第2张图片

通过关键点检测,我们要实现的目标:

当图像分割遇上关键点检测_第3张图片

连接不同的关键点,就代表不同的定位线,基于传统的图像处理方法和深度学习都能实现关键点检测,传统方法不在本文讨论范围内,我们主要讨论基于深度学习的关键点检测方法:

2.1基于分类的关键点检测

当图像分割遇上关键点检测_第4张图片

该方法将图像分为足够小的块,含有关键点的块为正样本,其他为负样本,以此来训练一个分类网络;但对于某些图像,例如医疗图像,如果关键点的区分度不高,分类网络的效果并不理想,且图像块只考虑局部信息,并没有从全局角度去看待关键点。

2.2基于回归的关键点检测

当图像分割遇上关键点检测_第5张图片

基于回归的关键点检测目前应用比较广泛,下面分别看一下基于坐标值回归和热力图回归。

2.2.1坐标值回归

当图像分割遇上关键点检测_第6张图片

基于坐标值回归的关键点检测网络,输入图像经过骨干网络提取特征后,例如ResetNet,将输出特征图平铺输入到全连接网络,全连接网络的输出是N个关键点的坐标,维度是N2,N是特征点个数,2代表X,Y两个坐标,如果是三维则是N3,网络的损失函数可以选择均方误差。

下图是网络输出预测结果,红色的代表模型预测输出,绿色代表Ground Truth。

当图像分割遇上关键点检测_第7张图片

2.2.2基于热力图的关键点检测

将关键点建模成热力图,通过像素分类任务,回归热力图分布得到关键点位置。

首先根据标注图像构建高斯热力图,每一个关键点都要生成一个高斯热力图

当图像分割遇上关键点检测_第8张图片

当图像分割遇上关键点检测_第9张图片

为啥要用高斯热力图?

目标点其实很难准确的被某一个像素位置定义的,也就很难被准确的标注。目标点附近的点其实也很像目标点,我们直接将其标为负样本,可能给网络的训练带来干扰,将其用高斯函数做一个“软标注”,网络也就更好收敛。

当图像分割遇上关键点检测_第10张图片

输入图像首先经过骨干网络,例如Resnet,提取特征,这时特征图尺寸小于原图像尺寸,需要恢复特征图尺寸,可以采用上采样或者反卷积,最后通过1*1卷积降维,将特征图维度降到关键点个数N,将输出的特征图与生成的高斯热力图计算均方误差来优化网络参数,基于热力图的方式精度要高于基于坐标值回归的方式,但由于网络输出的结果个数等于关键点的个数,所以如果关键点特别多占用内存大,且速度慢。

你可能感兴趣的:(计算机视觉,机器学习,深度学习,计算机视觉)