목록으로 돌아가기

아이폰 카메라 입력에서 객체를 인식하고 추적한 뒤, 바닥 평면 기준 월드 좌표로 변환해 시각화하는 애플리케이션.

1. 문제와 목표

일반적인 객체 인식 화면은 무엇이 보이는지는 알려주지만, 같은 객체가 시간에 따라 어떻게 이동하는지와 실제 공간에서 어디에 있는지는 충분히 설명하지 못한다.
또한 라이다가 없는 아이폰 환경에서는 원근과 높이 오차, 그리고 높은 자원 사용량이 동시에 발생해 실사용 가능한 구조를 잡기 어렵다.

이 프로젝트의 목표는 다음 세 가지다.

  • 아이폰 단일 기기 환경에서 실시간 객체 인식, 객체 추적, 평면 기준 월드 좌표 해석과 시각화를 하나의 파이프라인으로 안정적으로 통합한다.
  • 제한된 센서와 연산 자원 조건에서 가능한 정확도와 지연 시간의 균형점을 찾는다.
  • 구간별 성능 계측을 통해 병목과 오차 특성을 재현 가능하게 기록하고 개선 기준을 만든다.

2. 시연

3. 핵심 기능

  • 객체 인식:
    • 온디바이스 기계 학습 추론으로 객체 종류와 위치를 계산
  • 객체 추적:
    • 객체 식별 번호를 유지해 프레임 간 동일 객체를 연결
  • 평면 기준 월드 좌표 변환:
    • 객체 하단 중심점을 바닥 평면에 투영해 평면 기준 월드 좌표로 변환

4. 대안 대비 선택 이유

동시적 위치 추정 및 지도 작성, 시각적 주행 거리 측정 기반 접근도 대안으로 고려했다.
다만 이번 프로젝트의 1차 목표는 아이폰 단일 기기 환경에서 실시간 인식, 추적, 평면 기준 월드 좌표 해석과 시각화를 안정적으로 통합하는 것이었다.

핵심 판단은 다음과 같다.

  • 계산 복잡도가 높은 대안 경로는 휴대 기기에서 연산량과 메모리 부담이 커질 수 있다.
  • 추가 공간 센서(깊이 카메라, 라이다)가 있으면 일부 경로에서 오차와 계산 부담을 줄일 가능성이 있다.

이번 프로젝트는 제한된 센서와 자원 환경에서 평면 기반 월드 좌표 해석이 어디까지 가능한지를 확인하는 실험 성격이 강하다.
실제 테스트 기기는 아이폰 16e로 제한되어 라이다 기반 경로는 제외했고, 애플 증강 현실 프레임워크의 자세 추정과 평면 광선 투영을 이용해 진행했다.

5. 성능 최적화와 테스트 환경

적용한 핵심 최적화:

  • 평면 기준 월드 좌표 변환 중복 호출 제거
  • 객체별 광선 투영 캐시와 움직임 기반 재사용
  • 일정 프레임 주기 재검증 옵션 제공
  • 장면 업데이트 주기 제한
  • 지연 시간 샘플 동기화 개선

테스트 환경:

  • 디바이스: 아이폰 16e
  • 운영체제: iOS 26 계열
  • 빌드: xcode
  • 카메라 프레임 속도: 30, 60
  • 객체 인식 프레임 속도: 10~60
  • 객체 추적, 바닥 평면 계산, 월드 뷰 모드 조합별 측정

6. 결과와 한계

현재 실시간 인식, 객체 추적, 평면 기준 월드 좌표 시각화는 동작하며 구간별 성능 계측으로 병목 구간 확인이 가능하다.

관찰된 핵심 결과(현재 테스트 기준):

  • 휴대 환경에서 모델 성능 확인 워크플로우를 구축할 수 있었다.
  • 아이폰이 추정한 평면 위 물체 위치는 일부 장면에서 오차가 크지 않았다.
  • 실제 물체 높이 변화가 평면 내부 이동으로 해석되는 경우 오차가 커졌다.
  • 바닥 평면 기반 원근 추론과 높이 추정은 오차가 누적되기 쉬웠다.
  • 증강 현실 프레임워크 기반 평면 추정, 자세 추정, 월드 투영은 자원 사용량이 높았다.
  • 이차원 상단 시점 구성에서는 호모그래피 기반 변환도 대안이 될 수 있으며, 정확한 우위 판단은 동일 조건 비교 실험이 추가로 필요하다.

요약하면, 아이폰 16e처럼 라이다가 없는 환경에서도 동작은 가능하지만, 원근·높이 정확도와 자원 사용량 사이에 분명한 트레이드오프가 있다.
라이다가 있는 상위 기기에서는 다른 자세 추정·깊이 활용 경로로 오차를 줄일 여지가 있다.