关键点检测,作为计算机视觉领域的重要分支,旨在识别图像或视频中具有特定意义或信息的关键点。如人脸上的鼻子,眼睛,或是关节等。在神经网络中,用于关键点检测的卷积神经网络(Convolutional Neural Networks, CNNs)有许多出名的模型。从DeepPose开始,直到现在的先进方法,形成了丰富的历史脉络。
在我第一节笔记里,我展示了如何标注关键点数据,从实战入门,其笔记是关键点检测(1)——标注关键点检测数据(labelme和CVAT)-CSDN博客。而这一节课,我打算先简单了解一下其发展历史,并做一个笔记。可能个人在网上寻找的资料并不全,自己的经验也并不丰富,所以所记录的也不全面,如有错误请指正,谢谢。当然随着我笔记内容的深入,我会继续完善这一节课的内容。争取让看到我这篇笔记的同学也对关键点检测的历史有一个浅浅的认识。
1,深度学习之前的关键点检测思路
在深度学习兴起之前,关键点检测主要依靠手工设计的特征和机器学习算法,如SIFT、SURF、HOG等特征描述子,结合滑动窗口和分类器如SVM进行检测。这些方法在特定条件下有效,但在复杂场景和变化光照下性能受限。
角点检测:早期的关键点检测方法主要集中在角点的检测上,如Harris角点检测器和Shi-Thmasi角点检测器。这些方法依赖于图像局部的梯度信息来检测角点。
SIFT(尺度不变特征变换):SIFT是一种经典的特征提取和匹配算法,通过在不同尺度和方向上寻找极值点来检测关键点,并提取描述符用于匹配。
SURF(加速稳健特征):SURF算法是SIFT的一种加速版本,通过积分图像和快速Hessian矩阵检测关键点,提高了计算效率。
FAST(特征点检测器):FAST是一种快速的角点检测算法,适用于实时应用,但对于光照变换和视角变化敏感。
HOG(方向梯度直方图):HOG特征描述符广泛应用于行人检测等任务,通过统计图像局部区域的梯度方向直方图来描述特征。
2,DeepPose(2014):最早使用深度神经网络进行人体姿态估计
- 里程碑意义:DeepPose是首个将深度神经网络应用于人体姿态估计和关键点定位的框架,将姿态估计视为回归问题,直接输出关键点坐标。
- 技术突破:引入了级联的网络结构,通过多个阶段逐步细化关键点的位置,提高了检测精度。
DeepPose是一种使用深度学习技术进行关键点检测的方法,特别应用于人体姿态估计。它是最早使用卷积神经网络(CNNs)来解决人体姿态估计问题的模型之一,由Shih-En Wei等人在2016年提出。DeepPose的主要目标是预测人体关节点的位置,这对于动作识别、人机交互、虚拟现实等应用至关重要。
DeepPose的基本思路是将人体姿态估计问题视为回归问题,其中网络直接预测人体关节的二维或三维坐标。具体来说,DeepPose模型接收一张输入图像,并输出一系列坐标,每个坐标代表一个特定的人体关键点,如肘部、膝部、腕部等。
为了实现这一点,DeepPose采用了多层卷积神经网络(CNN),这种网络能够从图像中提取复杂的特征。CNN的输出被送入全连接层,最后输出每个关键点的坐标。训练时,模型通过最小化预测坐标与真实坐标之间的距离(通常使用均方误差损失)来进行学习。DeepPose的模型如下,包含了七层Alexnet和额外的回归全连接层,输出为2*关节点坐标数目,表示二维图像中的坐标。而且作者针对当前浅层CNN学习到的特征尺度固定,回归性能差的问题,将网络得到的粗分回归(x, y)坐标保存,增加一个阶段,在原图中以(x, y)为中心,剪切一个区域图像,将区域图像传入CNN网络学习更高分辨率的特征,进行较高精度的坐标值回归。
即通过级联提高精度:第一级以全身图像为输入,预测所有关键点坐标,位置精度较低。
第二级以每个预测点为中心,裁剪局部图像送入第二级网络,再次回归该点,提升精度。
DeepPose的创新点:
- 1,端到端学习:DeepPose可以端到端的学习从输入图像到关键点坐标的映射,而不需要人工设计特征。
- 2,回归而非分类:与许多早期姿态估计方法不同,DeepPose不使用热力图或关键点的分类,而是直接回归关键点的坐标,这在当时是一个新颖的策略。
- 3,灵活性:DeepPose可以处理不同视角和复杂背景下的姿态估计,而且可以扩展到三维空间中的姿态估计。
虽然DeepPose开创了姿态估计领域的新篇章,但是他也存在一些局限性。例如,他可能在关节重叠或遮挡的清空下表现不佳,因为网络难以区分被遮挡的关键点。此外,由于它直接回归坐标,可能会收到坐标表示的局限极小值问题的影响。后续的研究者提出了多种改进方案,包括使用热力图、多任务学习、循环神经网络(RNNs)以及更深层次的CNN架构,以提高姿态估计的准确性和鲁棒性。
总之,DeepPose是姿态估计领域的一个重要里程碑,它展