本项目使用flask作为后端,采用网页的形式进行展示,交互
python3.7+
pip install -r requirements.txt
python app.py # 默认在 127.0.0.1:5000
如果打算使用 GPU,由于 cuda 版本不同,pytorch 和 torchvision 需要自行下载,建议从以下网站找到对应版本下载 whl 文件安装
https://download.pytorch.org/whl/torch/
https://download.pytorch.org/whl/torchvision/
import torch
torch.cuda.is_available() # 返回 True 才能使用 GPU
如果 GPU 显存不够,可以直接修改 myTransfer.py 和 models.py,设置 device = 'cpu'
models
下包含风格迁移的模型文件下载地址,需运行 models.bat 和 myModels.bat 下载
其中,models.bat 下载固定风格任意内容的模型,myModels.bat 下载任意风格任意内容的模型。
任意风格任意内容迁移的代码、研究与报告见项目 StyleTransfer。
- models
- COCO2014_1000
- *.png
- metanet_base32_style300000.0_tv1e-06_tagnohvd.pth
- metanet_base32_style300000.0_tv1e-06_tagnohvd_transform_net.pth
- candy.t7
- feathers.t7
- *.t7
myModels.bat 受限于服务器带宽,下载所有文件需要约 30 min。
为了减少下载时间:
- 如果本地已经有完整的 COCO2014,可以运行 genCOCO2014_1000.py 脚本生成数据集
如果没有,可以运行 getCOCO2014_1000.bat 下载,
也可以从这里下载,解压并运行 genCOCO2014_1000.py 脚本
需要将 genCOCO2014_1000.py 的这行改成自己数据集的路径
src = "../../COCO2014/train2014"
- 目前已经将 vgg19 改成了 pretrained=True,通过 torchvision 下载,所以项目初次运行会先进行下载。
如果下载不了的话可以找其他的源下载,并修改代码,
或者运行 getVgg19.bat 从服务器获取,享受极(慢)速(度)(约 20 min)
vgg19 = models.vgg19(pretrained=False)
vgg19.load_state_dict(torch.load(${模型路径}))
如图,左侧为内容图,右侧为风格图。对于一张风格图,第一次运行会花费额外的时间(取决于设备)。 之后风格图不变,更换内容图,进行迁移需要约 5-8s。
采用 sphinx 自动生成
起始页面: ./doc/_build/html/index.html
./test 下是对每一个 service 的测试,其中 main.py 运行全部的测试,showImg 为 True 会显示图片,否则不会。
批量测试前建议把这两个函数注释掉,后面单独测试,否则有概率爆内存。
# noiseBlur_test.py
def test_harmonic_blur():
res = noiseBlurService.harmonic_blur([blur], {'ksize': 3})
display('harmonic_blur', res)
def test_low_pass_filter():
res = noiseBlurService.low_pass_filter([blur], {'threshold2': 200})
display('low_pass', res)