は現在、私はいくつかのMLアルゴリズムで遊ぶと私はnp.ndarrayにで保存した画像(電車と検証セット)の2セットを持っています。画像はグレースケールで、サイズは28x28です。私は約200000の列車イメージと20000の検証イメージのようなスムーズを持っています。私は私のデータセットが理想的ではないことを知っている: - 各データセットでは、私は同じまたはほぼ同じ画像 を持つことができます -フィルタリング類似イメージ
直感が私に語ったセットの検証と電車の間の重複があるかもしれない電車の中で同一または類似の画像と検証セットは私のMLアルゴリズムのパフォーマンスを損なう可能性があるので、私は自分のデータセットをサニタイズしようと決めました。
md5ハッシュの辞書をインクリメンタルに構築し、md5ハッシュが辞書に存在しない画像だけを新しいndarrayにコピーするなど、ハッシュを使用して同じ画像をハッシュして、簡単にデータセットをサニタイズできます。ハッシュはまだありません。
しかし!私は、他の画像とほぼ同じある別の画像がある場合に、イメージの1つを殺すために方法がわかりません。たとえば、28x28ピクセルのうちの1つだけが異なる値を持つ場合。任意のアイデアどのように画像間の距離の有効なメトリックを思い付く?効果的であれば、ピクセル単位での比較が良いアイデアになるかどうかわからないので、比較的速く動作することが望ましいということも意味します。同様の画像を削除してデータセットを消毒することに本当に良いことがあるかどうかについて誰かが洞察してくれれば便利でしょうか?
あなたは* *知覚的ハッシュをターゲットとするアルゴリズムを使用することができます。それはあなたのケース(非常に小さな画像)には最適ではないかもしれませんが、私は一度[こちら]このようなものをコード化(https://github.com/sschnug/pyVideoHash/blob/master/frame_hash.pyx)は(もあります統計に基づくアプローチは簡単に実装することができます。私はエキスパートではありませんが、私はあなたの考えを好きです(しかし、これは生産性の低いユースケースかもしれませんが、これらの小さな差分は実際にインポートされます)。清掃は私が考える一般化を助けるべきです。 – sascha
@サスカおかげさまで、このアイデアは興味深いようですが、私はそれが少し残酷だと思います。私は本当に似ているものと大きな数の画像をフィルタリングする必要があるので、もっと簡単なアプローチを探したいと思っています。しかし、私はあなたの提案を心に留めておきます:) –