Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話
Search
Takuya MINAGAWA
June 18, 2024
Technology
0
520
ろくに電子工作もしたことない人間がIoT用ミドルウェアを作った話
「IoT縛りの勉強会! IoTLT vol.112」発表資料
https://iotlt.connpass.com/event/320609/
Takuya MINAGAWA
June 18, 2024
Tweet
Share
More Decks by Takuya MINAGAWA
See All by Takuya MINAGAWA
State Space Models for Event Cameras (第61回CV勉強会@関東発表資料)
takmin
1
2.6k
第12回JapanCV発表資料「Machine Learning Operations (MLOps): Overview, Definition, and Architecture」
takmin
2
1.3k
MobileNeRF(第59回CV勉強会@関東発表資料)
takmin
0
2k
点群SegmentationのためのTransformerサーベイ
takmin
3
2.7k
Learning to Solve Hard Minimal Problems
takmin
1
1.9k
A Conditional Point Diffusion-Refinement Paradigm for 3D Point Cloud Completion
takmin
0
1.6k
Other Decks in Technology
See All in Technology
OS 標準のデザインシステムを超えて - より柔軟な Flutter テーマ管理 | FlutterKaigi 2024
ronnnnn
0
200
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
480
サイバーセキュリティと認知バイアス:対策の隙を埋める心理学的アプローチ
shumei_ito
0
390
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
390
DynamoDB でスロットリングが発生したとき/when_throttling_occurs_in_dynamodb_short
emiki
0
250
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
190
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
1
1k
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
430
Lexical Analysis
shigashiyama
1
150
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
690
Terraform Stacks入門 #HashiTalks
msato
0
360
Featured
See All Featured
How to Ace a Technical Interview
jacobian
276
23k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
Teambox: Starting and Learning
jrom
133
8.8k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
We Have a Design System, Now What?
morganepeng
50
7.2k
Fireside Chat
paigeccino
34
3k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Ruby is Unlike a Banana
tanoku
97
11k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Code Review Best Practice
trishagee
64
17k
Transcript
ろくに電子工作もしたことない人間 がIoT用ミドルウェアを作った話 株式会社ビジョン&ITラボ 皆川卓也
自己紹介 2 株式会社ビジョン&ITラボ 代表取締役 皆川 卓也(みながわ たくや) 博士(工学) 「コンピュータビジョン勉強会@関東」主催 株式会社フューチャースタンダード
技術顧問 略歴: 1999-2003年 日本HP(後にアジレント・テクノロジーへ分社)にて、ITエンジニアとしてシステム構築、プリ セールス、プロジェクトマネジメント、サポート等の業務に従事 2004-2009年 コンピュータビジョンを用いたシステム/アプリ/サービス開発等に従事 2007-2010年 慶應義塾大学大学院 後期博士課程にて、コンピュータビジョンを専攻 単位取得退学後、博士号取得(2014年) 2009年-現在 フリーランスとして、コンピュータビジョンのコンサル/研究/開発等に従事(2018年法人化) http://visitlab.jp
IoT用ミドルウェア 「シナリオエンジン」 (特許取得済み)のご紹介 6 本日のお話し
IoTの究極の目標って 何だろう? 7
Internet of Things (IoT) “一意に識別可能な「もの」がインターネット/クラ ウドに接続され、情報交換することにより相互 に制御する仕組みである”(Wikipedia) 8
色んなモノをネットにつ ないで、何がしたいの だろう? 9
IoTライフサイクル 10 現実世界 仮想世界 センシング 現実制御 • 解析/理解 • 可視化
• シミュレーション デジタルツイン 仮想世界でプロ グラミングし、現 実世界へ反映
IoTの究極の目標 Real as Code ― 現実世界をプログラミング可能に ― 11
現実世界のための 最適なプログラム言語って なんだろう? 12
ぼくのかんがえたIoTプログラム言語1 人、車、機器などの現実のモノをク ラスとみなす、リアルオブジェクト 指向 13 カメラ、LiDAR、RFIDなど、例えば人を認識するセンサーは様々 それらを「人」というクラスで隠蔽
ぼくのかんがえたIoTプログラム言語2 「人」クラスであれば、性別、年齢 などの現実に紐づいたプロパティ を持つ 14
ぼくのかんがえたIoTプログラム言語3 「いつ」 、「どこで」 、「誰(何)が」、 「何を(した)」らという4W(When, Where, Who, What)でオブジェクト を制御 15
ストーリー 16 1. シナリオ作成者がデジタルツイン上のオブジェクトや範 囲を指定 2. シナリオ作成者がトリガーとアクションを設定 1. いつ、どこで、誰が、何を 3.
センサーが周辺の情報を取得 4. センサーの情報から「人」、「モノ」、「気体」、「液体」な どの実世界に対応するオブジェクトをAIが認識 5. センサーから見たオブジェクトの座標を実空間の座標 へ写像 6. オブジェクトがトリガーの発動条件を満たしたらアクショ ンが起動 Confidential
1.デジタルツイン上のオブジェクトや範囲等を 指定 17 領域選択 Area Point Line 領域名 領域A Save
Load select Confidential
2. ユーザがトリガーとアクションを設定 18 イベント名 広告A表示 Save Load Add Trigger キャンペーン期間
いつ 誰が 人 何を 閾値以上いる 領域A どこで トリガー名 閾値以上の人 Save Load New New Config Property イベント編集 Add Action ∧ ∨ ⊕ AND OR XOR 広告表示 アクション Config サイネージ 誰が 何を Output Variables Property Confidential Add Condition
3. センサーが周辺の情報を取得 19 Confidential
4. AIが人やモノを認識 20 人:歩く 人:歩く Confidential
5. AIが認識した情報を実空間へ写像 21 人:歩く 人:歩く Confidential
6. トリガーの発動条件を満たしていたらアク ション起動 22 Confidential アクション
1.デジタルツイン上のオブジェクトや範囲等を 指定 23 Click! 仮想空間上のオブジェクトや範囲等を指定 Confidential
2. ユーザがトリガーとアクションを設定 24 オブジェクトに関するウィンドウが開き、「トリガー」と「ア クション」を選択する。 Confidential トリガー キャンペーン期間 クーポン配信
アクション いつ 誰が スマートフォンユーザ 何を 撮影
3. センサーが周辺の情報を取得 25 Confidential 撮影
4. AIが人やモノを認識 26 Confidential × × × × × ×
× × × × × × × × × × × × × × × × 登録ポスターA
5. AIが認識した情報を実空間へ写像 27 Confidential × × × × × ×
× × × × × × × × × × × × × × × × 登録ポスターA デジタルツイン
6. トリガーの発動条件を満たしていたらアク ション起動 28 Confidential クーポン Get
使用例 29 小売り/商業施設 顧客を分散するために、空いている店舗の広告をサイネージ に表示 顧客が各店舗のポスターをスマホで撮影することでアイテム を入手し、すべて集めるとクーポンがもらえるようなゲームを
企画することで、周遊や子連れ客の暇つぶしが行える オフィス 二酸化炭素濃度、気温、湿度、人の位置、室内形状などに合 わせて、換気扇やエアコン、照明等を動的に制御 観光 自分の街を舞台にしたオリジナルRPGを作成し、各名所でア イテムを入手させるなど、顧客がゲームを楽しんだり、知識を 得ながら周遊
使用例 30 建築/土木 立ち入り禁止区域を設定し、人が侵入したらアラート 高所での搬入作業等を検知し、その下を人が通るとアラート で知らせる
物流 配送センターへのトラックの到着を検知し、そのIDに基づいて、 ロジスティックシステムと連動し、倉庫内のピックアップすべき 商品の棚位置を作業者へ指示することでリードタイム短縮 製造業 ベルトコンベア上の製造品の渋滞箇所、または遅延を検出し、 機械の処理速度を自動調整する
センシング技術 Real as Codeのレイヤー構造 31 カメラ LiDAR Spartphone Spartphone Smart
Phone マルチセンサー キャリブレーション センサー情報 (パラメータ+位置姿勢) ・・・・・ 物体検出 人追跡 Semantic Segmentation 三次元復元 仮想空間構築/認識 人体姿勢推定 データ解析・アクションモジュール群 GUI for Retail 人/モノ (いつ、どこで、誰が、 何を) AR/VR 外部機器/サービス連携 ・・・・・ 特定物体認識 時空間DB シナリオエンジン GUI for Logistic GUI for Construction
人/モノ (いつ、どこで、誰が、 何を) センシング技術 Real as Codeのレイヤー構造 32 カメラ LiDAR
Spartphone Spartphone Smart Phone マルチセンサー キャリブレーション センサー情報 (パラメータ+位置姿勢) ・・・・・ 物体検出 人追跡 Semantic Segmentation 三次元復元 仮想空間構築/認識 人体姿勢推定 データ解析・アクションモジュール群 GUI for Retail AR/VR 外部機器/サービス連携 ・・・・・ 特定物体認識 時空間DB シナリオエンジン GUI for Logistic GUI for Construction センサーデータの座標を 世界座標系(仮想空間座 標)へ変換 デジタルツイン • いわゆるAI • センサー情報から人・モノなどのオ ブジェクトを抽出し、情報量削減 • オブジェクトを仮想空間(3D)へ投 影 • それぞれ独立したモジュール • 案件ドリブンで開発 センサーフュージョン APIによる疎結合 APIによる疎結合 いつ、何が、どこで、どん なことをしたらイベントを起 動するかを制御
33 「Real as Code」はIoT、AI、XRなど のテクノロジー分野を融合する
シナリオの生成 34 現実世界の変化に基づいて、IoT機器を動かすルールを シナリオといいます。シナリオは以下の3ステップを経て 生成します。 GUI ユーザが直接操作し、中間ファイルを生成します。
中間ファイル jsonにより、シナリオをグラフ構造で記述します。 シナリオエンジン グラフ構造で表されたシナリオを実行します。 GUI 中間ファイル シナリオエンジン プログラミング言語 コンパイル/実行 業務ごとに開発
シナリオの機能 35 「いつ(When)」は、毎日、1日おき、毎週、平日、などの 様々な定義が可能。 「どこで(Where)」は、「ある領域に入ったら」、「ある線を 通過したら」、「ある点から最も近いモノ」などの定義が可 能。
トリガーや「いつ」、「どこで」などはANDやOR、XORによ る組み合わせが可能。 「性別/年齢」や「車種」等、オブジェクトの属性によるフィ ルタリングが可能
現行のGUI 36
現行のGUI (Where定義の例) 37
事例:AR探索アドベンチャー 38 召喚! スマートフォンを使って現実世界のランドマークやオブジェクト を撮影することで、物語のヒントやアイテムを入手できる。 この世界を救う ため四匹の聖獣 を召喚するのだ
事例:AR探索アドベンチャー 39 「シナリオエンジン」によって、ユー ザーが何を撮影したか、どのような選 択肢を選択したかによって、自由にス トーリーを変更できます。 地域のゆるキャラや、その地域の歴史 クイズをストーリーに組み込むなど、コン
テンツの変更やカスタマイズが容易。 混雑状況にあわせた周遊先の分散、曜 日や天候等で使用できない施設を周遊 先から外す等、動的なストーリー変更が 可能。 プレイヤーの周遊パターンや集客具合、 混雑状況、対象商品の撮影頻度などの 可視化および効果測定が可能。 自由なストーリー展開
テストプレイ@綱島公園(2023/11/23 – 26) 40 横浜日吉新聞にも取り上げられました。 https://hiyosi.net/2023/11/23/event_2023-20/ オリジナルコンテンツ「妖怪ハンター候補生」
今後やりたいこと 41 キラーアプリケーションを作りたい! AR探索アドベンチャーを育てる それ以外の応用も募集中! オープンソースで公開
周辺のセンシング+AIを充実 連携できるIoT機器の充実 生成AIによって、自然言語からシナリオ を作成できるようにしたい! 時空間DBの3次元化/リアルタイム化