Real-ESRGAN超分辨率安装部署(亲测可用)

一、安装

  1. 把项目克隆到本地

git clone https://github.com/xinntao/Real-ESRGAN.git cd Real-ESRGAN

      2.安装各种依赖

# 安装 basicsr - https://github.com/xinntao/BasicSR

# 我们使用BasicSR来训练以及推断

pip install basicsr

# facexlib和gfpgan是用来增强人脸的

pip install facexlib

pip install gfpgan

pip install -r requirements.txt

python setup.py develop

注意:pytrorch和下载

下载地址:https://download.pytorch.org/whl/torch_stable.html

torch 我使用的是下面的版本

pip install torch-1.12.1+cu113-cp38-cp38-win_amd64.whl

pip install torchvision-0.13.1+cu113-cp38-cp38-win_amd64.whl

二、普通图片

下载我们训练好的模型: RealESRGAN_x4plus.pth

wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth -P weights

推理:

python inference_realesrgan.py -n RealESRGAN_x4plus -i inputs --face_enhance

结果在result文件夹

三、动画图片

训练好的模型: RealESRGAN_x4plus_anime_6B

有关waifu2x的更多信息和对比在anime_model.md中。

# 下载模型

wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.2.4/RealESRGAN_x4plus_anime_6B.pth -P weights

# 推断

python inference_realesrgan.py -n RealESRGAN_x4plus_anime_6B -i inputs

结果在result文件夹

四、Python 脚本的用法

  1. 虽然你使用了 X4 模型,但是你可以 输出任意尺寸比例的图片,只要实用了 outscale 参数. 程序会进一步对模型的输出图像进行缩放。
  2. Usage: python inference_realesrgan.py -n RealESRGAN_x4plus -i infile -o outfile [options]...
    
    A common command: python inference_realesrgan.py -n RealESRGAN_x4plus -i infile --outscale 3.5 --face_enhance
    
      -h                   show this help
      -i --input           Input image or folder. Default: inputs
      -o --output          Output folder. Default: results
      -n --model_name      Model name. Default: RealESRGAN_x4plus
      -s, --outscale       The final upsampling scale of the image. Default: 4
      --suffix             Suffix of the restored image. Default: out
      -t, --tile           Tile size, 0 for no tile during testing. Default: 0
      --face_enhance       Whether to use GFPGAN to enhance face. Default: False
      --fp32               Whether to use half precision during inference. Default: False
      --ext                Image extension. Options: auto | jpg | png, auto means using the same extension as inputs. Default: auto
要在C++中使用TensorRT部署Real-ESRGAN ONNX模型并输出Mat,您需要执行以下步骤: 1. 加载ONNX模型并创建TensorRT引擎。 2. 准备输入数据并填充输入张量。 3. 创建输出张量并分配内存。 4. 执行推理。 5. 从输出张量中获取结果并将其转换为OpenCV Mat格式。 以下是一个简单的代码示例,展示了如何使用TensorRT部署Real-ESRGAN ONNX模型并输出Mat: ```c++ #include <NvInfer.h> #include <NvOnnxParser.h> #include <opencv2/opencv.hpp> using namespace nvinfer1; using namespace nvonnxparser; using namespace cv; int main(int argc, char** argv) { // Step 1: Load ONNX model and create TensorRT engine IBuilder* builder = createInferBuilder(gLogger); INetworkDefinition* network = builder->createNetworkV2(0U); IParser* parser = createParser(*network, gLogger); parser->parseFromFile("real_esrgan.onnx", -1); builder->setMaxBatchSize(1); builder->setMaxWorkspaceSize(1 << 20); ICudaEngine* engine = builder->buildCudaEngine(*network); parser->destroy(); // Step 2: Prepare input data and fill input tensor float inputData[3 * 256 * 256]; // Fill inputData with your input data ITensor* input = network->getInput(0); cudaMemcpy(input->getMutableDataPointer(), inputData, input->getDimensions().numel() * sizeof(float), cudaMemcpyHostToDevice); // Step 3: Create output tensor and allocate memory ITensor* output = network->getOutput(0); float* outputData = new float[output->getDimensions().numel()]; cudaMemcpy(outputData, output->getDataPointer(), output->getDimensions().numel() * sizeof(float), cudaMemcpyDeviceToHost); // Step 4: Execute inference IExecutionContext* context = engine->createExecutionContext(); context->execute(1, &input); // Step 5: Get results and convert to OpenCV Mat format Mat result(output->getDimensions().d[2], output->getDimensions().d[3], CV_32FC3, outputData); result.convertTo(result, CV_8UC3, 255.0); // Do something with the result... // Cleanup delete[] outputData; context->destroy(); engine->destroy(); network->destroy(); builder->destroy(); } ``` 请注意,此示例仅提供了TensorRT部署Real-ESRGAN ONNX模型并输出Mat的基本步骤。您需要根据具体情况进行调整和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值