建议用于卫星图像中目标检测的CNN框架?

时间:2018-06-21 21:36:16

标签: python keras object-detection convolutional-neural-network satellite-image

我正在寻找在大型卫星场景中探测船只的方法。我已经成功地将matterport's Mask-RCNN setup应用于卫星图像的一小部分,但是分析WorldView之类的大图像太慢了。我正在寻找一种可以做边界框的快速工具,它是用python编写的,在Keras中实现的,并且经过了理想的优化(或有据可查,因此我可以对其进行优化)以用于卫星图像。有什么建议吗?

我找到了一些有前途的线索:

我可能会根据YOLT论文的建议尝试针对卫星图像定制RetinaNet in Keras的此实现,但会喜欢其他建议!

3 个答案:

答案 0 :(得分:0)

我很惊讶没有这个问题的答案。我也在寻找建议的框架。

在这项工作中,我发现了马克·贝尔蒙特(Marc Belmont)利用Tensorflow,Numpy和Pandas的链接,并认为我会在此处发布:https://github.com/marcbelmont/satellite-image-object-detection

答案 1 :(得分:0)

嗯,这不是一个容易回答的问题。 Tensorflow OD model zoo可以让您感觉到它们的反应时间,在其他地方,您会发现YOLO每秒获得的帧数比SSD快于Faster RCNN的帧数。

要清楚:这种类型的网络是较小的,更特定的网络的组合。它们通常以“编码器”网络(例如vgg或resnet)开始。接下来发生的事情随一个对象检测模型的不同而变化,确切地说,发生什么发生在什么地方,这是您要非常关心自己的事情。例如:在这一点上,与Faster RCNN相比,SSD对小型盒子对象的准确性降低,但往往要快得多。或者,班级出现的频率如何分布?如果需要对类别进行加权,则在体系结构的中间部分需要考虑到这一点。此外,您是否愿意牺牲时间进行图像分辨率(请访问Nasnet)?

基本的目标检测神经网络易于制造,但是高性能的特定于应用模型必须解决此类问题。真的很难在不了解您的输入数据(分辨率,帧中对象大小,num类等)的情况下多说些什么,但是我希望能有所帮助。凭直觉,我猜这将是小物体,听起来您需要速度,因此您可能考虑使用Faster RCNN,并通过去除一些较大的锚框来弥补速度差异。 出于好奇,这是Planet Labs的数据吗?

答案 2 :(得分:0)

这个问题现在很久没有答案了,所以我想我会用我的解决方案来回答。我为一些卫星检测问题实施了retinanet,结果很好。此 CNN 在论文《用于密集对象检测的焦点损失》中进行了概述,您可以在此处找到该论文:https://arxiv.org/abs/1708.02002。我使用这个 keras 库来实现:https://github.com/fizyr/keras-retinanet

我用它来检测无人机图像中的海豹:https://bigdata.duke.edu/projects/deep-learning-aerial-wildlife-surveillance

无人机图像中的鸟类:https://research.repository.duke.edu/concern/datasets/kp78gh20s

甚至卫星图像中的鲸鱼。所有这些都做得很好,只需最少的调整。