NVIDIA, CT Organ Segmentation AI 사용

만져 보았습니다. (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)에서 열어 보겠습니다.









이상입니다.

좋은 웹페이지 즐겨찾기