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