2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WinClipをcuda11.8の環境で動かす

Posted at

githubで公開されているWinClipのコードを実行する際に環境構築やデータのダウンロードが必要だったため,まとめてみました.

環境構築

git clone する

作業したいフォルダでWinClipをgit cloneします.

$ git clone https://github.com/caoyunkang/WinClip.git

PyTorchのインストール

WinClipにはinstall.shが用意されていて,実行するだけで必要なモジュールがインストールされるようになっています.しかし,その中でインストールされるPyTorchのバージョンは1.10.0+cu113で今回の環境(cuda 11.8)には合っていません. この環境のまま実行するとSegmentation faultとエラーが吐かれてしまいます.

そこでPyTorchのみ手動でインストールします.

PyTorchの公式サイトにあるPrevious PyTorch versionshttps://download.pytorch.org/whl/torch_stable.html を確認しましたが,cuda 11.8に対応しているtorch==1.10.0は見つかりませんでした.そこで今回はpyenvでPython3.11.1の環境を作成し,cuda 11.8に対応しているtorch==2.1.1をインストールします.
以下のコマンドから以上の環境を作成します.

$ pyenv install 3.11.1
$ pyenv global 3.11.1 # localでも良い
$ pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu118

install.shの編集と実行

install.shを編集する内容は以下のとおりです.

  • torchとtorchvisionは既にインストールしたのでPyTorchをインストールするコマンドはコメントアウトする
  • pip install logruは間違いであるからpip install loguruに変更する
  • 今回はvisaデータセットも使用するつもりはないのでコメントアウトする

以下が編集後のinstall.shの内容です.

install.sh
# PyTorch
# pip3 install torch==1.10.0+cu113 torchvision==0.11.1+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html

pip install setuptools==59.5.0
pip install --upgrade diffusers[torch]
pip install opencv-python pycocotools matplotlib onnxruntime onnx ipykernel
pip install transformers
pip install addict
pip install yapf
pip install timm
pip install loguru # ここ
pip install tqdm
pip install scikit-image
pip install scikit-learn
pip install pandas
pip install tensorboard
pip install seaborn
pip install open_clip_torch
pip install SciencePlots
pip install timm

# datasets
# cd ..
# python datasets/prepare_visa_public.py

これでinstall.shを実行します.

$ sh install.sh

データセット用意

2種類のデータセットを利用できるみたいですが,今回はmvtecの方を選択しました.こちらのサイトで名前やメアドを登録した後, ダウンロードページに移動します.

ダウンロードページに移動したら "DOWNLOAD THE WHOLE DATASET"の上で右クリックをし, リンクのアドレスをコピーします.
image.png

WinClip/datasetsに移動してデータを保存するフォルダ(mvtec_anomaly_detection)を作成します. 

$ cd datasets
$ mkdir mvtec_anomaly_detection

作成したフォルダ(mvtec_anomaly_detection)に移動して先ほどコピーしたリンクからデータセットをダウンロードします.

$ cd mvtec_anomaly_detection
$ wget コピーしたリンク

ダウンロードが終わるとmvtec_anomaly_detection.tar.xzがダウンロードされています.次に以下のコマンドでファイルを展開していきます.

$ xz -dc mvtec_anomaly_detection.tar.xz| tar xfv -

展開したファイルからは以下のようなフォルダやファイルが確認できました.

$ ls
bottle/ capsule/ grid/ leather/ metal_nut/ pill/ screw/	toothbrush/ wood/ 
cable/ carpet/ hazelnut/ license.txt mvtec_anomaly_detection.tar.xz readme.txt*	tile/ transistor/ zipper/

run_winclip.pyを編集

今回はmvtecデータセットを使用するのでrun_winclip.pyのdatasets変数を以下のようにdatasets = ['mvtec']と変更します.

# datasets = ['mvtec','visa'] 
datasets = ['mvtec'] # ['visa']から['mvtec']に変更

datasets/mvtec.pyを編集

次にdatasets/mvtec.pyのパスを以下のように変更します.

# MVTEC2D_DIR = '../datasets/mvtec_anomaly_detection' を以下に変更 
MVTEC2D_DIR = './datasets/mvtec_anomaly_detection'

run_winclip.pyを実行

これでようやく 実行できます.

$ python ./run_winclip.py

実行が終わるとresult_winclip/mvtec-k-0の中に以下のような画像が出力されます.

以上がWinClipをcuda11.8の環境で動かしてみた結果です.

https://github.com/caoyunkang/WinClip/tree/master
https://www.mvtec.com/company/research/datasets/mvtec-ad/

2
3
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
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?