AI-Engine-Direct-Helper快速上手(3):图像修复应用实例

devtools/2025/2/25 11:14:13/

AOTGANAggregated 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

  • 执行前准备

确保在设备中已经搭建好对应的PythonQNN环境,具体方法请参考:AI-Engine-Direct-Helper 快速上手(1):环境配置

  • 打开Powershell终端,在Python虚拟环境中执行以下命令:

python Aotgan\aotgan.py

mask图像数据是一种二值图像,其中白色区域表示需要修复的部分,黑色区域表示不需要修复的部分。模型通过mask图像来确定哪些区域需要进行填补和修复,从而生成完整的图像。

  • 结果前后对比:

2. 手动配置运行AOTGAN模型

  • 环境准备

确保在设备中已经搭建好对应的PythonQNN环境,具体方法请参考:AI-Engine-Direct-Helper 快速上手及环境配置

  • 将安装好的QNN SDK 中的 QNN 库复制到qai_libs目录中

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),高通工程师


http://www.ppmy.cn/devtools/161571.html

相关文章

Prompt-to-Prompt 进行图像编辑

Prompt-to-Prompt 图像编辑是一种基于注意力机制的图像编辑技术,它通过在输入图像和编辑目标之间建立一个双向注意力机制来实现图像编辑。这种技术可以让模型根据输入图像的内容和编辑目标的描述来进行图像编辑。 交叉注意力控制是 Prompt-to-Prompt 图像编辑中的一…

后端之JPA(EntityGraph+JsonView)

不同表之间的级联操作或者说关联查询是很多业务场景都会用到的。 对于这种需求最朴素的方法自然是手动写关联表,然后对被关联的表也是手动插入数据。但是手写容易最后写成一堆shit代码,而且修改起来也是非常麻烦的。 学会使用现成的工具还是非常有利的…

《量子计算:开启未来的钥匙》:此文为AI自动生成

量子计算:一场颠覆性的科技革命 在科技飞速发展的今天,量子计算作为一项前沿技术,正逐渐崭露头角,引领着一场新的科技革命。它以其独特的计算原理和强大的计算能力,成为了全球科技领域的焦点,被誉为未来计算的希望之星。 与传统计算相比,量子计算就像是一场跨越时代的…

Mac下VSCode调试skynet的lua环境配置

Mac下VSCode调试skynet的lua环境配置 安装Lua5.4安装Luasocket下载LuaPanda.lua安装VScode LuaPanda插件配置skynet,在lua_cpath引入luasocket库创建launch.json在需要调试的lua文件里面添加代码 安装Lua5.4 brew install lua5.4安装Luasocket LuaPanda需要luasoc…

DeepSeek引领目标检测新趋势:如何通过知识蒸馏优化模型性能

目录 一、知识蒸馏是什么? 二、知识蒸馏在目标检测中的重要性 提升实时性 跨任务迁移学习 三、如何使用知识蒸馏优化目标检测? 训练教师模型 生成软标签 训练学生模型 调节温度参数 多教师蒸馏(可选) 四、案例分享 定…

如何向zookeeper中注册内容

我来为你展示如何在Java项目中使用Apache ZooKeeper注册内容。这里提供一个简单但完整的示例&#xff0c;包含依赖配置和代码实现。 首先需要在pom.xml中添加ZooKeeper依赖&#xff08;假设使用Maven&#xff09;&#xff1a; <dependency><groupId>org.apache.z…

基于 Python 的项目管理系统开发

基于 Python 的项目管理系统开发 一、引言 在当今快节奏的工作环境中&#xff0c;有效的项目管理对于项目的成功至关重要。借助信息技术手段开发项目管理系统&#xff0c;能够显著提升项目管理的效率和质量。Python 作为一种功能强大、易于学习且具有丰富库支持的编程语言&…

MySQL的InnoDB引擎中的聚簇索引和非聚簇索引有什么区别?

聚簇索引&#xff1a;聚簇索引之所以叫聚簇索引&#xff0c;是因为它将数据存储与索引放到了一块。聚簇索引采用 B 树的数据结构&#xff0c;它的非叶子节点存储索引键值 和 指向子节点的指针&#xff0c;叶子节点存储 完整的数据行。一个表只能有一个聚簇索引&#xff0c;聚集…