低照度增强算法(图像增强+目标检测+代码)

本文介绍

在增强低光图像时,许多深度学习算法基于Retinex理论。然而,Retinex模型并没有考虑到暗部隐藏的损坏或者由光照过程引入的影响。此外,这些方法通常需要繁琐的多阶段训练流程,并依赖于卷积神经网络,在捕捉长距离依赖关系方面存在局限性。

本文提出了一种简单而又有原则性的单阶段Retinex-based框架(ORF)。ORF首先估计照明信息来点亮低光图像,然后恢复损坏以生成增强的图像。我们设计了一个基于照明指导的Transformer(IGT),利用照明表示来指导不同光照条件下区域之间的非局部交互建模。将IGT插入到ORF中,我们得到了我们的算法Retinexformer。

全面的定量和定性实验证明了我们的Retinexformer在13个基准测试上明显优于现有的方法。通过用户研究和在低光物体检测上的应用,也揭示了我们方法的潜在实际价值。

结果展示

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

上图可以看出,图像低照度增强,显著增强了目标检测的recall值以及置信度,因此图像增强对目标检测、目标跟踪等计算机视觉领域有重要意义。

代码运行

1. 创建环境

  • 创建Conda环境
conda create -n Retinexformer python=3.7
conda activate Retinexformer
  • 安装依赖项
conda install pytorch=1.11 torchvision cudatoolkit=11.3 -c pytorch
pip install matplotlib scikit-learn scikit-image opencv-python yacs joblib natsort h5py tqdm tensorboard
pip install einops gdown addict future lmdb numpy pyyaml requests scipy yapf lpips
  • 安装BasicSR
python setup.py develop --no_cuda_ext

以上是创建和配置Retinexformer环境的步骤。首先,使用Conda创建一个名为Retinexformer的环境,并激活该环境。然后,通过conda和pip安装所需的依赖项,包括PyTorch、matplotlib、scikit-learn等。最后,使用python命令运行setup.py文件来安装BasicSR。完成这些步骤后,即可进入Retinexformer环境并开始使用。

在这里插入图片描述

2. 准备数据集

下载以下数据集:

LOL-v1 百度网盘 (提取码: cyh2), 谷歌网盘

LOL-v2 百度网盘 (提取码: cyh2), 谷歌网盘

SID 百度网盘 (提取码: gplv), 谷歌网盘

SMID 百度网盘 (提取码: btux), 谷歌网盘

SDSD-indoor 百度网盘 (提取码: jo1v), 谷歌网盘

SDSD-outdoor 百度网盘 (提取码: uibk), 谷歌网盘

MIT-Adobe FiveK 百度网盘 (提取码:cyh2), 谷歌网盘, 官方网站

请按照sRGB设置处理MIT Adobe FiveK数据集。

然后按照以下方式组织这些数据集:
  |--data   |    |--LOLv1|    |    |--Train|    |    |    |--input|    |    |    |    |--100.png|    |    |    |    |--101.png|    |    |    |     ...|    |    |    |--target|    |    |    |    |--100.png|    |    |    |    |--101.png|    |    |    |     ...|    |    |--Test|    |    |    |--input|    |    |    |    |--111.png|    |    |    |    |--146.png|    |    |    |     ...|    |    |    |--target|    |    |    |    |--111.png|    |    |    |    |--146.png|    |    |    |     ...|    |--LOLv2|    |    |--Real_captured|    |    |    |--Train|    |    |    |    |--Low|    |    |    |    |    |--00001.png|    |    |    |    |    |--00002.png|    |    |    |    |     ...|    |    |    |    |--Normal|    |    |    |    |    |--00001.png|    |    |    |    |    |--00002.png|    |    |    |    |     ...|    |    |    |--Test|    |    |    |    |--Low|    |    |    |    |    |--00690.png|    |    |    |    |    |--00691.png|    |    |    |    |     ...|    |    |    |    |--Normal|    |    |    |    |    |--00690.png|    |    |    |    |    |--00691.png|    |    |    |    |     ...|    |    |--Synthetic|    |    |    |--Train|    |    |    |    |--Low|    |    |    |    |   |--r000da54ft.png|    |    |    |    |   |--r02e1abe2t.png|    |    |    |    |    ...|    |    |    |    |--Normal|    |    |    |    |   |--r000da54ft.png|    |    |    |    |   |--r02e1abe2t.png|    |    |    |    |    ...|    |    |    |--Test|    |    |    |    |--Low|    |    |    |    |   |--r00816405t.png|    |    |    |    |   |--r02189767t.png|    |    |    |    |    ...|    |    |    |    |--Normal|    |    |    |    |   |--r00816405t.png|    |    |    |    |   |--r02189767t.png|    |    |    |    |    ...|    |--SDSD|    |    |--indoor_static_np|    |    |    |--input|    |    |    |    |--pair1|    |    |    |    |   |--0001.npy|    |    |    |    |   |--0002.npy|    |    |    |    |    ...|    |    |    |    |--pair2|    |    |    |    |   |--0001.npy|    |    |    |    |   |--0002.npy|    |    |    |    |    ...|    |    |    |     ...|    |    |    |--GT|    |    |    |    |--pair1|    |    |    |    |   |--0001.npy|    |    |    |    |   |--0002.npy|    |    |    |    |    ...|    |    |    |    |--pair2|    |    |    |    |   |--0001.npy|    |    |    |    |   |--0002.npy|    |    |    |    |    ...|    |    |    |     ...|    |    |--outdoor_static_np|    |    |    |--input|    |    |    |    |--MVI_0898|    |    |    |    |   |--0001.npy|    |    |    |    |   |--0002.npy|    |    |    |    |    ...|    |    |    |    |--MVI_0918|    |    |    |    |   |--0001.npy|    |    |    |    |   |--0002.npy|    |    |    |    |    ...|    |    |    |     ...|    |    |    |--GT|    |    |    |    |--MVI_0898|    |    |    |    |   |--0001.npy|    |    |    |    |   |--0002.npy|    |    |    |    |    ...|    |    |    |    |--MVI_0918|    |    |    |    |   |--0001.npy|    |    |    |    |   |--0002.npy|    |    |    |    |    ...|    |    |    |     ...|    |--SID|    |    |--short_sid2|    |    |    |--00001|    |    |    |    |--00001_00_0.04s.npy|    |    |    |    |--00001_00_0.1s.npy|    |    |    |    |--00001_01_0.04s.npy|    |    |    |    |--00001_01_0.1s.npy|    |    |    |     ...|    |    |    |--00002|    |    |    |    |--00002_00_0.04s.npy|    |    |    |    |--00002_00_0.1s.npy|    |    |    |    |--00002_01_0.04s.npy|    |    |    |    |--00002_01_0.1s.npy|    |    |    |     ...|    |    |     ...|    |    |--long_sid2|    |    |    |--00001|    |    |    |    |--00001_00_0.04s.npy|    |    |    |    |--00001_00_0.1s.npy|    |    |    |    |--00001_01_0.04s.npy|    |    |    |    |--00001_01_0.1s.npy|    |    |    |     ...|    |    |    |--00002|    |    |    |    |--00002_00_0.04s.npy|    |    |    |    |--00002_00_0.1s.npy|    |    |    |    |--00002_01_0.04s.npy|    |    |    |    |--00002_01_0.1s.npy|    |    |    |     ...|    |    |     ...|    |--SMID|    |    |--SMID_LQ_np|    |    |    |--0001|    |    |    |    |--0001.npy|    |    |    |    |--0002.npy|    |    |    |     ...|    |    |    |--0002|    |    |    |    |--0001.npy|    |    |    |    |--0002.npy|    |    |    |     ...|    |    |     ...|    |    |--SMID_Long_np|    |    |    |--0001|    |    |    |    |--0001.npy|    |    |    |    |--0002.npy|    |    |    |     ...|    |    |    |--0002|    |    |    |    |--0001.npy|    |    |    |    |--0002.npy|    |    |    |     ...|    |    |     ...|    |--FiveK|    |    |--train|    |    |    |--input|    |    |    |    |--a0099-kme_264.jpg|    |    |    |    |--a0101-kme_610.jpg|    |    |    |     ...|    |    |    |--target|    |    |    |    |--a0099-kme_264.jpg|    |    |    |    |--a0101-kme_610.jpg|    |    |    |     ...|    |    |--test|    |    |    |--input|    |    |    |    |--a4574-DSC_0038.jpg|    |    |    |    |--a4576-DSC_0217.jpg|    |    |    |     ...|    |    |    |--target|    |    |    |    |--a4574-DSC_0038.jpg|    |    |    |    |--a4576-DSC_0217.jpg|    |    |    |     ...

3 测试

下载我们的模型文件从百度网盘 (提取码: cyh2) 或 谷歌网盘,然后将它们放在名为 pretrained_weights 的文件夹中。

下面是测试命令的示例:

# LOL-v1
python3 Enhancement/test_from_dataset.py --opt Options/RetinexFormer_LOL_v1.yml --weights pretrained_weights/LOL_v1.pth --dataset LOL_v1# LOL-v2-real
python3 Enhancement/test_from_dataset.py --opt Options/RetinexFormer_LOL_v2_real.yml --weights pretrained_weights/LOL_v2_real.pth --dataset LOL_v2_real# LOL-v2-synthetic
python3 Enhancement/test_from_dataset.py --opt Options/RetinexFormer_LOL_v2_synthetic.yml --weights pretrained_weights/LOL_v2_synthetic.pth --dataset LOL_v2_synthetic# SID
python3 Enhancement/test_from_dataset.py --opt Options/RetinexFormer_SID.yml --weights pretrained_weights/SID.pth --dataset SID# SMID
python3 Enhancement/test_from_dataset.py --opt Options/RetinexFormer_SMID.yml --weights pretrained_weights/SMID.pth --dataset SMID# SDSD-indoor
python3 Enhancement/test_from_dataset.py --opt Options/RetinexFormer_SDSD_indoor.yml --weights pretrained_weights/SDSD_indoor.pth --dataset SDSD_indoor# SDSD-outdoor
python3 Enhancement/test_from_dataset.py --opt Options/RetinexFormer_SDSD_outdoor.yml --weights pretrained_weights/SDSD_outdoor.pth --dataset SDSD_outdoor# FiveK
python3 Enhancement/test_from_dataset.py --opt Options/RetinexFormer_FiveK.yml --weights pretrained_weights/FiveK.pth --dataset FiveK

4 训练

# LOL-v1
python3 basicsr/train.py --opt Options/RetinexFormer_LOL_v1.yml# LOL-v2-real-
python3 basicsr/train.py --opt Options/RetinexFormer_LOL_v2_real.yml# LOL-v2-synthetic
python3 basicsr/train.py --opt Options/RetinexFormer_LOL_v2_synthetic.yml# SID1. Create Envirement
Make Conda Environment
conda create -n Retinexformer python=3.7
conda activate Retinexformer
Install Dependencies
conda install pytorch=1.11 torchvision cudatoolkit=11.3 -c pytorch
pip install matplotlib scikit-learn scikit-image opencv-python yacs joblib natsort h5py tqdm tensorboard
pip install einops gdown addict future lmdb numpy pyyaml requests scipy yapf lpips
Install BasicSR
python setup.py develop --no_cuda_ext
 2. Prepare Dataset
Download the following datasets:LOL-v1 Baidu Disk (code: cyh2), Google DriveLOL-v2 Baidu Disk (code: cyh2), Google DriveSID Baidu Disk (code: gplv), Google DriveSMID Baidu Disk (code: btux), Google DriveSDSD-indoor Baidu Disk (code: jo1v), Google DriveSDSD-outdoor Baidu Disk (code: uibk), Google DriveMIT-Adobe FiveK Baidu Disk (code:cyh2), Google Drive, OfficialPlease process the MIT Adobe FiveK dataset following the sRGB setting​
Then organize these datasets as follows:
​
|--data   |    |--LOLv1|    |    |--Train|    |    |    |--input|    |    |    |    |--100.png|    |    |    |    |--101.png|    |    |    |     ...|    |    |    |--target|    |    |    |    |--100.png|    |    |    |    |--101.png|    |    |    |     ...|    |    |--Test|    |    |    |--input|    |    |    |    |--111.png|    |    |    |    |--146.png|    |    |    |     ...|    |    |    |--target|    |    |    |    |--111.png|    |    |    |    |--146.png|    |    |    |     ...|    |--LOLv2|    |    |--Real_captured|    |    |    |--Train|    |    |    |    |--Low|    |    |    |    |    |--00001.png|    |    |    |    |    |--00002.png|    |    |    |    |     ...|    |    |    |    |--Normal|    |    |    |    |    |--00001.png|    |    |    |    |    |--00002.png|    |    |    |    |     ...|    |    |    |--Test|    |    |    |    |--Low|    |    |    |    |    |--00690.png|    |    |    |    |    |--00691.png|    |    |    |    |     ...|    |    |    |    |--Normal|    |    |    |    |    |--00690.png|    |    |    |    |    |--00691.png|    |    |    |    |     ...|    |    |--Synthetic|    |    |    |--Train|    |    |    |    |--Low|    |    |    |    |   |--r000da54ft.png|    |    |    |    |   |--r02e1abe2t.png|    |    |    |    |    ...|    |    |    |    |--Normal|    |    |    |    |   |--r000da54ft.png|    |    |    |    |   |--r02e1abe2t.png|    |    |    |    |    ...|    |    |    |--Test|    |    |    |    |--Low|    |    |    |    |   |--r00816405t.png|    |    |    |    |   |--r02189767t.png|    |    |    |    |    ...|    |    |    |    |--Normal|    |    |    |    |   |--r00816405t.png|    |    |    |    |   |--r02189767t.png|    |    |    |    |    ...|    |--SDSD|    |    |--indoor_static_np|    |    |    |--input|    |    |    |    |--pair1|    |    |    |    |   |--0001.npy|    |    |    |    |   |--0002.npy|    |    |    |    |    ...|    |    |    |    |--pair2|    |    |    |    |   |--0001.npy|    |    |    |    |   |--0002.npy|    |    |    |    |    ...|    |    |    |     ...|    |    |    |--GT|    |    |    |    |--pair1|    |    |    |    |   |--0001.npy|    |    |    |    |   |--0002.npy|    |    |    |    |    ...|    |    |    |    |--pair2|    |    |    |    |   |--0001.npy|    |    |    |    |   |--0002.npy|    |    |    |    |    ...|    |    |    |     ...|    |    |--outdoor_static_np|    |    |    |--input|    |    |    |    |--MVI_0898|    |    |    |    |   |--0001.npy|    |    |    |    |   |--0002.npy|    |    |    |    |    ...|    |    |    |    |--MVI_0918|    |    |    |    |   |--0001.npy|    |    |    |    |   |--0002.npy|    |    |    |    |    ...|    |    |    |     ...|    |    |    |--GT|    |    |    |    |--MVI_0898|    |    |    |    |   |--0001.npy|    |    |    |    |   |--0002.npy|    |    |    |    |    ...|    |    |    |    |--MVI_0918|    |    |    |    |   |--0001.npy|    |    |    |    |   |--0002.npy|    |    |    |    |    ...|    |    |    |     ...|    |--SID|    |    |--short_sid2|    |    |    |--00001|    |    |    |    |--00001_00_0.04s.npy|    |    |    |    |--00001_00_0.1s.npy|    |    |    |    |--00001_01_0.04s.npy|    |    |    |    |--00001_01_0.1s.npy|    |    |    |     ...|    |    |    |--00002|    |    |    |    |--00002_00_0.04s.npy|    |    |    |    |--00002_00_0.1s.npy|    |    |    |    |--00002_01_0.04s.npy|    |    |    |    |--00002_01_0.1s.npy|    |    |    |     ...|    |    |     ...|    |    |--long_sid2|    |    |    |--00001|    |    |    |    |--00001_00_0.04s.npy|    |    |    |    |--00001_00_0.1s.npy|    |    |    |    |--00001_01_0.04s.npy|    |    |    |    |--00001_01_0.1s.npy|    |    |    |     ...|    |    |    |--00002|    |    |    |    |--00002_00_0.04s.npy|    |    |    |    |--00002_00_0.1s.npy|    |    |    |    |--00002_01_0.04s.npy|    |    |    |    |--00002_01_0.1s.npy|    |    |    |     ...|    |    |     ...|    |--SMID|    |    |--SMID_LQ_np|    |    |    |--0001|    |    |    |    |--0001.npy|    |    |    |    |--0002.npy|    |    |    |     ...|    |    |    |--0002|    |    |    |    |--0001.npy|    |    |    |    |--0002.npy|    |    |    |     ...|    |    |     ...|    |    |--SMID_Long_np|    |    |    |--0001|    |    |    |    |--0001.npy|    |    |    |    |--0002.npy|    |    |    |     ...|    |    |    |--0002|    |    |    |    |--0001.npy|    |    |    |    |--0002.npy|    |    |    |     ...|    |    |     ...|    |--FiveK|    |    |--train|    |    |    |--input|    |    |    |    |--a0099-kme_264.jpg|    |    |    |    |--a0101-kme_610.jpg|    |    |    |     ...|    |    |    |--target|    |    |    |    |--a0099-kme_264.jpg|    |    |    |    |--a0101-kme_610.jpg|    |    |    |     ...|    |    |--test|    |    |    |--input|    |    |    |    |--a4574-DSC_0038.jpg|    |    |    |    |--a4576-DSC_0217.jpg|    |    |    |     ...|    |    |    |--target|    |    |    |    |--a4574-DSC_0038.jpg|    |    |    |    |--a4576-DSC_0217.jpg|    |    |    |     ...
​
</details>We also provide download links for LIME, NPE, MEF, DICM, and VV datasets that have no ground truth:Baidu Disk (code: cyh2)or Google Drive&nbsp;                    3. Testing
Download our models from Baidu Disk (code: cyh2) or Google Drive. Put them in folder pretrained_weights
# LOL-v1
python3 Enhancement/test_from_dataset.py --opt Options/RetinexFormer_LOL_v1.yml --weights pretrained_weights/LOL_v1.pth --dataset LOL_v1
​
# LOL-v2-real
python3 Enhancement/test_from_dataset.py --opt Options/RetinexFormer_LOL_v2_real.yml --weights pretrained_weights/LOL_v2_real.pth --dataset LOL_v2_real
​
# LOL-v2-synthetic
python3 Enhancement/test_from_dataset.py --opt Options/RetinexFormer_LOL_v2_synthetic.yml --weights pretrained_weights/LOL_v2_synthetic.pth --dataset LOL_v2_synthetic
​
# SID
python3 Enhancement/test_from_dataset.py --opt Options/RetinexFormer_SID.yml --weights pretrained_weights/SID.pth --dataset SID
​
# SMID
python3 Enhancement/test_from_dataset.py --opt Options/RetinexFormer_SMID.yml --weights pretrained_weights/SMID.pth --dataset SMID
​
# SDSD-indoor
python3 Enhancement/test_from_dataset.py --opt Options/RetinexFormer_SDSD_indoor.yml --weights pretrained_weights/SDSD_indoor.pth --dataset SDSD_indoor
​
# SDSD-outdoor
python3 Enhancement/test_from_dataset.py --opt Options/RetinexFormer_SDSD_outdoor.yml --weights pretrained_weights/SDSD_outdoor.pth --dataset SDSD_outdoor
​
# FiveK
python3 Enhancement/test_from_dataset.py --opt Options/RetinexFormer_FiveK.yml --weights pretrained_weights/FiveK.pth --dataset FiveK
&nbsp;4. Training
Feel free to check our training logs from Baidu Disk (code: cyh2) or Google Drivepython3 basicsr/train.py --opt Options/RetinexFormer_SID.yml# SMID
python3 basicsr/train.py --opt Options/RetinexFormer_SMID.yml# SDSD-indoor
python3 basicsr/train.py --opt Options/RetinexFormer_SDSD_indoor.yml# SDSD-outdoorxunlian
python3 basicsr/train.py --opt Options/RetinexFormer_SDSD_outdoor.yml
在增强低光图像时,许多深度学习算法基于Retinex理论。然而,Retinex模型并没有考虑到暗部隐藏的损坏或者由光照过程引入的影响。此外,这些方法通常需要繁琐的多阶段训练流程,并依赖于卷积神经网络,在捕捉长距离依赖关系方面存在局限性。本文提出了一种简单而又有原则性的单阶段Retinex-based框架(ORF)。ORF首先估计照明信息来点亮低光图像,然后恢复损坏以生成增强的图像。我们设计了一个基于照明指导的Transformer(IGT),利用照明表示来指导不同光照条件下区域之间的非局部交互建模。将IGT插入到ORF中,我们得到了我们的算法Retinexformer。全面的定量和定性实验证明了我们的Retinexformer在13个基准测试上明显优于现有的方法。通过用户研究和在低光物体检测上的应用,也揭示了我们方法的潜在实际价值。
# FiveK
python3 basicsr/train.py --opt Options/RetinexFormer_FiveK.yml

5 图像评价指标对比

在这里插入图片描述

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

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

相关文章

python+vue驾校驾驶理论考试模拟系统

管理员的主要功能有&#xff1a; 1.管理员输入账户登陆后台 2.个人中心&#xff1a;管理员修改密码和账户信息 3.用户管理&#xff1a;管理员可以对用户信息进行添加&#xff0c;修改&#xff0c;删除&#xff0c;查询 4.添加选择题&#xff1a;管理员可以添加选择题目&#xf…

ElementUI首页导航和左侧菜单静态页面的实现,以及Mockjs和总线的介绍

目录 前言 一. Mock.js 1.1 什么是Mock.js 1.2 Mockjs的安装与配置 1.2.1 安装Mock.js 1.2.2 引入Mock.js 1.3 Mockjs的使用 1.3.1 定义数据测试文件 1.3.2 mock拦截ajax请求 二. 首页导航以及左侧菜单的搭建 2.1 什么是总线 2.2 创建三个vue组件 首页AppMain.vue组…

QT 6.5下载安装及配置教程

一、下载 今天打算换一个QT安装版本,去官网看了一眼发现变成了在线安装。 本来官方下载的就慢,现在更是雪上加霜,现在给大家推荐几种下载方式。 1、国内镜像 中国科学技术大学&#xff1a;http://mirrors.ustc.edu.cn/qtproject/ 清华大学&#xff1a;https://mirrors.tuna.ts…

电压放大器在超声成像中的工作原理和应用

在超声成像中&#xff0c;电压放大器是一种重要的仪器&#xff0c;主要用于放大从探头传来的微弱信号&#xff0c;并将其转换为可以处理和显示的电信号。下面安泰电子将详细介绍电压放大器在超声成像中的工作原理和应用。 图&#xff1a;超声成像 工作原理 在超声成像中&#x…

第二届全国高校计算机技能竞赛——Java赛道

第二届全国高校计算机技能竞赛——Java赛道 小赛跳高 签到题 import java.util.*; public class Main{public static void main(String []args) {Scanner sc new Scanner(System.in);double n sc.nextDouble();for(int i 0; i < 4; i) {n n * 0.9;}System.out.printf(&…

【深度学习实验】前馈神经网络(一):使用PyTorch构建神经网络的基本步骤

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入库 1. 定义x,w,b 2. 计算净活性值z 3. 实例化线性层并进行前向传播 4. 打印结果 5. 代码整合 一、实验介绍 本实验使用了PyTorch库来构建和操作神经网络模型&#xff0c;主要是关…

18672-2014 枸杞 学习记录

声明 本文是学习GB-T 18672-2014 枸杞. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了枸杞的质量要求、试验方法、检验规则、标志、包装、运输和贮存。 本标准适用于经干燥加工制成的各品种的枸杞成熟果实。 2 规范性引用文件…

时序预测 | MATLAB实现POA-CNN-BiGRU鹈鹕算法优化卷积双向门控循环单元时间序列预测

时序预测 | MATLAB实现POA-CNN-BiGRU鹈鹕算法优化卷积双向门控循环单元时间序列预测 目录 时序预测 | MATLAB实现POA-CNN-BiGRU鹈鹕算法优化卷积双向门控循环单元时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现POA-CNN-BiGRU鹈鹕算法优化卷积双向…

【Pycharm/Anaconda配置环境记录】

文章目录 1、Pytorch配置2、mmcv配置 1、Pytorch配置 查看虚拟环境创建虚拟环境 conda env list&#xff1a;查看虚拟环境 conda create --name env_name python3.7&#xff1a;创建虚拟环境 conda activate env_name&#xff1a;激活/进入该虚拟环境 查看自己的CUDA版本以及P…

田忌赛马Java

给定两个大小相等的数组 A 和 B&#xff0c;A 相对于 B 的优势可以用满足 Ai] > Bi] 的索的数目来描述。 返回 A的任意排列&#xff0c;使其相对于 B 的优势最大化. 其实核心思想就是让A中的数最小且刚好大于B中数,我们可以用链表来存储A和B中对应的数据,至于B比A中所有的数…

DragGesture/拖动手势 的使用

1. DragGesture 拖动手势操作 1.1 实现 /// 拖动手势 struct DragGestureBootcamp: View {State var offset: CGSize .zerovar body: some View {//dragGesture1dragGesture2}/// 方式二var dragGesture2: some View{ZStack {VStack {Text("\(offset.width)")Space…

【算法练习Day5】有效的字母异位词 两个数组的交集快乐数两数之和

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;练题 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 文章目录 有效的字母异位词两个数…

MySQL数据库入门到精通8--进阶篇( MySQL管理)

7. MySQL管理 7.1 系统数据库 Mysql数据库安装完成后&#xff0c;自带了一下四个数据库&#xff0c;具体作用如下&#xff1a; 7.2 常用工具 7.2.1 mysql 该mysql不是指mysql服务&#xff0c;而是指mysql的客户端工具。 语法 &#xff1a; mysql [options] [database] 选…

【Elasticsearch】简单搜索(三)

简介&#xff1a;Elasticsearch&#xff08;ES&#xff09;是一个开源的分布式搜索和分析引擎&#xff0c;用于快速存储、搜索和分析大量数据。它具有高性能、可扩展性和灵活性的特点&#xff0c;被广泛用于构建实时搜索、日志分析、数据可视化等应用。 这篇文章主要介绍检索相…

「深度学习之优化算法」(十九)蚁狮算法

1. 蚁狮算法简介 (以下描述,均不是学术用语,仅供大家快乐的阅读)    蚁狮是一种昆虫,城里长大的我没有见过这玩意儿,请教了农村长大小的伙伴,依然没见过,这玩意儿可能在我们生活的地方分布较少。 (图片及介绍来自百度百科)    蚁狮算法(Ant Lion Optimization…

笔试强训Day3

学了一坤时Linux&#xff0c;赶紧来俩道题目放松放松。 T1&#xff1a;在字符串中找出连续最长的数字串 链接&#xff1a;在字符串中找出连续最长的数字串__牛客网 输入一个字符串&#xff0c;返回其最长的数字子串&#xff0c;以及其长度。若有多个最长的数字子串&#xff0c…

Linux 入门:基本指令

本篇文章来介绍我们在初学Linux时可以会碰倒的一些基本指令&#xff0c;让我们对这些指令有一个基本的了解。 目录 01. ls 指令 02. pwd 命令 03. cd 指令 04. touch 指令 05. mkdir 指令&#xff08;重要&#xff09; 06. rmdir指令 && rm 指令&#xff08;重…

HTML+CSS综合案例二:CSS简介

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title> CSS简介</title><style>h1{color: #33…

WebGL绘制圆形的点

目录 前言 如何实现圆形的点&#xff1f; 片元着色器内置变量&#xff08;gl_FragCoord、gl_PointCoord&#xff09; gl_PointCoord的含义 示例程序&#xff08;RoundedPoint.js&#xff09; 代码详解 前言 本文将讨论示例程序RoundedPoint&#xff0c;该程序绘制了圆…

高效记录,事项井然——OmniOutliner 5 Pro for Mac 信息大纲记录工具

OmniOutliner 5 Pro for Mac 是一款强大的信息大纲记录工具&#xff0c;帮助您高效组织和管理各种信息。无论是个人笔记、工作计划、项目管理还是学习资料&#xff0c;这款应用都能满足您的需求&#xff0c;并使您的日常工作更加井然有序。 OmniOutliner 5 Pro 提供了一套丰富…