github 주소 : https://github.com/ceccocats/tkDNN
Yolov4-tiny 모델을 tensorRT로 전환해서 사용하려고 하니 본래 사용하던 github에서는 지원이 안돼서 다른 github에서 사용하는 tkDNN모델로 사용하게 됨.
버전과는 상관없이 위의 종속성에 해당하는 종류는 모두 있어야 함
환경 변수
- CUDA 11.1
- CUDNN 8.0.1
- TENSORRT 7.2.2.2
- OPENCV 3.4.5
- yaml-cpp 0.5.5 ( sudo apt install libyaml-cpp-dev)
빌드과정
$ mkdir build
$ cd build
$ cmake ..
[ 여기서 만약에 에러가 발생한다면 ]
$ vi CMakeLists.txt ( path tkDNN/CMakeLists.txt )
맨위에 추가
set(CUDA_nvinfer_LIBRARY "/usr/local/cuda-11.1/TensorRT-7.2.3.4/lib/libnvinfer.so") set(NVINFER_INCLUDES "/usr/local/cuda-11.1/TensorRT-7.2.3.4/include") set(CUDA_cublas_device_LIBRARY "/usr/local/cuda-11.1/lib64/libcublas.so")
esc + wq! (vi 종료)
다시 진행
- $ cmake ..
- $ make -j 8 ( 8은 cpu thread 갯수 )
- 빌드 완료
Custom dataset으로 trt변환후 사용하기
{tkDNN}/tests/darknet/yolov4tiny.cpp (사용하고자 하는 backbone의 {model}.cpp에서
std::string bin_path = "/home/john/PycharmProjects/tkDNN_trt/darknet";
std::string cfg_path = "/home/john/PycharmProjects/tkDNN_trt/tests/darknet/cfg/yolo4tiny_fire.cfg";
std::string name_path = "/home/john/PycharmProjects/tkDNN_trt/fire.names";
std::string wgs_path = bin_path + "/layers";
이 부분이 맞는지 확인해야 함!
또 {tkDNN}/tests/darknet/cfg/{need_model}.cfg ⇒ 학습 때 사용한 cfg를 복붙해도 됨
- 이 이후에 다시 빌드하는 과정을 거치면 된다.
- ./test_{need_model} ⇒ 실행하면 trt가 튀어나옴 (에러시에는 검색하거나 디버그 모드로 다시 실행)
- ./demo darknet_fp32.rt ../demo/yolo_test.mp4 y
'딥러닝모델' 카테고리의 다른 글
Multi object Tracking Study - FairMOT-2 (0) | 2021.06.27 |
---|---|
Multi object Tracking Study - FairMOT (0) | 2021.06.27 |
Yolov4-tiny darknet build train test (0) | 2021.06.27 |
Yolov5 Train 및 TensorRT (0) | 2021.06.27 |