1
0
Fork 2

优化部分注释内容,重构部分函数名更加符合其作用

LRD_Develop
詹力 2024-01-07 00:19:48 +08:00
parent ce2f195559
commit 326173660f
4 changed files with 42 additions and 12 deletions

View File

@ -51,6 +51,6 @@ public:
void getInfo(cv::Mat &imgl, cv::Mat &imgr, cv::Mat &detBoxes, cv::Mat &info); void getInfo(cv::Mat &imgl, cv::Mat &imgr, cv::Mat &detBoxes, cv::Mat &info);
std::vector<float> pic2cam(int u, int v); std::vector<float> pic2cam(int u, int v);
std::vector<int> muban(cv::Mat &left_image, cv::Mat &right_image, const int *coordinates); std::vector<int> muban(cv::Mat &left_image, cv::Mat &right_image, const int *coordinates);
std::vector<cv::Mat> get_range(); std::vector<cv::Mat> detObjectRanging();
void horizon_estimate(cv::Mat& img, cv::Mat& bboxs,int k); void horizon_estimate(cv::Mat& img, cv::Mat& bboxs,int k);
}; };

View File

@ -1,7 +1,13 @@
/******************** (C) COPYRIGHT 2024 UPBot **********************************
* File Name : detection.cpp
* Current Version : V1.0
* Author : Rockchip & linyuehang
* Date of Issued : 2024.01.07 zhanli@review
* Comments : NPU
********************************************************************************/
#include "detection.h" #include "detection.h"
#include <opencv2/opencv.hpp> #include <opencv2/opencv.hpp>
unsigned char * Detection::load_data(FILE *fp, size_t ofst, size_t sz) unsigned char * Detection::load_data(FILE *fp, size_t ofst, size_t sz)
{ {
unsigned char *data; unsigned char *data;
@ -130,7 +136,7 @@ Detection::Detection()
inputs[0].index = 0; inputs[0].index = 0;
inputs[0].type = RKNN_TENSOR_UINT8; inputs[0].type = RKNN_TENSOR_UINT8;
inputs[0].size = width * height * channel; inputs[0].size = width * height * channel;
inputs[0].fmt = RKNN_TENSOR_NHWC; inputs[0].fmt = RKNN_TENSOR_NHWC;
inputs[0].pass_through = 0; inputs[0].pass_through = 0;
} }

View File

@ -1,3 +1,9 @@
/******************** (C) COPYRIGHT 2024 UPBot **********************************
* File Name : main.cpp
* Current Version : V1.0
* Date of Issued : 2024.01.96 zhanli@review
* Comments : UPbot
********************************************************************************/
#include <iostream> #include <iostream>
#include <stdio.h> #include <stdio.h>
// #include "lidar.h" // #include "lidar.h"
@ -23,12 +29,18 @@ Ranging r(12, 640, 480);
std::queue<std::vector<cv::Mat>> frameInfo; std::queue<std::vector<cv::Mat>> frameInfo;
std::mutex g_mutex; std::mutex g_mutex;
void *ranging(void *args) // ranging线程 /**---------------------------------------------------------------------
* Function : RangingNodeTask
* Description :
* Author : hongchuyuan
* Date : 2023/12/13 zhanli@review 719901725@qq.com
*---------------------------------------------------------------------**/
void *RangingNodeTask(void *args)
{ {
while (true) while (true)
{ {
// std::cout<<" ************ enter ranging *********** "<<std::endl; // std::cout<<" ************ enter ranging *********** "<<std::endl;
std::vector<cv::Mat> result = r.get_range(); std::vector<cv::Mat> result = r.detObjectRanging();
g_mutex.lock(); g_mutex.lock();
for (uchar i = 0; i < frameInfo.size(); i++) // 只保存当前最新的图片帧信息 for (uchar i = 0; i < frameInfo.size(); i++) // 只保存当前最新的图片帧信息
frameInfo.pop(); frameInfo.pop();
@ -40,11 +52,10 @@ void *ranging(void *args) // ranging线程
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
pthread_t tids[1]; // 执行ranging线程 pthread_t tids[1]; // 执行ranging线程
int ret = pthread_create(&tids[0], NULL, ranging, NULL); int ret = pthread_create(&tids[0], NULL, RangingNodeTask, NULL);
while(1){ while(1){
usleep(150000); usleep(150000);
} }
return 0; return 0;
} }

View File

@ -1,3 +1,10 @@
/******************** (C) COPYRIGHT 2024 UPBot **********************************
* File Name : ranging.cpp
* Current Version : V1.0
* Author : Rockchip & linyuehang
* Date of Issued : 2024.01.07 zhanli@review
* Comments : OpenCV
********************************************************************************/
#include <iostream> #include <iostream>
#include <stdio.h> #include <stdio.h>
#include "ranging.h" #include "ranging.h"
@ -297,8 +304,9 @@ Ranging::Ranging(int index, int imgw, int imgh) : //初始化
auto imgSize = Size(imgw, imgh); auto imgSize = Size(imgw, imgh);
Mat r1(3, 3, CV_64F), r2(3, 3, CV_64F), p1(3, 4, CV_64F), p2(3, 4, CV_64F); Mat r1(3, 3, CV_64F), r2(3, 3, CV_64F), p1(3, 4, CV_64F), p2(3, 4, CV_64F);
// 立体校正
stereoRectify(cam_matrix_left.t(), distortion_l, cam_matrix_right.t(), distortion_r, stereoRectify(cam_matrix_left.t(), distortion_l, cam_matrix_right.t(), distortion_r,
imgSize, rotate.t(), trans, r1, r2, p1, p2, q);//立体校正 imgSize, rotate.t(), trans, r1, r2, p1, p2, q);
// 计算无畸变和修正转换映射 // 计算无畸变和修正转换映射
initUndistortRectifyMap(cam_matrix_left.t(), distortion_l, r1, p1, imgSize, CV_32F, mapX1, mapX2); initUndistortRectifyMap(cam_matrix_left.t(), distortion_l, r1, p1, imgSize, CV_32F, mapX1, mapX2);
@ -309,8 +317,13 @@ Ranging::Ranging(int index, int imgw, int imgh) : //初始化
std::cout<< " ******************* CAMERA initialization ********************" << std::endl; std::cout<< " ******************* CAMERA initialization ********************" << std::endl;
} }
/**---------------------------------------------------------------------
std::vector<Mat> Ranging::get_range() * Function : detObjectRanging
* Description :
* Author : hongchuyuan
* Date : 2023/12/13 zhanli@review 719901725@qq.com
*---------------------------------------------------------------------**/
std::vector<Mat> Ranging::detObjectRanging()
{ {
double rang_old, rang_now; double rang_old, rang_now;
@ -378,7 +391,7 @@ std::vector<Mat> Ranging::get_range()
// } // }
} }
// 存储测距信息存储格式距离d宽w高h角度α // 存储测距信息存储格式距离d宽w高h角度alpha
Mat info(detect_result_group.count, 4, CV_32F); Mat info(detect_result_group.count, 4, CV_32F);
// 如果有检测目标 // 如果有检测目标
@ -386,7 +399,7 @@ std::vector<Mat> Ranging::get_range()
{ {
// getInfo()修改为calObjectRanging() // getInfo()修改为calObjectRanging()
// 在这里测量目标的距离并存储到info中 // 在这里测量目标的距离并存储到info中
// 优化: 这个地方重复的将左右视图转换为灰度图浪费CPU的算力 // 优化:这个地方重复的将左右视图转换为灰度图浪费CPU的算力
getInfo(lframe, rframe, detBoxes, info); getInfo(lframe, rframe, detBoxes, info);
//show stereo distance //show stereo distance