SlideShare a Scribd company logo
1 of 25
Download to read offline
ニコニコの人気動画から
ダイジェストを編集・作成する
Hadoopアプリケーション
2
背景
学生はとにかく忙しい
– 趣味(プログラミング, 麻雀, マンガ...)
– アルバイト, インターンシップ
– 飲み会
– 研究, 授業出席, レポート
●
ナニかしら捗らせることはできないだろうか?
3
ナニかしら...
4
目的
大量の動画を解析して高速にダイジェストを編集・
作成するアプリケーションの開発
5
つまりは...
6
肌色検出して
7
1クール分の
アニメから
8
水着回のみの
9
ダイジェスト
を生成したい
10
なぜニコニコ動画なのか?
– 動画取得APIが公開されている
– 大量の動画が投稿されている
– 著作権についての問題は無いはず
ニコニコ動画
11
Hadoopを用いる意義は?
– ダイジェスト動画を作ろうとすれば大量の動画
ファイルを編集する必要がある
– 各動画におけるダイジェスト抽出処理は独立なの
で並列分散可能
Apache Hadoop
12
設計①
実装すべきプログラム
●
動画取得スクリプト
– 動画取得APIを叩く
●
mapper.rb
– 肌色検出・動画切り出し
●
reducer.rb
– 動画連結・ダイジェスト動画生成
13
設計②
工夫した所
– Mapper/Reducer間の入出力は't'を区切り文字
にして受け渡す
●
KEY'¥t'VALUE
– 動画データ(ストリーム)の途中に'¥t'が混入して
しまうかも
●
HDFSで入出力を迂回
– 切り出しを完了した動画ファイル名をKEYで渡す
14
概要図
HDFS HDFS
mapper
mapper
mapper
reducer
mapper
batch
15
HDFS HDFS
mapper
mapper
mapper
reducer
mapper
batch
ニコニコ動画から動画を所得
動画をアップロード
16
動画取得スクリプト
●
入力:インライン引数から検索キーワード取得
●
処理:ニコニコ動画から人気動画を取得
– 検索の上位50~100とか
– 動画のエンコードをMP4に揃える
●
ImageMagic
●
出力:大量の動画をファイル出力
17
HDFS HDFS
mapper
mapper
mapper
reducer
mapper
動画からサムネ検出
動画を切り出す
batch
18
mapper.rb
●
入力:担当するファイル番号で取得
●
処理:ダイジェスト動画の生成
– 肌色検出(ヒストグラム算出→スコア計算)
– 動画分割
●
FFmpeg
●
出力:ダイジェスト動画のファイル番号
19
HDFS HDFS
mapper
mapper
mapper
reducer
mapper
動画の連結
ダイジェストの生成
batch
20
reducer.rb
●
入力:生成されたダイジェストの番号を取得
●
処理:ダイジェスト動画の連結
– 動画連結
●
MP4Box
●
出力:結果を出力(動画はHDFSへ)
21
予備実験
ファイルの数を増やして掛かる処理時間を計測
– timeコマンド(real time)
– 同一ファイルについて処理
●
MP4ファイル11979374バイト
●
JPGファイル5405バイト
– 比較対象(逐次処理 vs 16並列処理)
22
実験結果
23
評価
動画数100のとき
●
入力データ量
– 入力ファイル1組あたり 11984779バイト
– 11984779 × 100 バイト≒ 1.2 ギガバイト
●
処理時間の比較
– ypc0600 : Hadoop = 3357.415 : 38.313
– 87倍速くなった
24
まとめ
考察
Hadoopによって動画解析でもディスクIOを分散
させてCPU資源を活かすことは十分に可能
→ やったぜ!!
今後
“人物検出”と”肌色検出”精度とか改善したい
【https://github.com/amayaw9/MovieExtractor】
25
ご清聴ありがとうございました。

More Related Content

Similar to 水着回抽出機

ニコニコ動画タグネットワーク
ニコニコ動画タグネットワークニコニコ動画タグネットワーク
ニコニコ動画タグネットワークTeruki Shinohara
 
インタラクションデザインにおけるオープン化事例の検討
インタラクションデザインにおけるオープン化事例の検討インタラクションデザインにおけるオープン化事例の検討
インタラクションデザインにおけるオープン化事例の検討Yosuke Sakai
 
「オリジナル時計」事前課題用テキスト
「オリジナル時計」事前課題用テキスト「オリジナル時計」事前課題用テキスト
「オリジナル時計」事前課題用テキストTairo Moriyama
 
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎schoowebcampus
 
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
非エンジニアのためのIT勉強会 ハイブリッドフレームワークKaz Furukawa
 
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2Saya Katafuchi
 
DLLAB Engineer Days:AIチームが履歴やリソース管理で疲弊してたので開発基盤作ってOSS化した話
DLLAB Engineer Days:AIチームが履歴やリソース管理で疲弊してたので開発基盤作ってOSS化した話DLLAB Engineer Days:AIチームが履歴やリソース管理で疲弊してたので開発基盤作ってOSS化した話
DLLAB Engineer Days:AIチームが履歴やリソース管理で疲弊してたので開発基盤作ってOSS化した話Kamonohashi
 
インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...
インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...
インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...Yosuke Sakai
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座DIVE INTO CODE Corp.
 
Quipperエンジニアセミナー 20121107
Quipperエンジニアセミナー 20121107Quipperエンジニアセミナー 20121107
Quipperエンジニアセミナー 20121107Akifumi Yokoi
 
Jupyterで運用やってみた
Jupyterで運用やってみたJupyterで運用やってみた
Jupyterで運用やってみたSatoshi Yazawa
 
ChainerMNをDocker containerで動かす
ChainerMNをDocker containerで動かすChainerMNをDocker containerで動かす
ChainerMNをDocker containerで動かすDaisuke Taniwaki
 
ハイブリットソーシャルゲームの現場
ハイブリットソーシャルゲームの現場ハイブリットソーシャルゲームの現場
ハイブリットソーシャルゲームの現場Shota Suzuki
 
opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2Takuya Nishimoto
 
Developers Summit 2014【13-C-3】Smashing Android UI, Androidデザインの極意
Developers Summit 2014【13-C-3】Smashing Android UI, Androidデザインの極意Developers Summit 2014【13-C-3】Smashing Android UI, Androidデザインの極意
Developers Summit 2014【13-C-3】Smashing Android UI, Androidデザインの極意Nobuya Sato
 
Webリソースを利用したDeep Learning ~地図タイルを例として
Webリソースを利用したDeep Learning  ~地図タイルを例としてWebリソースを利用したDeep Learning  ~地図タイルを例として
Webリソースを利用したDeep Learning ~地図タイルを例としてIWASAKI NOBUSUKE
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンスKaoru NAKAMURA
 
いぬねこ写真館
いぬねこ写真館いぬねこ写真館
いぬねこ写真館murajun1978
 

Similar to 水着回抽出機 (20)

ニコニコ動画タグネットワーク
ニコニコ動画タグネットワークニコニコ動画タグネットワーク
ニコニコ動画タグネットワーク
 
インタラクションデザインにおけるオープン化事例の検討
インタラクションデザインにおけるオープン化事例の検討インタラクションデザインにおけるオープン化事例の検討
インタラクションデザインにおけるオープン化事例の検討
 
「オリジナル時計」事前課題用テキスト
「オリジナル時計」事前課題用テキスト「オリジナル時計」事前課題用テキスト
「オリジナル時計」事前課題用テキスト
 
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎
増井雄一郎の「wri.pe」を事例に学ぶ、自作サービスの作り方〜サービスデザイン編 先生:増井 雄一郎
 
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
 
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2
Handson opencv! 画像処理ライブラリを使って面白いプログラムを作ろう!その2
 
DLLAB Engineer Days:AIチームが履歴やリソース管理で疲弊してたので開発基盤作ってOSS化した話
DLLAB Engineer Days:AIチームが履歴やリソース管理で疲弊してたので開発基盤作ってOSS化した話DLLAB Engineer Days:AIチームが履歴やリソース管理で疲弊してたので開発基盤作ってOSS化した話
DLLAB Engineer Days:AIチームが履歴やリソース管理で疲弊してたので開発基盤作ってOSS化した話
 
インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...
インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...
インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
 
Android icon deployment
Android icon deploymentAndroid icon deployment
Android icon deployment
 
Quipperエンジニアセミナー 20121107
Quipperエンジニアセミナー 20121107Quipperエンジニアセミナー 20121107
Quipperエンジニアセミナー 20121107
 
Jupyterで運用やってみた
Jupyterで運用やってみたJupyterで運用やってみた
Jupyterで運用やってみた
 
ChainerMNをDocker containerで動かす
ChainerMNをDocker containerで動かすChainerMNをDocker containerで動かす
ChainerMNをDocker containerで動かす
 
ハイブリットソーシャルゲームの現場
ハイブリットソーシャルゲームの現場ハイブリットソーシャルゲームの現場
ハイブリットソーシャルゲームの現場
 
Hadoop Conference Japan 2009 #2
Hadoop Conference Japan 2009 #2Hadoop Conference Japan 2009 #2
Hadoop Conference Japan 2009 #2
 
opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2opensource and accessibility (Dec2000) Part 2
opensource and accessibility (Dec2000) Part 2
 
Developers Summit 2014【13-C-3】Smashing Android UI, Androidデザインの極意
Developers Summit 2014【13-C-3】Smashing Android UI, Androidデザインの極意Developers Summit 2014【13-C-3】Smashing Android UI, Androidデザインの極意
Developers Summit 2014【13-C-3】Smashing Android UI, Androidデザインの極意
 
Webリソースを利用したDeep Learning ~地図タイルを例として
Webリソースを利用したDeep Learning  ~地図タイルを例としてWebリソースを利用したDeep Learning  ~地図タイルを例として
Webリソースを利用したDeep Learning ~地図タイルを例として
 
Windows 8 Developers カンファレンス
Windows 8 Developers カンファレンスWindows 8 Developers カンファレンス
Windows 8 Developers カンファレンス
 
いぬねこ写真館
いぬねこ写真館いぬねこ写真館
いぬねこ写真館
 

水着回抽出機