机器学习和计算器的新手。从照片中进行照明方向估计的机器学习?
最近,我一直在尝试创建一种机器学习算法,根据对象的反射来估计光源的方向。 我知道这可能是一个复杂的主题,这就是为什么,作为第一步,我试图尽可能简化它。
我首先将问题从回归问题转换为分类问题,只将其作为输出:光源位于对象的左侧或光源位于对象的右侧。 我也只为一个角度变化我的数据集。
短版我的问题:
- 你认为这是可以做到这样的事情与机器学习? (我的经验太难以确定了)
- 如果是,那么更适合您的神经网络是什么? CNN? R-CNN? LSTM? SVM?
- 什么是管道来完成这项任务?
我目前使用Unity Engine定向光源,它采用[10,60]/[120,170]和一个带有金属反射的球体之间的随机X角来创建和标记数据集。下面是一个例子:
https://imgur.com/a/FxNew标签:0(左侧)
https://imgur.com/a/9KFhi标签:1(右侧)
对于前处理:
- 图像被调整为64x64图像
- 从RGB转换为灰度格式。
对于机器学习,我目前使用tensorflow和使用卷积神经网络:
10000平衡,标记的64×64的灰度图像作为输入,并作为0/1标签
数据
3卷积层用滤波器[16,32,64]与大小[5,5] RELU
- 3池层用大小[2,2]和步幅[2,2]
- 1 1024个隐藏神经元和差(速率= 0.4)RELU致密层
- 1与2个输出神经元(1为每个类)使用SoftMax
至于问题致密层:我的网络根本就不是学习损失几乎没有下降,准确性表明,好的结果是随机的,无论数据,层数,优化器,学习率,......我的输出在两个类别之间只是平均值[0.5,0.5]。
我的猜测是,这个问题比我第一次想到的更复杂,我的数据并没有给出我的预测应该是什么的好暗示,而是我应该培养一个网络来检测物体上的反射点然后使用对象中心和点之间的方向。我对吗 ?
另一种猜测是卷积层没有考虑位置,因此对于卷积部分来说,所有图像都是相同的,因为球体总是相同的,以及照明模式。它会始终检测到相同的事物,并且不会考虑到光照区域已经移动。你有什么建议,我可以用哪个网络来解决这个问题?
我真的在寻找一些建议,警告如何解决这类任务。 请记住,我仍然是相当新的机器学习和仍然学习比我的机器嘿嘿...
谢谢。
非常感谢@Maxim的帮助,数据错误标签是问题(请参阅我的回答...),我对此感到非常愚蠢,但是,这就是你如何学习嘿嘿。也感谢你的提示,它帮助我完善了我的网络。祝你好运,并看到你 –
@MarcRavaine太棒了!不要为这个错误感到难过,它会发生在每一位工程师身上,特别是当API是新的和陌生的时候。 – Maxim