使用 OpenCV 从谷歌街景中检测路灯

Pet*_*tru 5 python opencv computer-vision google-street-view

我正在尝试使用 OpenCV 从 Google 街景中检测路灯。

现在作为样本,我有 2000 张正图像,但只有 1200 张的比例大致相同,所以我仅使用它进行训练。

还有另外 2300 张负片图像。

正面图像示例: 路灯 路灯 路灯 路灯 路灯

我尝试将它们采样到不同的大小,并训练它们,但现在当我用这样的图像进行测试时,检测效果非常差: 测试图像[6]

根据detectMultiScale参数,我要么得到很多矩形,包括灯,要么得到一些矩形,但不包括实际的灯。

在训练中,我主要修改高度和宽度参数,参数示例:(200, 10) (150, 30),(120, 30)。我也尝试将算法从 LBP 更改为 HAAR,但结果相似。

  1. 你认为我需要超过 1000 个阳性样本吗?

  2. 在创建矢量文件之前我应该​​进行任何额外的预处理吗?

  3. 您知道我应该更改哪些参数才能使其正常工作吗?

  4. OpenCV 是否可以检测谷歌街景图像中的灯?

Sne*_*ear 2

将您的样本更改为周围有少量天空的灯(因为我认为这将有助于特异性而不是裁剪灯)。

如果灯柱对您很重要,找到一盏灯后,请进行二次搜索以找到附在其上的灯柱(或者如果没有)。寻找从找到的灯发出的一条线,并将其追踪到地面。在大多数这些图像中(我想象大多数场景),只有一条清晰的线条(柱子)来自光线。您可以使用某种形式的颜色/定向传播来跟踪柱子的各种曲线和拐角。

  • 谢谢,我仍在剪切图像,如果可行的话我会确认答案 (2认同)
  • 我成功地对灯部件进行了良好的检测,但只能使用 Tensorflow 对象检测 API。谢谢 (2认同)