Python中文
首页
教程
问答
标签
搜索
登录
注册
基于训练的OpenCV(Python)图像分类
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>这是一个更为普遍的“我在哪里能找到好的资源来做某事”的问题。我正在尝试使用Python(OpenCV或其他)根据训练集对图像进行分类。</p> <p>我的训练集:这是由许多产品缺陷的图像组成的。每个图像可以在产品的3个位置中的1个位置拍摄,每个图像将包含5种产品缺陷类型中的1种。这些缺陷已被人工分类并由人验证。</p> <p>要分类的图像:这些图像由相似的图像组成,在相同的3个位置拍摄,但缺陷的类型没有分类(虽然缺陷区域是由拍摄图像的工具识别的,但只是工具没有正确分类,我无法更改工具)。</p> <p>我尝试按照《用Python编程计算机视觉:分析图像的工具和算法》一书中的建议进行分类。在本例中,我使用存储在mySQL数据库(训练数据)中的SIFT描述符。到目前为止,我没有太多的运气(我继续排除故障),我想我会向任何OpenCV专家寻求建议。</p> <p>任何推荐或建议将不胜感激。</p> <p>所以,回到这个问题上,我认为分享我学到的东西是值得的。我不知道这是“答案”,但这就是我的归宿。一项正在进行的工作,你总是可以变得更好。</p> <p>我现在的解决办法是把三种不同的方法结合起来。所有这些都可以在互联网上搜索,所以我不会详细介绍如何。</p> <p>首先,我使用SIFT方法,使用对VLFeat的命令行调用生成SIFT直方图。这可能是Python中其他地方的一个选项,这正是我所使用的。我使用k-means聚类来做词汇视觉袋的事情,并建立了一个数据库,将质心和与训练图像相关的词汇直方图联系起来。我通过添加根筛选步骤稍微改进了结果。然后我使用密集SIFT(但没有根SIFT调整)创建了一个单独的数据库。最后,根据训练图像的RGB分量建立了一个彩色直方图数据库。我并没有使用所有256个R G B框,而是将单个R、G和B值相加超过8个框,然后将值展平为24个框的直方图。</p> <p>对未知图像进行同样的处理,然后用欧氏距离比较直方图向量。我也尝试了卡方比较,但在我的情况下,欧几里德提供了更好的结果。我从每一个进程中抽取前三名的结果,根据9票中的5票进行图像分类。如果没有达到多数,那么分析是不确定的。</p> <p>对于我封闭的图像群体,我的错误分类率为3.1%,不确定度为3.1%。</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p><a href="http://deeplearning.net/tutorial/lenet.html" rel="nofollow">Implementing a CNN in Theano</a>可能会给你比OpenCV中任何东西都好的结果。如果你在Google scholar上搜索,有大量关于使用CNNs进行图像分类的文章-这些方法中的大多数应该不难使用Theano实现。</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何提高Djang的410误差
3 回答
如何提高doc2vec模型中两个文档(句子)的余弦相似度?
10 回答
如何提高Docker的日志限制?|[输出已剪裁,达到日志限制100KiB/s]
8 回答
如何提高DQN的性能?
2 回答
如何提高EasyOCR的准确性/预测?
7 回答
如何提高Euler#39项目解决方案的效率?
6 回答
如何提高F1成绩进行分类
9 回答
如何提高FaceNet的准确性
1 回答
如何提高fft处理的精度?
3 回答
如何提高Fibonacci实现对大n的精度?
2 回答
如何提高Flask与psycopg2的连接时间
7 回答
如何提高FosterCauer变换的scipy.signal.invres()的数值稳定性?
10 回答
如何提高gae查询的性能?
4 回答
如何提高GANs用于时间序列预测/异常检测的结果
2 回答
如何提高gevent和tornado组合的性能?
6 回答
如何提高googleappengin请求日志的吞吐量
6 回答
如何提高googlevision文本识别的准确性
3 回答
如何提高groupby/apply效率
1 回答
如何提高Gunicorn中的请求率
8 回答
如何提高G中的文件编码转换
2 回答