
한컴인스페이스
드론 탑재 실시간 객체 탐지 시스템
2021.12 ~ 2025.12
객체 탐지 모델 학습 및 스트리밍 시스템 개발
ROSYOLOv5Faster R-CNNPyTorchRealSense D435C++OpenCVUDP
드론 탑재 환경에서 실시간 객체 탐지 시스템을 개발하고 고도화했습니다. 초기에는 YOLOv5 + LibTorch C++ 기반 스트리밍 시스템을 구축했고, 이후 재난탐지 요건에 맞게 ROS Noetic + Faster R-CNN + RealSense D435 depth 카메라 기반으로 확장해 탐지 대상의 3D 절대좌표를 실시간 산출하고 GCS로 전송하는 시스템을 완성했습니다.
역할별 수행 내용
ROS 기반 재난탐지 · 3D 좌표 산출
- ROS Noetic + Faster R-CNN ResNet50-FPN — 7클래스(폭발물·화재·부상자·탈출구·석유·사람) 실시간 추론, ~2~3fps
- ApproximateTimeSynchronizer로 RGB·Depth 비동기 스트림 동기화(slop=0.5s) — 타임스탬프 불일치로 잘못된 depth가 사용되는 문제 해결
- 핀홀 카메라 모델 역투영으로 2D BBox 중심점 → 3D 카메라 좌표 변환, 카메라→드론 좌표계 변환 행렬 적용 후 절대 3D 좌표 산출
- 커스텀 ROS 메시지(MultiTarget/TargetData) 직접 설계, UDP로 GCS 실시간 전송, systemd 서비스로 드론 부팅 시 자동 기동
YOLOv5 탑재 드론 스트리밍
- 소켓으로 프레임 전달 시 수신 속도 > 추론 속도로 큐 누적 → 메모리 고갈 문제 발생 — 소켓 통신 제거 후 LibTorch로 C++에서 모델 직접 로드하여 해결
주요 성과
- 2D 영상만으로 거리 추정이 불가하던 한계를 RealSense D435 depth + 핀홀 모델 역투영으로 해결 — 탐지 대상의 3D 절대좌표를 실시간 산출해 GCS 자동 보고
- RGB·Depth 스트림 타임스탬프 불일치로 depth 오매핑이 발생하던 문제를 ApproximateTimeSynchronizer(slop=0.5s)로 해결 — 동기화된 프레임 쌍만 추론에 사용
- 소켓으로 프레임을 전달할 때 수신 속도가 추론 속도를 초과하여 큐가 누적되고 메모리가 고갈되던 문제를 LibTorch C++ 직접 모델 로드로 해결 — 드론 탑재 환경 실시간 추론 안정화