SlideShare ist ein Scribd-Unternehmen logo
1 von 44
RICOH THETA
プラグイン開発
ワークショップ
#1
プラグイン開発で360°カメラの
RICOH THETAをカスタマイズ
2018/10/20 @fabbit京橋
Smart Vision事業本部 THETA事業部
庄原 誠
2018/10/23 1
THETAの歴史
2013 2014 2015 2016
RICOH
THETA
RICOH
THETA m15
RICOH
THETA S
RICOH
THETA SC
2017
世界初
360 °カメラ
画質改善モデル スタンダードモデル 最新モデル
RICOH
THETA V
動画記録対応
第1世代 光学系 第2世代 光学系
第一世代 システム(RTOS) 新システム(Android)
高速、4K動画対応
2011 2012
プロトタイプ開発
本日の流れ
1. 使ってみる
– “File Cloud Upload” plug-in を例に。
• Google Photosにアクセス可能な(テスト用)アカウントが必要です。
• CLモードを利用します。
2. THETA Vについて
– 構成と特徴
3. 作ってみる(1)
– Plug-in SDKをビルド
4. 作ってみる(2)
– Tensorflow™ のサンプル(TF Detect)をTHETA向けに改造する
随時、質問を受け付けます。
2018/10/23 4
本日の動作環境
macOS 10.13.6
Android Studio 3.2
Build #AI-181.5540.7.32.5014246, built on September 18, 2018
JRE: 1.8.0_152-release-1136-b06 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
com.android.tools.build:gradle:3.2.0
$ adb version
– Android Debug Bridge version 1.0.40
– Version 4986621
2018/10/23 5
はじめに
バージョンアップをしよう
2018/10/23 6
工場出荷時設定へのリセット方法
VysorでTHETA Vに接続する。
設定アプリ(Settings)から”RESET PHONE”を選択する。
撮影画像・プラグイン・設定など、全て削除されます。(*)
2018/10/23 7
(*) 時刻設定もクリアされるので、時刻設定のため一度スマホアプリで接続してください。
システムの時刻が更新されなくなり、プラグインが正常動作しない可能性があります。
使ってみる
“File Cloud Upload”プラグインの場合
2018/10/23 8
File Cloud Upload プラグイン
2018/10/23
9
https://theta360.com/ja/ricoh_
plugins/cloud/
https://github.com/ricohapi/t
heta-cloud-upload-plugin
ソースコード公開中
使い方ページ↓
無線LANクライアント(CL)モードの設定
2018/10/23 10
簡易的なルータへの接続方法
1. WLAN -> ONする
2. WLANボタン-> Modeボタン->シャッターボタン
の順に同時押し
3. WLANルータ側の簡単接続設定を行う
注意: THETA Vの対応チャンネル
– 2.4GHz:1-11ch
– 5GHz: W52(36,40,44,48ch)
https://support.theta360.com/ja/manu
al/v/content/prepare/prepare_08.html
マニュアルのURL
↓
• THETA VのIPアドレスを知る
DNS-SD/mDNSによるデバイス探索 (macOSの場合)
$ dns-sd -B _osc._tcp → THETA V探索
$ dns-sd -L "THETAYL01234567" _osc._tcp
$ dns-sd -q THETAYL01234567.local → IPアドレスが得られる
$ host 192.168.100.010
• USB接続しながら無線LANを使う
$ adb shell settings put global usb_debug true
PLUG-IN STORE
2018/10/23 11
プラグインインストールページ
https://pluginstore.theta360.com
← 選択してインストール
プラグインのインストール
2018/10/23 12
クリックしてインストール開始
↓
“RICOH THETA”アプリが起動
プラグインのインストール
2018/10/23 13
カメラを接続して、
OKでインストール開始
↓
“File Cloud Upload”プラグインが
THETA Vにインストールされる
ここで、
・APKのダウンロード
・APKのインストール
・権限の付与
が行われる。
プラグインを起動する
PCから起動設定→Modeボタン長押しで起動
2018/10/23 14
プラグインを使う
詳細はWebで。
2018/10/23 15
https://theta360.com/ja/ricoh_plugins/cloud/
デモ(File Cloud Uploadの例)
2018/10/23 16
THETA Vについて
ハード・ソフトウエア構成
2018/10/23 17
ハード・ソフト構成
2018/10/23 18
ハードウエア
– Qualcomm® APQ8053 (Snapdragon 625)
• CPU: Cortex A-53 x8
• GPU: Adreno™ 506
– 3GB LPDDR3 SDRAM (Max: 7.4GB/s; 933MHz * 32bit * 1ch)
– 32GB eMMC
– WLAN/BLE
• 2.4GHz(1-11ch)
• 5GHz(W52)
– 12MP CMOS x2, 4ch MEMS microphones, 1ch speaker
ソフトウエア (ver.2.41.1)
– Android™ 7.1.2, API Level25
• android.hardware.camera APIが利用可能
• OpenGL ES 3.1+, OpenCL 2.0
← 豊富な計算リソースを活用できる
← 5GHzの方が高速
←camera2 APIは非サポート
← 最新のFW を利用してください
撮影アプリ(RICOH THETA)
2018/10/23 19
撮影(基本)アプリ
• RICOH THETA
パッケージ名
• com.theta360.receptor
機能
• システム権限で動作
• カメラ全体を管理
• 通常モードでの撮影
• プラグインの起動制御
• WebAPIなどの通信
<撮影アプリ終了>
adb shell am force-stop com.theta360.receptor
<撮影アプリ起動>
adb shell am start -n com.theta360.receptor/.activity.MainActivity
もしくは シャッターボタン長押し
プラグインと撮影アプリ
撮影アプリ(com.theta360.receptor)の役割
– システム権限を持つアプリ
– WebAPI(撮影など)を受け付ける
• WLANなどカメラをスマホアプリ同様に制御できる
• プラグイン開発でCameraAPIを知らなくても良いので簡便に開発できる
– カメラリソースの管理
• カメラリソースは一つのアプリしかOpenできない
– ボタン・LEDの制御
Plugin Library (SDK)の役割
– https://github.com/ricohapi/theta-plugin-sdk
– 撮影アプリとのインターフェース
– THETA固有の機能に対応
2018/10/23 20
Plugin SDK
(= サンプルPlugin)
Plugin
Library
撮影アプリ
(com.theta360.
receptor)
Broadcast・Event等
TYPE_APPLICATION
撮影アプリの特殊性
イベントは撮影アプリが受け取る
– キーイベントはプラグインで受け付けできない
– キーイベントはCallbackで受け取る
• https://api.ricoh/docs/theta-plugin-reference/broadcast-intent/
2018/10/23 21
撮影アプリ
(TYPE_SYSTEM_ALERT)
プラグイン
(TYPE_APPLICATION)
イベント
Callback
(KeyReceiverに登録)
TYPE_TOAST
TYPE_SYSTEM_ALERT
TYPE_SYSTEM_ERROR
優先度高
優先度低
← キーボードなどのイベントはプラグ
インへ飛ばず、Callback経由となる。
カメラの操作方法
以下から2択
– WebAPIを利用する
• 撮影アプリを利用して撮影する。
• 静止画・動画のメタデータを含めて製品同等の画像を得られる。
– Camera APIを利用する
• Android のCamera APIを利用して撮影する。
• メタデータなどは最小限しか付与されない。
• 高速連写など撮影アプリでは不可能な多様な撮影を行うことができる。
2018/10/23 22
Plug-in
Camera API
Web API
Camera API
WebAPI経由の場合は
撮影アプリがCameraAPIを
使って撮影する。
作ってみる(その1)
Plug-in SDKをビルドする
2018/10/23 23
はじめに(情報源)
Plugin SDK
– https://github.com/ricohapi/theta-plugin-sdk
ドキュメント
– https://api.ricoh/docs/theta-plugin/
サンプルコード(github)
– https://github.com/topics/theta-plugin
2018/10/23 24
Gitの使い方(メモ)
取得
– git clone https://github.com/ricohapi/theta-plugin-sdk.git
タグ(TagName)のコードを取得
– git checkout refs/tags/TagName
現在のチェックアウト状態
– git reflog
修正内容の確認
– git diff
Commit間の差分確認と適用
– git diff 40517da...8236694 > git_diff.txt
– patch -p1 < git_diff.txt
タグ(TagName)の情報を得る
– git show TagName
2018/10/23 25
ソースコード(github)公開プロジェクト
プロジェクト プラグイン 機能等 カメラ操作 API Web UI有無
theta-plugin-sdk ソースコードのみ 開発用SDK Web API 無
theta-plugin-
web-api-sample
ソースコードのみ Web API撮影プラ
グインサンプル
Web API 無
theta-plugin-
camera-api-
sample
ソースコードのみ Camera API撮影
プラグインサンプ
ル
Camera API 無
theta-automatic-
face-blur-plugin
Automatic Face
Blur BETA
顔ぼかし撮影 Web API 有
theta-cloud-
upload-plugin
File Cloud
Upload
Googleフォトへ
アップロード
無し 有
theta-wireless-
live-streaming-
plugin
Wireless Live
Streaming
Youtubeへライブ
配信
Camera API 有
theta-plugin-
ricoh-live-
streaming-
sample
ソースコードのみ WebRTCと RICOH
Live Streaming
APIを利用するサ
ンプル
Camera API 無
2018/10/23 26
Plugin SDK (“theta-plugin-sdk”)
2018/10/23 27
https://github.com/ricohapi
/theta-plugin-sdk
↑をダウンロードして、
Android Studioでビルド、
THETA Vで動作させてみま
しょう。
Plugin SDKの構成
2つの部分から構成
2018/10/23 28
← app: プラグインの機能実装
(主にプラグインとして開発する部分)
SDKはサンプル的に以下の機能を実装:
・シャッターボタンを押したら撮影する
・キーを押されたらLEDを点滅する
・WebAPIを利用するためのユーティリティクラス
← plugin library: THETA独自の機能を実装
(必要に応じて修正する部分、
基本的には変更しなくて良い)
実装されている機能:
・Broadcastの定義(LED制御、既定音制御、WLAN
制御、撮影アプリのCameraリリース)
・モードボタン長押しでの終了処理
Plugin Library (pluginlibrary)の構成
THETAのプラグインとして実装しておいてほしい
ことが実装されている。
実装内容
– PluginActivityクラス
• AppCompatActivityの継承クラス
• モードボタン長押し時はclose()が呼び出される。
• 継承先で終了処理が必要な場合は、
setAutoClose(false)として、pluginlibraryでclose()が
自動的に呼ばれないようにする。
• onCreate()
– UncaughtExceptionクラスの登録
» 何か例外が発生すると、エラーとなってプラグインが終
了させる。
• onResume()
– キーイベント(KeyReceiverクラス)の登録。
• onPause()
– 終了処理が呼び出される。
2018/10/23 29
Androidアプリ(プラグイン)のライフサイクル
developer.android.comより引用
作ってみる(その2)
Tensorflow™ のサンプルをプラグイン化
2018/10/23 30
Tensorflowのリポジトリ (“tensorflow-theta”)
2018/10/23 31
https://github.com/mkts
hhr/tensorflow-
theta/tree/feature/works
hop181020_step1_start
・上記をダウンロード
・ tensorflow-
theta/tensorflow/exam
ples/android/を
Android Studioでビルド
・THETA Vで動作させて
みましょう。
オリジナルhttps://github.com/tensorflow/tensorflow からforkして
プラグイン向けに修正を加えたプロジェクト(“tensorflow-theta”)を使用。
Workshop向けのブランチ(workshop181020_step1_start)を使います。
Tensorflowとは?
“TensorFlowとは、Googleが開発しオープンソースで公開している、
機械学習に用いるためのソフトウェアライブラリである。”(ウィキペ
ディア)
今回用いるのはTensorflow for Mobileというモバイル向けに最適化
されたライブラリのサンプル(Tensorflow Demo)。
– tensorflow/examples/android/
機械学習の流れ
2018/10/23 32
学習
データ
正解
ルール
(model)
新しい
データ
正解(予測)推論
今回はTensorflowによって
学習されたモデルを利用して、
THETA V上で推論を行う。
Tensorflow Demoのプラグイン対応
Tensorflow Demo
– TF Detect (今日のメイントピック)
• 画像に写っている物体を検出
– TF Speech
• 音声認識
– TF Stylize
• 画像のスタイル変換
– TF Classify
• 画像から物体を識別
プラグイン対応
– カメラ(Camera API)が動作するようにする
– マイクを使えるようにする
– PluginSDKを組み込む
– 固有の機能を追加する
• 今回は“person”を検出したら、撮影、Googleフォトにアップロードする。
2018/10/23 33
TF StylizeTF SpeechTF Detect
TF Classify
Tensorflow Demoプラグインの構成
2018/10/23 34
PluginActivity
CameraActivity
ClassifierActivity
DetectorActivity
StylizeActivity
SpeechActivity
TensorFlowObje
ctDetectionAPI
Model
TensorFlowMult
iBoxDetector
TensorFlowYolo
Detector
TensorFlowInferenceIn
terface
----------------------
graph(): モデルのグラフ
feed(): 画像入力
run(): 推論実行
fetch(): 結果取得
TF Detect
TF Speech
TF Classify
TF Stylize
TensorFlowImag
eClassifier
LegacyCameraConne
ctionFragmentクラス
(Camera API)が使わ
れる。
TF Detectを動かす
Step1: THETA Vで動作させる
– Camera APIの対応を行なって動作するように修正する。
Step2: PluginLibraryを組み込む
– Importして、pluginlibraryを組み込む
Step3: 物体検出して撮影する
– PluginSDKを参考に実装
• Camera APIでの推論→推論停止→WebAPIで撮影→ Camera APIで推論再開
Step4: PluginLibraryを修正する
– Google Photosにアップロードする機能を追加
– Plugin Libraryの修正
2018/10/23 35
Step1: THETA Vで動作させる
開始時コード(タグ): WS_START_STEP1
概要
– 起動するとPPPとエラー音で止まってしまうところから開始。
– Camera APIの対応を行なって動作するように修正する。
作業内容
– ビルドして動かす
• PPPと言って止まる→設定アプリで権限設定
• まだ、PPPと言って止まる→カメラリソースを開けずエラー終了
• “Step1”のコメントに従う
2018/10/23 36
Step1: THETA Vで動作させる
Camera APIを使う
– notificationCameraClose();
• sendBroadcast(new Intent(“com.theta360.plugin.ACTION_MAIN_CAMERA_CLOSE”)
• 撮影アプリが占有しているカメラを解放させる
– カメラリソースは一つのアプリしか開けない
Cameraパラメータ設定
– parameters.set("RIC_SHOOTING_MODE", "RicMoviePreview1024");
• カメラの動作モードを設定する。(デフォルトはRicStillCaptureStd)
• 必要に応じて“RIC_PROC_STITCHING”などの設定を変更する
– 静的つなぎ(高速): “RicStaticStitching”
– 動的つなぎ(高精度): “RicDynamicStitchingAuto”
– つなぎ無し(魚眼出力): “RicNonStitching”
マイクを使う
– AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setParameters("RicUseBFormat=false");
• リアルタイム処理するためモノラル(1ch)で音を取得する
• アンビソニクスB-format (4ch) の場合、WAVファイルとして記録される
2018/10/23 37
Step2: PluginLibraryを組み込む
開始時コード(タグ): WS_START_STEP2
概要
– Camera APIの対応を行なって動作するように修正する。
– LED、ボタンなどが動作するようになる。
作業内容
– Importして、pluginlibraryを組み込む
1. SDKの“pluginlibrary” をインポート(“File”-“New”-“Import Module...”)
2. “settings.gradle”ファイルに文字列(“include ‘:pluginlibrary’”)を追加
3. Sync (“File”-“Sync Project with Gradle Files”)
– CameraActivityクラスとSpeechActivityクラスの継承元をAppCompatActivityから、
PluginActivityに変更。
• “WARNING: Configuration ‘compile’ is obsolete and has been replaced with ‘implementation’ and
‘api’.”が出るときは、build.gradleの
– compile project(path: ‘:pluginlibrary’) を
– implementation project(path: ‘:pluginlibrary‘) に置き換え
• KeyCallback, LedTargetクラス定義はimportする。
– 残りは”Step2”のコメントに従う
参考: https://github.com/ricohapi/theta-plugin-sdk/issues/32018/10/23 38
Step3: 物体検出して撮影する
開始時コード(タグ): WS_START_STEP3
概要
– Camera APIの対応を行なって動作するように修正する。
– “person”を検出して、静止画撮影されるようになる。
作業内容
– PluginSDKを参考にWebAPIでの撮影を実装
• Camera APIでの推論→推論停止→WebAPIで撮影→ Camera APIで推論再開
– ”Step3”のコメントに従う。
• TakePictureTaskなど、task, network, modelフォルダごとSDKのコードをコピーする。
– package com.theta360.pluginapplication.task; から
– package org.tensorflow.demo.task; に置換(ファイルコピー後全置換)
– mThreashIgnore_msecの設定で15秒ごとに”person”を見つけると撮影してい
る。設定を変えて動かしてみましょう。
2018/10/23 39
Step3: 物体検出して撮影する
物体検出のステップ
1. CameraActivity::onPreviewFrame()でプレビュー画像を取得
2. DetectorActivity::processImage()のrunInBackground内が別ス
レッド(“inference”)で動作。
3. TensorFlowObjectDetectionAPIModel:: recognizeImage()で物体
検出
• TensorFlowInferenceInterface::feed() 画像入力
• TensorFlowInferenceInterface::run() 物体検出処理
• TensorFlowInferenceInterface::fetch() 検出結果取得
検出性能について
– 通常の歪みのない画像で学習しているため、歪みの影響を受
ける。
– 汎化性能が高いため、全天球画像のままでもある程度、検出可
能。
– 間違いが多いが検出できる、というレベル。
– 全天球画像で学習させるか、歪み補正してから推論すれば性
能向上可能。
2018/10/23 40
Deep Learningによる
学習結果を用いて
推論実施
Step4: PluginLibraryを修正する
開始時コード(タグ): WS_START_STEP4
概要
– 他のプラグイン(File Cloud Upload)を呼び出して、Google Photosにアップロー
ドする機能を追加する。
作業内容
– “Step4”のコメントに従う
– Plugin Libraryを修正(startActivityForResultを呼び出しても動くようにする)
• onResumeの内容をonCreateへ
• onPauseの内容をonDestroyへ
– Google Photosにアップロードしない場合は、以下を設定する。
• ENABLE_CLOUD_UPLOAD = false; // in CameraActivity.java
最終コード(タグ): WS_END
2018/10/23 41
Step4: PluginLibraryを修正する
通常のプラグインの場合
– 単体で完結
– onResume で初期化、onPauseで終了処理
• できるだけ撮影アプリに影響を与えたくないのでonPauseで終了処理。
他のプラグインと連携する場合
– startActivityForResult呼び出しで、onStopまで呼ばれてしまう。
– モードボタン長押しで確実にプラグインを終了させる。
– onPause()時にバックグラウンド処理を行わないようにする。
• handlerThreadを終了している。
2018/10/23 42
developer.android.comより
まとめ
Tensorflowを使ったディープラーニングによる物体認識をTHETA本
体で実施できた
実装上の主な注意点
– Camera APIを動作させるときの注意点
• sendBroadcast(new
Intent("com.theta360.plugin.ACTION_MAIN_CAMERA_CLOSE"));
• Camera.Parameters.set("RIC_SHOOTING_MODE", "RicMoviePreview1024");
– マイクを使う時の注意点
• AudioManager.setParameters("RicUseBFormat=false");
THETA Vを使ったコンピュテーショナルフォトグラフィー、エッジコン
ピューティング、機械学習、IoTなど分野での応用に期待
リリース済み・予定プラグイン
– https://theta360.com/ja/about/theta/v/roadmap.html
2018/10/23 43
おつかれさまでした!
2018/10/23 44
2018/10/23 45

Weitere ähnliche Inhalte

Was ist angesagt?

メルカリ_サービス説明資料
メルカリ_サービス説明資料メルカリ_サービス説明資料
メルカリ_サービス説明資料
Find Job Startup
 

Was ist angesagt? (20)

「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
 
オープンソース SLAM の分類
オープンソース SLAM の分類オープンソース SLAM の分類
オープンソース SLAM の分類
 
ROSによる今後のロボティクスのあり方
ROSによる今後のロボティクスのあり方ROSによる今後のロボティクスのあり方
ROSによる今後のロボティクスのあり方
 
2020年8月_HoloLens 2 アプリ開発入門
2020年8月_HoloLens 2 アプリ開発入門2020年8月_HoloLens 2 アプリ開発入門
2020年8月_HoloLens 2 アプリ開発入門
 
MRTKをNreal Lightに対応させてみた
MRTKをNreal Lightに対応させてみたMRTKをNreal Lightに対応させてみた
MRTKをNreal Lightに対応させてみた
 
[DL輪読会]Pixel2Mesh: Generating 3D Mesh Models from Single RGB Images
[DL輪読会]Pixel2Mesh: Generating 3D Mesh Models from Single RGB Images[DL輪読会]Pixel2Mesh: Generating 3D Mesh Models from Single RGB Images
[DL輪読会]Pixel2Mesh: Generating 3D Mesh Models from Single RGB Images
 
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
 
ChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AIChatGPT 人間のフィードバックから強化学習した対話AI
ChatGPT 人間のフィードバックから強化学習した対話AI
 
ROS2勉強会 4章前半
ROS2勉強会 4章前半ROS2勉強会 4章前半
ROS2勉強会 4章前半
 
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
心理的安全性と、Veinの紹介 Psychological safety and introduction of Vein
 
ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)
ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)
ラボラトリーオートメーションのためのソフトウェア思想教育(非プログラマ―が知っておくべきプログラミングの本質)
 
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
 
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
 
ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築
 
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
 
【Unity】 Behavior TreeでAIを作る
 【Unity】 Behavior TreeでAIを作る 【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
 
人にうれしいAIのUXデザイン - Googleの「People + AI Guidebook」をひもとく:DevLOVE X
人にうれしいAIのUXデザイン - Googleの「People + AI Guidebook」をひもとく:DevLOVE X人にうれしいAIのUXデザイン - Googleの「People + AI Guidebook」をひもとく:DevLOVE X
人にうれしいAIのUXデザイン - Googleの「People + AI Guidebook」をひもとく:DevLOVE X
 
メルカリ_サービス説明資料
メルカリ_サービス説明資料メルカリ_サービス説明資料
メルカリ_サービス説明資料
 
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
 
SFUの話
SFUの話SFUの話
SFUの話
 

Ähnlich wie RICOH THETA プラグイン開発 ワークショップ #1

RICOH THETA x IoT デベロッパーズ コンテスト 第2回クラウドAPIセミナー
RICOH THETA x IoT デベロッパーズ コンテスト 第2回クラウドAPIセミナーRICOH THETA x IoT デベロッパーズ コンテスト 第2回クラウドAPIセミナー
RICOH THETA x IoT デベロッパーズ コンテスト 第2回クラウドAPIセミナー
contest-theta360
 
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
 
Nedo講座・rtmセミナー
Nedo講座・rtmセミナーNedo講座・rtmセミナー
Nedo講座・rtmセミナー
openrtm
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
Atsuhiro Kubo
 

Ähnlich wie RICOH THETA プラグイン開発 ワークショップ #1 (20)

2013.01.18 G*Workshop GGX 2012 Report
2013.01.18 G*Workshop GGX 2012 Report2013.01.18 G*Workshop GGX 2012 Report
2013.01.18 G*Workshop GGX 2012 Report
 
ChatGPT の現状理解と 2023年7月版 LLM情報アップデート
ChatGPT の現状理解と 2023年7月版 LLM情報アップデートChatGPT の現状理解と 2023年7月版 LLM情報アップデート
ChatGPT の現状理解と 2023年7月版 LLM情報アップデート
 
【初心者向け】API を使ってクラウドの管理を自動化しよう
【初心者向け】API を使ってクラウドの管理を自動化しよう【初心者向け】API を使ってクラウドの管理を自動化しよう
【初心者向け】API を使ってクラウドの管理を自動化しよう
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウCircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
 
RICOH THETA x IoT デベロッパーズ コンテスト 第2回クラウドAPIセミナー
RICOH THETA x IoT デベロッパーズ コンテスト 第2回クラウドAPIセミナーRICOH THETA x IoT デベロッパーズ コンテスト 第2回クラウドAPIセミナー
RICOH THETA x IoT デベロッパーズ コンテスト 第2回クラウドAPIセミナー
 
Mattermost Plugin Bounty Programについて
Mattermost Plugin Bounty ProgramについてMattermost Plugin Bounty Programについて
Mattermost Plugin Bounty Programについて
 
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介
 
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!Unityゲームにオンラインランキングとゴースト機能を追加しよう!
Unityゲームにオンラインランキングとゴースト機能を追加しよう!
 
Microsoft Graph API Library for Go
Microsoft Graph API Library for GoMicrosoft Graph API Library for Go
Microsoft Graph API Library for Go
 
Keycloakの最近のトピック
Keycloakの最近のトピックKeycloakの最近のトピック
Keycloakの最近のトピック
 
プロダクトがリリースされるまでを『見える化』することで組織体質を変えていった話
プロダクトがリリースされるまでを『見える化』することで組織体質を変えていった話プロダクトがリリースされるまでを『見える化』することで組織体質を変えていった話
プロダクトがリリースされるまでを『見える化』することで組織体質を変えていった話
 
[Mobile5] 最新動向 2012年5月
[Mobile5] 最新動向 2012年5月[Mobile5] 最新動向 2012年5月
[Mobile5] 最新動向 2012年5月
 
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
 
Nedo講座・rtmセミナー
Nedo講座・rtmセミナーNedo講座・rtmセミナー
Nedo講座・rtmセミナー
 
GitHub Actions で CI/CD
GitHub Actions で CI/CDGitHub Actions で CI/CD
GitHub Actions で CI/CD
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
 
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
 
LoRaWANとAzure IoT Hub接続ハンズオン
LoRaWANとAzure IoT Hub接続ハンズオンLoRaWANとAzure IoT Hub接続ハンズオン
LoRaWANとAzure IoT Hub接続ハンズオン
 
GitLab Prometheus
GitLab PrometheusGitLab Prometheus
GitLab Prometheus
 

Kürzlich hochgeladen

Kürzlich hochgeladen (12)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

RICOH THETA プラグイン開発 ワークショップ #1