[Python] 단 50줄로 구현하는 테슬라 비전과 팬텀 브레이킹의 한계

[Python] 단 50줄로 구현하는 테슬라 비전과 팬텀 브레이킹의 한계

안녕하세요.

일상의 호기심을 파이썬으로 풀어보는 개발자입니다.

 

2021년 테슬라가 라이다와 레이더를 버리고 카메라 기반의 'Occupancy Networks'로 전환한 후 발생한 엣지 케이스(팬텀 브레이킹)를, 기초적인 컴퓨터 비전 코드로 시뮬레이션하며 그 한계를 짚어보았습니다.

단순한 Haar Cascade 모델을 사용하여 블랙박스 영상 속 차량을 인식하는 기초적인 스크립트입니다.

 

Python

# tesla_vision_simulator.py
import cv2

def run_vision_simulator(video_path: str, cascade_path: str) -> None:
    """블랙박스 영상을 통해 기초적인 차량 인식 비전 시뮬레이터를 구동합니다."""
    cap = cv2.VideoCapture(video_path)
    car_cascade = cv2.CascadeClassifier(cascade_path)

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

        # CPU 연산 병목 해결을 위한 해상도 축소
        resized_frame = cv2.resize(frame, (640, 360))
        gray_frame = cv2.cvtColor(resized_frame, cv2.COLOR_BGR2GRAY)

        # 객체 탐지 및 바운딩 박스 처리
        cars = car_cascade.detectMultiScale(gray_frame, scaleFactor=1.1, minNeighbors=3)
        for (x, y, w, h) in cars:
            cv2.rectangle(resized_frame, (x, y), (x + w, y + h), (255, 0, 0), 2)

        cv2.imshow('Tesla Vision Simulator (Basic)', resized_frame)
        if cv2.waitKey(30) & 0xFF == ord('q'):
            break

    cap.release()
    cv2.destroyAllWindows()

if __name__ == "__main__":
    run_vision_simulator('dashcam_footage.mp4', 'haarcascade_car.xml')

 

비록 구형 알고리즘이지만, 이 코드를 돌려보면 명암 변화나 짙은 그림자를 장애물로 오인하는 오탐지(False Positive) 현상을 명확히 관찰할 수 있습니다.

레이더라는 크로스체크 수단이 사라진 순수 비전(Vision Only) 모델이 현실의 가혹한 도로 환경에서 어떻게 무너지는지 확인할 수 있는 대목입니다.

 

요즘 파이썬 생태계 표준에 맞추어, 구형 requirements.txt 대신 pyproject.toml을 적용하여 프로젝트 의존성을 구성해 두었습니다. 자세한 시뮬레이터 구동 과정과 Tesla Vision 기술에 대한 해설은 아래 유튜브 콘텐츠에 담아두었습니다. 여러분의 블랙박스 영상으로도 직접 테스트해 보시길 권장합니다.

 

[ 시뮬레이터 구동 및 기술 해설 영상]: https://youtu.be/xWrnxjh1GnY

 

댓글을 작성해보세요.

채널톡 아이콘