Saliency Mapを使って有名な絵画を分析してみる

# はじめに
本当に突然ですが、次の絵を少しだけ鑑賞してみてください.
![parents.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391115/13342296-6a3c-74a0-c01e-43ec87a6959c.jpeg)
David Hockney *My Parents* 1977

何か見つけたり感じたりしたことはありましたでしょうか？

もちろん絵の鑑賞に正解も不正解もないのですが、例として個人的には次のようなことを感じました.

- おばあさんは真っ直ぐなのに対しておじいさんは斜めを向いて歪んでいる
- 花瓶の色合いや形がおばあさんを象徴しているように見える
- 横の鏡のフレームの色や歪み具合がおじいさんを象徴しているように見える

一つの対象物だけではなく、色々な物体を見てその関係性を考えてみたりすると意外な発見があったりして面白いと感じています.

他にも絵画鑑賞する際の素人の視点の動きとプロの視点の動きを比較した研究もあったりします.
**素人は目立つものにばっかり注目する**のに対し（中央）、**プロは周りの他の物体や構図など、広い視点で鑑賞する**傾向があるそうです（右）.
<img width="681" alt="スクリーンショット 2020-06-05 22.41.21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391115/f30c8ce3-aa91-7dea-8db3-2129243d1b29.png">
図.一般人と芸術家の視点の比較（[元論文](https://pubmed.ncbi.nlm.nih.gov/17357707/)）

このようなことを本や論文で知る過程で、絵に対するこういった人間の反応を定量的に分析してみたいと思い、記事としてまとめてみました.

（※絵に詳しい人から見たらこのような枠に当てはめて絵画を評価することはけしからぬことだとは思いますが、あくまで一つの視点からの意見ということでご容赦いただきたいです）

# どうやるのか
## Saliency Mapについて
Computer Visionの1つの分野にSaliency Map（顕著性マップ）に関するものがあります.

Saliency Mapを意訳すると、『画像が与えられてときに人間がどの部分にたくさん注目するかというものを可視化したMap』になります.

Saliency Mapのデータに関してはeye trackerやマウスのクリックなどを利用してクラウドソーシング的に集められたオープンデータがいくつかあり、今回はそのうちの一つである[SALICON dataset](http://salicon.net/challenge-2017/)を使いました.

例として元画像（左）とそれに対応するSaliency Map(右)を示します.
![sample.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391115/d96b4a0b-2b4a-7e7c-2529-ddee0b858226.png)
この画像を人間が見たときに注目されるであろう顔や後ろのテント・車といった物体に視点がたくさん集まっていて、直感とも一致します.

近年はこれらのオープンデータを活用して、画像を入力するとそれに対応するSaliency Mapが出力されるモデルがいくつも開発されています.

今回はこれを絵画に応用することを考えます.
Saliency Mapはつまり、**人間が統計的に多く見るであろう場所を可視化できる**と考えることができます.

**画像-Saliency Mapのペアで教師あり学習したモデル**に対して絵画の画像を入力すると、**人間がその絵画を見た時に着目するであろうポイントを表したMap**が出力されるのではないかと考えました.

## Mapの予測モデルについて
予測モデルとしては[SalGAN](https://arxiv.org/abs/1701.01081)という、敵対的学習を活用して予測精度をあげたモデルを利用しました.
![Salgan.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391115/fef43ccb-8b83-0603-5a1a-812a76eba063.png)
図.SalGanの構造（[元論文](https://arxiv.org/abs/1701.01081)より引用）


実装のコードや詳しい構造については前記事の、
[Saliency MapをGANで生成するSalGANを実装してみた](https://qiita.com/ryooota765/items/8c0a275380dbde9e83e1)
[GitHub - KerasでSalGANの実装](https://github.com/ryota765/Salgan)
を参照していただければと思います.

# 絵画に対する予測結果
今回は以下の画家のいくつかの作品を対象に分析を行いました.（[]内は今回使用した作品の数）
- [ヨハネス・フェルメール](https://ja.wikipedia.org/wiki/%E3%83%A8%E3%83%8F%E3%83%8D%E3%82%B9%E3%83%BB%E3%83%95%E3%82%A7%E3%83%AB%E3%83%A1%E3%83%BC%E3%83%AB)（1632~1675） [34]
- [クロード・モネ](https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%89%E3%83%BB%E3%83%A2%E3%83%8D)（1840~1926） [18]
- [フィンセント・ファン・ゴッホ](https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A3%E3%83%B3%E3%82%BB%E3%83%B3%E3%83%88%E3%83%BB%E3%83%95%E3%82%A1%E3%83%B3%E3%83%BB%E3%82%B4%E3%83%83%E3%83%9B)（1853~1890） [21]
- [パブロ・ピカソ](https://ja.wikipedia.org/wiki/%E3%83%91%E3%83%96%E3%83%AD%E3%83%BB%E3%83%94%E3%82%AB%E3%82%BD)（1881~1973） [22]

次にこれらの作品を入力として予測されたSaliency Mapの例をいくつか示します.

## フェルメール
機械学習のモデルの入力のサイズが規定されているため、縦横の比率の歪みはご容赦ください.
中央に写っている人物や、光度が高く描かれている部分で大きな値となっていて納得できる結果です.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391115/f3d08e1d-6604-7eab-f37f-71e36950dbb6.png)

## クロード・モネ
風景画が中心でシャープではない（画像と大きく条件が異なる）モネの作品に対してもうまく反応しているようです.
2枚目の絵でちゃんと花や葉が浮かんでいる部分に反応していたのはかなり感動しました.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391115/567ca1c5-867f-9d48-8b71-d772da81ac7a.png)

## フィンセント・ファン・ゴッホ
2枚目の夜のカフェテラスについては明るいカフェの部分にもっと着目していてもよかったか.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391115/7ab119bf-8163-a4bd-68f9-cdf864300579.png)

## パブロ・ピカソ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391115/c30cba3f-bea0-5c2f-e83a-c1f3dcc6e5f2.png)

# Saliency Mapの分析
次に絵画に対して得られたSaliency Mapを画家ごとに分析してみたいと思います.

特徴を表すための指標を3つ導入したのでそれぞれ簡単に説明します.
- Intensity （注目度）
- Composition Similarity （構図の類似度）
- Disperity （注目箇所の分散度合い）

## Intensity
これは非常にシンプルです.
Saliency Mapは視点の滞在時間の密度を表したものなので、各絵画につきSaliency Mapの値の絶対値を計算しすることで絵ごとにどれくらいの注目を集めるのかを計算することができます.

値が高いほど注目される量が高いことを表しています.
結果は次のようになりました.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391115/d6a558df-92e0-e8c3-2fa2-cd050b30869b.png)
作品ごとの分散がかなり大きいので有意ではありませんが、ゴッホやピカソの作品はより鮮やかな色を使ったものが多くこのような結果になったのではと考察できます.

## Composition Similarity
これは画家ごとに構図にどれだけばらつきがあるのかを表そうとした指標です.

計算方法は、
1. 対象画家の全作品のSaliency Mapの平均Mapを計算
2. 各作品のSaliency Mapと平均Mapの積を計算
3. 積で得られたMapのmeanを計算
（平均と似た構図の場合は積で強調されるという考え）

高いほど構図が似ていることを表しています.
結果は次のようになりました.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391115/2ba6fb9c-77b1-1a28-1a59-3b25e055da8c.png)
フェルメールは構図が似ている場合が多いという結果になっています.

確かにフェルメールの作品はSaliency Mapの値が大きくなりがちな人物が中央に描かれている次のような構図のものも多く、ある程度納得できる結果です.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391115/1b95962f-6d13-c3fc-580a-4da81b714510.png)

## Disperity
これは絵の中に注目を受けている箇所がいくつあるといったことを表す指標です.

フェルメールの『牛乳を注ぐ女』とそのSaliency Mapを見てみてください.
人間の目で見ると4箇所のピークがありそうなことがわかります.
このピークの個数を定量的に評価しようとしてのがこの指標になります.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391115/4ca5cad6-3fb7-24f0-a5a6-43a64cc1cdba.png)

上のフェルメールの絵画のsaliency Mapを使って指標のイメージを説明します.

Saliency Mapは0~255の間の値をとるようになっています.
そこで0~255の間を10個のbinに等分して、binの値より大きい部分を1、小さい部分を0としたbinaryのMapを生成します.

そうすると次の画像のように、threshold（bin）の値に応じて異なるbinaryのMapが得られることがわかります.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391115/49167705-ff9d-7a89-2073-11d65086221b.png)
これらの違う階層で切られたbinaryのMapに対して深さ優先探索で1の部分がまとまりとしていくつあるかを数え上げると処理を行います.

これをそれぞれのbinに対して行った結果を次に示します.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391115/6e1936c3-a71a-f4e8-ffe1-2c36fdb27bd1.png)
上の例からもわかるとおり、binが一番低い時は全てが一つのまとまりとして数えられます.
binの値が上がるとそれぞれのピークが別々にカウントされるようになりまとまりの個数は多くなります.
そしてbinがSaliency Mapの最大値を超えると1のpixelがなくなるので個数は0に落ち着きます.

このbinをx軸、まとまりの個数をy軸に取った曲線の積分値をdisperityとして定義しました.
disperityの値が大きいほど、ピークがたくさんあることを示しています.

画家ごとにdisperityの指標を計算した結果を次に示します.
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/391115/c933e1be-373c-eec9-6c68-1ca19e428c3b.png)
モネの値が少し低いことがわかります.
室内で物が色々なところに配置されている絵よりも、モネの風景画の方が目立つものが少なくまとまっているといったことを表しているのでしょうか.

# まとめ
絵画の鑑賞という未知なものに対して、オープンデータもあるSaliency Mapというタスクを応用して少し強引に分析してみました。

時系列的な分析
- ピカソの作品はどのように移り変わったか
- ある時代の作品はどういう特徴があるか
をしてみても面白そうだと思いました.

もちろん絵画の鑑賞はこんな表面的な分析ではわからないとても複雑なプロセスではあるのですが、納得のできそうな結果もいくつかの指標を使って出すことができ、この分析を通して新しい視点を提供できれば嬉しいです.

個人的には画像で学習させたモデルを絵画にこんなにうまく適用できることに驚くとともに、人間の統計的な注目ポイントを定量的に評価できるSaliency Mapの応用可能性が大きいなと思いました.
（例えば広告のABテストとかUIデザインとか？）

# 参考文献
1. [SalGAN: Visual Saliency Prediction with Generative Adversarial Networks](https://arxiv.org/abs/1701.01081)
2. [Expertise in pictorial perception: Eye-movement patterns and visual memory in artists and laymen](https://pubmed.ncbi.nlm.nih.gov/17357707/)
3. [SALICON](http://salicon.net/)