派生自 Algorithm/baseDetector

bug
Scheaven
2021-07-23 2cacbb0be4b0c6591a0a72a57be4a7ed005db762
bug
5个文件已修改
126 ■■■■ 已修改文件
config.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/core/ari_manager.cpp 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/detecter_tools/detector.cpp 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/detecter_tools/model.cpp 114 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/detecter_tools/model.h 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
config.json
@@ -2,7 +2,7 @@
  "so_file_path": "/opt/vasystem/libs/Detect/libdemo.so",
  "runtime": "/opt/vasystem/libs/Detect:/usr/local/cuda-11.1/lib64:",  // 项目所用到的环境
  "param": {
    // "model_path": "/data/disk1/project/model_dump/02_yolo/baseDetect-kFLOAT-batch16.engine" // para里边自己算法可能用到的参数
    // "model_path": "/data/disk1/project/model_dump/02_yolo/03_test.trt", // para里边自己算法可能用到的参数
    "model_path": "/data/disk1/project/model_dump/02_yolo/baseDetetor_small.bin", // para里边自己算法可能用到的参数
    "type":2
  }
src/core/ari_manager.cpp
@@ -8,8 +8,8 @@
AriManager::AriManager()
{
    Config config;
    config.net_type = COMMON;
    // config.net_type = COMMON;
     printf("----0-0-0-0-0-0-----444-------------%d",m_staticStruct::type);
    if(m_staticStruct::type==2)
        config.net_type = SMALL;
    else
src/detecter_tools/detector.cpp
@@ -96,8 +96,8 @@
void Detector::build_net()
{
    if(_config.net_type == COMMON)
        _p_net = std::unique_ptr<Detecter>{new Detecter(_info,_infer_param,0)};
    else{
        _p_net = std::unique_ptr<Detecter>{new Detecter(_info,_infer_param,1)};
    else{
        _p_net = std::unique_ptr<Detecter>{new Detecter(_info,_infer_param,2)};
    }
}
src/detecter_tools/model.cpp
@@ -268,12 +268,72 @@
void Detecter::setOutput(int type)
{
    m_OutputTensors.clear();
    if(type==0)
        for (int i = 0; i < 3; ++i)
    printf("0-0-0-0-0-0------------------%d",type);
    if(type==2)
        for (int i = 0; i < 2; ++i)
        {
            TensorInfo outputTensor;
            outputTensor.numClasses = CLASS_BUM;
            outputTensor.blobName = "yolo_" + std::to_string(i);
            outputTensor.gridSize = (m_InputH / 32) * pow(2, i);
            outputTensor.grid_h = (m_InputH / 32) * pow(2, i);
            outputTensor.grid_w = (m_InputW / 32) * pow(2, i);
            outputTensor.stride = m_InputH / outputTensor.gridSize;
            outputTensor.stride_h = m_InputH / outputTensor.grid_h;
            outputTensor.stride_w = m_InputW / outputTensor.grid_w;
            outputTensor.numBBoxes = 3;
            outputTensor.volume = outputTensor.grid_h* outputTensor.grid_w
                *(outputTensor.numBBoxes*(5 + outputTensor.numClasses));
            if(i==1)
            {
                outputTensor.masks.push_back(1);
                outputTensor.masks.push_back(2);
                outputTensor.masks.push_back(3);
            }
            if(i==0)
            {
                outputTensor.masks.push_back(3);
                outputTensor.masks.push_back(4);
                outputTensor.masks.push_back(5);
            }
            outputTensor.anchors.push_back(10);
            outputTensor.anchors.push_back(14);
            outputTensor.anchors.push_back(23);
            outputTensor.anchors.push_back(27);
            outputTensor.anchors.push_back(37);
            outputTensor.anchors.push_back(58);
            outputTensor.anchors.push_back(81);
            outputTensor.anchors.push_back(82);
            outputTensor.anchors.push_back(135);
            outputTensor.anchors.push_back(169);
            outputTensor.anchors.push_back(344);
            outputTensor.anchors.push_back(319);
            if (m_ClassNames.empty())
            {
                for (uint32_t j=0;j< outputTensor.numClasses;++j)
                {
                    m_ClassNames.push_back(std::to_string(j));
                }
            }
            m_OutputTensors.push_back(outputTensor);
        }
    else
        for (int i = 0; i < 3; ++i)
        {
            TensorInfo outputTensor;
            outputTensor.numClasses = CLASS_BUM;
            outputTensor.blobName = "yolo_" + to_string(i);
            // if (i==0)
            // {
            //     outputTensor.blobName = "139_convolutional_reshape_2";
            // }else if (i==1)
            // {
            //     outputTensor.blobName = "150_convolutional_reshape_2";
            // }else if (i==2)
            // {
            //     outputTensor.blobName = "161_convolutional_reshape_2";
            // }
            outputTensor.gridSize = (m_InputH / 32) * pow(2, 2-i);
            outputTensor.grid_h = (m_InputH / 32) * pow(2, 2-i);
            outputTensor.grid_w = (m_InputW / 32) * pow(2, 2-i);
@@ -319,56 +379,6 @@
            outputTensor.anchors.push_back(243);
            outputTensor.anchors.push_back(459);
            outputTensor.anchors.push_back(401);
            if (m_ClassNames.empty())
            {
                for (uint32_t j=0;j< outputTensor.numClasses;++j)
                {
                    m_ClassNames.push_back(std::to_string(j));
                }
            }
            m_OutputTensors.push_back(outputTensor);
        }
    else
        for (int i = 0; i < 2; ++i)
        {
            TensorInfo outputTensor;
            outputTensor.numClasses = CLASS_BUM;
            outputTensor.blobName = "yolo_" + std::to_string(i);
            outputTensor.gridSize = (m_InputH / 32) * pow(2, i);
            outputTensor.grid_h = (m_InputH / 32) * pow(2, i);
            outputTensor.grid_w = (m_InputW / 32) * pow(2, i);
            outputTensor.stride = m_InputH / outputTensor.gridSize;
            outputTensor.stride_h = m_InputH / outputTensor.grid_h;
            outputTensor.stride_w = m_InputW / outputTensor.grid_w;
            outputTensor.numBBoxes = 3;
            outputTensor.volume = outputTensor.grid_h* outputTensor.grid_w
                *(outputTensor.numBBoxes*(5 + outputTensor.numClasses));
            if(i==1)
            {
                outputTensor.masks.push_back(1);
                outputTensor.masks.push_back(2);
                outputTensor.masks.push_back(3);
            }
            if(i==0)
            {
                outputTensor.masks.push_back(3);
                outputTensor.masks.push_back(4);
                outputTensor.masks.push_back(5);
            }
            outputTensor.anchors.push_back(10);
            outputTensor.anchors.push_back(14);
            outputTensor.anchors.push_back(23);
            outputTensor.anchors.push_back(27);
            outputTensor.anchors.push_back(37);
            outputTensor.anchors.push_back(58);
            outputTensor.anchors.push_back(81);
            outputTensor.anchors.push_back(82);
            outputTensor.anchors.push_back(135);
            outputTensor.anchors.push_back(169);
            outputTensor.anchors.push_back(344);
            outputTensor.anchors.push_back(319);
            if (m_ClassNames.empty())
            {
src/detecter_tools/model.h
@@ -93,7 +93,7 @@
        22, 23, 24, 25, 27, 28, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
        46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
        67, 70, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 84, 85, 86, 87, 88, 89, 90};
    uint32_t m_BatchSize = 10;
    uint32_t m_BatchSize = 1;
    nvinfer1::INetworkDefinition* m_Network;
    nvinfer1::IBuilder* m_Builder ;
    nvinfer1::IHostMemory* m_ModelStream;