Skip to content

ryouchinsa/cellpose-cpp

Repository files navigation

Cellpose CPP Wrapper for macOS and Ubuntu GPU

This code is to run a Cellpose ONNX model in c++ code and implemented on the macOS app RectLabel.

cellpose.mp4

Install CUDA, cuDNN, PyTorch, and ONNX Runtime.

Install Cellpose3 and Cellpose4.

git clone https://github.com/MouseLand/cellpose.git cellpose3 --branch v3.1.1
git clone https://github.com/MouseLand/cellpose.git cellpose4
git clone https://github.com/ryouchinsa/cellpose-cpp.git
cp cellpose-cpp/cyto3_onnx.py cellpose3
cp cellpose-cpp/resnet_torch.py cellpose3/cellpose
cp cellpose-cpp/cpsam_onnx.py cellpose4
cd cellpose4
python -m pip install 'cellpose[gui]'
cd ..
wget https://huggingface.co/rectlabel/cellpose/resolve/main/demo_images.zip
unzip demo_images.zip

Export each ONNX model and check how the ONNX model works.

cd cellpose3
# macOS
python cyto3_onnx.py --mode export --image ../demo_images/img02.png --device cpu
python cyto3_onnx.py --mode import --image ../demo_images/img00.png --device cpu
# Ubuntu GPU
python cyto3_onnx.py --mode export --image ../demo_images/img02.png --device cuda:0
python cyto3_onnx.py --mode import --image ../demo_images/img00.png --device cuda:0
cd ..
cd cellpose4
# macOS
python cpsam_onnx.py --mode export --image ../demo_images/img02.png --device cpu
python cpsam_onnx.py --mode import --image ../demo_images/img00.png --device cpu
# Ubuntu GPU
python cpsam_onnx.py --mode export --image ../demo_images/img02.png --device cuda:0
python cpsam_onnx.py --mode import --image ../demo_images/img00.png --device cuda:0
cd ..
cd cellpose-cpp

Build and run.

# macOS
cmake -S . -B build -DONNXRUNTIME_ROOT_DIR=/Users/ryo/Downloads/onnxruntime-osx-universal2-1.20.0
# Ubuntu GPU
cmake -S . -B build -DONNXRUNTIME_ROOT_DIR=/root/onnxruntime-linux-x64-gpu-1.20.0

cmake --build build

# macOS
./build/cyto3_cpp_test -encoder="../cellpose3/cyto3.onnx" -image="../demo_images/img00.png" -device="cpu"
./build/cyto3_cpp_test -encoder="../cellpose4/cpsam.onnx" -image="../demo_images/img00.png" -device="cpu"
# Ubuntu GPU
./build/cyto3_cpp_test -encoder="../cellpose3/cyto3.onnx" -image="../demo_images/img00.png" -device="cuda:0"
./build/cyto3_cpp_test -encoder="../cellpose4/cpsam.onnx" -image="../demo_images/img00.png" -device="cuda:0"

Running time for demo_images/img00.png.

Model Size Time on Apple M1 Time on g4dn.xlarge
cyto3.onnx
(download)
27.5MB 10s 3s
cpsam.onnx
(download)
1.22GB 40s 5s

About

Cellpose CPP Wrapper for macOS and Ubuntu GPU

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published