Koh Young Technology

Simulation Dataset

4th Koh Young AI Contest — ICCAS 2026
📘 This is a supplementary document. For official contest rules, see Contest Rules ★
1 Dataset Overview
Each scenario folder contains the PCB component layout, equipment parameters, and step region information. The solver reads these files to optimize FOV placement.

📁 Folder Structure

simulation_data/ S00_sparse_fast_001/ # scenario_type_instance_number S00_sparse_fast_002/ S00_sparse_fast_003/ S01_sparse_slow_001/ ... S07_big_slow_012/ # 96 folders total (8 scenarios × 12) Each folder contains: input_component.csv # Component list (position, type, inspection time) input_size.csv # PCB/FOV dimensions input_parameter.csv # Equipment parameters (capture, recon, gantry speed) input_step_region.csv # Step region coordinates <solver>/ # Per-solver output subfolder (e.g. ky/, greedy/) output_fov.csv # Solver output (FOV placement result) result.html # Interactive viewer (3_view.py)

🎯 Scenario Type Matrix (8 Types × 12 = 96)

IDLayout TypeRecon TimeComponentsLarge Component %Key Test Point
S00Sparse0.5s (fast)400–6005–15%Path optimization (baseline)
S01Sparse1.3s (slow)400–6005–15%Path + Recon Core utilization
S02Dense0.5s (fast)800–12005–15%FOV packing efficiency
S03Dense1.3s (slow)800–12005–15%Packing + Recon Core utilization
S04Grid0.5s (fast)1000–15000%Scaling (uniform grid layout)
S05Grid1.3s (slow)1000–15000%Scaling + Recon Core utilization
S06Big0.5s (fast)300–50040–60%Tiling logic (many large components)
S07Big1.3s (slow)300–50040–60%Tiling + Recon Core utilization
💡 Recon time difference: When recon_time is 0.5s (fast), camera movement is the bottleneck. When it is 1.3s (slow), 3D reconstruction becomes the bottleneck. In slow-recon scenarios, strategies that utilize additional Recon Cores are critical.
Dataset notice: The 96 datasets (8 scenarios × 12) are provided for development and testing. You may also generate additional scenarios with 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.
2 Input Files
Four CSV files that the solver must read.

📋 input_component.csv — Component List

ColumnTypeDescription
(index)intComponent index (0-based, row order)
tl_x, tl_yfloatTop-left coordinates of the component bounding box (mm)
br_x, br_yfloatBottom-right coordinates of the component bounding box (mm)
typeint2 = Fiducial 1 = Barcode 0 = Normal
sideintSide camera required (0: no, 1: yes)
stepintStep height (0: default, 1: elevated region)
timefloatPer-component inspection time (seconds)
,tl_x,tl_y,br_x,br_y,type,side,step,time 0,491.00,497.00,496.00,502.00,2,0,0,0.25 # Fiducial (type=2) 1,187.56,159.67,189.70,164.36,1,0,0,0.10 # Barcode (type=1) 2,102.88,191.31,104.01,196.56,1,0,0,0.059 # Barcode (type=1) 3,17.93,262.29,19.55,263.85,1,0,0,0.025 # Barcode (type=1) 4,396.32,18.40,398.48,20.57,0,0,0,0.015 # Normal component (type=0)

📐 input_size.csv — PCB/FOV Dimensions

ColumnDescriptionValue
axisAxis (x or y)x, y
pcb_sizePCB size (mm)128–512 (random per axis)
fov_sizeFOV size (mm)50–100 (random per axis)
axis,pcb_size,fov_size x,380,62 # pcb_size: 128–512 random per axis, fov_size: 50–100 random y,280,55 # independent per axis

input_parameter.csv — Equipment Parameters

ColumnDescriptionRange
capture_timeFOV capture time (seconds)0.5 (fixed)
recon_time3D reconstruction time (seconds)0.5 (fast) or 1.3 (slow)
side_capture_timeSide capture time (seconds)0.75 (fixed)
max_coreMaximum parallel cores4–16 (random per dataset)
v_x, v_yGantry max velocity (mm/s)200–1000 (random per dataset)
a_x, a_yGantry acceleration (mm/s²)4900–9800 (random per dataset)
capture_time,recon_time,side_capture_time,max_core,v_x,v_y,a_x,a_y 0.5,0.5,0.75,8,721,315,7900,9198 # fast scenario, max_core/v/a random per dataset

📏 input_step_region.csv — Step Regions

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.

ColumnDescription
(index)Region index
tl_x, tl_yTop-left coordinates of the step region (mm)
br_x, br_yBottom-right coordinates of the step region (mm)
,tl_x,tl_y,br_x,br_y 0,353.89,214.80,486.21,382.28 # 1 step region (132mm × 167mm)
Step transition penalty: Transitioning between step=0 and step=1 FOVs incurs a +5 second penalty for Z-axis height adjustment. Visiting FOVs of the same step consecutively is more efficient.
3 Output File
The file that the solver must generate. After running 2_run.py --solver <name>, it is stored under simulation_data/<dataset>/<solver>/output_fov.csv.

📤 output_fov.csv — FOV Placement Result

Row order = FOV visit order. The first row is the first FOV to be visited.

ColumnTypeDescription
(index)intFOV order (row order = visit order)
x, yfloatFOV center coordinates (mm)
comp_idxJSON arrayList of component indices contained in this FOV
,x,y,comp_idx 0,475.10,487.00,"[280, 0, 306, 586, 118, 153, 169]" # 1st FOV: 7 components 1,188.63,162.01,"[139, 1, 550, 328, 180]" # 2nd FOV 2,408.85,30.58,"[4, 525, 377, 98]" # 3rd FOV 3,103.45,193.94,"[2]" # 4th FOV: 1 component
Constraints: Every component must be included in at least one FOV (cover_all_components), and the visit order must follow Fiducial → Barcode → Normal (fov_inspection_order).
4 PCB Coordinate System
The origin is at the top-left corner of the PCB (0, 0). The X-axis increases to the right, and the Y-axis increases downward.
PCB (128~512 × 128~512 mm) X (mm) Y (0,0) pcb_w pcb_h Step=1 Region tl(100,120) br(112,128) FOV (50×50) center(110,130) Component (tl, br) FOV (50×50) Step=1 Region FOV Center
5 Common Parameters
Fixed values shared across all scenarios.

📐 Dimensions & Speed

ParameterValue
PCB size128~512 × 128~512 mm (random per axis)
FOV size50–100 × 50–100 mm (random per axis)
Capture time (capture_time)0.5 s
Side capture time0.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)

🔧 Per-Scenario Variables

ParameterRange
max_core4–16 (random per dataset)
recon_time0.5 s (fast) / 1.3 s (slow)
Component count300–1500 (varies by type)
Large component ratio0–60% (varies by type)
Side component ratio~20%
Step regions1–2
This dataset is licensed under CC BY-NC-SA 4.0. See Problem Description §7 for details.
Koh Young Technology

시뮬레이션 데이터셋

제4회 고영 AI 경진대회 — ICCAS 2026
📘 이 문서는 보조 자료입니다. 공식 대회 규칙은 대회규칙 ★을 참고하세요.
1 데이터셋 개요
각 시나리오 폴더에는 PCB 부품 배치, 장비 파라미터, 단차 영역 정보가 포함됩니다. Solver는 이를 읽어 FOV 배치를 최적화합니다.

📁 폴더 구조

simulation_data/ S00_sparse_fast_001/ # 시나리오 유형_인스턴스 번호 S00_sparse_fast_002/ S00_sparse_fast_003/ S01_sparse_slow_001/ ... S07_big_slow_012/ # 총 96개 폴더 (8 시나리오 × 12) 각 폴더 내부: input_component.csv # 부품 목록 (위치, 유형, 검사시간) input_size.csv # PCB/FOV 크기 input_parameter.csv # 장비 파라미터 (촬상, 복원, 이동속도) input_step_region.csv # 단차 영역 좌표 <solver>/ # solver별 출력 하위 폴더 (예: ky/, greedy/) output_fov.csv # Solver 출력 (FOV 배치 결과) result.html # 인터랙티브 뷰어 (3_view.py)

🎯 시나리오 유형 매트릭스 (8종 × 12 = 96개)

ID배치 유형복원 시간부품 수큰 부품 비율핵심 테스트 포인트
S00Sparse0.5s (빠름)400~6005~15%경로 최적화 (기본 유형)
S01Sparse1.3s (느림)400~6005~15%경로 + Recon Core 활용
S02Dense0.5s (빠름)800~12005~15%FOV 패킹 효율
S03Dense1.3s (느림)800~12005~15%패킹 + Recon Core 활용
S04Grid0.5s (빠름)1000~15000%스케일링 (균일 격자 배치)
S05Grid1.3s (느림)1000~15000%스케일링 + Recon Core 활용
S06Big0.5s (빠름)300~50040~60%타일링 로직 (큰 부품 다수)
S07Big1.3s (느림)300~50040~60%타일링 + Recon Core 활용
💡 복원 시간(recon_time) 차이: 0.5s(빠름)일 때는 카메라 이동이 병목, 1.3s(느림)일 때는 3D 복원이 병목이 됩니다. 느린 복원에서는 Recon Core를 추가로 활용하는 전략이 중요합니다.
데이터셋 안내: 96개 데이터셋(8 시나리오 × 12)은 개발 및 테스트용입니다. 1_generate_data.py로 추가 시나리오를 자유롭게 생성할 수도 있습니다. 최종 공식 채점은 별도의 비공개 테스트셋으로 진행되며, 대회 종료 후 GitHub 저장소에 공개됩니다.
2 입력 파일 (Input Files)
Solver가 읽어야 하는 4개의 CSV 파일입니다.

📋 input_component.csv — 부품 목록

컬럼타입설명
(index)int부품 인덱스 (0-based, 행 순서)
tl_x, tl_yfloat부품 바운딩 박스의 좌상단 좌표 (mm)
br_x, br_yfloat부품 바운딩 박스의 우하단 좌표 (mm)
typeint2 = Fiducial 1 = Barcode 0 = 일반 부품
sideintSide 카메라 필요 여부 (0: 불필요, 1: 필요)
stepint단차 높이 (0: 기본, 1: 높은 영역)
timefloat부품별 검사 시간 (초)
,tl_x,tl_y,br_x,br_y,type,side,step,time 0,491.00,497.00,496.00,502.00,2,0,0,0.25 # Fiducial (type=2) 1,187.56,159.67,189.70,164.36,1,0,0,0.10 # Barcode (type=1) 2,102.88,191.31,104.01,196.56,1,0,0,0.059 # Barcode (type=1) 3,17.93,262.29,19.55,263.85,1,0,0,0.025 # Barcode (type=1) 4,396.32,18.40,398.48,20.57,0,0,0,0.015 # 일반 부품 (type=0)

📐 input_size.csv — PCB/FOV 크기

컬럼설명
axis축 (x 또는 y)x, y
pcb_sizePCB 크기 (mm)128~512 (축별 랜덤)
fov_sizeFOV 크기 (mm)50~100 (축별 랜덤)
axis,pcb_size,fov_size x,380,62 # pcb_size: 128~512 축별 랜덤, fov_size: 50~100 랜덤 y,280,55 # 축별 독립 랜덤

input_parameter.csv — 장비 파라미터

컬럼설명범위
capture_timeFOV 촬상 시간 (초)0.5 (고정)
recon_time3D 복원 시간 (초)0.5 (빠름) 또는 1.3 (느림)
side_capture_timeSide 촬상 시간 (초)0.75 (고정)
max_core최대 병렬 Core 수4~16 (데이터셋별 랜덤)
v_x, v_y갠트리 최대 속도 (mm/s)200~1000 (데이터셋별 랜덤)
a_x, a_y갠트리 가속도 (mm/s²)4900~9800 (데이터셋별 랜덤)
capture_time,recon_time,side_capture_time,max_core,v_x,v_y,a_x,a_y 0.5,0.5,0.75,8,721,315,7900,9198 # fast 시나리오, max_core/v/a 데이터셋별 랜덤

📏 input_step_region.csv — 단차 영역

PCB 위의 높이가 다른 영역(step=1)을 정의합니다. 부품의 바운딩 박스가 이 영역과 겹치면 해당 부품의 step=1입니다.

컬럼설명
(index)영역 인덱스
tl_x, tl_y단차 영역 좌상단 좌표 (mm)
br_x, br_y단차 영역 우하단 좌표 (mm)
,tl_x,tl_y,br_x,br_y 0,353.89,214.80,486.21,382.28 # 단차 영역 1개 (132mm × 167mm)
단차 전환 페널티: step=0 FOV와 step=1 FOV 간 전환 시 Z축 높이 조절로 +5초가 추가됩니다. 같은 step의 FOV를 연속 방문하는 것이 유리합니다.
3 출력 파일 (Output File)
Solver가 생성해야 하는 파일입니다. 2_run.py --solver <name> 실행 후 simulation_data/<dataset>/<solver>/output_fov.csv에 저장됩니다.

📤 output_fov.csv — FOV 배치 결과

행 순서 = FOV 방문 순서입니다. 첫 번째 행이 가장 먼저 방문하는 FOV입니다.

컬럼타입설명
(index)intFOV 순서 (행 순서 = 방문 순서)
x, yfloatFOV 중심 좌표 (mm)
comp_idxJSON array해당 FOV에 포함된 부품 인덱스 목록
,x,y,comp_idx 0,475.10,487.00,"[280, 0, 306, 586, 118, 153, 169]" # 첫 FOV: 7개 부품 1,188.63,162.01,"[139, 1, 550, 328, 180]" # 두 번째 FOV 2,408.85,30.58,"[4, 525, 377, 98]" # 세 번째 FOV 3,103.45,193.94,"[2]" # 네 번째 FOV: 1개 부품
제약 조건: 모든 부품이 최소 1개 FOV에 포함되어야 하며(cover_all_components), Fiducial → Barcode → 일반 순서를 지켜야 합니다(fov_inspection_order).
4 PCB 좌표계
좌표 원점은 PCB 좌상단 (0,0)이며, X축은 오른쪽, Y축은 아래쪽으로 증가합니다.
PCB (128~512 × 128~512 mm) X (mm) Y (0,0) pcb_w pcb_h Step=1 영역 tl(100,120) br(112,128) FOV (50×50) center(110,130) 부품 (tl, br) FOV (50×50) Step=1 영역 FOV 중심
5 공통 파라미터
모든 시나리오에서 공유되는 고정값입니다.

📐 크기 & 속도

파라미터
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_core4~16 (데이터셋별 랜덤)
recon_time0.5s (fast) / 1.3s (slow)
부품 수300~1500 (유형별 상이)
큰 부품 비율0~60% (유형별 상이)
Side 부품 비율~20%
단차 영역1~2개
본 데이터셋은 CC BY-NC-SA 4.0 라이선스를 따릅니다. 상세는 문제설명 §7 참조.