# 踏切AI開発
## 概要
- 踏切にエッジデバイスを設置し、危険な状態にある人や車両等を検知してアラートを通知する。
- DETRによる物体検知及びCNNによる画像認識を用いて実現。
- 鉄道および電力会社向けに、物体検知/画像解析AIを用いた検知アプリケーションおよび解析結果確認Webシステムを開発。
- エッジデバイスへのデプロイシステムおよびクラウド環境を含めたエンドツーエンドのシステムを構築。
## チーム構成
- マネージャー3名
- 開発メンバー6名
- 事務1名
計10名
## 開発環境
- OS
- Linux / Windows / Mac
- 言語
- Python / TypeScript / ShellScript / Go
- インフラ / IaC
- AWS / Terraform
- DB
- PostgreSQL / Amazon DynamoDB
- フレームワーク / ライブラリ
- PyTorch / OpenCV
- FastAPI / Django / Flask
- Angular / Next.js / NestJS
- ミドルウェア / 実行環境
- Docker / nginx / gunicorn / uvicorn
- ツール
- Git / GitHub / Visual Studio Code / Vim
- MLflow / DVC
- GitHub Actions / pytest
- Soracom
- ChatGPT / Microsoft Copilot / Amazon Q Developer
## 業務内容
- 物体検知および画像分類AIモデルの設計・学習・評価。
- 上記モデルの精度向上のアプローチ。
- データの拡充
- 前処理
- ハイパーパラメータの調整
- fine tuningする学習済みモデルのアーキテクチャ選定
- 学習モデルの評価
- ローカル環境でのMLOps整備。
- 前処理・評価スクリプトの作成
- DVCを用いたデータセット管理およびパイプライン構築
- エッジデバイスへのモデルデプロイおよびデプロイシステムの実装。
- AI検知アプリの実装・テスト・リファクタリング。
- 追加機能の実現。
- 要件検討
- 技術選定
- 設計
- 実装
- テスト
- Web管理画面および解析結果確認Webシステムの実装・運用。
- TerraformによるAWS環境の構築およびIaCによる管理。
- CI/CD環境の構築(GitHub Actions)および自動テスト(pytest)の導入。
- システム全体の運用保守およびトラブルシューティング対応。
- 設計書のリバースエンジニアリングによる整備。
- 他メンバの実装支援・コードレビュー。
- 実質開発リーダーとして進捗管理・タスク分割・メンバ育成を担当。
- 提案〜運用保守まで一貫して対応。
## 課題
- 誤検知の改善
- MLOpsに準じたパイプラインの自動化
- プロジェクト混乱下での開発体制の立て直し
- デリバリー速度の向上
## アプローチ
- 誤検知の改善
- 現状の誤検知の原因と件数を一覧化し、件数と難易度で優先順位を決定。
- 該当クラスの画像データを収集・分析し、特徴的な動作に基づく汎用的な改善を実施。
- MLOpsに準じたパイプラインの自動化
- チーム内の運用実態を踏まえた改善提案を実施。
- Excelベースの管理からMLflow等のツール活用へ移行。
- DVCを用いたデータ管理および再現性のあるパイプライン構築。
- 開発体制の改善
- タスク分割・進捗管理を整理し、アジャイルに開発を推進。
- サンプル実装を用いた教育によりメンバのスキル底上げを実施。
- 開発効率の向上
- CI/CDおよび自動テスト導入によりリリースプロセスを効率化。
## 役割・マネジメント
- 実質的な開発リーダーとしてプロジェクトを牽引し、開発とマネジメントを両立。
- 要件整理・課題抽出・タスク分割を行い、アジャイルに開発を推進。
- メンバーの進捗管理および状況把握を行い、ボトルネックの早期解消を実施。
- メンバー育成として、サンプル実装提示やレビューを通じた実践的な指導を実施。
- 高難易度タスクの技術支援および設計・実装レビューを担当。
- プロジェクト混乱下において主体的に開発体制を再構築し、安定運用へ移行。
- ステークホルダー視点と技術視点を両立し、最適な技術選定および改善提案を実施。
- 提案〜運用保守まで一貫して対応可能な体制を構築。
## 実績
- AIモデル精度を約90%から97%へ向上。
- MLOps整備および開発プロセス改善によりデリバリー速度を約80%改善。
- 複数テナントでのコンペにおいて性能改善を実現し、5テナントでPoC・本運用へ移行。
- 提案〜運用保守まで単独で遂行可能な体制を確立。
- プロジェクト混乱下において実質技術リーダーとして開発とマネジメントを両立。