首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于神经网络的车型识别

基于神经网络的车型识别
EN

Stack Overflow用户
提问于 2013-07-22 03:48:18
回答 1查看 901关注 0票数 0

我得到了一个使用神经网络识别车辆类型的项目,这就是我如何了解神经技术的伟大之处的。

我是这个领域的初学者,但我有足够的材料来学习它。我只想知道一些开始这个项目的好地方,因为我最大的问题是我没有太多的时间。我真的很感谢任何人的帮助。最重要的是,我想学习如何将模式与图像(在我的例子中,是车辆)进行匹配。

我还想知道python是不是一个好的开始语言,因为我对它最满意。

我有一些汽车的图像作为输入,我需要将这些汽车按型号分类。

代码语言:javascript
复制
Eg: Audi A4,Audi A6,Audi A8,etc
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-24 13:30:34

您没有说是否可以使用现有的框架,或者是否需要从头开始实现解决方案,但无论哪种方式,Python都是编写神经网络的优秀语言。

如果您可以使用框架,请查看Theano,它是用Python编写的,是所有语言中最完整的神经网络框架:

http://www.deeplearning.net/software/theano/

如果您需要从头开始编写您的实现,请参阅Stephen Marsland的“机器学习,算法视角”一书。它包含实现基本多层神经网络的示例Python代码。

至于如何继续,您需要将图像转换为一维输入向量。不要担心丢失2-D信息,网络会自己学习提取2-D特征的“接受域”。将像素强度归一化为-1到1的范围(或者更好,0平均值,标准差为1)。如果图像已经居中并归一化到大致相同的大小,那么一个简单的前馈网络应该就足够了。如果汽车与摄像头的角度或距离变化很大,您可能需要使用卷积神经网络,但实现起来要复杂得多( Theano文档中有示例)。对于基本的前馈网络,尝试使用两个隐藏层,每层中的像素数在0.5到1.5倍之间。

将数据集分为单独的训练集、验证集和测试集(可能分别具有0.6、0.2、0.2的比率),并确保每个图像只出现在一个集中。只在训练集上训练,并且在接近100%的训练实例正确之前不要使用任何正则化。您可以使用验证集来监控未进行训练的实例的进度。验证集的性能应该比训练集的性能差。当验证集上的性能停止提高时,停止训练。一旦你做到了这一点,你可以尝试不同的正则化常量,并选择一个能带来最佳验证集性能的常量。测试集将告诉您最终结果的执行情况(但不要基于测试集结果更改任何内容,否则您也有过度拟合的风险!)。

如果你的汽车图像非常复杂和多变,并且你不能得到一个基本的前馈网络来很好地执行,你可以考虑使用“深度学习”。也就是说,添加更多的层,并使用无监督训练对其进行预训练。这里有一个关于如何做到这一点的详细教程(尽管所有的代码示例都在MatLab/Octave中):

http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial

再一次,这增加了很多复杂性。首先尝试使用基本的前馈神经网络。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17776212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档