μ½˜ν…μΈ λ‘œ κ±΄λ„ˆλ›°κΈ°

λ‹€μŒμ„ μ‚¬μš©ν•˜μ—¬ 개체 수 계산 Ultralytics YOLOv8

였브젝트 μΉ΄μš΄νŒ…μ΄λž€ λ¬΄μ—‡μΈκ°€μš”?

λ₯Ό μ‚¬μš©ν•œ 객체 μΉ΄μš΄νŒ… Ultralytics YOLOv8 λŠ” λ™μ˜μƒκ³Ό 카메라 μŠ€νŠΈλ¦Όμ—μ„œ νŠΉμ • 객체λ₯Ό μ •ν™•ν•˜κ²Œ μ‹λ³„ν•˜κ³  μΉ΄μš΄νŒ…ν•˜λŠ” κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. YOLOv8 λŠ” μ΅œμ²¨λ‹¨ μ•Œκ³ λ¦¬μ¦˜κ³Ό λ”₯λŸ¬λ‹ κΈ°λŠ₯ 덕뢄에 ꡰ쀑 뢄석 및 κ°μ‹œμ™€ 같은 λ‹€μ–‘ν•œ μ‹œλ‚˜λ¦¬μ˜€μ—μ„œ 효율적이고 μ •ν™•ν•œ 객체 μΉ΄μš΄νŒ…μ„ μ œκ³΅ν•˜λŠ” μ‹€μ‹œκ°„ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— νƒμ›”ν•©λ‹ˆλ‹€.


Watch: λ‹€μŒμ„ μ‚¬μš©ν•˜μ—¬ 개체 수 계산 Ultralytics YOLOv8

Watch: ν΄λž˜μŠ€λ³„ 였브젝트 μΉ΄μš΄νŒ…μ„ μ‚¬μš©ν•˜μ—¬ Ultralytics YOLOv8

였브젝트 μΉ΄μš΄νŒ…μ˜ μž₯점은?

  • λ¦¬μ†ŒμŠ€ μ΅œμ ν™”: 개체 μΉ΄μš΄νŒ…μ€ μ •ν™•ν•œ 개수λ₯Ό μ œκ³΅ν•˜κ³  재고 관리와 같은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ λ¦¬μ†ŒμŠ€ 할당을 μ΅œμ ν™”ν•˜μ—¬ 효율적인 λ¦¬μ†ŒμŠ€ 관리λ₯Ό μš©μ΄ν•˜κ²Œ ν•©λ‹ˆλ‹€.
  • λ³΄μ•ˆ κ°•ν™”: 개체 μΉ΄μš΄νŒ…μ€ 개체λ₯Ό μ •ν™•ν•˜κ²Œ μΆ”μ ν•˜κ³  κ³„μ‚°ν•˜μ—¬ 사전 μœ„ν˜‘ 탐지λ₯Ό μ§€μ›ν•¨μœΌλ‘œμ¨ λ³΄μ•ˆκ³Ό κ°μ‹œλ₯Ό κ°•ν™”ν•©λ‹ˆλ‹€.
  • 정보에 κΈ°λ°˜ν•œ μ˜μ‚¬ κ²°μ •: 객체 μΉ΄μš΄νŒ…μ€ μ˜μ‚¬ κ²°μ •, μ†Œλ§€μ—…, ꡐ톡 관리 및 기타 λ‹€μ–‘ν•œ μ˜μ—­μ˜ ν”„λ‘œμ„ΈμŠ€ μ΅œμ ν™”λ₯Ό μœ„ν•œ κ·€μ€‘ν•œ μΈμ‚¬μ΄νŠΈλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

μ‹€μ œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜

λ¬Όλ₯˜ 양식업
컨베이어 벨트 νŒ¨ν‚· κ³„μˆ˜ μ‚¬μš© Ultralytics YOLOv8 λ°”λ‹€μ—μ„œ λ¬Όκ³ κΈ° 수 μ„ΈκΈ° Ultralytics YOLOv8
컨베이어 벨트 νŒ¨ν‚· κ³„μˆ˜ μ‚¬μš© Ultralytics YOLOv8 λ°”λ‹€μ—μ„œ λ¬Όκ³ κΈ° 수 μ„ΈκΈ° Ultralytics YOLOv8

YOLOv8 예제λ₯Ό μ‚¬μš©ν•œ 개체 수 계산

import cv2

from ultralytics import YOLO, solutions

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

# Define region points
region_points = [(20, 400), (1080, 404), (1080, 360), (20, 360)]

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

# Init Object Counter
counter = solutions.ObjectCounter(
    view_img=True,
    reg_pts=region_points,
    names=model.names,
    draw_tracks=True,
    line_thickness=2,
)

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 = counter.start_counting(im0, tracks)
    video_writer.write(im0)

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

from ultralytics import YOLO, solutions

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

# Define region points as a polygon with 5 points
region_points = [(20, 400), (1080, 404), (1080, 360), (20, 360), (20, 400)]

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

# Init Object Counter
counter = solutions.ObjectCounter(
    view_img=True,
    reg_pts=region_points,
    names=model.names,
    draw_tracks=True,
    line_thickness=2,
)

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 = counter.start_counting(im0, tracks)
    video_writer.write(im0)

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

from ultralytics import YOLO, solutions

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

# Define line points
line_points = [(20, 400), (1080, 400)]

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

# Init Object Counter
counter = solutions.ObjectCounter(
    view_img=True,
    reg_pts=line_points,
    names=model.names,
    draw_tracks=True,
    line_thickness=2,
)

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 = counter.start_counting(im0, tracks)
    video_writer.write(im0)

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

from ultralytics import YOLO, solutions

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

line_points = [(20, 400), (1080, 400)]  # line or region points
classes_to_count = [0, 2]  # person and car classes for count

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

# Init Object Counter
counter = solutions.ObjectCounter(
    view_img=True,
    reg_pts=line_points,
    names=model.names,
    draw_tracks=True,
    line_thickness=2,
)

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, classes=classes_to_count)

    im0 = counter.start_counting(im0, tracks)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()
지역 이동 κ°€λŠ₯

ν”„λ ˆμž„μ˜ κ°€μž₯자리λ₯Ό ν΄λ¦­ν•˜μ—¬ μ˜μ—­μ„ μ›ν•˜λŠ” 곳으둜 이동할 수 μžˆμŠ΅λ‹ˆλ‹€.

인수 ObjectCounter

λ‹€μŒμ€ ν‘œμž…λ‹ˆλ‹€. ObjectCounter 인수λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€:

이름 μœ ν˜• κΈ°λ³Έκ°’ μ„€λͺ…
names dict None 클래슀 이름 사전.
reg_pts list [(20, 400), (1260, 400)] 계산 μ˜μ—­μ„ μ •μ˜ν•˜λŠ” 포인트 λͺ©λ‘μž…λ‹ˆλ‹€.
count_reg_color tuple (255, 0, 255) μΉ΄μš΄νŒ… μ˜μ—­μ˜ RGB μƒ‰μƒμž…λ‹ˆλ‹€.
count_txt_color tuple (0, 0, 0) 카운트 ν…μŠ€νŠΈμ˜ RGB μƒ‰μƒμž…λ‹ˆλ‹€.
count_bg_color tuple (255, 255, 255) 카운트 ν…μŠ€νŠΈ 배경의 RGB μƒ‰μƒμž…λ‹ˆλ‹€.
line_thickness int 2 경계 μƒμžμ˜ μ„  λ‘κ»˜μž…λ‹ˆλ‹€.
track_thickness int 2 νŠΈλž™ μ„ μ˜ λ‘κ»˜μž…λ‹ˆλ‹€.
view_img bool False λΉ„λ””μ˜€ 슀트림 ν‘œμ‹œ μ—¬λΆ€λ₯Ό μ œμ–΄ν•˜λŠ” ν”Œλž˜κ·Έμž…λ‹ˆλ‹€.
view_in_counts bool True λΉ„λ””μ˜€ μŠ€νŠΈλ¦Όμ— 인 카운트λ₯Ό ν‘œμ‹œν• μ§€ μ—¬λΆ€λ₯Ό μ œμ–΄ν•˜λŠ” ν”Œλž˜κ·Έμž…λ‹ˆλ‹€.
view_out_counts bool True λΉ„λ””μ˜€ μŠ€νŠΈλ¦Όμ— 아웃 카운트λ₯Ό ν‘œμ‹œν• μ§€ μ—¬λΆ€λ₯Ό μ œμ–΄ν•˜λŠ” ν”Œλž˜κ·Έμž…λ‹ˆλ‹€.
draw_tracks bool False ν”Œλž˜κ·Έ - 개체 νŠΈλž™μ„ 그릴지 μ—¬λΆ€λ₯Ό μ œμ–΄ν•©λ‹ˆλ‹€.
track_color tuple None νŠΈλž™μ˜ RGB 색상.
region_thickness int 5 객체 계산 μ˜μ—­μ˜ λ‘κ»˜μž…λ‹ˆλ‹€.
line_dist_thresh int 15 라인 μΉ΄μš΄ν„°μ˜ μœ ν΄λ¦¬λ“œ 거리 μž„κ³„κ°’μž…λ‹ˆλ‹€.
cls_txtdisplay_gap int 50 각 클래슀 수 μ‚¬μ΄μ˜ 간격을 ν‘œμ‹œν•©λ‹ˆλ‹€.

인수 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 을 μ‚¬μš©ν•˜μ—¬ λ™μ˜μƒμ—μ„œ 개체λ₯Ό μΉ΄μš΄νŠΈν•˜λ €λ©΄ λ‹€μŒ 단계λ₯Ό λ”°λ₯΄μ„Έμš”:

  1. ν•„μš”ν•œ 라이브러리 κ°€μ Έμ˜€κΈ°(cv2, ultralytics).
  2. 사전 ν•™μŠ΅λœ YOLOv8 λͺ¨λΈμ„ λ‘œλ“œν•©λ‹ˆλ‹€.
  3. μΉ΄μš΄νŒ… μ˜μ—­(예: λ‹€κ°ν˜•, μ„  λ“±)을 μ •μ˜ν•©λ‹ˆλ‹€.
  4. λ™μ˜μƒ 캑처λ₯Ό μ„€μ •ν•˜κ³  개체 μΉ΄μš΄ν„°λ₯Ό μ΄ˆκΈ°ν™”ν•©λ‹ˆλ‹€.
  5. 각 ν”„λ ˆμž„μ„ μ²˜λ¦¬ν•˜μ—¬ 객체λ₯Ό μΆ”μ ν•˜κ³  μ •μ˜λœ μ˜μ—­ λ‚΄μ—μ„œ 객체λ₯Ό κ³„μ‚°ν•©λ‹ˆλ‹€.

λ‹€μŒμ€ ν•œ μ§€μ—­μ—μ„œ κ³„μ‚°ν•˜λŠ” κ°„λ‹¨ν•œ μ˜ˆμž…λ‹ˆλ‹€:

import cv2

from ultralytics import YOLO, solutions


def count_objects_in_region(video_path, output_video_path, model_path):
    """Count objects in a specific region within a video."""
    model = YOLO(model_path)
    cap = cv2.VideoCapture(video_path)
    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))
    region_points = [(20, 400), (1080, 404), (1080, 360), (20, 360)]
    video_writer = cv2.VideoWriter(output_video_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
    counter = solutions.ObjectCounter(
        view_img=True, reg_pts=region_points, names=model.names, draw_tracks=True, line_thickness=2
    )

    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 = counter.start_counting(im0, tracks)
        video_writer.write(im0)

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


count_objects_in_region("path/to/video.mp4", "output_video.avi", "yolov8n.pt")

개체 수 계산 μ„Ήμ…˜μ—μ„œ 더 λ§Žμ€ ꡬ성 및 μ˜΅μ…˜μ„ μ‚΄νŽ΄λ³΄μ„Έμš”.

객체 μΉ΄μš΄νŒ…μ— Ultralytics YOLOv8 을 μ‚¬μš©ν•˜λ©΄ μ–΄λ–€ 이점이 μžˆλ‚˜μš”?

객체 μΉ΄μš΄νŒ…μ— Ultralytics YOLOv8 을 μ‚¬μš©ν•˜λ©΄ λͺ‡ 가지 μž₯점이 μžˆμŠ΅λ‹ˆλ‹€:

  1. λ¦¬μ†ŒμŠ€ μ΅œμ ν™”: μ •ν™•ν•œ 카운트λ₯Ό μ œκ³΅ν•˜μ—¬ 효율적인 λ¦¬μ†ŒμŠ€ 관리λ₯Ό μš©μ΄ν•˜κ²Œ ν•˜κ³ , 재고 관리와 같은 μ‚°μ—…μ—μ„œ λ¦¬μ†ŒμŠ€ 할당을 μ΅œμ ν™”ν•˜λŠ” 데 도움을 μ€λ‹ˆλ‹€.
  2. λ³΄μ•ˆ κ°•ν™”: μ—”ν‹°ν‹°λ₯Ό μ •ν™•ν•˜κ²Œ μΆ”μ ν•˜κ³  κ³„μ‚°ν•˜μ—¬ λ³΄μ•ˆ 및 κ°μ‹œλ₯Ό κ°•ν™”ν•˜μ—¬ μ„ μ œμ μΈ μœ„ν˜‘ 탐지λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€.
  3. 정보에 κΈ°λ°˜ν•œ μ˜μ‚¬ κ²°μ •: λ¦¬ν…ŒμΌ, νŠΈλž˜ν”½ 관리 λ“±μ˜ μ˜μ—­μ—μ„œ μ˜μ‚¬ 결정을 μœ„ν•œ κ·€μ€‘ν•œ μΈμ‚¬μ΄νŠΈλ₯Ό μ œκ³΅ν•˜μ—¬ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ΅œμ ν™”ν•©λ‹ˆλ‹€.

μ‹€μ œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό μ½”λ“œ 예제λ₯Ό 보렀면 객체 μΉ΄μš΄νŒ…μ˜ μž₯점 μ„Ήμ…˜μ„ μ°Έμ‘°ν•˜μ„Έμš”.

Ultralytics YOLOv8 을 μ‚¬μš©ν•˜μ—¬ νŠΉμ • 클래슀 였브젝트λ₯Ό κ³„μ‚°ν•˜λ €λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Ό ν•˜λ‚˜μš”?

Ultralytics YOLOv8 을 μ‚¬μš©ν•˜μ—¬ νŠΉμ • 클래슀 였브젝트λ₯Ό μΉ΄μš΄νŠΈν•˜λ €λ©΄ 좔적 λ‹¨κ³„μ—μ„œ 관심 μžˆλŠ” 클래슀λ₯Ό 지정해야 ν•©λ‹ˆλ‹€. μ•„λž˜λŠ” Python μ˜ˆμ‹œμž…λ‹ˆλ‹€:

import cv2

from ultralytics import YOLO, solutions


def count_specific_classes(video_path, output_video_path, model_path, classes_to_count):
    """Count specific classes of objects in a video."""
    model = YOLO(model_path)
    cap = cv2.VideoCapture(video_path)
    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))
    line_points = [(20, 400), (1080, 400)]
    video_writer = cv2.VideoWriter(output_video_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
    counter = solutions.ObjectCounter(
        view_img=True, reg_pts=line_points, names=model.names, draw_tracks=True, line_thickness=2
    )

    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, classes=classes_to_count)
        im0 = counter.start_counting(im0, tracks)
        video_writer.write(im0)

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


count_specific_classes("path/to/video.mp4", "output_specific_classes.avi", "yolov8n.pt", [0, 2])

이 μ˜ˆμ œμ—μ„œλŠ” classes_to_count=[0, 2]클래슀의 객체λ₯Ό κ³„μ‚°ν•œλ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€. 0 그리고 2 (예: μ‚¬λžŒ 및 μžλ™μ°¨).

μ‹€μ‹œκ°„ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— λ‹€λ₯Έ 객체 감지 λͺ¨λΈ λŒ€μ‹  YOLOv8 을 μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” μ΄μœ λŠ” λ¬΄μ—‡μΈκ°€μš”?

Ultralytics YOLOv8 λŠ” Faster R-CNN, SSD 및 이전 YOLO 버전과 같은 λ‹€λ₯Έ 객체 감지 λͺ¨λΈμ— λΉ„ν•΄ λͺ‡ 가지 이점을 μ œκ³΅ν•©λ‹ˆλ‹€:

  1. 속도와 νš¨μœ¨μ„±: YOLOv8 은 μ‹€μ‹œκ°„ 처리 κΈ°λŠ₯을 μ œκ³΅ν•˜λ―€λ‘œ κ°μ‹œ 및 자율 μ£Όν–‰κ³Ό 같이 고속 좔둠이 ν•„μš”ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ΄μƒμ μž…λ‹ˆλ‹€.
  2. 정확도: 물체 감지 및 좔적 μž‘μ—…μ— μ΅œμ²¨λ‹¨ 정확도λ₯Ό μ œκ³΅ν•˜μ—¬ μ˜€νƒμ§€ 횟수λ₯Ό 쀄이고 μ „λ°˜μ μΈ μ‹œμŠ€ν…œ μ•ˆμ •μ„±μ„ ν–₯μƒμ‹œν‚΅λ‹ˆλ‹€.
  3. 톡합 μš©μ΄μ„±: YOLOv8 은 λͺ¨λ°”일 및 엣지 λ””λ°”μ΄μŠ€λ₯Ό λΉ„λ‘―ν•œ λ‹€μ–‘ν•œ ν”Œλž«νΌ 및 λ””λ°”μ΄μŠ€μ™€ μ›ν™œν•˜κ²Œ 톡합할 수 있으며, μ΄λŠ” μ΅œμ‹  AI μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— 맀우 μ€‘μš”ν•©λ‹ˆλ‹€.
  4. μœ μ—°μ„±: νŠΉμ • μ‚¬μš© 사둀 μš”κ΅¬ 사항을 μΆ©μ‘±ν•˜λ„λ‘ ꡬ성 κ°€λŠ₯ν•œ λͺ¨λΈμ„ 톡해 객체 감지, μ„ΈλΆ„ν™”, 좔적과 같은 λ‹€μ–‘ν•œ μž‘μ—…μ„ μ§€μ›ν•©λ‹ˆλ‹€.

κΈ°λŠ₯ 및 μ„±λŠ₯ 비ꡐ에 λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ Ultralytics YOLOv8 μ„€λͺ…μ„œλ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

ꡰ쀑 뢄석 및 νŠΈλž˜ν”½ 관리와 같은 κ³ κΈ‰ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— YOLOv8 을 μ‚¬μš©ν•  수 μžˆλ‚˜μš”?

예, Ultralytics YOLOv8 은 μ‹€μ‹œκ°„ 감지 κΈ°λŠ₯, ν™•μž₯μ„± 및 톡합 μœ μ—°μ„±μœΌλ‘œ 인해 ꡰ쀑 뢄석 및 νŠΈλž˜ν”½ 관리와 같은 κ³ κΈ‰ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ™„λ²½ν•˜κ²Œ μ ν•©ν•©λ‹ˆλ‹€. κ³ κΈ‰ κΈ°λŠ₯을 톡해 동적인 ν™˜κ²½μ—μ„œ κ³ μ •λ°€ 객체 좔적, μΉ΄μš΄νŒ… 및 λΆ„λ₯˜κ°€ κ°€λŠ₯ν•©λ‹ˆλ‹€. μ‚¬μš© μ‚¬λ‘€μ˜ μ˜ˆλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

  • ꡰ쀑 뢄석: λŒ€κ·œλͺ¨ λͺ¨μž„을 λͺ¨λ‹ˆν„°λ§ν•˜κ³  κ΄€λ¦¬ν•˜μ—¬ μ•ˆμ „μ„ 보μž₯ν•˜κ³  κ΅°μ€‘μ˜ 흐름을 μ΅œμ ν™”ν•©λ‹ˆλ‹€.
  • ꡐ톡 관리: μ°¨λŸ‰μ„ 좔적 및 μ§‘κ³„ν•˜κ³ , ꡐ톡 νŒ¨ν„΄μ„ λΆ„μ„ν•˜κ³ , μ‹€μ‹œκ°„μœΌλ‘œ ꡐ톡 ν˜Όμž‘μ„ κ΄€λ¦¬ν•˜μ„Έμš”.

μžμ„Έν•œ 정보 및 κ΅¬ν˜„ μ„ΈλΆ€ 사항은 객체 μΉ΄μš΄νŒ…μ˜ μ‹€μ œ 적용 κ°€μ΄λ“œ( YOLOv8)λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.



2023-12-02 생성, 2024-07-14 μ—…λ°μ΄νŠΈ
μž‘μ„±μž: RizwanMunawar (6), glenn-jocher (15), IvorZhu331 (1), AyushExel (1)

λŒ“κΈ€