Newer
Older
CasicBioRecNew / device / face / CasicFaceRecState.h
Tan Yue on 5 Jun 2022 1 KB 20220605 虹膜注册过程优化
#ifndef CASICFACERECSTATE_H
#define CASICFACERECSTATE_H

#include <QObject>
#include <QDateTime>
#include <QJsonObject>
#include <QJsonArray>
#include <QJsonDocument>

#include "casic/face/CasicFaceInfo.h"
#include "utils/UtilInclude.h"

class CasicFaceRecState : public QObject
{
public:
    ~CasicFaceRecState() {};
    CasicFaceRecState(const CasicFaceRecState&)=delete;
    CasicFaceRecState& operator=(const CasicFaceRecState&)=delete;

    static CasicFaceRecState& getInstance() {
        static CasicFaceRecState instance;
        return instance;
    }

    void initRecognize();
    QString toString();
    QJsonObject toJSON();

    std::string recoginzeId; // 识别过程id
    qint64 timeStamp = 0; // 识别开始时间戳
    qint64 timeStampSucc = 0; // 识别成功时的时间戳

    CasicFaceInfo * faceInfo; // 人脸信息
    QString imgBase64; // 人脸的base64码数据, 用于存库

    qint8 tryCount = 0; // 识别尝试次数
    qint8 noFaceCount = 0; // 连续没有找到人脸次数
    float recogTimeLast = 0.0; // 识别成功耗时

    int state; // 识别状态

    enum FaceRecStateName
    {
        REC_NOT_START = 0,       // 未开始
        REC_DETECT = 1,      // 找到人脸
        REC_ANTI_SPOOFING = 2, // 活体检测结束
        REC_QUALIFY = 3,      // 质量检测结束
        REC_FEATURE_EXTRACT = 4,  // 特征值提取成功
        REC_SEARCH_SUCC = 5, // 人脸库比对成功
        REC_SEARCH_FAIL = 6 // 人脸库比对失败
    };

private:
    CasicFaceRecState();

signals:

};

#endif // CASICFACERECSTATE_H