Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OBD2 x RaspberryPiで車両情報を蓄積&BIで分析できるようにする

OBD2 x RaspberryPiで車両情報を蓄積&BIで分析できるようにする

下記イベントでの登壇内容です。
https://abeja-innovation-meetup.connpass.com/event/232996/

Hiroyuki Ootaguro

January 28, 2022
Tweet

More Decks by Hiroyuki Ootaguro

Other Decks in Technology

Transcript

  1. 2021年01月21日 大田黒 紘之 https://abeja-innovation-meetup.connpass.com/event/232996/ ABEJA TechLT #3 OBD2 x RaspberryPiで

    車両情報を蓄積&BIで分析できるようにする
  2. Confidential ABEJA Advent Calendar 2021の1日目の記事。 https://qiita.com/xecus/items/c96bec764e20946059a0 元ネタ 社内勉強会用

  3. Confidential 自己紹介 大田黒 紘之 @xecus , Born in Chiba 1994

    ▪東京都立産業技術高専 医療福祉工学科 コース (2009/4 - 2014/3) メカトロニクスとか数値計算周りを専攻。 人工衛星開発も一部。 ▪首都大学東京に編入 電気電子工学、半導体周りを専攻(量子効 果デバイスとか) ▪ABEJA 2015年〜 ・Insight for Retail (IoT x AI利活用プロダク ト)の立ち上げ・拡販 ・AIプロダクト事業部 プラットフォーム グループMGR (2022年1月現在) 社内勉強会用
  4. Confidential 8月にTOYOTA RAIZEを納車しました 社内勉強会用

  5. Confidential 突然ですが.... 世界で一つだけのMyドライブレコーダーを作りた い!! (OBD2車両情報+ AI Enabled Camera = ???)

    社内勉強会用
  6. Confidential 何がやりたいか 6 ドライブ レコーダー <従来のドライブレコーダー> SD Card <今考えているドライブレコーダー案> ドライブ

    レコーダー SD Card 動画 ストレージ AI推論による 意味づけ 車両情報 (運転情報) BIツ ール 等 事故が起きた時に自分・警察・保険会社が見る (それ以外のシーンではほとんど使わない) ECU 車を運転し続けるという体験をアップデートできる Something GPS 社内勉強会用
  7. Confidential ①現状のドライブレコーダーが持つ特性とデータの利活用の問題 【容量観点】 ・SDカード数時間分しか持たない。消され続けるデータ。過去を振り返る事はできない。 【データ利活用観点】 ・動画を確認する時に、結構めんどくさい(SDカード抜いて、変換アダプター経由でPCに...) ・映像をAI/MLに解析させる事で「意味情報」をもっと利活用できるのでは? 【記憶媒体の問題】 ・SDカードは書き換え寿命があるので、いつか壊れる。ファイルシステム壊れたらデータはお釈迦になる。。。 課題感

    8 社内勉強会用
  8. Confidential ②「ドライブレコーダー」という存在・役割をアップデートできるのではないか? もともと、当たり屋の裁判かなにかで、「ぶつかっていないという証拠が無い以上、事故は成立する」という判例が 出て、「自分の身は自分で守るしか無い」という業界の流れから普及したと推測。 (カメラで映像が取得できていれば十分という状況) ★IoTでBigDataでAIな時代&21世紀なので、もっとなんかできるのでは? ★「身を守る為のローカル映像記録システム」の次の役割は何か?? 課題感 9 社内勉強会用

  9. Confidential 課題解決のアプローチ 10 ・ビジョン思考とデザイン思考を組み合 わせて、アプローチしてみる。 ・自分自身ソフトウェアエンジニアなの で、プロトタイピングをしながら進めて みる (仲間募集中です!笑) https://diamond.jp/articles/-/195874?page=2

    社内勉強会用
  10. Confidential 機能の指向性 11 • ①細かい車両情報(OBD)を蓄積&BIツールで分析できるようにする (オレオレドラレコ基本機能) • ②撮影した動画をクラウド上で見ることができる(オレオレドラレコ基本機能) • ③車の維持が楽になる世界

    ◦ 時間・走っている場所毎のガソリン消費量や燃費変動の見える化。ガソスタレコメンド。 ◦ 車の部品のリアルタイム故障検知・予測(車のオルタネータが劣化してきた、BAT電圧低い等) ◦ オイル交換やオイルフィルター交換等の目安と近くのお店をレコメンドしてくれる世界 • ④車と家族の思い出を振り返られるような世界 ▪ GPSを用いた走行ログの蓄積と可視化。動画と連携。携帯のアプリから見る事ができる。 • ⑤解像度の高い運転危険情報が見えるようになる世界 ◦ 動画情報の意味解析を通じて、地域ごとのヒヤリハット情報等を蓄積化 & カーナビ反映 ◦ 例:地域ごとの危険イベントの集計・見える化 • ⑥企業やドライバーが環境に配慮できる世界観 ◦ 低炭素社会実現の為のCo2排出量の見える化 (SDGs, ESG文脈でもありそう) 個人 社会 社内勉強会用
  11. 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を使えば、超細かい車両情報が ドライブレコーダーに記録できるかも 社内勉強会用
  12. Confidential OBD2 13 ※OBD端子の位置はメーカー・車種に依存 (TOYOTA RAIZEは運転席の足元に) 社内勉強会用

  13. 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

  14. Confidential OBD-IIを利活用するには 15 オレオレレコーダープログラム On RaspberryPi オレオレプロトコルスタック ここをうまくや ってくれる物理 層周りのハード

    ウェアが必要 社内勉強会用
  15. 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
  16. Confidential OBDコネクタからCANバスへのアクセス 17 社内勉強会用 CANコントロー ラーモジュール (UART制御) USB⇔UART変 換 モジュール

    社内勉強会用
  17. Confidential OBD2 18 社内勉強会用

  18. Confidential OBD2フレームの解析 19 ECU (PID: 0x7E8)からサービスID(0x01)・データPID(0x0C: EngineSpeed)のリクエストに対す る応答。データLengthは4Byte データは 0x0D190000(00)

    → (0x0D ✕ 256 + 0x19) / 4 = 838 Rpm 社内勉強会用
  19. Confidential システム全体像 20 社内勉強会用 Raspberry Pi 車両情報等 BIツールで 振り返り

  20. 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
  21. 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
  22. Confidential データ取得の様子@京葉市川パーキングエリア 23 社内勉強会用

  23. Confidential BIツール(Redash) x OBDデータ 24 • 現在取得できているデータ ◦ エンジン回転数(RPM) ◦

    エンジン負荷(%) ◦ アクセルの位置(%) ◦ 冷却材の温度(C) ◦ 大気の圧力(kPA) →高度情報取れる ◦ インテークの温度 ◦ インテークの圧力 ◦ バッテリーの電圧 ◦ Short Time Fuel Trim (短期燃料トリム) ◦ Long Time Fuel Trim (長期燃料トリム) ◦ エンジン始動からの経過時間 社内勉強会用
  24. Confidential WebカメラをRaspberryPiに接続 25 • ドンキカメラ ◦ MJPG ▪ 1280x720 30FPS

    ◦ YUYV ▪ 640x360 30FPS 社内勉強会用
  25. Confidential ProtoTyping部分 26 RaspberryPi CAN通信モジュール video_recorder.py /mnt/usb_memory/videos CAN通信モジュール GCP Streaming

    Insert YYYYMMDD-HHMMSS.mp4 Service Account video_uploader.py 社内勉強会用
  26. Confidential OpenCVでWebカメラの映像を保存 (video_recorder.py) 27 • OpenCVのVideoCaptureとVideoWriterを用い て、60秒おきにファイル書き出しを実施 • 動画中に撮影時間をputTextを記載 社内勉強会用

  27. Confidential 保存した動画のGCSアップロード (video_uploader.py) 28 • VideoRecorderの出力するmp4ファイルを随 時GCSへ動機 • (FluentdやEmbulk等で、ファイルの TIMESTAMPからパスをいい感じに調節しなが

    らアップロードできるならそちらに切り替えた い) 社内勉強会用
  28. Confidential ProtoTyping部分 29 社内勉強会用

  29. Confidential 実際にGCSに溜まったファイル 30 社内勉強会用

  30. Confidential オレオレドライブレコーダーの映像解析 (Segmentation適用) 31 • 映像データの意味付け ◦ ObjectDetection ▪ https://github.com/open-

    mmlab/mmdetection ◦ Segmentation ▪ https://github.com/open- mmlab/mmsegmentation 社内勉強会用
  31. Confidential 困り毎 32 • OpenCVのVideoCapture & VideoWriterの負荷が高すぎて、フレーム欠損する ◦ 30FPS取れていない(体感半分程度) ◦

    仮説①:ライブラリがシングルコア活用の為、コア1つ1つの性能が微妙なRaspberryPiではすぐ頭打ちが 来る...? ▪ RaspberryPi 4なら行ける説 ◦ 仮説②:USB周りのデータ転送レートが遅い ▪ リアルタイムカーネルに切り替えて解決している感...? ▪ http://tnoho.com/web/webrtc/689 社内勉強会用
  32. Confidential 最後に 34 • 利活用に関して皆様からアイデアを頂きたくです! ◦ Slackでコメントいただけますと嬉しくです! ◦ どなたか、一緒に発展させていきませんか?! •

    今後の展望?トライ? ◦ GPSセンサーの装着 ▪ GNSS受信キットを買った! ◦ ドライブレコーダー映像 x AI ▪ 取得動画のセグメンテーションや動画Caption付け ◦ ABEJA Platform上への実装 社内勉強会用