Commit ba6761f1fc1478f699b660bade0ff800c7007fb9

Authored by Hu Chunming
1 parent e3062370

补充日志

jni/VehicleNativeInterface.cpp
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
5 #include "map" 5 #include "map"
6 #include <string> 6 #include <string>
7 #include <string.h> 7 #include <string.h>
  8 +#include <chrono>
8 9
9 #include "../src/village_pic_interface.h" 10 #include "../src/village_pic_interface.h"
10 11
@@ -13,7 +14,7 @@ @@ -13,7 +14,7 @@
13 #include <opencv2/opencv.hpp> 14 #include <opencv2/opencv.hpp>
14 #include "base64.h" 15 #include "base64.h"
15 16
16 -#include "curl/curl.h" 17 +// #include "curl/curl.h"
17 18
18 //dvpp���� 19 //dvpp����
19 #include "dvpp_process.h" 20 #include "dvpp_process.h"
@@ -21,9 +22,9 @@ @@ -21,9 +22,9 @@
21 //#include "img_codec.h" 22 //#include "img_codec.h"
22 23
23 double msecond() { 24 double msecond() {
24 - struct timeval tv;  
25 - gettimeofday(&tv, 0);  
26 - return (tv.tv_sec * 1000.0 + tv.tv_usec / 1000.0); 25 + chrono::time_point<chrono::system_clock, chrono::milliseconds> tpMicro
  26 + = chrono::time_point_cast<chrono::milliseconds>(chrono::system_clock::now());
  27 + return tpMicro.time_since_epoch().count();
27 } 28 }
28 29
29 30
@@ -89,9 +90,9 @@ using namespace std; @@ -89,9 +90,9 @@ using namespace std;
89 * �������� 90 * ��������
90 * */ 91 * */
91 sy_format getImgByteType(int type); 92 sy_format getImgByteType(int type);
92 -size_t write_data(char *ptr, size_t size, size_t nmemb, void *userdata);  
93 -//function to retrieve the image as cv::Mat data type  
94 -cv::Mat curlImg(const char *img_url, int timeout); 93 +// size_t write_data(char *ptr, size_t size, size_t nmemb, void *userdata);
  94 +// //function to retrieve the image as cv::Mat data type
  95 +// cv::Mat curlImg(const char *img_url, int timeout);
95 96
96 /** 97 /**
97 * ȫ�ֱ��� 98 * ȫ�ֱ���
@@ -154,7 +155,12 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI @@ -154,7 +155,12 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI
154 param.log_days = aiEngineParam_logDays; 155 param.log_days = aiEngineParam_logDays;
155 param.log_mem = aiEngineParam_logMem; 156 param.log_mem = aiEngineParam_logMem;
156 157
157 - printf("jni dev_id:%d sdk_path:%s_log_level:%d\n", param.dev_id, param.sdk_path.c_str(), param.log_level); 158 + printf("jni dev_id:%d \n", param.dev_id);
  159 + printf("jni sdk_path:%s_\n", param.sdk_path.c_str());
  160 + printf("jni log_level:%d\n", param.log_level);
  161 + printf("jni log_path:%s\n", param.log_path.c_str());
  162 + printf("jni log_days:%d\n", param.log_days);
  163 + printf("jni log_mem:%ld\n", param.log_mem);
158 164
159 int ret = village_pic_init(&vaHandle, param); 165 int ret = village_pic_init(&vaHandle, param);
160 if (ret != SUCCESS) { 166 if (ret != SUCCESS) {
@@ -310,7 +316,7 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI @@ -310,7 +316,7 @@ JNIEXPORT jint JNICALL Java_com_objecteye_nativeinterface_vehicle_VehicleNativeI
310 printf("jni info:village_pic_analysis failed."); 316 printf("jni info:village_pic_analysis failed.");
311 return -1; 317 return -1;
312 } 318 }
313 - //cout << "VAJNI_TEST va_1batch -> end ...." << endl; 319 + cout << "result size:" << vec_result.size() << endl;
314 320
315 t3 = msecond(); 321 t3 = msecond();
316 //printf("va jni info:process time: %.2f\n", (t3 - t2)); 322 //printf("va jni info:process time: %.2f\n", (t3 - t2));
@@ -678,29 +684,29 @@ sy_format getImgByteType(int type) @@ -678,29 +684,29 @@ sy_format getImgByteType(int type)
678 return syFormat; 684 return syFormat;
679 } 685 }
680 686
681 -//curl writefunction to be passed as a parameter  
682 -// we can't ever expect to get the whole image in one piece,  
683 -// every router / hub is entitled to fragment it into parts  
684 -// (like 1-8k at a time),  
685 -// so insert the part at the end of our stream.  
686 -size_t write_data(char *ptr, size_t size, size_t nmemb, void *userdata)  
687 -{  
688 - vector<uchar> *stream = (vector<uchar>*)userdata;  
689 - size_t count = size * nmemb;  
690 - stream->insert(stream->end(), ptr, ptr + count);  
691 - return count;  
692 -}  
693 -  
694 -//function to retrieve the image as cv::Mat data type  
695 -cv::Mat curlImg(const char *img_url, int timeout = 10)  
696 -{  
697 - vector<uchar> stream;  
698 - CURL *curl = curl_easy_init();  
699 - curl_easy_setopt(curl, CURLOPT_URL, img_url); //the img url  
700 - curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); // pass the writefunction  
701 - curl_easy_setopt(curl, CURLOPT_WRITEDATA, &stream); // pass the stream ptr to the writefunction  
702 - curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout); // timeout if curl_easy hangs,  
703 - CURLcode res = curl_easy_perform(curl); // start curl  
704 - curl_easy_cleanup(curl); // cleanup  
705 - return cv::imdecode(stream, -1); // 'keep-as-is'  
706 -} 687 +// //curl writefunction to be passed as a parameter
  688 +// // we can't ever expect to get the whole image in one piece,
  689 +// // every router / hub is entitled to fragment it into parts
  690 +// // (like 1-8k at a time),
  691 +// // so insert the part at the end of our stream.
  692 +// size_t write_data(char *ptr, size_t size, size_t nmemb, void *userdata)
  693 +// {
  694 +// vector<uchar> *stream = (vector<uchar>*)userdata;
  695 +// size_t count = size * nmemb;
  696 +// stream->insert(stream->end(), ptr, ptr + count);
  697 +// return count;
  698 +// }
  699 +
  700 +// //function to retrieve the image as cv::Mat data type
  701 +// cv::Mat curlImg(const char *img_url, int timeout = 10)
  702 +// {
  703 +// vector<uchar> stream;
  704 +// CURL *curl = curl_easy_init();
  705 +// curl_easy_setopt(curl, CURLOPT_URL, img_url); //the img url
  706 +// curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); // pass the writefunction
  707 +// curl_easy_setopt(curl, CURLOPT_WRITEDATA, &stream); // pass the stream ptr to the writefunction
  708 +// curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout); // timeout if curl_easy hangs,
  709 +// CURLcode res = curl_easy_perform(curl); // start curl
  710 +// curl_easy_cleanup(curl); // cleanup
  711 +// return cv::imdecode(stream, -1); // 'keep-as-is'
  712 +// }
src/PicAnalysis.cpp
@@ -9,19 +9,23 @@ PicAnalysis::PicAnalysis(/* args */) @@ -9,19 +9,23 @@ PicAnalysis::PicAnalysis(/* args */)
9 9
10 PicAnalysis::~PicAnalysis() 10 PicAnalysis::~PicAnalysis()
11 { 11 {
  12 + LOG_INFO("~PicAnalysis()");
12 release(); 13 release();
13 aclFinalize(); 14 aclFinalize();
14 } 15 }
15 16
16 int PicAnalysis::init(VillageParam param) { 17 int PicAnalysis::init(VillageParam param) {
17 18
18 - set_default_logger(LogLevel(param.log_level), "PicAnalysis", param.log_path.c_str(), param.log_mem, param.log_days); 19 + string log_path = param.log_path + "/main.log";
  20 +
  21 + set_default_logger(LogLevel(param.log_level), "PicAnalysis", log_path.c_str(), param.log_mem, param.log_days);
19 22
20 // 输入参数 23 // 输入参数
21 LOG_INFO("dev_id: {}", param.dev_id); 24 LOG_INFO("dev_id: {}", param.dev_id);
22 LOG_INFO("sdk_path: {}", param.sdk_path); 25 LOG_INFO("sdk_path: {}", param.sdk_path);
23 LOG_INFO("log_level: {}", param.log_level); 26 LOG_INFO("log_level: {}", param.log_level);
24 LOG_INFO("log_days: {}", param.log_days); 27 LOG_INFO("log_days: {}", param.log_days);
  28 + LOG_INFO("log_path: {}", log_path);
25 29
26 int dev_id = param.dev_id; 30 int dev_id = param.dev_id;
27 31
@@ -180,13 +184,15 @@ vector&lt;AnalysisResult&gt; PicAnalysis::va_result2AnalysisResult(va_result* result, @@ -180,13 +184,15 @@ vector&lt;AnalysisResult&gt; PicAnalysis::va_result2AnalysisResult(va_result* result,
180 184
181 vector<AnalysisResult> PicAnalysis::analysis_img(vector<sy_img> vec_img){ 185 vector<AnalysisResult> PicAnalysis::analysis_img(vector<sy_img> vec_img){
182 186
  187 + LOG_INFO("vec_img size:{}", vec_img.size());
  188 +
183 vector<AnalysisResult> vec_result; 189 vector<AnalysisResult> vec_result;
184 190
185 const int batch_size = vec_img.size(); 191 const int batch_size = vec_img.size();
186 192
187 int ret = aclrtSetCurrentContext(m_ctx); 193 int ret = aclrtSetCurrentContext(m_ctx);
188 if (SY_SUCCESS != ret) { 194 if (SY_SUCCESS != ret) {
189 - printf("aclrtSetCurrentContext failed!"); 195 + LOG_INFO("aclrtSetCurrentContext failed!");
190 return vec_result; 196 return vec_result;
191 } 197 }
192 198
@@ -196,6 +202,8 @@ vector&lt;AnalysisResult&gt; PicAnalysis::analysis_img(vector&lt;sy_img&gt; vec_img){ @@ -196,6 +202,8 @@ vector&lt;AnalysisResult&gt; PicAnalysis::analysis_img(vector&lt;sy_img&gt; vec_img){
196 m_vehicle_analysis.release_result(result, vec_img.size()); 202 m_vehicle_analysis.release_result(result, vec_img.size());
197 } 203 }
198 204
  205 + LOG_INFO("vec_result size:{}", vec_result.size());
  206 +
199 bool bConsistent = false; 207 bool bConsistent = false;
200 std::vector<RoadInfo> vec_road = m_road_seg_algorithm.detect(vec_img); 208 std::vector<RoadInfo> vec_road = m_road_seg_algorithm.detect(vec_img);
201 if (vec_road.size() == batch_size && vec_result.size() == batch_size) { 209 if (vec_road.size() == batch_size && vec_result.size() == batch_size) {
src/ai_engine_module/RoadSegAnalysis.cpp
@@ -80,6 +80,23 @@ std::vector&lt;RoadInfo&gt; RoadSegAnalysis::detect(vector&lt;sy_img&gt; vec_img){ @@ -80,6 +80,23 @@ std::vector&lt;RoadInfo&gt; RoadSegAnalysis::detect(vector&lt;sy_img&gt; vec_img){
80 return vec_road; 80 return vec_road;
81 } 81 }
82 82
  83 +// void test(){
  84 +// cv::Mat image(cv::Size(640, 360), CV_8UC3, cv::Scalar(0, 0, 0));
  85 +
  86 +// for (int i = 0; i < poly_masks.size(); ++i) {
  87 +// SegInfo seg_info;
  88 +// seg_info.seg_type = region_classes[i];
  89 +// seg_info.vec_pt = poly_masks[i];
  90 +
  91 +// int k = seg_info.seg_type;
  92 +// const cv::Scalar color(seg_colors[k][0], seg_colors[k][1], seg_colors[k][2]);
  93 +// polylines(image, seg_info.vec_pt, true, color, 3, cv::LINE_AA);
  94 +// }
  95 +
  96 +// cv::imwrite("./road.jpg", image);
  97 +// image.release();
  98 +// }
  99 +
83 RoadInfo RoadSegAnalysis::parse_road(rs_result one_result, sy_img src) 100 RoadInfo RoadSegAnalysis::parse_road(rs_result one_result, sy_img src)
84 { 101 {
85 RoadInfo one_road; 102 RoadInfo one_road;
@@ -123,7 +140,7 @@ std::vector&lt;SegInfo&gt; RoadSegAnalysis::parse_direct(rs_result one_result, sy_img @@ -123,7 +140,7 @@ std::vector&lt;SegInfo&gt; RoadSegAnalysis::parse_direct(rs_result one_result, sy_img
123 cv::Mat seg_output = seg_post_process(large_resolution, one_result.direct_seg, combined, poly_masks, region_classes, lanes, cats, x_sort); //m_masks:mask前的结果 poly_masks后的结果 140 cv::Mat seg_output = seg_post_process(large_resolution, one_result.direct_seg, combined, poly_masks, region_classes, lanes, cats, x_sort); //m_masks:mask前的结果 poly_masks后的结果
124 141
125 142
126 - cv::Mat image(cv::Size(640, 360), CV_8UC3, cv::Scalar(0, 0, 0)); 143 + // cv::Mat image(cv::Size(640, 360), CV_8UC3, cv::Scalar(0, 0, 0));
127 144
128 std::vector<SegInfo> vec_road; 145 std::vector<SegInfo> vec_road;
129 for (int i = 0; i < poly_masks.size(); ++i) { 146 for (int i = 0; i < poly_masks.size(); ++i) {
@@ -131,16 +148,15 @@ std::vector&lt;SegInfo&gt; RoadSegAnalysis::parse_direct(rs_result one_result, sy_img @@ -131,16 +148,15 @@ std::vector&lt;SegInfo&gt; RoadSegAnalysis::parse_direct(rs_result one_result, sy_img
131 seg_info.seg_type = region_classes[i]; 148 seg_info.seg_type = region_classes[i];
132 seg_info.vec_pt = poly_masks[i]; 149 seg_info.vec_pt = poly_masks[i];
133 150
134 - int k = seg_info.seg_type;  
135 - const cv::Scalar color(seg_colors[k][0], seg_colors[k][1], seg_colors[k][2]);  
136 -  
137 - polylines(image, seg_info.vec_pt, true, color, 3, cv::LINE_AA);  
138 -  
139 vec_road.push_back(seg_info); 151 vec_road.push_back(seg_info);
  152 +
  153 + // int k = seg_info.seg_type;
  154 + // const cv::Scalar color(seg_colors[k][0], seg_colors[k][1], seg_colors[k][2]);
  155 + // polylines(image, seg_info.vec_pt, true, color, 3, cv::LINE_AA);
140 } 156 }
141 157
142 - cv::imwrite("./direct.jpg", image);  
143 - image.release(); 158 + // cv::imwrite("./direct.jpg", image);
  159 + // image.release();
144 160
145 return vec_road; 161 return vec_road;
146 } 162 }
src/demo/main.cpp
@@ -15,7 +15,7 @@ int main() { @@ -15,7 +15,7 @@ int main() {
15 int ret = village_pic_init(&vaHandle, param); 15 int ret = village_pic_init(&vaHandle, param);
16 16
17 vector<string> vec_path; 17 vector<string> vec_path;
18 - size_t i = 1; 18 + size_t i = 3;
19 // for (i = 1; i < 8; i++) 19 // for (i = 1; i < 8; i++)
20 { 20 {
21 string path = "./img/test_phone"; 21 string path = "./img/test_phone";
src/village_inc.h
@@ -21,7 +21,7 @@ struct VillageParam { @@ -21,7 +21,7 @@ struct VillageParam {
21 // AI_LOG_LEVEL_ERROR = 4, // 重要日志,如结果和严重错误 21 // AI_LOG_LEVEL_ERROR = 4, // 重要日志,如结果和严重错误
22 int log_level{2}; 22 int log_level{2};
23 int log_days{30}; //日志保存周期 23 int log_days{30}; //日志保存周期
24 - std::string log_path{"logs/main.log"}; //日志文件路径 24 + std::string log_path{"logs"}; //日志文件路径
25 unsigned long log_mem{64 * 1024 * 1024}; //每个日志最大大小 25 unsigned long log_mem{64 * 1024 * 1024}; //每个日志最大大小
26 }; 26 };
27 27