Skip to content

Commit c7ec14d

Browse files
ChaoIIjiangjiajun
andauthored
[Model] add vsr serials models (#518)
* [Model] add vsr serials models Signed-off-by: ChaoII <[email protected]> * [Model] add vsr serials models Signed-off-by: ChaoII <[email protected]> * fix build problem Signed-off-by: ChaoII <[email protected]> * fix code style Signed-off-by: ChaoII <[email protected]> * modify according to review suggestions Signed-off-by: ChaoII <[email protected]> * modify vsr trt example Signed-off-by: ChaoII <[email protected]> * update sr directory * fix BindPPSR * add doxygen comment * add sr unit test * update model file url Signed-off-by: ChaoII <[email protected]> Co-authored-by: Jason <[email protected]>
1 parent 1ac54c9 commit c7ec14d

40 files changed

+2526
-8
lines changed

.gitignore

+3-1
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,6 @@ coverage
3939
yalc.*
4040
.yalc
4141
examples/vision/collect_quantize_cc.sh
42-
examples/vision/tests_quantize
42+
examples/vision/tests_quantize
43+
fastdeploy/LICENSE
44+
fastdeploy/ThirdPartyNotices.txt

examples/vision/sr/README.md

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# sr 模型部署
2+
3+
FastDeploy目前支持如下超分模型部署
4+
5+
| 模型 | 说明 | 模型格式 | 版本 |
6+
|:-----------------------------------------|:----------------------|:-------|:----------------------------------------------------------------------------------|
7+
| [PaddleGAN/BasicVSR](./basicvsr) | BasicVSR 系列模型 | paddle | [develop](https://github.com/PaddlePaddle/PaddleGAN/blob/develop/docs/zh_CN/tutorials/video_super_resolution.md) |
8+
| [PaddleGAN/EDVR](./edvr) | EDVR 系列模型 | paddle | [develop](https://github.com/PaddlePaddle/PaddleGAN/blob/develop/docs/zh_CN/tutorials/video_super_resolution.md) |
9+
| [PaddleGAN/PP-MSVSR](./ppmsvsr) | PP-MSVSR 系列模型 | paddle | [develop](https://github.com/PaddlePaddle/PaddleGAN/blob/develop/docs/zh_CN/tutorials/video_super_resolution.md) |

examples/vision/sr/basicvsr/README.md

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# BasicVSR模型部署
2+
3+
## 模型版本说明
4+
5+
- [PaddleGAN develop](https://github.com/PaddlePaddle/PaddleGAN)
6+
7+
## 支持模型列表
8+
9+
目前FastDeploy支持如下模型的部署
10+
11+
- [BasicVSR](https://github.com/PaddlePaddle/PaddleGAN/blob/develop/docs/zh_CN/tutorials/video_super_resolution.md)
12+
13+
14+
## 导出部署模型
15+
16+
在部署前,需要先将训练好的BasicVSR导出成部署模型,导出BasicVSR导出模型步骤,参考文档[导出模型](https://github.com/PaddlePaddle/PaddleGAN/blob/develop/docs/zh_CN/tutorials/video_super_resolution.md)
17+
18+
19+
| 模型 | 参数大小 | 精度 | 备注 |
20+
|:----------------------------------------------------------------------------|:-------|:----- | :------ |
21+
| [BasicVSR](https://bj.bcebos.com/paddlehub/fastdeploy/BasicVSR_reds_x4.tgz) | 30.1MB | - |
22+
23+
**注意**:非常不建议在没有独立显卡的设备上运行该模型
24+
25+
## 详细部署文档
26+
27+
- [Python部署](python)
28+
- [C++部署](cpp)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
PROJECT(infer_demo C CXX)
2+
CMAKE_MINIMUM_REQUIRED (VERSION 3.10)
3+
4+
# 指定下载解压后的fastdeploy库路径
5+
option(FASTDEPLOY_INSTALL_DIR "Path of downloaded fastdeploy sdk.")
6+
7+
include(${FASTDEPLOY_INSTALL_DIR}/FastDeploy.cmake)
8+
9+
# 添加FastDeploy依赖头文件
10+
include_directories(${FASTDEPLOY_INCS})
11+
12+
add_executable(infer_demo ${PROJECT_SOURCE_DIR}/infer.cc)
13+
# 添加FastDeploy库依赖
14+
target_link_libraries(infer_demo ${FASTDEPLOY_LIBS})
+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# BasicVSR C++部署示例
2+
3+
本目录下提供`infer.cc`快速完成BasicVSR在CPU/GPU,以及GPU上通过TensorRT加速部署的示例。
4+
5+
在部署前,需确认以下两个步骤
6+
7+
- 1. 软硬件环境满足要求,参考[FastDeploy环境要求](../../../../../docs/cn/build_and_install/download_prebuilt_libraries.md)
8+
- 2. 根据开发环境,下载预编译部署库和samples代码,参考[FastDeploy预编译库](../../../../../docs/cn/build_and_install/download_prebuilt_libraries.md)
9+
以Linux上BasicVSR推理为例,在本目录执行如下命令即可完成编译测试(如若只需在CPU上部署,可在[Fastdeploy C++预编译库](../../../../../docs/cn/build_and_install/download_prebuilt_libraries.md/CPP_prebuilt_libraries.md)下载CPU推理库)
10+
11+
```bash
12+
#下载SDK,编译模型examples代码(SDK中包含了examples代码)
13+
# fastdeploy版本 >= 0.7.0
14+
wget https://bj.bcebos.com/fastdeploy/release/cpp/fastdeploy-linux-x64-gpu-0.7.0.tgz
15+
tar xvf fastdeploy-linux-x64-gpu-0.7.0.tgz
16+
cd fastdeploy-linux-x64-gpu-0.7.0/examples/vision/sr/basicvsr/cpp/
17+
mkdir build && cd build
18+
cmake .. -DFASTDEPLOY_INSTALL_DIR=${PWD}/../../../../../../../fastdeploy-linux-x64-gpu-0.7.0
19+
make -j
20+
21+
# 下载BasicVSR模型文件和测试视频
22+
wget https://bj.bcebos.com/paddlehub/fastdeploy/BasicVSR_reds_x4.tar
23+
tar -xvf BasicVSR_reds_x4.tar
24+
wget https://bj.bcebos.com/paddlehub/fastdeploy/vsr_src.mp4
25+
26+
27+
# CPU推理
28+
./infer_demo BasicVSR_reds_x4 vsr_src.mp4 0 2
29+
# GPU推理
30+
./infer_demo BasicVSR_reds_x4 vsr_src.mp4 1 2
31+
# GPU上TensorRT推理
32+
./infer_demo BasicVSR_reds_x4 vsr_src.mp4 2 2
33+
```
34+
35+
以上命令只适用于Linux或MacOS, Windows下SDK的使用方式请参考:
36+
- [如何在Windows中使用FastDeploy C++ SDK](../../../../../docs/cn/faq/use_sdk_on_windows.md)
37+
38+
## BasicVSR C++接口
39+
40+
### BasicVSR类
41+
42+
```c++
43+
fastdeploy::vision::sr::BasicVSR(
44+
const string& model_file,
45+
const string& params_file = "",
46+
const RuntimeOption& runtime_option = RuntimeOption(),
47+
const ModelFormat& model_format = ModelFormat::PADDLE)
48+
```
49+
50+
BasicVSR模型加载和初始化,其中model_file为导出的Paddle模型格式。
51+
52+
**参数**
53+
54+
> * **model_file**(str): 模型文件路径
55+
> * **params_file**(str): 参数文件路径
56+
> * **runtime_option**(RuntimeOption): 后端推理配置,默认为None,即采用默认配置
57+
> * **model_format**(ModelFormat): 模型格式,默认为Paddle格式
58+
59+
#### Predict函数
60+
61+
> ```c++
62+
> BasicVSR::Predict(std::vector<cv::Mat>& imgs, std::vector<cv::Mat>& results)
63+
> ```
64+
>
65+
> 模型预测接口,输入图像直接输出检测结果。
66+
>
67+
> **参数**
68+
>
69+
> > * **imgs**: 输入视频帧序列,注意需为HWC,BGR格式
70+
> > * **results**: 视频超分结果,超分后的视频帧序列
71+
72+
- [模型介绍](../../)
73+
- [Python部署](../python)
74+
- [如何切换模型推理后端引擎](../../../../../docs/cn/faq/how_to_change_backend.md)

0 commit comments

Comments
 (0)