Showing posts with label nvidia jetson yolo. Show all posts
Showing posts with label nvidia jetson yolo. Show all posts

Thursday, July 28, 2022

NVIDIA Jetson YOLO Object Detection

NVIDIA Jetson YOLO Object Detection

Demos showcase how to convert pre-trained yolov3 and yolov4 models through ONNX to TensorRT engines. The code for these 2 demos has gone through some significant changes. More specifically, I have recently updated the implementation with a "yolo_layer" plugin to speed up the inference time of the yolov3/yolov4 models.

What is a YOLO object detector?

When it comes to deep learning-based object detection, there are three primary object detectors you’ll encounter:

  • R-CNN and their variants, including the original R-CNN, Fast R- CNN, and Faster R-CNN
  • Single Shot Detector (SSDs)
  • YOLO
First introduced in 2015 by Redmon et al., their paper, You Only Look Once: Unified, Real-Time Object Detection, details an object detector capable of super real-time object detection, obtaining 45 FPS on a GPU.

You Only Look Once: Unified, Real-Time Object Detection

https://arxiv.org/pdf/1506.02640v3.pdf

YOLOv4

With the original authors work on YOLO coming to a standstill, YOLOv4 was released by Alexey Bochoknovskiy, Chien-Yao Wang, and Hong-Yuan Mark Liao. The paper was titled YOLOv4: Optimal Speed and Accuracy of Object Detection

Author: Alexey Bochoknovskiy, Chien-Yao Wang, and Hong-Yuan Mark Liao
Released: 23 April 2020

YOLOv3

YOLOv3 improved on the YOLOv2 paper and both Joseph Redmon and Ali Farhadi, the original authors, contributed.
Together they published YOLOv3: An Incremental Improvement

The original YOLO papers were are hosted here

Author: Joseph Redmon and Ali Farhadi
Released: 8 Apr 2018

We’ll be using YOLOv3 , YOLOv4 in this blog post, in particular, YOLO trained on the COCO dataset.

The COCO dataset consists of 80 labels.

YOLOv3-416

Image   :   4.46 FPS.

Video    :   4.35 FPS.


YOLOv3-tiny-416

Image  :  22.30 FPS.

Video   :   20.58 FPS.


YOLOv4-416

For NVIDIA Jetson Nano

Image   :  4.46 FPS.

Video   :   4.35 FPS.


For NVIDIA Jetson Xavier NX

Image   :  24.09 FPS.

Video   :   22.33 FPS.


YOLOv4-tiny-416

For NVIDIA Jetson Nano

Image  :  22.41 FPS.

Video   :  20.47 FPS.

For NVIDIA Jetson Xavier NX

Image   :  47.93 FPS.

Video   :   43.13 FPS.

Compare Performance


Hardware NVIDIA Jetson nano 4GB.

Jetpack SDK 4.6.1


Video  MP4 ( 960x540 )








Image JPG  ( 768x576 )






Hardware NVIDIA Jetson Xavier NX

Jetpack SDK 4.6.1



Compare Nano vs. Xavier NX






Run NVIDIA GPU GTX1070

Hardware
CPU :  Intel i3-9100F 3.60GHz
GPU :  NVIDIA GTX1070. ( Driver Version 470.141.03 )

Software
OS : Ubuntu 18.04.6 LTS
Python 3.6.9
CUDA v11.2.67

Python Library
numpy==1.19.4
opencv-python==4.5.1.48
tensorrt==7.2.2.3
pycuda==2019.1.2






YOLOv4-416 ( TensorRT FP16 )

Image ( 576x425 ) >  45.x fps
Video ( 960x540 ) > 40-44 fps

 

YOLOv4-tiny-416 ( TensorRT FP16 )

Image ( 576x425 ) > 110-115 fps
Video ( 960x540 ) >  86-107 fps



Compare Performance








NVIDIA Jetson Nano Object detection with YOLOv3-416
https://youtu.be/8XmceZQHWSc

NVIDIA Jetson Nano Object detection with YOLOv3-tiny-416

NVIDIA Jetson Nano Object detection with YOLOv4-416

NVIDIA Jetson Nano Object detection with YOLOv4-tiny-416

NVIDIA Jetson Xavier Object detection with YOLOv4-416

NVIDIA Jetson Xavier Object detection with YOLOv4-tiny-416


NVIDIA GPU GTX1070 Object detection with YOLOv4-tiny-416

https://youtu.be/5JSsxoGNGC4


Reference

TensorRT demos

https://github.com/jkjung-avt/tensorrt_demos


You Only Look Once: Unified, Real-Time Object Detection

https://arxiv.org/pdf/1506.02640v3.pdf


YOLOv3: An Incremental Improvement

https://arxiv.org/pdf/1804.02767.pdf


YOLOv4: Optimal Speed and Accuracy of Object Detection

https://arxiv.org/pdf/2004.10934.pdf


DarkNet YOLO

https://github.com/AlexeyAB/darknet


YOLO Object Detection

https://pyimagesearch.com/2018/11/12/yolo-object-detection-with-opencv/


Website : https://softpower.tech