2017-06-21 72 views
6

这个问题可能已被回答,但我没有找到一个简单的答案。我创建了一个使用Keras对Simpsons字符进行分类的小网络(dataset here)。
我有20个类,并提供一个图像作为输入,我返回字符名称。这很简单。我的数据集包含图片中带有主要字符的图片,并且只有字符的名称作为标签。使用Keras进行目标检测:快速R-CNN或YOLO的简单方法

现在我想添加一个对象检测问题,即在图片中的字符周围绘制边界框并预测它是哪个字符。我不想使用滑动窗口,因为它非常慢。所以我想过使用更快的RCNN(github repo)或YOLO(github repo)。我是否必须为每个训练集的图片添加边界框的坐标?有没有办法做对象检测(并在我的测试中获得边界框)而不给出训练集的坐标?总之,我想创建一个简单的对象检测模型,我不知道是否有可能创建一个更简单的YOLO或更快的RCNN。

非常感谢您的帮助。

回答

5

yolo或更快rcnn的目标是获取边界框。所以,简而言之,是的,你需要标记数据来训练它。

走了一条捷径:

  • 1)标签包围的箱子极少数(可以说每5个字符)。
  • 2)在非常小的数据集上训练更快的rcnn或yolo。
  • 3)对整个数据集运行你的模型
  • 4)它会得到一些权利,得到很多错误。 5)训练正确有界的训练集,你的训练集现在应该更大。
  • 6)重复,直到你有你想要的结果。
0

您可能心中已经有了合适的架构已经:“现在,我想补充的目标检测问即得出各地的图片字符的边框,并预测它是字符

所以你就分成两个部分任务:
1.添加对象检测器,用于检测人使用你已经受过训练

的convnet对于部分1,你SH返回边框
2.分类边界框通过在顶部使用物体检测器(仍然是YOLO和Faster-RCNN)来检测人物,可以使用特征检测器(例如COCO或Imagenet上预处理的convnet)。 但是,您可能会发现“漫画”(假设辛普森一家是人)的人没有被正确识别,因为特征探测器没有在基于卡通的图像上训练,而是在真实图像上训练。在这种情况下,根据transfer learning方法学,您可以尝试重新训练卡通图片上的几个特征检测器以学习卡通特征。