どんな記事?
最近セグメンテーションを使い始めた私がお世話になったライブラリやリポジトリをまとめたメモ帳です.
ライブラリ
MMDetection & MMSegmentation
-
MMDetection
: Object Detectionに加えて,Instance Segmentationなどの手法をまとめたライブラリ.チュートリアルと実装アルゴリズムが充実している.https://mmdetection.readthedocs.io/en/latest/ -
MMSegmentation
: Semantic Segmentation手法をまとめたライブラリ.実装アルゴリズムは充実しているが,MMDetectionに比べてチュートリアルが少なかった気がする.使い方は大体同じなので分からないことがあったらMMDetectionの方を参照してみてもいいかもしれない.https://mmsegmentation.readthedocs.io/en/latest/ - この二つはOpenMMLabが開発・管理しており,これまた同じ開発元の
MMCV
(https://mmcv.readthedocs.io/en/latest )というコンピュータビジョンライブラリを使用して作られている.ソースコードをたどると大体MMCVにたどり着く. - これらはPyTorchを用いて開発されており,Detection,Segmentation以外にも様々な分野のライブラリが提供されており,いろいろできる.
image-to-coco-json-converter
- https://github.com/chrise96/image-to-coco-json-converter
- こいつはSemantic Segmentation用のマスク画像をInstance Segmentation用の COCO フォーマットに変換してくれる.
- 前述の MMDetection は COCO フォーマットに対応しており,この形式にするだけでデータセットが完成し,訓練とテストがすぐにできるようになる.
- 使い方は
create-custom-coco-dataset.ipynb
を自分好みに書きかえるだけ.- ソース内category_colorsはパッと見カテゴリから色に対応させる辞書かなと思ったけど,実際はマスク画像内の色からカテゴリに対応させている.マスク画像がグレースケールで,ラベル 1 が 窓 とかだった場合は,"(1, 1, 1)": "window" とか書けばよし.
- 時間がかかる場合があるので,データがいっぱいあったり画像が大きいときは
PyPy
を使うとかなり時間を節約できる.-
conda
を使って PyPy の環境を構築することができるのを最近知りました.わざわざビルドする必要がなく便利ですし,パッケージインストール時にアップグレードされるパッケージがあれば教えてくれるのでありがたいですね.
-
サイト
CVMLエキスパートガイド
- https://cvml-expertguide.net/
- 日本語の情報の方がやっぱり速く読めるし理解が簡単.
- 日本語情報を漁ってから論文を読むのがやりやすいと感じる.
Papers with Code
- https://paperswithcode.com/
- ベンチマークごとのランキングがまとめられており,GitHubリポジトリのリンクもしっかり揃ってる.
- 各ベンチマークごとにトレンドとなっている手法がわかる.
おわりに
なんだこれ