Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AV 画像認識とその周辺 - UT Startup Gym 講演資料

18,868 views

Published on

  • Be the first to comment

AV 画像認識とその周辺 - UT Startup Gym 講演資料

  1. 1. AV画像認識技術とその周辺 UT Startup Gym 2013/02/09 ぱろすけ @parosky0 http://parosky.net
  2. 2. 配布物ぱろすけ. 大規模AV画像データベースと類似顔画像検索を用いたAV検索システム. あの人の研究論文集, 検索システムVol. 3, No. 2, pp. 7-10, 2012. ベストペーパー賞. オンラインでも手に入ります http://parosky.net/wordpress/?p=1506
  3. 3. 予定1.自己紹介 ← やや長い 3.関連面白研究 (論文参照) 1. 趣味 1. 画像補完 2. 職歴 2. スケッチからの写真検索 3. 研究 3. 近年の顔認識2.AV顔画像検索ツール 4.まとめ 1. 概要 2. システム詳細 5.質疑応答
  4. 4. 1. 自己紹介● ぱろすけ ● http://parosky.net ● 東大 情報理工 修士1年 ● Activity – プログラムとか書いてる – ベンチャーとかやってた – 研究してる – 就活してる
  5. 5. 1. 1. プログラミング● 趣味でいろいろ書いてる ● ツール: AV顔画像検索, 人気エロ動画DL, 2chまとめサイト自動生成, Twitter画像まとめサイト自動生成 ● Android: 『赤い配管工』, 『ゴリラ』 ● Twitterボット: @parosky1, @anniv_salad, @1000favs_ ● その他いくつかの小ネタ
  6. 6. 1. 1. 1. ツール● AV顔画像検索 ● 後述● 人気エロ動画DL ● XVIDEOS からはてブ数が多いものを自動で収集● 2chまとめサイト自動生成 ● 全盛期で 5,000PV / day くらい● Twitter画像まとめサイト自動生成 ● 現在 3,000PV / day くらい
  7. 7. 1. 1. 2. Android● 赤い配管工 (およそ30,000DL) ● タッチで操作する 横スクロール2Dクソゲー ● Androidの練習的な感じで作った● ゴリラ (およそ700DL) ● 「ゴリラを眺めて癒されよう!」 ● いわゆる「鏡」
  8. 8. 1. 1. 3. Twitterボット● @parosky1 (約80,000フォロワー) ● 発言は僕のメインアカウントのコピー ● フォロワーを増やすためのいくつかの工夫● @anniv_salad (約1,700フォロワー) ● 全自動俵万智● @1000favs_ (約90,000フォロワー) ● 丸パクリボット @1000favs を丸パクリするボット
  9. 9. 1. 2. 職歴● ベンチャーとかやってた (2011/08 - 2012/10) ● Web系のスタートアップの創業メンバ ● ASCII とか WIRED とかに載ったらしい ● 某社の起業家支援プログラムに採択 ● Python/Django, JavaScript, ActionScript とか書いてた ● AWS でサーバの構築と管理とかしてた● 今も別のベンチャー的なのに一応コミット
  10. 10. 2. AV顔画像検索ツール デモします
  11. 11. 2. 1. 1. 反響● 反響(半月間) ● 反響(長期) ● 85,000PV ● 週刊アスキーに掲載 ● 3,500ツイート ● UT Startup Gym から 声がかかった ● 1,200はてブ ● 論文がベストペーパー取った ● 500いいね ● いろんな人と仲良くなった ● 200本の売上 (=10万円) AVすごい
  12. 12. 2. 1. 2. システム概要● データベースの構築 ● 検索 1. DMM. R18 からAVのサンプ 1. 入力画像から顔検出 ル画像を取得(16万タイトル 2. 特徴抽出 170万枚) 3. データベースを近傍探索 2. 画像群から顔検出して保存 (35万枚) 4. 結果をタイトルと合わせて表示 3. 特徴抽出 (2.5GB) 4. 主成分分析で圧縮 (70MB) 5. 保存 特徴抽出: 生データから推定や分析に有用な情報を抽出すること. (ここでは「1枚の画像を何らかの方法で1本のベクトルに変換すること」) 主成分分析: データの冗長な部分を除いて次元を削減する手法. 近傍探索: 近くにあるデータを探すこと. 総当たりより効率的な方法がある. 顔検出: Viola & Jones の手法が有名.
  13. 13. 2. 2. 1. 特徴抽出● 画像そのままでは扱いづらい ● たとえば類似性はどう判断しよう? -> 全体の色合いを比べるとか? – 左の画像は 縦22px * 横22px * 3色 = 1,452次元のデータ – これを [赤, 緑, 青] = [0.2, 0.8, 0] と変換すれば3次元のデータに ● いろんな特徴量が提案されている – 大域特徴: Color Histogram, HOG, GIST, HLAC, ... – 局所特徴: SIFT, SURF, LBP, BRIEF, ... – 局所特徴のコーディング: Bog of Features, Fischer Vector, … – 今回は HOG を利用
  14. 14. 2. 2. 1. 特徴抽出● HOG (Histogram of Oriented Gradients) [Dalal et al., 05] ● 画像をグリッドで区切って それぞれで明るさの勾配の ヒストグラムを計算 ● 今回のシステムでは顔画像が 1,764次元のベクトルに Python/OpenCV を使えば 一瞬で計算可能 hog = cv2.HOGDescriptor((64, 64), (16, 16), (8, 8), (8, 8), 9) img = cv2.imread(face.jpg) h = hog.compute(img)
  15. 15. 2. 2. 2. 主成分分析● あんま意味のない次元を削る (荒っぽい解釈) ● データ量の削減, 「次元の呪い」の回避 ● 今回のシステムでは1,764次元 → 100次元に削減 [http://www.nlpca.org/] Python/SciKits を使えば 一瞬で計算可能 pca = sklearn.decomposition.PCA(dim) r = pca.fit_transform(data);
  16. 16. 2. 2. 3. 近傍探索● この画像はどの画像と近いか? → この画像の特徴ベクトルはどの画像の特徴ベクトルと近いか? → ベクトル空間上での距離を見ればいい (今回の実装)● 普通に総当たりでやってもいい ● が, もっと早い方法がいくつか提案されている ● 今回は FLANN [Muja et al., 09] を使用 [http://www.emeraldinsight.com/cont ent_images/fig/0870280310006.png] Python/OpenCV を使えば 一瞬で計算可能 index = cv2.flann_Index(features, {"algorithm":0}) idx, dist = index.knnSearch(data, n, params={})
  17. 17. 2. 2. 4. 顔検出● Viola と Jones による手法が有名 ● 詳細は省略 ● 「あー, あれね, Haar-like 特徴と AdaBoost で Attentional Cascade だよね」とか言えば 知ったかぶりできる [http://www.name- list.net/img/images.ph p/Linewih_5.jpg] Python/OpenCV を使えば 一瞬で計算可能 hc = cv2.cv.Load("haarcascade_frontalface_alt.xml") storage = cv2.cv.CreateMemStorage() img = cv2.imread(person.jpg) faces = cv2.cv.HaarDetectObjects(img, hc, storage)
  18. 18. 2. 1. 2. システム概要(再掲)● データベースの構築 ● 検索 1. DMM. R18 からAVのサンプ 1. 入力画像から顔検出 ル画像を取得(16万タイトル 2. 特徴抽出 170万枚) 3. データベースを近傍探索 2. 画像群から顔検出して保存 (35万枚) 4. 結果をタイトルと合わせて表示 3. 特徴抽出 (2.5GB) 4. 主成分分析で圧縮 (70MB) 5. 保存 特徴抽出: 生データから推定や分析に有用な情報を抽出すること. (ここでは「1枚の画像を何らかの方法で1本のベクトルに変換すること」) 主成分分析: データの冗長な部分を除いて次元を削減する手法. 近傍探索: 近くにあるデータを探すこと. 総当たりより効率的な方法がある. 顔検出: Viola & Jones の手法が有名.
  19. 19. 以上, 画像の取り扱いの初歩(?)でした.これだけだとあまりに偏っているので いくつか関連研究を紹介します.
  20. 20. 3. 1. 画像補完 [Hays et al., 07]● 一部が欠損した画像を自動で補完● GIST 特徴で類似画像検索 → ポワソン画像合成● 大量の画像を用意するのがキモ (240万枚)Input Retrieval Output
  21. 21. 3. 1. 画像補完 [Hays et al., 07]Before Clip After
  22. 22. 3. 2. 1. スケッチ検索 [Shrivastava et al., 11]1.クエリ画像から HOG を抽出2.100万枚の画像と比較して画像特有の部分を算出3.それを用いて近傍探索による検索を行う
  23. 23. 3. 2. 2. スケッチ検索 [Zhou et al., 12]● スケッチ検索に適した特徴量を提案
  24. 24. 3. 2. 2. スケッチ検索 [Zhou et al., 12]● 縦, 横, 斜めの線がどこにどれだけあるか● 画像中のどこが重要か (←線が密集してるところ)
  25. 25. 3. 3. 近年の顔認識● Wright et al., 09 ● 入力画像 = 顔データベース画像の組み合わせ + 誤差● Yang et al., 11 ● あんまりにも誤差が大きい箇所を自動でフィルタリング Database Query Filter
  26. 26. 3. 4. 補足: 画像認識とは● 画像認識とは, 画像を識別 classification すること ● 手書き文字認識, 顔認識, シーン認識, 一般物体認識, ...● 画像認識は機械学習を伴うことが多い ● 顔認識: 大量の顔画像の特徴量から「顔の特徴量らしさ」を学習● 今回の AV 検索は画像認識なのか微妙 ● 画像を16万タイトルのどれかに classification する問題 ● 近傍探索しているだけであり機械学習していない – 機械学習するにはデータ数が不足
  27. 27. 4. まとめ● 内容のまとめ ● AV 類似顔画像検索ツールを題材として コンピュータビジョンの初歩の一部を紹介した ● ついでに関連する研究も少しだけ紹介した● 伝えたかったこと ● 画像のシンプルな取り扱いでこれくらいはできるよということ ● OpenCV/Python/NumPy/SciPy を使うと楽だよということ ● もう少しこういうスタートアップあってもいいよねということ● お詫び ● もう少し体系的な話のほうがよかったのかな
  28. 28. 5. 質疑応答 何でもどうぞ.

×