触ってみました。(with @Selene-Misso )
#前提
Nvidia-Dockerが必要です。
#手順
上のリンクのページにある通りに実行していくだけです。
最初にテストデータやモデル、予測結果などを保存する場所を作ります。
mkdir -p input output
訓練済みのモデルを利用するために使うサーバーのために、dockerのネットワーク(例えばclaranetという名称にします)を作ります。
docker network create claranet
訓練済みのモデルをダウンロードします。
mkdir -p models
docker run -it --rm -u $UID:$UID -v $(pwd):/data --entrypoint "" nvcr.io/nvidia/clara-ai:0.1.2 bash -c 'rsync -a --info=progress2 /models /data'
テストに使う画像をダウンロードします。
# Download 'input/test' folder from the internet.
mkdir -p input/test
wget -q https://www.dropbox.com/s/5fk0m9v12if5da9/dense_vnet_abdominal_ct_model_zoo_data.tar.gz?dl=1 -O - | tar xvz -C input/test
rm input/test/100_Label.nii # Remove unnecessary label image.
簡便にテストするために、TRITISというサーバコンテナをDocker上で起動します。
nvidia-docker run -it --rm -d \
--shm-size=1g \
--ulimit memlock=-1 \
--ulimit stack=67108864 \
--name trtis \
--network claranet \
-p 8000:8000 \
-v `pwd`/models/v_net:/models/v_net \
nvcr.io/nvidia/tensorrtserver:18.11-py3 \
trtserver --model-store=/models
もう一つclara-aiサーバーを立てます。(上記のサーバとどちらがアプリケーションサーバ?その辺り分かっていません。ごめんなさい。)
nvidia-docker run -it --rm -d \
--name ai \
--network claranet \
-p 5002:5002 \
-e CIM_APP_FOLDER_NAME=custom_application_vnet \
-e CIM_APP_SKIP_INSTALL=true \
-v $(pwd)/input:/ai/in \
-v $(pwd)/output:/ai/out \
nvcr.io/nvidia/clara-ai:0.1.2 \
serve --input_folder=/ --output_folder=/ \
--trtis_url=trtis:8000 --port=5002
処理実行
# .nii file is interpreted as image with LPS axis code so transpose it to ARS to match with vnet model
curl -H "Content-Type: application/json" \
-d '{"name":"test","workflow":5,"pre_axcodes":"ARS"}' \
http://localhost:5002/ai
実行したら、特にエラーがなければ、「output/test」フォルダに結果が保存されます。
今回の例では、「100_CT.seg.raw」が結果です。
raw画像データなので、(144,144)のマトリクスで、144スライス画像になっています。(isoですね)
Fiji(imagej)で開いてみます。
以上です。