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

Ultralytics YOLOv8 ๐Ÿš€์„ ์‚ฌ์šฉํ•œ ์†๋„ ์ถ”์ •

์†๋„ ์ถ”์ •์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

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



Watch: ๋‹ค์Œ์„ ์‚ฌ์šฉํ•œ ์†๋„ ์ถ”์ • Ultralytics YOLOv8

๋ธ”๋กœ๊ทธ ํ™•์ธ

์†๋„ ์ถ”์ •์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ( Ultralytics YOLOv8 ์ปดํ“จํ„ฐ ๋น„์ „ ํ”„๋กœ์ ํŠธ์˜ ์†๋„ ์ถ”์ •)์„ ํ™•์ธํ•˜์„ธ์š”.

์†๋„ ์˜ˆ์ธก์˜ ์žฅ์ ์€?

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

์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

๊ตํ†ตํŽธ ๊ตํ†ตํŽธ
๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„๋กœ์—์„œ ์†๋„ ์ถ”์ • Ultralytics YOLOv8 ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ธŒ๋ฆฌ์ง€์—์„œ ์†๋„ ์ถ”์ • Ultralytics YOLOv8
๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„๋กœ์—์„œ ์†๋„ ์ถ”์ • Ultralytics YOLOv8 ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ธŒ๋ฆฌ์ง€์—์„œ ์†๋„ ์ถ”์ • Ultralytics YOLOv8

YOLOv8 ์˜ˆ์ œ๋ฅผ ์‚ฌ์šฉํ•œ ์†๋„ ์ถ”์ •

import cv2

from ultralytics import YOLO, solutions

model = YOLO("yolov8n.pt")
names = model.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))

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

line_pts = [(0, 360), (1280, 360)]

# Init speed-estimation obj
speed_obj = solutions.SpeedEstimator(
    reg_pts=line_pts,
    names=names,
    view_img=True,
)

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

    tracks = model.track(im0, persist=True, show=False)

    im0 = speed_obj.estimate_speed(im0, tracks)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()
์†๋„๋Š” ์ถ”์ •์น˜์ž…๋‹ˆ๋‹ค.

์†๋„๋Š” ์ถ”์ •์น˜์ด๋ฉฐ ์™„์ „ํžˆ ์ •ํ™•ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ GPU ์†๋„์— ๋”ฐ๋ผ ์ถ”์ •์น˜๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ธ์ˆ˜ SpeedEstimator

์ด๋ฆ„ ์œ ํ˜• ๊ธฐ๋ณธ๊ฐ’ ์„ค๋ช…
names dict None ํด๋ž˜์Šค ์ด๋ฆ„ ์‚ฌ์ „.
reg_pts list [(20, 400), (1260, 400)] ์†๋„ ์ถ”์ •์„ ์œ„ํ•œ ์ง€์—ญ ํฌ์ธํŠธ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.
view_img bool False ์ฃผ์„๊ณผ ํ•จ๊ป˜ ์ด๋ฏธ์ง€๋ฅผ ํ‘œ์‹œํ• ์ง€ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค.
line_thickness int 2 ์ƒ์ž ๋ฐ ํŠธ๋ž™์„ ๊ทธ๋ฆฌ๊ธฐ ์œ„ํ•œ ์„ ์˜ ๋‘๊ป˜์ž…๋‹ˆ๋‹ค.
region_thickness int 5 ์˜์—ญ ์„ ์˜ ๋‘๊ป˜์ž…๋‹ˆ๋‹ค.
spdl_dist_thresh int 10 ์†๋„ ๊ณ„์‚ฐ์„ ์œ„ํ•œ ๊ฑฐ๋ฆฌ ์ž„๊ณ„๊ฐ’์ž…๋‹ˆ๋‹ค.

์ธ์ˆ˜ model.track

์ด๋ฆ„ ์œ ํ˜• ๊ธฐ๋ณธ๊ฐ’ ์„ค๋ช…
source im0 None ์ด๋ฏธ์ง€ ๋˜๋Š” ๋น„๋””์˜ค์˜ ์†Œ์Šค ๋””๋ ‰ํ† ๋ฆฌ
persist bool False ํ”„๋ ˆ์ž„ ๊ฐ„ ํŠธ๋ž™ ์ง€์†
tracker str botsort.yaml ์ถ”์  ๋ฐฉ๋ฒ• '๋ฐ”์ดํŠธํŠธ๋ž™' ๋˜๋Š” '๋ด‡์†ŒํŠธ'
conf float 0.3 ์‹ ๋ขฐ ์ž„๊ณ„๊ฐ’
iou float 0.5 IOU ์ž„๊ณ„๊ฐ’
classes list None ํด๋ž˜์Šค๋ณ„๋กœ ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: classes=0 ๋˜๋Š” classes=[0,2,3]).
verbose bool True ๊ฐœ์ฒด ์ถ”์  ๊ฒฐ๊ณผ ํ‘œ์‹œ

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

Ultralytics YOLOv8 ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด ์†๋„๋ฅผ ์ถ”์ •ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜๋‚˜์š”?

Ultralytics YOLOv8 ์œผ๋กœ ๋ฌผ์ฒด ์†๋„๋ฅผ ์ถ”์ •ํ•˜๋ ค๋ฉด ๋ฌผ์ฒด ๊ฐ์ง€ ๋ฐ ์ถ”์  ๊ธฐ์ˆ ์„ ๊ฒฐํ•ฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € YOLOv8 ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ํ”„๋ ˆ์ž„์—์„œ ๋ฌผ์ฒด๋ฅผ ๊ฐ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์—ฌ๋Ÿฌ ํ”„๋ ˆ์ž„์— ๊ฑธ์ณ ์ด๋Ÿฌํ•œ ๊ฐ์ฒด๋ฅผ ์ถ”์ ํ•˜์—ฌ ์‹œ๊ฐ„ ๊ฒฝ๊ณผ์— ๋”ฐ๋ฅธ ๊ฐ์ฒด์˜ ์›€์ง์ž„์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ํ”„๋ ˆ์ž„ ๊ฐ„์— ๋ฌผ์ฒด๊ฐ€ ์ด๋™ํ•œ ๊ฑฐ๋ฆฌ์™€ ํ”„๋ ˆ์ž„ ์†๋„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌผ์ฒด์˜ ์†๋„๋ฅผ ์ถ”์ •ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ:

import cv2

from ultralytics import YOLO, solutions

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

cap = cv2.VideoCapture("path/to/video/file.mp4")
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize SpeedEstimator
speed_obj = solutions.SpeedEstimator(
    reg_pts=[(0, 360), (1280, 360)],
    names=names,
    view_img=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    tracks = model.track(im0, persist=True, show=False)
    im0 = speed_obj.estimate_speed(im0, tracks)
    video_writer.write(im0)

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

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ณต์‹ ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ์—์„œ ์†๋„ ์˜ˆ์ธก์„ ์œ„ํ•ด Ultralytics YOLOv8 ์„ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ค ์ด์ ์ด ์žˆ๋‚˜์š”?

์†๋„ ์˜ˆ์ธก์— Ultralytics YOLOv8 ์„ ์‚ฌ์šฉํ•˜๋ฉด ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ์— ์ƒ๋‹นํ•œ ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค:

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

๋” ๋งŽ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์†๋„ ์ถ”์ •์˜ ์žฅ์ ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

YOLOv8 ์„ TensorFlow ๋˜๋Š” PyTorch ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ AI ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

์˜ˆ, YOLOv8 ์€ TensorFlow ๋ฐ PyTorch ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ AI ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Ultralytics ์€ YOLOv8 ๋ชจ๋ธ์„ ONNX, TensorRT, CoreML ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜์—ฌ ๋‹ค๋ฅธ ML ํ”„๋ ˆ์ž„์›Œํฌ์™€์˜ ์›ํ™œํ•œ ์ƒํ˜ธ ์šด์šฉ์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

YOLOv8 ๋ชจ๋ธ์„ ONNX ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•˜์„ธ์š”:

yolo export --weights yolov8n.pt --include onnx

๋‚ด๋ณด๋‚ด๊ธฐ ๊ฐ€์ด๋“œ์—์„œ ๋ชจ๋ธ ๋‚ด๋ณด๋‚ด๊ธฐ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.

Ultralytics YOLOv8 ์„ ์‚ฌ์šฉํ•œ ์†๋„ ์˜ˆ์ธก์€ ์–ผ๋งˆ๋‚˜ ์ •ํ™•ํ•ฉ๋‹ˆ๊นŒ?

Ultralytics YOLOv8 ์„ ์‚ฌ์šฉํ•œ ์†๋„ ์ถ”์ • ์ •ํ™•๋„๋Š” ๊ฐ์ฒด ์ถ”์ ์˜ ํ’ˆ์งˆ, ๋™์˜์ƒ์˜ ํ•ด์ƒ๋„ ๋ฐ ํ”„๋ ˆ์ž„ ์†๋„, ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋“ฑ ์—ฌ๋Ÿฌ ์š”์ธ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์†๋„ ์ถ”์ •๊ธฐ๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”์ •์น˜๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ ํ”„๋ ˆ์ž„ ์ฒ˜๋ฆฌ ์†๋„์™€ ๊ฐ์ฒด ํ์ƒ‰์˜ ์ฐจ์ด๋กœ ์ธํ•ด 100% ์ •ํ™•ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ : ํ•ญ์ƒ ์˜ค์ฐจ ๋ฒ”์œ„๋ฅผ ๊ณ ๋ คํ•˜๊ณ  ๊ฐ€๋Šฅํ•˜๋ฉด ์‹ค์ธก ๋ฐ์ดํ„ฐ๋กœ ์ถ”์ •์น˜๋ฅผ ๊ฒ€์ฆํ•˜์„ธ์š”.

์ถ”๊ฐ€ ์ •ํ™•๋„ ํ–ฅ์ƒ ํŒ์„ ํ™•์ธํ•˜๋ ค๋ฉด ์ธ์ˆ˜ SpeedEstimator ์„น์…˜.

TensorFlow ๊ฐ์ฒด ๊ฐ์ง€ API์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๊ฐ์ฒด ๊ฐ์ง€ ๋ชจ๋ธ ๋Œ€์‹  Ultralytics YOLOv8 ์„ ์„ ํƒํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

Ultralytics YOLOv8 ๋Š” TensorFlow ๊ฐ์ฒด ๊ฐ์ง€ API์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๊ฐ์ฒด ๊ฐ์ง€ ๋ชจ๋ธ์— ๋น„ํ•ด ๋ช‡ ๊ฐ€์ง€ ์žฅ์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

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

YOLOv8 ์˜ ํ˜œํƒ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ž์„ธํ•œ ๋ชจ๋ธ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.



2024-01-05 ์ƒ์„ฑ, 2024-07-05 ์—…๋ฐ์ดํŠธ๋จ
์ž‘์„ฑ์ž: glenn-jocher (7), IvorZhu331 (1), RizwanMunawar (2), Burhan-Q (1), AyushExel (1)

๋Œ“๊ธ€