Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
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
いらすとやさんのイラストでお送りしました。
Nächste SlideShare
Wird geladen in …5
×

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

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

  • Loggen Sie sich ein, um Kommentare anzuzeigen.

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 いらすとやさんのイラストでお送りしました。

×