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
第16回 MLOps 勉強会(Online) LT枠 大田黒
Search
Hiroyuki Ootaguro
February 17, 2022
Technology
1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
第16回 MLOps 勉強会(Online) LT枠 大田黒
https://mlops.connpass.com/event/236071/
Hiroyuki Ootaguro
February 17, 2022
More Decks by Hiroyuki Ootaguro
See All by Hiroyuki Ootaguro
OBD2 x RaspberryPiで車両情報を蓄積&BIで分析できるようにする
xecus
0
980
Product Development in Resilire seed phase 20210812
xecus
0
210
AI x IoT利活用SaaSにおけるデータ基盤の構築
xecus
0
1.1k
BIT VALLEY 2020 - AI x IoT活用サービスの立ち上げ・拡販のための取り組み
xecus
0
2.9k
Other Decks in Technology
See All in Technology
Claude Codeとハーネスについて考えてみる
oikon48
18
9.3k
Zoom2Youtube.Claude
kawaguti
PRO
3
490
人を動かすのは時間ではなく、納得感 〜新任EMが入社3ヶ月、組織を2回変えた話〜
kakehashi
PRO
3
220
DatabricksにおけるMCPソリューション
taka_aki
1
240
SRE依存からの脱却 運用を開 発チームへ移す、 フルサイ クル開 発体制の実践
joooee0000
0
2.6k
「早く出す」より「事業に効く」 ── 顧客の業務サイクルから逆算するAI時代の二重ループ開発と「変化の設計者」 / devsumi2026
rakus_dev
1
220
実装だけじゃない! CCA-F取得エンジニアが教えるClaude Code開発プロセス活用術
diggymo
2
630
DMM.com 購入改善推進チーム におけるCodeRabbitを用いた レビューフロー改善の一例
ysknsid25
2
620
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
13
6k
関数型の考えを TypeScript に持ち込んで、テストしやすい純粋関数を増やす / Pure at the Core, Effects at the Edge: Bringing Functional Thinking into TypeScript
kaminashi
1
110
CIで使うClaude
iwatatomoya
0
240
ポストモーテム! DDoSからサイトは守れた。 でもビジネスは守れなかった。
bengo4com
0
2.8k
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
210k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
2
320
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
450
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
Building Applications with DynamoDB
mza
96
7.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
880
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
180
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Claude Code のすすめ
schroneko
67
230k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
800
Transcript
2022年02月16日 大田黒 紘之 https://mlops.connpass.com/event/236071/ 第16回 MLOps 勉強会(Online) LT枠
Confidential 自己紹介 大田黒 紘之 @xecus , Born in Chiba 1994
▪東京都立産業技術高専 医療福祉工学科 コース (2009/4 - 2014/3) メカトロニクスとか数値計算周りを専攻。 人工衛星開発も一部。 ▪首都大学東京に編入 電気電子工学、半導体周りを専攻(量子効 果デバイスとか) ▪ABEJA 2015年〜 ・Insight for Retail (IoT x AI利活用プロダク ト)の立ち上げ・拡販 ・AIプロダクト事業部 プラットフォーム グループMGR (2022年1月現在) 社内勉強会用
Confidential 突然ですが.... 車を買ったので、世界で一つだけのMyドライブレ コーダーを作りたい!! 社外勉強会用
Confidential 何がやりたいか 4 ドライブ レコーダー <従来のドライブレコーダー> SD Card <今考えているドライブレコーダー案> ドライブ
レコーダー SD Card 動画 ストレージ AI推論による 意味づけ 車両情報 (運転情報) BIツ ール 等 事故が起きた時に自分・警察・保険会社が見る (それ以外のシーンではほとんど使わない) ECU 車を運転し続けるという体験をアップデートできる Something GPS 社外勉強会用
Confidential 機能の指向性を妄想 5 • ①細かい車両情報(OBD)を蓄積&BIツールで分析できるようにする (オレオレドラレコ基本機能) • ②撮影した動画をクラウド上で見ることができる(オレオレドラレコ基本機能) • ③車の維持が楽になる世界
◦ 時間・走っている場所毎のガソリン消費量や燃費変動の見える化。ガソスタレコメンド。 ◦ 車の部品のリアルタイム故障検知・予測(車のオルタネータが劣化してきた、BAT電圧低い等) ◦ オイル交換やオイルフィルター交換等の目安と近くのお店をレコメンドしてくれる世界 • ④車と家族の思い出を振り返られるような世界 ▪ GPSを用いた走行ログの蓄積と可視化。動画と連携。携帯のアプリから見る事ができる。 • ⑤解像度の高い運転危険情報が見えるようになる世界 ◦ 動画情報の意味解析を通じて、地域ごとのヒヤリハット情報等を蓄積化 & カーナビ反映 ◦ 例:地域ごとの危険イベントの集計・見える化 • ⑥企業やドライバーが環境に配慮できる世界観 ◦ 低炭素社会実現の為のCo2排出量の見える化 (SDGs, ESG文脈でもありそう) 個人 社会 社外勉強会用
Confidential 課題解決のアプローチ 6 ・ビジョン思考とデザイン思考を組み合 わせて、アプローチしてみる。 ・自分自身ソフトウェアエンジニアなの で、プロトタイピングをしながら進めて みる https://diamond.jp/articles/-/195874?page=2 社外勉強会用
Confidential OBD2 7 • 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 8 ※OBD端子の位置はメーカー・車種に依存 (TOYOTA RAIZEは運転席の足元に) 社外勉強会用
Confidential OBD-IIを利活用するには 9 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を利活用するには 10 オレオレレコーダープログラム On RaspberryPi オレオレプロトコルスタック ここをうまくや ってくれる物理 層周りのハード
ウェアが必要 社外勉強会用
Confidential OBD2 (CANBUS)の通信ハードウェア 11 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バスへのアクセス 12 CANコントロー ラーモジュール (UART制御) USB⇔UART変 換 モジュール 社外勉強会用
Confidential OBD2 13 社外勉強会用
Confidential OBD2フレームの解析 14 ECU (PID: 0x7E8)からサービスID(0x01)・データPID(0x0C: EngineSpeed)のリクエストに対す る応答。データLengthは4Byte データは 0x0D190000(00)
→ (0x0D ✕ 256 + 0x19) / 4 = 838 Rpm 社外勉強会用
Confidential システム全体像 15 Raspberry Pi 車両情報等 BIツールで 振り返り 社外勉強会用
Confidential RaspberryPi ⇔ 車両部分 16 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)部分 17 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 データ取得の様子@京葉市川パーキングエリア 18 社外勉強会用
Confidential BIツール(Redash) x OBDデータ 19 • 現在取得できているデータ ◦ エンジン回転数(RPM) ◦
エンジン負荷(%) ◦ アクセルの位置(%) ◦ 冷却材の温度(C) ◦ 大気の圧力(kPA) →高度情報取れる ◦ インテークの温度 ◦ インテークの圧力 ◦ バッテリーの電圧 ◦ Short Time Fuel Trim (短期燃料トリム) ◦ Long Time Fuel Trim (長期燃料トリム) ◦ エンジン始動からの経過時間 社外勉強会用
Confidential ProtoTyping部分 20 社外勉強会用
Confidential WebカメラをRaspberryPiに接続 21 • ドンキカメラ ◦ MJPG ▪ 1280x720 30FPS
◦ YUYV ▪ 640x360 30FPS 社外勉強会用
Confidential ProtoTyping部分 22 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) 23 • OpenCVのVideoCaptureとVideoWriterを用い て、60秒おきにファイル書き出しを実施 • 動画中に撮影時間をputTextを記載 社外勉強会用
Confidential 保存した動画のGCSアップロード (video_uploader.py) 24 • VideoRecorderの出力するmp4ファイルを随 時GCSへ動機 • (FluentdやEmbulk等で、ファイルの TIMESTAMPからパスをいい感じに調節しなが
らアップロードできるならそちらに切り替えた い) 社外勉強会用
Confidential オレオレドライブレコーダーの映像解析 25 • 映像データの意味付け ◦ ObjectDetection ▪ https://github.com/open- mmlab/mmdetection
◦ Segmentation ▪ https://github.com/open- mmlab/mmsegmentation 社外勉強会用
Confidential ABEJA Advent Calendar 2021の1日目の記事。 https://qiita.com/xecus/items/c96bec764e20946059a0 元ネタ 社外勉強会用
Confidential 紹介①: ABEJA Platform (MLOps Platform) 27 社外勉強会用 https://abejainc.com/platform/ja/
Confidential 宣伝①: ABEJA Platform (MLOps Platform) 28 社外勉強会用 https://qiita.com/Nagafuchik/ items/f265824e8091f5c384a9
https://qiita.com/naoki0423/ items/1cf91993561712be8c13
Confidential 宣伝②:ABEJA 採用強化しています! 29 社外勉強会用 https://hrmos.co/pages/abeja/jobs