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

本文介绍

在增强低光图像时,许多深度学习算法基于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…

Ubuntu部署nginx

一、 下载nginx相关依赖包 apt-get install gccapt-get install libpcre3 libpcre3-devapt-get install zlib1g zlib1g-devsudo apt-get install opensslsudo apt-get install libssl-dev二、新建nginx的安装目录 cd /optmkdir nginxcd nginx三、通过wget下载nginx安装包 wg…

2024快手校招面试真题汇总及其解答(一)

1.spring springmvc springboot区别 Spring、Spring MVC 和 Spring Boot 都是 Java 框架,它们之间存在一定的联系和区别。 Spring 是 Java 的一个开源框架,它提供了一系列的模块,用于简化 Java 应用程序的开发。Spring 的核心模块是 IoC 容器和 AOP 框架,它们可以帮助开发…

SpringBatch ItemProcessor详解

ItemProcessor 在Spring Batch中用于对每个读取的数据项&#xff08;item&#xff09;进行处理或转换。 一、ItemProcessor 具体功能 数据清洗&#xff08;Data Cleansing&#xff09;&#xff1a;清理数据以确保数据的一致性和准确性。这可以包括去除不必要的空格、特殊字符、…

2025快手校招面试真题汇总及其解答(二)

6. hashmap数据结构 HashMap 是一种散列表,它是一种根据键值对来存储数据的数据结构。HashMap 的特点是插入、查找和删除操作的时间复杂度都是 O(1),因此它是一种非常高效的数据结构。 HashMap 的工作原理是将键值对存储在一个数组中,每个键值对都由一个哈希函数来映射到数…

pyspark 检测任务输出目录是否空,避免读取报错

前言 在跑调度任务时候&#xff0c;有时候子任务需要依赖前置任务的输出&#xff0c;但类似读取 Parquet 或者 Orc 文件时&#xff0c;如果不判断目录是否为空&#xff0c;在输出为空时会报错&#xff0c;所以需要 check 一下&#xff0c;此外Hadoop通常在写入数据时会在目录中…

简易好用的C++结构体与JSON文本相互转换开源库

开源库地址&#xff1a; https://github.com/bk192077/struct_mapping.git 支持结构体&#xff0c;std::strng, std::vcetor, std::list, std::map, std::multimap等类型 注意&#xff1a;需要std c17 及以上版本支持 测试程序&#xff1a; #include "struct_mapping…

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

在超声成像中&#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鹈鹕算法优化卷积双向…

PHP生成带中文的图片

imagettftext() 函数是 PHP 中的一个内置函数&#xff0c;用于使用 TrueType 字体将文本写入图像。 句法&#xff1a; 数组imagettftext&#xff08;资源$image&#xff0c;float $size&#xff0c;float $angle&#xff0c; int $x&#xff0c;int $y&#xff0c;…

【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;万事皆有期待 文章目录 有效的字母异位词两个数…

Java中的匿名内部类(看这篇就够了)

匿名内部类是一种没有名称的局部内部类&#xff0c;它通常用于创建只需使用一次的类的实例。以下是有关Java匿名内部类的一些重要信息&#xff1a; 定义匿名内部类&#xff1a; 匿名内部类通常用于创建实现某个接口或继承某个类的子类的对象。它没有类名&#xff0c;直接继承或…