Ultralytics YOLOv8 πμ μ¬μ©νμ¬ λ€λ₯Έ μμμμ κ°μ²΄ μ κ³μ°νκΈ°
μμ λ΄ μ€λΈμ νΈ μΉ΄μ΄ν μ΄λ 무μμΈκ°μ?
κ° μλ μμμ κ°μ²΄ μΉ΄μ΄ν Ultralytics YOLOv8 λ κ³ κΈ μ»΄ν¨ν° λΉμ μ μ¬μ©νμ¬ μ§μ λ μμ λ΄μ κ°μ²΄ μλ₯Ό μ ννκ² νμ νλ κ²μ ν¬ν¨ν©λλ€. μ΄ μ κ·Ό λ°©μμ λ€μν μ ν리μΌμ΄μ μμ νλ‘μΈμ€λ₯Ό μ΅μ ννκ³ λ³΄μμ κ°ννλ©° ν¨μ¨μ±μ κ°μ νλ λ° μ μ©ν©λλ€.
Watch: Ultralytics YOLOv8 λ€μ€ λ° μ΄λ κ°λ₯ν μμμμμ μ€λΈμ νΈ μΉ΄μ΄ν
μ§μ λ΄ μ€λΈμ νΈ μΉ΄μ΄ν μ μ₯μ μ?
- μ λ°λμ μ νμ±: κ³ κΈ μ»΄ν¨ν° λΉμ μΌλ‘ κ°μ²΄λ₯Ό μΈλ μμμμλ μ λ°νκ³ μ νν κ°μ κ³μ°μ΄ κ°λ₯νλ―λ‘ μλ κ³μ°κ³Ό κ΄λ ¨λ μ€λ₯λ₯Ό μ΅μνν μ μμ΅λλ€.
- ν¨μ¨μ± κ°μ : μλνλ κ°μ²΄ μΉ΄μ΄ν μ μ΄μ ν¨μ¨μ±μ ν₯μμμΌ λ€μν μ ν리μΌμ΄μ μμ μ€μκ° κ²°κ³Όλ₯Ό μ 곡νκ³ νλ‘μΈμ€λ₯Ό κ°μνν©λλ€.
- λ€λͺ©μ μ± λ° μ μ©: μ§μ λ΄ κ°μ²΄ κ³μμ λ€μ©λμ± λλΆμ μ μ‘° λ° κ°μμμ κ΅ν΅ λͺ¨λν°λ§μ μ΄λ₯΄κΈ°κΉμ§ λ€μν μμμ μ μ©ν μ μμ΄ κ΄λ²μν νμ©λμ ν¨μ¨μ±μ μ 곡ν©λλ€.
μ€μ μ ν리μΌμ΄μ
리ν μΌ | λ§μΌ μ€νΈλ¦¬νΈ |
---|---|
λ€μμ μ¬μ©νμ¬ λ€λ₯Έ μ§μμμ μ§κ³νλ μ¬λ μ Ultralytics YOLOv8 | λ€μμ μ¬μ©νμ¬ λ€λ₯Έ μ§μμ κ΅°μ€ μ κ³μ° Ultralytics YOLOv8 |
μ§μ κ³μ° μμ
import cv2
from ultralytics import solutions
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)] # Pass region as list
# pass region as dictionary
region_points = {
"region-01": [(50, 50), (250, 50), (250, 250), (50, 250)],
"region-02": [(640, 640), (780, 640), (780, 720), (640, 720)]
}
# Video writer
video_writer = cv2.VideoWriter("region_counting.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init Object Counter
region = solutions.RegionCounter(
show=True,
region=region_points,
model="yolo11n.pt",
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
im0 = region.count(im0)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Ultralytics μ½λ μμ
Ultralytics μ§μ μΉ΄μ΄ν λͺ¨λμ μμ μΉμ μμ μ¬μ©ν μ μμ΅λλ€. μ΄ μμ λ₯Ό μ΄ν΄λ³΄κ³ μ½λλ₯Ό μ¬μ©μ μ§μ νμ¬ νΉμ μ¬μ© μ¬λ‘μ λ§κ² μμ ν μ μμ΅λλ€.
μΈμ RegionCounter
λ€μμ νμ
λλ€. RegionCounter
μΈμλ₯Ό μ¬μ©ν©λλ€:
μ΄λ¦ | μ ν | κΈ°λ³Έκ° | μ€λͺ |
---|---|---|---|
model |
str |
None |
Ultralytics YOLO λͺ¨λΈ νμΌ κ²½λ‘ |
region |
list |
[(20, 400), (1260, 400)] |
κ³μ° μμμ μ μνλ ν¬μΈνΈ λͺ©λ‘μ λλ€. |
line_width |
int |
2 |
κ²½κ³ μμμ μ λκ»μ λλ€. |
show |
bool |
False |
λΉλμ€ μ€νΈλ¦Ό νμ μ¬λΆλ₯Ό μ μ΄νλ νλκ·Έμ λλ€. |
μμ£Ό 묻λ μ§λ¬Έ
Ultralytics YOLOv8 μ μ¬μ©νμ¬ μ§μ λ μμμμ μ€λΈμ νΈ μΉ΄μ΄ν μ΄λ 무μμΈκ°μ?
λ₯Ό μ¬μ©νμ¬ μ§μ λ μμμμ κ°μ²΄ μ κ³μ° Ultralytics YOLOv8 λ κ³ κΈ μ»΄ν¨ν° λΉμ μ μ¬μ©νμ¬ μ§μ λ μμ λ΄μ 물체 μλ₯Ό κ°μ§νκ³ μ§κ³ν©λλ€. μ΄ μ λ°ν λ°©λ²μ μ μ‘°, κ°μ, κ΅ν΅ λͺ¨λν°λ§κ³Ό κ°μ λ€μν μ ν리μΌμ΄μ μμ ν¨μ¨μ±κ³Ό μ νμ±μ ν₯μμν΅λλ€.
Ultralytics YOLOv8 μΌλ‘ κ°μ²΄ μΉ΄μ΄ν μ€ν¬λ¦½νΈλ₯Ό μ€ννλ €λ©΄ μ΄λ»κ² νλμ?
λ€μ λ¨κ³μ λ°λΌ Ultralytics YOLOv8 μμ κ°μ²΄ μΉ΄μ΄ν μ μ€νν©λλ€:
-
Ultralytics 리ν¬μ§ν 리λ₯Ό 볡μ νκ³ λλ ν λ¦¬λ‘ μ΄λν©λλ€:
-
μ§μ μΉ΄μ΄ν μ€ν¬λ¦½νΈλ₯Ό μ€νν©λλ€:
λ λ§μ μ΅μ μ λ³΄λ €λ©΄ μ§μ μΉ΄μ΄νΈ μ€ν μΉμ μ μ°Έμ‘°νμΈμ.
리μ μμ μ€λΈμ νΈ μΉ΄μ΄ν μ Ultralytics YOLOv8 μ μ¬μ©ν΄μΌ νλ μ΄μ λ 무μμΈκ°μ?
Ultralytics YOLOv8 μ μ¬μ©νλ©΄ μ§μ λ΄ κ°μ²΄ μ κ³μ°μ λͺ κ°μ§ μ΄μ μ΄ μμ΅λλ€:
- μ λ°λμ μ νμ±: μλ κ³μ°μμ νν λ³Ό μ μλ μ€λ₯λ₯Ό μ΅μνν©λλ€.
- ν¨μ¨μ± κ°μ : μ€μκ° κ²°κ³Όλ₯Ό μ 곡νκ³ νλ‘μΈμ€λ₯Ό κ°μνν©λλ€.
- λ€λͺ©μ μ± λ° νμ©λ: λ€μν λλ©μΈμ μ μ©νμ¬ νμ©λλ₯Ό λμ λλ€.
μ₯μ μΉμ μμ λ μμΈν ννμ μ΄ν΄λ³΄μΈμ.
λμμ μ¬μ μ€μ μ μλ μμμ μ‘°μ ν μ μλμ?
μ, Ultralytics YOLOv8 μ μ¬μ©νλ©΄ λμμ μ¬μ μ€μ μμμ λννμΌλ‘ μ΄λν μ μμ΅λλ€. λ§μ°μ€ μΌμͺ½ λ²νΌμΌλ‘ ν΄λ¦νκ³ λλκ·ΈνκΈ°λ§ νλ©΄ μμμ μμΉλ₯Ό λ³κ²½ν μ μμ΅λλ€. μ΄ κΈ°λ₯μ λμ μΈ νκ²½μ λν μ μ°μ±μ ν₯μμν΅λλ€. μ΄λ κ°λ₯ν μμμ λν ν μΉμ μμ μμΈν μμ보μΈμ.
μ§μμμ μ€λΈμ νΈ μΉ΄μ΄ν μ μ€μ μ μ© μ¬λ‘μλ μ΄λ€ κ²μ΄ μλμ?
Ultralytics YOLOv8 μ μ¬μ©ν κ°μ²΄ μΉ΄μ΄ν μ λ€μν μ€μ μλ리μ€μ μ μ©ν μ μμ΅λλ€:
- μ맀μ : μ λμΈκ΅¬ λΆμμ μν μ¬λ μ κ³μ°
- μμ₯ 거리: κ΅°μ€ λ°λ κ΄λ¦¬.
μ€μ μ μ© μ¬λ‘ μΉμ μμ λ λ§μ μ¬λ‘λ₯Ό μ΄ν΄λ³΄μΈμ.