SSIMに関する誤解

本日のお題:Different settings will produce different SSIM results.

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


昨年9月に書いたように、状況としては、こんな感じですね。

[2009年]に入ってから、私のところに、「SSIMって何ですか」という質問が、頻繁に届くようになりました。理由は、いろんな公共機関が大規模な電子化プロジェクトの予算をつけて、

  1. 画像のフォーマットとして、JPEG 2000にすること、なおかつ、
  2. SSIMの値を一定水準以上にすること

という指定があったからです。


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


そして、今年2月に、日本の電子化業界がマズい方向に進んでいると思われたので、

PSNRと異なり)誰が、どこで、どのプログラムを使って計算したかによって、SSIMの値は全く別のものになる可能性があります。なので、「SSIMを 90以上にしろ」と指示して、それを第三者機械的にチェックして、外れているものは、ダメーというような検査(監査)では恣意性が残ります。


なので、SSIMの値を指定して発注するときは、「必ず、SSIMの計算式を具体的に提示して、この計算式で○○ 以上になるようにしろ」という風に指示するようにしましょうね。


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

というお知らせをしました。


ところが、状況は少しもよくなっていないと思います。もし、手元に最近の電子化プロジェクトの仕様書があったら、見てみてください。あなたの持っている仕様書に、

SSIMの誤差は、○○以内とする

というような記述がありませんか?そして、そこに具体的な計算式が書いてありますか?


正直に言って、私は、これらの仕様書に対して、「SSIMの誤差を、○○以内にする」自信がありませんし、おそらく不可能でしょう。なぜなら、具体的な計算式の提示が一切ないからです。また、もし私が審査する側にいたとしたら、全社を不合格にすることも、大して難しいことではありません。全社の画像をSSIM不良とする設定で検査すれば良いからです。


このことについて、最近、Zhou Wangさん*1と話をしました。


彼に日本の状況を説明したところ、

They have to specify the settings in order to make meaningful comparisons.
(意味のある比較をするために、発注側が計算式で使用するパラメータを具体的に提示しなくてはならない。)

と言い、その理由として、

Different settings will produce different SSIM results.
(パラメータの設定により、SSIMの値が変化してしまうから。)

ということを述べていました。


彼が言ってるんだから、そうしないといけない、というつもりは全くありませんが、少なくとも、「具体的な計算式を提示しなければ、意味のあるSSIMを計算することはできない」というのは事実として、もっと広く知れ渡っていいような気がします。


さもなければ、電子化に確保された貴重な資金が、ムダなところに使われてしまう気がします。電子化プロジェクトを企画している方々、電子化業務に携わっている方々、電子化プロジェクトを監理している方々、みんなでSSIMについて、もっと理解するように努力してみませんか。

*1:http://d.hatena.ne.jp/denshikA/20090923/あたりでご紹介しましたが、とりあえず、世界的に見て、SSIMといえば、Wangさんがトップランナーなわけですね。