์ฝ˜ํ…์ธ ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ์ฒด ์ž๋ฅด๊ธฐ Ultralytics YOLO11

๊ฐœ์ฒด ์ž๋ฅด๊ธฐ๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

๋ฅผ ์‚ฌ์šฉํ•œ ๊ฐœ์ฒด ์ž๋ฅด๊ธฐ Ultralytics YOLO11 ๋ฅผ ์‚ฌ์šฉํ•œ ๊ฐ์ฒด ์ž๋ฅด๊ธฐ์—๋Š” ์ด๋ฏธ์ง€ ๋˜๋Š” ๋™์˜์ƒ์—์„œ ๊ฐ์ง€๋œ ํŠน์ • ๊ฐ์ฒด๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ  ์ถ”์ถœํ•˜๋Š” ์ž‘์—…์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. YOLO11 ๋ชจ๋ธ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ์ฒด๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๊ณ  ๋ฌ˜์‚ฌํ•˜์—ฌ ์ถ”๊ฐ€ ๋ถ„์„ ๋˜๋Š” ์กฐ์ž‘์„ ์œ„ํ•œ ์ •๋ฐ€ํ•œ ์ž๋ฅด๊ธฐ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.



Watch: ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ์ฒด ์ž๋ฅด๊ธฐ Ultralytics YOLO

์˜ค๋ธŒ์ ํŠธ ์ž๋ฅด๊ธฐ์˜ ์žฅ์ ์€?

  • ์ง‘์ค‘ ๋ถ„์„: YOLO11 ๋Œ€์ƒ ๊ฐœ์ฒด ์ž๋ฅด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์žฅ๋ฉด ๋‚ด์—์„œ ๊ฐœ๋ณ„ ํ•ญ๋ชฉ์„ ์‹ฌ์ธต์ ์œผ๋กœ ์กฐ์‚ฌํ•˜๊ฑฐ๋‚˜ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์šฉ๋Ÿ‰ ๊ฐ์†Œ: ๊ฐœ์ฒด ์ž๋ฅด๊ธฐ๋Š” ๊ด€๋ จ ๊ฐœ์ฒด๋งŒ ์ถ”์ถœํ•จ์œผ๋กœ์จ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๋ฅผ ์ตœ์†Œํ™”ํ•˜์—ฌ ์ €์žฅ, ์ „์†ก ๋˜๋Š” ํ›„์† ๊ณ„์‚ฐ ์ž‘์—…์„ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.
  • ํ–ฅ์ƒ๋œ ์ •๋ฐ€๋„: YOLO11 ์˜ ๊ฐ์ฒด ๊ฐ์ง€ ์ •ํ™•๋„๋Š” ์ž˜๋ฆฐ ๊ฐ์ฒด๊ฐ€ ๊ณต๊ฐ„ ๊ด€๊ณ„๋ฅผ ์œ ์ง€ํ•˜๋„๋ก ๋ณด์žฅํ•˜์—ฌ ์ƒ์„ธํ•œ ๋ถ„์„์„ ์œ„ํ•ด ์‹œ๊ฐ์  ์ •๋ณด์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์กดํ•ฉ๋‹ˆ๋‹ค.

๋น„์ฃผ์–ผ

๊ณตํ•ญ ์ˆ˜ํ•˜๋ฌผ
๊ณตํ•ญ ์ปจ๋ฒ ์ด์–ด ๋ฒจํŠธ๋ฅผ ์ด์šฉํ•œ ์—ฌํ–‰ ๊ฐ€๋ฐฉ ์ž๋ฅด๊ธฐ Ultralytics YOLO11
๊ณตํ•ญ ์ปจ๋ฒ ์ด์–ด ๋ฒจํŠธ๋ฅผ ์ด์šฉํ•œ ์—ฌํ–‰ ๊ฐ€๋ฐฉ ์ž๋ฅด๊ธฐ Ultralytics YOLO11

YOLO11 ์˜ˆ์ œ๋ฅผ ์‚ฌ์šฉํ•œ ๊ฐœ์ฒด ์ž๋ฅด๊ธฐ

import os

import cv2

from ultralytics import YOLO
from ultralytics.utils.plotting import Annotator, colors

model = YOLO("yolo11n.pt")
names = model.names

cap = cv2.VideoCapture("path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

crop_dir_name = "ultralytics_crop"
if not os.path.exists(crop_dir_name):
    os.mkdir(crop_dir_name)

# Video writer
video_writer = cv2.VideoWriter("object_cropping_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

idx = 0
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    results = model.predict(im0, show=False)
    boxes = results[0].boxes.xyxy.cpu().tolist()
    clss = results[0].boxes.cls.cpu().tolist()
    annotator = Annotator(im0, line_width=2, example=names)

    if boxes is not None:
        for box, cls in zip(boxes, clss):
            idx += 1
            annotator.box_label(box, color=colors(int(cls), True), label=names[int(cls)])

            crop_obj = im0[int(box[1]) : int(box[3]), int(box[0]) : int(box[2])]

            cv2.imwrite(os.path.join(crop_dir_name, str(idx) + ".png"), crop_obj)

    cv2.imshow("ultralytics", im0)
    video_writer.write(im0)

    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

cap.release()
video_writer.release()
cv2.destroyAllWindows()

์ธ์ˆ˜ model.predict

์ธ์ˆ˜ ์œ ํ˜• ๊ธฐ๋ณธ๊ฐ’ ์„ค๋ช…
source str 'ultralytics/assets' ์ถ”๋ก ํ•  ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€ ๊ฒฝ๋กœ, ๋™์˜์ƒ ํŒŒ์ผ, ๋””๋ ‰ํ† ๋ฆฌ, URL ๋˜๋Š” ์‹ค์‹œ๊ฐ„ ํ”ผ๋“œ์šฉ ๋””๋ฐ”์ด์Šค ID๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ํ˜•์‹๊ณผ ์†Œ์Šค๋ฅผ ์ง€์›ํ•˜๋ฏ€๋กœ ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ์ž…๋ ฅ์— ์œ ์—ฐํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
conf float 0.25 ํƒ์ง€์— ๋Œ€ํ•œ ์ตœ์†Œ ์‹ ๋ขฐ๋„ ์ž„๊ณ„๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž„๊ณ„๊ฐ’๋ณด๋‹ค ๋‚ฎ์€ ์‹ ๋ขฐ๋„๋กœ ํƒ์ง€๋œ ๊ฐœ์ฒด๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ์กฐ์ •ํ•˜๋ฉด ์˜คํƒ์ง€๋ฅผ ์ค„์ด๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
iou float 0.7 ๋น„์ตœ๋Œ€ ์–ต์ œ(NMS)์— ๋Œ€ํ•œ ๊ต์ฐจ์  ์ดˆ๊ณผ (IoU) ์ž„๊ณ„๊ฐ’์ž…๋‹ˆ๋‹ค. ๊ฐ’์ด ๋‚ฎ์„์ˆ˜๋ก ์ค‘๋ณต๋˜๋Š” ์ƒ์ž๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ํƒ์ง€ ํšŸ์ˆ˜๊ฐ€ ์ค„์–ด๋“ค์–ด ์ค‘๋ณต์„ ์ค„์ด๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
imgsz int or tuple 640 ์ถ”๋ก ํ•  ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ผ ์ •์ˆ˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 640 ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •์‚ฌ๊ฐํ˜• ํฌ๊ธฐ ์กฐ์ • ๋˜๋Š” (๋†’์ด, ๋„ˆ๋น„) ํŠœํ”Œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ํฌ๊ธฐ ์กฐ์ •์€ ๊ฐ์ง€์œจ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •ํ™•์„ฑ ์ฒ˜๋ฆฌ ์†๋„.
half bool False ์ •ํ™•๋„์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•˜๋ฉด์„œ ์ง€์›๋˜๋Š” GPU์—์„œ ๋ชจ๋ธ ์ถ”๋ก  ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ๋Š” ๋ฐ˜์ •ํ™•๋„ (FP16) ์ถ”๋ก ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
device str None ์ถ”๋ก ํ•  ์žฅ์น˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ, cpu, cuda:0 ๋˜๋Š” 0). ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋ธ ์‹คํ–‰์„ ์œ„ํ•ด CPU, ํŠน์ • GPU, ๋˜๋Š” ๊ธฐํƒ€ ์ปดํ“จํŒ… ์žฅ์น˜ ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
max_det int 300 ์ด๋ฏธ์ง€๋‹น ํ—ˆ์šฉ๋˜๋Š” ์ตœ๋Œ€ ๊ฐ์ง€ ํšŸ์ˆ˜. ๋ชจ๋ธ์ด ํ•œ ๋ฒˆ์˜ ์ถ”๋ก ์—์„œ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ์ด ์˜ค๋ธŒ์ ํŠธ ์ˆ˜๋ฅผ ์ œํ•œํ•˜์—ฌ ๋ฐ€์ง‘๋œ ์žฅ๋ฉด์—์„œ ๊ณผ๋„ํ•œ ์ถœ๋ ฅ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
vid_stride int 1 ๋น„๋””์˜ค ์ž…๋ ฅ์˜ ํ”„๋ ˆ์ž„ ๋ณดํญ. ๋™์˜์ƒ์—์„œ ํ”„๋ ˆ์ž„์„ ๊ฑด๋„ˆ๋›ฐ์–ด ์‹œ๊ฐ„ ํ•ด์ƒ๋„๋ฅผ ํฌ์ƒํ•˜๋ฉด์„œ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ’์ด 1์ด๋ฉด ๋ชจ๋“  ํ”„๋ ˆ์ž„์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ๊ฐ’์ด ํด์ˆ˜๋ก ํ”„๋ ˆ์ž„์„ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.
stream_buffer bool False ๋น„๋””์˜ค ์ŠคํŠธ๋ฆผ์— ๋Œ€ํ•ด ์ˆ˜์‹  ํ”„๋ ˆ์ž„์„ ๋Œ€๊ธฐ์—ด์— ๋„ฃ์„์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ False๋กœ ์„ค์ •ํ•˜๋ฉด ์ƒˆ ํ”„๋ ˆ์ž„์„ ์ˆ˜์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ด์ „ ํ”„๋ ˆ์ž„์ด ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค(์‹ค์‹œ๊ฐ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ตœ์ ํ™”๋จ). True'๋ฉด ์ƒˆ ํ”„๋ ˆ์ž„์„ ๋ฒ„ํผ์— ๋Œ€๊ธฐ์‹œ์ผœ ๊ฑด๋„ˆ๋›ฐ๋Š” ํ”„๋ ˆ์ž„์ด ์—†๋„๋ก ํ•˜์ง€๋งŒ ์ถ”๋ก  FPS๊ฐ€ ์ŠคํŠธ๋ฆผ FPS๋ณด๋‹ค ๋‚ฎ์œผ๋ฉด ์ง€์—ฐ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
visualize bool False ์ถ”๋ก  ์ค‘์— ๋ชจ๋ธ ๊ธฐ๋Šฅ์˜ ์‹œ๊ฐํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•˜์—ฌ ๋ชจ๋ธ์ด '๋ณด๊ณ  ์žˆ๋Š” ๊ฒƒ'์— ๋Œ€ํ•œ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋””๋ฒ„๊น… ๋ฐ ๋ชจ๋ธ ํ•ด์„์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
augment bool False ์˜ˆ์ธก์„ ์œ„ํ•œ ํ…Œ์ŠคํŠธ ์‹œ๊ฐ„ ์ฆ๊ฐ•(TTA)์„ ์ง€์›ํ•˜์—ฌ ์ถ”๋ก  ์†๋„๋ฅผ ํฌ์ƒํ•˜๋ฉด์„œ ํƒ์ง€ ๊ฒฌ๊ณ ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
agnostic_nms bool False ์„œ๋กœ ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ๊ฒน์น˜๋Š” ์ƒ์ž๋ฅผ ๋ณ‘ํ•ฉํ•˜๋Š” ํด๋ž˜์Šค ๋ฌด๊ด€ NMS(Non-Maximum Suppression)๋ฅผ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค ์ค‘๋ณต์ด ์ผ๋ฐ˜์ ์ธ ๋‹ค์ค‘ ํด๋ž˜์Šค ํƒ์ง€ ์‹œ๋‚˜๋ฆฌ์˜ค์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
classes list[int] None ํด๋ž˜์Šค ID ์ง‘ํ•ฉ์œผ๋กœ ์˜ˆ์ธก์„ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. ์ง€์ •๋œ ํด๋ž˜์Šค์— ์†ํ•˜๋Š” ํƒ์ง€๋งŒ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค. ๋‹ค์ค‘ ํด๋ž˜์Šค ํƒ์ง€ ์ž‘์—…์—์„œ ๊ด€๋ จ ๊ฐœ์ฒด์— ์ง‘์ค‘ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
retina_masks bool False ๊ณ ํ•ด์ƒ๋„ ๋ถ„ํ•  ๋งˆ์Šคํฌ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜ํ™˜๋œ ๋งˆ์Šคํฌ(masks.data)๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด ์›๋ณธ ์ด๋ฏธ์ง€ ํฌ๊ธฐ์™€ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ์ถ”๋ก  ์ค‘์— ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฏธ์ง€ ํฌ๊ธฐ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
embed list[int] None ํŠน์ง• ๋ฒกํ„ฐ ๋˜๋Š” ์ž„๋ฒ ๋”ฉ์„ ์ถ”์ถœํ•  ๋ ˆ์ด์–ด๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ๋ง์ด๋‚˜ ์œ ์‚ฌ๋„ ๊ฒ€์ƒ‰๊ณผ ๊ฐ™์€ ๋‹ค์šด์ŠคํŠธ๋ฆผ ์ž‘์—…์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
project str None ์˜ˆ์ธก ์ถœ๋ ฅ์ด ์ €์žฅ๋˜๋Š” ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์ด๋ฆ„(๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ). save ๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
name str None ์˜ˆ์ธก ์‹คํ–‰์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ ์˜ˆ์ธก ์ถœ๋ ฅ์ด ์ €์žฅ๋˜๋Š” ํ”„๋กœ์ ํŠธ ํด๋” ๋‚ด์— ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. save ๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

๊ฐ์ฒด ์ž๋ฅด๊ธฐ( Ultralytics YOLO11 )๋ž€ ๋ฌด์—‡์ด๋ฉฐ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋‚˜์š”?

๋ฅผ ์‚ฌ์šฉํ•œ ๊ฐœ์ฒด ์ž๋ฅด๊ธฐ Ultralytics YOLO11YOLO11 ์˜ ํƒ์ง€ ๊ธฐ๋Šฅ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด๋ฏธ์ง€ ๋˜๋Š” ๋™์˜์ƒ์—์„œ ํŠน์ • ๊ฐ์ฒด๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ  ์ถ”์ถœํ•˜๋Š” ์ž‘์—…์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค๋ฅผ ํ†ตํ•ด ์ง‘์ค‘์ ์ธ ๋ถ„์„, ๋ฐ์ดํ„ฐ ์šฉ๋Ÿ‰ ๊ฐ์†Œ, ์ •ํ™•๋„ ํ–ฅ์ƒ์„ ์œ„ํ•ด YOLO11 ์„ ํ™œ์šฉํ•˜์—ฌ ๋†’์€ ์ •ํ™•๋„๋กœ ๊ฐœ์ฒด๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ๊ทธ์— ๋”ฐ๋ผ ์ž๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ํŠœํ† ๋ฆฌ์–ผ์€ ๊ฐ์ฒด ์ž๋ฅด๊ธฐ ์˜ˆ์‹œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค๋ฅธ ์†”๋ฃจ์…˜๋ณด๋‹ค ๊ฐ์ฒด ์ž๋ฅด๊ธฐ์— Ultralytics YOLO11 ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

Ultralytics YOLO11 ๋Š” ์ •๋ฐ€๋„, ์†๋„, ์‚ฌ์šฉ ํŽธ์˜์„ฑ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค. ์„ธ๋ถ€์ ์ด๊ณ  ์ •ํ™•ํ•œ ๊ฐœ์ฒด ๊ฐ์ง€ ๋ฐ ์ž๋ฅด๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜์—ฌ ์ง‘์ค‘์ ์ธ ๋ถ„์„๊ณผ ๋†’์€ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์ด ํ•„์š”ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ, YOLO11 ์€ ๋‹ค์–‘ํ•œ ํ•˜๋“œ์›จ์–ด์—์„œ ์‹ค์‹œ๊ฐ„ ๊ธฐ๋Šฅ๊ณผ ์ตœ์ ํ™”๊ฐ€ ํ•„์š”ํ•œ ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด OpenVINO ๋ฐ TensorRT ๊ณผ ๊ฐ™์€ ๋„๊ตฌ์™€ ์›ํ™œํ•˜๊ฒŒ ํ†ตํ•ฉ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ ๋‚ด๋ณด๋‚ด๊ธฐ ๊ฐ€์ด๋“œ์—์„œ ์ด์ ์„ ์‚ดํŽด๋ณด์„ธ์š”.

๊ฐœ์ฒด ์ž๋ฅด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์˜ ๋ฐ์ดํ„ฐ ๋ณผ๋ฅจ์„ ์ค„์ด๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?

Ultralytics YOLO11 ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋˜๋Š” ๋™์˜์ƒ์—์„œ ๊ด€๋ จ ๊ฐœ์ฒด๋งŒ ์ž๋ฅด๋ฉด ๋ฐ์ดํ„ฐ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒŒ ์ค„์—ฌ ์ €์žฅ ๋ฐ ์ฒ˜๋ฆฌ ํšจ์œจ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค์—๋Š” ํŠน์ • ๊ฐœ์ฒด๋ฅผ ๊ฐ์ง€ํ•˜๋„๋ก ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚จ ๋‹ค์Œ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ๋ถ€๋ถ„๋งŒ ์ž๋ฅด๊ณ  ์ €์žฅํ•˜๋Š” ๊ณผ์ •์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. Ultralytics YOLO11 ์˜ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋น ๋ฅธ ์‹œ์ž‘ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์‹ค์‹œ๊ฐ„ ๋™์˜์ƒ ๋ถ„์„ ๋ฐ ๊ฐœ์ฒด ์ž๋ฅด๊ธฐ์— Ultralytics YOLO11 ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

์˜ˆ, Ultralytics YOLO11 ์‹ค์‹œ๊ฐ„ ๋น„๋””์˜ค ํ”ผ๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ๋™์ ์œผ๋กœ ๊ฐ์ง€ํ•˜๊ณ  ์ž๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋ธ์˜ ๊ณ ์† ์ถ”๋ก  ๊ธฐ๋Šฅ์€ ๊ฐ์‹œ, ์Šคํฌ์ธ  ๋ถ„์„, ์ž๋™ํ™”๋œ ๊ฒ€์‚ฌ ์‹œ์Šคํ…œ๊ณผ ๊ฐ™์€ ์‹ค์‹œ๊ฐ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ์ถ”์  ๋ฐ ์˜ˆ์ธก ๋ชจ๋“œ๋ฅผ ํ™•์ธํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์„ธ์š”.

๊ฐ์ฒด ์ž๋ฅด๊ธฐ๋ฅผ ์œ„ํ•ด YOLO11 ์„ ํšจ์œจ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํ•˜๋“œ์›จ์–ด ์š”๊ตฌ ์‚ฌํ•ญ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

Ultralytics YOLO11 ๋Š” CPU ๋ฐ GPU ํ™˜๊ฒฝ ๋ชจ๋‘์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์ง€๋งŒ, ํŠนํžˆ ์‹ค์‹œ๊ฐ„ ๋˜๋Š” ๋Œ€์šฉ๋Ÿ‰ ์ถ”๋ก ์˜ ๊ฒฝ์šฐ ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ์–ป์œผ๋ ค๋ฉด ์ „์šฉ GPU (์˜ˆ: NVIDIA Tesla, RTX ์‹œ๋ฆฌ์ฆˆ)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ฒฝ๋Ÿ‰ ๊ธฐ๊ธฐ์— ๋ฐฐํฌํ•˜๋ ค๋ฉด iOS ์˜ ๊ฒฝ์šฐ CoreML ๋˜๋Š” Android ์˜ ๊ฒฝ์šฐ TFLite ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ง€์›๋˜๋Š” ๋””๋ฐ”์ด์Šค ๋ฐ ํ˜•์‹์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ชจ๋ธ ๋ฐฐํฌ ์˜ต์…˜์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

10๊ฐœ์›” ์ „ ์ƒ์„ฑ๋จ โœ๏ธ 1๊ฐœ์›” ์ „ ์—…๋ฐ์ดํŠธ๋จ

๋Œ“๊ธ€