Ultralytics YOLO27:
Get Started

Ultralytics YOLO26으로 주차 관리 시스템 구축#

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

Ultralytics YOLO26으로 구축한 주차 관리 시스템은 차량을 실시간으로 검출해 주차 공간의 점유 여부를 추적하고, 주차장 전체의 실시간 점유 현황을 보고합니다. YOLO26 객체 검출 기능과 JSON으로 정의한 주차장 레이아웃을 결합해, 단일 동영상 스트림이나 카메라 피드로 전체 주차장을 모니터링할 수 있습니다.



시청: Ultralytics YOLO26으로 주차 관리 시스템을 구축하는 방법 | 실시간 주차 공간 감지 🚗

주차 관리 시스템의 장점#

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

실제 적용 사례#

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

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

이제 포인트를 쉽게 선택할 수 있습니다

주차 관리 시스템에서 주차 구역을 지정하는 일은 중요하면서도 복잡한 작업입니다. Ultralytics는 주차장 영역을 정의할 수 있는 "주차 공간 어노테이터" 도구를 제공해 이 과정을 간소화하며, 정의한 영역은 이후 추가 처리에 활용할 수 있습니다.

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을 다시 설치하고 설치 중 선택적 기능에서 tcl/tk and IDLE 확인란을 선택합니다.
  • MacOS: https://www.python.org/downloads/macos/ 또는 brew install python-tk에서 Python을 다시 설치합니다.
from ultralytics import solutions

solutions.ParkingPtsSelection()

3단계: 다각형으로 주차 영역을 정의한 후 save을 클릭해 작업 디렉터리에 데이터를 bounding_boxes.json로 저장합니다. 이 파일명은 아래의 관리 스크립트가 불러오는 파일명과 같습니다.

Ultralytics YOLO26 포인트 선택 데모

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

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

from ultralytics import solutions

# 동영상 캡처
cap = cv2.VideoCapture("path/to/video.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 = cv2.VideoWriter("parking management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# 주차 관리 객체 초기화
parkingmanager = solutions.ParkingManagement(
    model="yolo26n.pt",  # 모델 파일 경로
    json_file="bounding_boxes.json",  # 주차장 어노테이션 파일 경로
)

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

    results = parkingmanager(im0)

    # print(results)  # 출력에 액세스

    video_writer.write(results.plot_im)  # 처리된 프레임을 저장합니다.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # 열려 있는 모든 창 닫기

ParkingManagement 인수#

다음은 ParkingManagement 인수 표입니다:

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

ParkingManagement 솔루션은 여러 track 매개변수를 사용할 수 있습니다.

인수유형기본값설명
trackerstr'tracktrack.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) 쌍을 지정합니다. 모델 stride에 맞춰 형태가 조정됩니다.
max_detint300추적 전에 프레임별로 유지할 최대 탐지 수를 지정하여 밀집된 장면에서 솔루션이 처리하는 객체 수를 제한합니다.
quantizeint or strNone추론 정밀도: CPU 이외의 환경에서 PyTorch 및 TorchScript 모델은 16(FP16) 또는 32/unset(FP32)을 사용하며, 다른 형식은 아티팩트와 런타임이 선택하는 정밀도를 사용합니다. 더 이상 사용되지 않는 half 인수를 대체합니다.

또한 다음 시각화 옵션을 지원합니다.

인수유형기본값설명
showboolFalseTrue이면 주석이 추가된 이미지나 비디오를 창에 표시합니다. 개발 또는 테스트 중 즉각적인 시각적 피드백을 얻는 데 유용합니다.

자주 묻는 질문#

  • Ultralytics YOLO26은 주차 시스템에 실시간 차량 검출 및 모니터링 기능을 제공하여 주차 공간 활용도를 최적화하고, 혼잡을 줄이며, 지속적인 감시로 안전성을 높입니다. 실시간 카메라 피드에서 실행하면 교통 흐름 관리와 차량 공회전 시간 최소화에도 도움이 됩니다. 전체 설정 방법은 주차 관리 시스템 코드 워크플로를 참조하세요.

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

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

    1. 동영상이나 카메라 스트림에서 프레임을 캡처합니다.
    2. 제공된 코드를 사용해 GUI를 실행한 다음, 이미지를 선택하고 다각형을 그려 주차 공간을 정의합니다.
    3. 추가 처리에 사용할 수 있도록 라벨이 지정된 데이터를 JSON 형식으로 저장합니다. 자세한 안내는 위의 포인트 선택 섹션을 확인하세요.
  • 주차장별로 가장 중요한 설정은 json_file입니다. 포인트 어노테이터로 생성한 주차 구역 JSON을 이 설정에 지정하면 새 레이아웃에 맞게 솔루션을 조정할 수 있습니다. 다른 인수를 통해 추가로 조정할 수도 있습니다. 사용자 지정 학습한 검출기를 지정하려면 model을 설정하고, 특정 차량 classes만 검출하도록 제한하고, conf 및 iou 임계값을 조정하고, tracker을 전환하고, line_width을 사용해 프레임 내 라벨과 점유 현황 표시의 크기를 조정하거나, 추론 device를 선택할 수 있습니다. 구역 기반 모니터링에 관한 자세한 내용은 객체 계산 가이드를 참조하세요.

  • Ultralytics YOLO26은 주차장 관리를 비롯한 다양한 실제 응용 분야에서 활용됩니다.

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

댓글