Xmas Contest 2018 ギャラリー編

XmasContest終了後にA問題の解答画像をtwitterに上げてくれてる人がたくさんいて嬉しかったので、展覧会を開くことにしました。

まずは画像一覧をどうぞ。
photos.app.goo.gl
ダウンロードするとファイル名がユーザ名になってます。


これだけだと芸がないので、Dendrogram描いてみました。

配色

まずは配色でクラスタリング

f:id:snuke:20181226232046p:plain

Dendrogramの簡単な説明

木上で距離の近い頂点どうしは似ている、遠い頂点どうしは似てない、ということを表しています。
plotlyを使って描画しました。
plotlyのdendrogram機能には距離行列を入力すればいいです。

配色の距離の計算方法

4色×4色で重み付き二部マッチングをしました。
色どうしの距離は、RGB値をHSV値に変換して、H(色相)の差*1.0 + S(彩度)の差*0.2 + V(明度)の差*0.1 として計算しました。
色相の差は円環上の距離なので max(|A-B|, 1-|A-B|) のように計算しないといけない点に注意。

観察

jken_ullさんの作品armeria_betrueさんの作品は配色が (赤#F00, 緑#0F0, 青#00F, 黄#FF0)で完全に一致しています。
RGB値の差はあれど、この配色が多かったです。
黄色ではなくオレンジを使った人も結構いました。

1人明らかに様子がおかしい人がいるのはおいといて、259_Momoneさんの作品は結構独特な配色で、唯一灰色を使用しています。赤・緑のクリスマスカラーに白・灰と、かなり配色センスを感じました。
あと、Feunard_Luneさんの作品の配色は、なんというかパステルカラーでかわいい感じでいいですね。AtCoderユーザ名の顔文字もかわいくて好きです)

塗り分け方

次に配色を無視して、塗り分け方でクラスタリング

f:id:snuke:20181226232110p:plain

距離の計算方法

各領域を頂点とした完全グラフで、各辺に端点どうしの色が同じかどうか(bool)を書き込んだ行列を作ります。
で、行列どうしのハミング距離を距離としました。

観察

ceni1055さんの作品ant2357さんの作品が驚異のシンクロ率でした。色の割り当てまで同じです(驚) もはや間違い探しですね。(1箇所だけ違います)
ceni1055さんは昔自作されたソフトを使って解かれたようです。
ant2357さんは恐らくこのサイトを使われたのだと思います。
プログラムで解くとこういう感じになるんですね。


あと特徴が分かりやすそうなのは、文字の部分の塗り方でしょうか。
X以外が同じ色:Py2K4さんsemiexpさんtatyam_primeさん(、と自分)
"Xmas"と"Contest 2018"をそれぞれ同じ色:kakira9618さんskkytkstexhkさん
"Xmas"と"Contest"と"2018"をそれぞれ同じ色(未遂):jken_ullさん(後で自分もやってみようとしましたが、下の方が不可能なことを証明できたので諦めました)

ビジュアル

最後に、色も塗り方も考慮した感じのクラスタリング

f:id:snuke:20181226232305p:plain

距離の計算方法

各領域ごとに色の距離を計算してその和を取った。

観察

たしかに似てるような。(それ以外特に感想もない)
まぁ、おまけですね。