4

私は2つの等高線を分析し、それらの類似性に対応するパーセントを与えようとしています。これらの輪郭を表すすべてのポイントの座標(SVGパスのように)があると仮定すると、どの要素に基づいて、それらがほぼ同一であると言う必要がありますか?

いくつかのグーグル検索の後、私はフーリエ記述子に関連する何かを見つけました、それらは私の場合に関連していますか?


編集

私がやりたいのは、いくつかのフォントを別のフォントと比較することです。フォントと同じように、画像ではありません。生成されたアルゴリズムのおかげで、類似度に応じて同等のフォントを見つけることができます。

一部のスクリプトは、各文字のバウンディングボックスを比較するだけですが、それだけでは不十分です。ArialがWebdingsよりもVerdanaに最も近いことを伝える方法が必要です。したがって、フォントから輪郭を抽出できると仮定すると、2つの輪郭を比較する方法が必要です。

例(「論理」パーセント値を使用):

フォントの比較、太字のGが最も近い

4

2 に答える 2

1

一般的な問題(フォントマッチング)にアプローチするには、シンボリックと統計の2つの基本的な方法があります。良い解決策はおそらく両方を何らかの方法で組み合わせるでしょう。

象徴的なアプローチでは、問題に関する知識を直接使用します。たとえば、(インテリジェントな人間として)フォントの特性を明らかにするために使用するもののリストを作成できます。identifontが使用する種類の質問。このアプローチは、さまざまなプロパティ(たとえば、ストローク幅、特定のループが閉じているかどうか、セリフの存在など)を検出するのに十分スマートなルーチンと、yes / no / unsureを配置する決定木(または「ルールエンジン」)を作成することを意味します。一緒に答えて、答えを思いつきます。

統計的アプローチはあなたが考えていたもののように聞こえます、そしておそらくフォントがどのように機能するかです。ここでのアイデアは、いくつかの一般的なプロパティを見つけ、それらを重みとして使用して「最良の」選択を見つけることです。たとえば、フォントがたくさんある場合は、ニューラルネットをトレーニングできます(入力はサンプル解像度のピクセルです)。そこでは、ネットが「どのように」決定するかを知る必要はありません。十分なトレーニングデータがあれば、それを行う方法が見つかります。または、すべての暗いピクセルの合計を確認することもできます。これにより、上記のパーセンテージと同様の結果が得られる可能性があります。

これは単純に聞こえますが、多くの場合、必要なすべての方法で違いをうまく示す単純な統計測定値を見つけるのはそれほど簡単ではありません。

したがって、2つの間に大きな中間点があります。最初のグループからいくつかのアイデアを引き出すことができれば、2番目のグループのアプローチをはるかに効率的にすることができるという考えです。最も単純なニューラルネットアプローチは「オールインワン」(計算と決定を含む)ですが、それらを分離することができます。したがって、ネットに大量のピクセルを与えるだけでなく、より「意味のある」入力を与えることができます。これは、異なるフォント間での検出に役立つことがわかっていることです。ストロークの幅や、キャラクターの「穴」の数などです。また、スマートを追加して、結果を混乱させる可能性のあるものを削除することもできます。たとえば、同じ高さに事前スケーリングします(フルフォントが設定されている場合は、小文字の「m」の高さになるようにすべてをスケーリングできます。 、は一定です)。

フーリエ記述子は、何かの「外形」を特徴付ける方法であるため、上記で説明したように、統計的アプローチへの入力として使用できます。この例では、フーリエ記述子を指定すると、下のGのセリフの「スパイク」が検出されるため、左側のGとは非常に異なることがわかります。しかし、彼らはストローク幅についてはあまり気にせず、スケール(倍率/ズーム)についてはまったく気にしません(これは良いことでも悪いことでもあります-異なるサイズのランダムな文字が与えられている場合は、敏感になりたくありませんサイズですが、アルファベット全体の標準の「m」に正規化した場合は、それを含める必要があります)。

他のアイデアは、2d相互相関(正規化された相関の最大値により、2つのものがどれほど類似しているかについてのアイデアが得られます)、または単に両方の文字でピクセルのどの部分が共通であるかを確認することです。

コメントが言うように、これは大きな問題です(そして私は専門家ではありません-上記は興味のある傍観者であることからの単なるランダムなでたらめです)。

しかし、最終的にあなたの質問に答えるために、あなたが持っているものがアウトラインであるならば、フーリエ記述子は始めるのに良い場所でしょう。それは「重さ」ではなく形に焦点を合わせているので、私はそれを輪郭で囲まれた総面積のようなものと組み合わせます。次に、それらを計算するためのコードを記述し、アルファベットの例で得られる数値を確認します。一部の文字を区別しているように見えても、他の文字を区別していないように見える場合は、それらの場合に役立つ他の測定値を探してください。かなりの数のアプローチを組み合わせて、高速で信頼性の高いものを取得することになります。

または、単純なものが必要な場合は、高さ、幅、輪郭の「内側」のピクセルの総数、垂直線または水平線に沿って交差するストローク数など、測定しやすい値を組み合わせて使用​​してみてください。フーリエ変換などに関連する数学に慣れていない場合は、目的によっては「十分に良い」ものが得られる可能性があります。

于 2012-06-04T23:36:44.427 に答える
0

ニューラルネットワークベースのアプローチの使用を検討しましたか?このホワイトペーパーでは、自己組織化ツリーマップを使用して、コンテンツベースの画像検索を実行します。優れたトレーニングセットを使用すると、正確な類似度を測定できる多層ネットワーク(またはSOM )を作成できるはずです。

于 2012-06-05T14:33:45.137 に答える