关于yolov5训练的那些事儿

news2024/10/5 14:05:41

1.YOLOv5 的模型系列包括从最小到最大的多种模型:YOLOv5n(Nano),YOLOv5s(Small),YOLOv5m(Medium),YOLOv5l(Large),以及 YOLOv5x(Extra Large)。这些模型的区别主要在于网络的深度和宽度,即层数和每层的通道数。具体来说,YOLOv5x 是一个参数更多、计算量更大的模型,旨在提供最高的检测精度。
2.
最小和最快的模型,适合极低计算资源的环境。
参数数量和计算量最少。
配置文件:yolov5n.yaml
yolov5n.yaml

# YOLOv5 🚀 by Ultralytics, AGPL-3.0 license

# Parameters
nc: 80  # number of classes
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.25  # layer channel multiple
anchors:
  - [10,13, 16,30, 33,23]  # P3/8
  - [30,61, 62,45, 59,119]  # P4/16
  - [116,90, 156,198, 373,326]  # P5/32

# YOLOv5 v6.0 backbone
backbone:
  # [from, number, module, args]
  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
   [-1, 3, C3, [128]],
   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
   [-1, 6, C3, [256]],
   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
   [-1, 9, C3, [512]],
   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
   [-1, 3, C3, [1024]],
   [-1, 1, SPPF, [1024, 5]],  # 9
  ]

# YOLOv5 v6.0 head
head:
  [[-1, 1, Conv, [512, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
   [-1, 3, C3, [512, False]],  # 13

   [-1, 1, Conv, [256, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)

   [-1, 1, Conv, [256, 3, 2]],
   [[-1, 14], 1, Concat, [1]],  # cat head P4
   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)

   [-1, 1, Conv, [512, 3, 2]],
   [[-1, 10], 1, Concat, [1]],  # cat head P5
   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)

   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
  ]

适合快速推理和资源受限的环境。
参数数量和计算量相对较少。
配置文件:yolov5s.yaml

# YOLOv5 🚀 by Ultralytics, AGPL-3.0 license

# Parameters
nc: 1  # number of classes
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.50  # layer channel multiple
anchors:
  - [10,13, 16,30, 33,23]  # P3/8
  - [30,61, 62,45, 59,119]  # P4/16
  - [116,90, 156,198, 373,326]  # P5/32

# YOLOv5 v6.0 backbone
backbone:
  # [from, number, module, args]
  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
   [-1, 3, C3, [128]],
   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
   [-1, 6, C3, [256]],
   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
   [-1, 9, C3, [512]],
   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
   [-1, 3, C3, [1024]],
   [-1, 1, SPPF, [1024, 5]],  # 9
  ]

# YOLOv5 v6.0 head
head:
  [[-1, 1, Conv, [512, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
   [-1, 3, C3, [512, False]],  # 13

   [-1, 1, Conv, [256, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)

   [-1, 1, Conv, [256, 3, 2]],
   [[-1, 14], 1, Concat, [1]],  # cat head P4
   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)

   [-1, 1, Conv, [512, 3, 2]],
   [[-1, 10], 1, Concat, [1]],  # cat head P5
   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)

   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
  ]

在推理速度和检测精度之间取得平衡。
参数数量和计算量适中。
配置文件:yolov5m.yaml

# YOLOv5 🚀 by Ultralytics, AGPL-3.0 license

# Parameters
nc: 80  # number of classes
depth_multiple: 0.67  # model depth multiple
width_multiple: 0.75  # layer channel multiple
anchors:
  - [10,13, 16,30, 33,23]  # P3/8
  - [30,61, 62,45, 59,119]  # P4/16
  - [116,90, 156,198, 373,326]  # P5/32

# YOLOv5 v6.0 backbone
backbone:
  # [from, number, module, args]
  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
   [-1, 3, C3, [128]],
   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
   [-1, 6, C3, [256]],
   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
   [-1, 9, C3, [512]],
   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
   [-1, 3, C3, [1024]],
   [-1, 1, SPPF, [1024, 5]],  # 9
  ]

# YOLOv5 v6.0 head
head:
  [[-1, 1, Conv, [512, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
   [-1, 3, C3, [512, False]],  # 13

   [-1, 1, Conv, [256, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)

   [-1, 1, Conv, [256, 3, 2]],
   [[-1, 14], 1, Concat, [1]],  # cat head P4
   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)

   [-1, 1, Conv, [512, 3, 2]],
   [[-1, 10], 1, Concat, [1]],  # cat head P5
   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)

   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
  ]

适合需要更高检测精度的场景。
参数数量和计算量较多,推理速度相对较慢。
配置文件:yolov5l.yaml

# YOLOv5 🚀 by Ultralytics, AGPL-3.0 license

# Parameters
nc: 80  # number of classes
depth_multiple: 1.0  # model depth multiple
width_multiple: 1.0  # layer channel multiple
anchors:
  - [10,13, 16,30, 33,23]  # P3/8
  - [30,61, 62,45, 59,119]  # P4/16
  - [116,90, 156,198, 373,326]  # P5/32

# YOLOv5 v6.0 backbone
backbone:
  # [from, number, module, args]
  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
   [-1, 3, C3, [128]],
   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
   [-1, 6, C3, [256]],
   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
   [-1, 9, C3, [512]],
   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
   [-1, 3, C3, [1024]],
   [-1, 1, SPPF, [1024, 5]],  # 9
  ]

# YOLOv5 v6.0 head
head:
  [[-1, 1, Conv, [512, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
   [-1, 3, C3, [512, False]],  # 13

   [-1, 1, Conv, [256, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)

   [-1, 1, Conv, [256, 3, 2]],
   [[-1, 14], 1, Concat, [1]],  # cat head P4
   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)

   [-1, 1, Conv, [512, 3, 2]],
   [[-1, 10], 1, Concat, [1]],  # cat head P5
   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)

   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
  ]

最大规模的模型:YOLOv5x 拥有最深的网络层数和最宽的通道数,这使得它在复杂任务上具有更高的表现力和精度。

高计算复杂度:由于网络深度和宽度的增加,YOLOv5x 的计算量也显著增加,这需要更多的计算资源(如 GPU 内存和计算能力)。

最高精度:在所有 YOLOv5 模型中,YOLOv5x 通常能够实现最高的检测精度,适用于对精度要求最高的应用场景。
yolov5x.yaml

# YOLOv5 🚀 by Ultralytics, AGPL-3.0 license

# Parameters
nc: 80  # number of classes
depth_multiple: 1.33  # model depth multiple
width_multiple: 1.25  # layer channel multiple
anchors:
  - [10,13, 16,30, 33,23]  # P3/8
  - [30,61, 62,45, 59,119]  # P4/16
  - [116,90, 156,198, 373,326]  # P5/32

# YOLOv5 v6.0 backbone
backbone:
  # [from, number, module, args]
  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
   [-1, 3, C3, [128]],
   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
   [-1, 6, C3, [256]],
   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
   [-1, 9, C3, [512]],
   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
   [-1, 3, C3, [1024]],
   [-1, 1, SPPF, [1024, 5]],  # 9
  ]

# YOLOv5 v6.0 head
head:
  [[-1, 1, Conv, [512, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
   [-1, 3, C3, [512, False]],  # 13

   [-1, 1, Conv, [256, 1, 1]],
   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)

   [-1, 1, Conv, [256, 3, 2]],
   [[-1, 14], 1, Concat, [1]],  # cat head P4
   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)

   [-1, 1, Conv, [512, 3, 2]],
   [[-1, 10], 1, Concat, [1]],  # cat head P5
   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)

   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
  ]

主要区别总结

depth_multiple 和 width_multiple:YOLOv5x 的 depth_multiple 和 width_multiple 分别是 1.33 和 1.25,相较于其他模型更大,这意味着它有更多的层和更宽的通道。
计算量和参数数量:由于网络的深度和宽度增加,YOLOv5x 具有最高的计算量和参数数量。
检测精度:YOLOv5x 通常能够提供最高的检测精度,适合需要高精度的任务。

选择合适的模型

选择哪种 YOLOv5 模型取决于你的应用场景、硬件资源和对模型性能的要求:

如果你需要快速推理且计算资源有限,选择 YOLOv5n 或 YOLOv5s。
如果你需要在推理速度和检测精度之间取得平衡,选择 YOLOv5m。
如果你需要高检测精度且有足够的计算资源,选择 YOLOv5l 或 YOLOv5x。

3.训练的时候要注意pytorch中cuda的版本和服务器上的版本是否对应:
torch中版本的查看方法如下:

import torch
print(torch.__version__)
print(torch.version.cuda)
print(torch.backends.cudnn.version())
print(torch.cuda.nccl.version())
print(torch.cuda.is_available()) # gpu是否可用
print(torch.cuda.device_count()) # 可使用的GPU个数

4.需要安装git

apt-get install git

5.为了防止关闭远程连接服务器的终端就终止训练,可以用以下几种方法:
1.nohup(no hangup)命令可以在后台运行进程,即使用户断开连接,进程也不会停止。
使用 nohup 运行你的训练脚本,并将输出重定向到一个日志文件:

nohup python3 train.py --data yolov5/data/data.yaml --epochs 300 --weights /yolov5/yolov5s.pt --cfg yolov5/models/yolov5s.yaml --batch-size 128 > train.log 2>&1 &

data.yaml内容如下

# YOLOv5 🚀 by Ultralytics, AGPL-3.0 license
# COCO 2017 dataset http://cocodataset.org by Microsoft
# Example usage: python train.py --data coco.yaml
# parent
# ├── yolov5
# └── datasets
#     └── coco  ← downloads here (20.1 GB)


# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: yolov5/dataset  # dataset root dir
train: train2.lst # train images (relative to 'path') 118287 images
val: val2.lst  # val images (relative to 'path') 5000 images

# Classes
names:
  0: tray
  

# Download script/URL (optional)
download: |
  from utils.general import download, Path


  # Download labels
  segments = False  # segment or box labels
  dir = Path(yaml['path'])  # dataset root dir
  url = 'https://github.com/ultralytics/yolov5/releases/download/v1.0/'
  urls = [url + ('coco2017labels-segments.zip' if segments else 'coco2017labels.zip')]  # labels
  download(urls, dir=dir.parent)

  # Download data
  urls = ['http://images.cocodataset.org/zips/train2017.zip',  # 19G, 118k images
          'http://images.cocodataset.org/zips/val2017.zip',  # 1G, 5k images
          'http://images.cocodataset.org/zips/test2017.zip']  # 7G, 41k images (optional)
  download(urls, dir=dir / 'images', threads=3)

nohup 会将命令放入后台运行,& 符号表示后台运行,输出将被重定向到 train.log 文件。

你可以使用 tail -f train.log 来查看日志文件的输出:

tail -f train.log 

方法2:使用 screen

screen 是一个窗口管理器,可以在一个终端会话中运行多个全屏窗口。使用 screen 可以在断开连接后继续保持会话。

启动一个新的 screen 会话:
screen -S my_training_session

在 screen 会话中运行你的训练脚本:

python3 train.py --data yolov5/data/data.yaml --epochs 300 --weights /yolov5/yolov5s.pt --cfg yolov5/models/yolov5s.yaml --batch-size 128 
断开 screen 会话:

按 Ctrl+A 然后按 D 键将会话断开。此时训练脚本仍然在后台运行。
重新连接到 screen 会话:

screen -r my_training_session

使用 tmux

tmux(terminal multiplexer)是另一个用于管理终端会话的工具,类似于 screen。

启动一个新的 tmux 会话:
tmux new -s my_training_session
在 tmux 会话中运行你的训练脚本:
python3 train.py --data yolov5/data/data.yaml --epochs 300 --weights /yolov5/yolov5s.pt --cfg yolov5/models/yolov5s.yaml --batch-size 128 
断开 tmux 会话:

按 Ctrl+B 然后按 D 键将会话断开。此时训练脚本仍然在后台运行。

重新连接到 tmux 会话:
tmux attach -t my_training_session

使用 systemd 服务

如果你需要更高级的解决方案,可以创建一个 systemd 服务来管理你的训练任务。以下是一个示例 systemd 服务文件:

创建一个服务文件,例如 /etc/systemd/system/yolov5_train.service:
[Unit]
Description=YOLOv5 Training Service
After=network.target

[Service]
ExecStart=/usr/bin/python yolov5/train.py --data yolov5/data/data.yaml --epochs 300 --weights yolov5/yolov5s.pt --cfg yolov5/models/yolov5s.yaml --batch-size 128
WorkingDirectory=yolov5
StandardOutput=append:/var/log/yolov5_train.log
StandardError=append:/var/log/yolov5_train.log
Restart=always
[Install]
WantedBy=multi-user.target

重新加载 systemd 并启动服务:

sudo systemctl daemon-reload
sudo systemctl start yolov5_train.service
sudo systemctl enable yolov5_train.service

5.上述代码的运行环境为python 3.10.12,H800:

torch                    2.3.0+cu118
torchaudio               2.3.0+cu118
torchvision              0.18.0+cu118
pillow                   10.3.0

当pillow==10.3.0训练时会报错:

AttributeError: 'FreeTypeFont' object has no attribute 'getsize'

此时可以将版本降低为pillow==9.5.0

6.训练时指定–devices时会报错,只有把–devices设置为""时可以正确运行。
7.如何监控GPU在训练时的状态

nvtop
or
watch -n 1 nvidia-smi

8.如何训练自己的数据集
首先要将数据集转换成yolov5需要的格式,yolov5中label的格式如下

0 0.5068664169787765 0.7690387016229713 0.12983770287141075 0.019975031210986267

每行包含五个参数

class x_center y_center width height

class:目标类别的索引(从0开始)。表示该目标所属的类别。
x_center:目标的中心点在图片宽度方向上的相对坐标,取值范围为 [0, 1]。计算方法为:目标中心点的绝对坐标除以图片的宽度。
y_center:目标的中心点在图片高度方向上的相对坐标,取值范围为 [0, 1]。计算方法为:目标中心点的绝对坐标除以图片的高度。
width:目标在图片宽度方向上的相对宽度,取值范围为 [0, 1]。计算方法为:目标的宽度除以图片的宽度。
height:目标在图片高度方向上的相对高度,取值范围为 [0, 1]。计算方法为:目标的高度除以图片的高度。

class:0 表示目标类别为第0类。
x_center:0.5068664169787765 表示目标中心点在图片宽度方向上的相对坐标,大约在图片宽度的 50.69% 位置。
y_center:0.7690387016229713 表示目标中心点在图片高度方向上的相对坐标,大约在图片高度的 76.90% 位置。
width:0.12983770287141075 表示目标在图片宽度方向上的相对宽度,大约占图片宽度的 12.98%。
height:0.019975031210986267 表示目标在图片高度方向上的相对高度,大约占图片高度的 1.99%。

YOLOv5 中标签文件的每行包含五个参数:类别索引、目标中心点的相对横坐标、目标中心点的相对纵坐标、目标的相对宽度、目标的相对高度。这些相对坐标和尺寸确保了标签文件与图片分辨率无关,可以适应不同尺寸的输入图片。

标注用的工具,能够直接生成YOLO的标签格式的工具 LabelImg。

pip install labelImg

还需要修改一些参数,在train.py中

在这里插入图片描述mydata.yaml中需要修改

path: yolov5/dataset  # dataset root dir
train: train2.lst # train images (relative to 'path') 118287 images
val: val2.lst  # val images (relative to 'path') 5000 images
names:
  0: person

yolov5s.yaml

nc:1 #分类个数

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

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

相关文章

【Linux硬盘读取】Windows下读取Linux系统的文件解决方案:Linux Reader4.5 By DiskInternals

前言 相信做机器视觉相关的很多人都会安装 Windows 和 Linux 双系统。在 Linux 下,我们可以很方便的访问Windows的磁盘,反过来却不行。但是这又是必须的。通过亲身体验,向大家推荐这么一个工具,可以让 Windows 方便的访问 Ext 2/3…

Linux 文件的权限信息解读 chmod修改权限 数字序号表示权限

ls -l #列出当前文件 显示详细信息 drwxr-xr-x. 2 dpc test 6 Jun 15 07:45 test.txt共分为三部分 drwxr-xr-x.:表示文件和文件夹的权限信息dpc :文件,文件夹所属的用户test : 文件和文件夹所属的用户组 drwxr-xr-x 解读 d表示为…

实用软件下载:BetterZip 5最新安装包及详细安装教程

BetterZip是一款功能强大的Mac解/压缩软件,可以满足用户对文件压缩、解压、加密和保护等方面的需求。以下是关于BetterZip软件的主要功能、特点和使用方法的详细介绍,以及对其用户友好度、稳定性和安全性的评价。 安 装 包 获 取 地 址: BetterZip 5-安…

【尚庭公寓SpringBoot + Vue 项目实战】公寓管理(十一)

【尚庭公寓SpringBoot Vue 项目实战】公寓管理(十一) 文章目录 【尚庭公寓SpringBoot Vue 项目实战】公寓管理(十一)1、业务介绍2、逻辑模型介绍3、接口开发3.1、保存或更新公寓信息3.2、根据条件分页查询详细信息3.3、根据ID获…

深度学习(七)——神经网络的卷积操作

卷积操作 一、torch.nn中Convolution Layers函数的介绍 1. 参数介绍 nn.Conv1d: Conv取自Convolution的前四个字母,1d代表的是一个一维操作。 nn.Conv2d: 2d表示是一个二维的操作,比如图像就是一个二维的。 其余参数不常用,见官网文档&am…

分布式事务AP控制方案(下)

分布式事务控制方案 本篇文章给出一种要求高可用性(AP思想)的分布式事务控制方案 上篇回顾:点我查看 分布式事务控制方案1、前景回顾2、数据库和缓存的操作3、分布式文件系统1)页面静态化2)远程调用3)调用…

adb卸载系统应用

1.进入shell adb shell2.查看所有包 pm list packages3.查找包 如查找vivo相关的包 pm list packages | grep vivo发现包太多了,根本不知道哪个是我们想卸载的应用 于是可以打开某应用,再查看当前运行应用的包名 如下: 4.查找当前前台运行的包名 打开某应用,在亮屏状态输入 …

卫星通讯助力船舶可视化监控:EasyCVR视频汇聚系统新应用

一、背景 随着科技的不断进步和社会治安的日益严峻,视频监控系统已经成为维护公共安全和提升管理效率的重要工具。传统的视频监控主要依赖于有线传输,但受到地域限制、布线成本高等因素的影响,其应用范围和效果受到一定限制。而卫星通讯传输…

学会python——显示进度条(python实例五)

目录 1、认识Python 2、环境与工具 2.1 python环境 2.2 Visual Studio Code编译 3、进度条显示 3.1 代码构思 3.2 代码示例 3.3 运行结果 4、总结 1、认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读…

ComfyUI中使用 SD3 模型(附模型下载详细说明)

文章目录 背景安装方式一方式二 测试 背景 StabilityAI近日开源了Stable Diffusion 3 Medium,简称 SD3,该模型拥有着20亿参数。其特点如下: 提升了整体图片的质量、真实感提供了三种文本编码器可组合使用,有助于在性能和效率之间…

《大道平渊》· 拾肆 —— 不要为不属于你负责的事情负责

《平渊》 拾肆 "客观世界如是观照,控制自己,不要介入因果。" 美国开国总统华盛顿说过, 不要干涉欧洲事务。 可是他的后任都不听, 于是纷纷卷入了无穷的麻烦之中。 不要为不属于你负责的事情负责。 别人的行为和你有什么关系? 就…

Stable-Diffusion-WebUI 常用提示词插件

SixGod提示词插件 SixGod提示词插件可以帮助用户快速生成逼真、有创意的图像。其中包含,清空正向提示词”和“清空负向提示词、提示词起手式包含人物、服饰、人物发型等各个维度的提示词、一键清除正面提示词与负面提示词、随机灵感关键词、提示词分类组合随机、动…

<Rust><iced>基于rust使用iced库构建GUI实例:图片的格式转换程序

前言 本专栏是Rust实例应用。 环境配置 平台:windows 软件:vscode 语言:rust 库:iced、iced_aw 概述 本文是专栏第二篇实例,是一个图像格式转换程序,基于rust图像处理库image以及文件处理库rfd。 UI演示&…

Python读取wps中的DISPIMG图片格式

需求: 读出excel的图片内容,这放在微软三件套是很容易的,但是由于wps的固有格式,会出现奇怪的问题,只能读出:类似于 DISPIMG(“ID_2B83F9717AE1XXXX920xxxx644C80DB1”,1) 【该DISPIMG函数只有wps才拥有】 …

阿里新发布的UniAnimate现高效人像动画生成;在ComfyUI中使用Stable 3模型;音频版的gpt2o;将 PDF 文档转换为音频播客

✨ 1: UniAnimate 阿里新发布的UniAnimate通过统一的视频扩散模型,实现高效人像动画生成,支持长视频生成 UniAnimate 是一种专注于一致性人像动画生成的统一视频扩散模型。该模型通过映射参考图像、姿势指导和噪声视频到一个共同特征空间,实…

docker安装nginx并且加上映射

随机启动nginx,方便复制配置文件 docker run -p 80:80 --name nginx -d nginx:1.10将容器内的配置文件拷贝到当前目录 docker container cp nginx:/etc/nginx .别忘了后面的点 修改文件名称: mv nginx conf 把这个 conf 移动到/mydata/nginx 下 终止原…

金融行业运维实践案例

确保金融系统的稳定运行和数据安全,业务对可靠性、安全性和合规性具有超高的要求。保障IT系统持续高效稳定运维,是金融行业运维的核心诉求。 在实践应用中,有以下方面问题需要解决。 1、数据分散。业务发展快速,数量多&#xff…

IDEA创建lib目录,导入jar

IDEA创建lib目录,导入jar lib第一种创建方法: 当发现项目没有lib目录时,File>>>Project Structure 打开Artifacts目录 lib第二种创建方法: 按需选择需要的jar包或者全选即可 lib第三种创建方法:

基于51单片机的电子秤的设计

第一章 功能说明 本设计系统以单片机AT89S52为控制核心,实现电子秤的基本控制功能。在设计系统时,为了更好地采用模块化设计法,分步设计了各个单元功能模块。 系统的硬件部分包括最小系统部分、数据采集部分、人机交互界面和系统电源四大部分。最小系统部分主要包括AT89S52和…

【刷力扣】23. 合并 K 个升序链表(dummy节点技巧 + 分治思维 + 优先队列)

目录 一、合并升序链表问题二、题目:[21. 合并两个有序链表](https://leetcode.cn/problems/merge-two-sorted-lists/description/)1、掌握dummy节点的技巧 三、题目:[23. 合并 K 个升序链表](https://leetcode.cn/problems/merge-k-sorted-lists/descri…