Unity

[ML-Agents] Render Texture Sensor – 사용자 정의 시각 정보를 학습하는 센서

빈형임 2025. 5. 14. 02:34

Render Texture Sensor는 Unity에서 생성된 렌더 텍스처(RenderTexture) 출력을
에이전트의 시각적 입력으로 사용할 수 있도록 해주는 고급 센서입니다.

기본 카메라 센서로는 표현하기 어려운 특수한 시각 정보를 AI가 학습할 수 있도록 도와줍니다.

 


언제 사용하나요?

  • 세분화(Segmentation), 깊이 맵(Depth Map) 같은 시각적 정보가 필요한 경우
  • 표준 카메라 센서로는 감지하기 어려운 시각 신호를 학습하고 싶을 때
  • 디지털 트윈, 3D 시뮬레이션, AR/VR 렌더링 분석 등 고급 시나리오
예: 바닥의 오염도를 색상 값으로 시각화하여 로봇이 더러운 구역을 우선 청소하게 만들기

 

개념 이해

  • RenderTexture: Unity의 카메라나 셰이더가 출력한 영상을 오프스크린 버퍼에 저장한 텍스처
  • RenderTextureSensor: 이 텍스처를 받아 에이전트가 이미지 입력으로 활용
기존 Camera Sensor는 Unity의 카메라 출력을 그대로 사용  
RenderTexture Sensor는 커스텀 렌더링 결과도 입력으로 사용 가능​

 

구성 방법

 

  1. RenderTexture 생성
    • 셰이더 또는 카메라의 출력으로 만들어짐
  2. RenderTextureSensorComponent 추가
    • 해당 텍스처를 ML-Agents에 연결
  3. Observation 설정
    • 해상도, 색상/흑백, 압축 여부 등 조정

 


실전 예시: 디지털 트윈 기반 청소 최적화

목표 RenderTexture Sensor 활용 방식
바닥 청결도 시각화 다양한 재질/오염도를 색상으로 렌더링
오염 구역 판단 색상 픽셀값 분석을 통해 보상 설계
학습 가속화 불필요한 텍스처 제거, 흑백 전환 등 전처리

로봇은 "눈에 보이는 청소 필요 영역"을 학습하고 스스로 경로를 조정할 수 있습니다.

 

 

주의사항

  • 고급 렌더링 이해 필요: 셰이더, 카메라 렌더링 경로 숙지 필수
  • 입력 정규화 필요: 픽셀 값을 안정된 범위로 조정해야 학습이 잘 됨
  • 문서 부족: 공식 문서나 튜토리얼이 제한적이므로 실험 기반 사용 필요
  • 성능 고려: 고해상도 RenderTexture는 GPU/메모리 리소스 요구 ↑

 

훈련 최적화를 위한 전략

전략 효과
색상 기반 분할 객체 종류나 상태를 색상으로 구분하여 학습에 활용
저해상도 흑백 처리 연산량 감소 + 학습 가속
전용 셰이더 출력 활용 Depth, Surface Normal, Label Mask 등 복합 정보 제공
카메라 센서와 조합 일반 이미지 + 특수 텍스처 병합 학습 가능

 

요약

  • Render Texture Sensor는 ML-Agents의 확장성과 표현력을 크게 높여주는 센서입니다.
  • 세분화, 깊이 인식, 시뮬레이션 특화 렌더링 등 맞춤형 시각 정보를 활용할 수 있습니다.
  • 고급 사용자와 디지털 트윈, 리서치 중심 프로젝트에 특히 적합합니다.