많은 이미지보다 어떤 입력과 라벨인지가 먼저다
M25.04는 물리 매개변수를 보정 자료와 미사용 조건으로 나누어 평가했다. 이제 가상 장면에서 영상/깊이/라벨을 수집할 때도 같은 규칙을 적용한다. 이미지 수가 많아도 의미가 잘못됐거나 같은 장면이 학습/평가에 섞이면 모델 평가를 믿기 어렵다.
합성 데이터는 가상 장면의 설정/렌더/물리 상태에서 만든 관측과 주석이다. 도메인 랜덤화(domain randomization)는 조명·시점·외관 등의 조건을 정한 분포/목록에서 바꾸는 방법이다. 다양성을 늘릴 수 있지만 그 범위가 실제 과업과 맞는지는 별도로 검증한다. 그럴듯한 영상이나 생성 수량을 실제 인식 성능으로 보고하지 않는다.
랜덤화부터 파일 완료까지 역할을 나눈다
Replicator 시작 안내는 장면/랜덤화·주석/저장 구성을 만들고 이를 실행하는 과정을 구분한다. 코드를 작성했다는 사실과 실제 데이터가 완전히 기록된 것은 다르다.
그림 M25.05-1. 각 칸은 서로 다른 역할/근거다. 아래 방향은 자료/처리의 연결이며 실제 성공을 자동으로 보장하지 않는다. 직접 제작한 개념도이며 본문의 조건과 함께 읽는다.
| 역할 | 이번에 확인할 계약 |
|---|---|
| 자산/의미 | 자산 개정·단위·실제 Prim과 클래스/인스턴스의 의미 |
| randomizer/trigger | 무엇을 언제 바꿀지, 유효 분포/목록과 실제 표본값 |
| camera/render product | 캡처 카메라·해상도·내외부 파라미터·시각/프레임 |
| annotator | RGB·깊이·semantic 등 어떤 관측/주석을 계산할지 |
| writer | 같은 capture의 채널을 어떤 형식·ID·경로로 기록할지 |
| 완료/manifest | 요청한 채널이 모두 기록됐는지, 누락/실패/중복과 출처 |
annotator는 주석/관측을 계산하는 구성이고 writer는 그 결과를 기록하는 구성이다. 이벤트를 발생시킨 것, 렌더가 보인 것, 비동기 저장이 끝난 것을 다른 상태로 남긴다. 종료 전에 쓰기 완료/오류를 확인하고 파일 수뿐 아니라 capture ID와 채널의 대응을 대조한다. 실제 API/종료 절차는 설치한 릴리스의 문서를 확인한다.
의미를 보존하는 분포를 정한다
조명 세기/방향, 시각 재질, 카메라 pose·노출을 바꿀 때 각 범위와 유효성 조건을 남긴다. 카메라가 벽 안으로 들어가거나 대상이 전부 가려지는 장면은 과업에 따라 무효 또는 별도의 어려운 조건이다. 그냥 삭제하지 말고 생성 목적과 판정/분모를 정한다. 색 지시가 “빨간 상자”인데 대상 색을 파랗게 바꾸고 문장을 그대로 두면 라벨 의미가 달라진다.
렌더 roughness를 바꾸는 것과 물리 마찰을 바꾸는 것은 별도다. 동역학을 랜덤화한다면 M25.04의 질량/재질·시간/접촉 검토를 적용한다. 공식 랜덤화 예제는 여러 대상을 다루지만, 사용한 개별 스크립트가 그 모든 범주를 구현했다고 가정하지 않는다.
seed는 표본 생성의 시작 조건을 남기는 정보다. 같은 seed만으로 다른 자산/코드·엔진/드라이버/렌더 설정과 이벤트 순서까지 같다고 보장하지 않는다. 분포 개정·실제 표본값·원본/override 지문·실행환경·캡처 순서도 남겨 재현 범위를 설명한다.
같은 capture의 관측과 라벨을 묶는다
이번 교육용 계약은 cameraC0/C1, 해상도64×48, RGB/depth/semantic 채널과 고유 capture ID를 사용한다. 각 행은 asset/light/camera·seed/실제 표본·physics tick/취득시각·좌표 규약·K/카메라 pose 개정과 세 채널 파일/지문을 묶는다. 메타데이터만 있다고 실제 파일의 정합성을 확인한 것은 아니다.
semantic 라벨은 픽셀이 어떤 클래스인지, instance 라벨은 같은 클래스 중 어느 개체인지를 나눈다. ID7→box라는 현재 클래스 사전 없이 숫자7만 저장하면 다른 실행의7이 같은 뜻인지 알 수 없다. 시각화를 위한 임의 RGB색도 원래 클래스 ID와 구별한다. class 사전·인스턴스/Prim 매핑의 개정과 실제 캡처에 적용된 의미를 기록한다.
K는 초점/주점 등 카메라 내부 파라미터이고, 카메라 pose는 장면 기준 위치/방향인 외부 파라미터다. 카메라를 랜덤화했으면 실제 캡처에 적용된 값/개정을 함께 남긴다.
bbox도 규약이 필요하다. 이번에는 영상 좌상단 원점, 오른쪽u/아래v, 반개구간 [xmin,xmax)×[ymin,ymax)을 선언한다. (10,5,30,25)는 폭20·높이20픽셀이다. xmax=64는 영상 경계와 맞을 수 있지만65는 범위 밖이다. 다른 writer의 경계/정규화 규약을 변환 없이 섞지 않는다. bbox 면적을 실제 물체의 픽셀 수나 가림 비율로 바로 읽지도 않는다.
배경 ID0인 정상 mask와 mask 파일이 없는 상태도 다르다. 라벨0의 의미와 대상 부재/가림을 정의하고, 누락을 배경으로 채우지 않는다. RGB는 cameraC0인데 semantic은C1이거나 물체 이동 전후 tick이 다르면 파일이 모두 있어도 잘못된 쌍이다.
깊이 이름과 축을 확인한다
Replicator 시각화 안내는 카메라 전방축 방향의 distance-to-image-plane과 카메라 중심까지의 distance-to-camera를 구분한다. 정확한 출력 단위/invalid 값·자료형은 사용할 annotator 문서를 확인한다.
이번 종이 계산은 optical +Z가 앞쪽인 교육용 프레임을 선언한다. 점P=(1,0,2)m라면 전방축 깊이Z=2m이고 중심까지 거리는√(1²+0²+2²)=√5≈2.236m다. 두 값은 영상 가장자리에서 같지 않을 수 있다. 이것을 실제 OpenUSD 카메라의 기본축이나 ROS 변환으로 자동 간주하지 않는다. 현재 카메라 규약과 M12.02의 변환을 확인한다.
깊이 배열이 존재해도 mode·단위·invalid/sentinel 규약이 없으면 2라는 숫자를 m 깊이로 임의 해석하지 않는다. RGB/깊이의 같은 카메라·해상도/시각과 내외부 파라미터가 맞아야 후속 기하 계산에 쓸 수 있다.
열두 계획에서 누락 한 건을 어떻게 센다?
합성 생성 계획은 assetA/B/C 각각 lightL0/L1×cameraC0/C1이다. 총3×2×2=12capture이며 각 capture에3채널 payload가 하나씩 있어야 하므로 예상36개다. 여기서 manifest·클래스 사전 등 별도 메타데이터 파일은36에 포함하지 않는다. 실제 writer의 전체 파일 수를 항상3배로 세라는 일반 규칙도 아니다.
제공 가상 기록에서는 B-L1-C1의 semantic payload 하나가 빠져 있다. 채널 payload는35개 존재하지만 완전한 capture는11개다. 학습에 수용할 채널 payload는11×3=33개이고 나머지 RGB/depth2개는 불완전 행의 원본으로 보존한다. 누락 행을 삭제하고11/11=100% 완전이라고 보고하면 계획 분모를 바꾼 것이다. 계획 대비 완전성은11/12≈91.7%다.
파일 수35만 맞는지도 충분하지 않다. 중복 capture의 파일이 다른 누락을 가릴 수 있으므로 (capture_id,channel)의 유일성·누락·지문과 카메라/시각을 확인한다. 재생성은 새 attempt ID와 원인·조건을 남기며 이전 실패를 덮어쓰지 않는다.
분할은 무엇을 일반화할지에 맞춘다
이번 목표는 보지 못한 자산에 대한 평가다. 사전에 A/B의 모든 변형을 학습에, C의 모든 변형을 최종 평가에 둔다. 계획상 학습8·평가4capture다. B의 누락을 제외하면 실제 수용은 학습7·평가4이고 원래 누락/계획 행은 보존한다.
프레임을 무작위로 나누어 A의 조명/시점 변형이 양쪽에 들어가면 새 자산 일반화의 평가가 아니다. seed만 달라도 같은 자산/근접 장면이 공유될 수 있다. 과업에 따라 자산·장면·원본 에피소드/연속 프레임 등 분할의 원자 단위를 먼저 정한다. 동일 분포 평가와 분포 밖 조건 평가도 목적을 나누어 표시한다.
11/12는 생성 완전성이고 인식 정확도가 아니다. 모델 평가는 라벨 품질·누수 없는 평가 자료·성공/실패 분모와 과업 지표를 따로 요구한다. 합성 평가 개선이 실제 현장 인식/안전 개선을 증명하지 않는다. 기존 4.6 Domain Randomization을 함께 읽고, 다음 M25.06에서 도구 접촉과 상태/행동 기록의 시간/실행 근거를 확장한다.