長岡技術科学大学 オープンハウス2006

長岡技術科学大学
オープンハウス2006
『美人フィルタ』
小山工業高等専門学校
 電気情報工学科 4年
 川上 泉

『美人フィルタ』の研修目的


MATLABを用いて画像処理の基礎技術を修
得し、またRGB空間やHSV空間などの色相空
間の基本概念を理解する。
美容整形や化粧などの美人になる方法はい
くつもあるが、画像処理技術により、より簡単
に“美人に見せる”。
基礎技術
色空間とは
色空間とは、色をコンピュータで扱うために
複数の数値の組み合わせで表現したもの
である。
色空間にはさまざまな種類があるが、今
回の課題では、扱いやすいRGB色空間と、
HSV色空間を用いる。
RGB色空間
最も一般的な色空間で、様々な色を、赤(Red)、緑
(Green)、青(Blue)の光の三原色の組み合わせで
表現する色空間である。
例
RGB(x,y,1) : 赤単色の画像
RGB(x,y,2) : 緑単色の画像
RGB(x,y,3) : 青単色の画像
このような3色の画像を重ねることにより
カラー画像を表現する。
RGB色空間図
HSV色空間
HSVとは色相(Hue)、彩度(Saturation)、明度(Valu
e)の三つの成分でカラーを表現するものであり、画像処
理などに適した色空間である。
例
HSV(x,y,1) : 色相のみの画像
HSV(x,y,2) : 彩度のみの画像
HSV(x,y,3) : 明度のみの画像
このような3つの画像を重ねることにより
カラー画像を表現する。
HSV色空間図
RGB色空間→HSV色空間への変換
今回の課題では、RGB色空間で画像を取り込むので、
画像処理を行う際にHSV色空間に変換する必要がある。
変換するには、MATLABにはrgb2hsv()という関数もある
が、次のような式を用いてもよい。
・RGB→HSV変換式
MAX=max(R,G,B)
MIN=min(R,G,B)
V=MAX
S=(MAX-MIN)/MAX
Cr=(MAX-R)/(MAX-MIN)
Cg=(MAX-G)/(MAX-MIN)
Cb=(MAX-B)/(MAX-MIN)
H=
Cb-Cg
2+Cr-Cb
4+Cg-Cr
R=MAX
G=MAX
B=MAX
H=60×H
H=H+360
H<0
グレイスケール(白黒)画像の表現法
コンピュータではグレイスケール画像は、2次元
配列を用いて表現する。
例えばピクセル(画素)数が256×256という画
像があるとする。その画像の各画素の座標を(x,
y)とすると、大きさが[256,256]という2次元配
列を用意し、その対応する座標[x,y]に白(=1)
もしくは黒(=0)を代入してやれば、よい。
カラー画像の表現法
カラー画像の場合は、白黒画像とは異なり、2次元ではな
く3次元の配列を用いて画像を現す。
例えば、ピクセル数が256×256のカラー画像をRGB
色空間で表す場合、大きさが[256,256,3]という配列
を用意し[x,y,1]にもとの画像の対応する座標(x,y)の
赤成分だけを代入することにより赤一色だけの画像を作
る。同じように[x,y,2]に緑成分、[x,y,3]に青成分を
代入し緑のみの画像、青のみの画像を作る。このように
してできた[x,y,1~3]の3つの単色の画像を重ねること
により、カラー画像を表現するのである。
微分画像の作成方法
微分画像を作成するには、フィルタをかけ
る画素X(i,j)の周辺の画素値の重みつき
移動平均をとる方法もあるが、MATLAB
には、filter2(F,X)という関数があり、原画
像X、フィルタ係数Fを入れるだけで微分画
像を取ることもできる。
フィルタ係数には様々な種類があり、用い
るものによってその効果も様々である。
フィルタ係数
Y方向微分フィルタ
;X方向のラインを強調する
-1 -1 -1
0
0
0
1
1
1
X方向微分フィルタ
;y方向のラインを強調する
4方向ラプラシアン
;上下左右4方向の
ラインを強調する
0
1
0
1
-4
1
0
1
0
8方向ラプラシアン
;上下左右斜の8方向の
ラインを強調する
-1
0
1
1
1
1
-1
0
1
1
-8
1
-1
0
1
1
1
1
「美人フィルタ」
一般的な美人の特徴
美人と言っても、個人の趣味や主観による
ところが大きいが、一般的には次のような特
徴を持つ人は「美人」といえる。



目が大きくてパッチリ
色白で明るい顔色
鼻や口が大きすぎずバランスが取れている
「美人フィルタ」の概要
原画像の
取り込み
&
肌色領域
の抽出
ノイズ除去
微分画像作成
RGB→HSV変換
「美人」完成
色相、彩度、
明度の補正
輪郭補正
原画像の取り込み
原画像
美人にしたい画像を
MATLABに取り込む。
また、このとき取り込ん
だ画像はRGB色空間な
ので、画像処理をしやすく
するために、この段階で
HSV色空間に変換して
おく。
肌色領域の抽出
肌色は、HSV空間で表現すると、大体次の範囲くらいなので、この
範囲に納まる色(肌色)は白、納まらないもの(肌色以外)は黒として、
肌色の部分を抽出する。
HSV空間の肌色領域例
0≦H(色相)≦0.2
0.3≦S(彩度)≦0.9
0.3≦V(明度)≦0.9
原画像
肌色領域抽出後
肌色領域抽出
ノイズ除去
肌色領域の抽出で肌色の部分を取り出したが、どうしても、
似た色の顔以外の部分が出てしまうので、それを取り除
く作業がノイズ除去である。
これにより、次の行程での顔部分のみへの画像処理を
することができる。
ノイズ除去後
肌色抽出画像
ノイズ除去
微分画像作成
微分画像とは、数値の変化の大きい部分が表示された画
像である。
今回の場合、顔が白(0,0,1)それ以外が黒 (0,0,
0)なので、その境界つまり、輪郭部分だけ取り出すこと
ができる。
微分画像
ノイズ除去後画像
微分画像作成
輪郭補正
原画像から、微分画像を引いてやる事により輪郭付近が
暗くなるので、アイシャドーのような効果を得ることができ、
目が大きく見え美人になる。
ただし、このままだと、全体的に暗くなってしまうため、美
人に見えにくいので、次の行程で明るさなどを補正してや
る必要がある。
原画像
輪郭補正後
輪郭補正
色相、彩度、明度の補正
輪郭補正後の画像が、暗すぎる場合は、画像をHSV表示したときの
V(明度)の値に定数を掛けてやればよい。明度の値が定数倍される
ことにより、補正後の画像も、明るさが増し、より美人に見えるのであ
る。
同じように、色合いがおかしい場合はH(色相)の値を、彩度がたりな
い場合はS(彩度)の値を変えてやればHSVの値が補正できる。
補正前
明度補正後
色相、彩度、
明度の補正
「美人」完成
各行程での画像
原画像
肌色抽出
ノイズ除去後
「美人」
輪郭補正後
微分画像
“逆”美人フィルタ
美人フィルタと逆の処理(輪郭を明るく、顔色を暗
く)をしてやることにより、元の画像より美人に見
えなくすることも可能である。
美人処理後
逆美人処理後
原画像
美人フィルタの欠点、問題点





肌色領域の判定のHSVの値の範囲を見つける
のが難しい。
このフィルタでは、目は大きくなったように見える
が、同時に口や鼻も大きく見えてしまう。(口や鼻
はあまり大きくないほうが美人に見える。)
人の趣味の違いによっては「美人」に見えないか
もしれない。
元の画像によってはあまり美人にならないかもし
れない。
美人に見えるのはモデルによるところも大きい。
課題



鼻や口が大きく見えるのを防ぐようにする。
(目だけを大きくする。)
簡単に肌色のHSVの領域を探す方法を
見つける。
目を大きく見せることや、顔を明るく見せる
以外にどんなことをすれば美人になるかを
いろいろと試してみる。
まとめ
今回作成した「美人フィルタ」では、“美人に見
せる”ということで、ひとそれぞれの趣味や主観
によるところが大きく、人によっては美人になって
ないと言うかもしれないけれど、自分は、前より
美人になったと思うので、とても満足のいく結果
でした。
また、基礎だけど画像処理の具体的な方法を
学ぶことができて、とてもいい経験になりました。
終