SSIMとは何か? その3

本日は、同じSSIMでも、少し異なる側面を見てみましょう。(過去2回と比べても、マニア度高めですので、お酒でも飲みながら、リラックスして読んでください。)


本日の課題画像:

http://www.ece.uwaterloo.ca/~z70wang/publications/icassp05.pdf 4ページより


前回は、PSNRよりSSIMの方が「私たちの感覚により近い」ということについて、確認してみました。ここで、電子化業界人は、おそらくピンとくるわけです。

「似てる」か「似てないか」について、「私たちの感覚により近い」ということは、OCR*1として、使えるんじゃないでしょうか?

と。本日は、ここを追及してみましょう。


前回も言いましたが、SSIMと言えば、Zhou Wangさんです。さっそく、彼の別の論文を見てみましょう。


http://www.ece.uwaterloo.ca/~z70wang/publications/icassp05.pdf

こちらの論文で、SSIMの問題点とOCRの可能性について論じています。なんのこっちゃ、と思うかもしれませんが、とりあえず、読み進んでみてください。


とは言え、難しいことが書いてありそうなので、上記論文の中の絵で見ていきましょう。


こちらが元の画像となる「ひげおじさん」です。


こちらが、いろいろと手を加えた「ひげおじさん」です。


どんな感じで手を加えたのか、というと、左から、

  • (h)ちょっぴり縮小
  • (i)右にちょこっと移動
  • (j)左にちょこっと移動
  • (k)ちょびっと半時計周り回転
  • (l)ちょびっと時計周り回転

ということらしいですが、よーく見ないと、どこをいじったのか分からないですね。


ところが、この見た感じ、どこが違うのか分からない画像に対して、SSIMを測定してみると、左から、

  • (h) 0.505
  • (i) 0.404
  • (j) 0.399
  • (k) 0.549
  • (l) 0.551

となります。前回のお話を思い出していただきたいのですが、この数値は、かなり低い数字で、通常なら、見れたもんじゃありません。


SSIMというのは「私たちの感覚により近い」はずなのですが、実は、このような拡大・縮小、移動*2、回転に対して、モロい側面を持ちます。拡大・縮小、移動、回転に対してモロいとすると、OCRには使えません。なぜなら、OCRというのは、

上図のような、元となる画像に対して、

のような手書き文字などが、どのくらい似ているのか、ということで、個々の文字認識を行っていく仕組みです。なので、拡大・縮小しようが、移動しようが、回転しようが、ちゃんと安定した数値を出してくれる指標が必要になります。


そこで、Zhou WangさんはJPEG2000などでも使われている「ウェーブレット」という技術を使って、SSIMを改良しました。それは、「complex wavelet SSIM」と呼ばれていて、略して、CW-SSIMです。


細かい話は原文を見ていただくとして、先ほどの「ひげおじさん」に関して、CW-SSIMの数値を見てみると、

  • (h) 0.505(SSIM) −> 0.925(CW-SSIM)
  • (i) 0.404(SSIM) −> 0.933(CW-SSIM)
  • (j) 0.399(SSIM) −> 0.933(CW-SSIM)
  • (k) 0.549(SSIM) −> 0.917(CW-SSIM)
  • (l) 0.551(SSIM) −> 0.916(CW-SSIM)

という感じで、かなり改善されていて、これならOCRとして使えそうですね。


実際に、先ほどの

に対して、平均して97.7%の確率で、正しく認識したそうです。


というわけで、SSIMの問題点とOCRの可能性について、少しはご理解いただけたでしょうか。また今回のSSIMに関する3回シリーズで、SSIMが少しは身近になりましたか。もし、その4があるとすれば、実際の計算方法、便利なソフトの使い方などをお伝えします。

*1:OCRについては、http://denshika.cc/faq/faq4.phphttp://denshika.cc/faq/faq5.phpをご覧ください。

*2:業界では、「並進」と呼んでるかもしれません。英語なら、translationです。