Oppai-Detect 3
yusukebe
2010/11/26
GXEB #01 @ NAVER JAPAN
自己紹介
•  Yusuke Wada(和田裕介)
•  1981/12/23
•  Kamakura, Japan.
•  Wadit Inc.
•  Perl Engineer
•  Founder of YourAVHost etc.
h...
Oppai-Detect
画像のおっぱい部分を自動認識させる挑戦
目的
•  おっぱいが好きだ
•  おっぱい画像をたくさん集めたい
•  収集の精度を高めたい
•  おっぱい部分を自動で検出したい
応用例
•  放送禁止画像の検出
– 画像投稿サイト
•  スパム対策
•  子供向けサイトフィルタリング
•  おっぱい画像の収集
手法
•  OpenCVを使用
– Intelが開発・公開したオープンソースの画像処理
向けのライブラリ
– パターン認識として物体検出(Object-
Detection)の機能を備えている
•  学習(Training)
•  認識・検出(...
OpenCVによる顔検出の例
•  Using “haarcascade_frontalface_alt2.xml”
use Image::ObjectDetect; 
use Imager; 
my $file = $ARGV[0] or d...
Result
今回のチャレンジ
1. 画像を集める
2. 学習ツール作成
3. ひたすらおっぱいを囲む
おっぱい画像を集めて
おっぱいの場所を指定して
学習ソフトに学習させて
検出のためのデータを作る
Term of Images
•  Positive Image
– 対象物が写っている画像
– 精度を求めるには7000-8000枚
•  Negative Image
– 対象物が写っていない画像
– 3000枚
1. 画像を集める
•  「いかにして大量のおっぱい画像を集めるか」
•  Web API の制限
–  Google Ajax Search
•  最大件数64枚
–  Yahoo 画像検索 API
•  最大件数1,000枚
•  10,0...
use Acme::Porn::JP;
•  http://github.com/yusukebe/Acme-Porn-JP
use Acme::Porn::JP; 
…; 
my $porn = Acme::Porn::JP‐>new; 
m...
29,065枚
Haartrainingツールによる学習
1.  positive.dat/negative.dat の作成 
2.  $ opencv_createsamples ‐info positive.dat ‐
vec a.vec 
3.  $ o...
学習ツール作成
•  positive.datとnegative.datを作る
•  収集した画像に対象物があったら囲む
–  その部分の座標と画像名をpositive.datに書き込む
–  もし対象物が無かったらnegative.datへ
...
Haartraining-App
•  http://github.com/yusukebe/Haartraining-App
yusuke@macmini:~/work/oppai‐detect/temp/Haartraining‐App$ ...
ひたすらおっぱいを囲む
Haartraining-App
デモ
opencv_haartrainingによる学習
•  Positive Image 2,000枚
•  Negative Image 2,000枚
•  nstage 10 stages
Mac mini / OSX 10.5
2.26 GH...
Oppai-Detect
デモ
実験結果
•  正面で画像サイズが的確なら認識される
•  誤認識はある
– へそ
– 膨らんでいる部位
考察
•  おっぱい画像の学習
– おっぱいにもたくさんある
•  正面乳/横乳/下乳/上乳/微乳/巨乳…
– どこまでがおっぱいか?
•  学習に対するコスト
– ソーシャルな力を利用したい
今後
•  多様なおっぱいに対するポリシー策定
•  学習アプリの運用化
•  「みんなで作るOppai-Detect」?
Oppai-Detect
End.
Oppai-Detect 3
Upcoming SlideShare
Loading in...5
×

Oppai-Detect 3

20,724

Published on

Oppai-Detect 3 on GXEB#01
by yusukebe

Published in: Entertainment & Humor
1 Comment
16 Likes
Statistics
Notes
No Downloads
Views
Total Views
20,724
On Slideshare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
41
Comments
1
Likes
16
Embeds 0
No embeds

No notes for slide

Oppai-Detect 3

  1. 1. Oppai-Detect 3 yusukebe 2010/11/26 GXEB #01 @ NAVER JAPAN
  2. 2. 自己紹介 •  Yusuke Wada(和田裕介) •  1981/12/23 •  Kamakura, Japan. •  Wadit Inc. •  Perl Engineer •  Founder of YourAVHost etc. h"p://youravhost.net/
  3. 3. Oppai-Detect 画像のおっぱい部分を自動認識させる挑戦
  4. 4. 目的 •  おっぱいが好きだ •  おっぱい画像をたくさん集めたい •  収集の精度を高めたい •  おっぱい部分を自動で検出したい
  5. 5. 応用例 •  放送禁止画像の検出 – 画像投稿サイト •  スパム対策 •  子供向けサイトフィルタリング •  おっぱい画像の収集
  6. 6. 手法 •  OpenCVを使用 – Intelが開発・公開したオープンソースの画像処理 向けのライブラリ – パターン認識として物体検出(Object- Detection)の機能を備えている •  学習(Training) •  認識・検出(Detection)
  7. 7. OpenCVによる顔検出の例 •  Using “haarcascade_frontalface_alt2.xml” use Image::ObjectDetect;  use Imager;  my $file = $ARGV[0] or die 'Filename is needed!';  my $img = Imager‐>new;  $img‐>read( file => $file ) or die $img‐>errstr;  my $cascade  = './haarcascade_frontalface_alt2.xml';  my $detector = Image::ObjectDetect‐>new($cascade);  my @faces    = $detector‐>detect($file);  for my $face (@faces) {      $img = $img‐>box(          xmin   => $face‐>{x},          xmax   => $face‐>{x} + $face‐>{width},          ymin   => $face‐>{y},          ymax   => $face‐>{y} + $face‐>{height},          color  => 'red',          filled => 0,      ) or die $img‐>errstr;  }  $img‐>write( file => 'out.jpg' ) or die $img‐>errstr; 
  8. 8. Result
  9. 9. 今回のチャレンジ 1. 画像を集める 2. 学習ツール作成 3. ひたすらおっぱいを囲む おっぱい画像を集めて おっぱいの場所を指定して 学習ソフトに学習させて 検出のためのデータを作る
  10. 10. Term of Images •  Positive Image – 対象物が写っている画像 – 精度を求めるには7000-8000枚 •  Negative Image – 対象物が写っていない画像 – 3000枚
  11. 11. 1. 画像を集める •  「いかにして大量のおっぱい画像を集めるか」 •  Web API の制限 –  Google Ajax Search •  最大件数64枚 –  Yahoo 画像検索 API •  最大件数1,000枚 •  10,000枚以上は集めたい –  AV女優名のリストを使って解決 •  「AV女優A おっぱい」 •  「AV女優B おっぱい」 •  …
  12. 12. use Acme::Porn::JP; •  http://github.com/yusukebe/Acme-Porn-JP use Acme::Porn::JP;  …;  my $porn = Acme::Porn::JP‐>new;  my $actress_list = $porn‐>actress();  for my $actress ( @$actress_list ){      search("$query $actress”);  }  …;  $ perl ‐MAcme::Porn::JP ‐e '$p = Ace::Porn::JP‐>new; print scalar  @{$p‐>actress};’  4502 
  13. 13. 29,065枚
  14. 14. Haartrainingツールによる学習 1.  positive.dat/negative.dat の作成  2.  $ opencv_createsamples ‐info positive.dat ‐ vec a.vec  3.  $ opencv_haartraining ‐data haarcascade ‐ vec a.vec ‐bg negative.dat ‐nstages 20   positive.dat  [filename] [# of objects] [[x y width height] [... 2nd object] ...]  images/01.jpg 1 140 100 45 45  nega2ve.dat  images/neg‐01.jpg  images/neg‐02.jpg 
  15. 15. 学習ツール作成 •  positive.datとnegative.datを作る •  収集した画像に対象物があったら囲む –  その部分の座標と画像名をpositive.datに書き込む –  もし対象物が無かったらnegative.datへ •  閲覧・囲み作業をWebブラウザで行う •  HTTP/Webアプリ – use Plack; •  Javascriptフロントエンド – strokeRect/HTML5
  16. 16. Haartraining-App •  http://github.com/yusukebe/Haartraining-App yusuke@macmini:~/work/oppai‐detect/temp/Haartraining‐App$ tree ./  ./  |‐‐ data  |   |‐‐ images  |   |   `‐‐ 000001.jpg  |   |‐‐ negative.dat  |   `‐‐ positive.dat  |‐‐ haartraining.psgi  `‐‐ html      |‐‐ haartraining.js      `‐‐ index.html  3 directories, 6 files  $ plackup haartraining.psgi   HTTP::Server::PSGI: Accepting connections at http://0:5000/ 
  17. 17. ひたすらおっぱいを囲む
  18. 18. Haartraining-App デモ
  19. 19. opencv_haartrainingによる学習 •  Positive Image 2,000枚 •  Negative Image 2,000枚 •  nstage 10 stages Mac mini / OSX 10.5 2.26 GHz Intel Core 2 Duo OpenCV 2.1.0 ソースからコンパイル
  20. 20. Oppai-Detect デモ
  21. 21. 実験結果 •  正面で画像サイズが的確なら認識される •  誤認識はある – へそ – 膨らんでいる部位
  22. 22. 考察 •  おっぱい画像の学習 – おっぱいにもたくさんある •  正面乳/横乳/下乳/上乳/微乳/巨乳… – どこまでがおっぱいか? •  学習に対するコスト – ソーシャルな力を利用したい
  23. 23. 今後 •  多様なおっぱいに対するポリシー策定 •  学習アプリの運用化 •  「みんなで作るOppai-Detect」?
  24. 24. Oppai-Detect End.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×