forked from PaddlePaddle/FastDeploy
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Model] add vsr serials models (PaddlePaddle#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]>
- Loading branch information
1 parent
1ac54c9
commit c7ec14d
Showing
40 changed files
with
2,526 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# sr 模型部署 | ||
|
||
FastDeploy目前支持如下超分模型部署 | ||
|
||
| 模型 | 说明 | 模型格式 | 版本 | | ||
|:-----------------------------------------|:----------------------|:-------|:----------------------------------------------------------------------------------| | ||
| [PaddleGAN/BasicVSR](./basicvsr) | BasicVSR 系列模型 | paddle | [develop](https://github.com/PaddlePaddle/PaddleGAN/blob/develop/docs/zh_CN/tutorials/video_super_resolution.md) | | ||
| [PaddleGAN/EDVR](./edvr) | EDVR 系列模型 | paddle | [develop](https://github.com/PaddlePaddle/PaddleGAN/blob/develop/docs/zh_CN/tutorials/video_super_resolution.md) | | ||
| [PaddleGAN/PP-MSVSR](./ppmsvsr) | PP-MSVSR 系列模型 | paddle | [develop](https://github.com/PaddlePaddle/PaddleGAN/blob/develop/docs/zh_CN/tutorials/video_super_resolution.md) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# BasicVSR模型部署 | ||
|
||
## 模型版本说明 | ||
|
||
- [PaddleGAN develop](https://github.com/PaddlePaddle/PaddleGAN) | ||
|
||
## 支持模型列表 | ||
|
||
目前FastDeploy支持如下模型的部署 | ||
|
||
- [BasicVSR](https://github.com/PaddlePaddle/PaddleGAN/blob/develop/docs/zh_CN/tutorials/video_super_resolution.md)。 | ||
|
||
|
||
## 导出部署模型 | ||
|
||
在部署前,需要先将训练好的BasicVSR导出成部署模型,导出BasicVSR导出模型步骤,参考文档[导出模型](https://github.com/PaddlePaddle/PaddleGAN/blob/develop/docs/zh_CN/tutorials/video_super_resolution.md)。 | ||
|
||
|
||
| 模型 | 参数大小 | 精度 | 备注 | | ||
|:----------------------------------------------------------------------------|:-------|:----- | :------ | | ||
| [BasicVSR](https://bj.bcebos.com/paddlehub/fastdeploy/BasicVSR_reds_x4.tgz) | 30.1MB | - | | ||
|
||
**注意**:非常不建议在没有独立显卡的设备上运行该模型 | ||
|
||
## 详细部署文档 | ||
|
||
- [Python部署](python) | ||
- [C++部署](cpp) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
PROJECT(infer_demo C CXX) | ||
CMAKE_MINIMUM_REQUIRED (VERSION 3.10) | ||
|
||
# 指定下载解压后的fastdeploy库路径 | ||
option(FASTDEPLOY_INSTALL_DIR "Path of downloaded fastdeploy sdk.") | ||
|
||
include(${FASTDEPLOY_INSTALL_DIR}/FastDeploy.cmake) | ||
|
||
# 添加FastDeploy依赖头文件 | ||
include_directories(${FASTDEPLOY_INCS}) | ||
|
||
add_executable(infer_demo ${PROJECT_SOURCE_DIR}/infer.cc) | ||
# 添加FastDeploy库依赖 | ||
target_link_libraries(infer_demo ${FASTDEPLOY_LIBS}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
# BasicVSR C++部署示例 | ||
|
||
本目录下提供`infer.cc`快速完成BasicVSR在CPU/GPU,以及GPU上通过TensorRT加速部署的示例。 | ||
|
||
在部署前,需确认以下两个步骤 | ||
|
||
- 1. 软硬件环境满足要求,参考[FastDeploy环境要求](../../../../../docs/cn/build_and_install/download_prebuilt_libraries.md) | ||
- 2. 根据开发环境,下载预编译部署库和samples代码,参考[FastDeploy预编译库](../../../../../docs/cn/build_and_install/download_prebuilt_libraries.md) | ||
以Linux上BasicVSR推理为例,在本目录执行如下命令即可完成编译测试(如若只需在CPU上部署,可在[Fastdeploy C++预编译库](../../../../../docs/cn/build_and_install/download_prebuilt_libraries.md/CPP_prebuilt_libraries.md)下载CPU推理库) | ||
|
||
```bash | ||
#下载SDK,编译模型examples代码(SDK中包含了examples代码) | ||
# fastdeploy版本 >= 0.7.0 | ||
wget https://bj.bcebos.com/fastdeploy/release/cpp/fastdeploy-linux-x64-gpu-0.7.0.tgz | ||
tar xvf fastdeploy-linux-x64-gpu-0.7.0.tgz | ||
cd fastdeploy-linux-x64-gpu-0.7.0/examples/vision/sr/basicvsr/cpp/ | ||
mkdir build && cd build | ||
cmake .. -DFASTDEPLOY_INSTALL_DIR=${PWD}/../../../../../../../fastdeploy-linux-x64-gpu-0.7.0 | ||
make -j | ||
|
||
# 下载BasicVSR模型文件和测试视频 | ||
wget https://bj.bcebos.com/paddlehub/fastdeploy/BasicVSR_reds_x4.tar | ||
tar -xvf BasicVSR_reds_x4.tar | ||
wget https://bj.bcebos.com/paddlehub/fastdeploy/vsr_src.mp4 | ||
|
||
|
||
# CPU推理 | ||
./infer_demo BasicVSR_reds_x4 vsr_src.mp4 0 2 | ||
# GPU推理 | ||
./infer_demo BasicVSR_reds_x4 vsr_src.mp4 1 2 | ||
# GPU上TensorRT推理 | ||
./infer_demo BasicVSR_reds_x4 vsr_src.mp4 2 2 | ||
``` | ||
|
||
以上命令只适用于Linux或MacOS, Windows下SDK的使用方式请参考: | ||
- [如何在Windows中使用FastDeploy C++ SDK](../../../../../docs/cn/faq/use_sdk_on_windows.md) | ||
|
||
## BasicVSR C++接口 | ||
|
||
### BasicVSR类 | ||
|
||
```c++ | ||
fastdeploy::vision::sr::BasicVSR( | ||
const string& model_file, | ||
const string& params_file = "", | ||
const RuntimeOption& runtime_option = RuntimeOption(), | ||
const ModelFormat& model_format = ModelFormat::PADDLE) | ||
``` | ||
BasicVSR模型加载和初始化,其中model_file为导出的Paddle模型格式。 | ||
**参数** | ||
> * **model_file**(str): 模型文件路径 | ||
> * **params_file**(str): 参数文件路径 | ||
> * **runtime_option**(RuntimeOption): 后端推理配置,默认为None,即采用默认配置 | ||
> * **model_format**(ModelFormat): 模型格式,默认为Paddle格式 | ||
#### Predict函数 | ||
> ```c++ | ||
> BasicVSR::Predict(std::vector<cv::Mat>& imgs, std::vector<cv::Mat>& results) | ||
> ``` | ||
> | ||
> 模型预测接口,输入图像直接输出检测结果。 | ||
> | ||
> **参数** | ||
> | ||
> > * **imgs**: 输入视频帧序列,注意需为HWC,BGR格式 | ||
> > * **results**: 视频超分结果,超分后的视频帧序列 | ||
- [模型介绍](../../) | ||
- [Python部署](../python) | ||
- [如何切换模型推理后端引擎](../../../../../docs/cn/faq/how_to_change_backend.md) |
Oops, something went wrong.