Opencv 通过卷积神经网络从图像中提取前景对象

Opencv 通过卷积神经网络从图像中提取前景对象,opencv,image-processing,conv-neural-network,image-segmentation,edge-detection,Opencv,Image Processing,Conv Neural Network,Image Segmentation,Edge Detection,我是计算机视觉和图像识别的新手。在我的第一个CV项目中,我正在开发一个工具,用于检测图像中的苹果(水果) 到目前为止我拥有的: 我用Python开发了一个卷积神经网络,它使用tensorflow来确定某物是否是苹果。缺点是我的CNN只在图像中苹果是唯一的对象的情况下工作。我的培训数据集类似于: 我想要实现的目标:我希望能够在图像中检测到一个苹果,并在其周围加上边框。然而,图像中会充满其他物体,如野餐图像中所示: 可能的方法: 滑动窗口:我会把我的照片分解成更小的图像。我会从左上角的一个大窗口开

我是计算机视觉和图像识别的新手。在我的第一个CV项目中,我正在开发一个工具,用于检测图像中的苹果(水果)

到目前为止我拥有的: 我用Python开发了一个卷积神经网络,它使用tensorflow来确定某物是否是苹果。缺点是我的CNN只在图像中苹果是唯一的对象的情况下工作。我的培训数据集类似于:

我想要实现的目标:我希望能够在图像中检测到一个苹果,并在其周围加上边框。然而,图像中会充满其他物体,如野餐图像中所示:

可能的方法:

  • 滑动窗口:我会把我的照片分解成更小的图像。我会从左上角的一个大窗口开始,然后向右移动一步。当我到达图像的右边界时,我会向下移动一定数量的像素并重复。这实际上是一个滑动窗口,所有这些较小的图像都将通过我的CNN播放。 窗口的大小会越来越小,直到找到一个苹果。这样做的缺点是,我会通过我的CNN运行数百张较小的图像,这需要很长时间才能检测到苹果。此外,如果图像中没有苹果,那么大量时间将白白浪费

  • 提取前景对象:另一种方法是从图像中提取所有前景元素(可能使用OpenCV?),并通过我的CNN运行这些对象。
    与滑动窗口方法相比,我会通过CNN运行少量图像,而不是数百张图像

  • 这是我能想到的两种方法,但我想知道在速度方面是否有更好的方法。滑动窗口方法最终会起作用,但要获得苹果的边界窗口需要很长时间


    如果有人能给我一些指导(也许我完全走错了方向?),一些阅读材料的链接,或者一些提取前景元素的代码示例,我会非常感激。谢谢

    更好的方法是使用,或。在这种方法被设计出来之前,按照你在问题中提出的方式检测物体是很常见的


    SSD is有一个python实现。OpenCV用于YOLO实现。如果当前版本没有检测到Apple,或者您的项目要求您从头开始构建系统,您可以为Apple重新训练网络。

    更好的方法是使用或。在这种方法被设计出来之前,按照你在问题中提出的方式检测物体是很常见的

    SSD is有一个python实现。OpenCV用于YOLO实现。你可以为苹果重新训练网络,以防当前版本没有检测到它们,或者你的项目需要你从头开始构建一个系统