AOTGAN(Aggregated Contextual Transformations for High-Resolution Image Inpainting)是一种基于注意力机制的生成对抗网络(GAN)模型,主要用于图像修复任务。它通过聚合不同膨胀率的空洞卷积学习到的图片特征,能够更加精确地修复图像中的损坏部分,保持修复区域的清晰度和自然性。AOTGAN 的生成器利用注意力机制,动态地关注图像中需要修复的部分,从而提高修复效果;判别器则判断生成的图像是真实的还是伪造的,通过与生成器的对抗训练,不断优化生成器的性能。AOTGAN 的应用场景包括修复老旧照片、去除图像中的划痕或污点,以及艺术创作等。
本文章主要介绍使用 AOTGAN 模型进行图像修复,如何配置 AI Engine Direct Helper 工具及环境。包括了准备需要修复的图像数据,加载预训练的 AOTGAN 模型权重,运行示例代码进行图像修复,查看修复后的图像效果等步骤。通过这些步骤,可以更加熟悉地使用 AOTGAN 模型并进行图像修复工作。
前置条件
- 高通 Windows on Snapdragon
- 各平台账号,包括:Github、高通 Software Center
操作方法及步骤
1. 快捷使用AOTGAN
- 执行前准备
确保在设备中已经搭建好对应的Python及QNN环境,具体方法请参考:AI-Engine-Direct-Helper 快速上手(1):环境配置
- 打开Powershell终端,在Python虚拟环境中执行以下命令:
python Aotgan\aotgan.py
mask图像数据是一种二值图像,其中白色区域表示需要修复的部分,黑色区域表示不需要修复的部分。模型通过mask图像来确定哪些区域需要进行填补和修复,从而生成完整的图像。
- 结果前后对比:
2. 手动配置运行AOTGAN模型
- 环境准备
确保在设备中已经搭建好对应的Python及QNN环境,具体方法请参考:AI-Engine-Direct-Helper 快速上手及环境配置
qai_libs\libQnnHtpV73Skel.so
qai_libs\QnnHtp.dll
qai_libs\QnnHtpV73Stub.dll
qai_libs\QnnSystem.dll
qai_libs\libqnnhtpv73.cat
- 下载 aotgan模型:
https://huggingface.co/qualcomm/AOT-GAN/tree/main
下载模型后,复制到models目录中
models\aotgan.bin
- 从以下链接下载示例代码:
https://github.com/quic/ai-engine-direct-helper/blob/main/Samples/aotgan/aotgan.py
下载示例代码后,将其复制到工作目录根目录
- 将示例图像和掩码数据复制到工作目录
准备好所有文件后,整体结构如下:
- 运行示例代码
python aotgan.py
其实,该脚本代码中也涵盖了全部的运行流程,下载模型流程也是包括在内,如希望使用自己下载或转换处理的模型进行操作,则需要把模型提前放到models中即可。在准备好模型后,脚本将不会执行下载操作。示例如下:
- 运行结果(输出图像将保存为out.png)
3. 使用AOTGAN模型GUI
- 上述方法中,均使用的是固定掩码示例输入方式,如需使用GUI方式自定义掩码输入,可参考:基于AOTGAN的图片修复
作者:
赵世朝(Shizhao Zhao),高通工程师