SSIMに関する誤解 - 解決案 -

本日のお題:デフォルトはssim.m、それ以外なら「主観評価との相関」を提示せよ

前回、お伝えしたとおり、私の今の心境は、

今、日本で進行中の大型電子化プロジェクトにおいて、SSIMの使われ方が間違っているんじゃないか、そもそもSSIMを誤解しているんじゃないか、と危惧しています。


http://d.hatena.ne.jp/denshikA/20100624


でも、危惧してるだけじゃ、無責任な万年野党と何ら変わりませんね。なので、現状を踏まえて、どうすれば良いのか考えてみたいと思います。


おそらく、電子化プロジェクトの発注側ないし監理側は、「SSIMを測定して検査するツール」を持っているはずです。*1


なので、

  1. その検査ツールのSSIM計算部分*2のプログラム・ソースを公開するべきだと思います。
  2. もし、検査ツールの開発元がソース公開を拒否した場合*3、そのツールの採用を中止するべきだと思います。そして、以下の4番へ行ってください。
  3. 本来ならば、その検査ツールの検証をするべきだと思います。検証は、http://d.hatena.ne.jp/denshikA/20090923でちょこっとご紹介しているような「主観評価との相関」を調べるので、とても時間がかかります。なので、将来のプロジェクトで採用しても良いかもしれませんが、現在進行中のプロジェクトや、当面のプロジェクトにおいては、別の対策が必要ですので、以下の4番へ行ってください。
  4. 現在最も信頼されているSSIMの計算ツールは、Zhou Wangさんが公開している「ssim.m*4」ですので、このプログラムを採用するべきだと思います。
  5. ただし、上記の「ssim.m」はグレースケール画像の比較です。なので、カラー画像の比較の場合、http://d.hatena.ne.jp/denshikA/20091130で説明したようなバリエーションが発生しますので、統一するべきだと思います。私は個人的に、Y=(R+G+B)/3というような単純平均が、シンプルなので良いと思います。
  6. ssim.mをそのまま採用せず、独自で作るのも良いですが、このssim.mの結果に近くなるようにキャリブレーションをするべきだと思います。なので、キャリブレーションに必要な、オリジナル画像とSSIM値を明記したテスト画像数十枚を、キャリブレーションセットとして、早急に作成して公開するべきだと思います。


というわけで、私たちは、デフォルトとして、ssim.mのdefault settings

ガウシアン・フィルター*5
window = fspecial('gaussian', 11, 1.5);


計算式の中に入っているオプション*6
K(1) = 0.01;
K(2) = 0.03;
L = 255;


ディスタンス*7
f = max(1,round(min(M,N)/256));

を想定するべきなのだと思います。もし万が一、それ以外の計算式を採用するなら*8、たとえ発注側であったとしても、その計算式が「ssim.mより適切なものである」ということを証明する「主観評価との相関」を提示するべきだと思います。


私の知る限り、「ssim.m以外を採用すべし」というような「公の主張」は見かけないので、何の事前説明もなしに、ssim.m以外の計算式で納品画像を検査した場合、デフォルトだと十分に想定できるssim.mに基づいた良品画像を「SSIM不良」と判定する可能性が出てきます。いわゆる冤罪ですね。そういう冤罪だけは、避けて欲しい、と願います。


(おまけのお願い)
冤罪に関連して、ひとつだけ気になることがあります。最近の入札では、総合評価方式というものが採用されることが多いわけですが、ssim.mに基づいた良品画像を「SSIM不良」と判定する可能性があるとすると、SSIMに関連して、誤って、低い評価点がついてしまうこともあるのでしょうか?入札とかに詳しい人がいたら、おしえてください。

*1:持っていないのに発注をしてしまった場合、マズいですね。すぐにご連絡ください。

*2:プログラム全体を公開する必要はありません

*3:もしかしたら、やましいことがあるのかもしれませんね。

*4:http://www.ece.uwaterloo.ca/~z70wang/research/ssim/ssim.m

*5:http://d.hatena.ne.jp/denshikA/20100225

*6:http://d.hatena.ne.jp/denshikA/20100224

*7:http://d.hatena.ne.jp/denshikA/20100302

*8:相当ヘソ曲がりな行動ですが