進化的画像マッチングシミュレーションのための新しい適応度測定
質問
遺伝的アルゴリズムを使用してサンプル画像と一致する画像を生成するデモをすでに見た人も多いと思います。最初はノイズから始まり、徐々にターゲット画像に似るようになり、最終的にはほぼ正確な複製が得られます。
ただし、私がこれまでに見た例はすべて、非常に単純なピクセルごとの比較を使用しており、その結果、最終イメージのかなり予測可能な「フェードイン」が得られます。私が探しているのは、もっと斬新なものです。素朴なアプローチよりも、私たちが「似ている」と考えるものに近づくフィットネス指標。
特定の結果を念頭に置いているわけではありません。デフォルトよりも「興味深い」ものを探しているだけです。提案はありますか?
解決
のようなことを話していると思います ロジャー・アルシングのプログラム.
私はこれのバージョンを実装したので、代替のフィットネス機能にも興味がありますが、見た目の美しさよりもパフォーマンスを向上させるという観点から取り組んでいます。進化のプロセスの性質上、常に何らかの「フェードイン」の要素が存在すると予想します (ただし、進化のオペレーターを微調整すると、見た目に影響する可能性があります)。
小さな画像以外の場合、ピクセルごとの比較はコストがかかる可能性があります。たとえば、私が使用している 200x200 ピクセルの画像には 40,000 ピクセルがあります。ピクセルごとに 3 つの値 (R、G、B) がある場合、1 つの画像の適合性計算に 120,000 の値を組み込む必要があります。私の実装では、比較を行う前に画像を縮小してピクセル数を減らします。トレードオフとして、進化した画像の精度がわずかに低下します。
代替のフィットネス関数を調査していると、 YUV色空間 これは人間の知覚により近いため、RGB の代わりに使用されます。
私が考えたもう 1 つのアイデアは、ランダムに選択されたピクセルのサンプルのみを比較するというものでした。これがどれだけうまくいくかは試してみないと分かりません。比較されるピクセルは評価ごとに異なるため、母集団内の多様性を維持する効果があります。
さらに、あなたはコンピュータビジョンの領域にいます。特徴抽出に依存するこれらの手法は、画像あたりのコストが高くなることが予想されますが、許容可能な結果を達成するために必要な世代数が少なくなれば、全体としては高速になる可能性があります。調べてみるとよいかもしれません 知覚差分 図書館。また、 このページ に、ピクセルではなく特徴に基づいて画像の類似性を比較するために使用できる Java コードを示します。
他のヒント
単純なアプローチよりも「類似」と思われるものに近いフィットネス指標。
ソフトウェアでこのような手段を実装することは、決して簡単ではありません。 Googleの「人間の視覚モデル」、いくつかの出発点の「知覚的誤差指標」。問題を回避することができます-候補画像を人間に提示するだけで最良の画像を選択できますが、人間にとっては少し退屈かもしれません。
このようなデモを見たことはありません(おそらくリンクできます)。しかし、興味深い説明を引き起こす可能性のある、あなたの説明からのいくつかのプロトタイプのアイデア:
- 並列に実行される3つの異なるアルゴリズム、おそらくRGBまたはHSV。
- 実行中にターゲットイメージをわずかに移動、回転、または変更します。
- ピクセル間のコントラスト/値の違いに基づくが、実際の色を知らないフィットネス。
- ...次に&prim; prime"正しい色の単一ピクセルですか?
これは重要なことであるという他の貢献者に同意します。また、商業的に非常に価値があることも付け加えます。たとえば、ビジュアルIPを保護したい企業は、ロゴに似た画像を探してインターネットをトロールできることを非常に喜んでいます。
これに対する私の素朴なアプローチは、それぞれが1つ以上の変換が適用されたターゲット画像から生成されたいくつかの画像でパターン認識を訓練することです:いずれにしても数度回転しました。いずれにしても数ピクセルの平行移動;同じ画像の異なるスケール。さまざまなぼかしと効果(ここでは畳み込みマスクが適しています)。また、各画像にランダムノイズを追加します。サンプルが多いほど良い。
トレーニングはすべてオフラインで実行できるため、実行時のパフォーマンスに問題が発生することはありません。
トレーニングされたパターンレコグナイザーを取得したら、それをGA人口画像に向け、レコグナイザーからスカラースコアを取得できます。
個人的には、放射基底ネットワークが好きです。素早くトレーニング。あまりにも多くの入力から始めて、主成分分析(IIRC)でそれらを削ります。出力は、類似性の尺度と非類似性の尺度である可能性があります。
最後にもう1つ。どんなアプローチでも-それについてブログを書いたり、デモを公開したりできますか。あなたがどうなったか教えてください。