mirror_virtual_camera — DRIVE decide op

• 데이터 종류: any → table

• 호출: import fullseye as fs; fs.ledger.mirror_virtual_camera(cam_pose, mirror_plane) -> 'Dict[str, object]'(구현을 직접 호출하려면 import drivedecide; drivedecide.mirror_virtual_camera(cam_pose, mirror_plane) -> 'Dict[str, object]', 원장에서 가져오려면 opsdrive.get("mirror_virtual_camera"))

사용법

평면 거울에 비친 상을 찍는 가상 카메라.

cam_pose 는 world→camera 의 4×4(render3d.look_at 의 규약: X_cam = P X, −Z 가 앞). mirror_plane 은(n_x, n_y, n_z, d)(n·X = d).

반환값(dict):

• reflection: 반사 S(mirror_reflection_matrix).

• pose_mirrored = P·S: 실제 장면을 이것으로 찍으면 실제 카메라가 거울 너머로 보는 상 그 자체(픽셀 위치까지 같음). 회전부의 행렬식은 −1(좌우가 반전된 좌표계. 렌더러에 따라 면의 앞뒤 판정이 반대가 됨).

• pose = F·P·S, F = diag(−1, 1, 1, 1): 보통의 오른손 좌표계 카메라(행렬식 +1) = 거울 너머에 있는 가상 카메라. 이것으로 찍은 영상은 거울에 비친 상의 좌우 반전(픽셀로는 u' = 2c_x − u). 백미러를 "뒤를 향한 카메라"로다룰 때는 이쪽(운전자가 보는 상으로 되돌리려면 좌우를 반전한다).

• eye: 가상 카메라의 위치 S(C)(C = 실제 카메라의 위치). eye_real: C.

• flip: "x"(pose 의 영상은 x 를 반전하면 거울상이 됨).

닫힌 형식: S(X) = X − 2(n·X − d)n. 거울에 비친 점 Q 의 상의 위치는 S(Q)(거울 반대편, 거울면에서 같은 거리). 게이트(테스트): 입사각 = 반사각을 만족하는 거울면 위의 점 M 을 수치로 풀고(Fermat 의 최단 경로), C + (|CM| + |MQ|)·unit(M − C) 가 S(Q) 와 일치하는지 확인.

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• poc_driving_decisions — py -3.11 examples/poc_driving_decisions.py

타입이 이어지는 다음 연산자(table 를 입력으로 받는 것)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

같은 카테고리(decide)

mirror_reflection_matrix · mirror_aim_normal · convex_mirror_fov · mirror_blind_zone · check_sequence_score · signal_phase_plan · signal_state · predict_amber_onset


*Provenance: drivedecide.py — DRIVE 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.