Your SlideShare is downloading. ×
Oppai-Detect 3
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Oppai-Detect 3

20,062
views

Published on

Oppai-Detect 3 on GXEB#01 …

Oppai-Detect 3 on GXEB#01
by yusukebe

Published in: Entertainment & Humor

1 Comment
15 Likes
Statistics
Notes
No Downloads
Views
Total Views
20,062
On Slideshare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
41
Comments
1
Likes
15
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Oppai-Detect 3 yusukebe 2010/11/26 GXEB #01 @ NAVER JAPAN
  • 2. 自己紹介 •  Yusuke Wada(和田裕介) •  1981/12/23 •  Kamakura, Japan. •  Wadit Inc. •  Perl Engineer •  Founder of YourAVHost etc. h"p://youravhost.net/
  • 3. Oppai-Detect 画像のおっぱい部分を自動認識させる挑戦
  • 4. 目的 •  おっぱいが好きだ •  おっぱい画像をたくさん集めたい •  収集の精度を高めたい •  おっぱい部分を自動で検出したい
  • 5. 応用例 •  放送禁止画像の検出 – 画像投稿サイト •  スパム対策 •  子供向けサイトフィルタリング •  おっぱい画像の収集
  • 6. 手法 •  OpenCVを使用 – Intelが開発・公開したオープンソースの画像処理 向けのライブラリ – パターン認識として物体検出(Object- Detection)の機能を備えている •  学習(Training) •  認識・検出(Detection)
  • 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. Result
  • 9. 今回のチャレンジ 1. 画像を集める 2. 学習ツール作成 3. ひたすらおっぱいを囲む おっぱい画像を集めて おっぱいの場所を指定して 学習ソフトに学習させて 検出のためのデータを作る
  • 10. Term of Images •  Positive Image – 対象物が写っている画像 – 精度を求めるには7000-8000枚 •  Negative Image – 対象物が写っていない画像 – 3000枚
  • 11. 1. 画像を集める •  「いかにして大量のおっぱい画像を集めるか」 •  Web API の制限 –  Google Ajax Search •  最大件数64枚 –  Yahoo 画像検索 API •  最大件数1,000枚 •  10,000枚以上は集めたい –  AV女優名のリストを使って解決 •  「AV女優A おっぱい」 •  「AV女優B おっぱい」 •  …
  • 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. 29,065枚
  • 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. 学習ツール作成 •  positive.datとnegative.datを作る •  収集した画像に対象物があったら囲む –  その部分の座標と画像名をpositive.datに書き込む –  もし対象物が無かったらnegative.datへ •  閲覧・囲み作業をWebブラウザで行う •  HTTP/Webアプリ – use Plack; •  Javascriptフロントエンド – strokeRect/HTML5
  • 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. ひたすらおっぱいを囲む
  • 18. Haartraining-App デモ
  • 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. Oppai-Detect デモ
  • 21. 実験結果 •  正面で画像サイズが的確なら認識される •  誤認識はある – へそ – 膨らんでいる部位
  • 22. 考察 •  おっぱい画像の学習 – おっぱいにもたくさんある •  正面乳/横乳/下乳/上乳/微乳/巨乳… – どこまでがおっぱいか? •  学習に対するコスト – ソーシャルな力を利用したい
  • 23. 今後 •  多様なおっぱいに対するポリシー策定 •  学習アプリの運用化 •  「みんなで作るOppai-Detect」?
  • 24. Oppai-Detect End.