请教一个图片识别/归类的问题

2015-11-24 22:41:57 +08:00
 kevinyoung
师兄在做关于量子疤痕态的工作,原理不用管。

方程有很多解,每个解可以画成一张张的图片来,图片看起来就是各种各样的 pattern ,师兄需要在成千上万张图片中找出一些特定的图片来。

现在已经人工找出来了 2000 张了,师兄终于无法忍受这种搬砖的事情了准备写个程序做照图片这件事情。

根据我有限的知识,我觉得这是个聚类分析的问题,不知道 python 的 scikit-learn 能不能来做这个事情?

如果能的话大概是个什么做法?

如果不能的话还请给个思路。这里先谢谢了!
2338 次点击
所在节点    程序员
3 条回复
mko0okmko0
2015-11-24 22:57:33 +08:00
你有 OPENCV 的经验吗?
如果有.我刚刚稍为查了一下"量子疤痕态"的图片.可能适合拐角侦测.
当然直接丢 CUDNN 训练也不是不可能.
没看过目标图片跟非目标图片.无法确定你的需求.
要慢慢谈,FB:https://www.facebook.com/longsing.chen
因为需要看到几张图.
zx120120
2015-11-24 23:36:41 +08:00
不知道你的具体图片什么样子,不太好下判断。
但是既然你们有直觉可以写程序,那应该就是可以的。

这应该是个分类问题。
你要做的就是,准备若干张(几百或者几千) 目标 pattern 的图片,还有若干张 非目标 pattern 图片。
然后训一个 SVM 或者 Logistic Regression 或者其他随便什么分类器就好了。

scikit-learn 当然是可以干这件事的,里面自带了 SVM 和 LR 分类器,非常好用的。
大概的步骤就是, n 张图片读进来,拍扁成一条条的行向量。
然后扔给 classifier 训练出来得到一个 model ,用那个 model 里的 predict 函数就可以了。

但是刚刚回头我看了下我自己 BB 的过程,觉得十分不清晰。
所以强烈建议楼主过一边 Coursera 上的 Machine Learning[https://www.coursera.org/learn/machine-learning/]
差不多看到第三章 Logistic Regression 就应该会有个很清晰的概念了,然后看看文档应该就能用了。
(之后,目测之后还有必要看一下 第八章的 PCA 。)
northisland
2015-11-25 00:03:34 +08:00
I. SIFT 等特征 + BOVW 或者 FISHER VECTOR [ + 稀疏表示 ] = 固定维度的特征向量(一般是几 k 维,图像整体的维数是几 m 维)

II. 特征向量 + 分类器 = 分类结果(一般训练样本的数量和分类模型复杂度要基本相等,也就是说,你有几 k 张图片,想训练几 m 个参数的模型,完全就是开玩乐。所以必须把图片的几 m 维缩小成几 k 维向量)

I 用 opencv 或者 VLFeat 做, II 可以用 sklearn 做

然而这个过程是 2012 年前的玩法了~

现在流行用深度学习 CNN 玩这一套了

睡前一水,这篇讲纹理分类的文章很好 describing textures in the wild

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/238664

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX