パターンを作成しました:サイズの異なる「A」文字の画像(12から72:12、14、..、72)そして、パターンマッチングの方法をテストしたところ、良い結果が得られました。画像からテキスト領域を選択する1つの方法は、さまざまなサイズのすべての小さい文字と大きい文字および数字に対してそのアルゴリズムを実行することです。そしてフォント!私はそれが気に入りません。その代わりに、普遍的なパターンのようなものを作りたいと思います。さまざまなウィンドウサイズで画像をスキャンし、関数(そのウィンドウに文字がある確率)が固定値を超える領域を選択します。その機能を実現するための方法やアイデアを知っていますか?元の画像(グレースケール)で動作する必要があります。
1 に答える
あなたはOCRを開発していると思いますよね?
他の誰もがバイトーン画像でマッチングを行うので、あなたは非常に珍しい方法で行くことにしました。これにより、すべてがはるかに簡単になります。適切に劣化させれば(それ自体は非常に難しい作業です)、さまざまな明るさのレベルに対処したり、不均一な背景に注意したりする必要はありません。もちろん、必要な計算リソースも少なくて済みます。ただし、すべてをグレースケールで実行することが実際の目標であり、他のOCR科学者に、それが実際に実行可能であることを示したいと考えています。
あなたが説明した文字の位置のアプローチは、非常に非常に非常に計算集約的です。画像全体をスキャンし(image_size ^ 2)、次にパターンと一致させ(* pattern_size ^ 2)、次に各パターンに対してそれを実行する必要があります(* pattern_num)。これは信じられないほど遅くなります。
代わりに、アルゴリズムを単純化して2つの段階に分割してみてください。最初に画像上のいくつかの特徴(接続された暗い領域、または大きな正方形で画像を分割してすべての明るい領域を破棄するなど)を探してから、見つかった少数の領域でパターンマッチングを実行する必要があります。これはすべて少なくともN^2であり、最初に画像の行または列での作業の複雑さを軽減することを試みることができます(ヒストグラムを作成することによって)。したがって、さまざまな単純化方法を試してみることができます。
画像上でそれらのオブジェクトを見つけてパターンを一致させたら、実際にはそれらのサイズがわかるので、文字Aをすべてのサイズで保存する必要はなく、オブジェクトの元の画像をたとえば72のサイズに再スケーリングできます。それに合わせます。
フォントに関しては、ここではあまり選択肢がありません。Aを確実に見つけるために、Aのすべての可能な形状と照合する必要があります。ただし、Aの1つのサイズと照合すると、より多くの計算能力を試すことができます。別のA。