From 6f9dffdea0db95e47b88b475fd0467c19cbdb073 Mon Sep 17 00:00:00 2001 From: cmhu <2657262686@qq.com> Date: Mon, 13 Jan 2025 16:04:39 +0800 Subject: [PATCH] 返回prob --- src/PicAnalysis.cpp | 16 ++++++++-------- src/ai_engine_module/MotorPhoneAnalysis.cpp | 16 +++++++++++++--- src/ai_engine_module/MotorPhoneAnalysis.h | 7 ++++++- src/ai_engine_module/MotorRainshedAnalysis.cpp | 12 ++++++++---- src/ai_engine_module/MotorRainshedAnalysis.h | 7 ++++++- src/village_inc.h | 6 ++++-- 6 files changed, 45 insertions(+), 19 deletions(-) diff --git a/src/PicAnalysis.cpp b/src/PicAnalysis.cpp index c5caf89..52a3e81 100644 --- a/src/PicAnalysis.cpp +++ b/src/PicAnalysis.cpp @@ -316,16 +316,16 @@ vector PicAnalysis::analysis_img(vector vec_img){ vector vec_motor_img; vec_motor_img.push_back(img); - vector vec_rainshed_result = m_motor_rainshed_algorithm.detect(vec_motor_img); - if (vec_rainshed_result.size() > 0) - { - result_info.rainshed = vec_rainshed_result[0]; + vector vec_rainshed_result = m_motor_rainshed_algorithm.detect(vec_motor_img); + if (vec_rainshed_result.size() > 0) { + result_info.rainshed = vec_rainshed_result[0].rainshed; + result_info.rainshed_prob = vec_rainshed_result[0].prob; } - vector vec_phone_result = m_motor_phone_algorithm.detect(vec_motor_img); - if (vec_phone_result.size() > 0) - { - result_info.phoning = vec_phone_result[0]; + vector vec_phone_result = m_motor_phone_algorithm.detect(vec_motor_img); + if (vec_phone_result.size() > 0) { + result_info.phoning = vec_phone_result[0].phoning; + result_info.phoning_prob = vec_phone_result[0].prob; } std::vector vec_hcp_result = m_human_car_algorithm.detect(vec_motor_img); diff --git a/src/ai_engine_module/MotorPhoneAnalysis.cpp b/src/ai_engine_module/MotorPhoneAnalysis.cpp index 3520374..cb48601 100644 --- a/src/ai_engine_module/MotorPhoneAnalysis.cpp +++ b/src/ai_engine_module/MotorPhoneAnalysis.cpp @@ -29,9 +29,9 @@ int MotorPhoneAnalysis::init(int devId){ return SY_SUCCESS; } -vector MotorPhoneAnalysis::detect(vector vec_img){ +vector MotorPhoneAnalysis::detect(vector vec_img){ - vector vec_result; + vector vec_result; const int batchsize = vec_img.size(); @@ -55,10 +55,20 @@ vector MotorPhoneAnalysis::detect(vector vec_img){ } for(int batchIdx = 0; batchIdx < batchsize; batchIdx ++){ - printf("debug det num:%d\n",results[batchIdx].objcount); + MotorPhoneResult one_result; + one_result.phoning = -1; + one_result.prob = 0; for (int i = 0; i < results[batchIdx].objcount; i++) { printf(" %d:%.2f \n", results[batchIdx].objinfo[i].index,results[batchIdx].objinfo[i].confidence); + if (results[batchIdx].objinfo[i].index == 1) { + // 骑车打电话 + one_result.phoning = results[batchIdx].objinfo[i].index; + one_result.prob = results[batchIdx].objinfo[i].confidence; + break; + } } + + vec_result.push_back(one_result); } } while (0); diff --git a/src/ai_engine_module/MotorPhoneAnalysis.h b/src/ai_engine_module/MotorPhoneAnalysis.h index 877ab1e..e93b3ec 100644 --- a/src/ai_engine_module/MotorPhoneAnalysis.h +++ b/src/ai_engine_module/MotorPhoneAnalysis.h @@ -1,5 +1,10 @@ #include "include.h" +struct MotorPhoneResult { + int phoning; + float prob; +}; + class MotorPhoneAnalysis { public: @@ -8,7 +13,7 @@ public: int init(int devId); - vector detect(vector vec_img); + vector detect(vector vec_img); private: int release(); diff --git a/src/ai_engine_module/MotorRainshedAnalysis.cpp b/src/ai_engine_module/MotorRainshedAnalysis.cpp index 70b14f0..72452a7 100644 --- a/src/ai_engine_module/MotorRainshedAnalysis.cpp +++ b/src/ai_engine_module/MotorRainshedAnalysis.cpp @@ -29,9 +29,9 @@ int MotorRainshedAnalysis::init(int devId){ return SY_SUCCESS; } -vector MotorRainshedAnalysis::detect(vector vec_img){ +vector MotorRainshedAnalysis::detect(vector vec_img){ - vector vec_result; + vector vec_result; const int batchsize = vec_img.size(); @@ -55,8 +55,12 @@ vector MotorRainshedAnalysis::detect(vector vec_img){ } for(int batchIdx = 0;batchIdx detect(vector vec_img); + vector detect(vector vec_img); private: int release(); diff --git a/src/village_inc.h b/src/village_inc.h index cce03b7..985fe3a 100644 --- a/src/village_inc.h +++ b/src/village_inc.h @@ -37,8 +37,9 @@ typedef struct VehicleInfo { int type; - int vpt_type; + int vpt_type; // person 人;bike 自行车 ; motor 摩托车;tricycle 三轮车;car 汽车; bigbus 大巴;lorry 货车;tractor 拖拉机;midibus 面包/中巴 int rainshed; //是否安装雨棚, 0 有雨棚 1 无雨棚 + float rainshed_prob; int truck_manned; int motor_manned; @@ -46,7 +47,8 @@ typedef struct VehicleInfo { int human_lower_color; int reverse_driving; // 0 正常行驶 1 逆行 -1 未知 - int phoning; // 骑车打电话 + int phoning; // 骑车打电话 1 为是,其他为否 + float phoning_prob; int cross_line; // 压实线, 1 黄实线 2 白实线 -1 其他 int cross_diversion_line; // 压导流线 1 压了 -1 未压 -- libgit2 0.21.4