github 주소 : https://github.com/ceccocats/tkDNN

 

ceccocats/tkDNN

Deep neural network library and toolkit to do high performace inference on NVIDIA jetson platforms - ceccocats/tkDNN

github.com

 

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

+ Recent posts