迁移学习问题:扩展多姿态估计机器学习模型的功能?

数据挖掘 Python 张量流 火炬 模型选择 迁移学习
2022-02-15 22:37:07

我已经尝试了许多用于姿势估计的不同机器学习模型。它们中的大多数为图像中检测到的人输出热图和偏移量。我真的很喜欢这里的多姿态估计模型的性能/准确性

我接下来想做的是创建一个类似于这个的模型,除了它应该标记检测到的人的每个姿势。有多种不同的实现caffe/pytorch/tensorflow可供选择。我已经考虑过如何解决这个问题,并且我想到了几种不同的方法:

  1. 创建一个全新的机器学习模型,并使用姿态估计模型的标记输出对其进行训练。
  2. 更改或向机器学习模型添加层以更改输出。(不知道这是怎么做到的)
  3. 抛弃姿势估计模型并训练一个新模型来直接使用裁剪人的原始图像/标签进行估计。这将依赖于另一种方法来检测每个人。

我想在这里走阻力最小的道路,但我也关心收集/处理数据所需的时间,最重要的是模型的准确性/性能。是否有经验丰富的机器学习/数据科学家回答以下问题?

  • 我应该采取哪种方法?优点缺点
  • 哪个机器学习库提供了执行此操作的功能。
  • 我的假设是选项 1 或 2 会比选项 3 更准确。我正确吗?
1个回答

我曾研究过类似的物体检测问题。所以,我的建议是迁移学习

i) 最佳方法是使用迁移学习。它使我们能够以节省时间的方式构建准确的模型。使用迁移学习,您无需从头开始学习过程,而是从解决不同问题时学到的模式开始. 通过这种方式,您可以利用以前的知识,避免从头开始。

预训练模型是在大型基准数据集上训练的模型,用于解决与我们想要解决的问题类似的问题。因此,由于训练此类模型的计算成本,通常的做法是从已发表的文献(例如 VGG、Inception、MobileNet)中导入和使用模型。

迁移学习中使用的几个预训练模型基于大型卷积神经网络 (CNN)。

当您根据自己的需要重新调整预训练模型的用途时,首先要删除原始分类器,然后添加适合您的目的的新分类器,最后您必须根据三种策略之一微调您的模型:

1.Train the model.
2.Train some layers and leave the frozen.
3.Freeze the convolutional base.

迁移学习过程的方法:

1)Select a pre-trained model.
2)Classify your problem according to the Size-Similarity Matrix. 
3)Fine-tune your model.

ii) Tensorflow 提供了一个名为PoseNet的视觉模型。

PoseNet 是一种视觉模型,可用于通过估计关键身体关节的位置来估计图像或视频中人的姿势。从这里您可以冻结模型并对其进行微调。orelse 你可以使用其他预训练的图像模型(例如 mobilenet 、 resnet)。

iii)直接从原始图像中进行的估计首先要求您识别或检测人,因此它依赖于另一个模型。