質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

3391閲覧

手書き数字を認識する、最も簡単なプログラム

退会済みユーザー

退会済みユーザー

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/01/19 20:03

って、どんなものがありますでしょうか、教えて頂きたい。
簡単というのは、プログラム自体が簡単ということで、OpenCV等、とても難しいのでなしでお願いします、数字、0~9であればよいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

世間で簡単と言われている0~9の認識プログラムですら馬鹿に分かる程簡単ではないようです。
では馬鹿には手書き文字認識を利用したプログラムを作れないのかと言うとそういう事も無く、GCVであったりワトソンくんというサービス・APIが用意されています。しかも大抵は自作するより高精度です。

自作するより非常に簡単です。

ただしこれらを利用するには当然APIドキュメントを読む必要があり、それを読めない程のド馬鹿には利用する事も出来ません。
頑張りましょう。

投稿2021/01/19 23:33

hentaiman

総合スコア6426

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/01/20 08:41

よく分かっていないのですが、そのAPIのプログラムはどうなってるんでしょうか?見れるのでしょうか? もし見れないのなら、それはOpenCVを使うのと一緒かなと・・・。
hentaiman

2021/01/20 09:27

OpenCVの利用が難しいという事ではないのか じゃあ無理です 馬鹿でも読めるプログラムが欲しいけど内容は専門家が作るようなものが良いって言ってるようなものです
guest

0

手書き数字を認識する、最も簡単なプログラム

もっとも「アルゴリズムとして簡単」なのは、二値化した手書き文字と「準備した数字画像」をドット単位で比較して、最も合致が多かったものを採用する。ってところかと。

合致精度は非常に低いですし、むしろ間違う事の方が多い気もしますが、論文を読む必要もない素人的最初のアルゴリズムだと思います。

投稿2021/01/20 00:18

編集2021/01/20 00:19
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/01/20 08:41

C++とかpythonのオープンソースとかもあります?
guest

0

「手書き数字」とだけ言うと,書き手次第で

  • とてつもなく崩れた字,癖のある字
  • ちょっと画像外にはみ出しちゃうとか
  • 無意味に小さく書く
  • 筆圧弱すぎで目視困難なほど薄い
  • etc...

と,様々な事柄が起き得ることをどこまで考える(扱う)のか?というのが定まりません.

簡単なプログラム

を考えるならば,物事が簡単になるような前提条件を設けることです.
「ほぼほぼこのくらいの大きさで,こんな形に丁寧に… 書かれた画像」を前提にする,とか.

今,5秒で思いついた方法としては,

  • あらかじめ用意した比較用の数字画像
  • 認識対象たる手書き数字画像

の両者を 2値化→距離画像変換 したデータ間の似具合でも見てやれば良いのではないかな,とか.
「似具合」は,簡単なものとしては,単純なテンプレートマッチングでよく用いられる { SAD, SSD, 正規化画像相関, ... } とかでしょうか.

あるいは,2値化→ラドン変換な感じで何方向かに投影したデータを見るとかでも何か判定できるかもしれないし,「せっかくだから俺はモーメント特徴が近い奴を結果として選ぶぜ!」とかでもそこそこ頑張る可能性もなくはないのかもしれない.
勉強目的なら,やってみた結果としてうまくいかなくても勉強にはなるのだろうし,とにかくいろいろとやってみては?

投稿2021/01/21 02:23

編集2021/01/21 02:31
fana

総合スコア11996

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/01/21 02:37

既に作られている簡単なものがあればDLして使っていじって実行して調べてみたいのですが・・・。
fana

2021/01/21 02:47

(主観ですが)自分でコード書くのと 他人が書いたコードを読む のとでは,後者の方が圧倒的に難易度高いです. この回答や te2ji 氏の回答を読んで,その内容を実装できないのであれば,たとえ何かしらの既存のコードがあったとしても理解することは至極困難であろうと想像します. なんというか,この程度の「クッソ簡単な」話くらいは,さっさと自前で作ればよいのではないですかね? というのが素直な感想です. 別に「機械学習のような何かを1から実装しようぜ!」とか言ってるわけじゃないのですし. (あと,この程度の簡素すぎる話というのは,当然ながら低性能すぎて実用には耐えないハズですから,そんなのの実装がわざわざ世間に公開されてたりはしないのではないかな,とか)
fana

2021/01/21 02:50

> 距離画像変換 単純にぼかし処理にした方が楽かな.
fana

2021/01/21 02:52

> 勉強目的なら,やってみた結果としてうまくいかなくても勉強にはなるのだろうし,とにかくいろいろとやってみては? という段階にあるのではないかと見受けます. 他人のコードを解読するとかはずっと後の話にしたらどうでしょうか.順序として.
fana

2021/01/21 02:58

実装されたコードではなく,「アルゴリズムや方法論の話」を参考にすべきです. 別に論文とか読めということではなく, 例えば「二値化ってこんな処理です」的な解説みたいなのを読んで,理解し,その話を自前で実装してみる. 「OpenCVに,なにやら二値化の関数というのがあるっぽいから,それ使ってれば中身なんて微塵も知らなくても良いよね!」みたいな姿勢でない点は良いと思うのですが,階段を30段ぐらい飛ばしたあたりから始めようというとっかかり方は良くない感.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問