더 스마트한 주차 관리 시스템을 위한 Ultralytics YOLOv8
Ultralytics YOLOv8 모델은 주차 관리 시스템을 더 스마트하게 만들 수 있습니다. 실시간으로 주차 공간을 관리하여 나만의 스마트 주차 솔루션을 구축하는 방법을 알아보세요.

특히 늦은 상황에서는 주차 공간을 찾기 위해 빙빙 돌며 운전하는 일이 스트레스가 될 수 있습니다. 주차할 장소를 찾는 전통적인 방식은 번거롭고 시간이 많이 걸릴 수 있습니다. 하지만 인공지능(AI)과 컴퓨터 비전으로 구동되는 주차 관리 시스템을 사용하면 이러한 과정을 더 간단하게 만들 수 있습니다. 또한 주차 가능 여부를 더 예측하기 쉽게 하고 교통 혼잡을 줄일 수 있습니다.
이 글에서는 인공지능과 컴퓨터 비전을 활용해 주차 관리 시스템을 업그레이드하는 방법을 알아봅니다. 또한 Ultralytics YOLOv8 모델을 사용해 컴퓨터 비전이 적용된 주차 관리 시스템을 만드는 방법을 단계별 코딩 예제로 살펴봅니다. 바로 시작해 보겠습니다!
기존 주차장 관리의 문제점#
AI로 강화된 스마트 주차 관리 시스템을 살펴보기 전에 기존 주차 관리 시스템의 문제점을 알아보겠습니다.
기존 시스템의 주요 문제는 주차 공간의 과밀화입니다. 주차장에 주차 가능한 공간보다 더 많은 차량이 들어오는 것입니다. 공간을 찾느라 시간을 낭비하는 것뿐 아니라, 과밀화는 연료 소비 증가와 대기 오염으로 이어집니다. 또 다른 문제는 운전자의 스트레스입니다. 한 설문조사에 따르면 약 27%의 사람들이 주차 공간을 찾는 데 최소 30분을 사용합니다. 또한 43%의 사람들은 주차 공간을 두고 낯선 사람과 말다툼을 벌인 적이 있다고 답했습니다.

그림 1. 스트레스를 받는 운전자. 이미지 출처: Envato Elements.
AI로 더 쉬워지는 주차장 관리#
AI가 통합된 주차장은 기존 주차 관리 시스템이 겪는 문제를 해결하는 것을 목표로 합니다. Ultralytics YOLOv8 모델과 고화질 카메라 같은 컴퓨터 비전 모델을 사용하면 주차장을 모니터링하고 주차 가능한 공간과 점유된 공간에 대한 실시간 업데이트를 받을 수 있습니다.
어떻게 작동할까요? 컴퓨터 비전 모델은 고화질 카메라의 영상을 분석해 차량을 감지하고, 차량의 움직임을 추적하며, 주차 가능한 공간을 식별할 수 있습니다. Ultralytics YOLOv8 모델은 객체 감지와 객체 추적 같은 컴퓨터 비전 작업을 지원하며, 영상 스트림 내 차량을 정확하게 식별하고 분류할 수 있습니다. 감지된 차량의 위치를 미리 정의된 주차 공간과 비교하면 시스템이 해당 공간의 점유 여부를 판단할 수 있습니다.

그림 2. 주차 공간을 감지하는 YOLOv8.
비전 기반 시스템에서 얻은 주차 가능 여부 정보는 다양한 애플리케이션에 통합하고 확장할 수 있습니다.
- 모바일 앱: 모바일 애플리케이션은 주차 가능 여부를 실시간으로 표시하고 운전자가 이용 가능한 공간을 빠르고 쉽게 찾도록 도와줄 수 있습니다.
- 디지털 사이니지: 주차장 입구의 디지털 표지판은 이용 가능한 공간의 수를 표시하고 운전자를 가장 가까운 빈 공간으로 안내할 수 있습니다.
- 자동 주차 시스템: 데이터를 사용해 자동 차단기와 게이트를 제어할 수 있으므로, 공간이 있을 때만 진입을 허용하고 운전자를 가장 가까운 빈 공간으로 안내할 수 있습니다.
주차 관리 시스템의 장점#
주차 가능 여부에 대한 인사이트는 다양한 이점을 제공합니다. 실시간 업데이트를 통해 운전자는 빈 공간으로 바로 이동할 수 있으므로 교통 흐름이 원활해지고 주차 공간을 찾는 스트레스가 줄어듭니다. 운영자는 공간 사용 현황을 파악하여 주차장을 더 효과적으로 관리하고, 실시간 모니터링으로 보안을 강화하며, 사고나 문제에 신속하게 대응할 수 있습니다.
주차 기능을 자동화하면 수작업이 필요한 인력을 줄여 비용을 절감할 수 있습니다. AI 시스템을 사용하면 모바일 또는 웹 앱을 통해 주차 공간을 더 쉽게 예약할 수 있으며, 운전자는 이용 가능 여부에 대한 알림을 받고 시간과 비용을 절약할 수 있습니다. 도시 계획자는 이러한 데이터를 활용해 더 나은 도로 배치를 설계하고, 효과적인 주차 규정을 시행하며, 도시를 더 효율적이고 이동하기 편리하게 만드는 새로운 주차 시설을 개발할 수 있습니다.

그림 3. 모바일 앱을 통해 주차 공간을 예약합니다.
직접 해보기: YOLOv8을 활용한 주차 관리#
이제 주차 관리와 그 장점을 명확히 이해했으므로, 비전 기반 주차 관리 시스템을 구축하는 방법을 살펴보겠습니다. YOLOv8 모델을 사용해 차량을 감지하고, 주차 공간을 모니터링하며, 점유 상태를 판단합니다.
이 예제에서는 주차장의 동영상 또는 카메라 스트림을 사용할 수 있습니다. 이 예제에서 지원하는 최대 이미지 크기는 1920 * 1080입니다. 시작하기 전에 이 시스템이 정확한 차량 감지와 미리 정의된 주차 공간 좌표에 의존한다는 점을 기억해 주세요.
카메라 보정과 환경 요인은 공간 감지 및 점유 상태의 정확도에 영향을 줄 수 있습니다. 처리 속도와 정확도 역시 GPU 성능에 따라 달라질 수 있습니다.
1단계: 먼저 Ultralytics 패키지를 설치합니다. 명령 프롬프트 또는 터미널을 열고 다음 명령을 실행합니다.
pip install ultralytics설치 과정에 대한 자세한 지침과 모범 사례는 Ultralytics 설치 가이드를 참조하세요. YOLOv8에 필요한 패키지를 설치하는 동안 문제가 발생하면 일반적인 문제 가이드에서 해결 방법과 유용한 팁을 확인할 수 있습니다.
2단계: 영상에서 관심 영역을 표시할 수 있도록 주차 공간을 미리 선택해야 합니다. 다음 코드를 실행하여 주차 공간을 미리 선택할 수 있는 사용자 인터페이스를 엽니다.
from ultralytics import solutions
solutions.ParkingPtsSelection()아래와 같이 이 코드를 실행하면 사용자 인터페이스가 열립니다. 주차장의 입력 영상에서 프레임이나 스크린샷을 캡처하여 업로드합니다. 주차 공간 주위에 바운딩 박스를 그린 후 저장 옵션을 클릭합니다. 선택한 주차 공간 정보는 **‘bounding_boxes.json’**이라는 이름의 JSON 파일에 저장됩니다.

그림 4. 영상에서 주차 공간 선택하기.
3단계: 이제 주차 관리를 위한 기본 코드를 살펴보겠습니다. 먼저 필요한 모든 라이브러리를 가져오고 2단계에서 생성한 JSON 파일을 초기화합니다.
import cv2
from ultralytics import solutions
polygon_json_path = "bounding_boxes.json"4단계: 입력 동영상 파일을 읽을 VideoCapture 객체를 생성하고 동영상 파일이 정상적으로 열렸는지 확인합니다.
cap = cv2.VideoCapture("Path/to/video/file.mp4")
assert cap.isOpened(), "Error reading video file"5단계: 너비, 높이, 초당 프레임 수와 같은 필요한 모든 동영상 속성을 초기화합니다.
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))6단계: 다음으로 최종 처리된 동영상 파일을 저장할 VideoWriter 객체를 생성합니다.
video_writer = cv2.VideoWriter("parking management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))7단계: 여기서는 주차 공간 감지를 위해 Ultralytics YOLOv8 모델로 주차 관리 시스템을 초기화합니다.
management = solutions.ParkingManagement(model_path="yolov8n.pt")8단계: 이제 동영상 파일을 프레임 단위로 순회하며 처리합니다. 읽어온 프레임이 없으면 루프가 중단됩니다.
while cap.isOpened():
ret, im0 = cap.read()
if not ret:
break9단계: 루프 내부에서 JSON 파일에서 미리 선택한 주차 영역을 추출하고 YOLOv8 모델을 사용해 프레임 내 객체를 추적합니다.
json_data = management.parking_regions_extraction(polygon_json_path)
results = management.model.track(im0, persist=True, show=False)10단계: 이 루프 부분에서는 추적 결과를 처리하고 감지된 객체의 바운딩 박스 좌표와 클래스 레이블을 가져옵니다.
if results[0].boxes.id is not None:
boxes = results[0].boxes.xyxy.cpu().tolist()
clss = results[0].boxes.cls.cpu().tolist()
management.process_data(json_data, im0, boxes, clss)11단계: 루프의 마지막 부분에서는 현재 프레임에 주석을 표시하고 처리된 프레임을 “parking management.avi” 출력 동영상 파일에 기록합니다.
management.display_frames(im0)
video_writer.write(im0)12단계: 마지막으로 VideoCapture 및 VideoWriter 객체를 해제하고 모든 창을 닫습니다.
cap.release()
video_writer.release()
cv2.destroyAllWindows()13단계: 스크립트를 저장합니다. 터미널 또는 명령 프롬프트에서 작업하는 경우 다음 명령을 사용하여 스크립트를 실행합니다.
python your_script_name.py코드에 대해 더 자세히 알아보려면 Ultralytics 공식 문서를 확인해 보세요.
자동 주차장 관리 시스템의 과제#
지능형 주차 시스템은 운전자와 기업 모두에게 많은 이점을 제공합니다. 그러나 이러한 솔루션을 구현하기 전에 고려해야 할 몇 가지 과제도 있습니다. 그중 일부를 살펴보겠습니다.
- 개인정보 보호 문제: 이러한 시스템은 차량 제조사와 모델, 차량 번호, 입출차 시간 등의 정보를 수집합니다.
- 높은 설치 비용: 센서, 카메라, 자동 발권기, AI 소프트웨어는 설치 비용이 많이 들 수 있습니다.
- 유지 관리 요구 사항: 유지 관리 빈도는 AI 시스템에 따라 다르지만, 대부분의 시스템은 매월 유지 관리가 필요합니다.
스마트 주차 시스템의 미래#
미래의 혁신적인 주차 관리는 AI, 자율주행차, 가상 현실과 같은 최첨단 기술을 활용하여 전반적인 주차 경험을 개선하고 지속 가능성을 지원하는 방향으로 발전할 것입니다. 이러한 시스템과 통합되면 자율주행차는 사람의 개입 없이 주차 위치까지 이동하여 주차할 수 있습니다. 이러한 시스템은 기업이 더 많은 주차 공간을 채우고 여러 앱과 웹사이트에서 서비스를 광고하는 데도 도움을 줍니다. 또한 운전자가 주차 공간을 찾기 위해 주변을 운전하며 발생시키는 탄소 배출량도 줄일 수 있습니다.
주차의 번거로움 해소#
Ultralytics YOLOv8과 같은 AI 모델과 컴퓨터 비전은 주차장을 혁신할 수 있습니다. 주차 공간을 찾기 위해 빙빙 도는 시간을 크게 줄여 시간을 절약하고 배출량을 감소시킵니다. 이러한 스마트 주차 관리 시스템은 교통 혼잡, 불법 주차, 운전자의 불편과 같은 일반적인 문제를 해결합니다. 초기 투자가 필요하지만 장기적인 이점은 상당합니다. 스마트 주차에 투자하는 것은 지속 가능한 도시와 모두에게 더 원활한 주차 경험을 만드는 핵심 요소입니다.
AI에 대해 더 알아보고 싶으신가요? 커뮤니티에 참여해 보세요! GitHub 저장소를 살펴보고 헬스케어 및 농업과 같은 다양한 산업에서 AI를 활용해 혁신적인 솔루션을 만드는 방법을 알아보세요. 함께 협업하고 혁신하며 배워 보세요! 🚀









