Commit 9f8da9dc authored by wanghailong's avatar wanghailong

增加gdb调试,增加初始化项

parent 683ccfa0
...@@ -3,4 +3,5 @@ ...@@ -3,4 +3,5 @@
/.vscode /.vscode
*.mp4 *.mp4
*.md~ *.md~
/yolov3/configs/models /yolov3/configs/models
\ No newline at end of file /data
\ No newline at end of file
...@@ -6,7 +6,7 @@ link_directories(${MYPROJECT_DIR}) ...@@ -6,7 +6,7 @@ link_directories(${MYPROJECT_DIR})
#set(CMAKE_BUILD_TYPE "Debug") #set(CMAKE_BUILD_TYPE "Debug")
set(CMAKE_BUILD_TYPE "Release") set(CMAKE_BUILD_TYPE "Release")
set (CMAKE_CXX_FLAGS "-O0 -march=native") set (CMAKE_CXX_FLAGS "-O0 -march=native -Wall -g2 -ggdb")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -g -Wno-write-strings") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -g -Wno-write-strings")
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath -Wl,$ORIGIN") set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath -Wl,$ORIGIN")
......
...@@ -43,8 +43,10 @@ bool DetectAnomaly::build_model(cv::Mat img){ ...@@ -43,8 +43,10 @@ bool DetectAnomaly::build_model(cv::Mat img){
} }
bool DetectAnomaly::build_model(config cfg, cv::Mat img){ bool DetectAnomaly::build_model(config cfg, cv::Mat img){
cv::Rect rect(0,img.rows - cfg.image_height,cfg.image_width,cfg.image_height); //cv::Rect rect(0,img.rows - cfg.image_height,cfg.image_width,cfg.image_height);
cv::Rect rect(cfg.rect_x,cfg.rect_y,cfg.image_width,cfg.image_height);
img = img(rect); img = img(rect);
//cv::imwrite("cut_img.jpg",img);
//cv::resize(img, img,cv::Size(2400*0.25, 910*0.25), cv::INTER_CUBIC); //cv::resize(img, img,cv::Size(2400*0.25, 910*0.25), cv::INTER_CUBIC);
cv::resize(img, img,cv::Size(cfg.image_width * cfg.input_resize, cfg.image_height * cfg.input_resize), cv::INTER_CUBIC); cv::resize(img, img,cv::Size(cfg.image_width * cfg.input_resize, cfg.image_height * cfg.input_resize), cv::INTER_CUBIC);
//myimg = &img; //myimg = &img;
...@@ -81,7 +83,8 @@ bool DetectAnomaly::detectAnomaly(cv::Mat img, vector<vector<int>>* resultLocati ...@@ -81,7 +83,8 @@ bool DetectAnomaly::detectAnomaly(cv::Mat img, vector<vector<int>>* resultLocati
bool DetectAnomaly::detectAnomaly(config cfg, cv::Mat img, vector<vector<int>>* resultLocation) bool DetectAnomaly::detectAnomaly(config cfg, cv::Mat img, vector<vector<int>>* resultLocation)
{ {
//cv::Rect rect(0,610,2400,910); //cv::Rect rect(0,610,2400,910);
cv::Rect rect(0,img.rows - cfg.image_height,cfg.image_width,cfg.image_height); //cv::Rect rect(0,img.rows - cfg.image_height,cfg.image_width,cfg.image_height);
cv::Rect rect(cfg.rect_x,cfg.rect_y,cfg.image_width,cfg.image_height);
img = img(rect); img = img(rect);
//cv::resize(img, img,cv::Size(2400*0.25, 910*0.25), cv::INTER_CUBIC); //cv::resize(img, img,cv::Size(2400*0.25, 910*0.25), cv::INTER_CUBIC);
cv::resize(img, img,cv::Size(cfg.image_width * cfg.input_resize, cfg.image_height * cfg.input_resize), cv::INTER_CUBIC); cv::resize(img, img,cv::Size(cfg.image_width * cfg.input_resize, cfg.image_height * cfg.input_resize), cv::INTER_CUBIC);
...@@ -292,7 +295,7 @@ DetectAnomaly::DetectAnomaly(config cfg) : cfgAnomaly(cfg) ...@@ -292,7 +295,7 @@ DetectAnomaly::DetectAnomaly(config cfg) : cfgAnomaly(cfg)
opencv_2_myImage(*mask, mymask); opencv_2_myImage(*mask, mymask);
#ifdef DEBUG #ifdef DEBUG
cv::imwrite("mask.jpg", Image1); //cv::imwrite("mask.jpg", Image1);
//cv::waitKey(1); //cv::waitKey(1);
//cvReleaseImage(&Image1); //cvReleaseImage(&Image1);
#endif #endif
......
...@@ -17,12 +17,17 @@ typedef struct ConfigAnomaly ...@@ -17,12 +17,17 @@ typedef struct ConfigAnomaly
int max_fg = 75000; int max_fg = 75000;
int min_fg = 50; int min_fg = 50;
int buffer_length; int buffer_length;
int image_height;
int image_width;
double gmm_long_learn_rate = 0.0001; double gmm_long_learn_rate = 0.0001;
double gmm_short_learn_rate = 0.002; double gmm_short_learn_rate = 0.002;
double input_resize = 0.25; double input_resize = 0.25;
//rect
int rect_x;
int rect_y;
int image_height;
int image_width;
//多边形坐标
int top_left_x; int top_left_x;
int top_left_y; int top_left_y;
int top_right_x; int top_right_x;
......
...@@ -16,33 +16,51 @@ int main() ...@@ -16,33 +16,51 @@ int main()
//init //init
Config yoloconfig; Config yoloconfig;
yoloconfig.file_model_cfg = "/home/zszt/whl/datang/yolov3/configs/yolov3-spp_1batch.cfg"; yoloconfig.file_model_cfg = "/media/6542bc52-3d7a-4bea-b9b6-f9343ca8560f/datang/yolov3/configs/yolov3-spp_1batch.cfg";
yoloconfig.enginepath = "/home/zszt/whl/datang/yolov3/configs/models/p2200/yolov3-spp_final-kINT8-batch1.engine"; yoloconfig.enginepath = "/media/6542bc52-3d7a-4bea-b9b6-f9343ca8560f/datang/yolov3/configs/models/xviver/yolov3-spp_final-kINT8-batch1.engine";
InitCnrt(true,yoloconfig); InitCnrt(true,yoloconfig);
int count = 0; int count = 0;
char test_video[200] = "/home/zszt/whl/test_video/test-6.avi"; char test_video[200] = "../data/vlc-record-2021-03-30-10h59m07s-rtsp___1....mp4";
VideoDetails *_video; VideoDetails *_video;
_video = new VideoDetails(test_video); _video = new VideoDetails(test_video);
cv::Mat qImg; cv::Mat qImg;
//抛洒物 //抛洒物
config opt; config opt;
opt.image_height = 910; // opt.rect_x = 0;
opt.image_width = 2400; // opt.rect_y = 610;
// opt.image_height = 910;
// opt.image_width = 2400;
// opt.buffer_length = 200;
// opt.gmm_learn_frame = 600;
// opt.top_left_x = 1136;
// opt.top_left_y = 3;
// opt.top_right_x = 1340;
// opt.top_right_y = 10;
// opt.bottom_left_x = 198;
// opt.bottom_left_y = 853;
// opt.bottom_right_x = 2168;
// opt.bottom_right_y = 842;
opt.rect_x = 1100;
opt.rect_y = 260;
opt.image_height = 1260;
opt.image_width = 1588;
opt.buffer_length = 200; opt.buffer_length = 200;
opt.gmm_learn_frame = 600; opt.gmm_learn_frame = 600;
opt.top_left_x = 1136; opt.top_left_x = 66;
opt.top_left_y = 3; opt.top_left_y = 15;
opt.top_right_x = 1340; opt.top_right_x = 286;
opt.top_right_y = 10; opt.top_right_y = 2;
opt.bottom_left_x = 198; opt.bottom_left_x = 116;
opt.bottom_left_y = 853; opt.bottom_left_y = 1260;
opt.bottom_right_x = 2168; opt.bottom_right_x = 1582;
opt.bottom_right_y = 842; opt.bottom_right_y = 858;
//DetectAnomaly* detect = new DetectAnomaly(opt); DetectAnomaly* detect = new DetectAnomaly(opt);
DetectAnomaly* detect = new DetectAnomaly(); //DetectAnomaly* detect = new DetectAnomaly();
int pic_num = 0; int pic_num = 0;
#ifdef DEBUG #ifdef DEBUG
//cv::VideoWriter _writer; //cv::VideoWriter _writer;
//_writer.open("alarm.avi", cv::VideoWriter::fourcc('X', 'V', 'I', 'D'), 30, cv::Size(2448*0.25, 2048*0.25), 1); //_writer.open("alarm.avi", cv::VideoWriter::fourcc('X', 'V', 'I', 'D'), 30, cv::Size(2448*0.25, 2048*0.25), 1);
...@@ -52,9 +70,9 @@ int main() ...@@ -52,9 +70,9 @@ int main()
/************************************************************************/ /************************************************************************/
bool obj_left = false; bool obj_left = false;
//calculate time //calculate time
// struct timeval start, end; struct timeval start, end;
// float time = 0; float time = 0;
// gettimeofday(&start, NULL); gettimeofday(&start, NULL);
bool check_build_net = false; bool check_build_net = false;
while (_video->_file.read(qImg)) while (_video->_file.read(qImg))
{ {
...@@ -62,18 +80,19 @@ int main() ...@@ -62,18 +80,19 @@ int main()
float time = 0; float time = 0;
if(!check_build_net){ if(!check_build_net){
gettimeofday(&start, NULL); gettimeofday(&start, NULL);
//check_build_net = detect->build_model(opt,qImg); check_build_net = detect->build_model(opt,qImg);
check_build_net = detect->build_model(qImg); //check_build_net = detect->build_model(qImg);
gettimeofday(&end, NULL); gettimeofday(&end, NULL);
time = (1000000 * (end.tv_sec - start.tv_sec) + end.tv_usec - start.tv_usec) / time = (1000000 * (end.tv_sec - start.tv_sec) + end.tv_usec - start.tv_usec) /
(1000.0); (1000.0);
//cout << "build time = " << time << "ms" << endl; //cout << "build time = " << time << "ms" << endl;
//break;
} }
else{ else{
gettimeofday(&start, NULL); gettimeofday(&start, NULL);
vector<vector<int>> resultLocation; vector<vector<int>> resultLocation;
//obj_left = detect->detectAnomaly(opt,qImg,&resultLocation); obj_left = detect->detectAnomaly(opt,qImg,&resultLocation);
obj_left = detect->detectAnomaly(qImg,&resultLocation); //obj_left = detect->detectAnomaly(qImg,&resultLocation);
gettimeofday(&end, NULL); gettimeofday(&end, NULL);
time = (1000000 * (end.tv_sec - start.tv_sec) + end.tv_usec - start.tv_usec) / time = (1000000 * (end.tv_sec - start.tv_sec) + end.tv_usec - start.tv_usec) /
(1000.0); (1000.0);
...@@ -84,49 +103,85 @@ int main() ...@@ -84,49 +103,85 @@ int main()
printf("alram!!\n"); printf("alram!!\n");
// for(int i = 0; i < resultLocation.size();i++){ for(int i = 0; i < resultLocation.size();i++){
// int x0 = resultLocation[i][0] * 4; int x0 = resultLocation[i][0] * (1.0 / opt.input_resize) + opt.rect_x;
// int y0 = resultLocation[i][1] * 4 + 610; int y0 = resultLocation[i][1] * (1.0 / opt.input_resize) + opt.rect_y;
// int x1 = resultLocation[i][2] * 4; int x1 = resultLocation[i][2] * (1.0 / opt.input_resize) + opt.rect_x;
// int y1 = resultLocation[i][3] * 4 + 610; int y1 = resultLocation[i][3] * (1.0 / opt.input_resize) + opt.rect_y;
// cv::Point p1(x0, y0); cv::Point p1(x0, y0);
// cv::Point p2(x1, y1); cv::Point p2(x1, y1);
// cv::rectangle(qImg, p1, p2, cv::Scalar(0, 255, 0), 2); cv::rectangle(qImg, p1, p2, cv::Scalar(0, 255, 0), 2);
// } }
// stringstream ss1; std::cout << pic_num;
// string outFile; stringstream ss1;
// ss1 << "abanoned_" string outFile;
// << "show" ss1 << "abanoned_"
// << count << "show"
// << ".jpg"; << count
// ss1 >> outFile; << ".jpg";
// cv::imwrite(outFile.c_str(), qImg); ss1 >> outFile;
cv::imwrite(outFile.c_str(), qImg);
// count++; count++;
} }
#endif #endif
} }
pic_num++;
// //yolo_infer // //yolo_infer
vector<cv::Mat>* input_mats = new vector<cv::Mat>; // vector<cv::Mat>* input_mats = new vector<cv::Mat>;
input_mats->push_back(qImg.clone()); // input_mats->push_back(qImg.clone());
std::map<int,Results*> results_map; // std::map<int,Results*> results_map;
Results* results = new Results; // Results* results = new Results;
results_map.insert(std::make_pair(0,results)); // results_map.insert(std::make_pair(0,results));
inference(&results_map,input_mats); // inference(&results_map,input_mats);
delete results_map[0];
delete input_mats; // for(int i = 0; i < input_mats->size(); i ++){
// cv::Mat image = input_mats->at(i).clone();
// auto result = results_map->at(i);
// // if(result->facility.size() == 0){
// // continue;
// // }
// //std::cout << result->facility.size() << "\n";
// for (int i = 0; i < result->facility.size(); i++) {
// int x0 = result->facility[i].location[0];
// int y0 = result->facility[i].location[1];
// int x1 = result->facility[i].location[2];
// int y1 = result->facility[i].location[3];
// cv::Point p1(x0, y0);
// cv::Point p2(x1, y1);
// cv::rectangle(image, p1, p2, cv::Scalar(0, 255, 0), 2);
// stringstream ss;
// ss << round(result->facility[i].prob * 1000) / 1000.0;
// std::string str =
// result->facility[i].facility_name + ":" + ss.str();
// cv::Point p5(x0, y0 + 10);
// cv::putText(image, str, p5, cv::FONT_HERSHEY_SIMPLEX, 0.5,
// cv::Scalar(255, 0, 0), 0.5);
// }
// stringstream ss1;
// string outFile;
// ss1 << "yolov3_"
// << "show"
// << i
// << ".jpg";
// ss1 >> outFile;
// cv::imwrite(outFile.c_str(), image);
// }
// delete results_map[0];
// delete input_mats;
} }
// gettimeofday(&end, NULL); gettimeofday(&end, NULL);
// time = (1000000 * (end.tv_sec - start.tv_sec) + end.tv_usec - start.tv_usec) / time = (1000000 * (end.tv_sec - start.tv_sec) + end.tv_usec - start.tv_usec) /
// (1000.0); (1000.0);
//cout << "total time = " << time << "ms" << endl; cout << "total time = " << time << "ms" << endl;
#ifdef DEBUG #ifdef DEBUG
printf("Finished detec, then release ...\n"); printf("Finished detec, then release ...\n");
#endif #endif
delete _video; //delete _video;
delete detect; delete detect;
//system("pause"); //system("pause");
return 0; return 0;
......
...@@ -6,8 +6,8 @@ project(yolo-trt VERSION 1.0) ...@@ -6,8 +6,8 @@ project(yolo-trt VERSION 1.0)
#set(CMAKE_BUILD_TYPE "Release") #set(CMAKE_BUILD_TYPE "Release")
#set(CMAKE_CXX_COMPILIER "/usr/bin/g++") #set(CMAKE_CXX_COMPILIER "/usr/bin/g++")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3 -Wno-write-strings") #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-write-strings -O0 -Wall -g2 -ggdb")
#set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath -Wl,$ORIGIN") #set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath -Wl,$ORIGIN ")
find_package(OpenCV REQUIRED) find_package(OpenCV REQUIRED)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment