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.php、http://denshika.cc/faq/faq5.phpをご覧ください。
*2:業界では、「並進」と呼んでるかもしれません。英語なら、translationです。