Add stats

Signed-off-by: Micaela Verucchi <micaelaverucchi@gmail.com>
This commit is contained in:
Micaela Verucchi
2020-07-03 18:45:20 +02:00
parent 79cd96de6f
commit b4c8c2bbad
3 changed files with 22 additions and 9 deletions
+14 -6
View File
@@ -94,6 +94,7 @@ int main(int argc, char *argv[]) {
cv::Mat frame;
std::vector<cv::Mat> batch_frame;
std::vector<cv::Mat> batch_dnn_input;
int height = 0, width = 0;
while(gRun) {
batch_dnn_input.clear();
@@ -103,7 +104,8 @@ int main(int argc, char *argv[]) {
cap >> frame;
if(!frame.data)
break;
height = frame.rows;
width = frame.cols;
batch_frame.push_back(frame);
// this will be resized to the net format
@@ -121,13 +123,19 @@ int main(int argc, char *argv[]) {
}
std::cout<<"segmentation end\n";
double mean = 0;
double mean = 0, mean_pre = 0, mean_post = 0;
std::cout<<COL_GREENB<<"\n\nTime stats for size ["<<width<<","<<height<<"] :\n";
// std::cout<<"Min: "<<*std::min_element(segNN.stats.begin(), segNN.stats.end())/n_batch<<" ms\n";
// std::cout<<"Max: "<<*std::max_element(segNN.stats.begin(), segNN.stats.end())/n_batch<<" ms\n";
std::cout<<COL_GREENB<<"\n\nTime stats:\n";
std::cout<<"Min: "<<*std::min_element(segNN.stats.begin(), segNN.stats.end())/n_batch<<" ms\n";
std::cout<<"Max: "<<*std::max_element(segNN.stats.begin(), segNN.stats.end())/n_batch<<" ms\n";
for(int i=0; i<segNN.stats.size(); i++) mean += segNN.stats[i]; mean /= segNN.stats.size();
std::cout<<"Avg: "<<mean/n_batch<<" ms\t"<<1000/(mean/n_batch)<<" FPS\n"<<COL_END;
for(int i=0; i<segNN.stats_pre.size(); i++) mean_pre += segNN.stats_pre[i]; mean_pre /= segNN.stats_pre.size();
for(int i=0; i<segNN.stats_post.size(); i++) mean_post += segNN.stats_post[i]; mean_post /= segNN.stats_post.size();
std::cout<<"Avg pre:\t"<<mean_pre/n_batch<<" ms\t"<<1000/(mean_pre/n_batch)<<" FPS\n";
std::cout<<"Avg inf:\t"<<mean/n_batch<<" ms\t"<<1000/(mean/n_batch)<<" FPS\n";
std::cout<<"Avg post:\t"<<mean_post/n_batch<<" ms\t"<<1000/(mean_post/n_batch)<<" FPS\n\n";
std::cout<<"Avg tot:\t"<<(mean_pre + mean_post + mean) /n_batch<<" ms\t"<<1000/((mean_pre + mean_post + mean)/n_batch)<<" FPS\n"<<COL_END;
return 0;
+7 -2
View File
@@ -130,6 +130,8 @@ class SegmentationNN {
public:
int classes = 0;
std::vector<double> stats; /*keeps track of inference times (ms)*/
std::vector<double> stats_pre;
std::vector<double> stats_post;
std::vector<std::string> classesNames;
std::vector<cv::Mat> segmented;
@@ -208,6 +210,7 @@ class SegmentationNN {
preprocess(frames[bi], bi);
}
TKDNN_TSTOP
stats_pre.push_back(t_ns);
}
//do inference
@@ -227,6 +230,7 @@ class SegmentationNN {
for(int bi=0; bi<cur_batches;++bi)
postprocess(bi, apply_colormap);
TKDNN_TSTOP
stats_post.push_back(t_ns);
}
}
@@ -236,8 +240,9 @@ class SegmentationNN {
cv::Mat draw(const int cur_batches=1) {
for(int i=0; i<cur_batches; ++i){
cv::imshow("segmented", segmented[i]);
cv::waitKey(1);
// cv::imshow("segmented", segmented[i]);
// cv::resizeWindow("segmented", cv::Size(512,288));
// cv::waitKey(1);
}
return segmented[0];
}
+1 -1
View File
@@ -88,7 +88,7 @@ int main()
int classes = 20;
// Network layout
tk::dnn::dataDim_t dim(1, 3, 1024, 1024, 1);
tk::dnn::dataDim_t dim(1, 3, 736, 1280, 1);
tk::dnn::Network net(dim);
int bi = 0, di = 0, li = 0, ci = 0;