【图像压缩感知】论文阅读:Content-Aware Scalable Deep Compressed Sensing
tips: 本文为个人阅读论文的笔记,仅作为学习记录所用。本文参考另一篇论文阅读笔记
Title: Content-Aware Scalable Deep Compressed Sensing
Journal: TIP 2022
代码链接: https://github.com/Guaishou74851/CASNet
文章地址: https://ieeexplore.ieee.org/document/9854112
问题动机
现有的模型驱动深度学习CS方法计算成本高且可扩展性较弱,而深度卷积神经网络在某些方面也有局限。
解决方法
提出了CASNet框架,包含自适应采样率分配、细粒度可扩展性、高质量重建这三部分。
自适应采样率分配 :利用基于CNN的图像显著性检测器,根据图像内容自适应分配CS比率。
细粒度可扩展 :可学习的生成矩阵促进可扩展和自适应的采样过程。
高质量重建 :对传统PDG算法进行改写,将基于凸优化的方法(GD部分)和基于深度网络的方法(PM部分)结合起来进行图像恢复。
本文贡献
1、提出一种内容感知的可扩展网络,称为CASNet,实现分块CS比例分配,并由单个网络处理任意采样率r∈[0,1]下的图像CS任务。据我们所知,这是第一次将CS比率分配、模型可扩展性和展开恢复集成在一起的工作
2、提出采用轻量级CNN自适应检测图像显著性分布,并设计一种块比例聚合(BRA)策略来实现逐块CS比例分配,而不是像以往基于显著性的方法那样使用手工制作的检测函数
3、为CASNet评估提供了两种促进策略和四阶段实施。实验表明,CASNet基于其不同组件和策略之间固有的强兼容性和相互支持,优于最先进的CS方法
整体架构
采样子网
显著性检测
采用CNN作为显著性检测器来评估图像每个位置的显著性,突出不同区域的重要信息
CS比率分配
首先,对原图像进行分块处理。
设计了一种块比例聚合(BRA)策略,具体内容如下:
逐块采样
将原图像按块展开,每个块根据其自适应的观测矩阵,进行采样。
初始化子网
直接按块,使用转置矩阵对数据进行初始化。
这一部分就十分简单。
恢复子网
将传统的PGD算法进行转换,并深度展开:
块梯度下降
引入辅助变量Z,梯度下降部分还是保留传统的。
显著性信息引导近端映射
第二阶段使用了一种称为 U-Net 的网络结构,包含了编码器和解码器模块,以及跳跃连接,这有助于改善图像的恢复质量。
显著性特征图是基于图像内容的重要性生成的,这在网络中用于指导重建过程,以便更好地恢复图像的细节。
采样率映射表显示了根据显著性信息为图像的不同区域分配的采样率。
映射表被扩展以适应 U-Net 的输入尺寸要求。
卷积层和残差块用于处理特征图,上采样和下采样操作用于在不同的尺度上捕获特征。
实验
消融实验
功能特性、时间、参数数对比
性能对比
本文小结
为了全面解决图像CS问题,提出了一种新的内容感知可扩展网络CASNet,该网络试图充分利用传统方法的优点,共同实现自适应CS比例分配、细粒度可扩展性和高质量重建。与以往基于显著性的方法不同,使用数据驱动的显著性检测器和块比聚合(BRA)策略来实现准确的采样率分配。提出了一种统一的可学习生成矩阵,用于生成降低记忆复杂度的采样矩阵。PGD展开恢复子网利用CS比信息和块间关系逐步恢复图像。我们使用基于SVD的初始化方案来加速训练,并使用随机变换增强(RTE)策略来提高网络的鲁棒性。
CASNet的所有参数都可以端到端不加区分地学习,其组件和策略之间具有很强的兼容性和相互支持。此外,考虑了CASNet框架和物理CS系统之间可能存在的差距,并为公平评估和实际部署提供了四个阶段的实施。大量的实验表明,CASNet大大改进了最先进的CS方法的结果,具有高结构效率和深刻的矩阵洞察力。
读者小结
本文还是在追求一种自适应的压缩感知,这是一种更加接近真实环境的情况,追求质量的优化、效率的提升,肯定是值得做的。
但我对其中的一些内容有相当的疑问,在显著性检测部分,需要对真实图像数据(Ground Truth)进行检测,但图像压缩感知本质上追求的还是一个病态的逆成像问题,追求的还是将少量测量的信号恢复成原始数据,因此我的GT数据应该是很难获得的。若没有GT数据,那我又该对谁进行显著性检测呢?
还有,我不确定这个显著性检测的泛化性如何,在训练集上训练完的自适应采样矩阵放到其他数据集中,是否还能达到自适应,若是还需要调整,那是否还是需要GT数据?
既然已有了GT数据,那我又何必还要进行复杂的网络迭代,得到一个结果呢?
相关文章:

【图像压缩感知】论文阅读:Content-Aware Scalable Deep Compressed Sensing
tips: 本文为个人阅读论文的笔记,仅作为学习记录所用。本文参考另一篇论文阅读笔记 Title: Content-Aware Scalable Deep Compressed Sensing Journal: TIP 2022 代码链接: https://github.com/Guaishou74851/CASNet…...

物理hack
声明 声明 文章只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。 ✍🏻作者简介:致力于网络安全领域,目前作为一名学习者,很荣…...

Linux——环境基础开发工具使用2(正在更新中...)
1.自动化构建-make/Makefile 1.1 认识make和Makefile make是一个命令; Makefile是一个文件。 1.2 理解 其中在第一个图片中,第一行的 mytest:test.c 叫做依赖关系;第二行的 gcc test.c -o mytest 叫做依赖方法。 依赖关系和依赖方法共同…...

STM32传感器模块编程实践(十二) micro SD卡模块简介及驱动源码
文章目录 一.概要二.Micro SD卡模块主要特性三.Micro SD卡模块接线说明四.Micro SD卡模块参考原理图五.通讯协议介绍六.FATFS文件系统介绍七.STM32F030C8T6单片机与SD卡模块实现数据读写实验1.硬件准备2.软件工程3.软件主要代码4.实验效果 八.源代码工程下载九.小结 一.概要 M…...

Linux debian系统安装ClamTk开源图形用户界面(GUI)杀毒软件
一、ClamTk简介 ClamTk 是一个基于 ClamAV 的开源图形用户界面(GUI)杀毒软件。它使用 GTK2-Perl 脚本构建而成,支持32位与64位操作系统。ClamTk 提供了一个直观的用户界面,使得用户无需深入了解命令行即可完成大部分操作。它具备…...

RapidIO介绍
传统串行总线(如 UART, SPI, I2C 等) 特点: 接口简单:传统的串行总线设计相对简单,通常使用少量的引脚,因此硬件设计较为简洁。协议简单:这些协议设计简单,容易实现,因…...
用魔方做存储器
用魔方模拟存储器是一种形象化的方式,特别适合教学演示或帮助理解存储器结构。以下是如何将魔方作为存储器的设计思路和可能的实现: 基本思路 魔方的结构: 魔方有 (6) 个面,每面 (3 \times 3 9) 个方块,总共 (6 \time…...

动力商城-03 Idea集成apifox Mybatis-Plus字段策略
1.Idea下载apifox插件 2.新建令牌放入Idea 3.右键上传到对应接口 4.设置前置url 插件能够自动识别swagger注解 Mybatis-Plus字段策略 1、FieldStrategy作用 Mybatis-Plus字段策略FieldStrategy的作用主要是在进行新增、更新时,根据配置的策略判断是否对实体对…...
python如何使用Rabbitmq
目录 一、Rabbitmq介绍 二、Rabbitmq的使用场景 1、异步处理 2、服务解耦 3、流量削峰 4、日志收集 5、发布订阅 6、任务调度 三、python如何使用Rabbitmq 1、安装依赖 2、基础使用 3、消息确认 4、消息持久化 5、公平调度 6、发布订阅 7、关键字发布 一、Rabbi…...
分布式,微服务,SpringCloudAlibaba,nacos,gateway,openFeign
想学习微服务SpringCloudAlibaba的小伙伴,可以观看视频 地址: https://www.bilibili.com/video/BV1cFDEYWEkY/?vd_source14d27ec13a4737c281b7c79463687112分布式架构和微服务是两个密切相关但又有所区别的概念。它们在现代软件工程中经常被提及&#…...

MySQL初学之旅(3)约束
目录 1.前言 2.正文 2.1约束类型 2.2NULL约束 2.3UNIQUE约束 2.4DEFAULT约束 2.5PRIMARY KEY主键约束 2.6FOREIGN KEY外键约束 2.7CHECK约束 3.小结 1.前言 哈喽大家好啊,今儿来继续给大家分享最近学习的MySQL和约束相关的知识点,希望大家一起…...
使用YOLOv9进行图像与视频检测
大家好,YOLOv9 与其前身v8一样,专注于识别和精确定位图像和视频中的对象。本文将介绍如何使用YOLOv9进行图像与视频检测,自动驾驶汽车、安全系统和高级图像搜索等应用在很大程度上依赖于此功能,YOLOv9 引入了比 YOLOv8 更令人印象…...
C# 中的 LINQ:轻松处理集合和数据
C#中的LINQ(Language Integrated Query),这是一个非常强大且实用的功能,可以简化集合操作和数据查询。以下是一篇关于C#中LINQ使用的文章。 引言 LINQ(Language Integrated Query)是C#语言的一个重要特性…...

【征稿倒计时!华南理工大学主办 | IEEE出版 | EI检索稳定】2024智能机器人与自动控制国际学术会议 (IRAC 2024)
#华南理工大学主办!#IEEE出版!EI稳定检索!#组委阵容强大!IEEE Fellow、国家杰青等学术大咖领衔出席!#会议设置“优秀论文”“优秀青年学者报告”“优秀海报”等评优奖项 2024智能机器人与自动控制国际学术会议 &#…...

RHCE的学习(20)
变量5种赋值方式 shell中变量赋值5种方式,其中采用name10的方法称A 直接赋值 nameB read命令 read v1C 使用命令行参数 ($1 $2 $3 ..) name$1D 使用命令的输入 username$(whoami)E 从文件读取 #cut -d : -f1 /etc/passwd > /user.listfor…...

控制器ThinkPHP6
五、控制器中对数组值的返回 在做接口服务时,很多时候回使用数组作为返回值,那么数组如何返回成 json呢? 在 tp6 中返回json 很简单,直接使用 json 进行返回即可,例如: public function index(){$resarra…...

1. Django中的URL调度器 (项目创建与简单测试)
1. 创建 Django 项目 运行以下命令创建一个名为 blog_project 的 Django 项目: django-admin startproject blog_project2. 创建博客应用 Django 中,项目可以包含多个应用。创建一个名为 blog 的应用: cd blog_project python manage.py …...
学习python的第十天之数据类型——dict字典
学习python的第十天之数据类型——dict字典 Python 中的字典(Dictionary)是一个非常强大的内置数据类型,它用来存储键值对(key-value pairs)信息。字典是无序的,这意味着它们不会记录你添加键值对的顺序&am…...

华为Mate 70临近上市:代理IP与抢购攻略
随着科技的飞速发展,智能手机已经成为我们日常生活中不可或缺的一部分。而在众多智能手机品牌中,华为一直以其卓越的技术和创新力引领着行业的发展。近日,华为Mate 70系列手机的发布会正式定档在11月26日,这一消息引发了众多科技爱…...

进程信号
目录 信号入门 1. 生活角度的信号 2. 技术应用角度的信号 3. 注意 4. 信号概念 5. 用kill -l命令可以察看系统定义的信号列表 6. 信号处理常见方式概览 产生信号 1. 通过终端按键产生信号 Core Dump 2. 调用系统函数向进程发信号 3. 由软件条件产生信号 4. 硬件异…...
uniapp 对接腾讯云IM群组成员管理(增删改查)
UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...

C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...