- ベストアンサー
点字認識システムを作成したいと考えています。
点字認識システムを作成したいと考えています。 どのようなシステムかというと (1)点字本などからWebカメラで点字を読み込む (2)その点字がひらがなで表すと何に値するのかを認識する(座標を取得する必要があるとおもいます) (3)そのひらがなを「読み上げソフト」で読み上げる という感じのシステムです。 言語はC++。OpenCVを使って作成したいと考えています。 どなかたか、OpenCVに詳しい方 だいたいのプログラムを教えてください><
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
前回の回答に ------------------------------------------------------------ 1) 点字本などから点字を画像としてPCに取り込む →スキャナやカメラからの画像取り込みが必要 2) 画像から点字の位置を検出する。 →検出しやすいように、画像を加工する(回転、拡大縮小、白黒化、量子化/2値化、ノイズ除去、輪郭抽出/補正等) 3) 検出された「点字」をPC内の点字と比較し、どの文字かを判断する →パターンマッチ;単純なテンプレートマッチングで大丈夫だと思います。 ------------------------------------------------------------ とありましたが、Webカメラを使うとなると、撮影した点字の回転方向や倍率が定まらない事や照明などにより点字部分をコントラスト良く撮影する事が困難になる事から画像処理のレベルとしては結構、難しい部類に入ると思います。 おそらく、大学の研究室のテーマでやってできるかな?というレベルのような気がします。 ちなみに、OpenCVでは回転や倍率変動に対応したマッチングが無いので、OpenCVを使って単純にテンプレートマッチングで点字の認識とはいかないと思います。 画像処理のレベルを下げるには、カメラを固定する、点字が回転しないようにする、点字の紙に基準となるマーカーを付けるなど、OpenCVの処理以外にもシステムとして何かしらの工夫を考えた方が良いと思います。 答えになっていなくて申し訳ありません。
その他の回答 (2)
横からすみません。アマチュアCプログラマーですが、 印刷用スキャナーなどで、距離が僅かでも離れれば真っ黒になる設定にし スキャンすれば周囲が処理しやすい画像にならないでしょうか? 初回の処理で6点の位置関係が解かる文字の検出を行い 大よその文字サイズを決定し、 文字と思しき色のピクセルを発見したら右および下に何ピクセル四方 それが広がっているか検出し、面積が文字サイズから見て妥当ならば そこに点が有る と。 正常検出した点の座標を記録し 重複ピクセルの多いものは無効として切り落とし 存在する有効な点同士の位置関係から文字を割り出す 等。 細かい誤差対応の為にかなり工夫を要すると思われますから、 あとは自力で諦めずにやるしか無いと思います。 頑張って下さい。
お礼
やはりスキャナを使うのがいいみたいですね>< 周囲が真っ黒になる設定をしてみたいと思います。 ありがとうございます^^
- kmee
- ベストアンサー率55% (1857/3366)
前回、OpenCVを例に挙げたものです。 よくよく読み返すと、たくさんある点字をテンプレートマッチとは、すこし現実的ではないですね。 点の大小と位置を調べる(輪郭抽出?)→位置と大小を0/1の列にコード化→対応する文字に という流れがよいでしょうか。 そして、やはり、肝となるのは、いかに処理しやすい画像に加工するか、だと思います。 具体的な方法は残念ながらわかりません。 どんなことをしたら、点字の部分がはっきりするか、点の有無や大小がはっきりするか、これはいろいろ検討しないとならないでしょう。
お礼
輪郭抽出やってみます^^ 画像はプログラムで加工してみたら案外いい感じに読み取りやすそうな画像になりました。 ありがとうございます^^
お礼
テンプレートマッチングしてみたところ ひとつの点字は読み取ることができましたが、文字列を読み取るプログラムがわかりません>< もしよければ、わかる範囲で教えていただけませんか?><