目標識別探測全景拼接相機程式耗時分析

2021-08-31 23:22:48 字數 2246 閱讀 2673

2023年11月15日

release_x64   x64模式下

全程耗時35ms左右

const cv::mat comframe = mat::zeros(480 * 4, 640 * 18, cv_8uc1);          7ms

const cv::mat colorcomframe = mat::zeros(480 * 4, 640 * 18, cv_8uc3);   24ms

發現分配該記憶體時間太長,

測試cv::mat colorcomframetest = mat::zeros(480 * 4, 640 * 18, cv_8uc3);   19ms

const cv::mat colorcomframetest = mat::zeros(1920, 11520, cv_8uc3);      20ms

cv::mat colormainwindows = mat::zeros(300, 1800, cv_8uc3);  0ms

發現:使用mat方式初始化時比較大的mat型別比較耗時,

改進:使mat型別建構函式方式初始化

memcpy(image.data, pnewimage->buffer, pnewimage->head.iheight* pnewimage->head.iwidth);   0ms

cv::resize(image, resimage, cv::size(800, 600), 0, 0, inter_nearest);    0ms

flip(resimage, resimage, -1);  0ms

cv::resize(colorcomframe, colormainwindows, size(1800, 300), 0, 0, inter_nearest);  0ms

imshow("mainwindows", colormainwindows);   0ms

imshow("view", dst);  一般情況下為0ms,如果選擇範圍太大,則耗時會比較大,可能超過5ms

//顯示雷達掃瞄區域   耗時0到1ms

double beta, beta0;

//    int rhomax = 1125;

double rhomax = copyradar.cols / 2.67;

beta = 3.1415926 * index / 36;

beta0 = beta - 1.134;

point start, end, end0;

start.x = copyradar.cols / 2;

start.y = copyradar.rows / 2;

= 1500 + rhomax * sin(beta);

= 1500 - rhomax * cos(beta);

end.x = start.x + rhomax * sin(beta);

end.y = start.y - rhomax * cos(beta);

end0.x = start.x + rhomax * sin(beta0);

end0.y = start.y - rhomax * cos(beta0);

copyradar.copyto(copyradarline);

line(copyradarline, start, end0, scalar(0, 255, 0), 3);

line(copyradarline, start, end, scalar(0, 255, 0), 3);

imshow("radar", copyradarline);

_cprintf("%d\n\n", (int)(t.time()));

imagestitch(index, image1, resimage, colorcomframe);  30ms

下面分析imagestitch中的各個函式:

cv::matchtemplate(image_source, image_template, image_matched, cv::tm_ccorr_normed);    耗時2ms,同時測試該函式在debug模式下耗時為8ms,release模式僅為其25%。

std::vectorresult_vec = detector.detect(newframe1);    27ms

draw_boxes(newframe1, result_vec, obj_names, 0, -1, -1);   0ms

object_location(newframe1, result_vec, ©radar);    0ms

目標檢測與目標識別

目標識別 objec recognition 是指明一幅輸入影象中包含哪類目標。其輸入為一幅影象,輸出是該影象中的目標屬於哪個類別 class probability 目標檢測 object detection 除了要告訴輸入影象中包含哪類目標外,還要框出該目標的具體位置 bounding boxe...

AI 目標識別研究

haar like 目標識別 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將 片顯示選擇...

目標識別 評價指標(Iou,mAP,Fps)

一 交並比 物體檢測需要定位出物體的bounding box,就像下面的一樣,我們不僅要定位出車輛的bounding box 我們還要識別出bounding box 裡面的物體就是車輛。對於bounding box的定位精度,有乙個很重要的概念,因為我們演算法不可能百分百跟人工標註的資料完全匹配,因...