【问题标题】:Feature extraction for butterfly images蝴蝶图像的特征提取
【发布时间】:2012-10-20 12:38:11
【问题描述】:

我有一组蝴蝶图像,用于训练我的系统从给定的输入图像中分割出蝴蝶。为此,我想提取边缘、角落、区域边界、局部最大/最小强度等特征。

我发现了许多特征提取方法,例如 Harris 角点检测、SIFT,但是当图像背景的颜色与蝴蝶的身体/边界颜色相同时,它们效果不佳。

谁能告诉我有没有什么好的特征提取方法可以很好地用于蝴蝶分割?我正在使用 OpenCV 的 Python 实现。

【问题讨论】:

  • 示例图片会有很大帮助
  • 嗨 @Hammer,我使用了来自 Leeds 的数据集 (goo.gl/YYRcn)

标签: python image-processing opencv image-segmentation


【解决方案1】:

您愿意编写自己的图像处理逻辑吗?

您最好的选择可能是针对您的问题优化分割/特征提取,而不是使用以前的实现,例如用于更一般用例的 opencv。

我发现在嘈杂/低对比度环境中运行良好的一个选项是使用滑动窗口(即 10x10 像素)并构建梯度方向直方图。从这个直方图中,您可以识别出更多优势边缘的存在(它们在直方图中累积)及其方向(允许检测角等事物)并查看局部最大值/最小值。 (如果需要我可以提供更多细节)

如果您对整体分割感兴趣并且可以进行用户交互,我建议您使用图形切割或抓取切割。在图形切割中,用户将能够微调分割。抓取剪切已经在 opencv 中,但可能会导致与从用户获取单个输入然后自动分割图像相同的问题。

【讨论】:

  • 嗨@Noremac,我有兴趣将蝴蝶作为一个整体进行分割,为了进行初步测试,我想在蝴蝶周围画一个边界框,看看我的分割是否有效。我面临的一个隐含问题是蝴蝶何时被遮挡。另外我想了解更多关于你提到的梯度直方图方法。编写我自己的逻辑会很棒,但为了启动,我正在尝试实现现有的分割方法。
  • 我用于此的参考在免费的 pdf 书中:szeliski.org/Book。这是一本很棒的参考书,指导您去哪里了解更多细节。 218,219 页是我开始使用它们的原因。它们是 SIFT 特征的一部分,但只保留了主要梯度,而我使用了比这更多的特征(最终用于神经网络进行分类)。您也可以在本节中找到更多有关使用功能的想法。
  • 谢谢@Noremac,会读完这本书!
  • 嗨@Noremac,我刚刚运行了Python中可用的grabCut方法并得到了以下输出(掩码),如这些链接中所示i.imgbox.com/adeIIA1r.jpgi.imgbox.com/acbMc39O.pngi.imgbox.com/adciD5hx.jpgi.imgbox.com/adw9yReC.png你能告诉我吗如何使用此蒙版从图片中提取“彩色蝴蝶”?顺便提一下这里提到的代码:stackoverflow.com/questions/9469244/…
  • 要对图像应用蒙版,只需遍历像素,将蒙版中的像素设置为白色(或其他颜色),将蒙版中未设置的像素设置为原始像素。地图的坐标应该(需要)在两者之间匹配。我在想opencv也有一个应用掩码的功能。无论哪种方式,它都是一个简单的代码块。
【解决方案2】:

您可以尝试通过将您的训练数据(蝴蝶的图像)上传到demo.nanonets.ai(免费使用)来构建模型

1) 在此处上传您的训练数据:

demo.nanonets.ai

2) 然后使用以下(Python 代码)查询 API:

import requests
import json
import urllib
model_name = "Enter-Your-Model-Name-Here"
url = "https://i.ytimg.com/vi/xT6UsQwZyy0/maxresdefault.jpg"
files = {'uploadfile': urllib.urlopen(url).read()}
url = "http://demo.nanonets.ai/classify/?appId="+model_name
r = requests.post(url, files=files)
print json.loads(r.content)

3) 响应如下:

{
  "message": "Model trained",
  "result": [
    {
      "label": "Black Swallowtail",
      "probability": 0.97
    },
    {
      "label": "Orange Sulphur",
      "probability": 0.025
    },
    {
      "label": "Monarch",
      "probability": 0.005
    }
  ]
}

【讨论】:

    猜你喜欢
    • 2013-12-01
    • 1970-01-01
    • 2017-04-19
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多