Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
OBD2 x RaspberryPiで車両情報を蓄積&BIで分析できるようにする
Search
Hiroyuki Ootaguro
January 28, 2022
Technology
1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
OBD2 x RaspberryPiで車両情報を蓄積&BIで分析できるようにする
下記イベントでの登壇内容です。
https://abeja-innovation-meetup.connpass.com/event/232996/
Hiroyuki Ootaguro
January 28, 2022
More Decks by Hiroyuki Ootaguro
See All by Hiroyuki Ootaguro
第16回 MLOps 勉強会(Online) LT枠 大田黒
xecus
0
1.1k
Product Development in Resilire seed phase 20210812
xecus
0
220
AI x IoT利活用SaaSにおけるデータ基盤の構築
xecus
0
1.1k
BIT VALLEY 2020 - AI x IoT活用サービスの立ち上げ・拡販のための取り組み
xecus
0
3k
Other Decks in Technology
See All in Technology
AIエージェントの一手は 誰も見ていない - Falco拡張OSS「Prempti」とeBPFで サーバーレス実行基盤を二層防御する
keitah
0
490
EventBridge に「合流」はない ― サーバーレスのワークフローを育てるということ / No Join in EventBridge
yusukeshimizu
2
480
2026-09-08 そのJavaモダナイゼーション、AIに丸投げで大丈夫?IBM Bobで変わる品質と効率
yutanonaka
1
150
SREは、MCPとAutopilotをこう使え!
kazumax55
3
950
SREへの勘違いに気づいた後の話
tomodakengo
0
150
ソフトウェアDNAとクラウドエージェントのススメ
cloudace
0
120
Von-Neumann Machines, Dreams & The Futures of IT
ufried
0
120
積み重なった技術負債への挑戦 〜初手としての全社ゴト化〜
techtekt
PRO
0
1.6k
AIエージェントの自己改善をどう設計するか / How to Design Self-Improvement for AI Agents
22mi
25
17k
白金鉱業Meetup Vol.25 アウトカムが二値のデータに対するCausal Impact
brainpadpr
0
290
負債のメタファと2026年 / Debt Metaphor in Agentic Engineering Age 202609 Edition
twada
PRO
11
6.1k
データ界隈LT祭 第1回LT登壇
taromatsui_cccmkhd
2
1.5k
Featured
See All Featured
A Soul's Torment
seathinner
8
3.6k
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
470
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
440
Typedesign – Prime Four
hannesfritz
42
3.2k
Designing for humans not robots
tammielis
254
26k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
First, design no harm
axbom
PRO
2
1.3k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
200
Crafting Experiences
bethany
1
350
Transcript
2021年01月21日 大田黒 紘之 https://abeja-innovation-meetup.connpass.com/event/232996/ ABEJA TechLT #3 OBD2 x RaspberryPiで
車両情報を蓄積&BIで分析できるようにする
Confidential ABEJA Advent Calendar 2021の1日目の記事。 https://qiita.com/xecus/items/c96bec764e20946059a0 元ネタ 社内勉強会用
Confidential 自己紹介 大田黒 紘之 @xecus , Born in Chiba 1994
▪東京都立産業技術高専 医療福祉工学科 コース (2009/4 - 2014/3) メカトロニクスとか数値計算周りを専攻。 人工衛星開発も一部。 ▪首都大学東京に編入 電気電子工学、半導体周りを専攻(量子効 果デバイスとか) ▪ABEJA 2015年〜 ・Insight for Retail (IoT x AI利活用プロダク ト)の立ち上げ・拡販 ・AIプロダクト事業部 プラットフォーム グループMGR (2022年1月現在) 社内勉強会用
Confidential 8月にTOYOTA RAIZEを納車しました 社内勉強会用
Confidential 突然ですが.... 世界で一つだけのMyドライブレコーダーを作りた い!! (OBD2車両情報+ AI Enabled Camera = ???)
社内勉強会用
Confidential 何がやりたいか 6 ドライブ レコーダー <従来のドライブレコーダー> SD Card <今考えているドライブレコーダー案> ドライブ
レコーダー SD Card 動画 ストレージ AI推論による 意味づけ 車両情報 (運転情報) BIツ ール 等 事故が起きた時に自分・警察・保険会社が見る (それ以外のシーンではほとんど使わない) ECU 車を運転し続けるという体験をアップデートできる Something GPS 社内勉強会用
Confidential ①現状のドライブレコーダーが持つ特性とデータの利活用の問題 【容量観点】 ・SDカード数時間分しか持たない。消され続けるデータ。過去を振り返る事はできない。 【データ利活用観点】 ・動画を確認する時に、結構めんどくさい(SDカード抜いて、変換アダプター経由でPCに...) ・映像をAI/MLに解析させる事で「意味情報」をもっと利活用できるのでは? 【記憶媒体の問題】 ・SDカードは書き換え寿命があるので、いつか壊れる。ファイルシステム壊れたらデータはお釈迦になる。。。 課題感
8 社内勉強会用
Confidential ②「ドライブレコーダー」という存在・役割をアップデートできるのではないか? もともと、当たり屋の裁判かなにかで、「ぶつかっていないという証拠が無い以上、事故は成立する」という判例が 出て、「自分の身は自分で守るしか無い」という業界の流れから普及したと推測。 (カメラで映像が取得できていれば十分という状況) ★IoTでBigDataでAIな時代&21世紀なので、もっとなんかできるのでは? ★「身を守る為のローカル映像記録システム」の次の役割は何か?? 課題感 9 社内勉強会用
Confidential 課題解決のアプローチ 10 ・ビジョン思考とデザイン思考を組み合 わせて、アプローチしてみる。 ・自分自身ソフトウェアエンジニアなの で、プロトタイピングをしながら進めて みる (仲間募集中です!笑) https://diamond.jp/articles/-/195874?page=2
社内勉強会用
Confidential 機能の指向性 11 • ①細かい車両情報(OBD)を蓄積&BIツールで分析できるようにする (オレオレドラレコ基本機能) • ②撮影した動画をクラウド上で見ることができる(オレオレドラレコ基本機能) • ③車の維持が楽になる世界
◦ 時間・走っている場所毎のガソリン消費量や燃費変動の見える化。ガソスタレコメンド。 ◦ 車の部品のリアルタイム故障検知・予測(車のオルタネータが劣化してきた、BAT電圧低い等) ◦ オイル交換やオイルフィルター交換等の目安と近くのお店をレコメンドしてくれる世界 • ④車と家族の思い出を振り返られるような世界 ▪ GPSを用いた走行ログの蓄積と可視化。動画と連携。携帯のアプリから見る事ができる。 • ⑤解像度の高い運転危険情報が見えるようになる世界 ◦ 動画情報の意味解析を通じて、地域ごとのヒヤリハット情報等を蓄積化 & カーナビ反映 ◦ 例:地域ごとの危険イベントの集計・見える化 • ⑥企業やドライバーが環境に配慮できる世界観 ◦ 低炭素社会実現の為のCo2排出量の見える化 (SDGs, ESG文脈でもありそう) 個人 社会 社内勉強会用
Confidential OBD2 12 • OBD = On Board Diagnosis (車の自己診断機能)
• CAN通信というプロトコルを拡張している • OBDの歴史は深い ◦ 1971年 FI(Fuel Injection: 電子制御式燃料噴射装置)搭 載車の登場 ◦ 1980年代 自己診断機能で修理しやすく ◦ 1982年 自己診断機能の統一化からOBDの誕生 => OBDのベースに ◦ 1996年 OBD-IIの登場 (20年以上前からある枯れたプ ロトコル) • めっちゃいろんなデータが取れる ◦ https://en.wikipedia.org/wiki/OBD-II_PIDs 仮説:OBDを使えば、超細かい車両情報が ドライブレコーダーに記録できるかも 社内勉強会用
Confidential OBD2 13 ※OBD端子の位置はメーカー・車種に依存 (TOYOTA RAIZEは運転席の足元に) 社内勉強会用
Confidential OBD-IIを利活用するには 14 ECUや周辺コンポーネントのCANバスがOBD用物理ポートから出ているので、 そこを拝借して、データの送受信を行う (結構怖いw) 社内勉強会用 http://make.bcde.jp/raspberry-pi/obd2canで自動車と通信ハード編/ https://monoist.itmedia.co.jp/mn/articles/0807/09/news140.html
Confidential OBD-IIを利活用するには 15 オレオレレコーダープログラム On RaspberryPi オレオレプロトコルスタック ここをうまくや ってくれる物理 層周りのハード
ウェアが必要 社内勉強会用
Confidential OBD2 (CANBUS)の通信ハードウェア 16 MCP2515 CANコントローラー MCP2551 CANトランシー バーIC https://docs.longan-labs.cc/1030001/
CANコントローラのICを使い、RaspberryPiやMCUと通信できるようにする ※カニチップ(Ethernetコントローラー)みたいなもん 社内勉強会用 https://diary.freebbs.biz/archives/cat23/raspberrypi_spi.php
Confidential OBDコネクタからCANバスへのアクセス 17 社内勉強会用 CANコントロー ラーモジュール (UART制御) USB⇔UART変 換 モジュール
社内勉強会用
Confidential OBD2 18 社内勉強会用
Confidential OBD2フレームの解析 19 ECU (PID: 0x7E8)からサービスID(0x01)・データPID(0x0C: EngineSpeed)のリクエストに対す る応答。データLengthは4Byte データは 0x0D190000(00)
→ (0x0D ✕ 256 + 0x19) / 4 = 838 Rpm 社内勉強会用
Confidential システム全体像 20 社内勉強会用 Raspberry Pi 車両情報等 BIツールで 振り返り
Confidential RaspberryPi ⇔ 車両部分 21 CAN通信モジュール USB⇔CAN変換 社内勉強会用 USB⇔Serial変換 (FT234等)
Serial⇔CAN通信 (Seeed社 Serial CAN- BUS Module) MCP 2551 MCP 2515 CAN通信モジュール RaspberryPi CAN通信モジュール OBD情報取得 プログラム (obd_recorder.go) /mnt/usb_memory Engine_rpm.jsonl xxxx.jsonl CAN通信モジュール OBD2端子 ECU #1 ECU #1 ECU #1 車両側 /dev/tty USB0
Confidential RaspberryPi ⇔ クラウド(GCP)部分 22 CAN通信モジュール RaspberryPi CAN通信モジュール /mnt/usb_memory CAN通信モジュール
GCP (クラウド側) Streaming Insert Engine_rpm.jsonl xxxx.jsonl Service Account ※数時間程度のざくっとプロトタイピング。下記プラグインを利用 https://github.com/fluent-plugins-nursery/fluent-plugin-bigquery 社内勉強会用 OBD情報取得 プログラム (obd_recorder.go) car_dataset engine_rpm_table xxxx_table
Confidential データ取得の様子@京葉市川パーキングエリア 23 社内勉強会用
Confidential BIツール(Redash) x OBDデータ 24 • 現在取得できているデータ ◦ エンジン回転数(RPM) ◦
エンジン負荷(%) ◦ アクセルの位置(%) ◦ 冷却材の温度(C) ◦ 大気の圧力(kPA) →高度情報取れる ◦ インテークの温度 ◦ インテークの圧力 ◦ バッテリーの電圧 ◦ Short Time Fuel Trim (短期燃料トリム) ◦ Long Time Fuel Trim (長期燃料トリム) ◦ エンジン始動からの経過時間 社内勉強会用
Confidential WebカメラをRaspberryPiに接続 25 • ドンキカメラ ◦ MJPG ▪ 1280x720 30FPS
◦ YUYV ▪ 640x360 30FPS 社内勉強会用
Confidential ProtoTyping部分 26 RaspberryPi CAN通信モジュール video_recorder.py /mnt/usb_memory/videos CAN通信モジュール GCP Streaming
Insert YYYYMMDD-HHMMSS.mp4 Service Account video_uploader.py 社内勉強会用
Confidential OpenCVでWebカメラの映像を保存 (video_recorder.py) 27 • OpenCVのVideoCaptureとVideoWriterを用い て、60秒おきにファイル書き出しを実施 • 動画中に撮影時間をputTextを記載 社内勉強会用
Confidential 保存した動画のGCSアップロード (video_uploader.py) 28 • VideoRecorderの出力するmp4ファイルを随 時GCSへ動機 • (FluentdやEmbulk等で、ファイルの TIMESTAMPからパスをいい感じに調節しなが
らアップロードできるならそちらに切り替えた い) 社内勉強会用
Confidential ProtoTyping部分 29 社内勉強会用
Confidential 実際にGCSに溜まったファイル 30 社内勉強会用
Confidential オレオレドライブレコーダーの映像解析 (Segmentation適用) 31 • 映像データの意味付け ◦ ObjectDetection ▪ https://github.com/open-
mmlab/mmdetection ◦ Segmentation ▪ https://github.com/open- mmlab/mmsegmentation 社内勉強会用
Confidential 困り毎 32 • OpenCVのVideoCapture & VideoWriterの負荷が高すぎて、フレーム欠損する ◦ 30FPS取れていない(体感半分程度) ◦
仮説①:ライブラリがシングルコア活用の為、コア1つ1つの性能が微妙なRaspberryPiではすぐ頭打ちが 来る...? ▪ RaspberryPi 4なら行ける説 ◦ 仮説②:USB周りのデータ転送レートが遅い ▪ リアルタイムカーネルに切り替えて解決している感...? ▪ http://tnoho.com/web/webrtc/689 社内勉強会用
Confidential 最後に 34 • 利活用に関して皆様からアイデアを頂きたくです! ◦ Slackでコメントいただけますと嬉しくです! ◦ どなたか、一緒に発展させていきませんか?! •
今後の展望?トライ? ◦ GPSセンサーの装着 ▪ GNSS受信キットを買った! ◦ ドライブレコーダー映像 x AI ▪ 取得動画のセグメンテーションや動画Caption付け ◦ ABEJA Platform上への実装 社内勉強会用