본문으로 건너뛰기

[Vision AI] 블랙박스 차선 침범 적발 & 초해상화 번호판 인식: 6단계 파이프라인 및 실시간 설계 과제 (#1)

· 약 3분
Jihwan Park (jaybee)
AI & Robotics Engineer

6단계 ANPR 파이프라인 구조도

📌 Key Takeaways (핵심 요약)

  • 문제점: 저화질 차량용 블랙박스 영상은 노면 진동, 역광, 모션 블러, 심한 H.264 압축 아티팩트로 인해 번호판이 심하게 뭉개지며 차선 침범 상황을 실시간으로 추적하기 극도로 어렵습니다.
  • 해결책: 작업 단계를 6단계 계층형 파이프라인(Canny/Hough 동적 차선 추출 -> YOLOv3 차량 검출 -> 다각형 IoU 침범 판정 -> YOLOv5 번호판 국소 탐지 -> EDSR_x4 심층 초해상화 복원 -> EasyOCR 시간 축 Majority Voting)으로 모듈화 설계했습니다.
  • 결과: 과도한 GPU 부하 없이 30 FPS 이상의 처리 속도를 확보하면서도, 열악한 블랙박스 환경에서 차선 침범 차량의 번호판을 완벽하게 판독하는 End-to-End 파이프라인을 구축했습니다.

1. 프로젝트 배경: 왜 블랙박스 컴퓨터 비전은 어려운가?​

스마트 모빌리티와 지능형 교통 시스템(ITS)에서 **실시간 차선 침범 차량 감지 및 자동 번호판 인식(ANPR)**은 자율주행과 법규 단속 자동화의 핵심 기술입니다. 하지만 실제 현장 블랙박스 영상을 처리할 때는 다음과 같은 복합적인 물리적·광학적 난제에 직면합니다:

  1. 심각한 저해상도와 텍스처 뭉개짐: 후방 또는 전방 주행 차량의 번호판 영역은 전체 640x480 프레임에서 불과 30x15 ~ 50x25 픽셀에 불과하여 한글 음절과 숫자의 획이 하나로 뭉개집니다.
  2. 카메라 노면 진동 및 롤링 셔터 왜곡: 주행 중 발생하는 수직 진동과 급제동, 차선 변경 시의 급격한 각도 변화로 인해 직선 차선이 왜곡됩니다.
  3. 실시간 연산 병목: 거대 비전 트랜스포머나 풀 프레임 고밀도 모델을 매 프레임 실행하면 심각한 프레임 드롭이 발생하여 실시간 추적이 불가능합니다.

2. 6단계 계층형 파이프라인 아키텍처​

이를 해결하기 위해 우리는 연산 효율과 판독 정확도를 동시에 극대화하는 6단계 계층형(Hierarchical) 파이프라인을 설계했습니다.

flowchart TD
Raw["원본 블랙박스 프레임 640x480"] --> L1["1단계: Canny + Hough 동적 차선 추출"]
Raw --> L2["2단계: YOLOv3-tiny 차량 영역 검출"]
L1 & L2 --> L3["3단계: 차량 풋프린트 & 차선 다각형 IoU 침범 판정"]
L3 -- 침범 발생 시 --> L4["4단계: 차량 ROI 내 YOLOv5 번호판 국소 탐지"]
L4 --> L5["5단계: EDSR_x4 딥러닝 4배 초해상화 복원"]
L5 --> L6["6단계: EasyOCR + 정규식 + Majority Voting 앙상블"]
L6 --> Result["최종 위반 차량 번호판 확정 64가1511"]

최종 감지 및 판독 결과 화면

각 단계별 역할 분담​

  1. 차선 추출 (Lane Extraction): 소실점을 고려한 사다리꼴 ROI 마스킹 및 기울기(Slope) 필터링으로 차로 경계선을 동적 추적합니다.
  2. 차량 검출 (Vehicle Detection): 가벼운 YOLOv3-tiny 모델로 주변 주행 차량의 바운딩 박스를 밀리초 단위로 생성합니다.
  3. 침범 판정 (Intrusion Criterion): 차량의 하단 접지면과 차선 다각형 간의 기하학적 교집합 면적비(IoU)가 임계치(0.05)를 초과하는지 평가합니다.
  4. 번호판 위치 특정 (Plate Localization): 전체 화면이 아닌, 침범 차량 ROI 내부에서만 파인튜닝된 YOLOv5(lp_det.pt)를 실행하여 불필요한 연산을 제거합니다.
  5. 초해상화 복원 (Super-Resolution): 저해상도 번호판 크롭 패치를 딥러닝 EDSR_x4 신경망에 전달하여 엣지와 획을 4배 확대 복원합니다.
  6. 문자 인식 및 투표 (OCR & Majority Voting): EasyOCR 추출 결과에 한국 번호판 정규식 필터를 적용하고, 최근 7개 프레임 히스토리 큐에서 다수결로 최종 번호를 확정합니다.

3. 핵심 시스템 파라미터 (CONFIG)​

안정적인 파이프라인 구동을 위해 튜닝된 핵심 설정값은 다음과 같습니다:

CONFIG = {
"output_width": 640,
"output_height": 480,

# 차량 탐지 및 차선 침범 임계값
"conf_threshold_vehicle": 0.5,
"nms_threshold_vehicle": 0.4,
"min_vehicle_w": 70,
"min_vehicle_h": 70,
"lane_iou_threshold": 0.05,
"detection_interval": 15, # 15프레임마다 재검출, 중간은 CSRT 추적

# 번호판 OCR 및 초해상화 파라미터
"min_plate_area_for_ocr": 1200, # 최소 픽셀 면적 확보 후 OCR 수행
"plate_history_size": 7, # 시간 축 슬라이딩 윈도우 크기
"plate_confirm_threshold": 3, # 3회 이상 일치 시 번호판 최종 확정

# 모델 가중치 파일
"sr_model": "EDSR_x4.pb",
"yolo_plate_model": "lp_det.pt"
}

4. 다음 편 예고​

다음 2편에서는 Canny 에지 검출, 확률적 허프 변환(HoughLinesP), 좌우 기울기 필터링 수학, 그리고 차량 바운딩 박스와 차선 간의 동적 다각형 IoU 침범 판정 알고리즘을 상세히 분석합니다.