問題タブ [icr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1258 参照

python - この画像で特定のフォーム フィールドを見つける方法

ブラジルでは、病院で新生児ごとに(手で)記入された標準フォーム。このフォームは「DNV」と呼ばれます (ポルトガル語の「Born Alive Declaration」にちなんで)。「DO」と呼ばれる形もあります(ポルトガル語で「Decease Declaration」を意味します)。私の州では、病院がこれらのフォームを 100 万枚近く、私が勤務する機関に送り、そこで「人口動態統計」と呼ばれるデータベースを計算しています。その作業を自動化できないか調査中です。商用ICRソリューションは多額の費用がかかるため、担当者は誰もそれを内部で実行できるとは信じていないため、草の根プロジェクトです.

フォームの上部は次のようになります。 ここに画像の説明を入力

私はいくつかの病院から送られてきた 10 万件の PDF ファイルを手に入れ、単純なアルゴリズムを使用してそれらを 2 つのタイプ (DNV または DO) のいずれかに分類することができました。まず、ドキュメントのタイプを含む黒い四角形を見つけます (cv2.findContoursおよび少しヒューリスティック)、OCR を適用します ( pytesseract.image_to_string)。20k の「死亡宣言」(DO) と 80k の「生存宣言」を見つけました。

同様のアルゴリズムを使用して、黒い四角形の右側の数字を OCR し、55,000 フォームの画像を、これらのドキュメントに基づいてプロのタイピストが入力したデータベース内の対応するレコードにリンクすることができました。

ここで、数字を認識するための機械学習を少し試すために、日付フィールド (赤) を見つけたいと思います。フィールドは以下で強調表示されています。 ここに画像の説明を入力

最初に、これをテンプレートとして使用して「テンプレート マッチング」アルゴリズムを試しました。ここに画像の説明を入力

これはうまく機能しますが、テンプレートとフォームの画像が同じ縮尺と角度である場合に限られます。このcv2.matchTemplate方法は、スケールに非常に敏感です。SURF を使用して特徴マッチング アルゴリズムを試しましたが、機能させるのに苦労しています (やり過ぎのように感じます)。

左側の黒い長方形を見つけるのは簡単なので、数字を見つけるためにいくつかのオプションを考えています:

  • 黒い長方形を元にスケールと角度を正規化して試してみcv2.matchTemplateます。

  • 輪郭を見つけようとし、それを使用して単純化しcv2.approxPolyDP、数字の位置を推測します。

私の質問は次のとおりです。問題に対処する方法について何かアドバイスはありますか? 入力が解像度/角度に関して正規化されていない場合、このフォーム フィールドを見つけるために他のどのアルゴリズムを使用できますか?

[アップデート #1]

(x, y, w, h) を左側の黒い四角形の位置とサイズとして指定すると、妥当な確信を持って検索を絞り込むことができます。ここに画像の説明を入力

ランダムサンプルを試すと、この式は次のようになります。

ここに画像の説明を入力 ここに画像の説明を入力 ここに画像の説明を入力

[アップデート #2]

erodeとについて知ったばかりですdilateが、今では彼らは私の新しい親友です。

ここに画像の説明を入力

ここに画像の説明を入力

ところで、私はコンピュータービジョンについて手がかりがありません。グーグルに戻りましょう...

0 投票する
1 に答える
646 参照

ocr - GoogleビジョンAPIでテキスト形式のヒントを与えることは可能ですか?

画像に分離された手書きの日付を検出しようとしています。

ここに画像の説明を入力

クラウド ビジョン API で、型に関するヒントを与える方法はありますか?

例: 表示される唯一のテキストは dd/mm/yy で、d、m、y は数字です

私が見つけた唯一のものは、ドキュメントの言語のヒントです。

Oの代わりに のような文字を含む結果が得られることがあり0ます。

0 投票する
1 に答える
1159 参照

google-api - 単一の文字のみ、または英語以外の文字列を検出するように Google Vision API を設定できますか?

たとえば、手書きで書かれた「A5b1x」のようなコード化された文字列を検出したいと考えています。そのため、手動で分割して各キャラクターの画像を取得するか、Vision にすぐに認識させようとしました。言語ではないことを指定する方法 (または単数文字であることを指定する方法) がわからないため、どちらも今のところ機能していません。これは、私が Google コンピューティング インスタンスに入力したものです。

"g" の画像の結果はありません: g

「e」の画像の結果はありません: e

「fxb3」の画像の結果: fxb3

0 投票する
1 に答える
39 参照

image-processing - 画像内のボックスにテキストが含まれているかどうかを確認する方法は?

テキストが実際に手書きされている、これに似た表があります。各フィールドが入力されているかどうかを確認できるようにしたいのですが、各フィールドの内容を理解したり認識したりする必要はありません。フィールドが入力されたことを検出できるようにする必要があるだけです。

テーブルの例

人々はスキャナーでページをスキャンする必要があり、プログラムはフィールドを検出し、本質的にコンテンツがあるかどうかを確認する必要があります。誰かがアイデアを持っているか、簡単な解決策を知っていますか? ICR か OCR を使おうと思ったのですが、OCR は手書きのテキストを検出できず、ICR はお金を払ってでも良いのですが、あまりにも良いです。