25
ニコニコの人気動画から ダイジェストを編集・作成する Hadoopアプリケーション

水着回抽出機

  • Upload
    amayaw9

  • View
    382

  • Download
    1

Embed Size (px)

Citation preview

Page 1: 水着回抽出機

ニコニコの人気動画からダイジェストを編集・作成する

Hadoopアプリケーション

Page 2: 水着回抽出機

2

背景

学生はとにかく忙しい– 趣味(プログラミング, 麻雀, マンガ...)– アルバイト, インターンシップ– 飲み会– 研究, 授業出席, レポート

● ナニかしら捗らせることはできないだろうか?

Page 3: 水着回抽出機

3

ナニかしら...

Page 4: 水着回抽出機

4

目的

大量の動画を解析して高速にダイジェストを編集・作成するアプリケーションの開発

Page 5: 水着回抽出機

5

つまりは...

Page 6: 水着回抽出機

6

肌色検出して

Page 7: 水着回抽出機

7

1クール分のアニメから

Page 8: 水着回抽出機

8

水着回のみの

Page 9: 水着回抽出機

9

ダイジェストを生成したい

Page 10: 水着回抽出機

10

なぜニコニコ動画なのか?– 動画取得APIが公開されている– 大量の動画が投稿されている– 著作権についての問題は無いはず

ニコニコ動画

Page 11: 水着回抽出機

11

Hadoopを用いる意義は?– ダイジェスト動画を作ろうとすれば大量の動画

ファイルを編集する必要がある– 各動画におけるダイジェスト抽出処理は独立なの

で並列分散可能

Apache Hadoop

Page 12: 水着回抽出機

12

設計①

実装すべきプログラム● 動画取得スクリプト

– 動画取得APIを叩く● mapper.rb

– 肌色検出・動画切り出し● reducer.rb

– 動画連結・ダイジェスト動画生成

Page 13: 水着回抽出機

13

設計②

工夫した所– Mapper/Reducer間の入出力は'\t'を区切り文字

にして受け渡す● KEY'¥t'VALUE

– 動画データ(ストリーム)の途中に'¥t'が混入してしまうかも

● HDFSで入出力を迂回– 切り出しを完了した動画ファイル名をKEYで渡す

Page 14: 水着回抽出機

14

概要図

HDFS HDFS

mapper

mapper

mapper

reducer

mapper

batch

Page 15: 水着回抽出機

15

HDFS HDFS

mapper

mapper

mapper

reducer

mapper

batch

ニコニコ動画から動画を所得動画をアップロード

Page 16: 水着回抽出機

16

動画取得スクリプト● 入力:インライン引数から検索キーワード取得

● 処理:ニコニコ動画から人気動画を取得– 検索の上位50~100とか– 動画のエンコードをMP4に揃える

● ImageMagic

● 出力:大量の動画をファイル出力

Page 17: 水着回抽出機

17

HDFS HDFS

mapper

mapper

mapper

reducer

mapper

動画からサムネ検出動画を切り出す

batch

Page 18: 水着回抽出機

18

mapper.rb● 入力:担当するファイル番号で取得

● 処理:ダイジェスト動画の生成– 肌色検出(ヒストグラム算出→スコア計算)– 動画分割

● FFmpeg

● 出力:ダイジェスト動画のファイル番号

Page 19: 水着回抽出機

19

HDFS HDFS

mapper

mapper

mapper

reducer

mapper

動画の連結ダイジェストの生成

batch

Page 20: 水着回抽出機

20

reducer.rb● 入力:生成されたダイジェストの番号を取得

● 処理:ダイジェスト動画の連結– 動画連結

● MP4Box

● 出力:結果を出力(動画はHDFSへ)

Page 21: 水着回抽出機

21

予備実験

ファイルの数を増やして掛かる処理時間を計測– timeコマンド(real time)– 同一ファイルについて処理

● MP4ファイル11979374バイト● JPGファイル5405バイト

– 比較対象(逐次処理 vs 16並列処理)

Page 22: 水着回抽出機

22

実験結果

Page 23: 水着回抽出機

23

評価

動画数100のとき● 入力データ量

– 入力ファイル1組あたり 11984779バイト– 11984779 × 100 バイト≒ 1.2 ギガバイト

● 処理時間の比較– ypc0600 : Hadoop = 3357.415 : 38.313– 87倍速くなった

Page 24: 水着回抽出機

24

まとめ

考察

Hadoopによって動画解析でもディスクIOを分散させてCPU資源を活かすことは十分に可能

→ やったぜ!!

今後

“人物検出”と”肌色検出”精度とか改善したい

【https://github.com/amayaw9/MovieExtractor】

Page 25: 水着回抽出機

25

ご清聴ありがとうございました。