1

「入力」画像のセットを別の「ソース」画像セットと比較し、それらのいずれかに一致があるかどうかを確認する必要があるソフトウェア プロジェクトに取り組んでいます。ソース画像は、いかなる方法でも編集/変更できません。入力画像は、一致を見つけるためにスケーリング/トリミングできます。画像は、任意のサイズの BMP、JPEG、GIF、PNG、TIFF にすることができます。

制約: 外部ライブラリの使用は許可されていません。ImageMagick は例外であり、使用できます。

Java/Python を使用する予定です。このソフトウェアは、純粋にコマンドライン ベースです。

私はSOといくつかの一般的な画像比較アルゴリズムを読んでいました。2つのアプローチを取る予定です。1. ヒストグラム/バケットを使用して、比較する 2 つの画像の RGB 値を調べることができます。
2. SIFT/SURF を使用してキーポイント記述子を見つけ、それらの間のユークリッド距離を見つけ、結果の距離に基づいて結果を出力します。

比較する 2 つの画像は、異なる形式にすることができます。直感的な考えでは、分析/比較の前に、2 つの画像を共通の形式に変換する必要があります。たとえば、2 つの入力画像が BMP と JPEG の場合、BMP をJPEG。これは、前処理ステップと考えることができます。

私の質問: 一般的な形式への画像変換は必要ですか? 異なる形式の 2 つの画像を比較できますか? 比較する前に変換する必要がある場合、高品質 (BMP) から低品質 (JPEG) に比較するという私の仮定は正しいですか? また、誰かが画像変換のアルゴリズムを提案してくれると助かります。

EDIT
パターン画像がソース画像で見つかった場合、一致が見つかったと言われます。たとえば、ソース画像が 1 人の選手がいるサッカー場で構成されているとします。パターン画像にソース画像とまったく同じプレーヤーが含まれている場合、そのプレーヤーは一致しています。

4

1 に答える 1

2

いいえ、ディスク上の一般的なフォーマットへの変換は必要なく、おそらく役に立ちません。画像から特徴記述子を抽出する場合 (SIFT/SURF など)、元の画像がディスクにどのように保存されたかはあまり重要ではありません。特徴記述子は、小さな圧縮アーティファクトに対して不変でなければなりません。


もうちょっと...

ソース データセットにオブジェクト X の画像である BMP があるとします。

次に、入力/クエリ データセットにオブジェクト X の別の画像がありますが、それは JPEG として保存されています。

これらの画像のいずれかを生成するエンコード プロセスでどのようなノイズが導入されたかはわかりません。照明の違い、大気効果、レンズ効果、センサー ノイズ、トーン マッピング、色域マッピングがあります。画像によって異なるものもあれば、カメラによって異なるものもあります。これはすべて、画像がカメラのストレージに保存される前に行われます。はい、JPEG 圧縮のアーティファクトもありますが、BMP が「より高い」品質であると仮定し、JPEG 圧縮によってそれを劣化させることは役に立ちません。おそらく、BMP は、BMP として保存される前に JPEG 圧縮も行われています。

于 2013-01-30T22:32:06.457 に答える