$30 off During Our Annual Pro Sale. View Details »

第16回 MLOps 勉強会(Online) LT枠 大田黒

第16回 MLOps 勉強会(Online) LT枠 大田黒

Hiroyuki Ootaguro

February 17, 2022
Tweet

More Decks by Hiroyuki Ootaguro

Other Decks in Technology

Transcript

  1. 2022年02月16日 大田黒 紘之 https://mlops.connpass.com/event/236071/ 第16回 MLOps 勉強会(Online) LT枠

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

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

  4. Confidential 何がやりたいか 4 ドライブ レコーダー <従来のドライブレコーダー> SD Card <今考えているドライブレコーダー案> ドライブ

    レコーダー SD Card 動画 ストレージ AI推論による 意味づけ 車両情報 (運転情報) BIツ ール 等 事故が起きた時に自分・警察・保険会社が見る (それ以外のシーンではほとんど使わない) ECU 車を運転し続けるという体験をアップデートできる Something GPS 社外勉強会用
  5. Confidential 機能の指向性を妄想 5 • ①細かい車両情報(OBD)を蓄積&BIツールで分析できるようにする (オレオレドラレコ基本機能) • ②撮影した動画をクラウド上で見ることができる(オレオレドラレコ基本機能) • ③車の維持が楽になる世界

    ◦ 時間・走っている場所毎のガソリン消費量や燃費変動の見える化。ガソスタレコメンド。 ◦ 車の部品のリアルタイム故障検知・予測(車のオルタネータが劣化してきた、BAT電圧低い等) ◦ オイル交換やオイルフィルター交換等の目安と近くのお店をレコメンドしてくれる世界 • ④車と家族の思い出を振り返られるような世界 ▪ GPSを用いた走行ログの蓄積と可視化。動画と連携。携帯のアプリから見る事ができる。 • ⑤解像度の高い運転危険情報が見えるようになる世界 ◦ 動画情報の意味解析を通じて、地域ごとのヒヤリハット情報等を蓄積化 & カーナビ反映 ◦ 例:地域ごとの危険イベントの集計・見える化 • ⑥企業やドライバーが環境に配慮できる世界観 ◦ 低炭素社会実現の為のCo2排出量の見える化 (SDGs, ESG文脈でもありそう) 個人 社会 社外勉強会用
  6. Confidential 課題解決のアプローチ 6 ・ビジョン思考とデザイン思考を組み合 わせて、アプローチしてみる。 ・自分自身ソフトウェアエンジニアなの で、プロトタイピングをしながら進めて みる https://diamond.jp/articles/-/195874?page=2 社外勉強会用

  7. 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を使えば、超細かい車両情報が ドライブレコーダーに記録できるかも 社外勉強会用
  8. Confidential OBD2 8 ※OBD端子の位置はメーカー・車種に依存 (TOYOTA RAIZEは運転席の足元に) 社外勉強会用

  9. 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 社外勉強会用

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

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

  13. Confidential OBD2 13 社外勉強会用

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

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

  16. 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 社外勉強会用
  17. 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 社外勉強会用
  18. Confidential データ取得の様子@京葉市川パーキングエリア 18 社外勉強会用

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

    エンジン負荷(%) ◦ アクセルの位置(%) ◦ 冷却材の温度(C) ◦ 大気の圧力(kPA) →高度情報取れる ◦ インテークの温度 ◦ インテークの圧力 ◦ バッテリーの電圧 ◦ Short Time Fuel Trim (短期燃料トリム) ◦ Long Time Fuel Trim (長期燃料トリム) ◦ エンジン始動からの経過時間 社外勉強会用
  20. Confidential ProtoTyping部分 20 社外勉強会用

  21. Confidential WebカメラをRaspberryPiに接続 21 • ドンキカメラ ◦ MJPG ▪ 1280x720 30FPS

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

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

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

    らアップロードできるならそちらに切り替えた い) 社外勉強会用
  25. Confidential オレオレドライブレコーダーの映像解析 25 • 映像データの意味付け ◦ ObjectDetection ▪ https://github.com/open- mmlab/mmdetection

    ◦ Segmentation ▪ https://github.com/open- mmlab/mmsegmentation 社外勉強会用
  26. Confidential ABEJA Advent Calendar 2021の1日目の記事。 https://qiita.com/xecus/items/c96bec764e20946059a0 元ネタ 社外勉強会用

  27. Confidential 紹介①: ABEJA Platform (MLOps Platform) 27 社外勉強会用 https://abejainc.com/platform/ja/

  28. Confidential 宣伝①: ABEJA Platform (MLOps Platform) 28 社外勉強会用 https://qiita.com/Nagafuchik/ items/f265824e8091f5c384a9

    https://qiita.com/naoki0423/ items/1cf91993561712be8c13
  29. Confidential 宣伝②:ABEJA 採用強化しています! 29 社外勉強会用 https://hrmos.co/pages/abeja/jobs