Train_Identify/nvidia_ascend_engine/common_engine/TransEngine/TransTrainEngine.h

60 lines
1.9 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 列车信息推理结果转换引擎
* */
#ifndef TRANSTRAINENGINE_H
#define TRANSTRAINENGINE_H
#include "AppCommon.h"
#include "MyYaml.h"
#include "EngineBase.h"
#include "EngineFactory.h"
class TransTrainEngine : public ai_matrix::EngineBase
{
public:
TransTrainEngine();
~TransTrainEngine();
APP_ERROR Init() override;
APP_ERROR DeInit() override;
APP_ERROR Process() override;
private:
void InitParam();
//校验车型是否符合验证
bool AuthTransNum(int classId, const std::string &trainNum);
//过滤第二步字段代号的误识别
void FilterSingleData(std::vector<SingleData> &vecObjs, TargetMaxLen iMaxLen);
//属性框内容转换
void TransPro(TransSubData &transSubData, std::map<int, std::vector<SingleData>> &mapLine);
//车号框内容转换
void TransNum(TransSubData &transSubData, std::map<int, std::vector<SingleData>> &mapLine);
//车头框内容转换
void TransHead(TransSubData &transSubData, std::map<int, std::vector<SingleData>> &mapLine);
void RecordNum(const TransSubData &transSubData, const std::shared_ptr<ProcessData> &pProcessData);
bool SaveMiddleNumCsv(const std::vector<pair<string, uint32_t>> &vecNums, const std::shared_ptr<ProcessData> &pProcessData,
int iSourceId);
//push数据到队列队列满时则休眠一段时间再push
void PushData(const std::string &strPort, const std::shared_ptr<ProcessData> &pProcessData);
bool bUseEngine_;
std::string strPort0_;
ai_matrix::ModelConfig modelConfig_;
std::string strResultPath_;
std::vector<std::string> vecClassNames_; // 分类名称集合
std::map<int, bool> mapDataSourceIsEnd_; //[key-数据源id, value-数据是否结束]
std::map<int, std::map<std::string, uint32_t>> mapNumInfo_;
std::map<int, uint32_t> mapPreFrameId_;
int iSkipInterval_;
};
ENGINE_REGIST(TransTrainEngine)
#endif