可以在 collection 的静止图像上使用深度学习网络吗?

Possible to use a deep learning network on a collection of still images?

我有一张 collection 大约一千张带有不同图片的集换式卡片。我还有一个数据库,其中包含每一张曾经打印过的交易卡的高分辨率扫描件。我想将扫描的图像输入深度学习网络,这样如果我将一张或多张卡片放在相机前,它就能识别出我拿着的是哪一张。

看起来 Jetpac 可能是我开始的好地方。我有机器学习方面的经验,但主要是数值分析,而不是图像处理。到目前为止我看到的例子表明人们拍摄了他们有兴趣识别的东西,然后能够识别它。但是,我是否可以只转储一个图像文件夹作为训练数据?

最后,我的目标是在一个 Raspberry Pi 2 的系统上实现这个,我已经联网在一起并行工作。我不确定 Jetpac 是否明确能够支持分布式计算,但我想我可以将视频源分成多个源,并且 运行 每个源都进入一个单独的 RPi 上的一个单独的 Jetpac 实例。

我是否以正确的方式思考这个问题?不同的方法会更实用吗?感谢您的帮助!!

编辑:由于担心听起来我的问题太笼统,我的问题最终是 Jetpac(或任何其他深度学习库)是否能够获得 collection 静止图像并接受训练以挑选来自视频源的这些图像的实例。

您可以使用深度学习来完成这项任务,但不建议您这样做,除非您正在处理一些非常具体的案例。对于您的任务,您希望在另一幅图像中找到特定图像,而不是像通常在学习任务中所做的那样,从一组图像中学习抽象 class(比如狗的样子)。

有很多众所周知、快速且准确的图像处理算法可以处理该问题,它们都是基于从原始图像中提取特征,以及在未见过的图像中进行特征检测。您可以使用 OpenCV 查看此解决方案的具体实现 here,或通过阅读特征检测了解更多信息。

在撰写本文时,Yann LeCun 的卷积神经网络(深度学习)是图像识别的最先进技术。如果您碰巧知道 Lua,您可能想试试 Facebook 的 Torch @ http://torch.ch/(很可能 Yann 在某种程度上参与了这个深度学习库,因为他在 Facebook 领导 AI 小组)。但是,文档有些有限,而且我听说有一个学习曲线...

如果您正在寻找基于 Python 的社区驱动的开源深度学习框架,我推荐 Theano。这里是卷积神经网络教程:@http://deeplearning.net/tutorial/lenet.html。我在一个研究项目(多任务深度学习)中使用了它。 F运行kly,Theano 的学习曲线很残酷(它有一个 st运行ge 语法),但它表现良好,而且教程是我的研究小组能够在网上找到的最广泛的教程.

如果您决定让事情 运行 更快并且您有足够的现金,则可以投资购买 Nvidia Cuda 兼容显卡。 Theano 可以在具有几千个 Cuda 内核的高性能 Nvidia 卡上很好地扩展。就我而言(出于研究目的),我只是 运行 UWMadison 的 HTCondor 系统上 CPU 上的 Theano(它在具有 40 Gigs 数据的金字塔深度学习任务上表现得足够好)。

另一个想法:我链接的 Theano 教程的当前版本正在使用 sigmoid 激活——这需要预训练步骤(由于梯度消失/爆炸问题)。但是,如果您切换到整流线性单元 (ReLU),则可以跳过预训练步骤(ReLU 不受此限制,这就是它目前在研究中很受欢迎的原因)。然而,如果你是 Theano 的新手,你可能想从 sigmoids 开始,因为系统已经正确构建(如果你想快速得到一些东西,修改教程更容易)