深入学习手部检测

时间:2017-06-12 04:21:03

标签: neural-network computer-vision deep-learning conv-neural-network

如何使用深度学习进行手部检测。是否有任何关于使用深度学习的手部检测的文章或教程或任何相关链接。请告诉我。手检测的方法或步骤是什么

1 个答案:

答案 0 :(得分:6)

虽然问题可能很广泛,但有一个非常高层次的合理答案。

您可能获得的最大成功可能是通过微调预先训练的图像分类卷积神经网络模型,如VGG16,Inception,VGG19或ResNet。

对于这种情况,您可以使用Python,VGG19和Keras。您可以在这里为Keras购买预先培训的VGG19型号。

https://gist.github.com/baraldilorenzo/8d096f48a1be4a2d660d

首先,收集尽可能多的手的图像(2000年将是一个非常可靠的数字开头),以及接近相同数量的非手部图像,并将它们放入各自的目录中。预处理图像,使它们都是224x224像素。这是VGG19预训练模型所必需的。

接下来,您需要微调模型。您可以在链接中找到详细信息,但要点是从最终的1000个节点完全连接的层中弹出,并替换为包含手部和非手部图像类别的2节点完全连接层。

https://flyyufelix.github.io/2016/10/03/fine-tuning-in-keras-part1.html

将图像导入numpy数组,其中每个图像由50176维向量表示。实际上,您可以创建一个包含50176行和图像数量的矩阵。

此外,为您的标签创建二维单热矢量,其中[1 0]用于手部图像,[0 1]用于非手部图像。

通过抓取VGG19中Keras模型对象的参考,将数据拟合到预先训练的模型中。

model.fit(image_data, one_hot_labels, epochs=10, batch_size=32)

我不会详细介绍epochs,batch_size,验证数据等,但是您希望确保密切关注验证数据的预测效果,它通常是预测测试精度的下降预测因子训练模型。您可以使用evaluate函数获得准确度分数。

model.evaluate(image_validation_data, validation_labels, batch_size=32)

一旦训练模型并且验证准确性合理,您可以使用预测函数来测试您是否有手部图像。

model.predict(test_images, batch_size=32, verbose=0) 

有关更多信息,我强烈推荐fast.ai课程。

有关卷积神经网络的更详细解释,所有数学和理论,斯坦福大学的CS231n课程都是必须的。