使用Keras进行物体检测:更快的R-CNN或YOLO的简单方法

时间:2017-06-21 22:27:08

标签: deep-learning classification keras object-detection

这个问题可能已得到解答,但我没有找到一个简单的答案。我使用Keras创建了一个回旋网来对“辛普森一家”字符进行分类(dataset here) 我有20个类并给出一个图像作为输入,我返回字符名称。这很简单。我的数据集包含图片中主要字符的图片,并且只有字符的名称作为标签。

现在我想添加一个物体检测请求,即在图片中的字符周围绘制一个边界框并预测它是哪个字符。我不想使用滑动窗口,因为它真的很慢。所以我考虑使用更快的RCNN(github repo)或YOLO(github repo)。我是否应该为训练集的每张图片添加边界框的坐标?有没有办法在没有给出训练集的坐标的情况下进行物体检测(并在我的测试中得到边界框)?

总而言之,我想创建一个简单的对象检测模型,我不知道是否可以创建更简单的YOLO或更快的RCNN。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:13)

yolo或更快的rcnn的目标是获得边界框。简而言之,是的,您需要标记数据以进行训练。

快捷方式:

  • 1)标记一些边界框(假设每个字符5个)。
  • 2)在非常小的数据集上训练更快的rcnn或yolo。
  • 3)针对完整数据集运行模型
  • 4)它会得到一些正确的,很多错误。
  • 5)训练更快的rcnn对正确有界的rcnn,你的 训练集现在应该大得多。
  • 6)重复,直到获得理想的结果。

答案 1 :(得分:4)

您可能已经考虑过了一个合适的架构:“现在我想添加一个对象检测问题,即在图片中的字符周围绘制一个边界框并预测它是哪个字符。

所以你只需将任务分成两部分:
 1.添加用于人物检测的物体检测器以返回边界框
 2.使用您已经训练过的信封来分类边界框

对于第1部分,您最好使用特征检测器(例如在COCO或Imagenet上预先训练的一个预先确定的陀螺),并在顶部使用物体检测器(仍为YOLO和Faster-RCNN)来检测人物。 但是,您可能会发现“漫画”中的人(假设辛普森一家是人)没有被正确识别,因为特征探测器不是基于卡通图像而是基于真实图像的训练。在这种情况下,您可以尝试重新训练卡通图片上的几层特征检测器,以便根据transfer learning方法学习卡通特征。