OpenCVでの単純な数字認識OCR-Python

| | | | | | | | | | | | | | | |

OpenCV-Python(cv2)で「数字認識OCR」を実装しようとしています。学習目的のためだけです。 OpenCVのKNearestとSVMの両方の機能を学びたいです。

各桁のサンプル(つまり画像)が100個あります。彼らと一緒にトレーニングしたいと思います。

OpenCVサンプルに付属するサンプルletter_recog.pyがあります。しかし、それでも使い方がわかりませんでした。サンプルやレスポンスなどがわかりません。また、最初は理解できなかったtxtファイルが読み込まれます。

少し検索した後、cppサンプルでletter_recognition.dataを見つけることができました。これを使用して、letter_recog.pyのモデルでcv2.KNearestのコードを作成しました(テスト用):

  import numpy as np import cv2 fn = "letter-recognition.data" a = np.loadtxt(fn、np.float32、delimiter = "、"、converters = {0:lambda ch:ord(ch)- ord( "A")})サンプル、応答= a [:、1:]、a [:、0]モデル= cv2.KNearest()retval = model.train(samples、responses)retval、results、neigh_resp、dists = model.find_nearest(samples、k = 10)print results.ravel() 

サイズ20000の配列が得られましたが、それが何であるかわかりません。

質問:

1)letter_recognition.dataファイルとは何ですか?自分のデータセットからそのファイルを作成するにはどうすればよいですか?

2) results.reval()は何を意味しますか?

3)letter_recognition.dataファイル(KNearestまたはSVMのいずれか)を使用して簡単な数字認識ツールを作成するにはどうすればよいですか?