QAI AppBuilder 快速上手(8): 图像修复应用实例2
LaMa-Dilated模型旨在通过扩张卷积技术实现高效的图像擦除和修复。该模型采用先进的卷积神经网络架构,能够处理复杂的图像输入,并填补图像中的缺失部分,使修复后的图像更加自然和逼真。LaMa-Dilated不仅在图像编辑领域表现出色,还在增强现实和其他需要高质量图像处理的应用中发挥重要作用。它支持多种设备和平台,包括智能手机和平板电脑,能够在这些设备上实现实时处理,提供用户友好的体验。通过扩张卷积技术,LaMa-Dilated能够捕捉更多的图像细节,确保修复后的图像质量不受影响。该模型的高效性和灵活性使其成为图像处理领域的创新解决方案,推动了技术的进步和应用的发展。总之,LaMa-Dilated通过其强大的图像修复能力,为用户提供了高质量的图像处理体验,广泛应用于各个行业,成为图像编辑和增强现实领域的重要工具。
本文章主要介绍如何使用LaMa-Dilated模型进行图像修复,如何配置QAI AppBuilder工具及环境。包括了准备需要处理的图像数据,加载LaMa-Dilated模型,运行示例代码进行图像处理,查看处理后的图像效果等步骤。通过这些步骤,可以更加熟悉地使用LaMa-Dilated模型并进行图像擦除和修复等工作。
前置条件
- 高通 Windows on Snapdragon
- 各平台账号,包括:Github、高通 Software Center
操作方法及步骤
1. 快捷使用lama_dilated图像修复应用
- LaMa-Dilated和AOTGAN对比
LaMa-Dilated和AOTGAN是两种不同的图像修复模型,它们在技术实现和应用场景上有显著区别。
LaMa-Dilated:
技术实现:LaMa-Dilated采用扩张卷积(Dilated Convolution)技术,通过在卷积核中引入空洞来增加感受野。这种方法能够在不增加参数量的情况下捕捉更多的上下文信息,从而提高图像修复的效果12。
应用场景:LaMa-Dilated主要用于高分辨率图像的修复和擦除,适用于需要高质量图像处理的应用,如图像编辑和增强现实。它能够在设备上实现实时处理,提供用户友好的体验1。
AOTGAN:
技术实现:AOTGAN(Attention-guided Generative Adversarial Network)采用生成对抗网络(GAN)架构,并结合注意力机制来进行图像修复。注意力机制能够帮助模型关注图像中的重要区域,从而生成更加自然和逼真的修复结果3。
应用场景:AOTGAN广泛应用于各种图像修复任务,包括去除图像中的遮挡物、修复损坏的图像和填补缺失部分。由于其生成对抗网络的特性,AOTGAN在处理复杂图像修复任务时表现出色3。
总的来说,LaMa-Dilated和AOTGAN在技术实现和应用场景上各有优势。LaMa-Dilated通过扩张卷积技术实现高效的图像修复,适用于高分辨率图像处理;而AOTGAN通过结合注意力机制和生成对抗网络,能够处理更复杂的图像修复任务,生成自然逼真的结果。
- 执行前准备
模型运行需要依赖Python及QNN环境,需要注意,最新版本的QNN SDK已经更名为Qualcomm® AI Runtime SDK,旧版本QNN SDK依旧可用。


确保在设备中已经搭建好对应的Python及QNN环境,具体方法请参考:QAI-AppBuilder快速上手及环境配置
- 打开Powershell终端,在Python虚拟环境中执行以下命令:
python lama_dilated\lama_dilated.py

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


输出结果:

我们可以发现,LaMa-Dilated和AOTGAN除了通过不同的技术实现,输出的结果却基本相同,无明显差异。
2. 手动配置运行lama_dilated图像修复应用
- 环境准备
确保在设备中已经搭建好对应的Python及QNN环境,具体方法请参考:QAI-AppBuilder快速上手及环境配置
- 将安装好的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
- 从以下链接下载示例代码
lama_dilated.py
下载示例代码后,将其复制到工作目录根目录
- 将输入数据复制到工作目录根目录下
将输入数据图像和掩码图像下载并复制到工作目录根目录下:
input.png
mask.png
- 准备好所有目录文件后,整体目录结构如下:

运行脚本下载的模型会存放在models中 。
- 运行示例代码
python .\lama_dilated.py

- 运行结果

得到的输出图像最终保存为output.png
作者:
赵世朝(Shizhao Zhao),高通工程师
相关文章:
QAI AppBuilder 快速上手(8): 图像修复应用实例2
LaMa-Dilated模型旨在通过扩张卷积技术实现高效的图像擦除和修复。该模型采用先进的卷积神经网络架构,能够处理复杂的图像输入,并填补图像中的缺失部分,使修复后的图像更加自然和逼真。LaMa-Dilated不仅在图像编辑领域表现出色,还…...
`ConstantPositionProperty` 的使用与应用
ConstantPositionProperty 的使用与应用 1. 什么是 ConstantPositionProperty? ConstantPositionProperty 是 Cesium 中用于表示实体位置的属性类。它表示一个实体在三维空间中的位置是固定的,不会随时间变化。与动态位置属性(如 SampledPo…...
【计网】作业4
一. 单选题(共22题,64分) 1. (单选题)主机甲采用停止-等待协议向主机乙发送数据,数据传输速率是4kb/s,单向传播时延为30ms,忽略确认帧的发送时延。当信道利用率等于80%时,数据帧的长度为&#…...
MPDrive:利用基于标记的提示学习提高自动驾驶的空间理解能力
25年4月来自南方科技大学、百度、英国 KCL和琶洲实验室(广东 AI 和数字经济实验室)的论文“MPDrive: Improving Spatial Understanding with Marker-Based Prompt Learning for Autonomous Driving”。 自动驾驶视觉问答(AD-VQA)…...
QTSql全解析:从连接到查询的数据库集成指南
概览 与数据库的有效集成是确保数据管理效率和应用性能的关键,Qt框架就提供了强大的QtSql模块,使得开发者能够轻松地进行数据库操作,包括连接、查询执行以及结果处理等 一、引入QtSql模块 首先,需要在项目中引入QtSql模块&…...
FreeRTOS临界区
在FreeRTOS中,临界区通过关闭可管理的中断来保护共享资源,具体关闭的中断层级由configMAX_SYSCALL_INTERRUPT_PRIORITY宏定义决定。以下是关键点解析: 中断优先级分类: 高优先级中断:数值低于configMAX_SYSCALL_INTERR…...
【学习笔记】HTTP和HTTPS的核心区别及工作原理
一、基础概念 HTTP(超文本传输协议):明文传输数据,默认端口80,容易被窃听或篡改。 HTTPS(HTTP SSL/TLS):通过加密传输数据,默认端口443,保障安全性。 二、…...
Dubbo的简单介绍
Dubbo的简单介绍 Dubbo 是一个高性能的 Java RPC 框架,最初由阿里巴巴开发,用于构建分布式服务。它主要用于提供服务间的通信,支持高效的远程调用和服务治理,常用于大规模分布式系统中。Dubbo 提供了以下几个核心功能:…...
7.2 重复推送(每日、每周等)
1. 核心方法 使用 UNCalendarNotificationTrigger 的 dateMatching 参数配置日历组件(DateComponents),结合 repeats: true 实现周期性触发。 2. 不同频率的重复推送配置 2.1 每日重复 每天固定时间触发(如上午 10:00ÿ…...
【STL】list介绍(附与vector的比较)
文章目录 1.关于list2.使用2.1 list的构造2.2 list 迭代器的使用2.3 list 容量操作2.3.1 size()2.3.2 empty()2.3.3 resize() 2.4 list 元素访问2.4.1 front()2.4.2 back() 2.5 list 修改操作2.5.1 push_front()2.5.2 pop_front()2.5.3 push_back()2.5.4 pop_back()2.5.5 inser…...
Ansible:roles角色
文章目录 Roles角色Ansible Roles目录编排Roles各目录作用创建 roleplaybook调用角色调用角色方法1:调用角色方法2:调用角色方法3: roles 中 tags 使用实战案例 Roles角色 角色是ansible自1.2版本引入的新特性,用于层次性、结构化…...
找不到导入的项目“xxx\QtMsBuild\Qt.props”。请确认 Import 声明“$(QtMsBuild)\Qt.props”中计算结果为
系列文章目录 文章目录 系列文章目录前言一、问题原因 前言 新建的项目visual studio2022 使用Qt vs tools 找不到导入的项目“E:\osgEarth\DigitalSimulationPlatform\DigitalSimulationPlatform\QtMsBuild\Qt.props”。 请确认 Import 声明“$(QtMsBuild)\Qt.props”中计算结…...
Rust 是如何层层防错的
一、Rust 的多层防错机制 🧱 第一层:Rust语言自带的“编译时护盾” —— 错误连运行都跑不起来 错误类型Rust 怎么发现的?工具/机制举个例子✅ 语法缺陷写错了代码格式或语法Rust Analyzer(智能补全)少写了分号、括号…...
SQL Server 数据库邮件配置失败:SMTP 连接与权限问题
问题现象: 配置数据库邮件时,发送测试邮件失败,提示 “邮件无法发送到 SMTP 服务器,操作超时”(错误 14661)或 “服务器拒绝发件人地址”(错误 15009)。 快速诊断 检查数据库邮件配置…...
2025 年福建交安安全员考试:结合本省交通特点备考
福建地处东南沿海,交通建设具有独特特点,这对交安安全员考试备考意义重大。在桥梁建设方面,由于面临复杂的海洋环境,桥梁的防腐、防台风等安全措施成为重点。考生在学习桥梁施工安全知识时,要特别关注福建本地跨海大桥…...
OpenBMC:BmcWeb 处理http请求5 检查权限
OpenBMC:BmcWeb 处理http请求4 处理路由对象-CSDN博客 在通过url获取了路由对象后,如果该请求是有session的,那么下一步需要检查权限 1.validatePrivilege调用时传入了一个lambda(1)做为回调 validatePrivilege(req, asyncResp, rule,[req, asyncResp, &rule, params =…...
996引擎-源码学习:Cocos2d-Lua 的 class(classname, ...)
996引擎-源码学习:Cocos2d-Lua 的 class(classname, ...) 一、核心方法调用顺序用户调用入口完整调用链二、__create 工厂方法的三种情形情形1:父类为函数(自定义工厂)情形2:父类为Cocos原生类情形3:父类为普通Lua表三、方法职责与内存管理对照表四、正确使用示例示例1…...
UE5 蓝图里的声音
文章目录 支持的格式设置循环播放在场景中放置音频设置音频的衰减与不衰减在UI动画中播放声音使用蓝图节点播放声音按钮本身就可以播放声音 支持的格式 支持:WAV 不支持:MP3 设置循环播放 双击音频,打开音频设置,勾选Looping …...
「合诚」携手企企通共建新材料和健康产业采购数智化新生态
在科技革命与产业变革深度融合的时代背景下,新材料与健康产业正迎来数字化、智能化的快速发展。 技术突破与消费升级的双重驱动,推动着行业不断创新,同时也对企业的供应链管理提出了更高要求。 1、合诚:聚焦新材料与健康产业&am…...
Three.js 系列专题 7:性能优化与最佳实践
内容概述 随着 3D 场景复杂度的增加,性能优化变得至关重要。Three.js 项目可能因几何体数量、纹理大小或渲染设置而变慢。本专题将介绍减少 draw call、优化纹理和使用调试工具的最佳实践。 学习目标 学会减少 draw call 和几何体复杂度。掌握纹理压缩与内存管理。使用 Stat…...
java+postgresql+swagger-多表关联insert操作(七)
入参为json,然后根据需要对多张表进行操作: 入参格式: [{"custstoreName":"swagger-测试经销商01","customerName":"swagger-测试客户01","propertyNo":"swaggertest01",&quo…...
Git版本管理系列:(一)使用Git管理单分支
目录 基础概念介绍仓库的创建创建隐藏目录添加代码到暂存区提交代码到仓库提交记录查询比较差异标签文件删除版本回退总结 Git 是一个分布式版本控制系统(DVCS),用于跟踪文件的变更并协调多人协作开发,由 Linus Torvalds 于 2…...
mapbox基础,加载ESRI OpenStreetMap开放街景标准风格矢量图
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.1 ☘️mapboxgl.Map style属性二、🍀加载ESRI OpenStreetMap开放街景标准风…...
WGAN-GP 原理及实现(pytorch版)
WGAN-GP 原理及实现 一、WGAN-GP 原理1.1 WGAN-GP 核心原理1.2 WGAN-GP 实现步骤1.3 总结 二、WGAN-GP 实现2.1 导包2.2 数据加载和处理2.3 构建生成器2.4 构建判别器2.5 训练和保存模型2.6 图片转GIF 一、WGAN-GP 原理 Wasserstein GAN with Gradient Penalty (WGAN-GP) 是对…...
IntelliJ IDEA使用技巧(json字符串格式化)
文章目录 一、IDEA自动格式化json字符串二、配置/查找格式化快捷键 本文主要讲述idea中怎么将json字符串转换为JSON格式的内容并且有层级结构。 效果: 转换前: 转换后: 一、IDEA自动格式化json字符串 步骤一:首先创建一个临…...
synchronized锁升级详解
synchronized锁升级详解 synchronized是Java中实现线程同步的关键字,它在JVM内部实现了锁的升级机制,从偏向锁到轻量级锁再到重量级锁,这种优化是为了减少锁操作带来的性能开销。 1. 锁的四种状态 Java对象头中的Mark Word会记录锁的状态&…...
MCP基础学习一:MCP概述与基础
MCP概述与基础 什么是MCP? MCP(Model Context Protocol,模型上下文协议)是由Anthropic公司于2024年11月推出的一种开放协议,旨在实现大型语言模型(LLM)与外部数据源和工具的无缝集成。MCP通过…...
SvelteKit 最新中文文档教程(18)—— 浅层路由和 Packaging
前言 Svelte,一个语法简洁、入门容易,面向未来的前端框架。 从 Svelte 诞生之初,就备受开发者的喜爱,根据统计,从 2019 年到 2024 年,连续 6 年一直是开发者最感兴趣的前端框架 No.1: Svelte …...
集成nacos2.2.1出现的错误汇总
总结 1.jdk问题 jdk要一致 2.idea使用问题 idea启动nacos要配置,idea启动类要启动两次,并配置两次vm参数 3.项目依赖问题 依赖要正确添加,有的模块就是不能用公共模块的pom配置,需要独立配置,先后启动顺序也要注意…...
DFS 蓝桥杯
最大数字 问题描述 给定一个正整数 NN 。你可以对 NN 的任意一位数字执行任意次以下 2 种操 作: 将该位数字加 1 。如果该位数字已经是 9 , 加 1 之后变成 0 。 将该位数字减 1 。如果该位数字已经是 0 , 减 1 之后变成 9 。 你现在总共可以执行 1 号操作不超过 A…...
