How to Run YoloV5 Real-Time Object Detection on Pytorch with Docker on NVIDIA® Jetson™ Modules

How to Run YoloV5 Real-Time Object Detection on Pytorch with Docker on NVIDIA® Jetson™ Modules

Jetson AGX Xavier | Jetson Nano | Jetson Xavier NX

23 March 2021

 In this post, we will explain how to run YOLO real-time object detection with Docker on NVIDIA Jetson Xavier NX. The process is the same with NVIDIA Jetson Nano and AGX Xavier. Firstly, we have to pull a Docker image which is based on NVIDIA L4T ML. 

How to pull Docker Image from Nvidia NGC

First, pull the relevant container as shown below. Then, create the YOLOv5 folder and pull the Ultralytic’s repository:

docker pull

mkdir docker_yolov5

cd docker_yolov5/

git clone

cd yolov5/

git checkout 91547edec1a33121b3607e8c946e051514182b4f

cd ..

mv yolov5/ standard

mkdir pytorch_hub

How to run Docker Container with using graphic interface and specific volumes

We can run the Docker container by using the below command. When we go into the container, we need to update "apt" package and install "nano" text editor (You can install a different text editor you would like to use.).

docker run -it --gpus all -v /home/nvidia/docker_yolov5/:/yolov5 -e DISPLAY=:0 -v /tmp/.X11-unix:/tmp/.X11-unix

cd yolov5/standard/

apt update

apt install nano

We need to install some python packages. The required packages are identified in the "requirements.txt" file. Before the install of those packages, we need to make some arrangements inside the file.

Open "requirements.txt" file and set "opencv-python", "torch" and "torchvision" should be changed as comment lines because there is the possibility of version incompatibility for those packages and these packages are still installed. We do not need them.

nano requirements.txt

After making arrangements, we install the required packages by using the below command.

pip3 install -r requirements.txt

Testing YoloV5 Real Time Object Detection Algorithm

Now, we are ready to test YOLOv5 with test image.

python3 --source ./data/images/zidane.jpg --conf 0.5

Here is the saved test image.

Additionally, you can test YOLOv5 environment with another examples. We tested a simple example from this page:

We created the test file out of Docker. In this file, we changed the model file (line 4) from:

   model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True)


   model = torch.hub.load('/yolov5/standard', 'custom', '/yolov5/standard/', source = 'local')

Change the current directory and run the test script.

cd ../pytorch_hub


The result images are stored in:

“/yolov5/pytorch_hub/runs/hub/exp/” path into the Docker container 

and “~/docker_yolov5/pytorch_hub/runs/hub/exp” path into the host PC side.

Here are the result images:

Thank you for reading our blog post.