VLPR.cpp 1.3 KB
Newer Older
Your Name's avatar
Your Name committed
1
2
3
4
5
#include <VLPR.h>
#include <SimpleLog.h>

namespace migraphxSamples
{
liucong's avatar
liucong committed
6
VLPR::VLPR()
Your Name's avatar
Your Name committed
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
{

}

VLPR::~VLPR()
{
    configurationFile.release();
}

ErrorCode VLPR::Initialize(InitializationParameterOfDB initParamOfDB, InitializationParameterOfSVTR initParamOfSVTR)
{
    // 初始化DB
    initParamOfDB.configFilePath = CONFIG_FILE;
    ErrorCode errorCode=db.Initialize(initParamOfDB);
    if(errorCode!=SUCCESS)
    {
        LOG_ERROR(stdout, "fail to initialize db!\n");
        exit(-1);
    }
    LOG_INFO(stdout, "succeed to initialize db\n");

    // 初始化SVTR
    initParamOfSVTR.configFilePath = CONFIG_FILE;
    errorCode=svtr.Initialize(initParamOfSVTR);
    if(errorCode!=SUCCESS)
    {
        LOG_ERROR(stdout, "fail to initialize svtr!\n");
        exit(-1);
    }
    LOG_INFO(stdout, "succeed to initialize svtr\n");
}

ErrorCode VLPR::Infer(cv::Mat &img, std::vector<std::string> &recTexts, std::vector<float> &recTextScores)
{
    // DB推理
    db.Infer(img,imgLists);

    for (int i = 0; i < imgLists.size(); i++)
    {
        float maxWHRatio = float(imgLists[i].cols) / float(imgLists[i].rows);
        
        // SVTR推理
        svtr.Infer(imgLists[i], recText, recTextScore, maxWHRatio);
        recTexts.push_back(recText);
        recTextScores.push_back(recTextScore);
    }

    return SUCCESS;

}

}