
| ID | Layout Type | Recon Time | Components | Large Component % | Key Test Point |
|---|---|---|---|---|---|
| S00 | Sparse | 0.5s (fast) | 400–600 | 5–15% | Path optimization (baseline) |
| S01 | Sparse | 1.3s (slow) | 400–600 | 5–15% | Path + Recon Core utilization |
| S02 | Dense | 0.5s (fast) | 800–1200 | 5–15% | FOV packing efficiency |
| S03 | Dense | 1.3s (slow) | 800–1200 | 5–15% | Packing + Recon Core utilization |
| S04 | Grid | 0.5s (fast) | 1000–1500 | 0% | Scaling (uniform grid layout) |
| S05 | Grid | 1.3s (slow) | 1000–1500 | 0% | Scaling + Recon Core utilization |
| S06 | Big | 0.5s (fast) | 300–500 | 40–60% | Tiling logic (many large components) |
| S07 | Big | 1.3s (slow) | 300–500 | 40–60% | Tiling + Recon Core utilization |
1_generate_data.py. The final contest evaluation will use a separate, hidden test set, which will be released on the GitHub repository after the contest ends.
| Column | Type | Description |
|---|---|---|
(index) | int | Component index (0-based, row order) |
tl_x, tl_y | float | Top-left coordinates of the component bounding box (mm) |
br_x, br_y | float | Bottom-right coordinates of the component bounding box (mm) |
type | int | 2 = Fiducial 1 = Barcode 0 = Normal |
side | int | Side camera required (0: no, 1: yes) |
step | int | Step height (0: default, 1: elevated region) |
time | float | Per-component inspection time (seconds) |
| Column | Description | Value |
|---|---|---|
axis | Axis (x or y) | x, y |
pcb_size | PCB size (mm) | 128–512 (random per axis) |
fov_size | FOV size (mm) | 50–100 (random per axis) |
| Column | Description | Range |
|---|---|---|
capture_time | FOV capture time (seconds) | 0.5 (fixed) |
recon_time | 3D reconstruction time (seconds) | 0.5 (fast) or 1.3 (slow) |
side_capture_time | Side capture time (seconds) | 0.75 (fixed) |
max_core | Maximum parallel cores | 4–16 (random per dataset) |
v_x, v_y | Gantry max velocity (mm/s) | 200–1000 (random per dataset) |
a_x, a_y | Gantry acceleration (mm/s²) | 4900–9800 (random per dataset) |
Defines regions on the PCB with different heights (step=1). If a component's bounding box overlaps with this region, that component has step=1.
| Column | Description |
|---|---|
(index) | Region index |
tl_x, tl_y | Top-left coordinates of the step region (mm) |
br_x, br_y | Bottom-right coordinates of the step region (mm) |
2_run.py --solver <name>, it is stored under simulation_data/<dataset>/<solver>/output_fov.csv.Row order = FOV visit order. The first row is the first FOV to be visited.
| Column | Type | Description |
|---|---|---|
(index) | int | FOV order (row order = visit order) |
x, y | float | FOV center coordinates (mm) |
comp_idx | JSON array | List of component indices contained in this FOV |
cover_all_components), and the visit order must follow Fiducial → Barcode → Normal (fov_inspection_order).
| Parameter | Value |
|---|---|
| PCB size | 128~512 × 128~512 mm (random per axis) |
| FOV size | 50–100 × 50–100 mm (random per axis) |
| Capture time (capture_time) | 0.5 s |
| Side capture time | 0.75 s |
| Gantry velocity (v_x, v_y) | 200–1000 mm/s (random per dataset) |
| Gantry acceleration (a_x, a_y) | 4900–9800 mm/s² (random per dataset) |
| Parameter | Range |
|---|---|
| max_core | 4–16 (random per dataset) |
| recon_time | 0.5 s (fast) / 1.3 s (slow) |
| Component count | 300–1500 (varies by type) |
| Large component ratio | 0–60% (varies by type) |
| Side component ratio | ~20% |
| Step regions | 1–2 |

| ID | 배치 유형 | 복원 시간 | 부품 수 | 큰 부품 비율 | 핵심 테스트 포인트 |
|---|---|---|---|---|---|
| S00 | Sparse | 0.5s (빠름) | 400~600 | 5~15% | 경로 최적화 (기본 유형) |
| S01 | Sparse | 1.3s (느림) | 400~600 | 5~15% | 경로 + Recon Core 활용 |
| S02 | Dense | 0.5s (빠름) | 800~1200 | 5~15% | FOV 패킹 효율 |
| S03 | Dense | 1.3s (느림) | 800~1200 | 5~15% | 패킹 + Recon Core 활용 |
| S04 | Grid | 0.5s (빠름) | 1000~1500 | 0% | 스케일링 (균일 격자 배치) |
| S05 | Grid | 1.3s (느림) | 1000~1500 | 0% | 스케일링 + Recon Core 활용 |
| S06 | Big | 0.5s (빠름) | 300~500 | 40~60% | 타일링 로직 (큰 부품 다수) |
| S07 | Big | 1.3s (느림) | 300~500 | 40~60% | 타일링 + Recon Core 활용 |
1_generate_data.py로 추가 시나리오를 자유롭게 생성할 수도 있습니다. 최종 공식 채점은 별도의 비공개 테스트셋으로 진행되며, 대회 종료 후 GitHub 저장소에 공개됩니다.
| 컬럼 | 타입 | 설명 |
|---|---|---|
(index) | int | 부품 인덱스 (0-based, 행 순서) |
tl_x, tl_y | float | 부품 바운딩 박스의 좌상단 좌표 (mm) |
br_x, br_y | float | 부품 바운딩 박스의 우하단 좌표 (mm) |
type | int | 2 = Fiducial 1 = Barcode 0 = 일반 부품 |
side | int | Side 카메라 필요 여부 (0: 불필요, 1: 필요) |
step | int | 단차 높이 (0: 기본, 1: 높은 영역) |
time | float | 부품별 검사 시간 (초) |
| 컬럼 | 설명 | 값 |
|---|---|---|
axis | 축 (x 또는 y) | x, y |
pcb_size | PCB 크기 (mm) | 128~512 (축별 랜덤) |
fov_size | FOV 크기 (mm) | 50~100 (축별 랜덤) |
| 컬럼 | 설명 | 범위 |
|---|---|---|
capture_time | FOV 촬상 시간 (초) | 0.5 (고정) |
recon_time | 3D 복원 시간 (초) | 0.5 (빠름) 또는 1.3 (느림) |
side_capture_time | Side 촬상 시간 (초) | 0.75 (고정) |
max_core | 최대 병렬 Core 수 | 4~16 (데이터셋별 랜덤) |
v_x, v_y | 갠트리 최대 속도 (mm/s) | 200~1000 (데이터셋별 랜덤) |
a_x, a_y | 갠트리 가속도 (mm/s²) | 4900~9800 (데이터셋별 랜덤) |
PCB 위의 높이가 다른 영역(step=1)을 정의합니다. 부품의 바운딩 박스가 이 영역과 겹치면 해당 부품의 step=1입니다.
| 컬럼 | 설명 |
|---|---|
(index) | 영역 인덱스 |
tl_x, tl_y | 단차 영역 좌상단 좌표 (mm) |
br_x, br_y | 단차 영역 우하단 좌표 (mm) |
2_run.py --solver <name> 실행 후 simulation_data/<dataset>/<solver>/output_fov.csv에 저장됩니다.행 순서 = FOV 방문 순서입니다. 첫 번째 행이 가장 먼저 방문하는 FOV입니다.
| 컬럼 | 타입 | 설명 |
|---|---|---|
(index) | int | FOV 순서 (행 순서 = 방문 순서) |
x, y | float | FOV 중심 좌표 (mm) |
comp_idx | JSON array | 해당 FOV에 포함된 부품 인덱스 목록 |
cover_all_components), Fiducial → Barcode → 일반 순서를 지켜야 합니다(fov_inspection_order).
| 파라미터 | 값 |
|---|---|
| PCB 크기 | 128~512 × 128~512 mm (축별 랜덤) |
| FOV 크기 | 50~100 × 50~100 mm (축별 랜덤) |
| 촬상 시간 (capture_time) | 0.5초 |
| Side 촬상 시간 | 0.75초 |
| 이동 속도 (v_x, v_y) | 200~1000 mm/s (데이터셋별 랜덤) |
| 가속도 (a_x, a_y) | 4900~9800 mm/s² (데이터셋별 랜덤) |
| 파라미터 | 범위 |
|---|---|
| max_core | 4~16 (데이터셋별 랜덤) |
| recon_time | 0.5s (fast) / 1.3s (slow) |
| 부품 수 | 300~1500 (유형별 상이) |
| 큰 부품 비율 | 0~60% (유형별 상이) |
| Side 부품 비율 | ~20% |
| 단차 영역 | 1~2개 |