8. Object Detection 객체 탐지
이미지 참조 : 객체 탐지 시스템
✅지각·인지 시스템 (Perception System)
지각·인지 시스템 (Perception System) 은 자율주행차의 눈과 두뇌 역할을 하며, 카메라, 라이다, 레이다 등의 센서를 통해 주변 환경을 실시간으로 감지하고 분석합니다.이 시스템은 차량이 도로 위의 신호등, 보행자, 차량, 차선, 장애물 등을 인식하여 안전한 주행을 가능하게 합니다.
🟩 객체 탐지 기술
1. Computer Vision (컴퓨터 비전)
- 가장 넓은 상위 개념으로 카메라로 촬영한 이미지/영상을 이해하고 분석하는 인공지능 분야 전체를 지칭
- 자율주행에서 사용되는 객체 탐지, 추적, 분할, 인식, 행동 분석 등 모두 포함
2. Perception System (지각 시스템, 인지 시스템)
- 차량이 카메라, 라이다, 레이다 등으로 주변 상황을 인지하는 전체 시스템을 말함
- 객체 탐지 (Object Detection) 기술은 의 지각 · 인지 시스템 (Perception System)의 핵심 구성 요소
3. Scene Understanding (장면 이해)
- 객체 탐지 + 상황 파악 개념으로 주변에 무엇이 있고, 어떻게 움직이며, 무슨 상황인지까지 파악하는 기술
- 자율주행에서 "이건 횡단보도야 + 사람이 걸어오고 있어 = 멈춰야 함" 같은 판단을 가능하게 함
4. Environment Perception / Environmental Sensing
- 차량이 주행 환경을 이해하기 위한 센서 기반 기술 전체로 라이다, 레이다, 카메라 등을 활용한 감지 기술 묶음
- 객체 탐지뿐 아니라 거리 계산, 날씨 인식, 도로 경계 인식 등도 포함
⚪ 지각·인지 시스템 (Perception System) 예시
● 신호등, 횡단보도, 차량, 보행자, 자전거 등 도로 위 객체 인식
● 객체의 거리, 방향, 속도 추정
● 차선 인식 및 주행 경로 판단 보조
● 주행 가능한 도로 영역(Free Space) 탐지
● 돌발 상황 대응을 위한 실시간 판단 근거 제공
🛠 주요 구성 요소
1. 카메라 (Camera) : 주변 환경의 2D 이미지를 수집하고 색상, 텍스처, 형태 등 시각적 정보를 인식하여 객체 탐지, 차선 인식, 신호등 감지 등 시각 기반 인지에 필수적으로 사용됩니다.
2. 라이다 (LiDAR) : 레이저 빔을 이용해 3D 거리 정보를 획득하며, 객체의 위치·형상·높이 등을 정밀하게 인식하고 공간 지도(SLAM) 생성에 활용됩니다.
3. 레이다 (Radar) : 전파를 기반으로 거리와 속도를 측정하며, 움직이는 물체 감지 및 차량 간 거리·속도 추정에 효과적이고 날씨나 조도 변화에도 강한 특성을 가집니다.
4. 초음파 센서 (Ultrasonic Sensor) : 초근거리 장애물 감지를 위한 센서로, 주차 보조나 저속 주행 시 장애물 인식에 활용되며 좁은 거리 내에서 안정적인 거리 측정이 가능합니다.
🎯 주요목적
● 도로 환경 내 모든 객체를 정확하게 감지하여 인식● 안전한 주행 제어(Control)를 위해 인식하는 모든 정보를 운전자에게 제공
● 보행자, 차량, 장애물, 도로 구조물과의 충돌 방지
● 자율주행 높은 인식률과 정확도를 가진 데이터를 사용
💡 예시를 통한 이해
📍 Object Detection 예시
●보행자 탐지
도심 주행 중, 차량 전방 RGB 카메라가 거리 앞쪽 이미지를 캡처합니다. 이 이미지를 분석해 "사람" 객체를 감지합니다.이후지각·인지 시스템은 사람의 위치를 기반으로 정지 또는 감속 명령을 제어 시스템에 전달합니다.
● 정지 표지판(Stop Sign) 감지
차량 전방 카메라가 정지 표지판을 인식하면 해당 객체를 "stop sign"으로 탐지합니다. 지각·인지 시스템은 차량이 교차로 또는 골목 진입 전 정지해야 한다는 의미로 해석하고, 자동 정지 또는 운전자에게 시각·청각 경고를 제공합니다.
●주차 미터기(Parking Meter) 감지
스마트 주차 시스템에서 카메라가 도로변 주차 공간을 스캔하고 "parking meter"를 감지하여 유료 주차 여부 판단에 활용할 수 있습니다.도시 환경에서는 주차 공간 분석, 주차 유무 인식 등에 사용됩니다.
● 자전거 탐지 예시
차선 옆을 주행 중인 자전거를 RGB 카메라가 포착하고, Object Detection 모델이 해당 영역을 "bicycle"로 분류합니다.모델은 자전거와 차량 간의 거리와 상대 속도를 함께 고려해,안전 간격 확보 및 차선 변경 판단에 반영됩니다.
●동물 감지 예시 (야간 포함)
전방의 카메라와 라이다가 도로에 갑작스레 출현하는 고양이나 개와 같은 동물을 감지합니다. 감지된 이 객체를 "animal" 또는 미리 학습된 클래스 중 하나로 인식하고, 감지 위치에 따라 속도 조절 및 경고음을 활성화합니다.
1️⃣ 물체가 감지되는 원리
* 물체 감지 원리
🟨 자율주행 자동차 기반 Object Detection의 감지 원리
1. 자율주행 자동차의 센서(카메라, 라이다 등)가 실시간으로 주변 환경을 관찰합니다.
차량에 장착된 센서들이 도로, 차량, 사람, 표지판 등의 정보를 포함한 영상 또는 거리 데이터를 수집합니다. 특히 카메라는 Object Detection의 주요 입력 수단입니다.
2. 센서가 수집한 데이터를 처리 시스템(ECU, GPU 등)으로 전송합니다.
이 데이터는 프레임 단위의 이미지 또는 포인트 클라우드 형식으로 인식 시스템에 전달됩니다. 예를 들어, 전방 카메라에서 촬영된 이미지가 분석의 입력이 됩니다.
3. 내장된 Object Detection 모델(YOLO, SSD 등)을 통해 데이터를 분석합니다.
차량 내부에는 사전 학습된 딥러닝 모델이 탑재되어 있으며, 이 모델은 다양한 객체의 시각적 특징을 학습한 상태입니다.
4. 모델이 영상 속 시각적 특징을 분석하여 학습된 객체와 비교합니다.
윤곽, 색상, 모양, 질감 등을 기준으로 영상 속 사물과 기존 학습 데이터를 비교하여 해당 위치에 무엇이 있는지 파악합니다.
5. 감지된 객체를 분류(Class)합니다.
감지된 물체(예: 사람, 차량, 신호등 등)는 이름(Label)과 함께 화면상의 위치(Box)가 표시되며, 이 정보는 경로 계획·제동·회피 판단 등에 실시간으로 전달됩니다.
2️⃣ 주미 AI 기반 Object Detection의 감지 원리
주미 AI 는 카메라를 통해 실시간으로 감지하는 물체와 이미 학습 된 모델을 불러와서 비교하여 물체를 감지 합니다.
* 본 프로그램은 다른 예제에 비해 Run Module(F5) 실행 후 시작까지 다소 시간이 걸릴 수 있습니다.
🟩 주미 AI 기반 Object Detection의 감지 원리
1. 주미 AI의 카메라가 켜집니다.
주미는 주변 환경을 실시간으로 촬영하고, 이 영상 데이터를 자율주행 자동차의 카메라·라이다·레이다처럼 외부 정보를 인식하는 수단으로 사용합니다.
2. 주미AI 의 카메라가 실시간 이미지를 감지합니다..
카메라는 물체가 포함된 장면(예: 사람, 의자, 책상 등)을 프레임 단위로 수집합니다. 이 영상은 그대로 인식 시스템에 전달됩니다.
3. 코드에서 미리 학습된 Object Detection 모델(YOLO)을 불러옵니다.
이 모델은 수많은 이미지 데이터를 통해 사전에 다양한 객체(예: 사람, 고양이, 컵 등)를 학습한 상태로, 각 객체의 시각적 특징을 알고 있습니다.
4. 주미Ai 의 카메라 영상과 학습된 모델 데이터를 비교합니다.
모델은 실시간으로 카메라 영상 속 패턴(색상, 윤곽선, 모양 등)을 분석하여 자신이 학습한 객체들과 유사한 패턴을 찾습니다..
5. 객체가 감지되면 사각형(Bounding Box)과 함께 이름을 표시합니다.
사람이 감지되면 화면에 "Person"이라고 표시하며, 해당 위치를 사각형으로 강조합니다. 이는 주미가 눈으로 보고 무엇이 어디에 있는지 인식하는 것과 같은 원리입니다..
※ 기본적으로 학습되어진 모델
“person” (사람)
“car” (자동차)
“bus” (버스)
“truck” (트럭)
“traffic light” (신호등)
“stop sign” (정지 표지판)
“cat” (고양이)
“dog” (개)
* 위 이미지는 AI로 생성되었으며, AI 이미지가 아닌 실제 대상들도 이 프로그램으로 감지가 가능합니다.
.
zumiAI.camera_stream_start() # 카메라 스트리밍 시작
zumiAI.object_detector_init(performance_mode="balance")
# 물체 인식 초기화
zumiAI.object_detector_start() # 물체 인식 시작
print("▶ 물체 인식 시작")
while True:
elif zumiAI.is_obj_detected(name="bus"):
print("버스")
elif zumiAI.is_obj_detected(name="car"):
print("자동차")
정상적으로 인식 되면 위 그림 처럼 테두리와 감지 된 모델의 이름이 표시 됩니다.
3️⃣ YOLO 모델의 기본 개념
기존의 객체 탐지 방식은 어디에 물체가 있는지 찾기 (Region Proposal) 그 영역을 분류하기 (Classification) 2개의 단계로 진행 되었습니다. 하지만 YOLO는 이 과정을 한 번에(End-to-End) 처리하는 모델 입니다.
🔍 YOLO의 구조: 어떻게 작동하나요?
💡 백본 (Backbone)- 입력 이미지를 받아 특징(feature)을 추출하는 역할
- CNN 구조 (예: YOLOv5는 CSPDarknet 사용)
- 계층이 깊을수록 복잡한 형태를 인식함 (에지 → 모양 → 물체)
🧠 Neck
- Feature Pyramid Network (FPN) 등을 사용해서 다양한 크기의 객체를 잘 인식하도록 함
🎯 출력 헤드 (Detection Head
- 출력은 S×S 격자로 나뉜 각 셀마다 Bounding box, confidence, class probability를 예측
- 예: (x, y, w, h, confidence, class1, class2, ..., classN)장
🧾 YOLO의 출력 예시
각 바운딩 박스는 다음 정보를 포함해요:
1. x, y: 중심 좌표 (셀 기준)
2. w, h: 박스의 너비와 높이 (이미지 기준)
3. Size : 감지된 물체의 크기 (물체와의 거리)
4. Confidence: 이 박스가 실제 물체일 확률
5. Class probabilities: 이 물체가 어떤 클래스(예: 사람, 자동차, 신호등 등)일 확률
📦 YOLO가 물체를 감지하는 방식 요약
1. 입력 이미지를 S×S 격자로 나눔
2. 각 격자가 물체의 중심을 포함할 가능성 있음
3. 격자마다 여러 개의 bounding box를 예측
4. 각 박스는 위치 + 물체일 확률 + 클래스 확률 포함
5. 가장 확률 높은 박스들만 남기고(NMS) 최종 출력
Zumi AI Object Detection (YOLO) 객체 필터
총 80종의 모델을 인식 할 수 있으며, 아래의 버튼을 누르면 물체의 이름이 클립보드에 복사 됩니다.
️4️⃣ 감지 객체 모델 추가하기
자율주행이나 AI 비전 시스템에서 YOLO 모델을 사용할 때,감지할 객체의 종류(클래스)를 지정하는 것이 매우 중요합니다. 이때 사용되는 주요 명령어는 다음과 같습니다
*예시 : zumiAI.object_check_add_obj("bicycle")
*너무 많은 모델을 추가하면 인식률이 저하 될 수 있습니다.
*예시 : zumiAI.object_check_del_obj("bicycle")
*기본으로 등록 되어진 모델도 함께 삭제 됩니다.
️ ⚠️ 주의: 너무 많은 객체를 동시에 등록할 경우
YOLO 모델은 여러 객체를 동시에 감지할 수 있지만,감지 대상이 많아질수록 인식률(정확도)과 속도가 떨어질 수 있습니다. 따라서 모델이 더 많은 클래스 간 비교 연산을 수행해야 하므로, 연산 자원이 분산되고, 실시간성이 중요한 환경에서는 오탐/누락 가능성이 높아질 수 있습니다.
️✅ 권장 사용 방법
● 감지하고자 하는 필요한 객체만 선택적으로 추가하세요.
(예: 사람이 중심이라면 "person"만 등록)
●사용 도중 필요하지 않은 객체는
object_check_del_obj(obj_name) 명령어로 제거하는 것이 좋습니다.
(예: object_check_del_obj("cup") → 컵 감지 제외)
● 이렇게 하면 모델이 더 빠르고 정확하게 감지할 수 있으며,
시스템 자원도 효율적으로 활용할 수 있습니다.
5️⃣ Object Detection 객체 감지 (확장)
🚘 Object Detection 객체 감지Object Detection & Object Classification = 지각 시스템, 인지 시스템 + 객체 탐지 및 분류
아래 프로그램을 다운로드 받아서, 원하는 객체를 추가하고 감지해보도록 합니다.
* 위 이미지는 AI로 생성되었으며, AI 이미지가 아닌 실제 대상들도 이 프로그램으로 감지가 가능합니다.
.
zumiAI.object_check_add_obj(performance_mode="bicycle")
zumiAI.object_check_add_obj(performance_mode="motorcycle")
zumiAI.object_check_add_obj(performance_mode="parking meter")
zumiAI.object_check_add_obj(performance_mode="elephant")
print("▶ 물체 인식 추가")
while True:
if zumiAI.is_obj_detected(name="bicycle"):
print("자전거")
elif zumiAI.is_obj_detected(name="motorcycle"):
print("오토바이")
elif zumiAI.is_obj_detected(name="parking meter"):
print("주차미터기")
elif zumiAI.is_obj_detected(name="elephant"):
print("코끼리")
정상적으로 동작 한다면 위의 그림 처럼 추가 된 객체가 감지 됩니다.