$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枠

    View Slide

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

    View Slide

  3. Confidential
    突然ですが....
    車を買ったので、世界で一つだけのMyドライブレ
    コーダーを作りたい!!
    社外勉強会用

    View Slide

  4. Confidential
    何がやりたいか
    4
    ドライブ
    レコーダー
    <従来のドライブレコーダー>
    SD
    Card
    <今考えているドライブレコーダー案>
    ドライブ
    レコーダー
    SD
    Card
    動画
    ストレージ AI推論による
    意味づけ
    車両情報
    (運転情報)
    BIツ
    ール

    事故が起きた時に自分・警察・保険会社が見る
    (それ以外のシーンではほとんど使わない)
    ECU
    車を運転し続けるという体験をアップデートできる
    Something
    GPS
    社外勉強会用

    View Slide

  5. Confidential
    機能の指向性を妄想
    5
    ● ①細かい車両情報(OBD)を蓄積&BIツールで分析できるようにする (オレオレドラレコ基本機能)
    ● ②撮影した動画をクラウド上で見ることができる(オレオレドラレコ基本機能)
    ● ③車の維持が楽になる世界
    ○ 時間・走っている場所毎のガソリン消費量や燃費変動の見える化。ガソスタレコメンド。
    ○ 車の部品のリアルタイム故障検知・予測(車のオルタネータが劣化してきた、BAT電圧低い等)
    ○ オイル交換やオイルフィルター交換等の目安と近くのお店をレコメンドしてくれる世界
    ● ④車と家族の思い出を振り返られるような世界
    ■ GPSを用いた走行ログの蓄積と可視化。動画と連携。携帯のアプリから見る事ができる。
    ● ⑤解像度の高い運転危険情報が見えるようになる世界
    ○ 動画情報の意味解析を通じて、地域ごとのヒヤリハット情報等を蓄積化 & カーナビ反映
    ○ 例:地域ごとの危険イベントの集計・見える化
    ● ⑥企業やドライバーが環境に配慮できる世界観
    ○ 低炭素社会実現の為のCo2排出量の見える化 (SDGs, ESG文脈でもありそう)
    個人
    社会
    社外勉強会用

    View Slide

  6. Confidential
    課題解決のアプローチ
    6
    ・ビジョン思考とデザイン思考を組み合
    わせて、アプローチしてみる。
    ・自分自身ソフトウェアエンジニアなの
    で、プロトタイピングをしながら進めて
    みる
    https://diamond.jp/articles/-/195874?page=2
    社外勉強会用

    View Slide

  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を使えば、超細かい車両情報が
    ドライブレコーダーに記録できるかも
    社外勉強会用

    View Slide

  8. Confidential
    OBD2
    8
    ※OBD端子の位置はメーカー・車種に依存 (TOYOTA RAIZEは運転席の足元に)
    社外勉強会用

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  12. Confidential
    OBDコネクタからCANバスへのアクセス
    12
    CANコントロー
    ラーモジュール
    (UART制御)
    USB⇔UART変

    モジュール
    社外勉強会用

    View Slide

  13. Confidential
    OBD2
    13
    社外勉強会用

    View Slide

  14. Confidential
    OBD2フレームの解析
    14
    ECU (PID: 0x7E8)からサービスID(0x01)・データPID(0x0C: EngineSpeed)のリクエストに対す
    る応答。データLengthは4Byte
    データは 0x0D190000(00) → (0x0D ✕ 256 + 0x19) / 4 = 838 Rpm
    社外勉強会用

    View Slide

  15. Confidential
    システム全体像
    15
    Raspberry
    Pi
    車両情報等
    BIツールで
    振り返り
    社外勉強会用

    View Slide

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

    View Slide

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

    View Slide

  18. Confidential
    データ取得の様子@京葉市川パーキングエリア
    18
    社外勉強会用

    View Slide

  19. Confidential
    BIツール(Redash) x OBDデータ
    19
    ● 現在取得できているデータ
    ○ エンジン回転数(RPM)
    ○ エンジン負荷(%)
    ○ アクセルの位置(%)
    ○ 冷却材の温度(C)
    ○ 大気の圧力(kPA) →高度情報取れる
    ○ インテークの温度
    ○ インテークの圧力
    ○ バッテリーの電圧
    ○ Short Time Fuel Trim (短期燃料トリム)
    ○ Long Time Fuel Trim (長期燃料トリム)
    ○ エンジン始動からの経過時間
    社外勉強会用

    View Slide

  20. Confidential
    ProtoTyping部分
    20
    社外勉強会用

    View Slide

  21. Confidential
    WebカメラをRaspberryPiに接続
    21
    ● ドンキカメラ
    ○ MJPG
    ■ 1280x720 30FPS
    ○ YUYV
    ■ 640x360 30FPS
    社外勉強会用

    View Slide

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

    View Slide

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

    View Slide

  24. Confidential
    保存した動画のGCSアップロード (video_uploader.py)
    24
    ● VideoRecorderの出力するmp4ファイルを随
    時GCSへ動機
    ● (FluentdやEmbulk等で、ファイルの
    TIMESTAMPからパスをいい感じに調節しなが
    らアップロードできるならそちらに切り替えた
    い)
    社外勉強会用

    View Slide

  25. Confidential
    オレオレドライブレコーダーの映像解析
    25
    ● 映像データの意味付け
    ○ ObjectDetection
    ■ https://github.com/open-
    mmlab/mmdetection
    ○ Segmentation
    ■ https://github.com/open-
    mmlab/mmsegmentation
    社外勉強会用

    View Slide

  26. Confidential
    ABEJA Advent Calendar 2021の1日目の記事。
    https://qiita.com/xecus/items/c96bec764e20946059a0
    元ネタ 社外勉強会用

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide