蝴蝶图像的特征提取

5
我有一组蝴蝶图像用于训练系统从给定输入图像中分割出蝴蝶。为此,我想提取特征,如边缘、角落、区域边界、局部最大/最小强度等。
我找到了许多特征提取方法,如哈里斯角检测、SIFT等,但当图像背景与蝴蝶的身体/边界颜色相同时,它们并不起作用。
请问是否有任何适合蝴蝶分割的好特征提取方法? 我正在使用OpenCV的Python实现。

1
样例图片会非常有帮助。 - Hammer
嗨@Hammer,我使用了来自利兹大学的数据集(http://goo.gl/YYRcn)。 - freax
2个回答

2

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

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

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

如果你对分割感兴趣,并且用户交互是可能的,我建议使用图割或抠图。在图割中,用户将能够微调分割。Grab cut已经在opencv中,但可能会导致与它采用单个用户输入,然后自动分割图像相同的问题。


嗨@Noremac,我对将蝴蝶作为整体进行分割很感兴趣。为了进行初步测试,我想在蝴蝶周围绘制一个边界框,以查看我的分割是否有效。我面临的一个隐含问题是当蝴蝶被遮挡时。此外,我想了解更多关于您提到的梯度直方图方法的信息。编写自己的逻辑会很棒,但为了启动,我正在尝试实现已经存在的分割方法。 - freax
我所使用的参考资料在免费的PDF书籍中:http://szeliski.org/Book/。这是一本很好的参考书,可以指导你去寻找更多细节。第218页和219页是我开始使用它们的起点。它们是SIFT特征的一部分,但只保留了主导梯度,而我使用了比那更多的特征(最终用于神经网络分类)。您也可以在此部分中找到更多要使用的特征的想法。 - Noremac
感谢 @Noremac,我会阅读这本书的! - freax
嗨@Noremac,我刚刚在Python中运行了grabCut方法,并得到了以下输出(掩码),如下链接所示 http://i.imgbox.com/adeIIA1r.jpg http://i.imgbox.com/acbMc39O.png http://i.imgbox.com/adciD5hx.jpg http://i.imgbox.com/adw9yReC.png 你能告诉我如何使用这个掩码从图片中提取“彩色蝴蝶”吗? 顺便说一句,我参考了这里提到的代码:https://dev59.com/-WDVa4cB1Zd3GeqPh-tM - freax
将掩码应用于图像只需遍历像素,将掩码中的像素设置为白色(或其他颜色),将不在掩码中的像素设置为原始像素。地图的坐标应该匹配两者之间。我想opencv也有一个应用掩码的函数。无论哪种方式,这都是一段简单的代码块。 - Noremac

1
你可以尝试通过上传训练数据(蝴蝶图片)到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
    }
  ]
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接