わかった。これは(英語以外の)OCRプロジェクトの一部です。デスキュー、グレースケーリング、グリフのセグメンテーションなどの前処理ステップをすでに完了しており、現在最も重要なステップであるグリフ画像のデータベースと比較することによるグリフの識別に固執しています。したがって、堅牢で効率的な知覚画像を考案する必要があります。ハッシュアルゴリズム。
多くの理由で、私が必要とする機能は、一般的な画像比較の問題で必要とされるほど複雑ではありません。1つは、私の画像は常にグレースケールです(または、識別作業が簡単になる場合は白黒です)。もう1つは、これらのグリフは「ストローク指向」であり、写真よりも構造が単純です。
私は、良い類似性メトリックを定義するために、私自身のアイデアと借用したアイデアのいくつかを試しました。1つの方法は、画像をM x Nセルのグリッドに分割し、各セルの平均「黒さ」を取得してその画像のハッシュを作成し、ハッシュのユークリッド距離を取得して画像を比較することでした。もう1つは、各グリフの「コーナー」を見つけて、それらの空間位置を比較することでした。それらのどれも非常に堅牢であることが証明されていません。
SIFTやSURFのような強力な候補があることは知っていますが、それらを使用しない理由は3つあります。1つは、それらはプロプライエタリ(または何らかの特許を取得)であり、商用アプリでは使用できないと思います。2つ目は、それらは非常に汎用的であり、おそらく私のやや単純な画像ドメインにとってはやり過ぎだろうということです。3つ目は、利用可能な実装がないことです(私は、C#を使用しています)。pHashライブラリをC#に変換しようとしましたが、失敗しました。
だから私はついにここにいます。コード(C#またはC ++またはJavaまたはVB.NETですが、.NETの世界で使用できない依存関係は必要ありません)、ライブラリ、アルゴリズム、メソッド、またはアイデアを知っている人はいますか?翻訳、回転、スケーリング、ぼかし、スポットなどの小さな視覚的欠陥に耐えます。