更新时间:2023-06-15 GMT+08:00

模型推理

将数据输入模型进行推理,推理结束后将推理结果返回。

接口调用

virtual HiLensEC hilens::Model::Infer(const InferDataVec & inputs, InferDataVec & outputs)

参数说明

表1 参数说明

参数名

参数类型

说明

inputs

InferDataVector,请参见参数类型说明

推理输入数据。

outputs

InferDataVector,请参见参数类型说明

推理输出。

参数类型说明

  • InferDataVec
    模型推理输入输出。
    typedef std::vector<InferData> hilens::InferDataVec
  • InferData
    struct InferData
    {
        unsigned int size;                   // 输出大小
        std::shared_ptr<unsigned char> data; // 数据指针
        /**
         * @brief 构造一个空的模型推理数据
         */
        InferData() : size(0), data(nullptr) {}
    
        /**
         * @brief 从一个cv::Mat构造一个InferData
         * @param img 输入图片
         */
        InferData(const cv::Mat &img);
    
        /**
         * @brief 从一组指针数据构造一个InferData
         * @param data 数据指针,此构造函数会拷贝这部分数据
         * @param size 数据大小(字节)
         */
        InferData(const unsigned char *data, unsigned int size);
    };

返回值

返回值为0即成功,其他即失败,失败响应参数如错误码所示。

如果推理的实际输入与模型输入大小不一致,推理将会失败。此时infer的返回值将是一个int的错误码,日志会报出错误信息,开发者可以通过错误信息来定位错误。