当前位置: 首页 > news >正文

Learning Invariant Representation for Unsupervised Image Restoration

Learning Invariant Representation for Unsupervised Image Restoration (Paper reading)

Wenchao Du, Sichuan University, CVPR20, Cited:63, Code, Paper

1. 前言

近年来,跨域传输被应用于无监督图像恢复任务中。但是,直接应用已有的框架,由于缺乏有效的监督,会导致翻译图像出现域漂移问题。相反,我们提出了一种无监督学习方法,该方法明确地从噪声数据中学习不变表示并重建清晰的观察结果。为此,我们将离散解纠缠表示和对抗性领域自适应引入到一般的领域转移框架中,并借助额外的自监督模块(包括背景和语义一致性约束),在双域约束(如特征域和图像域)下学习鲁棒表示。对合成和真实降噪任务的实验表明,该方法的降噪性能可与现有的有监督降噪和无监督降噪方法相媲美,且收敛速度比其他领域自适应方法更快、更稳定。

2. 整体思想

本文提出了一种无监督low-level的方法。主要的思想是将清晰图像和降质图像分别编码到各自的域中,然后从这些域中重建他们。类似于自编码器的思想。

3. 方法

我们的目标是从噪声输入中学习抽象的中间表示,并重建清晰的观察结果。在某种程度上,无监督图像复原可以看作是一个特定的域转移问题,即从噪声域到清晰域。因此,将该方法注入到一般的领域转移架构中,如图2所示。

在这里插入图片描述

在监督域转移中,我们得到从联合分布 P X , Y ( x , y ) P_{X, Y} (x, y) PX,Y(x,y)中抽取的样本 ( x , y ) (x, y) (x,y),其中 X X X y y y是两个图像域。对于无监督域翻译,从边缘分布PX (x)和PY (y)中提取样本(x, y)。为了从边缘样本推断联合分布,我们提出了一个共享潜空间假设,即在共享潜空间 Z Z Z中存在一个共享潜代码 z z z,从而我们可以从这个代码中恢复两幅图像。给定来自联合分布的样本 ( x , y ) (x, y) (x,y),该过程表示为
z = E X ( x ) = E Y ( y ) , x = G X ( z ) , y = G Y ( z ) z = E_X(x)=E_Y(y), \quad x = G_X(z),y=G_Y(z) z=EX(x)=EY(y),x=GX(z),y=GY(z)
关键的一步是如何实现这个共享潜在空间假设。为此,一种有效的策略是通过共享权重编码器共享高级表示,该编码器从统一分布中采样特征。然而,对于IR图像来说,潜在表示只包含语义是不合适的,这会导致恢复图像的域偏移,例如细节模糊和背景不一致。因此,我们尝试从输入中学习包含更丰富的纹理和语义特征的更广义的表示,即不变表示。为此,在该方法中引入了基于对抗域自适应的离散表示学习和自监督约束模块。细节将在接下来的小节中描述。

3.1 离散表示学习

离散表示旨在从输入中计算潜在编码,其中 z z z包含尽可能多的纹理和语义信息。为此,我们使用两个自编码器分别对 { E X , G X } \{E_X, G_X\} {EX,GX} { E Y , G Y } \{E_Y, G_Y\} {EY,GY}进行建模。给定任意未配对样本 ( x , y ) (x, y) (x,y),其中 x ∈ X x∈X xX y ∈ Y y∈Y yY分别表示来自不同域的噪声样本和干净样本,将Eq. 1重新表述为 z X = E X ( x ) z_X = E_X (x) zX=EX(x) z Y = E Y ( y ) z_Y = E_Y (y) zY=EY(y)。进一步,IR可以表示为$ F x → y ( x ) = G Y ( z X ) F^{x→y}(x) = G_Y(z_X) Fxy(x)=GY(zX)。然而,由于噪声总是附着在高频信号上,由于噪声水平和类型的变化,直接重建干净图像是很困难的,这需要强大的域发生器和鉴别器。因此,我们将解缠表示引入到我们的架构中。

解缠表示。对于噪声样本 x x x,使用额外的噪声编码器 E X N E^N_X EXN来对变化的噪声水平和类型进行建模。自重构由 x = G X ( z X , z X N ) x=G_X(z_X,z^N_X) x=GX(zXzXN)表示,其中 z X = E X ( x ) z_X=E_X(x) zX=EX(x) z X N = E X N ( x ) z^N_X=E^N_X(x) zXN=EXN(x)。假设潜在码 z X z_X zX z Y z_Y zY在共享空间中服从相同的分布, { z X , z Y } ∈ Z \{z_X,z_Y\}∈Z {zXzY}Z,类似于图像平移,无监督图像恢复可以分为两个阶段:前向平移和后向重建。

前向平移。我们首先从 ( x , y ) (x,y) (xy)和额外噪声码 z X N z^N_X zXN中提取表示 { z X , z Y } \{z_X,z_Y\} {zXzY}。恢复和退化可以表示为:
x ~ X → Y = G y ( z X ) y ~ Y → X = G X ( z y + z X N ) \tilde x^{X \to Y} = G_y(z_X) \\ \quad \\ \tilde y^{Y\to X}= G_X(z_y + z_X^N) x~XY=Gy(zX)y~YX=GX(zy+zXN)
其中 X → Y X→Y XY表示复原的清晰样本, Y → X Y→X YX表示退化的噪声样本。 G X G_X GX G Y G_Y GY被视为特定的域生成器。

反向交叉重建。在执行第一次平移后,可以通过交换输入来实现重建 x ~ X → Y \tilde x^{X \to Y} x~XY y ~ Y → X \tilde y^{Y \to X} y~YX表示:
x ^ = G X ( E y ( x ~ X → Y ) + E x N ( y ~ Y → X ) ) y ^ = G y ( E X ( y ~ Y → X ) ) \hat x = G_X(E_y(\tilde x^{X \to Y})+ E_x^N(\tilde y^{Y \to X})) \\ \quad \\ \hat y = G_y(E_X(\tilde y^{Y \to X})) x^=GX(Ey(x~XY)+ExN(y~YX))y^=Gy(EX(y~YX))
其中, x ^ \hat x x^ y ^ \hat y y^表示重构输入。为了加强这一约束,我们为X和Y域添加了交叉周期一致性损失 L C C L^{CC} LCC:
L X C C ( G X , G Y , E X , E Y , E X N ) = E X ( ∣ ∣ G X ( E y ( x ~ X → Y ) + E X N ( y ~ Y → X ) ) − x ∣ ∣ 1 ) L Y C C ( G X , G Y , E X , E Y , E X N ) = E Y ( ∣ ∣ G Y ( E y ( y ~ Y → X ) ) − y ∣ ∣ 1 ) L^{CC}_X(G_X,G_Y,E_X,E_Y,E^N_X) = \mathbb{E}_X(||G_X(E_y(\tilde x^{X\to Y})+E^N_X(\tilde y^{Y\to X}))-x||_1)\\ \quad \\ L^{CC}_Y(G_X,G_Y,E_X,E_Y,E^N_X) = \mathbb{E}_Y(||G_Y(E_y(\tilde y^{Y\to X}))-y||_1)\\ LXCC(GX,GY,EX,EY,EXN)=EX(∣∣GX(Ey(x~XY)+EXN(y~YX))x1)LYCC(GX,GY,EX,EY,EXN)=EY(∣∣GY(Ey(y~YX))y1)
对抗性领域适应。另一个因素是如何将潜在表示 z X z_X zX z Y z_Y zY嵌入到共享空间中。受无监督域自适应的启发,我们通过对抗性学习而不是共享权重编码器来实现它。我们的目标是促进服从相似分布的输入的表示,同时保留输入的更丰富的纹理和语义信息。因此,在我们的体系结构中使用了表示判别器 D R D_R DR。我们将这一特征表示为对抗损失 L a d v R L^R_{adv} LadvR:
L a d v R ( E X , E Y , D R ) = E X [ 1 2 l o g D R ( z X ) + 1 2 l o g ( 1 − D R ( z X ) ) ] + E Y [ 1 2 l o g D R ( z Y ) + 1 2 l o g ( 1 − D R ( z Y ) ) ] L_{adv}^R(E_X,E_Y,D_R) = \mathbb{E}_X\left[\frac{1}{2}logD_R(z_X)+\frac{1}{2}log(1-D_R(z_X))\right]+ \mathbb{E}_Y\left[\frac{1}{2}logD_R(z_Y)+\frac{1}{2}log(1-D_R(z_Y))\right] LadvR(EX,EY,DR)=EX[21logDR(zX)+21log(1DR(zX))]+EY[21logDR(zY)+21log(1DR(zY))]

3.2 自监督限制

由于转移后的图像缺乏有效的监督信号,仅依靠特征域判别约束将不可避免地导致生成图像的域移位问题。为了加快收敛速度,同时学习更鲁棒的表示,引入了自监督模块,包括背景一致性模块(BCM)和语义一致性模块(SCM),以提供更合理和可靠的监督。

BCM的目的是保持转移图像和输入图像之间的背景一致性。类似的策略也被应用于自监督图像重建任务。这些方法利用梯度误差约束重构图像,通过模糊算子对输入和输出图像进行平滑处理,如高斯模糊核和制导滤波。与之不同的是,在我们的模块中,对恢复的图像直接使用L1损失,而不是梯度误差损失,如图3所示,在我们的实验中,这是一种简单而有效的方法,可以在保持背景一致性的同时恢复更精细的纹理。具体来说,采用多尺度高斯模糊算子分别获得多尺度特征。因此,背景一致性损失可表示为:
L B C = ∑ σ = 5 , 9 , 15 λ σ ∣ ∣ ( B σ ( X ) − B σ ( X ~ ) ) ∣ ∣ 1 L_{BC} = \sum_{\sigma=5,9,15} \lambda_\sigma||(B_\sigma(X)-B_\sigma(\tilde X))||_1 LBC=σ=5,9,15λσ∣∣(Bσ(X)Bσ(X~))1
其中, B σ ( ⋅ ) B_σ(·) Bσ()为模糊核为 σ σ σ的高斯模糊算子, λ σ λ_σ λσ为平衡不同高斯模糊水平误差的超参数。 X X X X ~ \tilde X X~表示原始输入和转移后的输出,即 { x , x ~ X → Y } \{x, \tilde x^{X→Y}\} {x,x~XY} { Y , y ~ Y → X } \{Y, \tilde y^{Y→X}\} {Y,y~YX}。基于对图像去噪的实验尝试,当σ ={5,9,15}时,我们将 λ σ λ_σ λσ分别设置为{0.25,0.5,1.0}。
在这里插入图片描述
此外,受感知损失的启发,预训练模型的深层特征只包含语义含义,这些语义含义是无噪声的或噪声很小的。因此,与一般的特征损失是通过浅层特征之间的相似性来恢复更精细的图像纹理细节不同,我们只从损坏和恢复的图像中提取更深层的特征作为语义表示来保持一致性,称为语义一致性损失 L S C L_{SC} LSC。它可以被表示为
L S C = ∣ ∣ ϕ l ( X ) − ϕ l ( X ~ ) ∣ ∣ 2 2 L_{SC} = ||\phi_l(X)-\phi_l(\tilde X)||^2_2 LSC=∣∣ϕl(X)ϕl(X~)22
其中 ϕ ( ⋅ ) \phi(·) ϕ()表示预训练模型的 l l l层特征。在我们的实验中,我们在ImageNet上使用了VGG-19预训练网络的conv5-1层。

4. 实验

测试的时候,直接用图2中的 E X E_X EX G Y G_Y GY进行图像复原。其实可以看到,一些指标甚至不如DnCNN。但这个不是问题~

在这里插入图片描述

在这里插入图片描述

相关文章:

Learning Invariant Representation for Unsupervised Image Restoration

Learning Invariant Representation for Unsupervised Image Restoration (Paper reading) Wenchao Du, Sichuan University, CVPR20, Cited:63, Code, Paper 1. 前言 近年来,跨域传输被应用于无监督图像恢复任务中。但是,直接应用已有的框架&#xf…...

1.4.C++项目:仿muduo库实现并发服务器之buffer模块的设计

项目完整版在: 一、buffer模块: 缓冲区模块 Buffer模块是一个缓冲区模块,用于实现通信中用户态的接收缓冲区和发送缓冲区功能。 二、提供的功能 存储数据,取出数据 三、实现思想 1.实现换出去得有一块内存空间,采…...

AndroidStudio精品插件集

官网 项目地址:Github博客地址:Studio 精品插件推荐 使用需知 所有插件在 Android Studio 2022.3.1.18(长颈鹿)上测试均没有问题,推荐使用此版本Android Studio 2022.3.1.18(长颈鹿)正式版下…...

java图书管理系统

一、 引言 图书管理系统是一个用于图书馆或书店管理图书信息、借阅记录和读者信息的应用程序。本系统使用Java Swing框架进行开发,提供直观的用户界面,方便图书馆管理员或书店工作人员对图书信息进行管理。以下是系统的设计、功能和实现的详细报告。 二…...

大屏自适应容器组件-Vue3+TS

1.引言 在做数字大屏时,图表能跟着浏览器的尺寸自动变化,本文采用Vue3前端框架,采用TypeScript语言,封装了一个大屏自适应组件,将需要显示的图表放入组件的插槽中,就能实现自适应屏幕大小的效果。 2.实际…...

java图书信息管理

一、项目概述 本图书信息管理系统旨在提供一个直观的用户界面,用于管理图书馆或书店的图书信息。系统包括图书添加、查询、借阅和归还等功能。 二、系统架构 系统采用JavaSwing作为前端UI框架,后端使用Java Servlet处理业务逻辑,数据存储在…...

apache服务器出现No input file specified.解决方案

APACHE服务器出现No input file specified.解决方案 thinkcmf程序默认的.htaccess里面的规则&#xff1a; <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA…...

你写过的最蠢的代码是?——全栈开发篇

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…...

正点原子嵌入式linux驱动开发——TF-A初探

上一篇笔记中&#xff0c;正点原子的文档简单讲解了一下什么是TF-A&#xff0c;并且也学习了如何编译TF-A。但是TF-A是如何运行的&#xff0c;它的一个运行流程并未涉及。TF-A的详细运行过程是很复杂的&#xff0c;涉及到很多ARM处理器底层知识&#xff0c;所以这一篇笔记的内容…...

【网安别学成开发】之——python篇

经典入门编程题 1.猜数字 经典的猜数字游戏&#xff0c;几乎所有人学编程时都会做。 功能描述&#xff1a; 随机选择一个三位以内的数字作为答案。用户输入一个数字&#xff0c;程序会提示大了或是小了&#xff0c;直到用户猜中。 #!/usr/bin/env python3import randomresu…...

vue图片显示

一、Vue图片显示方法&#xff1a; 1.直接使用<img>标签&#xff1a; 最简单的方法是使用<img>标签&#xff0c;并将图片的URL作为src属性的值。例如&#xff1a; <img src"path/to/your/image.jpg" alt"Image"> 如果是绝对路径&#x…...

S32K144 GPIO编程

前面的文章介绍了如何在MDK-Keil下面进行S32K144的开发&#xff0c;下面就使用该工程模板进行GPIO LED的编程试验。 1. 开发环境 S32K144EVB-Q100开发板MDK-Keil Jlink 2. 硬件连接 S32K144EVB-Q100开发板关于LED的原理图如下&#xff1a; 也就是具体连接关系如下&#xf…...

域名备案流程(个人备案,腾讯云 / 阿里云)

文章目录 1.网站备案的目的2.备案准备的材料2.1 网站域名2.2 云资源或备案授权码2.3 电子材料 3.首次个人备案准备的材料3.1 主体相关3.2 域名相关3.3 网站相关3.4 网站服务相关3.5 变更相关 4.个人备案流程4.1 登录系统4.2 填写备案信息&#x1f340; 填写备案省份&#x1f34…...

子网ip和子网掩码的关系

子网ip和子网掩码的关系 一个IP地址被分为两部分&#xff1a;网络地址和主机地址。这是通过子网掩码来实现的。 子网掩码&#xff08;Subnet Mask&#xff09;是一个32位的二进制数&#xff0c;它用来区分一个IP地址中的网络地址和主机地址。在子网掩码中&#xff0c;网络地址…...

openGauss学习笔记-88 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用将磁盘表转换为MOT

文章目录 openGauss学习笔记-88 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用将磁盘表转换为MOT88.1 前置条件检查88.2 转换88.3 转换示例 openGauss学习笔记-88 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用将磁盘表转换为MOT …...

网络-Ajax

文章目录 前言一、Ajax优点&#xff1a;缺点&#xff1a; 二、使用步骤XNLHttpRequest对象完整代码 总结 前言 本文主要记录Ajax技术的简介&#xff0c;以及用法。 一、Ajax Ajax是一组用于在Web浏览器和Web服务器之间进行异步通信的Web开发技术。 它代表着Asynchronous Java…...

Autowired和Resource的关系

相同点对于下面的代码来说&#xff0c;如果是Spring容器的话&#xff0c;两个注解的功能基本是等价的&#xff0c;他们都可以将bean注入到对应的field中 不同点但是请注意&#xff0c;这里说的是基本相同&#xff0c;说明还是有一些不同点的&#xff1a; byName和byType匹配顺…...

HashTable, HashMap, ConcurrentHashMap 之间的区别

HashMap: 线程不安全. key 允许为 null。 Hashtable: 线程安全. 使用 synchronized 锁 Hashtable 对象, 效率较低. key 不允许为 null.。只是简单的把关键方法上加上了 synchronized 关键字。如 get 和 set &#xff0c;这相当于直接针对 Hashtable 对象本身加锁&#xff0c;如…...

Maven下载源码出现:Cannot download sources Sources not found for org.springframwork...

Maven下载源码出现&#xff1a;Cannot download sources Sources not found for org.springframwork… 最近重装了IDEA再次查看源码时发现总是报错&#xff0c;网上找了很多&#xff0c;发现解决方法都是在项目终端执行如下命令&#xff1a; mvn dependency:resolve -Dclassi…...

C进阶--字符函数和字符串函数介绍

✨ 更多细节参考 cplusplus.com/reference/cstring/ 使用方式&#xff1a; ⭕ 求字符串长度 &#x1f58c; strlen 函数原型&#xff1a; size_t strlen ( const char * str ); 作用&#xff1a; 获取字符串长度 ✨补充&#xff1a; ⭐字符串以 \0 作为结束标志&…...

算法通关村第五关-二叉树遍历(层数优先)之经典问题:简单的层序遍历、层序遍历分层、自底向上的层序遍历

基础知识&#xff08;青铜挑战&#xff09; 了解二叉树的基础知识 实战训练&#xff08;白银挑战&#xff09; 简单的层序遍历 基本的层序遍历思路很清晰&#xff1a; 给你一个二叉树根节点&#xff0c;你需要创建一个队列 queue 来遍历节点&#xff0c;一个链表 list 来存储…...

C++左右值及引用

1 左值和右值 简单记法&#xff1a;能取地址的是左值&#xff0c;不能取地址的是右值 右值一般是常量 例&#xff1a; i 是右值&#xff0c;因为先把 i 赋值给临时变量&#xff0c;临时变量在1&#xff0c;而临时变量是将亡值&#xff0c;&i取地址会报错 i是左值&#xf…...

如何备份和恢复数据库

目录 1.xtrabackup 是什么2.全量备份3.增量备份4.使用备份进行恢复5.原理6.参考 本文主要介绍如何使用xtrabackup 进行数据库的备份和恢复&#xff0c;并在最后介绍了原理。 1.xtrabackup 是什么 XtraBackup是由Percona开发的一款开源的MySQL数据库备份工具。它可以对InnoDB和…...

简化数据库操作:探索 Gorm 的约定优于配置原则

文章目录 使用 ID 作为主键数据库表名TableName临时指定表名列名时间戳自动填充CreatedAtUpdatedAt时间戳类型Gorm 采用约定优于配置的原则,提供了一些默认的命名规则和行为,简化开发者的操作。 使用 ID 作为主键 默认情况下,GORM 会使用 ID 作为表的主键: type User st…...

保姆级Anaconda安装教程

一.anaconda下载 建议使用清华大学开源软件镜像站进行下载&#xff0c;使用官网下载速度比较慢。 anaconda清华大学开源软件镜像站 &#xff1a; https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 一路next即可&#xff0c;注意添加环境变量得选项都勾上。 二.验证…...

你写过的最蠢的代码是?——后端篇

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页: &#x1f405;&#x1f43e;猫头虎的博客&#x1f390;《面试题大全专栏》 &#x1f995; 文章图文并茂&#x1f996…...

快速幂

876. 快速幂求逆元 - AcWing题库 AC代码&#xff1a; #include <iostream> #include <cstring> #include <algorithm>using namespace std;typedef long long ll;int n;int qmi(int a,int k,int p) {int res1;while(k){if(k&1)res(ll)res*a%p;k>&…...

【题解 动态规划】 Colored Rectangles

题目描述&#xff1a; 分析&#xff1a; 乍一看我还以为是贪心&#xff01; 猫 想想感觉没问题 但是局部最优并不能保证全局最优 比如这组数据 19 19 19 19 20 20 20 20如果按照贪心的做法&#xff0c;答案是20*20*2 但是其实答案是19*20*4 因此这道题用贪心是不对的 于是我…...

VsCode好用的扩展插件

开发插件推荐: 别名路径跳转 >> 点击引用的变量名&#xff0c;ctrl 点击 跳转文件Auto Rename Tag >> 修改标签前缀&#xff0c;后缀标签会同时修改Chinees 中文(简体)Code Runner >> 纯js文件右键点击run code即可底部终端打印file-icons-mac >> ma…...

Linux shell编程学习笔记4:修改命令行提示符格式(内容和颜色)

一、命令行提示符格式内容因shell类型而异 Linux终端命令行提示符内容格式则因shell的类型而异&#xff0c;例如CoreLinux默认的shell是sh&#xff0c;其命令行提示符为黑底白字&#xff0c;内容为&#xff1a; tcbox:/$ 其中&#xff0c;tc为当前用户名&#xff0c;box为主机…...

微信微网站开发报价单/百度人工服务24小时热线电话

...

电脑怎么下免费wordpress/广州seo网络推广员

有关51单片机中断的形式和C语言编程格式void INT0()interrupt 0 using 1 {.... ..... } interrupt 0 指明是外部中断0&#xff1b; interrupt 1 指明是定时器中断0&#xff1b; interrupt 2 指明是外部中断1&#xff1b; interrupt 3 指明是定时器中断1&#xff1b; interrupt …...

网站icp备案证书/重庆百度快照优化

偶然看到了华为高薪招聘八位博士的新闻&#xff0c;我比较感兴趣&#xff0c;于是找来他们的专业方向&#xff0c;想看看华为到底在哪些领域上下血本了。 自动学习机器视觉导航软件无线电建模语言设计与软件形式化方法功耗控制大数据计算数学一人未知同时这八位博士研究方向各不…...

美食网站开发的目标/外链工厂 外链

TITLE: SQL Server 安装程序失败。 ------------------------------ SQL Server 安装程序遇到以下错误: MsiGetProductInfo 无法检索 Product Code 为“{95120000-00B9-0409-0000-0000000FF1CE}”的包的 ProductVersion。错误代码: 1605。。 遇到这个错误时&#xff0c;解决方…...

wordpress auto get rss/武汉关键词seo

根据数据调查&#xff0c;2017年建筑业的36次较大事故中&#xff0c;因坍塌伤亡的人员占到了81%&#xff0c;其中大部分原因是工作人员没有按照规定佩戴安全帽。为此不少企业为此煞费苦心&#xff0c;比如在门口贴上佩戴安全帽的标语&#xff0c;做安全知识培训&#xff0c;甚至…...

北京软件开发公司滕迎江/seo投放是什么意思

原文地址&#xff1a;http://blog.chinaunix.net/uid-7573623-id-2048961.htmllinux系统默认目录颜色是蓝色的&#xff0c;在黑背景下看不清楚&#xff0c;可以通过以下2种方法修改ls查看的颜色方法一&#xff1a;1、在~/.bash_profile文件中添加LS_COLORSexport LS_COLORSno00…...