Internet Explorer: グラビア
ラベル グラビア の投稿を表示しています。 すべての投稿を表示
ラベル グラビア の投稿を表示しています。 すべての投稿を表示

2015年12月25日金曜日

【全自動】水玉コラ生成マシーン

【全自動】水玉コラ生成マシーン




聖夜なので表題のものを作った。
processing で書いたアプリだけど、この記事の内容はほぼ OpenCV の話です。


仕組み

  1. 水着を自動認識して「隠す」とマーク
  2. 顔を自動認識して「見せる」とマーク
  3. マークに沿って円充填


水着領域の自動認識

最初のアプローチ

  • OpenCV を使って肌色認識
  • 選択領域を膨張 -> 収縮させる
  • 肌色との差分を取れば水着領域が完成


肌色認識

先人が大量に居た。RGB 色空間ではなく HSV 色空間を使うというのがコツなようだ。

HSV 色空間なら影になっている部分も抽出できる。
今回は Hue: 7..15 を肌色として定義した。
PImage detectHada() {
  // 作業用に hue で grayscale にする
  opencv.loadImage(img);
  opencv.useColor(HSB);
  opencv.setGray(opencv.getH().clone());
  // 肌色は 7..15 と定義。inRange で取り出す
  opencv.inRange(7, 15);

  // ノイズ除去 MORPH_OPEN
  opencv.erode();
  opencv.dilate();

  return opencv.getSnapshot();
}


膨張・収縮

欲しいのは肌色領域ではなく水着領域なので、肌と肌の間の空間を選択する必要がある。
膨張 -> 収縮し、最初との差分を取ることで取得できるのではないかと考えた。

// 輪郭を広げて戻す
for (int i = 0; i < 10; i++) { opencv.dilate(); }
for (int i = 0; i < 10; i++) { opencv.erode(); }
が、膨張する際に水着領域を上手に隠せないパターンが多い。
問題はループで 10 回回しているところにあり、本来は膨張・収縮時にパラメータを渡して解決すべきである。 デフォルトのパラメータのまま無理やりループで代替したところ、望むような膨張効果が得られていない。
opencv-processing でパラメータを渡す方法を調べるのに時間がかかりそうだったので次善の策に頼ることにした。


彩度の高いもの=水着と仮定する

グラビアの水着はなぜか彩度の高いものが採用されていることが多いので「彩度の高いもの」という条件で水着が抽出できる。
いくつかパラメータを変えつつ試したが、
  • Saturation: 180..255 (彩度の高いものを水着と仮定する)
  • Brightness: 8..247 (あまりに暗いもの、明るすぎるものを除外する)
という絞り込みで、一定の条件の水着に対しては判定が効くようになった。

void detectMizugi() {
  // 水着を彩度 180..255, 明度 8..247 と定義。inRange で取り出す
  opencv.loadImage(img);
  opencv.useColor(HSB);
  opencv.setGray(opencv.getS().clone());
  opencv.inRange(180, 255);
  PImage s = opencv.getSnapshot();

  opencv.loadImage(img);
  opencv.useColor(HSB);
  opencv.setGray(opencv.getB().clone());
  opencv.inRange(8, 247);
  PImage b = opencv.getSnapshot();

  // TODO: 無駄に PImage に一度変換して blend しているが
  // おそらく OpenCV のみで可能
  s.blend(b, 0, 0, width, height, 0, 0, width, height, MULTIPLY);

  opencv.loadImage(s);
  opencv.erode();
  opencv.dilate();

  ArrayList<Contour> contours = opencv.findContours();
  for (Contour contour : contours) {
    // 面積が小さすぎるものはノイズと判断して弾く
    if (contour.area() > 25) {
      mizugiAreaList.add(contour);
    }
  }
}


顔領域の自動認識

OpenCV に任せて 2 行で解決した。
opencv.loadCascade(OpenCV.CASCADE_FRONTALFACE);
Rectangle[] faces = opencv.detect();

デフォルトだと誤認識率が 30% ぐらいあるが、OpenCV に同梱されている分類器を複数重ね合わせて使う のように、認識率を上げる手段がまだあるようだ。


円充填

ここまでで「隠す領域」と「隠してはいけない領域」が抽出できたので、 いい感じに円で埋めていく作業をする。
等で勉強したのだが、美しい水玉コラを作るには
  • 水着を全て隠す
  • 顔は必ず見せる
  • 水玉は重ねない
  • 水玉の数は多くても 15 個まで。少なければ少ないほど良い
といった標準的なルールの他に
  • 穴が直線上に並ばないようにする
    • 隠された領域が水着っぽく見えてしまい、「らしさ」が薄れる
  • 肩、くびれを見せる
    • ボディラインを強調することができ、より完成度が高く見える
  • 谷間・アゴを見せる
    • 「らしさ」が一層高まる
といったテクニックがあるようだ。
とはいえ「くびれを学習させた教師データ」なるものは存在しないので、右上、左上から先に開けることでなるべく肩が含まれることを期待するにとどめた。
ここでゲームで培った当たり判定の技術 (OBB と点の当たり判定、凸包と点の当たり判定等) が生きたんだが、 処理を簡便化するために水着領域を凸包にしたことで谷間を見せることができなくなってしまった。


(黄色の部分が当たり判定になるので谷間は必ず隠れてしまう)
ここは今後改善したい。



おまけ (曇りガラス効果)

OpenCV には inpaint という演算があり、これを用いると「選択領域を取り除き、付近のピクセルを利用していい感じに埋める」ということができる。
と、いうことは「水着を取り除き」「ガウスボカし」で曇りガラス表現ができるのでは……!



まとめ

OpenCV 超便利。
全自動で水玉を適用できるようになったので「動画に適用できるのでは?」とか「Chrome 拡張等で全 web ページに適用できる?」とか夢が広がっている。
また、人間が頭で考えている手順はだいたい自動化できるというのも再認識した。



偉大なる先人たち





http://blog.onk.ninja/2015/12/24/auto_circle_collage

2015年10月8日木曜日

橋本マナミのコスプレが雑すぎて草wwwwwwww

橋本マナミのコスプレが雑すぎて草wwwwwwww

8c8646907948e1d807cfc2321a615458

1: エンタメちゃんねる 2015/10/07(水) 16:19:36.66 ID:???*.net
10月6日に都内で行われた3DCGアニメ映画『GAMBA ガンバと仲間たち』(10月10日公開)の
先行上映会に女優の橋本マナミが登場し、セクシーな"ネズミ"コスプレで会場を魅了した。

小さなネズミたちが力を合わせて巨大な敵に立ち向かう壮大な冒険物語
『冒険者たち ガンバと15ひきの仲間』を映像化した本作。イベントには主役のガンバを演じた
声優の梶裕貴と河村友宏監督が登壇し、橋本は劇中で大活躍するネズミたちにかけた
"ネズミ"年生まれの応援ゲストとして紹介された。

上映を祝う花束を持って登場した橋本は、グレーのミニワンピースにしっぽと耳を付けた姿。ひと目見て
「すごい!」と驚きの声をあげた梶は、「あまりのスタイルのよさに、直視できません」とタジタジの
様子だった。河村監督も「照れてしまって隣に立てないですね。梶さんが間にいてくれてよかった」と
コメントするなど、橋本は会場だけではなく壇上の参加者も魅了していた。

9月23日に始球式を行った東京ヤクルトスワローズが優勝し、一部で"勝利の女神"と呼ばれている橋本。
「映画も大ヒットすることで、本物の"勝利の女神"と呼ばれたい」と意気込みを語った。

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

no title

http://news.mynavi.jp/news/2015/10/07/230/

 

o0281040012711473970

橋本 マナミ(はしもと まなみ、本名:細川 愛実(ほそかわ まなみ)、1984年8月8日 - )は、日本のグラビアアイドル・女優。アービング所属・業務提携ハーモニープロモーション。山形県山形市出身[1]。山形城北女子高等学校→堀越高等学校 卒業。旧芸名:橋本 愛実(読み名同じ)。

>>Wikipedia-橋本マナミ




爆チュー問題の部屋 DVD-BOX