KNN(k-nearest neighbors)ベースの画像異常検知のgithubであるind_knn_adのサンプルコード。自前のDatasetで実行できるようにした。
# Docker image作成
docker build -t ind_knn_ad -f ./Dockerfile .
# Dockerコンテナ起動してbashで入る
docker run -p 8888:8888 -p 7860:7860 \
-it \
-w /work \
-v $PWD/work:/work \
--rm \
--gpus all \
--shm-size 32g \
ind_knn_ad \
/bin/bash
# ind_knn_adのコードダウンロード
git clone https://github.com/rvorias/ind_knn_ad.git
./work/run_mydataset.py がサンプルコード。使用例は./work/run_test.sh を参照。
./work/run_timm_cnns.sh は色んなbackboneで実行する例。
./work/gradio_app.py は推論して異常部可視化するgradioのアプリ。
run_mydataset.py とgit cloneした ind_knn_ad を別ディレクトリにコピーして変更すれば任意のデータで学習推論できる。
cp ./work/run_mydataset.py ./xxx
cp -r ./work/ind_knn_ad ./xxx
cp ./work/run_py_folds.ipynb ./xxx
以下のコマンドでJupyter labを起動可能。
# Dockerコンテナ起動してbashで入る
docker run -p 8888:8888 \
-it \
-w /work \
-v $PWD/work:/work \
--rm \
--gpus all \
--shm-size 32g \
ind_knn_ad \
/bin/bash
# Jupyter lab起動
jupyter lab --ip=0.0.0.0 --allow-root --no-browser --NotebookApp.token='' --port=8888
# ind_knn_adを試したnotebook: work/run_import.ipynb, work/run_py_folds.ipynb が実行できる