Download its weights to the cache directory:
mkdir cache
cd cache
curl -L -C - -O https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha2/groundingdino_swinb_cogcoor.pth
cd ..
Note: You should have a CUDA environment, please make sure you have properly installed CUDA dependencies first. You can use the following command to detect it on Linux.
nvcc -V
Or search for its environment variable: CUDA_HOME or CUDA_PATH. On Windows it should be something like "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8" and on Linux like "/usr/local/cuda".
If you don't get the specific version, you should download cudatoolkit and cuDNN first (version 11.8 is recommended).
If you don't download CUDA correctly, after installing GroundingDino, the code will produce:
NameError: name '_C' is not defined
If this happened, please re-setup CUDA and pytorch, reclone the git and perform all installation steps again.
On Windows install from https://developer.nvidia.com/cuda-11-8-0-download-archive (Linux packages also available).
Make sure pytorch is installed using the right CUDA dependencies.
conda install pytorch torchvision cudatoolkit=11.8 -c nvidia -c pytorch
If this doesn't work, or you prefer the pip way, you can try something like:
pip3 install --upgrade torch==2.1.1+cu118 -f https://download.pytorch.org/whl/torch_stable.html
pip3 install torchvision==0.16.1+cu118 -f https://download.pytorch.org/whl/torch_stable.html
Now, you should install the pre-compiled GroundingDino with the project dependencies. You can use the package in our repo and the following commands:
cd deps
pip install groundingdino-0.1.0-cp310-cp310-win_amd64.whl
cd ..
Once it is installed, we need to pre-download some required model files and set some environment variables.
# Define the necessary environment variables, this can be done in the .env file in the Cradle directory
HUGGINGFACE_HUB_CACHE = "./cache/hf" # This can be the full path too, if the relative one doesn't work
# Pre-download huggingface files needed by GroundingDino
# This step may require a VPN connection
# Windows user needs to run it in git bash
mkdir $HUGGINGFACE_HUB_CACHE
huggingface-cli download bert-base-uncased config.json tokenizer.json vocab.txt tokenizer_config.json model.safetensors --cache-dir $HUGGINGFACE_HUB_CACHE
# Define the last necessary environment variable, this can be done in the .env file in the Cradle directory
# This step will avoid needing a VPN to run
TRANSFORMERS_OFFLINE = "TRUE"
If for some reason there is some incompatibility in installing or running GroundingDino, it's recommended to recreate your environment.
Only if really necessary, you can try to clone and compile/install GroundingDino yourself.
# Clone
cd ..
git clone https://github.com/IDEA-Research/GroundingDINO.git
cd GroundingDINO
# Build and install it
pip3 install -r requirements.txt
pip3 install .
cd ../Cradle
It should install without errors and now it will be available for any project using the same conda environment (cradle-dev).
To build the C++ code on Windows, you may need to install build tools.
Download them from https://visualstudio.microsoft.com/visual-cpp-build-tools/ Make sure to select "Desktop Environment with C++" and include the 1st 3 optional packages:
- MSVC v141 or higher
- Windows SDK for your OS version
- CMake tools