Commit 15756629c3214fb8bb87eb61e3a35cb2b97ca1ef
1 parent
f3d83919
添加clothes算法
Showing
6 changed files
with
106 additions
and
14 deletions
src/PicAnalysis.cpp
@@ -27,9 +27,13 @@ int PicAnalysis::init(int dev_id) { | @@ -27,9 +27,13 @@ int PicAnalysis::init(int dev_id) { | ||
27 | return -1; | 27 | return -1; |
28 | } | 28 | } |
29 | 29 | ||
30 | - ACL_CALL(aclrtCreateContext(&m_ctx, 0), ACL_ERROR_NONE, SY_FAILED); | ||
31 | - ACL_CALL(aclrtSetCurrentContext(m_ctx), ACL_ERROR_NONE, SY_FAILED); | 30 | + ret = m_clothes_algorithm.init(dev_id); |
31 | + if(0 != ret){ | ||
32 | + return -1; | ||
33 | + } | ||
32 | 34 | ||
35 | + ACL_CALL(aclrtCreateContext(&m_ctx, 0), ACL_ERROR_NONE, SY_FAILED); | ||
36 | + ACL_CALL(aclrtSetCurrentContext(m_ctx), ACL_ERROR_NONE, SY_FAILED); | ||
33 | ACL_CALL(aclrtCreateStream(&stream), ACL_SUCCESS, SY_FAILED); | 37 | ACL_CALL(aclrtCreateStream(&stream), ACL_SUCCESS, SY_FAILED); |
34 | m_dvpp = new DvppProcess(); | 38 | m_dvpp = new DvppProcess(); |
35 | m_dvpp->InitResource(stream); | 39 | m_dvpp->InitResource(stream); |
@@ -39,6 +43,8 @@ int PicAnalysis::init(int dev_id) { | @@ -39,6 +43,8 @@ int PicAnalysis::init(int dev_id) { | ||
39 | 43 | ||
40 | int PicAnalysis::analysis_sync(vector<string> vec_file_path){ | 44 | int PicAnalysis::analysis_sync(vector<string> vec_file_path){ |
41 | 45 | ||
46 | + ACL_CALL(aclrtSetCurrentContext(m_ctx), ACL_ERROR_NONE, SY_FAILED); | ||
47 | + | ||
42 | const int batch_size = vec_file_path.size(); | 48 | const int batch_size = vec_file_path.size(); |
43 | 49 | ||
44 | vector<sy_img> vec_img; | 50 | vector<sy_img> vec_img; |
@@ -71,7 +77,7 @@ int PicAnalysis::analysis_sync(vector<string> vec_file_path){ | @@ -71,7 +77,7 @@ int PicAnalysis::analysis_sync(vector<string> vec_file_path){ | ||
71 | vec_img.push_back(img); | 77 | vec_img.push_back(img); |
72 | } | 78 | } |
73 | 79 | ||
74 | - // m_vehicle_analysis.detect(vec_img); | 80 | + m_vehicle_analysis.detect(vec_img); |
75 | 81 | ||
76 | vector<HeadTailResult> head_tail_result; | 82 | vector<HeadTailResult> head_tail_result; |
77 | ret = m_head_tail_algorithm.detect(vec_img, head_tail_result); | 83 | ret = m_head_tail_algorithm.detect(vec_img, head_tail_result); |
@@ -79,6 +85,8 @@ int PicAnalysis::analysis_sync(vector<string> vec_file_path){ | @@ -79,6 +85,8 @@ int PicAnalysis::analysis_sync(vector<string> vec_file_path){ | ||
79 | LOG_ERROR("m_head_tail_algorithm failed!"); | 85 | LOG_ERROR("m_head_tail_algorithm failed!"); |
80 | head_tail_result.clear(); | 86 | head_tail_result.clear(); |
81 | } | 87 | } |
88 | + | ||
89 | + m_clothes_algorithm.detect(vec_img); | ||
82 | 90 | ||
83 | 91 | ||
84 | return 0; | 92 | return 0; |
src/PicAnalysis.h
1 | #include "./ai_engine_module/include.h" | 1 | #include "./ai_engine_module/include.h" |
2 | #include "./ai_engine_module/VehicleAnalysis.h" | 2 | #include "./ai_engine_module/VehicleAnalysis.h" |
3 | #include "./ai_engine_module/VehicleHeadTail.h" | 3 | #include "./ai_engine_module/VehicleHeadTail.h" |
4 | +#include "./ai_engine_module/VidClothes.h" | ||
4 | 5 | ||
5 | using namespace std; | 6 | using namespace std; |
6 | 7 | ||
@@ -25,6 +26,7 @@ private: | @@ -25,6 +26,7 @@ private: | ||
25 | 26 | ||
26 | VehicleAnalysis m_vehicle_analysis; | 27 | VehicleAnalysis m_vehicle_analysis; |
27 | VehicleHeadTail m_head_tail_algorithm; | 28 | VehicleHeadTail m_head_tail_algorithm; |
29 | + VidClothes m_clothes_algorithm; | ||
28 | }; | 30 | }; |
29 | 31 | ||
30 | 32 |
src/ai_engine_module/VehicleAnalysis.cpp
@@ -57,13 +57,12 @@ int VehicleAnalysis::init(int devId, int max_batch_size) { | @@ -57,13 +57,12 @@ int VehicleAnalysis::init(int devId, int max_batch_size) { | ||
57 | param.models_Path="./models/vehicle_analysis/"; //所有模型的地址 | 57 | param.models_Path="./models/vehicle_analysis/"; //所有模型的地址 |
58 | 58 | ||
59 | cout << "va_init start " << endl; | 59 | cout << "va_init start " << endl; |
60 | + // 内部有 ctx | ||
60 | int ret = va_init(&m_handle, param); | 61 | int ret = va_init(&m_handle, param); |
61 | if (ret != 0) { | 62 | if (ret != 0) { |
62 | return -1; | 63 | return -1; |
63 | } | 64 | } |
64 | 65 | ||
65 | - ACL_CALL(aclrtCreateContext(&ctx, devId), ACL_ERROR_NONE, SY_FAILED); | ||
66 | - | ||
67 | cout << "va_init success " << endl; | 66 | cout << "va_init success " << endl; |
68 | return 0; | 67 | return 0; |
69 | } | 68 | } |
@@ -83,7 +82,6 @@ int VehicleAnalysis::detect(vector<sy_img> vec_img) { | @@ -83,7 +82,6 @@ int VehicleAnalysis::detect(vector<sy_img> vec_img) { | ||
83 | } | 82 | } |
84 | } | 83 | } |
85 | 84 | ||
86 | - ACL_CALL(aclrtSetCurrentContext(ctx), ACL_ERROR_NONE, SY_FAILED); | ||
87 | int ret = va_batch(m_handle, vec_img.data(), batch_size, result); | 85 | int ret = va_batch(m_handle, vec_img.data(), batch_size, result); |
88 | 86 | ||
89 | for (int b = 0; b < batch_size; b++) | 87 | for (int b = 0; b < batch_size; b++) |
@@ -615,13 +613,7 @@ int VehicleAnalysis::detect(vector<sy_img> vec_img) { | @@ -615,13 +613,7 @@ int VehicleAnalysis::detect(vector<sy_img> vec_img) { | ||
615 | } | 613 | } |
616 | 614 | ||
617 | void VehicleAnalysis::release(){ | 615 | void VehicleAnalysis::release(){ |
618 | - if(ctx){ | ||
619 | - aclrtSetCurrentContext(ctx); | ||
620 | - aclrtDestroyContext(ctx); | ||
621 | - } | ||
622 | - | ||
623 | if (m_handle) { | 616 | if (m_handle) { |
624 | va_release(&m_handle); | 617 | va_release(&m_handle); |
625 | } | 618 | } |
626 | - | ||
627 | } | 619 | } |
src/ai_engine_module/VehicleAnalysis.h
src/ai_engine_module/VidClothes.cpp
0 → 100644
1 | +#include "VidClothes.h" | ||
2 | + | ||
3 | +VidClothes::VidClothes(/* args */) | ||
4 | +{ | ||
5 | +} | ||
6 | + | ||
7 | +VidClothes::~VidClothes() | ||
8 | +{ | ||
9 | + release(); | ||
10 | +} | ||
11 | + | ||
12 | +int VidClothes::init(int devId){ | ||
13 | + ACL_CALL(aclrtCreateContext(&ctx, devId), SY_SUCCESS, SY_FAILED); | ||
14 | + | ||
15 | + vidclothes_param param; | ||
16 | + param.modelNames = "./models/vid_clothes/vidClothes0325_310P.om"; | ||
17 | + param.thresld = 0.0; | ||
18 | + param.devId = 0; | ||
19 | + | ||
20 | + cout << "vidclothes_init start " << endl; | ||
21 | + int ret = vidclothes_init(&m_handle, param); | ||
22 | + if (ret != 0) { | ||
23 | + return -1; | ||
24 | + } | ||
25 | + | ||
26 | + cout << "vidclothes_init success " << endl; | ||
27 | + | ||
28 | + return SY_SUCCESS; | ||
29 | +} | ||
30 | + | ||
31 | +int VidClothes::detect(vector<sy_img> vec_img){ | ||
32 | + | ||
33 | + ACL_CALL(aclrtSetCurrentContext(ctx), SY_SUCCESS, SY_FAILED); | ||
34 | + | ||
35 | + const int batchsize = vec_img.size(); | ||
36 | + vidclothes_result * results = new vidclothes_result[batchsize]; | ||
37 | + | ||
38 | + int ret = SY_FAILED; | ||
39 | + | ||
40 | + do | ||
41 | + { | ||
42 | + ret = vidclothes_batch(m_handle, vec_img.data(), batchsize, results); | ||
43 | + if (SY_SUCCESS != ret) { | ||
44 | + printf("vidclothesClassification process failed!"); | ||
45 | + break; | ||
46 | + } | ||
47 | + | ||
48 | + for(int batchIdx = 0;batchIdx<batchsize;batchIdx++) { | ||
49 | + printf("index:%d,confidence:%f\n",results[batchIdx].index,results[batchIdx].score); | ||
50 | + } | ||
51 | + } while (0); | ||
52 | + | ||
53 | + if (results) { | ||
54 | + delete [] results; | ||
55 | + } | ||
56 | + | ||
57 | + return ret; | ||
58 | +} | ||
59 | + | ||
60 | +void VidClothes::release() { | ||
61 | + if(ctx){ | ||
62 | + aclrtSetCurrentContext(ctx); | ||
63 | + aclrtDestroyContext(ctx); | ||
64 | + } | ||
65 | + | ||
66 | + if (m_handle) { | ||
67 | + vidclothes_release(&m_handle); | ||
68 | + } | ||
69 | +} | ||
0 | \ No newline at end of file | 70 | \ No newline at end of file |
src/ai_engine_module/VidClothes.h
0 → 100644
1 | +#include "include.h" | ||
2 | +#include "vid_clothes.h" | ||
3 | + | ||
4 | +class VidClothes | ||
5 | +{ | ||
6 | +private: | ||
7 | + /* data */ | ||
8 | +public: | ||
9 | + VidClothes(/* args */); | ||
10 | + ~VidClothes(); | ||
11 | + | ||
12 | + int init(int devId); | ||
13 | + | ||
14 | + int detect(vector<sy_img> vec_img); | ||
15 | + | ||
16 | +private: | ||
17 | + void release(); | ||
18 | + | ||
19 | +private: | ||
20 | + void* m_handle{nullptr}; | ||
21 | + aclrtContext ctx{nullptr}; | ||
22 | +}; | ||
23 | + |