【mmcvのインストールと使い方】

画像


個人のウェブサイト

I.はじめに

MMLab は、Jiajie Chen 教授が率いる香港中文大学深セン研究所のコンピューター ビジョンとディープ ラーニングの研究チームです。2017 年に設立されたこのチームは、画像認識、物体検出、セマンティック セグメンテーション、顔認識などの分野の研究に専念しています。MMLab は、Detectron2、mmdetection、PyTorch の mmcv など、多くのオープンソースの深層学習ツールキットとアルゴリズムを開発してきました。これらのツールキットとアルゴリズムは、学術界や産業界で広く使用されています。MMLab の研究成果はコンピュータ ビジョンの分野で高い評価を得ており、チーム メンバーは頻繁に論文を発表し、主要な国際コンピュータ ビジョン会議で報告を行っています。

2、mmcv インストール

MMCV は、基本的にすべての OpenMMLab プロジェクトをサポートするコンピューター ビジョン用の基本ライブラリです。

https://github.com/open-mmlab

画像

1. 設置スキーム a

https://mmcv.readthedocs.io/zh_CN/latest/get_started/installation.html

画像

独自の計画に従ってインストールするバージョンを選択してください

2. 設置スキーム b

https://download.openmmlab.com/mmcv/dist/cu113/torch1.10.0/index.html

独自の cuda バージョン、torch バージョン (1.x.0 および 1.x.1 互換) に応じて、上記の Web サイトを変更して開き、インストールされている mmcv バージョン、Python バージョン、Windows システムを選択し、コンパイル済みの whl ファイルをダウンロードします。 、pip installインストール

画像

2.0 より前のバージョンの場合は、以下も必要です

pip install opencv-python

3. mmclassification の使用

mmcv1.4.2

コード: リンク: https://pan.baidu.com/s/1A0U7SQStbqNqxDR6lgSYbw抽出コード: 7yn3

mmclassification は、MMLab によってオープンソース化されている PyTorch ベースの画像分類ツールキットです。以下は、mmclassification ファイル ディレクトリの基本的な説明です。

1. カタログの説明

画像

  • configs には、さまざまなバックボーン ネットワーク、分類子、データ拡張、その他のパラメーターの設定を含むモデル構成ファイルが含まれています。使用できるモデル ファイルが含まれています。通常、モデルとして構成を選択します。resnet で構成を選択すると、次のように: 次の 4 つのファイルが読み込まれ、新しい構成ファイルが生成されます。

画像

これら 4 つのファイルには、モデルのロード、データ処理、データのロード、操作の出力、ログの保存など、つまりプロセス全体が含まれており、データは設定ファイルに従ってプロセス全体を通過します。

  • mmcls データの読み込み、モデル定義、トレーニング、テストなどの機能の実装を含むメイン コード ディレクトリ。通常、config はここからモデル ファイルとデータ処理ファイルを呼び出して処理します。
  • ツールには、トレーニング スクリプトとテスト スクリプト、およびモデル変換スクリプトが含まれています。および視覚化ツール
  • testing/: テスト ケース ディレクトリ。いくつかの単純なテスト ケースが含まれます。
  • docs/: mmclassification の使用法ドキュメントと API ドキュメントを含むドキュメント ディレクトリ。
  • requirements/: mmclassification に必要な依存ライブラリが含まれる依存ファイル ディレクトリ。
  • ライセンス: オープンソース契約ファイル。
  • README.md: プロジェクト説明ファイル。

mmclassification を使用する場合、configs/ ディレクトリ内の構成ファイルを変更することでモデルのパラメーター設定を変更し、トレーニングには tools/train.py スクリプトを使用し、テストには tools/test.py スクリプトを使用できます。

2. データセット

102カテゴリの花のデータセットです。ファイル名は、

[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-3IxrmXr4-1684916189951)(null)]

すべての写真をフォルダーに入れ、インデックス ファイル train.txt を生成します。

import numpy as np
import os
import shutil

train_path = './train'
train_out = './train.txt'
val_path = './valid'
val_out = './val.txt'

data_train_out = './train_filelist'
data_val_out = './val_filelist'

def get_filelist(input_path,output_path):
    with open(output_path, 'w') as f:
        for dir_path, dir_names, file_names in os.walk(input_path):
            if dir_path != input_path:
                label = int(dir_path.split('\\')[-1]) -1
            #print(label)
            for filename in file_names:
                f.write(filename +' '+str(label)+"\n")

def move_imgs(input_path,output_path):
    for dir_path, dir_names, file_names in os.walk(input_path):
        for filename in file_names:
            #print(os.path.join(dir_path,filename))
            source_path = os.path.join(dir_path, filename)
            # 复制文件1到文件二
            shutil.copyfile(source_path, os.path.join(output_path,filename))

get_filelist(train_path,train_out)
get_filelist(val_path,val_out)
move_imgs(train_path,data_train_out)
move_imgs(val_path,data_val_out)

左側はピクチャ名、右側はフォルダーをクラス名として使用し、インデックスを通じてここにデータを取得します。

画像

3. 独自のデータに従ってファイルを変更します

デフォルトは 1000 カテゴリですが、それを独自のカテゴリに変更すると、出力はカテゴリをデジタル カテゴリに対応する名前に変換します。

mmcls/datasets/imagenet.py

画像

構成ファイル内のタイプは mmcl 内のクラス名を指しているため、独自のタスクに合わせて変更する必要があります。

执行train.py
../configs/resnet/resnet18_8xb32_in1k.py

tools/work_dirs/resnet18_8xb32_in1k/resnet18_8xb32_in1k.py に一般的な設定ファイルが生成されます。ここで変更する方が良いです。まず、データ パスを独自のものに変更する必要があります。また、出力もあります。とにかく、自分の状況に応じて変更できます。

画像

事前訓練された重みを指定します。

load_from = '../mmcls/data/resnet18_8xb32_in1k_20210831-fbbb1da6.pth'

名前を変更した後、実行する設定ファイルのパスを再指定し、重みファイルを tools/work_dirs に保存します。

4. デモテスト

デモ/image_demo.py

image_03313.jpg ../configs/resnet/today_resnet18_8xb32_in1k.py ../tools/work_dirs/resnet18_8xb32_in1k/epoch_100.pth

画像

5. 試験結果

tools/test.py

../configs/resnet/today_resnet18_8xb32_in1k.py ../tools/work_dirs/resnet18_8xb32_in1k/epoch_100.pth --show
--show-dir ../tools/work_dirs/resnet18_8xb32_in1k/val_result
--metrics accuracy recall

結果は .../tools/work_dirs/resnet18_8xb32_in1k/val_result に保存されます

6. データ拡張視覚化

../../configs/resnet/today_resnet18_8xb32_in1k.py  --output-dir ../work_dirs/resnet18_8xb32_in1k/vis/vis_pipeline
--phase train --number 10 --mode pipeline/transformed

…/work_dirs/resnet18_8xb32_in1k/vis/vis_pipeline画像

7. ログ分析

ツール/analysis_tools/analyze_logs.py

plot_curve ../work_dirs/resnet18_8xb32_in1k/flower-100epoch.json --keys loss accuracy_top-1
cal_train_time ../work_dirs/resnet18_8xb32_in1k/flower-100epoch.json

画像

おすすめ

転載: blog.csdn.net/weixin_62403633/article/details/130849691