์ฐธ์กฐ ultralytics/utils/ops.py
์ฐธ๊ณ
์ด ํ์ผ์ https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/utils/ops .py์์ ํ์ธํ ์ ์์ต๋๋ค. ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ํ ๋ฆฌํ์คํธ (๐ ๏ธ) ๋ฅผ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ก ๋์์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค ๐!
ultralytics.utils.ops.Profile
๋ฒ ์ด์ค: ContextDecorator
YOLOv8 ํ๋กํ ํด๋์ค. Profile()์ ์ฌ์ฉํ์ฌ ๋ฐ์ฝ๋ ์ดํฐ๋ก ์ฌ์ฉํ๊ฑฐ๋ 'with Profile():'์ ์ฌ์ฉํ์ฌ ์ปจํ ์คํธ ๊ด๋ฆฌ์๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
์
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
__enter__()
__exit__(type, value, traceback)
__init__(t=0.0, device=None)
ํ๋กํ ํด๋์ค๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
t |
float
|
์ด๊ธฐ ์๊ฐ์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ 0.0์ ๋๋ค. |
0.0
|
device |
device
|
๋ชจ๋ธ ์ถ๋ก ์ ์ฌ์ฉ๋๋ ์ฅ์น์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ ์์(CPU)์ ๋๋ค. |
None
|
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
__str__()
ํ๋กํ์ผ๋ฌ์์ ๋์ ๋ ๊ฒฝ๊ณผ ์๊ฐ์ ๋ํ๋ด๋ ์ฌ๋์ด ์ฝ์ ์ ์๋ ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค.
ultralytics.utils.ops.segment2box(segment, width=640, height=640)
์ด๋ฏธ์ง ๋ด๋ถ ์ ์ฝ ์กฐ๊ฑด์ ์ ์ฉํ์ฌ ์ธ๊ทธ๋จผํธ ๋ ์ด๋ธ 1๊ฐ๋ฅผ ์์ ๋ ์ด๋ธ 1๊ฐ๋ก ๋ณํํฉ๋๋ค(์: (xy1, xy2, ...)๋ฅผ (xyxy)๋ก ๋ณํ).
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
segment |
Tensor
|
์ธ๊ทธ๋จผํธ ๋ ์ด๋ธ |
ํ์ |
width |
int
|
์ด๋ฏธ์ง์ ๋๋น์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ 640์ ๋๋ค. |
640
|
height |
int
|
์ด๋ฏธ์ง์ ๋์ด์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ 640์ ๋๋ค. |
640
|
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
ndarray
|
์ธ๊ทธ๋จผํธ์ ์ต์๊ฐ๊ณผ ์ต๋๊ฐ์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.scale_boxes(img1_shape, boxes, img0_shape, ratio_pad=None, padding=True, xywh=False)
๊ฒฝ๊ณ ์์(๊ธฐ๋ณธ๊ฐ์ xyxy ํ์)์ ํฌ๊ธฐ๋ฅผ ์๋ ์ง์ ํ ์ด๋ฏธ์ง์ ๋ชจ์์์ ๋ค๋ฅธ ์ด๋ฏธ์ง์ ๋ชจ์(0_shape)์ผ๋ก (img1_shape)์ ์ง์ ๋ ์ด๋ฏธ์ง์ ๋ชจ์์์ ๋ค๋ฅธ ์ด๋ฏธ์ง์ ๋ชจ์(img0_shape)์ผ๋ก ์ฌ์กฐ์ ํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
img1_shape |
tuple
|
๊ฒฝ๊ณ ์์๋ฅผ ์ํ ์ด๋ฏธ์ง์ ๋ชจ์์ผ๋ก, (๋์ด, ๋๋น) ํ์์ ๋๋ค. |
ํ์ |
boxes |
Tensor
|
์ด๋ฏธ์ง์ ์๋ ์ค๋ธ์ ํธ์ ๊ฒฝ๊ณ ์์๋ฅผ (x1, y1, x2, y2) ํ์์ผ๋ก ์ง์ ํฉ๋๋ค. |
ํ์ |
img0_shape |
tuple
|
๋์ ์ด๋ฏธ์ง์ ๋ชจ์์ (๋์ด, ๋๋น) ํ์์ผ๋ก ์ ๋ ฅํฉ๋๋ค. |
ํ์ |
ratio_pad |
tuple
|
์์ ํฌ๊ธฐ ์กฐ์ ์ ์ํ (๋น์จ, ํจ๋)์ ํํ์ ๋๋ค. ์ ๊ณตํ์ง ์์ผ๋ฉด ๋น์จ๊ณผ ํจ๋๋ ๋ ์ด๋ฏธ์ง์ ํฌ๊ธฐ ์ฐจ์ด์ ๋ฐ๋ผ ๋ ๋ ์ด๋ฏธ์ง์ ํฌ๊ธฐ ์ฐจ์ด์ ๋ฐ๋ผ ๊ณ์ฐ๋ฉ๋๋ค. |
None
|
padding |
bool
|
True์ด๋ฉด ์์๊ฐ yolo ์คํ์ผ๋ก ์ฆ๊ฐ๋ ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. False์ด๋ฉด ์ ๊ธฐ์ ์ผ๋ก ๋ฆฌ์ค์ผ์ผ๋ง์ ์ํํฉ๋๋ค. |
True
|
xywh |
bool
|
์์ ํ์์ xywh ์ฌ๋ถ(๊ธฐ๋ณธ๊ฐ=False)์ ๋๋ค. |
False
|
๋ฐํํฉ๋๋ค:
์ด๋ฆ | ์ ํ | ์ค๋ช |
---|---|---|
boxes |
Tensor
|
์ค์ผ์ผ๋ง๋ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ (x1, y1, x2, y2) ํ์์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.make_divisible(x, divisor)
์ฃผ์ด์ง ์ ์๋ก ๋๋ ์ ์๋ ๊ฐ์ฅ ๊ฐ๊น์ด ์ซ์๋ฅผ ๋ฐํํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
x |
int
|
๋๋ ์ ์๋ ์ซ์์ ๋๋ค. |
ํ์ |
divisor |
int | Tensor
|
์ ์์ ๋๋ค. |
ํ์ |
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
int
|
์ ์๋ก ๋๋ ์ ์๋ ๊ฐ์ฅ ๊ฐ๊น์ด ์์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.nms_rotated(boxes, scores, threshold=0.45)
ํ๋ก๋น์ฐ์ ํจ์คํธ์์ ์ ์ํด ๊ตฌ๋๋๋ ์ค๋ธ์ ํธ์ฉ NMS.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
boxes |
Tensor
|
(N, 5), xywhr. |
ํ์ |
scores |
Tensor
|
(N, ). |
ํ์ |
threshold |
float
|
IoU ์๊ณ๊ฐ. |
0.45
|
๋ฐํํฉ๋๋ค:
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.non_max_suppression(prediction, conf_thres=0.25, iou_thres=0.45, classes=None, agnostic=False, multi_label=False, labels=(), max_det=300, nc=0, max_time_img=0.05, max_nms=30000, max_wh=7680, in_place=True, rotated=False)
์์ ์ธํธ์์ ๋ง์คํฌ ๋ฐ ์์๋น ์ฌ๋ฌ ๋ ์ด๋ธ์ ์ง์ํ์ฌ ์์ ์ธํธ์ ๋ํด ๋น์ต๋ ์ต์ (NMS)๋ฅผ ์ํํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
prediction |
Tensor
|
tensor ํ์(batch_size, num_classes + 4 + num_masks, num_boxes) ์์ธก๋ ์์, ํด๋์ค ๋ฐ ๋ง์คํฌ๋ฅผ ํฌํจํฉ๋๋ค. tensor ํ์์ ๋ค์๊ณผ ๊ฐ์ ํ์์ด์ด์ผ ํฉ๋๋ค(์: YOLO). |
ํ์ |
conf_thres |
float
|
์์๊ฐ ํํฐ๋ง๋๋ ์ ๋ขฐ๋ ์๊ณ๊ฐ์ ๋๋ค. ์ ํจํ ๊ฐ์ 0.0์์ 1.0 ์ฌ์ด์ ๋๋ค. |
0.25
|
iou_thres |
float
|
NMS ์ค์ ์์๊ฐ ํํฐ๋ง๋๋ IoU ์๊ณ๊ฐ์ ๋๋ค. ์ ํจํ ๊ฐ์ 0.0์์ 1.0 ์ฌ์ด์ ๋๋ค. |
0.45
|
classes |
List[int]
|
๊ณ ๋ คํ ํด๋์ค ์ธ๋ฑ์ค ๋ชฉ๋ก์ ๋๋ค. ์์์ด๋ฉด ๋ชจ๋ ํด๋์ค๊ฐ ๊ณ ๋ ค๋ฉ๋๋ค. |
None
|
agnostic |
bool
|
True์ด๋ฉด ๋ชจ๋ธ์ ํด๋์ค ์์ ๊ตฌ์ ๋ฐ์ง ์๊ณ ๋ชจ๋ ํด๋์ค๋ ๋ชจ๋ ํ๋๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. |
False
|
multi_label |
bool
|
True์ธ ๊ฒฝ์ฐ ๊ฐ ์์์ ์ฌ๋ฌ ๊ฐ์ ๋ ์ด๋ธ์ด ์์ ์ ์์ต๋๋ค. |
False
|
labels |
List[List[Union[int, float, Tensor]]]
|
๋ชฉ๋ก ๋ชฉ๋ก์ผ๋ก, ๊ฐ ๋ด๋ถ ๋ชฉ๋ก์๋ ์ง์ ๋ ์ด๋ฏธ์ง์ ๋ํ ์ฌ์ ๋ ์ด๋ธ์ด ํฌํจ๋ฉ๋๋ค. ๋ชฉ๋ก์ ํ์์ ๋ฐ์ดํฐ ๋ก๋๊ฐ ํ์์ด์ด์ผ ํ๋ฉฐ, ๊ฐ ๋ ์ด๋ธ์ (class_index, x1, y1, x2, y2)์ ํํ์ด์ด์ผ ํฉ๋๋ค. |
()
|
max_det |
int
|
NMS ์ดํ ๋ณด๊ดํ ์ต๋ ์์ ์์ ๋๋ค. |
300
|
nc |
int
|
๋ชจ๋ธ์์ ์ถ๋ ฅ๋๋ ํด๋์ค ์์ ๋๋ค. ์ด ์ดํ์ ์ธ๋ฑ์ค๋ ๋ชจ๋ ๋ง์คํฌ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. |
0
|
max_time_img |
float
|
์ด๋ฏธ์ง ํ๋๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์ต๋ ์๊ฐ(์ด)์ ๋๋ค. |
0.05
|
max_nms |
int
|
์ต๋ ์์ ์๋ฅผ torchvision.ops.nms()์ ์ ๋ ฅํฉ๋๋ค. |
30000
|
max_wh |
int
|
์ต๋ ์์ ๋๋น์ ๋์ด(ํฝ์ ๋จ์)์ ๋๋ค. |
7680
|
in_place |
bool
|
True์ด๋ฉด ์ ๋ ฅ ์์ธก tensor ์ด ์ ์๋ฆฌ์์ ์์ ๋ฉ๋๋ค. |
True
|
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
List[Tensor]
|
๊ธธ์ด batch_size์ ๋ชฉ๋ก์ผ๋ก, ๊ฐ ์์๋ tensor ์ ๋ชจ์(num_boxes, 6 + num_masks)์ผ๋ก, ๋ณด๊ด๋ ์์๋ฅผ ํฌํจํ๋ ์ด์ด ์๋ (x1, y1, x2, y2, confidence, class, mask1, mask2, ...). |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 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 |
|
ultralytics.utils.ops.clip_boxes(boxes, shape)
๊ฒฝ๊ณ ์์ ๋ชฉ๋ก๊ณผ ๋ํ(๋์ด, ๋๋น)์ ๊ฐ์ ธ์ ๊ฒฝ๊ณ ์์๋ฅผ ๋ํ์ ํด๋ฆฝํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
boxes |
Tensor
|
ํด๋ฆฝํ ๊ฒฝ๊ณ ์์ |
ํ์ |
shape |
tuple
|
์ด๋ฏธ์ง์ ๋ชจ์ |
ํ์ |
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
Tensor | ndarray
|
์๋ผ๋ธ ์์ |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.clip_coords(coords, shape)
์ด๋ฏธ์ง ๊ฒฝ๊ณ์ ์ ์ขํ๋ฅผ ํด๋ฆฝํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
coords |
Tensor | ndarray
|
์ ์ขํ ๋ชฉ๋ก์ ๋๋ค. |
ํ์ |
shape |
tuple
|
์ด๋ฏธ์ง์ ํฌ๊ธฐ(๋์ด, ๋๋น)๋ฅผ ํ์(๋์ด, ๋๋น)์ผ๋ก ๋ํ๋ด๋ ์ ์ ํํ์ ๋๋ค. |
ํ์ |
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
Tensor | ndarray
|
์๋ผ๋ธ ์ขํ |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.scale_image(masks, im0_shape, ratio_pad=None)
๋ง์คํฌ๋ฅผ ๊ฐ์ ธ์์ ์๋ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ก ํฌ๊ธฐ๋ฅผ ์กฐ์ ํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
masks |
ndarray
|
ํฌ๊ธฐ ์กฐ์ ๋ฐ ํจ๋ฉ๋ ๋ง์คํฌ/์ด๋ฏธ์ง, [h, w, num]/[h, w, 3]. |
ํ์ |
im0_shape |
tuple
|
์๋ณธ ์ด๋ฏธ์ง ๋ชจ์ |
ํ์ |
ratio_pad |
tuple
|
์๋ณธ ์ด๋ฏธ์ง์ ๋ํ ํจ๋ฉ์ ๋น์จ์ ๋๋ค. |
None
|
๋ฐํํฉ๋๋ค:
์ด๋ฆ | ์ ํ | ์ค๋ช |
---|---|---|
masks |
Tensor
|
๋ฐํ๋๋ ๋ง์คํฌ์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.xyxy2xywh(x)
๋ฐ์ด๋ฉ ๋ฐ์ค ์ขํ๋ฅผ (x1, y1, x2, y2) ํ์์์ (x, y, ํญ, ๋์ด) ํ์์ผ๋ก ๋ณํํ๋ฉฐ, ์ฌ๊ธฐ์ (x1, y1์ ์ผ์ชฝ ์๋จ ๋ชจ์๋ฆฌ์ด๊ณ (x2, y2)๋ ์ค๋ฅธ์ชฝ ํ๋จ ๋ชจ์๋ฆฌ์ ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
x |
ndarray | Tensor
|
์ ๋ ฅ ๋ฐ์ด๋ฉ ๋ฐ์ค ์ขํ๋ (x1, y1, x2, y2) ํ์์ ๋๋ค. |
ํ์ |
๋ฐํํฉ๋๋ค:
์ด๋ฆ | ์ ํ | ์ค๋ช |
---|---|---|
y |
ndarray | Tensor
|
๊ฒฝ๊ณ ์์ ์ขํ๋ (x, y, ๋๋น, ๋์ด) ํ์์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.xywh2xyxy(x)
๋ฐ์ด๋ฉ ๋ฐ์ค ์ขํ๋ฅผ (x, y, ๋๋น, ๋์ด) ํ์์์ (x1, y1, x2, y2) ํ์์ผ๋ก ๋ณํํ๋ฉฐ, ์ฌ๊ธฐ์ (x1, y1์ ์ผ์ชฝ ์๋จ ๋ชจ์๋ฆฌ์ด๊ณ (x2, y2)๋ ์ค๋ฅธ์ชฝ ํ๋จ ๋ชจ์๋ฆฌ์ ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
x |
ndarray | Tensor
|
์ ๋ ฅ ๋ฐ์ด๋ฉ ๋ฐ์ค ์ขํ๋ (x, y, ๋๋น, ๋์ด) ํ์์ ๋๋ค. |
ํ์ |
๋ฐํํฉ๋๋ค:
์ด๋ฆ | ์ ํ | ์ค๋ช |
---|---|---|
y |
ndarray | Tensor
|
๋ฐ์ด๋ฉ ๋ฐ์ค ์ขํ๋ (x1, y1, x2, y2) ํ์์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.xywhn2xyxy(x, w=640, h=640, padw=0, padh=0)
์ ๊ทํ๋ ๋ฐ์ด๋ฉ ๋ฐ์ค ์ขํ๋ฅผ ํฝ์ ์ขํ๋ก ๋ณํํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
x |
ndarray | Tensor
|
๊ฒฝ๊ณ ์์ ์ขํ์ ๋๋ค. |
ํ์ |
w |
int
|
์ด๋ฏธ์ง์ ๋๋น์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ 640์ ๋๋ค. |
640
|
h |
int
|
์ด๋ฏธ์ง์ ๋์ด์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ 640์ ๋๋ค. |
640
|
padw |
int
|
ํจ๋ฉ ๋๋น. ๊ธฐ๋ณธ๊ฐ์ 0์ ๋๋ค. |
0
|
padh |
int
|
ํจ๋ฉ ๋์ด. ๊ธฐ๋ณธ๊ฐ์ 0์ ๋๋ค. |
0
|
๋ฐํํฉ๋๋ค: y (np.ndarray | torch.Tensor): x1, y1, x2, y2] ํ์์ ๋ฐ์ด๋ฉ ๋ฐ์ค์ ์ขํ์ ๋๋ค. x1,y1์ ๋ฐ์ด๋ฉ ๋ฐ์ค์ ์ผ์ชฝ ์๋จ ๋ชจ์๋ฆฌ, x2,y2๋ ์ค๋ฅธ์ชฝ ํ๋จ ๋ชจ์๋ฆฌ์ ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.xyxy2xywhn(x, w=640, h=640, clip=False, eps=0.0)
๊ฒฝ๊ณ ์์ ์ขํ๋ฅผ (x1, y1, x2, y2) ํ์์์ (x, y, ๋๋น, ๋์ด, ์ ๊ทํ) ํ์์ผ๋ก ๋ณํํฉ๋๋ค. x, y, ๋๋น ๋ฐ ๋์ด๊ฐ ์ด๋ฏธ์ง ์น์๋ก ์ ๊ทํ๋ฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
x |
ndarray | Tensor
|
์ ๋ ฅ ๋ฐ์ด๋ฉ ๋ฐ์ค ์ขํ๋ (x1, y1, x2, y2) ํ์์ ๋๋ค. |
ํ์ |
w |
int
|
์ด๋ฏธ์ง์ ๋๋น์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ 640์ ๋๋ค. |
640
|
h |
int
|
์ด๋ฏธ์ง์ ๋์ด์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ 640์ ๋๋ค. |
640
|
clip |
bool
|
True๋ฅผ ์ ํํ๋ฉด ์์๊ฐ ์ด๋ฏธ์ง ๊ฒฝ๊ณ๋ก ์๋ฆฝ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ False์ ๋๋ค. |
False
|
eps |
float
|
์์์ ๋๋น์ ๋์ด์ ์ต์๊ฐ์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ 0.0์ ๋๋ค. |
0.0
|
๋ฐํํฉ๋๋ค:
์ด๋ฆ | ์ ํ | ์ค๋ช |
---|---|---|
y |
ndarray | Tensor
|
๊ฒฝ๊ณ ์์ ์ขํ๋ (x, y, ๋๋น, ๋์ด, ์ ๊ทํ๋) ํ์์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.xywh2ltwh(x)
๋ฐ์ด๋ฉ ๋ฐ์ค ํ์์ [x, y, w, h]์์ [x1, y1, w, h]๋ก ๋ณํํฉ๋๋ค(์ฌ๊ธฐ์ x1, y1์ ์ผ์ชฝ ์๋จ ์ขํ).
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
x |
ndarray | Tensor
|
๋ฐ์ด๋ฉ ๋ฐ์ค ์ขํ๊ฐ ํฌํจ๋ tensor ์ ๋ ฅ์ xywh ํ์์ ๋๋ค. |
ํ์ |
๋ฐํํฉ๋๋ค:
์ด๋ฆ | ์ ํ | ์ค๋ช |
---|---|---|
y |
ndarray | Tensor
|
๊ฒฝ๊ณ ์์ ์ขํ๋ xyltwh ํ์์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.xyxy2ltwh(x)
nx4 ๋ฐ์ด๋ฉ ๋ฐ์ค๋ฅผ [x1, y1, x2, y2]์์ [x1, y1, w, h]๋ก ๋ณํํฉ๋๋ค(์ฌ๊ธฐ์ xy1=์ผ์ชฝ ์๋จ, xy2=์ค๋ฅธ์ชฝ ํ๋จ).
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
x |
ndarray | Tensor
|
๊ฒฝ๊ณ ์์ ์ขํ๊ฐ ์๋ tensor ์ ๋ ฅ์ xyxy ํ์์ ๋๋ค. |
ํ์ |
๋ฐํํฉ๋๋ค:
์ด๋ฆ | ์ ํ | ์ค๋ช |
---|---|---|
y |
ndarray | Tensor
|
๊ฒฝ๊ณ ์์ ์ขํ๋ xyltwh ํ์์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.ltwh2xywh(x)
nx4 ์์๋ฅผ [x1, y1, w, h]์์ [x, y, w, h]๋ก ๋ณํํฉ๋๋ค(์ฌ๊ธฐ์ xy1=์ผ์ชฝ ์๋จ, xy=์ค์).
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
x |
Tensor
|
์ ๋ ฅ tensor |
ํ์ |
๋ฐํํฉ๋๋ค:
์ด๋ฆ | ์ ํ | ์ค๋ช |
---|---|---|
y |
ndarray | Tensor
|
๋ฐ์ด๋ฉ ๋ฐ์ค ์ขํ๋ xywh ํ์์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.xyxyxyxy2xywhr(corners)
๋ฐฐ์น๋ ๋ฐฉํฅ ๋ฐ์ด๋ฉ ๋ฐ์ค(OBB)๋ฅผ [xy1, xy2, xy3, xy4]์์ [xywh, ํ์ ]์ผ๋ก ๋ณํํฉ๋๋ค. ํ์ ๊ฐ์ 0์์ 90 ์ฌ์ด์ ๊ฐ๋๋ก ์์๋ฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
corners |
ndarray | Tensor
|
๋ํ์ ๋ชจ์๋ฆฌ(n, 8)๋ฅผ ์ ๋ ฅํฉ๋๋ค. |
ํ์ |
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
ndarray | Tensor
|
๋ณํ๋ ๋ฐ์ดํฐ๋ฅผ [cx, cy, w, h, ํ์ ] ํ์์ ๋ํ(n, 5)์ผ๋ก ๋ณํํฉ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.xywhr2xyxyxyxy(rboxes)
๋ฐฐ์น๋ ๋ฐฉํฅ ๋ฐ์ด๋ฉ ๋ฐ์ค(OBB)๋ฅผ [xywh, ํ์ ]์์ [xy1, xy2, xy3, xy4]๋ก ๋ณํํฉ๋๋ค. ํ์ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค. 0์์ 90 ์ฌ์ด์ ๊ฐ๋ ๋จ์์ฌ์ผ ํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
rboxes |
ndarray | Tensor
|
๋ชจ์ (n, 5) ๋๋ (b, n, 5) ํ์์ [cx, cy, w, h, ํ์ ] ์์์ ๋๋ค. |
ํ์ |
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
ndarray | Tensor
|
๋ํ์ ๋ณํ๋ ๋ชจ์๋ฆฌ ์ (n, 4, 2) ๋๋ (b, n, 4, 2). |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.ltwh2xyxy(x)
๋ฐ์ด๋ฉ ๋ฐ์ค๋ฅผ [x1, y1, w, h]์์ [x1, y1, x2, y2]๋ก ๋ณํํ๋ฉฐ, ์ฌ๊ธฐ์ xy1=์ผ์ชฝ ์๋จ, xy2=์ค๋ฅธ์ชฝ ํ๋จ์ ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
x |
ndarray | Tensor
|
์ ๋ ฅ ์ด๋ฏธ์ง |
ํ์ |
๋ฐํํฉ๋๋ค:
์ด๋ฆ | ์ ํ | ์ค๋ช |
---|---|---|
y |
ndarray | Tensor
|
๋ฐ์ด๋ฉ ๋ฐ์ค์ xyxy ์ขํ์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.segments2boxes(segments)
์ธ๊ทธ๋จผํธ ๋ ์ด๋ธ์ ์์ ๋ ์ด๋ธ๋ก ๋ณํํฉ๋๋ค(์: (cls, xy1, xy2, ...)๋ฅผ (cls, xywh)๋ก ๋ณํํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
segments |
list
|
์ธ๊ทธ๋จผํธ ๋ชฉ๋ก, ๊ฐ ์ธ๊ทธ๋จผํธ๋ ์ ๋ชฉ๋ก, ๊ฐ ์ ์ x, y ์ขํ ๋ชฉ๋ก์ ๋๋ค. |
ํ์ |
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
ndarray
|
๋ฐ์ด๋ฉ ๋ฐ์ค์ xywh ์ขํ์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.resample_segments(segments, n=1000)
์ธ๊ทธ๋จผํธ ๋ชฉ๋ก(n,2)์ ์ ๋ ฅํ๊ณ ๊ฐ๊ฐ n๊ฐ์ ํฌ์ธํธ๋ก ์ ์ํ๋ง๋ ์ธ๊ทธ๋จผํธ ๋ชฉ๋ก(n,2)์ ๋ฐํํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
segments |
list
|
(n,2) ๋ฐฐ์ด์ ๋ชฉ๋ก์ผ๋ก, ์ฌ๊ธฐ์ n์ ์ธ๊ทธ๋จผํธ์ ํฌ์ธํธ ์์ ๋๋ค. |
ํ์ |
n |
int
|
์ธ๊ทธ๋จผํธ๋ฅผ ๋ฆฌ์ํ๋งํ ํฌ์ธํธ ์์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ 1000์ ๋๋ค. |
1000
|
๋ฐํํฉ๋๋ค:
์ด๋ฆ | ์ ํ | ์ค๋ช |
---|---|---|
segments |
list
|
๋ฆฌ์ํ๋ง๋ ์ธ๊ทธ๋จผํธ์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.crop_mask(masks, boxes)
๋ง์คํฌ์ ๊ฒฝ๊ณ ์์๋ฅผ ๋ฐ์ ๊ฒฝ๊ณ ์์์ ์๋ฆฐ ๋ง์คํฌ๋ฅผ ๋ฐํํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
masks |
Tensor
|
[n, h, w] tensor ๋ง์คํฌ ์ |
ํ์ |
boxes |
Tensor
|
์๋์ ํ์์ bbox ์ขํ [n, 4] tensor |
ํ์ |
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
Tensor
|
๋ง์คํฌ๊ฐ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ก ์๋ฆฌ๊ณ ์์ต๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.process_mask_upsample(protos, masks_in, bboxes, shape)
๋ง์คํฌ ํค๋์ ์ถ๋ ฅ์ ๊ฐ์ ธ์ ๊ฒฝ๊ณ ์์์ ๋ง์คํฌ๋ฅผ ์ ์ฉํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ ๋์ ํ์ง์ ๋ง์คํฌ๊ฐ ์์ฑ๋์ง๋ง ๋ง์คํฌ๋ฅผ ์์ฑํ์ง๋ง ์๋๊ฐ ๋๋ฆฝ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
protos |
Tensor
|
[๋ง์คํฌ_๋ค, ๋ง์คํฌ_H, ๋ง์คํฌ_W] |
ํ์ |
masks_in |
Tensor
|
[n, mask_dim], n์ nms ์ดํ์ ๋ง์คํฌ ์์ ๋๋ค. |
ํ์ |
bboxes |
Tensor
|
[n, 4], n์ nms ์ดํ์ ๋ง์คํฌ ์์ ๋๋ค. |
ํ์ |
shape |
tuple
|
์ ๋ ฅ ์ด๋ฏธ์ง์ ํฌ๊ธฐ(H, W) |
ํ์ |
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
Tensor
|
์ ์ํ๋ง๋ ๋ง์คํฌ์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.process_mask(protos, masks_in, bboxes, shape, upsample=False)
๋ง์คํฌ ํค๋์ ์ถ๋ ฅ์ ์ฌ์ฉํ์ฌ ๋ฐ์ด๋ฉ ๋ฐ์ค์ ๋ง์คํฌ๋ฅผ ์ ์ฉํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
protos |
Tensor
|
๋ชจ์ [mask_dim, mask_h, mask_w]์ tensor . |
ํ์ |
masks_in |
Tensor
|
n, ๋ง์คํฌ_๋ค] ๋ชจ์์ tensor , ์ฌ๊ธฐ์ n์ NMS ์ดํ์ ๋ง์คํฌ ๊ฐ์์ ๋๋ค. |
ํ์ |
bboxes |
Tensor
|
n, 4] ๋ชจ์์ tensor , ์ฌ๊ธฐ์ n์ NMS ์ดํ์ ๋ง์คํฌ ์์ ๋๋ค. |
ํ์ |
shape |
tuple
|
์ ๋ ฅ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ฅผ (h, w) ํ์์ผ๋ก ๋ํ๋ด๋ ์ ์์ ํํ์ ๋๋ค. |
ํ์ |
upsample |
bool
|
๋ง์คํฌ๋ฅผ ์๋ณธ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ก ์ ์ํ๋งํ ์ง ์ฌ๋ถ๋ฅผ ๋ํ๋ด๋ ํ๋๊ทธ์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ False์ ๋๋ค. |
False
|
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
Tensor
|
n, h, w] ๋ชจ์์ ๋ฐ์ด๋๋ฆฌ ๋ง์คํฌ tensor , ์ฌ๊ธฐ์ n์ NMS ์ดํ์ ๋ง์คํฌ ๊ฐ์์ด๊ณ , h์ w๋ ๋ ์ ๋ ฅ ์ด๋ฏธ์ง์ ๋์ด์ ๋๋น์ ๋๋ค. ๋ง์คํฌ๋ ๊ฒฝ๊ณ ์์์ ์ ์ฉ๋ฉ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.process_mask_native(protos, masks_in, bboxes, shape)
๋ง์คํฌ ํค๋์ ์ถ๋ ฅ์ ๊ฐ์ ธ์์ ์ ์ํ๋งํ ํ ๋ฐ์ด๋ฉ ๋ฐ์ค๋ก ์๋ฆ ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
protos |
Tensor
|
[๋ง์คํฌ_๋ค, ๋ง์คํฌ_H, ๋ง์คํฌ_W] |
ํ์ |
masks_in |
Tensor
|
[n, mask_dim], n์ nms ์ดํ์ ๋ง์คํฌ ์์ ๋๋ค. |
ํ์ |
bboxes |
Tensor
|
[n, 4], n์ nms ์ดํ์ ๋ง์คํฌ ์์ ๋๋ค. |
ํ์ |
shape |
tuple
|
์ ๋ ฅ ์ด๋ฏธ์ง์ ํฌ๊ธฐ(H, W) |
ํ์ |
๋ฐํํฉ๋๋ค:
์ด๋ฆ | ์ ํ | ์ค๋ช |
---|---|---|
masks |
Tensor
|
์น์๊ฐ [h, w, n]์ธ ๋ฐํ๋ ๋ง์คํฌ |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.scale_masks(masks, shape, padding=True)
์ธ๊ทธ๋จผํธ ๋ง์คํฌ์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ์ฌ ๋ชจ์์ ๋ง๋ญ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
masks |
Tensor
|
(N, C, H, W). |
ํ์ |
shape |
tuple
|
๋์ด์ ๋๋น. |
ํ์ |
padding |
bool
|
True์ด๋ฉด ์์๊ฐ yolo ์คํ์ผ๋ก ์ฆ๊ฐ๋ ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. False์ด๋ฉด ์ ๊ธฐ์ ์ผ๋ก ๋ฆฌ์ค์ผ์ผ๋ง์ ์ํํฉ๋๋ค. |
True
|
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.scale_coords(img1_shape, coords, img0_shape, ratio_pad=None, normalize=False, padding=True)
์ธ๊ทธ๋จผํธ ์ขํ(xy)๋ฅผ img1_shape์์ img0_shape๋ก ์ฌ์กฐ์ ํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
img1_shape |
tuple
|
์ขํ์ ์ถ์ฒ๊ฐ ๋๋ ์ด๋ฏธ์ง์ ๋ชจ์์ ๋๋ค. |
ํ์ |
coords |
Tensor
|
์ขํ๋ฅผ n,2๋ก ์ค์ผ์ผ๋งํฉ๋๋ค. |
ํ์ |
img0_shape |
tuple
|
์ธ๋ถํ๊ฐ ์ ์ฉ๋๊ณ ์๋ ์ด๋ฏธ์ง์ ๋ชจ์์ ๋๋ค. |
ํ์ |
ratio_pad |
tuple
|
์ด๋ฏธ์ง ํฌ๊ธฐ์ ํจ๋ฉ๋ ์ด๋ฏธ์ง ํฌ๊ธฐ์ ๋น์จ์ ๋๋ค. |
None
|
normalize |
bool
|
True์ด๋ฉด ์ขํ๊ฐ [0, 1] ๋ฒ์๋ก ์ ๊ทํ๋ฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ False์ ๋๋ค. |
False
|
padding |
bool
|
True์ด๋ฉด ์์๊ฐ yolo ์คํ์ผ๋ก ์ฆ๊ฐ๋ ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. False์ด๋ฉด ์ ๊ธฐ์ ์ผ๋ก ๋ฆฌ์ค์ผ์ผ๋ง์ ์ํํฉ๋๋ค. |
True
|
๋ฐํํฉ๋๋ค:
์ด๋ฆ | ์ ํ | ์ค๋ช |
---|---|---|
coords |
Tensor
|
๋ฐฐ์จ ์กฐ์ ๋ ์ขํ์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.regularize_rboxes(rboxes)
ํ์ ๋ ์์๋ฅผ [0, pi/2] ๋ฒ์์์ ์ ๊ทํํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
rboxes |
Tensor
|
(N, 5), xywhr. |
ํ์ |
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
Tensor
|
์ ๊ทํ๋ ์์. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.masks2segments(masks, strategy='largest')
๋ง์คํฌ(n,h,w) ๋ชฉ๋ก์ ์ทจํ๊ณ ์ธ๊ทธ๋จผํธ(n,xy) ๋ชฉ๋ก์ ๋ฐํํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
masks |
Tensor
|
๋ชจ๋ธ์ ์ถ๋ ฅ์ tensor ๋ชจ์(batch_size, 160, 160)์ ๋๋ค. |
ํ์ |
strategy |
str
|
'concat' ๋๋ '์ต๋'. ๊ธฐ๋ณธ๊ฐ์ ๊ฐ์ฅ ํฐ ๊ฐ์ ๋๋ค. |
'largest'
|
๋ฐํํฉ๋๋ค:
์ด๋ฆ | ์ ํ | ์ค๋ช |
---|---|---|
segments |
List
|
์ธ๊ทธ๋จผํธ ๋ง์คํฌ ๋ชฉ๋ก |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.convert_torch2numpy_batch(batch)
FP32 torch ํ ์(0.0-1.0) ๋ฐฐ์น๋ฅผ NumPy uint8 ๋ฐฐ์ด(0-255)๋ก ๋ณํํ์ฌ BCHW์์ BHWC ๋ ์ด์์์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
batch |
Tensor
|
tensor ๋ํ ๋ฐฐ์น(๋ฐฐ์น, ์ฑ๋, ๋์ด, ๋๋น)๋ฅผ ์ ๋ ฅํ๊ณ dtype torch.float32๋ฅผ ์ ๋ ฅํฉ๋๋ค. |
ํ์ |
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
ndarray
|
๋ชจ์(๋ฐฐ์น, ๋์ด, ๋๋น, ์ฑ๋)์ NumPy ๋ฐฐ์ด ๋ฐฐ์น์ dtype uint8์ ์ถ๋ ฅํฉ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
ultralytics.utils.ops.clean_str(s)
ํน์ ๋ฌธ์๋ฅผ ๋ฐ์ค _๋ก ๋์ฒดํ์ฌ ๋ฌธ์์ด์ ์ ๋ฆฌํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
s |
str
|
ํน์ ๋ฌธ์๋ฅผ ๋์ฒดํด์ผ ํ๋ ๋ฌธ์์ด |
ํ์ |
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
str
|
๋ฐ์ค _๋ก ๋์ฒด๋ ํน์ ๋ฌธ์๊ฐ ํฌํจ๋ ๋ฌธ์์ด์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/ops.py
์์ฑ 2023-11-12, ์ ๋ฐ์ดํธ 2024-05-08
์์ฑ์: Burhan-Q (1), ์๋-ํ (1), ๊ธ๋ -์กฐ์ฒ (4)