SSIMに関する誤解
本日のお題:Different settings will produce different SSIM results.
私の思い違いだと良いんですが、今、日本で進行中の大型電子化プロジェクトにおいて、SSIMの使われ方が間違っているんじゃないか、そもそもSSIMを誤解しているんじゃないか、と危惧しています。
昨年9月に書いたように、状況としては、こんな感じですね。
[2009年]に入ってから、私のところに、「SSIMって何ですか」という質問が、頻繁に届くようになりました。理由は、いろんな公共機関が大規模な電子化プロジェクトの予算をつけて、
- 画像のフォーマットとして、JPEG 2000にすること、なおかつ、
- SSIMの値を一定水準以上にすること
という指定があったからです。
そして、今年2月に、日本の電子化業界がマズい方向に進んでいると思われたので、
(PSNRと異なり)誰が、どこで、どのプログラムを使って計算したかによって、SSIMの値は全く別のものになる可能性があります。なので、「SSIMを 90以上にしろ」と指示して、それを第三者が機械的にチェックして、外れているものは、ダメーというような検査(監査)では恣意性が残ります。
なので、SSIMの値を指定して発注するときは、「必ず、SSIMの計算式を具体的に提示して、この計算式で○○ 以上になるようにしろ」という風に指示するようにしましょうね。
というお知らせをしました。
ところが、状況は少しもよくなっていないと思います。もし、手元に最近の電子化プロジェクトの仕様書があったら、見てみてください。あなたの持っている仕様書に、
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さんがトップランナーなわけですね。