From 34c1c3d577cb55235f0c73a5eee201023fc0530b Mon Sep 17 00:00:00 2001 From: Davide Sapienza Date: Tue, 11 May 2021 16:17:23 +0200 Subject: [PATCH] Update cnet branch. This commit splits the demo3D in two demo: one for the 3D object detection and one for the tracking. It renames the files related to CenterTrack. It adds a new parameter to select the tracker mode (2D or 3D). Signed-off-by: Davide Sapienza --- CMakeLists.txt | 13 +- demo/demo/demo3D.cpp | 5 - demo/demo/demoTracker.cpp | 157 +++++++++++++ ...ternetDetection3DTrack.h => CenterTrack.h} | 20 +- include/tkDNN/TrackingNN.h | 158 +++++++++++++ ...etDetection3DTrack.cpp => CenterTrack.cpp} | 47 ++-- .../dla34_ctrack/dla34_ctrack.cpp} | 222 +++++++++--------- 7 files changed, 469 insertions(+), 153 deletions(-) create mode 100644 demo/demo/demoTracker.cpp rename include/tkDNN/{CenternetDetection3DTrack.h => CenterTrack.h} (90%) create mode 100644 include/tkDNN/TrackingNN.h rename src/{CenternetDetection3DTrack.cpp => CenterTrack.cpp} (96%) rename tests/{centernet/dla34_cnet3d_track/dla34_cnet3d_track.cpp => centertrack/dla34_ctrack/dla34_ctrack.cpp} (73%) diff --git a/CMakeLists.txt b/CMakeLists.txt index cb2b1c6..197dced 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,9 +46,9 @@ include_directories(${EIGEN3_INCLUDE_DIR}) find_package(OpenCV REQUIRED) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DOPENCV") -if(OpenCV_CUDA_VERSION) - add_compile_definitions(OPENCV_CUDACONTRIB) -endif() +# if(OpenCV_CUDA_VERSION) +# add_compile_definitions(OPENCV_CUDACONTRIB) +# endif() # gives problems in cross-compiling, probably malformed cmake config find_package(yaml-cpp REQUIRED) @@ -120,8 +120,8 @@ target_link_libraries(test_resnet101_cnet3d tkDNN) add_executable(test_dla34_cnet3d tests/centernet/dla34_cnet3d/dla34_cnet3d.cpp) target_link_libraries(test_dla34_cnet3d tkDNN) -add_executable(test_dla34_cnet3d_track tests/centernet/dla34_cnet3d_track/dla34_cnet3d_track.cpp) -target_link_libraries(test_dla34_cnet3d_track tkDNN) +add_executable(test_dla34_ctrack tests/centertrack/dla34_ctrack/dla34_ctrack.cpp) +target_link_libraries(test_dla34_ctrack tkDNN) # DEMOS add_executable(test_rtinference tests/test_rtinference/rtinference.cpp) @@ -136,6 +136,9 @@ target_link_libraries(demo tkDNN) add_executable(demo3D demo/demo/demo3D.cpp) target_link_libraries(demo3D tkDNN) +add_executable(demoTracker demo/demo/demoTracker.cpp) +target_link_libraries(demoTracker tkDNN) + #------------------------------------------------------------------------------- # Install #------------------------------------------------------------------------------- diff --git a/demo/demo/demo3D.cpp b/demo/demo/demo3D.cpp index 620b0d4..90d4bfb 100644 --- a/demo/demo/demo3D.cpp +++ b/demo/demo/demo3D.cpp @@ -5,7 +5,6 @@ #include #include "CenternetDetection3D.h" -#include "CenternetDetection3DTrack.h" bool gRun; bool SAVE_RESULT = false; @@ -55,7 +54,6 @@ int main(int argc, char *argv[]) { SAVE_RESULT = true; tk::dnn::CenternetDetection3D cnet; - tk::dnn::CenternetDetection3DTrack ctrack; tk::dnn::DetectionNN3D *detNN; @@ -64,9 +62,6 @@ int main(int argc, char *argv[]) { case 'c': detNN = &cnet; break; - case 't': - detNN = &ctrack; - break; default: FatalError("Network type not allowed (3rd parameter)\n"); } diff --git a/demo/demo/demoTracker.cpp b/demo/demo/demoTracker.cpp new file mode 100644 index 0000000..ad6e204 --- /dev/null +++ b/demo/demo/demoTracker.cpp @@ -0,0 +1,157 @@ +#include +#include +#include /* srand, rand */ +//#include +#include + +#include "CenterTrack.h" + +bool gRun; +bool SAVE_RESULT = false; + +void sig_handler(int signo) { + std::cout<<"request gateway stop\n"; + gRun = false; +} + +int main(int argc, char *argv[]) { + + std::cout<<"detection\n"; + signal(SIGINT, sig_handler); + + + std::string net = "dla34_cnet3d_track_fp32.rt"; + if(argc > 1) + net = argv[1]; + #ifdef __linux__ + std::string input = "../demo/yolo_test.mp4"; + #elif _WIN32 + std::string input = "..\\..\\..\\demo\\yolo_test.mp4"; + #endif + + if(argc > 2) + input = argv[2]; + char ntype = 'c'; + if(argc > 3) + ntype = argv[3][0]; + int n_classes = 3; + if(argc > 4) + n_classes = atoi(argv[4]); + int n_batch = 1; + if(argc > 5) + n_batch = atoi(argv[5]); + bool show = true; + if(argc > 6) + show = atoi(argv[6]); + float conf_thresh=0.3; + if(argc > 7) + conf_thresh = atof(argv[7]); + bool t3d = true; + if(argc > 8) + t3d = atoi(argv[8]); + if(n_batch < 1 || n_batch > 64) + FatalError("Batch dim not supported"); + + if(!show) + SAVE_RESULT = true; + + tk::dnn::CenterTrack ctrack; + + tk::dnn::TrackingNN *trackNN; + + switch(ntype) + { + case 'c': + trackNN = &ctrack; + break; + default: + FatalError("Network type not allowed (3rd parameter)\n"); + } + std::vector calibs; + // cv::Mat calib = cv::Mat::zeros(cv::Size(3,3), CV_32F); + // calib.at(0,0) = 864.1243196486207;// * 512.0;//884.081444212;//864.1243196486207 * 512.0;// 633.0; + // calib.at(0,2) = 726.7271690557819;// * 512.0;//0.0;//726.7271690557819 * 512.0;// 0.0; //w/2 + // calib.at(1,1) = 883.6552349216504;// * 512.0;//884.081444212;//883.6552349216504 * 512.0;// 633.0; + // calib.at(1,2) = 506.8548506986564;// * 512.0;//0.0;//506.8548506986564 * 512.0;// 0.0; //h/2 + // calibs.push_back(calib); + // calibs.push_back(calib); + // calibs.push_back(calib); + // calibs.push_back(calib); + trackNN->init(net, n_classes, n_batch, conf_thresh, t3d, calibs); + + gRun = true; + + cv::VideoCapture cap(input); + if(!cap.isOpened()) + gRun = false; + else + std::cout<<"camera started\n"; + + cv::VideoWriter resultVideo; + if(SAVE_RESULT) { + int w = cap.get(cv::CAP_PROP_FRAME_WIDTH); + int h = cap.get(cv::CAP_PROP_FRAME_HEIGHT); + resultVideo.open("result.mp4", cv::VideoWriter::fourcc('M','P','4','V'), 30, cv::Size(w, h)); + } + cv::Mat frame; + if(show) + cv::namedWindow("detection", cv::WINDOW_NORMAL); + + std::vector batch_frame; + std::vector batch_dnn_input; + + while(gRun) { + batch_dnn_input.clear(); + batch_frame.clear(); + + for(int bi=0; bi< n_batch; ++bi){ + cap >> frame; + if(!frame.data) + break; + batch_frame.push_back(frame); + + // this will be resized to the net format + batch_dnn_input.push_back(frame.clone()); + } + if(!frame.data) + break; + + //inference + trackNN->update(batch_dnn_input, n_batch, false, nullptr, false); + trackNN->draw(batch_frame); + + if(show){ + for(int bi=0; bi< n_batch; ++bi){ + cv::imshow("detection", batch_frame[bi]); + cv::waitKey(1); + } + } + if(n_batch == 1 && SAVE_RESULT) + resultVideo << frame; + } + + std::cout<<"detection end\n"; + double mean = 0; + + std::cout<pre_stats.begin(), trackNN->pre_stats.end())<<" ms\n"; + std::cout<<"Max: "<<*std::max_element(trackNN->pre_stats.begin(), trackNN->pre_stats.end())<<" ms\n"; + for(int i=0; ipre_stats.size(); i++) mean += trackNN->pre_stats[i]; mean /= trackNN->pre_stats.size(); + std::cout<<"Avg: "<stats.begin(), trackNN->stats.end())<<" ms\n"; + std::cout<<"Max: "<<*std::max_element(trackNN->stats.begin(), trackNN->stats.end())<<" ms\n"; + for(int i=0; istats.size(); i++) mean += trackNN->stats[i]; mean /= trackNN->stats.size(); + std::cout<<"Avg: "<post_stats.begin(), trackNN->post_stats.end())<<" ms\n"; + std::cout<<"Max: "<<*std::max_element(trackNN->post_stats.begin(), trackNN->post_stats.end())<<" ms\n"; + for(int i=0; ipost_stats.size(); i++) mean += trackNN->post_stats[i]; mean /= trackNN->post_stats.size(); + std::cout<<"Avg: "< #include "opencv2/opencv.hpp" @@ -11,7 +11,7 @@ #include // std::iota #include // std::sort -#include "DetectionNN3D.h" +#include "TrackingNN.h" #include "kernelsThrust.h" @@ -49,7 +49,7 @@ struct trackingRes int color; }; -class CenternetDetection3DTrack : public DetectionNN3D +class CenterTrack : public TrackingNN { public: tk::dnn::dataDim_t dim; @@ -133,7 +133,7 @@ public: std::vector> faceId; cv::Scalar trColors[256]; - bool view2d = false; + bool mode3D; //processing struct threshold op; @@ -163,9 +163,11 @@ public: public: tk::dnn::Network *pre_phase_net = nullptr; - CenternetDetection3DTrack() {}; - ~CenternetDetection3DTrack() {}; - bool init(const std::string& tensor_path, const int n_classes=3, const int n_batches=1, const float conf_thresh=0.3, const std::vector& k_calibs=std::vector()); + CenterTrack() {}; + ~CenterTrack() {}; + bool init(const std::string& tensor_path, const int n_classes=3, const int n_batches=1, + const float conf_thresh=0.3, const bool mode_3d=true, + const std::vector& k_calibs=std::vector()); void preprocess(cv::Mat &frame, const int bi=0); void postprocess(const int bi=0,const bool mAP=false); void draw(std::vector& frames); @@ -176,4 +178,4 @@ public: } // namespace tk -#endif /*CENTERNETDETECTION3DTRACK_H*/ \ No newline at end of file +#endif /*CENTERTRACK_H*/ \ No newline at end of file diff --git a/include/tkDNN/TrackingNN.h b/include/tkDNN/TrackingNN.h new file mode 100644 index 0000000..476db53 --- /dev/null +++ b/include/tkDNN/TrackingNN.h @@ -0,0 +1,158 @@ +#ifndef TRACKINGNN_H +#define TRACKINGNN_H + +#include +#include +#include +#ifdef __linux__ +#include +#endif + +#include +#include "utils.h" + +#include +#include +#include + +#include "tkdnn.h" + +// #define OPENCV_CUDACONTRIB //if OPENCV has been compiled with CUDA and contrib. + +#ifdef OPENCV_CUDACONTRIB +#include +#include +#endif + + +namespace tk { namespace dnn { + +class TrackingNN { + + protected: + tk::dnn::NetworkRT *netRT = nullptr; + dnnType *input_d; + + std::vector originalSize; + + cv::Scalar colors[256]; + + int nBatches = 1; + +#ifdef OPENCV_CUDACONTRIB + cv::cuda::GpuMat bgr[3]; + cv::cuda::GpuMat imagePreproc; +#else + cv::Mat bgr[3]; + cv::Mat imagePreproc; + dnnType *input; +#endif + + /** + * This method preprocess the image, before feeding it to the NN. + * + * @param frame original frame to adapt for inference. + * @param bi batch index + */ + virtual void preprocess(cv::Mat &frame, const int bi=0) = 0; + + /** + * This method postprocess the output of the NN to obtain the correct + * boundig boxes. + * + * @param bi batch index + * @param mAP set to true only if all the probabilities for a bounding + * box are needed, as in some cases for the mAP calculation + */ + virtual void postprocess(const int bi=0,const bool mAP=false) = 0; + + public: + int classes = 0; + float confThreshold = 0.3; /*threshold on the confidence of the boxes*/ + + std::vector pre_stats, stats, post_stats, visual_stats; /*keeps track of inference times (ms)*/ + std::vector classesNames; + + TrackingNN() {}; + ~TrackingNN(){}; + + /** + * Method used to initialize the class, allocate memory and compute + * needed data. + * + * @param tensor_path path to the rt file of the NN. + * @param n_classes number of classes for the given dataset. + * @param n_batches maximum number of batches to use in inference. + * @return true if everything is correct, false otherwise. + */ + virtual bool init(const std::string& tensor_path, const int n_classes=3, const int n_batches=1, + const float conf_thresh=0.3, const bool mode_3d=true, const std::vector& k_calibs=std::vector()) = 0; + + /** + * This method performs the whole detection and tracking of the NN. + * + * @param frames frames to run detection and trcking on. + * @param cur_batches number of batches to use in inference. + * @param save_times if set to true, preprocess, inference and postprocess times + * are saved on a csv file, otherwise not. + * @param times pointer to the output stream where to write times. + * @param mAP set to true only if all the probabilities for a bounding + * box are needed, as in some cases for the mAP calculation. + */ + void update(std::vector& frames, const int cur_batches=1, bool save_times=false, + std::ofstream *times=nullptr, const bool mAP=false){ + if(save_times && times==nullptr) + FatalError("save_times set to true, but no valid ofstream given"); + if(cur_batches > nBatches) + FatalError("A batch size greater than nBatches cannot be used"); + + originalSize.clear(); + if(TKDNN_VERBOSE) printCenteredTitle(" TENSORRT detection ", '=', 30); + { + TKDNN_TSTART + for(int bi=0; biinput_dim; + dim.n = cur_batches; + { + if(TKDNN_VERBOSE) dim.print(); + TKDNN_TSTART + netRT->infer(dim, input_d); + TKDNN_TSTOP + if(TKDNN_VERBOSE) dim.print(); + stats.push_back(t_ns); + if(save_times) *times<& frames){}; + +}; + +}} + +#endif /* TRACKINGNN_H*/ diff --git a/src/CenternetDetection3DTrack.cpp b/src/CenterTrack.cpp similarity index 96% rename from src/CenternetDetection3DTrack.cpp rename to src/CenterTrack.cpp index d119c1e..dc15823 100644 --- a/src/CenternetDetection3DTrack.cpp +++ b/src/CenterTrack.cpp @@ -1,16 +1,17 @@ -#include "CenternetDetection3DTrack.h" +#include "CenterTrack.h" namespace tk { namespace dnn { -bool CenternetDetection3DTrack::init(const std::string& tensor_path, const int n_classes, const int n_batches, - const float conf_thresh, const std::vector& k_calibs) { +bool CenterTrack::init(const std::string& tensor_path, const int n_classes, const int n_batches, + const float conf_thresh, const bool mode_3d, const std::vector& k_calibs) { netRT = new tk::dnn::NetworkRT(NULL, (tensor_path).c_str() ); dim = netRT->input_dim; dim.c = 3; nBatches = n_batches; confThreshold = conf_thresh; + mode3D = mode_3d; inputCalibs = k_calibs; init_preprocessing(); init_pre_inf(); @@ -18,7 +19,7 @@ bool CenternetDetection3DTrack::init(const std::string& tensor_path, const int n init_visualization(n_classes); } -bool CenternetDetection3DTrack::init_preprocessing(){ +bool CenterTrack::init_preprocessing(){ //image transformation src = cv::Mat(cv::Size(2,3), CV_32F); dst = cv::Mat(cv::Size(2,3), CV_32F); @@ -60,12 +61,12 @@ bool CenternetDetection3DTrack::init_preprocessing(){ checkCuda( cudaMalloc(&d_ptrs, dim.tot() * sizeof(float)) ); } -bool CenternetDetection3DTrack::init_pre_inf(){ +bool CenterTrack::init_pre_inf(){ // initial steps: the first part of the network - const char *pre_img_conv1_bin = "dla34_cnet3d_track/layers/base-pre_img_layer-0.bin"; - const char *pre_hm_conv1_bin = "dla34_cnet3d_track/layers/base-pre_hm_layer-0.bin"; - const char *conv1_bin = "dla34_cnet3d_track/layers/base-base_layer-0.bin"; - const char *conv2_bin = "dla34_cnet3d_track/layers/base-level0-0.bin"; + const char *pre_img_conv1_bin = "dla34_ctrack/layers/base-pre_img_layer-0.bin"; + const char *pre_hm_conv1_bin = "dla34_ctrack/layers/base-pre_hm_layer-0.bin"; + const char *conv1_bin = "dla34_ctrack/layers/base-base_layer-0.bin"; + const char *conv2_bin = "dla34_ctrack/layers/base-level0-0.bin"; dim_in0 = tk::dnn::dataDim_t(1, 3, 512, 512, 1); dim_in1 = tk::dnn::dataDim_t(1, 1, 512, 512, 1); @@ -82,9 +83,9 @@ bool CenternetDetection3DTrack::init_pre_inf(){ dnnType *i0_h, *i1_h, *i2_h; // dnnType *i0_d, *i1_d, *i2_d; - // const char *input_bin = "dla34_cnet3d_track/debug/input.bin"; - // const char *pre_img_bin = "dla34_cnet3d_track/debug/pre_imgages.bin"; - // const char *pre_hm_bin = "dla34_cnet3d_track/debug/pre_hms.bin"; + // const char *input_bin = "dla34_ctrack/debug/input.bin"; + // const char *pre_img_bin = "dla34_ctrack/debug/pre_imgages.bin"; + // const char *pre_hm_bin = "dla34_ctrack/debug/pre_hms.bin"; // readBinaryFile(pre_img_bin, dim_in0.tot(), &i0_h, &img_d); // readBinaryFile(pre_hm_bin, dim_in1.tot(), &i1_h, &hm_d); // readBinaryFile(input_bin, dim_in0.tot(), &i2_h, &input_pre_inf_d); @@ -114,7 +115,7 @@ bool CenternetDetection3DTrack::init_pre_inf(){ return true; } -bool CenternetDetection3DTrack::init_postprocessing(){ +bool CenterTrack::init_postprocessing(){ srand(0); //seed = 0 for random colors dim_hm = tk::dnn::dataDim_t(1, 10, 128, 128, 1); @@ -203,7 +204,7 @@ bool CenternetDetection3DTrack::init_postprocessing(){ trackId.resize(nBatches, 0); } -bool CenternetDetection3DTrack::init_visualization(const int n_classes){ +bool CenterTrack::init_visualization(const int n_classes){ classes = n_classes; // const char *kitti_class_name[] = { // "person", "car", "bicycle"}; @@ -275,11 +276,11 @@ bool CenternetDetection3DTrack::init_visualization(const int n_classes){ // ([[0,1,5,4], [1,2,6, 5], [2,3,7,6], [3,0,4,7]]); } -void CenternetDetection3DTrack::_get_additional_inputs(){ +void CenterTrack::_get_additional_inputs(){ //None no additional input } -void CenternetDetection3DTrack::pre_inf(const int bi){ +void CenterTrack::pre_inf(const int bi){ TKDNN_TSTART tk::dnn::dataDim_t dim_aus; pre_phase_net->infer(dim_aus, nullptr); @@ -289,7 +290,7 @@ void CenternetDetection3DTrack::pre_inf(const int bi){ checkCuda( cudaDeviceSynchronize() ); } -void CenternetDetection3DTrack::preprocess(cv::Mat &frame, const int bi){ +void CenterTrack::preprocess(cv::Mat &frame, const int bi){ cv::Size sz = originalSize[bi]; // float scale = 1.0; float new_height = dim.h;//sz.height * scale; @@ -403,7 +404,7 @@ void CenternetDetection3DTrack::preprocess(cv::Mat &frame, const int bi){ checkCuda( cudaDeviceSynchronize() ); } -cv::Mat CenternetDetection3DTrack::transform_preds_with_trans(float x1, float x2){ +cv::Mat CenterTrack::transform_preds_with_trans(float x1, float x2){ cv::Mat target_coords(cv::Size(1,3), CV_32F); target_coords.at(0,0) = x1; target_coords.at(0,1) = x2; @@ -411,7 +412,7 @@ cv::Mat CenternetDetection3DTrack::transform_preds_with_trans(float x1, float x2 return transOut * target_coords; } -void CenternetDetection3DTrack::tracking(const int bi) { +void CenterTrack::tracking(const int bi) { float item_size[countDet]; int item_cl[countDet]; float dets[2*countDet]; @@ -600,7 +601,7 @@ void CenternetDetection3DTrack::tracking(const int bi) { } -void CenternetDetection3DTrack::postprocess(const int bi, const bool mAP) { +void CenterTrack::postprocess(const int bi, const bool mAP) { dnnType *rt_out[9]; rt_out[0] = (dnnType *)netRT->buffersRT[1]+ netRT->buffersDIM[1].tot()*bi; rt_out[1] = (dnnType *)netRT->buffersRT[2]+ netRT->buffersDIM[2].tot()*bi; @@ -734,7 +735,7 @@ void CenternetDetection3DTrack::postprocess(const int bi, const bool mAP) { tracking(bi); } -void CenternetDetection3DTrack::draw(std::vector& frames) { +void CenterTrack::draw(std::vector& frames) { struct trackingRes t; float sc; int id; @@ -755,7 +756,7 @@ void CenternetDetection3DTrack::draw(std::vector& frames) { cv::Size text_size = getTextSize(txt, cv::FONT_HERSHEY_SIMPLEX, font_scale, thickness, &baseline); if(t.det_res.score > confThreshold){// && t.active!=0) { - if(view2d) { + if(!mode3D) { cv::rectangle(frames[bi], cv::Point(t.det_res.bb0.at(0,0) * scale_x, t.det_res.bb0.at(0,1) * scale_y), cv::Point(t.det_res.bb1.at(0,0) * scale_x, t.det_res.bb1.at(0,1) * scale_y), @@ -776,7 +777,7 @@ void CenternetDetection3DTrack::draw(std::vector& frames) { cv::Scalar(255, 0, 255), 2); } //3d - if(!view2d && t.det_res.z > 1){ + if(mode3D && t.det_res.z > 1){ r.at(0,0) = std::cos(t.det_res.rot_y); r.at(0,2) = std::sin(t.det_res.rot_y); r.at(2,0) = -std::sin(t.det_res.rot_y); diff --git a/tests/centernet/dla34_cnet3d_track/dla34_cnet3d_track.cpp b/tests/centertrack/dla34_ctrack/dla34_ctrack.cpp similarity index 73% rename from tests/centernet/dla34_cnet3d_track/dla34_cnet3d_track.cpp rename to tests/centertrack/dla34_ctrack/dla34_ctrack.cpp index 4829f16..eb3788c 100644 --- a/tests/centernet/dla34_cnet3d_track/dla34_cnet3d_track.cpp +++ b/tests/centertrack/dla34_ctrack/dla34_ctrack.cpp @@ -1,130 +1,130 @@ #include #include "tkdnn.h" -const char *input_bin = "dla34_cnet3d_track/debug/input_base-level0-0.bin"; -// const char *input_bin = "dla34_cnet3d_track/debug/input.bin"; -// const char *pre_img_bin = "dla34_cnet3d_track/debug/pre_imgages.bin"; -// const char *pre_hm_bin = "dla34_cnet3d_track/debug/pre_hms.bin"; +const char *input_bin = "dla34_ctrack/debug/input_base-level0-0.bin"; +// const char *input_bin = "dla34_ctrack/debug/input.bin"; +// const char *pre_img_bin = "dla34_ctrack/debug/pre_imgages.bin"; +// const char *pre_hm_bin = "dla34_ctrack/debug/pre_hms.bin"; // //pre -// const char *pre_img_conv1_bin = "dla34_cnet3d_track/layers/base-pre_img_layer-0.bin"; -// const char *pre_hm_conv1_bin = "dla34_cnet3d_track/layers/base-pre_hm_layer-0.bin"; -// const char *conv1_bin = "dla34_cnet3d_track/layers/base-base_layer-0.bin"; +// const char *pre_img_conv1_bin = "dla34_ctrack/layers/base-pre_img_layer-0.bin"; +// const char *pre_hm_conv1_bin = "dla34_ctrack/layers/base-pre_hm_layer-0.bin"; +// const char *conv1_bin = "dla34_ctrack/layers/base-base_layer-0.bin"; -const char *conv2_bin = "dla34_cnet3d_track/layers/base-level0-0.bin"; -const char *conv3_bin = "dla34_cnet3d_track/layers/base-level1-0.bin"; +const char *conv2_bin = "dla34_ctrack/layers/base-level0-0.bin"; +const char *conv3_bin = "dla34_ctrack/layers/base-level1-0.bin"; // s - stage, t - tree -const char *s1_t1_conv1_bin = "dla34_cnet3d_track/layers/base-level2-tree1-conv1.bin"; -const char *s1_t1_conv2_bin = "dla34_cnet3d_track/layers/base-level2-tree1-conv2.bin"; -const char *s1_t1_project = "dla34_cnet3d_track/layers/base-level2-project-0.bin"; -const char *s1_t2_conv1_bin = "dla34_cnet3d_track/layers/base-level2-tree2-conv1.bin"; -const char *s1_t2_conv2_bin = "dla34_cnet3d_track/layers/base-level2-tree2-conv2.bin"; -const char *s1_root_conv1_bin = "dla34_cnet3d_track/layers/base-level2-root-conv.bin"; -const char *s2_t1_t1_conv1_bin = "dla34_cnet3d_track/layers/base-level3-tree1-tree1-conv1.bin"; -const char *s2_t1_t1_conv2_bin = "dla34_cnet3d_track/layers/base-level3-tree1-tree1-conv2.bin"; -const char *s2_t1_t1_project = "dla34_cnet3d_track/layers/base-level3-tree1-project-0.bin"; -const char *s2_t1_t2_conv1_bin = "dla34_cnet3d_track/layers/base-level3-tree1-tree2-conv1.bin"; -const char *s2_t1_t2_conv2_bin = "dla34_cnet3d_track/layers/base-level3-tree1-tree2-conv2.bin"; -const char *s2_t1_root_conv1_bin = "dla34_cnet3d_track/layers/base-level3-tree1-root-conv.bin"; -const char *s2_t2_t1_conv1_bin = "dla34_cnet3d_track/layers/base-level3-tree2-tree1-conv1.bin"; -const char *s2_t2_t1_conv2_bin = "dla34_cnet3d_track/layers/base-level3-tree2-tree1-conv2.bin"; -const char *s2_t2_t2_conv1_bin = "dla34_cnet3d_track/layers/base-level3-tree2-tree2-conv1.bin"; -const char *s2_t2_t2_conv2_bin = "dla34_cnet3d_track/layers/base-level3-tree2-tree2-conv2.bin"; -const char *s2_t2_root_conv1_bin = "dla34_cnet3d_track/layers/base-level3-tree2-root-conv.bin"; -const char *s3_t1_t1_conv1_bin = "dla34_cnet3d_track/layers/base-level4-tree1-tree1-conv1.bin"; -const char *s3_t1_t1_conv2_bin = "dla34_cnet3d_track/layers/base-level4-tree1-tree1-conv2.bin"; -const char *s3_t1_t1_project = "dla34_cnet3d_track/layers/base-level4-tree1-project-0.bin"; -const char *s3_t1_t2_conv1_bin = "dla34_cnet3d_track/layers/base-level4-tree1-tree2-conv1.bin"; -const char *s3_t1_t2_conv2_bin = "dla34_cnet3d_track/layers/base-level4-tree1-tree2-conv2.bin"; -const char *s3_t1_root_conv1_bin = "dla34_cnet3d_track/layers/base-level4-tree1-root-conv.bin"; -const char *s3_t2_t1_conv1_bin = "dla34_cnet3d_track/layers/base-level4-tree2-tree1-conv1.bin"; -const char *s3_t2_t1_conv2_bin = "dla34_cnet3d_track/layers/base-level4-tree2-tree1-conv2.bin"; -const char *s3_t2_t2_conv1_bin = "dla34_cnet3d_track/layers/base-level4-tree2-tree2-conv1.bin"; -const char *s3_t2_t2_conv2_bin = "dla34_cnet3d_track/layers/base-level4-tree2-tree2-conv2.bin"; -const char *s3_t2_root_conv1_bin = "dla34_cnet3d_track/layers/base-level4-tree2-root-conv.bin"; -const char *s4_t1_conv1_bin = "dla34_cnet3d_track/layers/base-level5-tree1-conv1.bin"; -const char *s4_t1_conv2_bin = "dla34_cnet3d_track/layers/base-level5-tree1-conv2.bin"; -const char *s4_t1_project = "dla34_cnet3d_track/layers/base-level5-project-0.bin"; -const char *s4_t2_conv1_bin = "dla34_cnet3d_track/layers/base-level5-tree2-conv1.bin"; -const char *s4_t2_conv2_bin = "dla34_cnet3d_track/layers/base-level5-tree2-conv2.bin"; -const char *s4_root_conv1_bin = "dla34_cnet3d_track/layers/base-level5-root-conv.bin"; +const char *s1_t1_conv1_bin = "dla34_ctrack/layers/base-level2-tree1-conv1.bin"; +const char *s1_t1_conv2_bin = "dla34_ctrack/layers/base-level2-tree1-conv2.bin"; +const char *s1_t1_project = "dla34_ctrack/layers/base-level2-project-0.bin"; +const char *s1_t2_conv1_bin = "dla34_ctrack/layers/base-level2-tree2-conv1.bin"; +const char *s1_t2_conv2_bin = "dla34_ctrack/layers/base-level2-tree2-conv2.bin"; +const char *s1_root_conv1_bin = "dla34_ctrack/layers/base-level2-root-conv.bin"; +const char *s2_t1_t1_conv1_bin = "dla34_ctrack/layers/base-level3-tree1-tree1-conv1.bin"; +const char *s2_t1_t1_conv2_bin = "dla34_ctrack/layers/base-level3-tree1-tree1-conv2.bin"; +const char *s2_t1_t1_project = "dla34_ctrack/layers/base-level3-tree1-project-0.bin"; +const char *s2_t1_t2_conv1_bin = "dla34_ctrack/layers/base-level3-tree1-tree2-conv1.bin"; +const char *s2_t1_t2_conv2_bin = "dla34_ctrack/layers/base-level3-tree1-tree2-conv2.bin"; +const char *s2_t1_root_conv1_bin = "dla34_ctrack/layers/base-level3-tree1-root-conv.bin"; +const char *s2_t2_t1_conv1_bin = "dla34_ctrack/layers/base-level3-tree2-tree1-conv1.bin"; +const char *s2_t2_t1_conv2_bin = "dla34_ctrack/layers/base-level3-tree2-tree1-conv2.bin"; +const char *s2_t2_t2_conv1_bin = "dla34_ctrack/layers/base-level3-tree2-tree2-conv1.bin"; +const char *s2_t2_t2_conv2_bin = "dla34_ctrack/layers/base-level3-tree2-tree2-conv2.bin"; +const char *s2_t2_root_conv1_bin = "dla34_ctrack/layers/base-level3-tree2-root-conv.bin"; +const char *s3_t1_t1_conv1_bin = "dla34_ctrack/layers/base-level4-tree1-tree1-conv1.bin"; +const char *s3_t1_t1_conv2_bin = "dla34_ctrack/layers/base-level4-tree1-tree1-conv2.bin"; +const char *s3_t1_t1_project = "dla34_ctrack/layers/base-level4-tree1-project-0.bin"; +const char *s3_t1_t2_conv1_bin = "dla34_ctrack/layers/base-level4-tree1-tree2-conv1.bin"; +const char *s3_t1_t2_conv2_bin = "dla34_ctrack/layers/base-level4-tree1-tree2-conv2.bin"; +const char *s3_t1_root_conv1_bin = "dla34_ctrack/layers/base-level4-tree1-root-conv.bin"; +const char *s3_t2_t1_conv1_bin = "dla34_ctrack/layers/base-level4-tree2-tree1-conv1.bin"; +const char *s3_t2_t1_conv2_bin = "dla34_ctrack/layers/base-level4-tree2-tree1-conv2.bin"; +const char *s3_t2_t2_conv1_bin = "dla34_ctrack/layers/base-level4-tree2-tree2-conv1.bin"; +const char *s3_t2_t2_conv2_bin = "dla34_ctrack/layers/base-level4-tree2-tree2-conv2.bin"; +const char *s3_t2_root_conv1_bin = "dla34_ctrack/layers/base-level4-tree2-root-conv.bin"; +const char *s4_t1_conv1_bin = "dla34_ctrack/layers/base-level5-tree1-conv1.bin"; +const char *s4_t1_conv2_bin = "dla34_ctrack/layers/base-level5-tree1-conv2.bin"; +const char *s4_t1_project = "dla34_ctrack/layers/base-level5-project-0.bin"; +const char *s4_t2_conv1_bin = "dla34_ctrack/layers/base-level5-tree2-conv1.bin"; +const char *s4_t2_conv2_bin = "dla34_ctrack/layers/base-level5-tree2-conv2.bin"; +const char *s4_root_conv1_bin = "dla34_ctrack/layers/base-level5-root-conv.bin"; //final -// const char *fc_bin = "dla34_cnet3d_track/layers/output.bin"; +// const char *fc_bin = "dla34_ctrack/layers/output.bin"; -const char *ida_0_p_1_dcn_bin = "dla34_cnet3d_track/layers/dla_up-ida_0-proj_1-conv.bin"; -const char *ida_0_p_1_conv_bin = "dla34_cnet3d_track/layers/dla_up-ida_0-proj_1-conv-conv_offset_mask.bin"; -const char *ida_0_up_1_deconv_bin = "dla34_cnet3d_track/layers/dla_up-ida_0-up_1.bin"; -const char *ida_0_n_1_dcn_bin = "dla34_cnet3d_track/layers/dla_up-ida_0-node_1-conv.bin"; -const char *ida_0_n_1_conv_bin = "dla34_cnet3d_track/layers/dla_up-ida_0-node_1-conv-conv_offset_mask.bin"; +const char *ida_0_p_1_dcn_bin = "dla34_ctrack/layers/dla_up-ida_0-proj_1-conv.bin"; +const char *ida_0_p_1_conv_bin = "dla34_ctrack/layers/dla_up-ida_0-proj_1-conv-conv_offset_mask.bin"; +const char *ida_0_up_1_deconv_bin = "dla34_ctrack/layers/dla_up-ida_0-up_1.bin"; +const char *ida_0_n_1_dcn_bin = "dla34_ctrack/layers/dla_up-ida_0-node_1-conv.bin"; +const char *ida_0_n_1_conv_bin = "dla34_ctrack/layers/dla_up-ida_0-node_1-conv-conv_offset_mask.bin"; -const char *ida_1_p_1_dcn_bin = "dla34_cnet3d_track/layers/dla_up-ida_1-proj_1-conv.bin"; -const char *ida_1_p_1_conv_bin = "dla34_cnet3d_track/layers/dla_up-ida_1-proj_1-conv-conv_offset_mask.bin"; -const char *ida_1_up_1_deconv_bin = "dla34_cnet3d_track/layers/dla_up-ida_1-up_1.bin"; -const char *ida_1_n_1_dcn_bin = "dla34_cnet3d_track/layers/dla_up-ida_1-node_1-conv.bin"; -const char *ida_1_n_1_conv_bin = "dla34_cnet3d_track/layers/dla_up-ida_1-node_1-conv-conv_offset_mask.bin"; -const char *ida_1_p_2_dcn_bin = "dla34_cnet3d_track/layers/dla_up-ida_1-proj_2-conv.bin"; -const char *ida_1_p_2_conv_bin = "dla34_cnet3d_track/layers/dla_up-ida_1-proj_2-conv-conv_offset_mask.bin"; -const char *ida_1_up_2_deconv_bin = "dla34_cnet3d_track/layers/dla_up-ida_1-up_2.bin"; -const char *ida_1_n_2_dcn_bin = "dla34_cnet3d_track/layers/dla_up-ida_1-node_2-conv.bin"; -const char *ida_1_n_2_conv_bin = "dla34_cnet3d_track/layers/dla_up-ida_1-node_2-conv-conv_offset_mask.bin"; +const char *ida_1_p_1_dcn_bin = "dla34_ctrack/layers/dla_up-ida_1-proj_1-conv.bin"; +const char *ida_1_p_1_conv_bin = "dla34_ctrack/layers/dla_up-ida_1-proj_1-conv-conv_offset_mask.bin"; +const char *ida_1_up_1_deconv_bin = "dla34_ctrack/layers/dla_up-ida_1-up_1.bin"; +const char *ida_1_n_1_dcn_bin = "dla34_ctrack/layers/dla_up-ida_1-node_1-conv.bin"; +const char *ida_1_n_1_conv_bin = "dla34_ctrack/layers/dla_up-ida_1-node_1-conv-conv_offset_mask.bin"; +const char *ida_1_p_2_dcn_bin = "dla34_ctrack/layers/dla_up-ida_1-proj_2-conv.bin"; +const char *ida_1_p_2_conv_bin = "dla34_ctrack/layers/dla_up-ida_1-proj_2-conv-conv_offset_mask.bin"; +const char *ida_1_up_2_deconv_bin = "dla34_ctrack/layers/dla_up-ida_1-up_2.bin"; +const char *ida_1_n_2_dcn_bin = "dla34_ctrack/layers/dla_up-ida_1-node_2-conv.bin"; +const char *ida_1_n_2_conv_bin = "dla34_ctrack/layers/dla_up-ida_1-node_2-conv-conv_offset_mask.bin"; -const char *ida_2_p_1_dcn_bin = "dla34_cnet3d_track/layers/dla_up-ida_2-proj_1-conv.bin"; -const char *ida_2_p_1_conv_bin = "dla34_cnet3d_track/layers/dla_up-ida_2-proj_1-conv-conv_offset_mask.bin"; -const char *ida_2_up_1_deconv_bin = "dla34_cnet3d_track/layers/dla_up-ida_2-up_1.bin"; -const char *ida_2_n_1_dcn_bin = "dla34_cnet3d_track/layers/dla_up-ida_2-node_1-conv.bin"; -const char *ida_2_n_1_conv_bin = "dla34_cnet3d_track/layers/dla_up-ida_2-node_1-conv-conv_offset_mask.bin"; -const char *ida_2_p_2_dcn_bin = "dla34_cnet3d_track/layers/dla_up-ida_2-proj_2-conv.bin"; -const char *ida_2_p_2_conv_bin = "dla34_cnet3d_track/layers/dla_up-ida_2-proj_2-conv-conv_offset_mask.bin"; -const char *ida_2_up_2_deconv_bin = "dla34_cnet3d_track/layers/dla_up-ida_2-up_2.bin"; -const char *ida_2_n_2_dcn_bin = "dla34_cnet3d_track/layers/dla_up-ida_2-node_2-conv.bin"; -const char *ida_2_n_2_conv_bin = "dla34_cnet3d_track/layers/dla_up-ida_2-node_2-conv-conv_offset_mask.bin"; -const char *ida_2_p_3_dcn_bin = "dla34_cnet3d_track/layers/dla_up-ida_2-proj_3-conv.bin"; -const char *ida_2_p_3_conv_bin = "dla34_cnet3d_track/layers/dla_up-ida_2-proj_3-conv-conv_offset_mask.bin"; -const char *ida_2_up_3_deconv_bin = "dla34_cnet3d_track/layers/dla_up-ida_2-up_3.bin"; -const char *ida_2_n_3_dcn_bin = "dla34_cnet3d_track/layers/dla_up-ida_2-node_3-conv.bin"; -const char *ida_2_n_3_conv_bin = "dla34_cnet3d_track/layers/dla_up-ida_2-node_3-conv-conv_offset_mask.bin"; +const char *ida_2_p_1_dcn_bin = "dla34_ctrack/layers/dla_up-ida_2-proj_1-conv.bin"; +const char *ida_2_p_1_conv_bin = "dla34_ctrack/layers/dla_up-ida_2-proj_1-conv-conv_offset_mask.bin"; +const char *ida_2_up_1_deconv_bin = "dla34_ctrack/layers/dla_up-ida_2-up_1.bin"; +const char *ida_2_n_1_dcn_bin = "dla34_ctrack/layers/dla_up-ida_2-node_1-conv.bin"; +const char *ida_2_n_1_conv_bin = "dla34_ctrack/layers/dla_up-ida_2-node_1-conv-conv_offset_mask.bin"; +const char *ida_2_p_2_dcn_bin = "dla34_ctrack/layers/dla_up-ida_2-proj_2-conv.bin"; +const char *ida_2_p_2_conv_bin = "dla34_ctrack/layers/dla_up-ida_2-proj_2-conv-conv_offset_mask.bin"; +const char *ida_2_up_2_deconv_bin = "dla34_ctrack/layers/dla_up-ida_2-up_2.bin"; +const char *ida_2_n_2_dcn_bin = "dla34_ctrack/layers/dla_up-ida_2-node_2-conv.bin"; +const char *ida_2_n_2_conv_bin = "dla34_ctrack/layers/dla_up-ida_2-node_2-conv-conv_offset_mask.bin"; +const char *ida_2_p_3_dcn_bin = "dla34_ctrack/layers/dla_up-ida_2-proj_3-conv.bin"; +const char *ida_2_p_3_conv_bin = "dla34_ctrack/layers/dla_up-ida_2-proj_3-conv-conv_offset_mask.bin"; +const char *ida_2_up_3_deconv_bin = "dla34_ctrack/layers/dla_up-ida_2-up_3.bin"; +const char *ida_2_n_3_dcn_bin = "dla34_ctrack/layers/dla_up-ida_2-node_3-conv.bin"; +const char *ida_2_n_3_conv_bin = "dla34_ctrack/layers/dla_up-ida_2-node_3-conv-conv_offset_mask.bin"; -const char *ida_up_p_1_dcn_bin = "dla34_cnet3d_track/layers/ida_up-proj_1-conv.bin"; -const char *ida_up_p_1_conv_bin = "dla34_cnet3d_track/layers/ida_up-proj_1-conv-conv_offset_mask.bin"; -const char *ida_up_up_1_deconv_bin = "dla34_cnet3d_track/layers/ida_up-up_1.bin"; -const char *ida_up_n_1_dcn_bin = "dla34_cnet3d_track/layers/ida_up-node_1-conv.bin"; -const char *ida_up_n_1_conv_bin = "dla34_cnet3d_track/layers/ida_up-node_1-conv-conv_offset_mask.bin"; -const char *ida_up_p_2_dcn_bin = "dla34_cnet3d_track/layers/ida_up-proj_2-conv.bin"; -const char *ida_up_p_2_conv_bin = "dla34_cnet3d_track/layers/ida_up-proj_2-conv-conv_offset_mask.bin"; -const char *ida_up_up_2_deconv_bin = "dla34_cnet3d_track/layers/ida_up-up_2.bin"; -const char *ida_up_n_2_dcn_bin = "dla34_cnet3d_track/layers/ida_up-node_2-conv.bin"; -const char *ida_up_n_2_conv_bin = "dla34_cnet3d_track/layers/ida_up-node_2-conv-conv_offset_mask.bin"; +const char *ida_up_p_1_dcn_bin = "dla34_ctrack/layers/ida_up-proj_1-conv.bin"; +const char *ida_up_p_1_conv_bin = "dla34_ctrack/layers/ida_up-proj_1-conv-conv_offset_mask.bin"; +const char *ida_up_up_1_deconv_bin = "dla34_ctrack/layers/ida_up-up_1.bin"; +const char *ida_up_n_1_dcn_bin = "dla34_ctrack/layers/ida_up-node_1-conv.bin"; +const char *ida_up_n_1_conv_bin = "dla34_ctrack/layers/ida_up-node_1-conv-conv_offset_mask.bin"; +const char *ida_up_p_2_dcn_bin = "dla34_ctrack/layers/ida_up-proj_2-conv.bin"; +const char *ida_up_p_2_conv_bin = "dla34_ctrack/layers/ida_up-proj_2-conv-conv_offset_mask.bin"; +const char *ida_up_up_2_deconv_bin = "dla34_ctrack/layers/ida_up-up_2.bin"; +const char *ida_up_n_2_dcn_bin = "dla34_ctrack/layers/ida_up-node_2-conv.bin"; +const char *ida_up_n_2_conv_bin = "dla34_ctrack/layers/ida_up-node_2-conv-conv_offset_mask.bin"; -const char *hm_conv1_bin = "dla34_cnet3d_track/layers/hm-0.bin"; -const char *hm_conv2_bin = "dla34_cnet3d_track/layers/hm-2.bin"; -const char *wh_conv1_bin = "dla34_cnet3d_track/layers/wh-0.bin"; -const char *wh_conv2_bin = "dla34_cnet3d_track/layers/wh-2.bin"; -const char *reg_conv1_bin = "dla34_cnet3d_track/layers/reg-0.bin"; -const char *reg_conv2_bin = "dla34_cnet3d_track/layers/reg-2.bin"; -const char *track_conv1_bin = "dla34_cnet3d_track/layers/tracking-0.bin"; -const char *track_conv2_bin = "dla34_cnet3d_track/layers/tracking-2.bin"; -const char *dep_conv1_bin = "dla34_cnet3d_track/layers/dep-0.bin"; -const char *dep_conv2_bin = "dla34_cnet3d_track/layers/dep-2.bin"; -const char *rot_conv1_bin = "dla34_cnet3d_track/layers/rot-0.bin"; -const char *rot_conv2_bin = "dla34_cnet3d_track/layers/rot-2.bin"; -const char *dim_conv1_bin = "dla34_cnet3d_track/layers/dim-0.bin"; -const char *dim_conv2_bin = "dla34_cnet3d_track/layers/dim-2.bin"; -const char *a_off_conv1_bin = "dla34_cnet3d_track/layers/amodel_offset-0.bin"; -const char *a_off_conv2_bin = "dla34_cnet3d_track/layers/amodel_offset-2.bin"; +const char *hm_conv1_bin = "dla34_ctrack/layers/hm-0.bin"; +const char *hm_conv2_bin = "dla34_ctrack/layers/hm-2.bin"; +const char *wh_conv1_bin = "dla34_ctrack/layers/wh-0.bin"; +const char *wh_conv2_bin = "dla34_ctrack/layers/wh-2.bin"; +const char *reg_conv1_bin = "dla34_ctrack/layers/reg-0.bin"; +const char *reg_conv2_bin = "dla34_ctrack/layers/reg-2.bin"; +const char *track_conv1_bin = "dla34_ctrack/layers/tracking-0.bin"; +const char *track_conv2_bin = "dla34_ctrack/layers/tracking-2.bin"; +const char *dep_conv1_bin = "dla34_ctrack/layers/dep-0.bin"; +const char *dep_conv2_bin = "dla34_ctrack/layers/dep-2.bin"; +const char *rot_conv1_bin = "dla34_ctrack/layers/rot-0.bin"; +const char *rot_conv2_bin = "dla34_ctrack/layers/rot-2.bin"; +const char *dim_conv1_bin = "dla34_ctrack/layers/dim-0.bin"; +const char *dim_conv2_bin = "dla34_ctrack/layers/dim-2.bin"; +const char *a_off_conv1_bin = "dla34_ctrack/layers/amodel_offset-0.bin"; +const char *a_off_conv2_bin = "dla34_ctrack/layers/amodel_offset-2.bin"; const char *output_bin[]={ -"dla34_cnet3d_track/debug/hm.bin", -"dla34_cnet3d_track/debug/wh.bin", -"dla34_cnet3d_track/debug/reg.bin", -"dla34_cnet3d_track/debug/tracking.bin", -"dla34_cnet3d_track/debug/dep.bin", -"dla34_cnet3d_track/debug/rot.bin", -"dla34_cnet3d_track/debug/dim.bin", -"dla34_cnet3d_track/debug/amodel_offset.bin"}; -// const char *output_bin = "dla34_cnet3d_track/debug/base-level0-2.bin"; +"dla34_ctrack/debug/hm.bin", +"dla34_ctrack/debug/wh.bin", +"dla34_ctrack/debug/reg.bin", +"dla34_ctrack/debug/tracking.bin", +"dla34_ctrack/debug/dep.bin", +"dla34_ctrack/debug/rot.bin", +"dla34_ctrack/debug/dim.bin", +"dla34_ctrack/debug/amodel_offset.bin"}; +// const char *output_bin = "dla34_ctrack/debug/base-level0-2.bin"; int main() { - downloadWeightsifDoNotExist("dla34_cnet3d_track/debug/input.bin", "dla34_cnet3d_track", "https://cloud.hipert.unimore.it/s/rjNfgGL9FtAXLHp/download"); + downloadWeightsifDoNotExist("dla34_ctrack/debug/input.bin", "dla34_ctrack", "https://cloud.hipert.unimore.it/s/rjNfgGL9FtAXLHp/download"); // Network layout // tk::dnn::dataDim_t dim_in0(1, 3, 512, 512, 1); @@ -570,7 +570,7 @@ int main() net.print(); //convert network to tensorRT - tk::dnn::NetworkRT netRT(&net, net.getNetworkRTName("dla34_cnet3d_track")); + tk::dnn::NetworkRT netRT(&net, net.getNetworkRTName("dla34_ctrack")); tk::dnn::dataDim_t dim1 = dim_in0; //input dim printCenteredTitle(" CUDNN inference ", '=', 30);