LoginSignup
0
1

pytorch-image-models(画像分類)

Last updated at Posted at 2024-06-07

画像分類をします。
cat、dogの画像を用意して、分類をしました。
ex. dog5.jpgの分類結果 pngファイルと csvファイル
img7_1.png img7.png

img7_2.png
画像のどの部分をみてdogと判断したのかがわかります

ここではpytorch-image-modelsの使い方をご紹介しています。
(ubuntu22.04 cuda12.4 cudNN12×(9.1.1)の環境で行いました)

インストール方法

pytorch-image-modelsフォルダをgithubよりダウンロードする

git clone https://github.com/NIBB-Neurophysiology-Lab/pytorch-image-models

動かすのに必要なライブラリをインストールしておく

pip3 install huggingface_hub
pip3 install pandas
pip3 install torchcam
pip3 install torchvision

ダウンロードしたpytorch-image-modelsフォルダにディレクトリを変える

cd pytorch-image-models

動かし方

事前準備

フォルダ作成とデータを用意します

mkdir data_cd

作成したdata_cdフォルダ内にテスト用、学習用、評価用の画像を入れておきます。
data_cdフォルダの中の構成は以下を参考にしてください
ex. catとdogの画像分類
img1.png

class_map_cd.txt を作成し、train.pyと同じディレクトリに保存してください。
ex. catとdogフォルダを作成した場合のclass_map_cd.txt
img2.png

学習をします

python3 train.py data_cd/train --pretrained --model tf_efficientnetv2_s_in21ft1k -b 16 --epochs 30 --num-classes 2 --class-map class_map_cd.txt

学習をした結果はoutput/train/に保存されます。

保存された学習結果をもとにテストをします。
output/train/に保存されたファイル名をコピーします(日付等の数字は異なります)
Screenshot from 2024-05-24 10-51-50.png
次のpythonコードの 20240522-155044-tf_efficientnetv2_s_in21ft1k-300の部分をコピーしたファイル名に置き換えて実行してください。

python3 inference.py data_cd/test --model tf_efficientnetv2_s_in21ft1k --checkpoint output/train/20240522-155044-tf_efficientnetv2_s_in21ft1k-300/model_best.pth.tar --topk 0 -b 16 --num-classes 2 --class-map 

分類結果を保存するため、フォルダを作成します(cat,dogの場合)

mkdir torchcam
mkdir torchcam/cat torchcam/dog

実行(先ほどと同様に学習したファイル名に置き換えてください)

python3 torch_cam.py data_cd/test --model tf_efficientnetv2_s_in21ft1k --checkpoint output/train/20240522-155044-tf_efficientnetv2_s_in21ft1k-300/model_best.pth.tar --num-classes 2 --layer-names conv_head blocks

torchcamフォルダに結果(pngファイル)が保存されます。
CSVファイルはpytorch-image-modelsフォルダ内のtf_efficientnetv2_s_in21ft1k-300.csvです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1