This repository provides a simple and easy process for camera installation, software and hardware setup, and object detection using Yolov5 and openCV on NVIDIA Jetson Nano. This project uses CSI-Camera to create pipeline and capture frames from the CSI camera, and Yolov5 to detect objects, implementing a complete and executable code on Jetson Development Kits. Check out CodePlay jetson nano youtube playlist and Medium article for more info.
Select the desired model based on model size, required speed, and accuracy. You can find available models here in the Assets section. Download the model using the command below and move it to the weights folder.
$ cd weights
$ wget https://github.com/ultralytics/yolov5/releases/download/v5.0/yolov5s.pt
These steps are essential for software and hardware configuration.
Install the camera in the MIPI-CSI Camera Connector on the carrier board. The pins on the camera ribbon should face the Jetson Nano module. You can use this camera setup guide for more info.
By default, NVIDIA JetPack supports several cameras with different sensors, one of the most famous of which is the Raspberry Pi camera v2. But if you use other cameras, you need to install a sensor driver. A 12.3 MP camera with an IMX477-160 sensor is used in this project which requires an additional driver to connect. Check out Arducam IMX477 driver and their installation guide if you have the same camera sensor. Use the following command to check if the camera is recognized correctly.
$ ls /dev/video0
Yolov5 network model is implemented in the Pytorch framework. PyTorch is an open source machine learning library based on the Torch library, used for applications such as computer vision and natural language processing. Heres a complete guide to install PyTorch & torchvision for Python on Jetson Development Kits
Run JetsonYolo.py
to detect objects with the camera.
$ python3 JetsonYolo.py