YoloP
=====
The original pytorch model is from [hustvl/YOLOP](https://github.com/hustvl/YOLOP)
## Authors
## 1. Prepare building environments
Make sure you have install `c++`(support c++11)、 `cmake`、`opencv`(4.x)、`cuda`(10.x)、`nvinfer`(7.x).
## 2. build yolop
Go to `yolop`.
```
mkdir build
cd build
cmake ..
make
```
Now you can get `yolop` and `libmyplugins.so`.
## 3. Test in C++
Go to `yolop/build`.
### 3.1 generate yolop.wts
Download/Clone [YOLOP](https://github.com/hustvl/YOLOP)
Edit `gen_wts.py` , change `YOLOP_BASE_DIR` to realpath of `YOLOP`.
```
# [WARN] Please download/clone YOLOP, then set YOLOP_BASE_DIR to the root of YOLOP
python3 ../gen_wts.py
```
### 3.2 generate yolop.trt
```
./yolop -s yolop.wts yolop.trt
```
Now you have such files: `libmyplugins.so yolop yolop.wts yolop.trt`
### 3.3 test yolop.trt
```
mkdir ../results
YOLOP_BASE_DIR=/home/user/jetson/tmp/YOLOP
./yolop -d yolop.trt $YOLOP_BASE_DIR/inference/images/
```
It will output like as follow if successful! ( test on `Jetson Xavier NX - Jetpack 4.4`)
```
1601ms # the fist time is slow
26ms # then it is faster
29ms
27ms
29ms
29ms
```
![](https://user-images.githubusercontent.com/4545060/197756635-38348dc5-d8e7-4ae3-be56-6b231dd2f5db.jpg)
## 4. Test in python3
Go to `yolop`.
Make sure you have install `pycuda` `tensorrt`; and modify `image_dir` to your image dir.
```
# usage: xxx
python3 yolop_trt.py build/yolop.trt build/libmyplugins.so /home/user/jetson/tmp/YOLOP/inference/images
```
It will output like as follow if successful! ( test on `Jetson Xavier NX - Jetpack 4.4`)
```
usage: xxx
[WARN] preaprea you image_dir, such as: samples, or /home/user/jetson/tmp/YOLOP/inference/images
bingding: data (3, 384, 640)
bingding: det (6001, 1, 1)
bingding: seg (1, 360, 640)
bingding: lane (1, 360, 640)
batch size is 1
warm_up->(384, 640, 3), time->1070.87ms
input->['/home/user/jetson/tmp/YOLOP/inference/images/3c0e7240-96e390d2.jpg'], time->25.94ms, saving into output/
input->['/home/user/jetson/tmp/YOLOP/inference/images/adb4871d-4d063244.jpg'], time->25.34ms, saving into output/
input->['/home/user/jetson/tmp/YOLOP/inference/images/8e1c1ab0-a8b92173.jpg'], time->25.03ms, saving into output/
input->['/home/user/jetson/tmp/YOLOP/inference/images/7dd9ef45-f197db95.jpg'], time->25.45ms, saving into output/
input->['/home/user/jetson/tmp/YOLOP/inference/images/9aa94005-ff1d4c9a.jpg'], time->24.93ms, saving into output/
input->['/home/user/jetson/tmp/YOLOP/inference/images/0ace96c3-48481887.jpg'], time->25.33ms, saving into output/
done!
```
![](https://user-images.githubusercontent.com/4545060/198003852-204f3bae-18ad-44fb-9ecd-4a2a07a726a3.jpg)
**Notice** : The results of c++ and python are not aligned for now!
----------------------------------------
```BibTeX
@misc{2108.11250,
Author = {Dong Wu and Manwen Liao and Weitian Zhang and Xinggang Wang},
Title = {YOLOP: You Only Look Once for Panoptic Driving Perception},
Year = {2021},
Eprint = {arXiv:2108.11250},
}
```