はじめに
この記事は、LIGHTzアドベントカレンダー2022の9日目の記事です。
"oo日目"っていいますが,クリスマスまで"あとN日"みたいなほうがカウントダウンちっくでアドベントカレンダーぽいですよねとか思いました.クリスマスまであと16日でございます.あっちゅうまに年の瀬です.師走です.
私は,忙しいというかぼーっとしていたというか,大学院の指導教員の先生とのミーティングを思いっきり忘れてすっぽかしてしまいました.はい.しかも2週続けて.反省しています.社会人にあるまじきですね.仕事の合間合間に講義ナドナドはいるので頭切り替えるのが大変なんですという言い訳です.
@KTasknこと、たすく、です。2日目に引き続き,研究を通して知ったなかで面白いと感じたネタを書いていきたいと思います.
Lab色空間
ITエンジニアなら,RGBってご存知だと思います.#000000とか#FF00FFとかいうあいつです.いうまでもないかもですが,2文字ごとに区切って16進数で00-FFが,10進数の0-255に対応して,色を表す表現として使われます.
でその,色の表現方法なんですが,RGB以外にもいろいろあるそうで,RGB以外で有名なところだとカラープリンタのインクジェットで使うCMYKとかありますね.
そんな色の表現方法としてのひとつが,Lab色空間 - wikipediaとよばれるやつで,RGBと何が違うかっていうと,人の感覚に近似して設計されているらしいんですね.
下の図で,左上(R,G,B)=(0,200,0)の緑に対応する明るさの赤って(R,G,B)=(200,0,0)だと思うのですが,なんか,明るさ違くない?ってなりますよね.私もずっと思ってたんですけど,これが人間の感覚とRGBのズレらしいんですよね.
Lab色空間はそれを人間の感覚で明るさ"Lightness"の次元であるLと色の次元である"a/b"で構成されています.
左上はL=70で,右上はL=42でずいぶん明るさの値が違ってきています.なんだか人間の感覚と一致している気がします.さらに,右上の赤に対応する明るさの緑は,実は,右下の緑(R,G,B)=(0,122,0)らしいんですよね.感覚としては正しい気がします.たまたまなんですけど,この赤と緑のセットがクリスマスカラー感あります.
じゃ,あ左上に対応する明るさの赤はなになのかというと,左下の色になって,赤というよりオレンジって感じですね.でも妥当な明るさな感じはします.
スーパーピクセル
話は変わってスーパーピクセルなんですが,コンピュータビジョンの分野で見た目の境界をうまいこと抽出したいというモチベーションで前処理のひとつとしてよく使われる手法です.
スーパーピクセルの例 SLIC法1
このスーパーピクセルを計算するときにSLIC法1と呼ばれる手法では,さきほどのLab色空間の値とXY座標の2つの観点で(スーパーじゃない普通の)ピクセルの類似度をはかっていきクラスタリングすることでスーパーピクセルをつくっていきます.見た目の境界は人間が思う見た目なので,RGBよりもLabのほうが都合がいいってわけです.色が似ていて,座標が近いものは同じになるだろうということです.
元画像
SLIC法
RGBでSLIC法
SLIC法をLabではなくRGBを使った場合,顔まわりの領域がやたら細かくなっていることがわかる.一方,Labの場合は,顔の面を綺麗に捉えられているように思える.このように同じアルゴリズムでも単純に利用する空間を変換するだけでだいぶ結果が変わってくるのがわかっておもしろいという話でした.
今回も日付変わる手前でぎりぎり滑り込み.