mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2025-11-02 12:44:20 +08:00
[Model] Refactor insightface models (#919)
* 重构insightface代码 * 重写insightface example代码 * 重写insightface example代码 * 删除多余代码 * 修改预处理代码 * 修改文档 * 修改文档 * 恢复误删除的文件 * 修改cpp example * 修改cpp example * 测试python代码 * 测试python代码 * 测试python代码 * 测试python代码 * 测试python代码 * 测试python代码 * 测试python代码 * 跑通python代码 * 修复重复初始化的bug * 更新adaface的python代码 * 修复c++重复初始化的问题 * 修复c++重复初始化的问题 * 修复Python重复初始化的问题 * 新增preprocess的几个参数的获取方式 * 修复注释的错误 * 按照要求修改 * 修改文档中的图片为图片压缩包 * 修改编译完成后程序的提示 * 更新错误include * 删除无用文件 * 更新文档
This commit is contained in:
80
fastdeploy/vision/faceid/contrib/insightface/preprocessor.h
Executable file
80
fastdeploy/vision/faceid/contrib/insightface/preprocessor.h
Executable file
@@ -0,0 +1,80 @@
|
||||
// Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
#pragma once
|
||||
#include "fastdeploy/vision/common/processors/transform.h"
|
||||
#include "fastdeploy/vision/common/result.h"
|
||||
|
||||
namespace fastdeploy {
|
||||
namespace vision {
|
||||
|
||||
namespace faceid {
|
||||
/*! @brief Preprocessor object for InsightFaceRecognition serials model.
|
||||
*/
|
||||
class FASTDEPLOY_DECL InsightFaceRecognitionPreprocessor {
|
||||
public:
|
||||
/** \brief Create a preprocessor instance for InsightFaceRecognition serials model
|
||||
*/
|
||||
InsightFaceRecognitionPreprocessor();
|
||||
|
||||
/** \brief Process the input image and prepare input tensors for runtime
|
||||
*
|
||||
* \param[in] images The input image data list, all the elements are returned by cv::imread()
|
||||
* \param[in] outputs The output tensors which will feed in runtime
|
||||
* \return true if the preprocess successed, otherwise false
|
||||
*/
|
||||
bool Run(std::vector<FDMat>* images, std::vector<FDTensor>* outputs);
|
||||
|
||||
/// Get Size
|
||||
std::vector<int> GetSize() { return size_; }
|
||||
|
||||
/// Set size.
|
||||
void SetSize(std::vector<int>& size) { size_ = size; }
|
||||
|
||||
/// Get alpha
|
||||
std::vector<float> GetAlpha() { return alpha_; }
|
||||
|
||||
/// Set alpha.
|
||||
void SetAlpha(std::vector<float>& alpha) { alpha_ = alpha; }
|
||||
|
||||
/// Get beta
|
||||
std::vector<float> GetBeta() { return beta_; }
|
||||
|
||||
/// Set beta.
|
||||
void SetBeta(std::vector<float>& beta) { beta_ = beta; }
|
||||
|
||||
bool GetPermute() { return permute_; }
|
||||
|
||||
/// Set permute.
|
||||
void SetPermute(bool permute) { permute_ = permute; }
|
||||
|
||||
protected:
|
||||
bool Preprocess(FDMat* mat, FDTensor* output);
|
||||
// Argument for image preprocessing step, tuple of (width, height),
|
||||
// decide the target size after resize, default (112, 112)
|
||||
std::vector<int> size_;
|
||||
// Argument for image preprocessing step, alpha values for normalization,
|
||||
// default alpha = {1.f / 127.5f, 1.f / 127.5f, 1.f / 127.5f};
|
||||
std::vector<float> alpha_;
|
||||
// Argument for image preprocessing step, beta values for normalization,
|
||||
// default beta = {-1.f, -1.f, -1.f}
|
||||
std::vector<float> beta_;
|
||||
// Argument for image preprocessing step, whether to swap the B and R channel,
|
||||
// such as BGR->RGB, default true.
|
||||
bool permute_;
|
||||
};
|
||||
|
||||
} // namespace faceid
|
||||
} // namespace vision
|
||||
} // namespace fastdeploy
|
||||
Reference in New Issue
Block a user