本文档简单介绍AR项目及C++ API。
ENCD Project
介绍
ENCD项目主要是用于去除图像或视频由于压缩导致的块效应和振铃效应,项目有python实现部分和C++实现部分,Python主要用于训练生成模型,C++主要是实现Python生成模型的前匮网络和一些数据处理,用于部署。
项目地址:ftp /liulizhou/ENCD
opencv源码地址:ftp /liulizhou/opencv
libtorch库地址:ftp /liulizhou/libtorch
目录结构:
. |
目录中使用测试模型:latest_scriptnet_G.pth
目录中yuv文件图像大小:width 1920 height 1080
块效应
振铃效应
伴随着轻微的模糊效应,原因在于模型使用旧的模型,样本中没有加入高斯模糊对抗样本
工程依赖
- libtorch
- opencv
libtorch
libtorch,用于实现python训练生成模型的前匮网络计算,支持CPU和GPU,libtorch库下载,提供动态和静态链接库和头文件,可直接链接到工程中。
opencv
- opencv source下载如上
- install
mkdir build && cd build |
编译ENCD工程
工程使用C++11标准,主要依赖opencv和libtorch库,opencv在cmakelist文件中通过find_package
自动寻找库安装路径,需要指定libtorch库路径进行编译,命令如下:
cmake -DCMAKE-PREFIX-PATH=/path-to-libtorch .. |
命令行使用
编译完成后,生成pycvt可执行文件,可运行程序进行图像或视频质量增强。
- 处理yuv文件:
./pycvt --model path-to-model --yuvfi path-to-yuv-file --width w --height h |
- 处理图像文件:
./pycvt --model path-to-model --image path-to-image-file |
- 处理bin文件:
./pycvt --model path-to-model --bin path-to-bin-file --width w --height h |
- 处理视频文件:
./pycvt --model path-to-model --video path-to-vide-file |
静态库文件使用
编译完成后,会生成动态shencd.so和静态库文件stencd.a,可集成到项目中,主要使用其中对yuv数据进行增强函数,函数定义如下:
@param src: source yuv420 data |
性能测试
测试图像例子:
width: 1024 |
Comments