Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
TS
Uploaded by
Tatsuya Suzuki
4,970 views
物体検出フレームワークMMDetectionで快適な開発
社内勉強会での発表資料です。 MMDetection: https://github.com/open-mmlab/mmdetection
Technology
◦
Read more
13
Save
Share
Embed
Embed presentation
1
/ 35
2
/ 35
Most read
3
/ 35
4
/ 35
5
/ 35
6
/ 35
7
/ 35
8
/ 35
9
/ 35
10
/ 35
11
/ 35
12
/ 35
13
/ 35
14
/ 35
15
/ 35
16
/ 35
17
/ 35
18
/ 35
19
/ 35
20
/ 35
Most read
21
/ 35
22
/ 35
23
/ 35
24
/ 35
25
/ 35
26
/ 35
27
/ 35
28
/ 35
29
/ 35
30
/ 35
31
/ 35
32
/ 35
33
/ 35
34
/ 35
35
/ 35
Most read
More Related Content
PPTX
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
by
Yusuke Uchida
PDF
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
by
Deep Learning JP
PPTX
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
by
RyuichiKanoh
PPTX
[DL輪読会]Flow-based Deep Generative Models
by
Deep Learning JP
PPTX
【DL輪読会】大量API・ツールの扱いに特化したLLM
by
Deep Learning JP
PPTX
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
by
Yusuke Uchida
PPTX
[解説スライド] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
by
Kento Doi
PPTX
近年のHierarchical Vision Transformer
by
Yusuke Uchida
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
by
Yusuke Uchida
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
by
Deep Learning JP
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
by
RyuichiKanoh
[DL輪読会]Flow-based Deep Generative Models
by
Deep Learning JP
【DL輪読会】大量API・ツールの扱いに特化したLLM
by
Deep Learning JP
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
by
Yusuke Uchida
[解説スライド] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
by
Kento Doi
近年のHierarchical Vision Transformer
by
Yusuke Uchida
What's hot
PPTX
物体検出の歴史(R-CNNからSSD・YOLOまで)
by
HironoriKanazawa
PPTX
ResNetの仕組み
by
Kota Nagasato
PPTX
[DL輪読会]When Does Label Smoothing Help?
by
Deep Learning JP
PPTX
【DL輪読会】Flow Matching for Generative Modeling
by
Deep Learning JP
PPTX
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
by
Deep Learning JP
PPTX
[DL輪読会]MetaFormer is Actually What You Need for Vision
by
Deep Learning JP
PDF
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
by
Preferred Networks
PDF
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
by
SSII
PPTX
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
by
Deep Learning JP
PPTX
Noisy Labels と戦う深層学習
by
Plot Hong
PDF
0から理解するニューラルネットアーキテクチャサーチ(NAS)
by
MasanoriSuganuma
PDF
ドメイン適応の原理と応用
by
Yoshitaka Ushiku
PPTX
StyleGAN解説 CVPR2019読み会@DeNA
by
Kento Doi
PDF
IIBMP2016 深層生成モデルによる表現学習
by
Preferred Networks
PDF
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
by
SSII
PDF
Generating Diverse High-Fidelity Images with VQ-VAE-2
by
harmonylab
PDF
Deep Learningによる画像認識革命 ー歴史・最新理論から実践応用までー
by
nlab_utokyo
PPTX
【DL輪読会】An Image is Worth One Word: Personalizing Text-to-Image Generation usi...
by
Deep Learning JP
PDF
[DL輪読会]1次近似系MAMLとその理論的背景
by
Deep Learning JP
PDF
Active Learning の基礎と最近の研究
by
Fumihiko Takahashi
物体検出の歴史(R-CNNからSSD・YOLOまで)
by
HironoriKanazawa
ResNetの仕組み
by
Kota Nagasato
[DL輪読会]When Does Label Smoothing Help?
by
Deep Learning JP
【DL輪読会】Flow Matching for Generative Modeling
by
Deep Learning JP
[DL輪読会]Swin Transformer: Hierarchical Vision Transformer using Shifted Windows
by
Deep Learning JP
[DL輪読会]MetaFormer is Actually What You Need for Vision
by
Deep Learning JP
Optunaを使ったHuman-in-the-loop最適化の紹介 - 2023/04/27 W&B 東京ミートアップ #3
by
Preferred Networks
SSII2021 [OS2-02] 深層学習におけるデータ拡張の原理と最新動向
by
SSII
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
by
Deep Learning JP
Noisy Labels と戦う深層学習
by
Plot Hong
0から理解するニューラルネットアーキテクチャサーチ(NAS)
by
MasanoriSuganuma
ドメイン適応の原理と応用
by
Yoshitaka Ushiku
StyleGAN解説 CVPR2019読み会@DeNA
by
Kento Doi
IIBMP2016 深層生成モデルによる表現学習
by
Preferred Networks
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
by
SSII
Generating Diverse High-Fidelity Images with VQ-VAE-2
by
harmonylab
Deep Learningによる画像認識革命 ー歴史・最新理論から実践応用までー
by
nlab_utokyo
【DL輪読会】An Image is Worth One Word: Personalizing Text-to-Image Generation usi...
by
Deep Learning JP
[DL輪読会]1次近似系MAMLとその理論的背景
by
Deep Learning JP
Active Learning の基礎と最近の研究
by
Fumihiko Takahashi
Similar to 物体検出フレームワークMMDetectionで快適な開発
PDF
LIFULL HOME'S「かざして検索」リリースの裏側
by
Takuro Hanawa
PDF
物体検出コンペティションOpen Imagesに挑む
by
Hiroto Honda
PPTX
Road damge ai
by
Natsutani Minoru
PDF
ICCV 2019 論文紹介 (26 papers)
by
Hideki Okada
PDF
UsingChainerMN
by
Takayoshi Yamashita
PDF
Teslaにおけるコンピュータビジョン技術の調査 (2)
by
Kazuyuki Miyazawa
PDF
Machine learning CI/CD with OSS
by
yusuke shibui
PDF
物体検知(Meta Study Group 発表資料)
by
cvpaper. challenge
PDF
Switch VisionⓇ Lite / Module 操作マニュアル
by
SOINN
PDF
エヌビディアのディープラーニング戦略
by
NVIDIA Japan
PPTX
[CVPR2020読み会@CV勉強会] 3D Packing for Self-Supervised Monocular Depth Estimation
by
Kazuyuki Miyazawa
PDF
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
by
de:code 2017
PPTX
200821 swest
by
Natsutani Minoru
PDF
研究を加速するChainerファミリー
by
Deep Learning Lab(ディープラーニング・ラボ)
PPTX
機械学習応用システムの開発技術(機械学習工学)の現状と今後の展望
by
Nobukazu Yoshioka
PDF
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
by
Masashi Shibata
PPTX
ML Ops NYC 19 & Strata Data Conference 2019 NewYork 注目セッションまとめ
by
Tetsutaro Watanabe
PDF
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
by
Yasutomo Kawanishi
PDF
CV分野での最近の脱○○系3選
by
Kazuyuki Miyazawa
PDF
[Cloud OnAir] Google Cloud Next '18 最新情報 2018年7月26日 放送
by
Google Cloud Platform - Japan
LIFULL HOME'S「かざして検索」リリースの裏側
by
Takuro Hanawa
物体検出コンペティションOpen Imagesに挑む
by
Hiroto Honda
Road damge ai
by
Natsutani Minoru
ICCV 2019 論文紹介 (26 papers)
by
Hideki Okada
UsingChainerMN
by
Takayoshi Yamashita
Teslaにおけるコンピュータビジョン技術の調査 (2)
by
Kazuyuki Miyazawa
Machine learning CI/CD with OSS
by
yusuke shibui
物体検知(Meta Study Group 発表資料)
by
cvpaper. challenge
Switch VisionⓇ Lite / Module 操作マニュアル
by
SOINN
エヌビディアのディープラーニング戦略
by
NVIDIA Japan
[CVPR2020読み会@CV勉強会] 3D Packing for Self-Supervised Monocular Depth Estimation
by
Kazuyuki Miyazawa
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
by
de:code 2017
200821 swest
by
Natsutani Minoru
研究を加速するChainerファミリー
by
Deep Learning Lab(ディープラーニング・ラボ)
機械学習応用システムの開発技術(機械学習工学)の現状と今後の展望
by
Nobukazu Yoshioka
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
by
Masashi Shibata
ML Ops NYC 19 & Strata Data Conference 2019 NewYork 注目セッションまとめ
by
Tetsutaro Watanabe
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
by
Yasutomo Kawanishi
CV分野での最近の脱○○系3選
by
Kazuyuki Miyazawa
[Cloud OnAir] Google Cloud Next '18 最新情報 2018年7月26日 放送
by
Google Cloud Platform - Japan
Recently uploaded
PPTX
DrupalCon Nara 2025の記録 .
by
iPride Co., Ltd.
PDF
安価な ロジック・アナライザを アナライズ(?),Analyze report of some cheap logic analyzers
by
たけおか しょうぞう
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):東京大学情報基盤センター テーマ1/2/3「Society5.0の実現を目指す『計算・データ・学習...
by
PC Cluster Consortium
PDF
visionOS TC「新しいマイホームで過ごすApple Vision Proとの新生活」
by
Sugiyama Yugo
PDF
基礎から学ぶ PostgreSQL の性能監視 (PostgreSQL Conference Japan 2025 発表資料)
by
NTT DATA Technology & Innovation
PDF
第25回FA設備技術勉強会_自宅で勉強するROS・フィジカルAIアイテム.pdf
by
TomohiroKusu
DrupalCon Nara 2025の記録 .
by
iPride Co., Ltd.
安価な ロジック・アナライザを アナライズ(?),Analyze report of some cheap logic analyzers
by
たけおか しょうぞう
PCCC25(設立25年記念PCクラスタシンポジウム):東京大学情報基盤センター テーマ1/2/3「Society5.0の実現を目指す『計算・データ・学習...
by
PC Cluster Consortium
visionOS TC「新しいマイホームで過ごすApple Vision Proとの新生活」
by
Sugiyama Yugo
基礎から学ぶ PostgreSQL の性能監視 (PostgreSQL Conference Japan 2025 発表資料)
by
NTT DATA Technology & Innovation
第25回FA設備技術勉強会_自宅で勉強するROS・フィジカルAIアイテム.pdf
by
TomohiroKusu
物体検出フレームワークMMDetectionで快適な開発
1.
Mobility Technologies Co.,
Ltd. 鈴木 達哉 AIシステム部 AI研究開発第二グループ 物体検出フレームワーク MMDetectionで快適な開発
2.
Mobility Technologies Co.,
Ltd. 鈴木達哉 Suzuki Tatsuya 株式会社Mobility Technologies AIシステム部AI研究開発第2グループ Twitter : @x_ttyszk 自己紹介 2 ■ 2020年DeNAに新卒入社 ■ 現在はMobility Technologiesに出向中
3.
Mobility Technologies Co.,
Ltd. ■ 物体検出フレームワークのMMDetectionを紹介する。 ■ Python & PyTorchで書かれている。 ■ 香港中文大学の研究室が開発しApache 2.0ライセンス。 ■ 2020年5月にv2.0.0がリリースされた。 ■ 研究開発の中でどう使え、どう便利そうか見ていく。 ■ 深いTipsを紹介するほどは使い込んではいない立場から。 ■ これを使わない時にも参考にしたい書き方を探る。 発表の概要 3 GitHubで公開されていて丁寧なドキュメント付きである。 https://github.com/open-mmlab/mmdetection COCO2018優勝モデルの実装が発展して作られている。 http://cocodataset.org/#detection-leaderboard
4.
Mobility Technologies Co.,
Ltd. Agenda 4 MMdetectionの魅力 公開データで動かす カスタムデータで動かす 独自モデルで動かす まとめ
5.
Mobility Technologies Co.,
Ltd. MMDetectionの魅力01 5
6.
Mobility Technologies Co.,
Ltd. ■ 条件を比較しながらある問題に対して最適な物体検出モデルが作りやすい。 ■ 様々な条件のモデル・前処理・データで実験し評価したい時に役に立つ。 ■ 独自のデータセットやモデルも加えやすい。 ■ これを使えば独自にしたい部分だけ作れば良く、ゼロから書く必要がなくなる。 ■ 統一された構成でPython & PyTorchで書かれているので既存手法のコードが読みやすい。 ■ フレームワークを利用しつつも自由にいろいろやれる。 ■ ラップされすぎているということはなく、読んで分かるし、いじりやすい。 ■ あるモデルのPyTorch実装を書き換えるくらいの感覚で使える。 自由度が高いフレームワークになっている 6 コンポーネントごとにクラスを継承して作る構造になっている。 https://github.com/open- mmlab/mmdetection/blob/master/mmdet/models/dense_heads/rpn_head.py 辞書形式のコンフィグが実験に対応する作りになっている。 https://github.com/open- mmlab/mmdetection/tree/master/configs/_base_/modelsfaster_rcnn_r50_fpn. py
7.
Mobility Technologies Co.,
Ltd. ■ 多彩なモデルが簡単に利用可能である。 ■ 類似のDetectron2よりもその数は多い。 ■ バージョンアップごとに増えている。 多くのモデルに公式対応 7 表:MMDetection v2とDetectron2の公式対応モデル・コンポーネント (両フレームワークサイト上の情報より作成) https://github.com/open-mmlab/mmdetection/blob/master/docs/model_zoo.md https://github.com/facebookresearch/detectron2/blob/master/MODEL_ZOO.md
8.
Mobility Technologies Co.,
Ltd. ■ 論文の再現が客観的に示されている。 ■ sotabenchにスコアを載せている。 ■ 正しく動いているか疑わず使うことができる。 再現実装の精度も保証 8 論文との比較は行っていないものも多いが、多数のモデルを載せている。 https://www.sotabench.com/user/PartyParrot/repos/deepparrot/mmdetection
9.
Mobility Technologies Co.,
Ltd. ■ 多数の最新手法がMMDetectionを利用している。 ■ MMDetection環境に慣れていればすぐ試せる。 ■ 特にデータセットを同じ形式で使えて嬉しい。 ■ 本体へのプルリクエストも歓迎されている。 外部プロジェクトも活発 9 CVPR2020採択論文も使っている。 https://github.com/open-mmlab/mmdetection/blob/master/docs/projects.md
10.
Mobility Technologies Co.,
Ltd. ■ 2020年5月にv2.0.0、6月にv2.1.0と開発が盛ん。 ■ v1からは大幅改善され、互換性がなくなっている。 ■ Detectron2と同じ座標系が採用された。 ■ https://github.com/open-mmlab/mmdetection/blob/master/docs/compatibility.md ■ v2はより高速になった。 ■ 最大で学習30%、推論25%高速化した。 ■ 自力でこの速度に持っていくより乗っかりたい。 ■ いつの日か更新が止まる危険はある。 ■ 使えなくなるわけではない。 ■ モデルごとの実装に比べれば古くなりにくい。 開発が続いている 10 Detectron2に匹敵する学習速度が出ている。 https://github.com/open- mmlab/mmdetection/blob/master/docs/model_zoo.md#speed-benchmark
11.
Mobility Technologies Co.,
Ltd. 公開データで動かす02 11
12.
Mobility Technologies Co.,
Ltd. ■ インストールは説明通りにコマンドを打つだけ。 ■ 事前準備としてconda, git, pipは必要になる。 ■ Dockerfileもある。 ■ CUDAのバージョンまわりで詰まる可能性はある。 ■ condaの仮想環境上なので使いやすい。 ■ 外部プロジェクトはバージョンに注意する。 ■ プロジェクトをcloneしたまま使うのが手軽である。 ■ 新しいバージョンで使うことも難しくはない。 環境構築は簡単 12 ここからコピペするだけで用意できる。(もちろん理解してから実行) https://github.com/open-mmlab/mmdetection/blob/master/docs/install.md
13.
Mobility Technologies Co.,
Ltd. ■ まず試すならばCOCOデータセットがおすすめ。 ■ COCO用のコンフィグファイルや学習済みファイルが用意されているため。 ■ 物体検出絡みの研究をする場合にベンチマークが揃えやすいのは嬉しい。 ■ 以下3つを持っていなければダウンロードする。 ■ 2017 Train images [118K/18GB] / 2017 Val images [5K/1GB] / 2017 Train/Val annotations [241MB] ■ http://cocodataset.org/#download ■ 推奨配置の説明がGetting Startedにある。コンフィグのパスを書き換えれば任意の配置でも使える。 COCOを用意すれば試しやすい 13 詳しくはGetting Startedを参考にすると良い。これを噛み砕いて説明していく。 https://github.com/open-mmlab/mmdetection/blob/master/docs/getting_started.md COCOはいろいろあるがここでは2017年の物体検出データ使う。 http://cocodataset.org/#detection-2017
14.
Mobility Technologies Co.,
Ltd. ■ COCOだけ動かせれば良いということはまずない。 ■ 最新手法の実装は論文に使われたデータ以外が使いにくいことが多々ある。 ■ MMDetectionは対応したコンフィグとクラスを作るだけで任意のデータで使える。 カスタムデータの使いやすさが大事 14 カスタムデータのチュートリアルも用意されている。 https://github.com/open- mmlab/mmdetection/blob/master/docs/tutorials/new_dataset. md
15.
Mobility Technologies Co.,
Ltd. ■ Model Zooページからモデルごとのページへ行く。Faster R-CNNを選んだ例で説明していく。 ■ https://github.com/open-mmlab/mmdetection/blob/master/docs/model_zoo.md ■ 実験単位でコンフィグファイルがあるので選ぶ。 ■ ResNet50ならfaster_rcnn_r50_fpn_1x_coco.pyを使う。 ■ コンフィグの詳細は後で説明する。 ■ READMEから学習済みの重みをダウンロードする。 Model Zooから使いたい手法を選ぶ 15 実験にひとつずつに対応したコンフィグファイルになっている。 https://github.com/open- mmlab/mmdetection/tree/master/configs/faster_rcnn
16.
Mobility Technologies Co.,
Ltd. ■ CustomDatasetクラスはjson形式のアノテーションを想定してる。 ■ 手元のアノテーションをこの形式に変換すればメソッドがそのまま使える。 ■ メソッドを上書きして自由に拡張できる。PyTorchのデータセットのイメージ。 ■ txtファイル用のコードがチュートリアルに載っている。 ■ 手軽に試すにはこれが最もやりやすい方法かと思われる。 データ形式を揃えれば最低限のコーディングで済む 16 この形式のjsonを作れば簡単に動かせる。 https://github.com/open- mmlab/mmdetection/blob/master/mmdet/datasets/custom.py チュートリアルにある形式のtxtを作っても良い。 https://github.com/open- mmlab/mmdetection/blob/master/docs/tutorials/new_dataset. md#an-example-of-customized-dataset
17.
Mobility Technologies Co.,
Ltd. ■ 以下のコマンドでテストデータに対する推論と評価ができる。 python tools/test.py ¥ configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py ¥ checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth ¥ --show-dir faster_rcnn_r50_fpn_1x_coco_results ¥ --out faster_rcnn_r50_fpn_1x_coco_results.pkl ¥ --eval bbox tools/test.py : これが推論・評価用のスクリプト 引数1 : コンフィグファイルを指定する 引数2 : 重みのパスを指定する 〜以下が主なオプション〜 --show-dir : 指定したディレクトリに画像を保存する。 --out : 指定した名前のpklファイルに推論結果を保存する。 --eval : 指定したモードで評価を行う。COCOの物体検出ならばbbox。 *evalで何が指定できるかは対応するデータセットクラスを見る。 ■ 既存モデルをCOCOで評価したいことは少ないかもしれない。 ■ カスタムデータで実験する際はここら辺を参考にする。 推論と評価はこちら 17 こういった出力になる。見やすくできている。
18.
Mobility Technologies Co.,
Ltd. ■ plt.show()で画像が出せる環境ならばデモスクリプトも使える。 ■ 以下のコマンドで画像一枚を推論するデモができる。 python demo/image_demo.py ¥ demo/demo.jpg ¥ configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py ¥ checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth ¥ --device cpu demo/image_demo.py : これがデモ用スクリプト 引数1 : 推論したい画像。ここでは用意されたベンチの写真 引数2 : コンフィグファイルを指定する 引数3 : 重みのパスを指定する --device : 推論に使うデバイスを指定する。デフォルトはcuda:0 ■ ノートブックやウェブカメラ用コードも用意されている。 デモ用スクリプトも用意がある 18 このような推論結果が得られる。 https://github.com/open-mmlab/mmdetection/blob/master/demo/inference_demo.ipynb
19.
Mobility Technologies Co.,
Ltd. ■ 以下のコマンドで学習ができる。 【シングルGPU】 python tools/train.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py 【マルチGPU】*GPUの数を2つ目の引数で指定する ./tools/dist_train.sh configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py 8 ■ 学習の設定はコンフィグファイルに書かれている。 ■ 以下のファイルがコンフィグで指定したディレクトリに出力される。 ■ (タイムスタンプ).log : 実行環境とコンフィグの記録 ■ (タイムスタンプ).log.json : 学習過程のロスや実行時間、学習率の記録 ■ epoch_xx.pth : 指定間隔ごとの重み ■ コンフィグファイル : コンフィグの複製 学習ならばこう 19 損失など後々見たい情報はjsonで記録される。学習曲線をプロットするスクリプトも豪華ではないが用意されている。
20.
Mobility Technologies Co.,
Ltd. ■ コンフィグは決められた名前の辞書を書いていく。 ■ model / train_cfg / data / optimizerなど ■ v2から要素ごとにファイルを変えて階層化可能になった。 ■ 共通化できる部分は分けることで管理しやすくなる。 ■ 公式では図のような分け方だが、好きに作って良い。 ■ 例えばデータ拡張の指定を分けるなど。 コンフィグは階層化できる 20 データセットのコンフィグ https://github.com/open- mmlab/mmdetection/blob/master/configs/_base_/datasets/coc o_detection.py モデルのコンフィグ https://github.com/open- mmlab/mmdetection/tree/master/configs/_base_/m odelsfaster_rcnn_r50_fpn.py スケジューラのコンフィグ https://github.com/open- mmlab/mmdetection/blob/master/configs/_base_/datasets/coc o_detection.py 実験のコンフィグ。これを指定して実行する https://github.com/open- mmlab/mmdetection/blob/master/configs/faster_rcnn/faster_rc nn_r50_fpn_1x_coco.py default_runtime.py
21.
Mobility Technologies Co.,
Ltd. ■ コンフィグファイルを用意し、実行するとそこで指定したパスの学習ログが作られる。 ■ コードをgit管理しておきデータセットに不可逆な変更がなければ後々の再現が可能になる。 ■ 制御できる部分を理解しやすい。 ■ ハードコーディングしたりargparse使ったりよりも情報がまとまる。 ■ ablation studyしやすい。 ■ 実験の一覧を見やすく管理するような高級な機能はない。 ■ Pythonの辞書形式なので自動化スクリプトは作りやすい。 ■ フレームワークを使いつつも自分なりにやりたいようにやれるのは良さでもある。 コンフィグファイルで条件を管理できる 21 --optimizer SGD --lr 0.02 --momentum 0.9 --weight-decay 0.0001 --policy step --warmup linear ・・・ コマンドに連なるのは厳しい。長いからとデフォルト設定したり していくと条件が分かりづらくなっていく。 コンフィグファイルは見やすく管理しやすい。 条件増やした時の拡張も行いやすい。 MMDetectionならば
22.
Mobility Technologies Co.,
Ltd. カスタムデータで動かす03 22
23.
Mobility Technologies Co.,
Ltd. ■ COCOを参考に、まずはコンフィグを書くと分かりやすい。 ■ https://github.com/open-mmlab/mmdetection/blob/master/configs/_base_/datasets/coco_detection.py ■ 右に示した箇所の変更が必須となる。 ■ ここで決めた名前のクラスを作る。 ■ アノテーションの形式はそこ次第になる。 コンフィグを用意する 23 ■ 任意のクラス名 ■ ルートのパス (train/val/testの) ■ アノテーションのパス ■ 画像のprefix
24.
Mobility Technologies Co.,
Ltd. ■ CocoDatasetクラスを参考にする。 ■ https://github.com/open-mmlab/mmdetection/blob/master/mmdet/datasets/coco.py ■ CustomDatasetクラスを継承している。 ■ これはPyTorchのデータセットクラスを継承している。 データセットクラスを用意する 24 このデコレータで登録された名前のコンポーネントがコンフィグ から呼び出せる仕組みである。 CustomDatasetクラスを継承して作る。 ・・・必要に応じてCustomDatasetのメソッドを上書 きする。CustomDatasetが想定するjson形式に 合わせればほとんど書かなくて済む。 ラベル名をタプルで与える。
25.
Mobility Technologies Co.,
Ltd. ■ tool/test.pyの--evalオプションを使うとデータセットクラスのevaluateメソッドが呼ばれる。 ■ 基本的な評価ならばそのまま使えば良いし、必要に応じてここに書き加えることもできる。 ■ --evalの後に渡す引数でモードが切り替えられるので、様々な評価の実装も可能である。 評価スクリプトもデータクラスに埋め込める 25 COCOではbbox, segm, proposal, proposal_fastが選べる。 https://github.com/open- mmlab/mmdetection/blob/8951a8a70f36d442d8f5a9ecfe6361bbd6dc2adb/mm det/datasets/coco.py#L319 tool/test.pyの中でdataset.evaluate()を呼んでいる。 全体的にこのように処理が追いやすい。 https://github.com/open- mmlab/mmdetection/blob/8951a8a70f36d442d8f5a9ecfe6361bbd6dc2adb/tool s/test.py#L144
26.
Mobility Technologies Co.,
Ltd. ■ モデルごとに入出力周りを作る手間がいらなくなる。 入出力が揃えられる 26 MMDetectionならば データ データ セット クラス モデルA モデルB モデルC 出力・評価 出力・評価 出力・評価 出力(形B) 評価 いろいろなモデルを使おうとするとこんな風に混沌としがち。 もちろん、統一しようと書き換えたりはするが・・・。 モデルA モデルB モデルC 入力(形A) 入力(形C) データ 出力(形A) 出力(形B) 評価スクリプト 評価 評価 入出力をモデルごとに考える必要はなくなる。 あるモデルだけバグで精度ズレてたなんてこともなくなる。
27.
Mobility Technologies Co.,
Ltd. 独自モデルで動かす04 27
28.
Mobility Technologies Co.,
Ltd. ■ SOTAモデルなどをベースに独自要素を入れていきたい。 ■ 既存モデルのOSS実装は独自要素を増やすことは想定されておらず、ハードルは高い。 ■ MMDetectionはコンフィグとクラスを書けば独自の処理を入れられる。既存の手法を参考にできる。 独自モデルが作りやすい 28 独自モデルのチュートリアルも用意されている。 https://github.com/open- mmlab/mmdetection/blob/master/docs/tutorials/new_modules. md
29.
Mobility Technologies Co.,
Ltd. ■ modelのtypeで指定されたクラスが存在している。 ■ このクラスはデコレータによってDETECTORSとして登録される。 ■ FasterRCNNはTwoStageDetectorを継承している。 ■ 構成要素は引数で渡す。 モデル作りもコンフィグから辿ると分かりやすい 29 https://github.com/open- mmlab/mmdetection/tree/master/configs/_base_/m odelsfaster_rcnn_r50_fpn.py https://github.com/open- mmlab/mmdetection/blob/master/mmdet/models/detectors/fas ter_rcnn.py
30.
Mobility Technologies Co.,
Ltd. ■ FasterRCNNの構成要素としてRPNHeadクラスがある。 ■ HEADSとして登録されている。 ■ DETECTORSの下にHEADS(など)がある階層的な作り。 ■ RPNHeadはAnchorHeadを継承している。 ■ AnchorHeadはRetinaNetやSSDなど様々な手法で継承して使われる。 ■ 各クラスも継承によって階層的になっている。 階層的に作られている 30 https://github.com/open- mmlab/mmdetection/tree/master/configs/_base_/m odelsfaster_rcnn_r50_fpn.py https://github.com/open- mmlab/mmdetection/blob/master/mmdet/models/dense_head s/rpn_head.py
31.
Mobility Technologies Co.,
Ltd. model (DETECTOR) : FasterRCNN <- TwoStageDetectorを継承 ■ コンフィグファイルからコンポーネント構成が分かる。例えばFasterRCNNはこう。 手法の全体構造が見えやすい 31 neck (NECK) : FPN backbone (BACKBONE) : ResNet norm_cfg : BN roi_head (HEAD) : StandardRoIHead <- (略) bbox_roi_extractor : SingleRoIExtractor roi_layer : RoIAlign bbox_head : Shared2FCBBoxHead loss_cls : CrossEntropyLoss bbox_coder : DeltaXYWHBBoxCoder loss_bbox : L1Loss rpn_head (HEAD) : RPNHead <- AnchorHeadを継承 anchor_generator : AnchorGenerator bbox_coder : DeltaXYWHBBoxCoder loss_cls : CrossEntropyLoss loss_bbox : L1Loss
32.
Mobility Technologies Co.,
Ltd. ■ 新しくしたい部分に対応するクラスを参考にして、独自のクラスを書く。 ■ それを呼ぶコンフィグを書けば実験できる。 ■ 階層的な作りなので、影響しない部分はそのまま使える。 ■ 例えばAnchorHeadを継承した「HEAD」を新しく作っただけならば、「DETECTOR」は既存のものを使える。 ■ 「BACKBONE」の変更(例えばResNetからResNeXt)が簡単に行える実装は一般的だが、他のコンポーネント もそれに近い感覚で行えるようになる。 ■ 切り離して考えられるので独自の実装が行いやすくなる。 ■ 変更してない部分の処理が同じになるので、結果の比較が行いやすい。 ■ コンフィグで指定するだけで変えられるし、それが記録として残るので分かりやすい。 既存のクラスを参考に新しいクラスを作る 32
33.
Mobility Technologies Co.,
Ltd. まとめ05 33
34.
Mobility Technologies Co.,
Ltd. ■ 使い勝手の良いコンフィグとクラス構造が用意されている。 ■ Python & PyTorchの実装に慣れていれば、よく見る書き方の延長上にあるので使う負担は少ない。 ■ Pythonの基本的なクラスの機能を使うことで、汎用的な実装が行える。 ■ MMDetectionは高度な技を使っているわけではない。これに近いコーディングは誰でもできる。 ■ 面倒なコーディングの時間を減らせる。 ■ モデルごとの実装の差を理解し埋めるのに時間を費やすのはやめよう。 ■ 面倒だから試さないなんてこともやめよう。 ■ ユーザーが増えてコミュニティが活発になるほど使い勝手が良くなる。使っていこう。 フレームワークで研究開発が捗る 34
35.
文章·画像等の内容の無断転載及び複製等の行為はご遠慮ください。 Mobility Technologies Co.,
Ltd.35