我想知道是否可以使用由Kinect生成的手势数据集来重新训练Inception的最后一层,就像TensorFlow教程网站上提到的那样使用普通的RGB图像。我在这个领域是新手,非常欢迎大家的意见。
回答:
简短的回答是“不能。你不能只微调最后一层。但你可以微调整个预训练网络。”预训练网络的前几层是在寻找RGB特征。你的深度帧几乎无法提供足够的熵来匹配这些特征。你的选择是:
-
如果识别的/跟踪的对象(手)没有被遮罩,并且你有背景的实际深度数据,你可以从头开始训练深度图像,并进行对比度拉伸和数据白化处理((x-mu)/sigma)。这对于像Inception和ResNet这样的顶级网络来说会花费很长时间。另外,请记住,大多数基于Python的深度学习框架依赖于PIL图像加载器,默认假设图像是8位通道,映射在[0, 1]范围内。这些图像加载器会将所有16位像素转换为8位像素。
-
如果识别的/跟踪的对象(手)被遮罩,这意味着你的背景设置为相同的值或几乎没有梯度,网络会过度拟合对象的轮廓,因为这是最强的边缘所在。解决方案是使用法线图、HSA、HSV、JET颜色编码对深度图像进行着色,将其转换为3×8位通道图像。这使得训练收敛得更快,在我最近的实验中我们发现你可以对着色的深度图像进行顶级网络的微调。