3

スキャンした画像からオブジェクトを抽出しようとしています。白い背景にいくつかのドキュメントがある可能性があり、それらを自動的にトリミングして回転させる必要があります。これはかなり単純な作業のように思えますが、ある時点で行き詰まり、常に悪い結果が得られます。

私はしようとしました:

  1. イメージを 2 値化し、モルフォロジー演算を実行して連結成分を取得します。

  2. 膨張および侵食されたバイナリ イメージをマスク コンポーネントとして使用して流域セグメンテーションを実行します。

  3. Canny 検出器を適用し、輪郭を塗りつぶします。

これのどれも私に良い結果をもたらしません。オブジェクトにコントラスト エッジがない場合 (つまり、白い背景の紙)、多くの個別のコンポーネントに分割されます。これらの要素を過度に膨張させて接続すると、バックグラウンド ノイズも拡大し、すべてがごちゃごちゃになります。

たとえば、次の画像があります。

Canny 検出器を適用して輪郭を塗りつぶすと、次のようになります。

ご覧のとおり、コンポーネントは接続されていません。それらは互いに離れすぎているため、適切な量の膨張によって接続することはできません。そして、いくつかの背景ポイントと組み合わせてこのマスクに流域を適用すると、非常に悪い結果が得られます。

一部の画像にノイズがあります:

この特定のケースでは、Canny 検出器によってパスポート全体の輪郭を取得できました。これは、エッジのコントラストが原因です。しかし、しきい値法はここでは機能しません。

4

2 に答える 2

1

画像が常に非常に明るい背景にある場合は、可能な最大値に近いしきい値で 2 値化できます。その後、オブジェクトを取得するためにバイナリ イメージを修正する必要がありますが、この手順は、他のイメージがどのように見えるかによって異なります。

たとえば、左の次の画像は、入力をガウス フィルター処理した後、最大値の 99% のしきい値で取得したものです。境界に接続されたコンポーネントやその他の小さなコンポーネントを削除し、いくつかの基本的な形態学的ツールと組み合わせた後、右の画像が得られます。

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

于 2013-02-01T13:13:31.453 に答える
1

これは少し気まぐれに思えるかもしれませんが、我慢してください:

これは、エッジ検出、形態学的操作、およびセグメンテーションのみを含む画像処理レシピにとって非常に困難なケースのように見えます。

ここで悪用していないのは、ドキュメントがどのように見えるべきかを (私が信じている)知っているということです。現在、この事前知識を考慮に入れていない完全に一般的なソリューションを見ています。トレーニング データを取得できれば、単純なテンプレート/パッチ ベースのマッチング (SSD、正規化相互相関) から、ドキュメントの位置と回転を見つけるためのより洗練されたオブジェクト検出手法まで、あらゆる方法を使用できます。

私の推測では、オブジェクトが常に多かれ少なかれ同じ縮尺である場合 (たとえば、固定解像度/類似のマシンでスキャンされたパスポート)、かなり粗雑なアプローチで回避できると思います。正しい方法は 1 つではありません。また、最終的に使用するテクニックは、かなりの量のパラメーターの微調整を行うまで機能しない可能性が高いため、何もすぐにあきらめないでください。

于 2013-02-01T18:11:10.593 に答える