c语言sscanf函数的用法是什么
323
2022-09-20
手骨关键点检测案例
关键点检测应用有很多,在医学上比如手骨关键点检测,膝关节关键点检测等。今天我就以手骨关键点检测为例,通过卷积神经网络来实现检测。
1、关键点检测的常见两种深度学习方法
关键点检测的最终任务是输出预测关节点位置的坐标,目前关键点检测主要有两类方法(1)、用卷积神经网络+全连接层直接回归坐标点(坐标值回归);(2)、在坐标位置处加高斯函数生成热力图,让卷积神经网络输出预测热力图,训练后者与前者接近(热力图回归)。
这两种方法各有优缺点:方法1直接让网络输出坐标来进行优化学习是一个极其非线性的过程,网络需要自行将空间位置转换为坐标。而方法2坐标热力图实际上构造了一个中间态,因为关键点其实很难准确地被某一个像素位置所定义,其实目标点附近的点也很像目标点,坐标上加上高斯图,相当于对坐标进行了“软标注”,让网络更好收敛,高斯热力图中距离目标点越近,激活值越大,这样网络能有方向的去快速到达目标点。但是方法1是一个端到端的训练过程,而方法2不是端到端的训练过程,还需要在热力图的基础上求最高激活值的位置来得到关键点坐标
在之前的文章中我分享过关键点检测的案例Tensorflow入门教程(十八)——特征点检测案例,当时采用的是卷积神经网络直接对关键点坐标进行回归,但是今天将采用方法2高斯热力图回归来检测关键点。
2、关键点检测网络
大家看过我之前的文章,肯定对UNet模型已经非常熟悉了,其实VNet模型可以看做是从UNet模型演变过来的,网络模型结构如下所示。该结构出自2016年发表的一篇论文《V-Net:Fully Convolutional Neural Networks for Volumetric Medical Image Segmentation》,我这里就不多说了。采用2dVnet网络来进行关键点检测。
3、数据处理
采用的数据是x-ray手骨图像,关键点是以坐标形式存储的。首先加载图像和坐标,并将图像和坐标重新设置到网络输入的指定大小(512x512),然后以坐标点为中心,生成高斯热力图,注意这里每一个关键点就是一个通道的高斯热力特征图,手骨关键点一共有37个,所以一共生成37个高斯热力特征图。如果所示为手骨图像和部分关键点的高斯热力特征图。
4、结果
下面是模型训练时损失函数变化的情况。
在数据上进行测试,所有关键点的高斯热力特征图的金标准和预测结果结果如下所示。
如果大家觉得这个项目还不错,希望大家给个Star并Fork,可以让更多的人学习。如果有任何问题,随时给我留言我会及时回复的。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~