3

私は、典型的な前処理 - セグメンテーション - 認識パイプラインを使用する OCR-ing 手書き数字を含むプロジェクトに取り組んでいます。最初の 2 つの段階OpenCVは、特定のタスクに合わせていくつかの標準アルゴリズムを調整して手動で行いました。第 3 段階 (認識) では、既製の分類器を使用したいと考えています。

最初に Tesseract を試してみましたが、本当にひどいものでした。そこで、 の進行状況を調べ始めましたMNIST。人気があるので、高品質の優れた分類器を簡単に入手できることを願っていました。実際、ここでの一番の答えは、このサンプルHOG+SVMで便利に実装されているタンデムの使用を示唆しています。残念ながら、私が望んでいたほど良くはありません。これは、 と を混同し続けます(実際には であることが私の目には明らかです)。OpenCV080

によって作成されたエラーの例を次に示しますHOG+SVM

上の行は画像から抽出された元の数字 (より高解像度の画像は存在しません)、中央の行はこれらの数字の傾き補正、サイズの正規化、中央揃え、下の行は の出力ですHOG+SVM

後で分類子を0-8適用してこのエラーをホットフィックスしようとしましたが(出力が実行され、代わりにその出力が返される場合)、結果は同じでした。kNNHOG+SVMHOG+SVM8kNN

次に、0.45% のテスト エラーを達成すると主張するこのpylearn2サンプルを適応させようとしました。MNISTしかし、1週間一緒pylearn2に過ごした後、私はそれを機能させることができませんでした. このイメージを実行するインスタンスのように無菌の環境であっても、常にランダムにクラッシュし続けます(自分のマシンについては言及しません)。Amazon EC2 g2.2xlarge

の存在は知っていCaffeますが、試したことはありません。

高精度 (たとえば、MNIST テスト エラー < 1%) の手書き数字分類器を設定する最も簡単な方法は何でしょうか? NVIDIAできれば、実行するカードを必要としないもの。私が理解している限り、pylearn2(に大きく依存しているためcuda-convnet)そうです。Pythonインターフェイスと実行する機能はWindows、楽しいボーナスです。

注:pylearn2十分な評判がないため、新しいタグを作成できませんが、確かにあるはずです。

4

2 に答える 2

2

MINST データベースの Web ページの下部には、最先端の方法のベンチマークとその論文へのリンクがあります。

http://yann.lecun.com/exdb/mnist/

テーブルの最後のエントリは、0.23% の誤差で最高の結果を示しています (かなり印象的です)。

簡単な答え: easy2 ~ 5% のエラーを受け入れることができるか (sklearn を使用)、オンラインでコードを見つけない限り、最先端のレートを達成する方法はありません。

于 2015-02-12T22:17:40.380 に答える
1

まだ行っていない場合は、カフェを試してみてください。cuda-convnet よりもコンパイルがはるかに簡単で、cuda に依存していません (速度はかなり向上しますが)。また、Lenet アルゴリズムを使用した mnist の例があります。

ここを見てください: https://github.com/BVLC/caffe/tree/dev/examples/mnist

于 2015-02-17T12:15:35.197 に答える