記事ディレクトリ
個人のウェブサイト
I.はじめに
MMLab は、Jiajie Chen 教授が率いる香港中文大学深セン研究所のコンピューター ビジョンとディープ ラーニングの研究チームです。2017 年に設立されたこのチームは、画像認識、物体検出、セマンティック セグメンテーション、顔認識などの分野の研究に専念しています。MMLab は、Detectron2、mmdetection、PyTorch の mmcv など、多くのオープンソースの深層学習ツールキットとアルゴリズムを開発してきました。これらのツールキットとアルゴリズムは、学術界や産業界で広く使用されています。MMLab の研究成果はコンピュータ ビジョンの分野で高い評価を得ており、チーム メンバーは頻繁に論文を発表し、主要な国際コンピュータ ビジョン会議で報告を行っています。
2、mmcv インストール
MMCV は、基本的にすべての OpenMMLab プロジェクトをサポートするコンピューター ビジョン用の基本ライブラリです。
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カテゴリの花のデータセットです。ファイル名は、
すべての写真をフォルダーに入れ、インデックス ファイル 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