Ultralytics YOLO27:

Ultralytics YOLO26을 활용하여 주차 관리 시스템 구축하기#

주차 관리 시스템이란 무엇인가요?#

Ultralytics YOLO26으로 구축한 주차 관리 시스템은 실시간으로 차량을 감지하여 어떤 주차 공간이 사용 중이거나 비어 있는지 추적한 다음, 주차장의 실시간 점유 현황을 보고합니다. YOLO26 객체 감지와 JSON으로 정의된 주차 레이아웃을 결합하므로, 하나의 비디오 스트림 또는 카메라 피드에서 전체 주차장을 모니터링할 수 있습니다.



Watch: How to Build a Parking Management System with Ultralytics YOLO26 | Real-Time Spot Detection 🚗

주차 관리 시스템의 장점#

  • 효율성: 주차 공간을 효율적으로 활용하고 주차장 전체의 혼잡을 줄입니다.
  • 안전 및 보안: 지속적인 감시를 통해 사람과 차량의 안전을 향상합니다.
  • 배출량 감소: 교통 흐름을 관리하여 주차장에서의 공회전 시간과 배출량을 최소화합니다.

실제 적용 사례#

주차 관리 시스템주차 관리 시스템
Ultralytics YOLO26을 사용한 주차장 분석Ultralytics YOLO26을 사용한 주차 관리 상단 뷰
Ultralytics YOLO26을 사용한 주차 관리 항공 뷰Ultralytics YOLO26을 사용한 주차 관리 상단 뷰

주차 관리 시스템 코드 워크플로#

이제 포인트 선택이 간편합니다

주차 포인트를 선택하는 작업은 주차 관리 시스템에서 중요하면서도 복잡한 작업입니다. Ultralytics는 주차장 영역을 정의할 수 있는 "Parking slots annotator" 도구를 제공하여 이 과정을 간소화하며, 정의한 영역은 이후 추가 처리에 활용할 수 있습니다.

1단계: 주차장을 관리하려는 비디오 또는 카메라 스트림에서 프레임을 캡처합니다.

2단계: 제공된 코드를 사용하여 그래픽 인터페이스를 실행한 다음, 이미지를 선택하고 마우스로 클릭하여 주차 영역의 윤곽을 그리고 폴리곤을 생성합니다.

Ultralytics YOLO 주차 슬롯 주석 도구
`tkinter` 설치를 위한 추가 단계

일반적으로 tkinter은 Python과 함께 사전 패키징되어 제공됩니다. 그러나 설치되어 있지 않다면 다음 강조된 단계를 사용하여 설치할 수 있습니다:

  • Linux: (Debian/Ubuntu): sudo apt install python3-tk
  • Fedora: sudo dnf install python3-tkinter
  • Arch: sudo pacman -S tk
  • Windows: Python을 다시 설치하고 설치 중 Optional Features에서 tcl/tk and IDLE 확인란을 활성화합니다.
  • MacOS: https://www.python.org/downloads/macos/에서 Python을 다시 설치하거나 brew install python-tk을 사용합니다.
from ultralytics import solutions

solutions.ParkingPtsSelection()

3단계: 폴리곤으로 주차 영역을 정의한 후 save을 클릭하여 데이터를 작업 디렉터리에 bounding_boxes.json로 저장합니다. 이는 아래의 관리 스크립트가 불러오는 것과 동일한 파일 이름입니다.

Ultralytics YOLO26 포인트 선택 데모

4단계: 이제 아래 코드로 주차 관리 솔루션을 실행할 수 있습니다.

Ultralytics YOLO를 사용한 주차 관리
import cv2

from ultralytics import solutions

# Video capture
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Video writer
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("parking management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize parking management object
parkingmanager = solutions.ParkingManagement(
    model="yolo26n.pt",  # path to model file
    json_file="bounding_boxes.json",  # path to parking annotations file
)

while cap.isOpened():
    ret, im0 = cap.read()
    if not ret:
        break

    results = parkingmanager(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

ParkingManagement 인수#

다음은 ParkingManagement 인수 표입니다.

인수유형기본값설명
modelstrNoneUltralytics YOLO 모델 파일의 경로입니다.
json_filestrNone모든 주차 좌표 데이터가 포함된 JSON 파일의 경로입니다.
line_widthint2솔루션이 그리는 박스, 키포인트 및 카운트의 선 두께입니다.
verboseboolTrue입력 형태, 클래스별 개수 및 처리 속도의 프레임별 로그를 활성화합니다. 추적 호출 자체는 항상 로그를 출력하지 않습니다.

ParkingManagement 솔루션에서는 여러 track 파라미터를 사용할 수 있습니다:

인수유형기본값설명
trackerstr'botsort.yaml'사용할 추적 알고리즘을 지정합니다. 기본 제공 옵션: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml입니다.
conffloat0.25검출 결과의 신뢰도 임계값을 설정합니다. 값이 낮을수록 더 많은 객체를 추적할 수 있지만 오탐이 포함될 수 있습니다.
ioufloat0.7겹치는 검출 결과를 필터링하기 위한 교집합 대비 합집합 (IoU) 임계값을 설정합니다.
classeslistNone클래스 인덱스로 결과를 필터링합니다. 예를 들어 classes=[0, 2, 3]은 지정된 클래스만 추적합니다.
devicestrNone추론에 사용할 장치를 지정합니다(예: cpu, cuda:0 또는 0). 사용자는 CPU, 특정 GPU 또는 기타 컴퓨팅 장치 중에서 모델 실행 장치를 선택할 수 있습니다.
imgszint or tuple640목표 추론 이미지 크기: 정사각형의 경우 정수 또는 (height, width) 쌍입니다. 형태는 모델 스트라이드에 맞게 조정됩니다.
max_detint300추적 전 프레임당 유지되는 최대 검출 수로, 솔루션이 밀집된 장면에서 처리하는 객체를 제한합니다.
quantizeint or strNone추론 정밀도: PyTorch 및 TorchScript 모델의 경우 16(FP16) 또는 32/설정 안 함(FP32); 기타 형식은 아티팩트와 런타임이 선택하는 정밀도로 계산됩니다. 더 이상 사용되지 않는 half 플래그를 대체합니다.

또한 다음과 같은 시각화 옵션을 지원합니다:

인수유형기본값설명
showboolFalseTrue인 경우 annotation이 추가된 이미지 또는 비디오를 window에 표시합니다. 개발 또는 테스트 중 즉각적인 시각적 피드백을 제공하는 데 유용합니다.

FAQ#

  • Ultralytics YOLO26은 주차 시스템에 실시간 차량 감지 및 모니터링을 제공하여 주차 공간을 효율적으로 활용하고 혼잡을 줄이며 지속적인 감시를 통해 안전성을 향상합니다. 실시간 카메라 피드에서 실행하면 교통 흐름을 관리하고 차량 공회전 시간을 최소화하는 데도 도움이 됩니다. 전체 설정은 주차 관리 코드 워크플로를 참조하세요.

  • 스마트 주차에 Ultralytics YOLO26을 사용하면 다음과 같은 다양한 이점이 있습니다:

    • 효율성: 주차 공간을 효율적으로 활용하고 혼잡을 줄입니다.
    • 안전 및 보안: 감시 기능을 강화하고 차량과 보행자의 안전을 보장합니다.
    • 환경 영향: 차량 공회전 시간을 최소화하여 배출량을 줄이는 데 도움이 됩니다. 자세한 이점은 주차 관리 시스템의 장점 섹션에서 확인하세요.
  • Ultralytics YOLO26을 사용하면 주차 공간을 간편하게 정의할 수 있습니다:

    1. 비디오 또는 카메라 스트림에서 프레임을 캡처합니다.
    2. 제공된 코드를 사용하여 이미지를 선택하고 폴리곤을 그려 주차 공간을 정의할 수 있는 GUI를 실행합니다.
    3. 추가 처리를 위해 레이블이 지정된 데이터를 JSON 형식으로 저장합니다. 자세한 지침은 위의 포인트 선택 섹션을 참조하세요.
  • 주차장별로 가장 중요한 설정은 json_file입니다. 포인트 주석 도구로 생성한 주차 영역 JSON을 지정하여 새로운 레이아웃에 맞게 솔루션을 조정할 수 있습니다. 다른 인수를 통해 추가로 사용자 지정할 수도 있습니다. model을 사용자 지정 학습한 detector로 설정하고, 특정 차량 classes로 감지를 제한하며, confiou 임계값을 조정하고, tracker을 전환하며, line_width을 사용하여 화면 내 레이블과 점유 현황 표시의 크기를 조정하거나, 추론 device을 선택할 수 있습니다. 영역 기반 모니터링에 관한 내용은 객체 카운팅 가이드를 참조하세요.

  • Ultralytics YOLO26은 다음을 비롯한 다양한 실제 주차장 관리 애플리케이션에 활용됩니다:

    • 주차 공간 감지: 사용 가능한 공간과 사용 중인 공간을 정확하게 식별합니다.
    • 감시: 실시간 모니터링을 통해 보안을 강화합니다.
    • 교통 흐름 관리: 효율적인 교통 처리를 통해 공회전 시간과 혼잡을 줄입니다. 이러한 활용 사례를 보여주는 이미지는 실제 활용 사례에서 확인할 수 있습니다.

댓글