暗光增强——IAT网络推理测试(详细图文教程)

news2024/9/28 13:19:57

在这里插入图片描述

IAT模型由两个独立的分支组成,局部分支用于像素调整,并输出两个用于加法和乘法的特征图。全局分支用于全局调整并输出颜色矩阵和gamma值,全局分支受DETR启发,网络通过动态查询学习的方式更新颜色矩阵和gamma值。整个模型只有超过90 k+参数,在LOL数据集上的推理速度仅为0.004s/图像(单个Nvidia-3090 GPU)。(文章中给出的测试速度)

目录

  • 一、源码包准备
  • 二、环境准备
  • 三、测试集准备
  • 四、 推理测试+指标分析
    • 4.1 LOL-V1
      • 4.1.1 脚本及模型
      • 4.1.2 参数修改
      • 4.1.3 测试结果
    • 4.2 LOL-V2
      • 4.2.1 脚本及模型
      • 4.2.2 参数修改
      • 4.2.3 测试结果
  • 五、 仅推理测试
  • 六、推理速度
    • 6.1 GPU
    • 6.2 CPU
  • 七、效果展示
  • 八、总结

一、源码包准备

官网地址为:IAT官网

论文地址:论文

中文解读地址为:中文解读

我在官网源码基础修改了一些代码,并新增了两个脚本,本教程是基于我提供源码包进行讲解,获取方法文章末扫码到公众号「视觉研坊」中回复关键字:暗光增强IAT。获取下载链接。我提供源码包中有测试集。

下载解压后的样子如下:

在这里插入图片描述

二、环境准备

下面是我自己测试环境,仅供参考,运行系统Ubuntu和Windows都可以,我在Ubuntu系统上测试的。

在这里插入图片描述

三、测试集准备

在我的源码包中测试集,官网提供的数据集LOw Light paired dataset下载链接为:添加链接描述

测试集的样子如下,主要测试图像为low文件夹中图像,还有一个high是为了和模型推理后的图像配对做指标分析。

在这里插入图片描述

四、 推理测试+指标分析

对于暗光增强,官网提供了两个模型权重文件,分别对应两个测试脚本,下面分别讲解。

4.1 LOL-V1

4.1.1 脚本及模型

在我源码中,测试脚本为evaluation_lol_v1_GPU.py,模型为best_Epoch_lol_v1.pth,如下,此脚本的输入图像可以单通道,也可以是三通道。

在这里插入图片描述

4.1.2 参数修改

下面是修改可以读入哪些图像:

在这里插入图片描述
在这里插入图片描述

4.1.3 测试结果

上面参数后修改好后,直接运行evaluation_lol_v1_GPU.py即可,测试结果会保存到测试集同级目录下的Result文件夹中,,如下:

在这里插入图片描述

4.2 LOL-V2

4.2.1 脚本及模型

在我源码中,测试脚本为evaluation_lol_v2.py,模型为best_Epoch_lol.pth,如下,此脚本的输入图像只能是三通道。

在这里插入图片描述

4.2.2 参数修改

选择读入哪些图片的修改方法通4.1.2。

在这里插入图片描述
在这里插入图片描述

4.2.3 测试结果

测试结果会自动保存到上面参数修改指定的路径中。

运行上面脚本会输出评价指标,如下:

在这里插入图片描述

五、 仅推理测试

上面的两个测试脚本,都需要准备对应的high样本,如果只是想查看模型推理结果,不想输出评价指标,那么使用evaluation_lol_v1_GPU_Only_predict.py脚本,该脚本使用时只需要准备暗光数据集即可,具体使用见下:

在这里插入图片描述

修改好参数后直接运行。

六、推理速度

6.1 GPU

对应脚本为:evaluation_lol_v1_GPU.py

GPU测试环境:Nvidia GeForce RTX 3060,测试图片640*480,推理时间:2.3ms/fps。

在这里插入图片描述

6.2 CPU

对应脚本为:evaluation_lol_v1_CPU.py

测试环境:12th Gen Intel® Core™ i7-12700H 2.30 GHz,测试图片120*90,推理速度:230ms/fps。

在这里插入图片描述

七、效果展示

下左图为原始暗光图,右侧是IAT模型处理结果图。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

八、总结

目前我就测试了上面讲解的模型,IAT网络很强悍,还有检测和分割的功能,其次官网也提供了训练的方法,学者自行参考官网教程学习。

总结不易,多多支持,谢谢!

感谢您阅读到最后!关注公众号「视觉研坊」,获取干货教程、实战案例、技术解答、行业资讯!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1516871.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Day63:WEB攻防-JS应用算法逆向三重断点调试调用堆栈BP插件发包安全结合

目录 前置知识 JS调试分析 JS分析调试结合Burp JS分析调试知识点: 1、JavaScript-作用域&调用堆栈 2、JavaScript-断点调试&全局搜索 3、JavaScript-Burp算法模块使用 前置知识 JS加密数据走向 浏览器调试 1、作用域:(本地&全…

Infineon_TC264智能车代码初探及C语言深度学习(二)

本篇文章记录我在智能车竞赛中,对 Infineon_TC264 这款芯片的底层库函数的学习分析。通过深入地对其库函数进行分析,C语言深入的知识得以再次在编程中呈现和运用。故觉得很有必要在此进行记录分享一下。 目录 ​编辑 一、代码段分析 NO.1 指向结构体…

Python 合并两张图片

发现一个很有意思的图片处理包PIL,可以将两张图片合并成一张,而且很好看。代码如下 from PIL import Image# 打开两张图片 image1 Image.open("1.jpg").convert("RGBA") image2 Image.open("2.jpg").convert("RGB…

Siamese Network(孪生神经网络)详解

Siamese和Chinese有点像。Siam是古时候泰国的称呼,中文译作暹罗。Siamese也就是“暹罗”人或“泰国”人。Siamese在英语中是“孪生”、“连体”的意思,这是为什么呢?十九世纪泰国出生了一对连体婴儿,当时的医学技术无法使两人分离…

设置浏览器显示小于12px以下字体

问题 我们在项目开发过程中有时候会遇到设计师给的小于12px的字体,IE、火狐浏览器、移动端等小于12px的字号大小还是可以正常显示的,但是谷歌浏览器上显示字体最小为12px,css设置font-size:10px,运行代码显示结果仍然…

Linux:kubernetes(k8s)Deployment的操作(13)

创建deployment 命令 kubectl create deploy nginx-deploy --imagenginx:1.7.9 再去使用以下命令分别查询 ubectl get deploy kubectl get replicaset kubectl get pod 他是一个层层嵌套的一个关系 首先是创建了一个 deploy 里面包含着replicaset replicaset里面含有…

网络原理(网络协议初识)

目录 1.网络通信基础 1.1IP地址 1.2端口号 1.3认识协议 1.4五元组 1.5 协议分层 2.TCP/IP五层(或四层)模型 2.1网络设备所在分层 2.2网络分层对应 3.封装和分用 1.网络通信基础 网络互连的目的是进行网络通信,也即是网络数据传输&#…

[Kali] 安装Nessus及使用

在官方网站下载对应的 Nessus 版本:Download Tenable Nessus | TenableDownload Nessus and Nessus Managerhttp://www.tenable.com/products/nessus/select-your-operating-system这里选择 Kali 对应的版本 一、安装 Nessus 1、下载得到的是 deb 文件,与

solana 入门 1

solana-co-learn Solana 开发学习笔记(一)——从 Hello World 出发 安装开发环境 windows下环境配置 wsl First start with installing WSL on your system. wsl --install wsl安装Ubuntu 列出可用的分发版 wsl.exe --list --online显示: 以下是可安装的有效…

LLM推理框架Triton Inference Server学习笔记(一): Triton Inference Server整体架构初识

官方文档查阅: TritonInferenceServer文档 1. 写在前面 这篇文章开始进行大语言模型(Large Language Model, LLM)的学习笔记整理,这次想从Triton Inference Server框架开始,因为最近工作上用到了一些大模型部署方面的知识, 所以就快速补充了…

SpringBoot配置资源文件自动热更新

1、修改启动配置 On update action 和 On frame deactivation 添加 update classes and resources 配置 2、IDEA菜单栏File->setting->Build,Execution,Deployment->Compiler 勾选Build project automatically 3、禁用Thymeleaf的缓存 在开发环境中,通过…

点云处理ransac算法

参考资料: 点云处理入门 RANSAC & ICP with PCL Demo - 知乎 ransac是什么? 随机采样一致算法(RANdom SAmple Consensus)RANSAC。该算法可以从一组观测数据中(包含离群点),查找出符合某个数…

圈子社交系统-多人语音-交友-陪玩-活动报名-商城-二手论坛-源码交付,支持二开!

圈子小程序适用于多种场景,涵盖了各个领域的社交需求。以下是一些常见的适用场景: 兴趣社区: 用户可以加入自己感兴趣的圈子,与志同道合的人一起讨论交流,分享经验和知识。 行业交流: 各个行业可以建立自…

【C++map和set容器:AVL树、红黑树详解并封装实现map和set】

[本节目标] map和set底层结构 AVL树 红黑树 红黑树模拟实现STL中的map和set 1.底层结构 前面对map/multimap/set/multiset进行了简单的介绍,在其文档介绍中发现,这几个容器有个 共同点是:其底层都是按照二叉搜索树来实现的,但…

【C++】string的底层剖析以及模拟实现

一、字符串类的认识 C语言中,字符串是以\0结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数, 但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理&a…

算法空间复杂度计算

目录 空间复杂度定义 影响空间复杂度的因素 算法在运行过程中临时占用的存储空间讲解 例子 斐波那契数列递归算法的性能分析 二分法(递归实现)的性能分析 空间复杂度定义 空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大…

深入理解JAVA异常(自定义异常)

目录 异常的概念与体系结构 异常的概念: 异常的体系结构: 异常的分类: 异常的处理 防御式编程 LBYL: EAFP: 异常的抛出 异常的捕获 异常声明throws try-catch捕获并处理 finally 面试题: 异常的处理流程 异常处…

【数据结构与算法】:插入排序与希尔排序

🔥个人主页: Quitecoder 🔥专栏: 数据结构与算法 欢迎大家来到初阶数据结构的最后一小节:排序 目录 1.排序的基本概念与分类1.1什么是排序的稳定性?1.2内排序与外排序内排序外排序 2.插入排序2.1实现插入排序2.3稳定性…

谈谈你对Java平台的理解?

从你接触 Java 开发到现在,你对 Java 最直观的印象是什么呢?是它宣传的 “Write once, run anywhere”,还是目前看已经有些过于形式主义的语法呢?你对于 Java 平台到底了解到什么程度?请你先停下来总结思考一下。 今天…

【DAY11 软考中级备考笔记】数据结构 排序操作系统

数据结构 排序&&操作系统 3月14日 – 天气:晴 今天天气非常热,已经到20度了,春天已经来了。 1. 堆排序 堆排序的思想是首先建立一个堆,然后弹出堆顶元素,剩下的元素再形成一个堆,然后继续弹出元素&…