训练模型以实现 DLib 的面部特征点,例如手的特征点及其特征点

Training a model to achieve DLib's facial landmarks like feature points for hands and it's landmarks

[我是机器学习和 OpenCV 的菜鸟]
以下是结果,即您在应用 DLib 的面部地标模型时获得的 68 个面部地标 here.

它在这个 script that the models was trained on the on the iBUG 300-W 面部标志数据集中提到。

现在,我希望创建一个类似的模型来映射手的标志。我这里有 hand dataset

我没有得到的是:
1.我应该如何在这些位置上训练模型?我是否必须在每张图像中手动标记每个关节,或者是否有优化方法?
2. 在 DLib 的模型中,每个面部标志位置都有一个特定的值,例如,右眉毛分别为 22、23、24、25、26。他们会在什么时候获得这些价值?
3. 在 DLib 的形状预测器 training script 上训练这些图像是否足够,或者我是否也必须在其他框架(如 Tensorflow + Keras)上训练模型?

  1. 我应该如何在这些位置上训练模型?我是否必须在每张图像中手动标记每个关节,或者是否有优化方法?

    -> 是的,您应该全部手动完成。检测手的位置,定义你需要多少个点来描述形状。

  2. 在DLib的模型中,每个面部标志位置都有一个特定的值,例如,右眉毛分别为22、23、24、25、26。他们会在什么时候获得这些价值?

    -> 从学习步骤来看,例如每个手指需要 3 个点,手腕需要 2 个其他点,所以总共 15 + 2 = 17 个点。 取决于您如何定义哪些点属于哪个手指,例如 point[0] 到 point[2] 用于拇指。等等。

  3. 在 DLib 的形状预测器训练脚本上训练这些图像是否足够,或者我是否也必须在其他框架(如 Tensorflow + Keras)上训练模型?

    ->有了dlib,你可以做任何事情。

@thachnb 上面的回答回答了所有问题。

  1. 标签必须手动完成。使用 DLib,Imglab 带有源代码,可以使用 CMake 轻松构建。它允许:
    • 用框标记
    • Annotating/denoting 部分(特征)到对象(感兴趣的对象)例如:面部是一个对象,features/landmark 定位它的部分。

我在研究期间被推荐 Amazon Mechanical Turk 很多次。

  1. 特征在标记时被赋予这些值。在保持一致之前,您可以在这些命名约定中发挥创意。
  2. 由于这里只需要地标/特征点训练,DLib 的预建 Shape Predictor Trainer 在这里就足够了。 Dlib 有非常深入的文档,因此不难理解。

此外,您可能需要一些好的手工数据集资源。以下是一些很好的建议:

希望这对其他人有用。