O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
WebRTCを利用した
遠隔リアルタイム映像処理
フレームワークの実装
@tnoho
自己紹介
@tnoho
 通信屋で働くサラリーマン
 プログラミングと電子工作が趣味
 WebRTC界隈の勉強会によくいます
 今回は表記のものを開発したので、参加させて頂きました。
深層学習のリアルタイム処理
 Real-Time とか Fast とか書いて、fpsが併記されていたりする
 速度を気にする人は当然のごとく TITAN X で検証している
 動くのを見ているとカメラを繋いで遊びたくなってくる
カメラと繋いでリアルタイム処理検証
 500W超の電源を持ち運ぶことになる
エンジン発電機クラスが最低でも必要
 一緒にATXのケースも…
プリウスなら1500Wまで行ける!
間口を広げたい
 現状においては、ちょっと試すのが難しい
 少ない研究者だけで用途を考えている状況
想定された用途と実際の用途は必ずしも一致しない
間口を広げ利用者を増やすのであれば、
最低でもスマートフォンで動いて欲しい!
スマートフォンで動かすには
 Android, iOS 版の TensorFlow を利用する?
ただリアルタイムのパフォーマンスは…
スマートフォンではなく、
サーバに処理を任せられないか
WebRTCとは
Webブラウザでリアルタイムの映像/音声通信を行える規格
HangoutやSkypeなどでも使われている
特徴
 ロイヤリティーフリー
 プラグインフリー
 高速・低レイテンシ
 NAT越え標準搭載(ルーター設定不要)...
WebRTCで映像を送って解析する
WebRTCを利用すれば、どこにでもあるブラウザから
リアルタイムの映像を送ることができる
GPUを搭載したサーバ側で、それを解析できるようにすれば、
どこからでも強力なGPUを利用した映像解析が可能になる
デモ
デモの構成
クライアントから送られてきた映像を TITAN X の載ったデスクトップで
YOLO (darknet) を用いて物体検出、結果の枠を合成して返送
WebRTC Client Desktop Computer
物体検出
結果合成
W...
pyrtcconductor
クライアントと WebRTC 接続を行い、送られてきたフレームを
OpenCV 形式で出力するPythonモジュール
機能
 映像受信して、OpenCV 形式で出力
 Python で加工したフレームを Web...
簡単に移植できる
出力されるフレームは OpenCV 形式
imread や imshow を使っているプログラムなら容易に移植することが可能
グレイスケール化と左右反転なら
frame = imread(filename)
flipped =...
簡単に利用できる
煩雑なWebRTCの接続処理は全てモジュール内で実行
ユーザー記述は通常の1/10以下に削減
pyrtcconductor
Webブラウザ
User Program
Javascript
SDK
Python
User Pro...
もっと広く/もっと簡単に
 pyrtcconductorと必要なサーバをまとめて提供 … 開発中
 GitHubアカウントなどで誰でも、無償で、すぐに使えるように
 OSS化 … 頑張る
 法務の壁が…実績がないと…
 共同研究という...
用途の拡大
 スマートフォンやパソコンだけでなく組み込みにも
 Raspberry Pi WebRTC Clientの開発 … 開発中
 Raspberry Pi Zero で動作
 ハードウェア支援機能を利用
 省電力化によるロボッ...
EOF
いらすとやさんのイラストでお送りしました。
Próximos SlideShares
Carregando em…5
×

WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装

6.937 visualizações

Publicada em

WebRTCを利用して、Pythonで遠隔画像処理をおこなうことを可能にするフレームワークを開発しました。

Publicada em: Engenharia
  • Login to see the comments

WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装

  1. 1. WebRTCを利用した 遠隔リアルタイム映像処理 フレームワークの実装 @tnoho
  2. 2. 自己紹介 @tnoho  通信屋で働くサラリーマン  プログラミングと電子工作が趣味  WebRTC界隈の勉強会によくいます  今回は表記のものを開発したので、参加させて頂きました。
  3. 3. 深層学習のリアルタイム処理  Real-Time とか Fast とか書いて、fpsが併記されていたりする  速度を気にする人は当然のごとく TITAN X で検証している  動くのを見ているとカメラを繋いで遊びたくなってくる
  4. 4. カメラと繋いでリアルタイム処理検証  500W超の電源を持ち運ぶことになる エンジン発電機クラスが最低でも必要  一緒にATXのケースも… プリウスなら1500Wまで行ける!
  5. 5. 間口を広げたい  現状においては、ちょっと試すのが難しい  少ない研究者だけで用途を考えている状況 想定された用途と実際の用途は必ずしも一致しない 間口を広げ利用者を増やすのであれば、 最低でもスマートフォンで動いて欲しい!
  6. 6. スマートフォンで動かすには  Android, iOS 版の TensorFlow を利用する? ただリアルタイムのパフォーマンスは… スマートフォンではなく、 サーバに処理を任せられないか
  7. 7. WebRTCとは Webブラウザでリアルタイムの映像/音声通信を行える規格 HangoutやSkypeなどでも使われている 特徴  ロイヤリティーフリー  プラグインフリー  高速・低レイテンシ  NAT越え標準搭載(ルーター設定不要)  ほとんどのブラウザーが対応
  8. 8. WebRTCで映像を送って解析する WebRTCを利用すれば、どこにでもあるブラウザから リアルタイムの映像を送ることができる GPUを搭載したサーバ側で、それを解析できるようにすれば、 どこからでも強力なGPUを利用した映像解析が可能になる
  9. 9. デモ
  10. 10. デモの構成 クライアントから送られてきた映像を TITAN X の載ったデスクトップで YOLO (darknet) を用いて物体検出、結果の枠を合成して返送 WebRTC Client Desktop Computer 物体検出 結果合成 WebRTCModule TensorFlow TITANX WebRTC Internet
  11. 11. pyrtcconductor クライアントと WebRTC 接続を行い、送られてきたフレームを OpenCV 形式で出力するPythonモジュール 機能  映像受信して、OpenCV 形式で出力  Python で加工したフレームを WebRTC で送信  WebRTC の DataChannel を利用したデータ通信  映像の自由なハンドリング
  12. 12. 簡単に移植できる 出力されるフレームは OpenCV 形式 imread や imshow を使っているプログラムなら容易に移植することが可能 グレイスケール化と左右反転なら frame = imread(filename) flipped = cv2.flip(frame, 1) gray = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY) imshow(gray, gray) def onFrame(frame, timestamp): flipped = cv2.flip(frame, 1) gray = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY) effectedVideoSink.pushFrame(gray) リアルタイム処理化前 リアルタイム処理化後
  13. 13. 簡単に利用できる 煩雑なWebRTCの接続処理は全てモジュール内で実行 ユーザー記述は通常の1/10以下に削減 pyrtcconductor Webブラウザ User Program Javascript SDK Python User Program WebRTC signaling
  14. 14. もっと広く/もっと簡単に  pyrtcconductorと必要なサーバをまとめて提供 … 開発中  GitHubアカウントなどで誰でも、無償で、すぐに使えるように  OSS化 … 頑張る  法務の壁が…実績がないと…  共同研究という名目での提供  お声がけください!
  15. 15. 用途の拡大  スマートフォンやパソコンだけでなく組み込みにも  Raspberry Pi WebRTC Clientの開発 … 開発中  Raspberry Pi Zero で動作  ハードウェア支援機能を利用  省電力化によるロボット、ラジコンの制御  監視カメラ、アクションカメラ、IoTなどへの拡大  1:1だけでなく配信にも  WebRTC配信サーバとの接続 … 計画中
  16. 16. EOF いらすとやさんのイラストでお送りしました。

×