参考资料 ultralytics/data/loaders.py
备注
该文件可从https://github.com/ultralytics/ultralytics/blob/main/ ultralytics/data/loaders .py 获取。如果您发现问题,请通过提交 Pull Request🛠️ 帮助修复。谢谢🙏!
ultralytics.data.loaders.SourceTypes
dataclass
ultralytics.data.loaders.LoadStreams
支持 RTSP、RTMP、HTTP 和 TCP 流。
属性
名称 | 类型 | 说明 |
---|---|---|
sources |
str
|
视频流的源输入路径或 URL。 |
vid_stride |
int
|
视频帧频跨距,默认为 1。 |
buffer |
bool
|
是否对输入流进行缓冲,默认为 "假"。 |
running |
bool
|
指示流媒体线程是否正在运行的标志。 |
mode |
str
|
设置为 "流 "表示实时捕捉。 |
imgs |
list
|
每个数据流的图像帧列表。 |
fps |
list
|
每个数据流的 FPS 列表。 |
frames |
list
|
每个数据流的总帧数列表。 |
threads |
list
|
每个数据流的线程列表。 |
shape |
list
|
每个溪流的形状列表。 |
caps |
list
|
每个数据流的 cv2.VideoCapture 对象列表。 |
bs |
int
|
处理批次大小。 |
方法
名称 | 说明 |
---|---|
__init__ |
初始化流加载器 |
update |
在守护进程中读取流帧。 |
close |
关闭流加载器并释放资源。 |
__iter__ |
返回该类的迭代器对象。 |
__next__ |
返回源路径、转换后的图像和原始图像,以供处理。 |
__len__ |
返回数据源对象的长度。 |
源代码 ultralytics/data/loaders.py
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 |
|
__init__(sources='file.streams', vid_stride=1, buffer=False)
初始化实例变量并检查输入流形状是否一致。
源代码 ultralytics/data/loaders.py
__iter__()
__len__()
__next__()
返回源路径、转换图像和原始图像,以供处理。
源代码 ultralytics/data/loaders.py
close()
关闭流加载器并释放资源。
源代码 ultralytics/data/loaders.py
update(i, cap, stream)
阅读流 i
守护进程中的帧。
源代码 ultralytics/data/loaders.py
ultralytics.data.loaders.LoadScreenshots
YOLOv8 截图数据加载器。
该类管理屏幕截图图像的加载,以便使用YOLOv8 进行处理。
适用于 yolo predict source=screen
.
属性
名称 | 类型 | 说明 |
---|---|---|
source |
str
|
表示要捕捉哪个屏幕的源输入。 |
screen |
int
|
要捕捉的屏幕编号。 |
left |
int
|
屏幕截图区域的左坐标。 |
top |
int
|
屏幕截图区域的最高坐标。 |
width |
int
|
屏幕截图区域的宽度。 |
height |
int
|
屏幕截图区域的高度。 |
mode |
str
|
设置为 "流 "表示实时捕捉。 |
frame |
int
|
捕获帧的计数器。 |
sct |
mss
|
屏幕截图对象来自 |
bs |
int
|
批量大小,设为 1。 |
monitor |
dict
|
监控配置详情。 |
方法
名称 | 说明 |
---|---|
__iter__ |
返回一个迭代器对象。 |
__next__ |
捕捉下一张截图并返回。 |
源代码 ultralytics/data/loaders.py
__init__(source)
源 = [screen_number left top width height](像素)。
源代码 ultralytics/data/loaders.py
__iter__()
__next__()
mss 屏幕捕捉:以 np 数组形式从屏幕上获取原始像素。
源代码 ultralytics/data/loaders.py
ultralytics.data.loaders.LoadImagesAndVideos
YOLOv8 图像/视频数据加载器。
该类管理图像和视频数据的加载和预处理,用于YOLOv8 。它支持从 它支持从各种格式加载,包括单个图像文件、视频文件以及图像和视频路径列表。
属性
名称 | 类型 | 说明 |
---|---|---|
files |
list
|
图像和视频文件路径列表。 |
nf |
int
|
文件(图像和视频)总数。 |
video_flag |
list
|
表示文件是视频(真)还是图像(假)的标志。 |
mode |
str
|
当前模式,"图像 "或 "视频"。 |
vid_stride |
int
|
视频帧频步长,默认为 1。 |
bs |
int
|
批量大小,该类设置为 1。 |
cap |
VideoCapture
|
OpenCV 的视频捕捉对象。 |
frame |
int
|
视频帧计数器。 |
frames |
int
|
视频的总帧数。 |
count |
int
|
迭代计数器,迭代过程中初始化为 0。 |
方法
名称 | 说明 |
---|---|
_new_video |
为给定的视频路径创建一个新的 cv2.VideoCapture 对象。 |
源代码 ultralytics/data/loaders.py
251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 |
|
__init__(path, batch=1, vid_stride=1)
初始化 Dataloader,如果未找到文件,则引发 FileNotFoundError。
源代码 ultralytics/data/loaders.py
__iter__()
__len__()
__next__()
返回下一批图像或视频帧及其路径和元数据。
源代码 ultralytics/data/loaders.py
ultralytics.data.loaders.LoadPilAndNumpy
从 PIL 和 Numpy 数组中加载图像,进行批处理。
该类旨在管理 PIL 和 Numpy 格式图像数据的加载和预处理。 它执行基本的验证和格式转换,以确保图像符合下游处理所需的格式。 下游处理所需的格式。
属性
名称 | 类型 | 说明 |
---|---|---|
paths |
list
|
图像路径或自动生成的文件名列表。 |
im0 |
list
|
存储为 Numpy 数组的图像列表。 |
mode |
str
|
正在处理的数据类型,默认为 "图像"。 |
bs |
int
|
批次大小,相当于 |
方法
名称 | 说明 |
---|---|
_single_check |
将单张图片验证并格式化为 Numpy 数组。 |
源代码 ultralytics/data/loaders.py
__init__(im0)
初始化 PIL 和 Numpy 数据加载器。
源代码 ultralytics/data/loaders.py
__iter__()
__len__()
__next__()
返回批次路径、图像、处理过的图像、无、""。
ultralytics.data.loaders.LoadTensor
从torch 加载图像。Tensor 数据。
该类管理从PyTorch 张量中加载和预处理图像数据,以便进一步处理。
属性
名称 | 类型 | 说明 |
---|---|---|
im0 |
Tensor
|
包含图像的输入tensor 。 |
bs |
int
|
批次大小,根据 |
mode |
str
|
当前模式,设置为 "图像"。 |
paths |
list
|
图像路径或文件名列表。 |
count |
int
|
迭代计数器,迭代过程中初始化为 0。 |
方法
名称 | 说明 |
---|---|
_single_check |
验证并可能修改输入tensor 。 |
源代码 ultralytics/data/loaders.py
__init__(im0)
初始化Tensor Dataloader。
__iter__()
__len__()
ultralytics.data.loaders.autocast_list(source)
将不同类型的源代码列表合并为 numpy 数组或 PIL 图像列表。
源代码 ultralytics/data/loaders.py
ultralytics.data.loaders.get_best_youtube_url(url, use_pafy=True)
从给定的 YouTube 视频中读取质量最好的 MP4 视频流的 URL。
该函数使用 pafy 或 yt_dlp 库从 YouTube 提取视频信息。然后找到最高质量的 有视频编解码器但无音频编解码器的最高质量 MP4 格式,并返回该视频流的 URL。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
url |
str
|
YouTube 视频的 URL。 |
所需 |
use_pafy |
bool
|
使用 pafy 软件包,默认为 true,否则使用 yt_dlp 软件包。 |
True
|
返回:
类型 | 说明 |
---|---|
str
|
质量最好的 MP4 视频流的 URL,如果找不到合适的视频流,则为 "无"。 |