Technical Writeup
টেকনিক্যাল রাইটআপ
How to Build Reproducible Perception Benchmarks for AV Research
AV গবেষণার জন্য reproducible Perception Benchmark কীভাবে বানাবেন
A large share of published 3D-perception improvements do not survive a controlled re-run. The gains are real on paper and vanish when the backbone, augmentation budget, sweep count, and test-time tricks are held fixed. This writeup is about why that happens and how to design a benchmark, a metric, and a split so that it does not.
প্রকাশিত 3D-perception উন্নতির একটা বড় অংশ একটি নিয়ন্ত্রিত re-run টেকে না। কাগজে লাভগুলো সত্যি, কিন্তু backbone, augmentation বাজেট, sweep সংখ্যা, ও test-time কৌশল স্থির রাখলে মিলিয়ে যায়। এই লেখা — কেন এমন হয়, এবং একটি benchmark, একটি metric ও একটি split এমনভাবে ডিজ়াইন করা যাতে এমন না হয়।
1The problem, concretely
Three-dimensional perception has a comparison problem. The typical paper reports a single number on a public val or test split and claims it beats a prior number. But that number is the output of a long pipeline — backbone, pretraining corpus, input resolution, voxel size, number of LiDAR sweeps, training epochs, class-balanced resampling, model EMA, and test-time augmentation (TTA) — and prior work rarely held those fixed. When an independent group re-implements two methods on one shared codebase with one backbone and one schedule, the ranking often changes and the margins shrink. Survey-and-recipe papers on BEV perception make exactly this point: much of the apparent progress is attributable to "hidden" training and inference choices rather than architecture [11].
This is not fraud; it is under-specified experimental design plus leaderboard pressure. The fix is procedural: control the confounds, report the cost, release the artifacts, and design metrics and splits that resist gaming. The rest of this writeup is that procedure.
১সমস্যাটা, সুনির্দিষ্টভাবে
3D perception-এ একটা তুলনার সমস্যা আছে। সাধারণ paper একটি public val বা test split-এ একটিমাত্র সংখ্যা রিপোর্ট করে এবং দাবি করে তা আগের সংখ্যাকে হারায়। কিন্তু ওই সংখ্যা একটি দীর্ঘ pipeline-এর ফল — backbone, pretraining corpus, input resolution, voxel size, LiDAR sweep-এর সংখ্যা, training epoch, class-balanced resampling, model EMA, এবং test-time augmentation (TTA) — আর আগের কাজ কদাচিৎ সেগুলো স্থির রেখেছে। একটি স্বাধীন দল যখন দুটি পদ্ধতিকে এক shared codebase-এ, এক backbone ও এক schedule-এ পুনরায় বাস্তবায়ন করে, তখন র্যাঙ্কিং প্রায়ই বদলায় এবং ব্যবধান কমে। BEV perception নিয়ে survey-and-recipe paper ঠিক এই কথাটাই বলে: আপাত অগ্রগতির বেশিরভাগই architecture-এর বদলে "লুকানো" training ও inference পছন্দের কারণে [11]।
এটা জালিয়াতি নয়; এটা under-specified পরীক্ষামূলক নকশা, সঙ্গে leaderboard-এর চাপ। সমাধান পদ্ধতিগত: confound নিয়ন্ত্রণ করুন, খরচ রিপোর্ট করুন, artifact প্রকাশ করুন, এবং এমন metric ও split ডিজ়াইন করুন যা gaming ঠেকায়। এই লেখার বাকিটা সেই পদ্ধতি।
2What non-reproduction looks like
Four recurring patterns, stated generically rather than naming papers:
- The backbone swap. "Method A (+2.1 NDS over B)" where A used a heavier image backbone or a stronger pretraining corpus than B. Re-run with a common backbone and the delta is 0.3, inside noise.
- The TTA gap. A test-leaderboard entry uses double-flip + multi-scale + rotation TTA; the baseline it is compared against does not. TTA is worth 1–3 NDS on its own.
- The schedule creep. The new method trains for 24 epochs with CBGS; the cited baseline number is from a 20-epoch no-CBGS config. 3D detectors keep improving with schedule.
- The eval-code drift. Two methods scored with different evaluation code, different score thresholds, or different NMS — small implementation differences that move mAP by half a point.
None of these require bad faith. All are eliminated by a single controlled comparison table with every knob disclosed.
২non-reproduction দেখতে কেমন
চারটি বারবার আসা প্যাটার্ন, কোনো paper-এর নাম না নিয়ে সাধারণভাবে বলা:
- Backbone swap। "Method A (B-এর চেয়ে +2.1 NDS)" যেখানে A, B-এর চেয়ে ভারী image backbone বা শক্তিশালী pretraining corpus ব্যবহার করেছে। এক common backbone দিয়ে re-run করলে delta 0.3, noise-এর ভেতরে।
- TTA gap। একটি test-leaderboard entry double-flip + multi-scale + rotation TTA ব্যবহার করে; যে baseline-এর সঙ্গে তুলনা তা করে না। TTA একাই ১–৩ NDS-এর সমান।
- Schedule creep। নতুন পদ্ধতি CBGS সহ ২৪ epoch train করে; উদ্ধৃত baseline সংখ্যা ২০-epoch no-CBGS config থেকে। 3D detector schedule বাড়ালে উন্নতি করতেই থাকে।
- Eval-code drift। দুটি পদ্ধতি আলাদা evaluation code, আলাদা score threshold, বা আলাদা NMS দিয়ে scored — ছোট implementation পার্থক্য যা mAP-কে আধা point সরায়।
এগুলোর কোনোটিতেই অসততা লাগে না। প্রতিটি knob প্রকাশ-করা একটিমাত্র নিয়ন্ত্রিত তুলনার টেবিলেই সব দূর হয়।
3The dataset and protocol landscape
| Dataset | Match function | Headline metric | Stratification |
|---|---|---|---|
| KITTI [1] | 3D / BEV IoU (0.7 car, 0.5 ped/cyc) | AP (40-point recall since 2019 [2]) | Easy / Moderate / Hard by occlusion, truncation, box height |
| nuScenes [3] | 2D center distance on ground plane {0.5, 1, 2, 4} m | NDS = (5·mAP + Σ TP-scores) / 10, over 10 classes | Per-class; TP errors for translation, scale, orientation, velocity, attribute |
| Waymo Open [4] | 3D IoU (0.7 veh, 0.5 ped/cyc); LET-IoU for camera-only [5] | mAP / mAPH (heading-weighted); LET-3D-AP | LEVEL_1 (>5 pts) / LEVEL_2 (≥1 pt); range 0–30 / 30–50 / 50 m+ |
| Argoverse 2 [6] | 3D center distance | CDS (composite detection score), 26 classes, 150 m | Per-class; long-tail-heavy taxonomy |
| ONCE [7] | 3D IoU | AP (orientation-aware) | Large unlabeled pool for semi-/self-supervised study |
| Occ3D [8] | Voxel occupancy + semantics | mIoU; RayIoU [9] to fix depth-penalty inconsistency | nuScenes / Waymo variants; visible-mask conventions differ |
Details worth internalizing:
- nuScenes matches on center distance, not IoU [3] — a slightly mis-sized box is not punished as hard as a mislocated one, with box quality captured separately by five true-positive metrics (translation mATE, scale mASE, orientation mAOE, velocity mAVE, attribute mAAE), each turned into a score max(1 − error, 0). NDS weights mAP by 5 and each TP score by 1, then divides by 10. A method can raise NDS by improving orientation without improving mAP at all — always show the decomposition.
- Waymo's APH [4] weights each true positive by heading accuracy 1 − |Δθ| / π (with Δθ the wrapped heading error), so a detector that gets boxes but not orientation is penalized. mAPH is the primary metric; LEVEL_2 (includes 1-point objects) is the harder, headline setting.
- Waymo's LET-3D-AP [5] loosens the longitudinal (depth) tolerance so camera-only methods are not dominated by inherent range error — meaning camera and LiDAR entries under LET metrics are not directly comparable to entries under strict IoU.
- Occupancy metrics are fragmenting. Plain mIoU over voxels penalizes depth errors inconsistently (a thin surface prediction one voxel off scores zero); RayIoU [9] casts query rays and compares first-hit distances instead. Occ3D-nuScenes and Occ3D-Waymo also differ in voxel size and visible-mask handling. State which occupancy metric and mask convention you used.
৩Dataset ও protocol-এর মানচিত্র
| Dataset | Match function | প্রধান metric | Stratification |
|---|---|---|---|
| KITTI [1] | 3D / BEV IoU (0.7 car, 0.5 ped/cyc) | AP (২০১৯ থেকে 40-point recall [2]) | occlusion, truncation, box height অনুযায়ী Easy / Moderate / Hard |
| nuScenes [3] | ground plane-এ 2D center distance {0.5, 1, 2, 4} মি | NDS = (5·mAP + Σ TP-score) / 10, ১০ class-এ | per-class; translation, scale, orientation, velocity, attribute-এর TP error |
| Waymo Open [4] | 3D IoU (0.7 veh, 0.5 ped/cyc); camera-only-র জন্য LET-IoU [5] | mAP / mAPH (heading-weighted); LET-3D-AP | LEVEL_1 (>5 pt) / LEVEL_2 (≥1 pt); range 0–30 / 30–50 / 50 মি+ |
| Argoverse 2 [6] | 3D center distance | CDS (composite detection score), ২৬ class, ১৫০ মি | per-class; long-tail-প্রধান taxonomy |
| ONCE [7] | 3D IoU | AP (orientation-aware) | semi-/self-supervised গবেষণার জন্য বড় unlabeled pool |
| Occ3D [8] | Voxel occupancy + semantics | mIoU; depth-penalty অসঙ্গতি ঠিক করতে RayIoU [9] | nuScenes / Waymo variant; visible-mask প্রথা আলাদা |
মনে রাখার মতো বিস্তারিত:
- nuScenes IoU নয়, center distance-এ match করে [3] — সামান্য ভুল-মাপের box, ভুল-অবস্থানের box-এর মতো কঠোরভাবে শাস্তি পায় না, box-এর মান আলাদাভাবে ধরা পড়ে পাঁচটি true-positive metric-এ (translation mATE, scale mASE, orientation mAOE, velocity mAVE, attribute mAAE), প্রতিটি একটি score max(1 − error, 0)-তে রূপান্তরিত। NDS mAP-কে ৫ এবং প্রতিটি TP score-কে ১ weight দিয়ে তারপর ১০ দিয়ে ভাগ করে। একটি পদ্ধতি mAP মোটেই না বাড়িয়েও orientation উন্নত করে NDS বাড়াতে পারে — সবসময় decomposition দেখান।
- Waymo-র APH [4] প্রতিটি true positive-কে heading accuracy 1 − |Δθ| / π দিয়ে weight করে (Δθ হলো wrapped heading error), তাই যে detector box পায় কিন্তু orientation পায় না তা শাস্তি পায়। mAPH প্রধান metric; LEVEL_2 (১-point object সহ) কঠিনতর, প্রধান setting।
- Waymo-র LET-3D-AP [5] longitudinal (depth) সহনশীলতা শিথিল করে যাতে camera-only পদ্ধতি অন্তর্নিহিত range error-এ ডুবে না যায় — অর্থাৎ LET metric-এর অধীন camera ও LiDAR entry, strict IoU-র অধীন entry-র সঙ্গে সরাসরি তুলনীয় নয়।
- Occupancy metric খণ্ডিত হচ্ছে। voxel-এর উপর সাধারণ mIoU depth error-কে অসঙ্গতভাবে শাস্তি দেয় (এক voxel সরে থাকা পাতলা surface prediction শূন্য পায়); RayIoU [9] বদলে query ray ছোড়ে এবং first-hit দূরত্ব তুলনা করে। Occ3D-nuScenes ও Occ3D-Waymo voxel size ও visible-mask handling-এও আলাদা। কোন occupancy metric ও mask প্রথা ব্যবহার করেছেন তা উল্লেখ করুন।
42D and monocular metrics, briefly
Monocular and multi-view-camera 3D detection is often reported on nuScenes NDS or on KITTI's 3D AP, but 2D image-plane detection (nuImages, BDD100K, Cityscapes) still uses COCO-style AP averaged over IoU 0.5:0.95. Two traps: (a) AP50 and AP (averaged) tell different stories — a method can win AP50 and lose averaged AP by producing loose boxes; (b) the KITTI 11-point (R11) vs 40-point (R40) recall interpolation changed in 2019 [2], so pre- and post-2019 KITTI AP numbers are not comparable — check which a cited number uses.
৪2D ও monocular metric, সংক্ষেপে
Monocular ও multi-view-camera 3D detection প্রায়ই nuScenes NDS বা KITTI-র 3D AP-তে রিপোর্ট হয়, কিন্তু 2D image-plane detection (nuImages, BDD100K, Cityscapes) এখনও IoU 0.5:0.95-এর উপর গড়-করা COCO-ধাঁচের AP ব্যবহার করে। দুটি ফাঁদ: (ক) AP50 ও AP (গড়) আলাদা গল্প বলে — একটি পদ্ধতি ঢিলেঢালা box বানিয়ে AP50 জিতে গড় AP হারাতে পারে; (খ) KITTI-র 11-point (R11) বনাম 40-point (R40) recall interpolation ২০১৯-এ বদলেছে [2], তাই ২০১৯-এর আগের ও পরের KITTI AP সংখ্যা তুলনীয় নয় — উদ্ধৃত সংখ্যা কোনটি ব্যবহার করে তা দেখুন।
5Metric design principles
- Pick the match function on purpose. IoU rewards tight boxes and punishes size error heavily; center-distance decouples localization from sizing. State which failure you care about, choose accordingly, and report the orthogonal error separately.
- Stratify. A single mean hides the cases that matter. Break out by distance, by occlusion / point-count, and by class. A method that gains 2 points of aggregate AP by improving already-easy near cars is less interesting than one that gains 0.5 overall but 4 at 50 m+.
- Score calibration matters for downstream use. If confidence is miscalibrated, AP can look fine while the planner gets garbage probabilities. Report a calibration diagnostic (reliability curve, ECE).
- Temporal stability, not just per-frame accuracy. Flicker, ID switches, and jittery boxes hurt tracking and prediction and are invisible to per-frame AP (see §6).
- Safety-relevant summaries. Miss rate at range for vulnerable road users; planner-centric metrics (see §7). Aggregate AP treats a missed distant cyclist and a missed parked car identically.
- Announce the metric and freeze it. A metric adjusted after seeing results is not a benchmark.
৫Metric নকশার নীতি
- Match function সচেতনভাবে বাছুন। IoU আঁটসাঁট box-কে পুরস্কার দেয় এবং size error-কে ভারীভাবে শাস্তি দেয়; center-distance localization-কে sizing থেকে আলাদা করে। কোন failure নিয়ে আপনি চিন্তিত তা বলুন, সেই অনুযায়ী বাছুন, এবং orthogonal error আলাদাভাবে রিপোর্ট করুন।
- Stratify করুন। একটিমাত্র গড় গুরুত্বপূর্ণ ক্ষেত্রগুলো আড়াল করে। দূরত্ব, occlusion / point-count, ও class অনুযায়ী ভাগ করুন। আগে থেকেই সহজ কাছের গাড়ি উন্নত করে ২ point aggregate AP পাওয়া পদ্ধতি, সামগ্রিকভাবে ০.৫ কিন্তু ৫০ মি+-এ ৪ পাওয়া পদ্ধতির চেয়ে কম আকর্ষণীয়।
- downstream ব্যবহারের জন্য score calibration গুরুত্বপূর্ণ। confidence miscalibrated হলে AP ঠিক দেখাতে পারে অথচ planner আজেবাজে probability পায়। একটি calibration diagnostic রিপোর্ট করুন (reliability curve, ECE)।
- কেবল per-frame accuracy নয়, temporal stability। flicker, ID switch, ও কাঁপা box tracking ও prediction-এর ক্ষতি করে এবং per-frame AP-তে অদৃশ্য (§৬ দেখুন)।
- Safety-সম্পর্কিত সারাংশ। vulnerable road user-দের জন্য দূরত্বে miss rate; planner-কেন্দ্রিক metric (§৭ দেখুন)। Aggregate AP একটি মিস-করা দূরের cyclist আর একটি মিস-করা পার্ক-করা গাড়িকে একরকম গণ্য করে।
- Metric ঘোষণা করে freeze করুন। ফলাফল দেখার পর সমন্বয়-করা metric benchmark নয়।
6Tracking and temporal-stability metrics
If perception feeds prediction, per-frame detection AP is not enough. The standard 3D multi-object-tracking metrics:
- AMOTA / AMOTP — the nuScenes tracking metrics [16]: MOTA / MOTP integrated over recall thresholds, so they reward consistent identity across the confidence range, not at one operating point.
- MOTA, MOTP, IDF1, ID switches — the classic CLEAR-MOT family; ID switches specifically penalize identity instability.
- HOTA [17] — Higher Order Tracking Accuracy, which balances detection, association, and localization into one number and is now the KITTI-tracking primary; increasingly reported alongside AMOTA on nuScenes.
- Detection stability — frame-to-frame variance of box pose/size for the same tracked object; there are dedicated "stability" metrics that a jittery-but-accurate detector fails.
৬Tracking ও temporal-stability metric
perception যদি prediction-কে খাওয়ায়, per-frame detection AP যথেষ্ট নয়। স্ট্যান্ডার্ড 3D multi-object-tracking metric:
- AMOTA / AMOTP — nuScenes tracking metric [16]: recall threshold-জুড়ে integrated MOTA / MOTP, তাই এগুলো একটি operating point-এ নয়, পুরো confidence পরিসরে সঙ্গতিপূর্ণ identity-কে পুরস্কার দেয়।
- MOTA, MOTP, IDF1, ID switch — ক্লাসিক CLEAR-MOT পরিবার; ID switch বিশেষভাবে identity অস্থিরতাকে শাস্তি দেয়।
- HOTA [17] — Higher Order Tracking Accuracy, যা detection, association, ও localization-কে এক সংখ্যায় ভারসাম্য করে এবং এখন KITTI-tracking-এর প্রধান; nuScenes-এ AMOTA-র পাশাপাশি ক্রমশ বেশি রিপোর্ট হচ্ছে।
- Detection stability — একই tracked object-এর box pose/size-এর frame-to-frame variance; নির্দিষ্ট "stability" metric আছে যেগুলোতে কাঁপা-কিন্তু-নির্ভুল detector ফেল করে।
7Planning-aware and closed-loop metrics
Per-frame detection AP is an open-loop proxy for what matters: does the car drive well. Metrics that get closer:
- PKL (Planning KL-divergence) [10] — weights a detection error by how much it changes a fixed downstream planner's predicted trajectory distribution. A missed parked car far from the path costs little; a missed lead vehicle costs a lot.
- nuPlan closed-loop score [14] — runs the planner in closed loop on real logs with reactive agents, scoring progress, comfort, and collisions.
- NAVSIM PDMS [15] — a non-reactive simulation with a predictive driver-model score that correlates with closed-loop far better than open-loop trajectory L2 does.
- CARLA / Bench2Drive — reactive closed-loop scenarios for end-to-end stacks.
Perception papers will increasingly be expected to show that a detection gain survives contact with a planner — because a surprising number do not.
৭Planning-aware ও closed-loop metric
Per-frame detection AP আসল প্রশ্নের একটি open-loop proxy: গাড়ি কি ভালো চালায়। যেসব metric কাছাকাছি যায়:
- PKL (Planning KL-divergence) [10] — একটি detection error-কে weight করে এই অনুযায়ী যে তা একটি স্থির downstream planner-এর predicted trajectory distribution কতটা বদলায়। পথ থেকে দূরের একটি মিস-করা পার্ক-করা গাড়ির খরচ সামান্য; একটি মিস-করা lead vehicle-এর খরচ অনেক।
- nuPlan closed-loop score [14] — reactive agent সহ বাস্তব log-এ planner-কে closed loop-এ চালায়, progress, comfort ও collision-এ score দেয়।
- NAVSIM PDMS [15] — একটি non-reactive simulation, যার predictive driver-model score open-loop trajectory L2-র চেয়ে closed-loop-এর সঙ্গে অনেক ভালো correlate করে।
- CARLA / Bench2Drive — end-to-end stack-এর জন্য reactive closed-loop দৃশ্য।
Perception paper থেকে ক্রমশ আশা করা হবে যে একটি detection লাভ planner-এর সংস্পর্শে টেকে — কারণ অবাক করার মতো অনেকগুলো টেকে না।
8Splits and leakage
- Scene-level disjointness. Frames from one drive are highly correlated; any split must be at the scene / log level, never the frame level. A custom subset that splits frames randomly leaks the val set into training and inflates everything.
- Geographic and temporal holdout. The strongest generalization test holds out whole areas or days. nuScenes and Waymo separate by location / scene; preserve that when sub-sampling.
- Sweep leakage. If you accumulate past / future sweeps, make sure the sweeps pulled into a training frame do not belong to a val scene.
- Simulation town / route holdout. For CARLA-based work, held-out towns and weather presets, not just held-out routes in a seen town.
- Cross-dataset evaluation as a first-class result. Train nuScenes → test Waymo (or the reverse) exposes overfitting to a single sensor rig and label convention. If you claim generality, show it.
- Foundation-model contamination. Backbones pretrained on web-scale corpora may overlap the benchmark's imagery or its sources. No clean solution yet — disclose the pretraining data.
৮Split ও leakage
- Scene-স্তরে বিচ্ছিন্নতা। একটি drive-এর frame-গুলো অত্যন্ত correlated; যেকোনো split scene / log স্তরে হতে হবে, কখনো frame স্তরে নয়। যে custom subset frame-গুলো randomly ভাগ করে তা val set-কে training-এ leak করে এবং সব কিছু স্ফীত করে।
- ভৌগোলিক ও সময়ভিত্তিক holdout। সবচেয়ে শক্তিশালী generalization পরীক্ষা পুরো এলাকা বা দিন সরিয়ে রাখে। nuScenes ও Waymo location / scene অনুযায়ী আলাদা করে; sub-sample করার সময় তা বজায় রাখুন।
- Sweep leakage। অতীত / ভবিষ্যৎ sweep জমা করলে নিশ্চিত করুন যে একটি training frame-এ টানা sweep কোনো val scene-এর নয়।
- Simulation town / route holdout। CARLA-ভিত্তিক কাজে, কেবল দেখা town-এর held-out route নয়, held-out town ও weather preset।
- Cross-dataset মূল্যায়ন একটি প্রথম-শ্রেণির ফলাফল হিসেবে। Train nuScenes → test Waymo (বা উল্টো) একটি একক sensor rig ও label প্রথায় overfitting ফাঁস করে। generality দাবি করলে দেখান।
- Foundation-model দূষণ। web-scale corpus-এ pretrained backbone benchmark-এর imagery বা তার উৎসের সঙ্গে ওভারল্যাপ করতে পারে। এখনও পরিষ্কার সমাধান নেই — pretraining data প্রকাশ করুন।
9The hidden knobs — a control checklist
Every one of these has moved reported nuScenes NDS by more than a typical "architecture" delta. Hold them fixed across the methods you compare, and report their values:
| Knob | Why it matters |
|---|---|
| Image / point backbone | R50 vs. R101 vs. Swin vs. V2-99 is often larger than the architectural change under study |
| Pretraining corpus | ImageNet vs. depth-pretrain vs. large detection pretrain (nuImages, Objects365) |
| Input resolution | 256×704 vs. 512×1408 changes small-object recall substantially |
| Voxel size / BEV resolution | 0.075 m vs. 0.1 m; 0.4 m vs. 0.8 m BEV grid |
| LiDAR sweeps | 1 vs. 10 accumulated sweeps is worth several NDS on its own |
| Training epochs / schedule | Longer schedules keep improving; a 20-epoch method vs. a 24-epoch baseline is not a fair fight |
| CBGS / class-balanced sampling | Roughly doubles effective epochs; helps rare classes, can hurt car AP |
| Model EMA | Typically +0.5–1 NDS for free |
| Test-time augmentation | Double-flip + multi-scale + rotation can add 1–3 NDS; test entries with and without TTA are routinely compared as if equivalent |
| GT-paste / copy-paste | Strength and multimodal handling change results and interact with fusion |
| Eval code / score threshold / NMS | Implementation drift moves mAP by tenths of a point |
৯লুকানো knob — একটি নিয়ন্ত্রণ চেকলিস্ট
এদের প্রত্যেকটি রিপোর্ট-করা nuScenes NDS-কে সাধারণ "architecture" delta-র চেয়ে বেশি সরিয়েছে। যেসব পদ্ধতি তুলনা করছেন তাদের জুড়ে এগুলো স্থির রাখুন এবং মান রিপোর্ট করুন:
| Knob | কেন গুরুত্বপূর্ণ |
|---|---|
| Image / point backbone | R50 বনাম R101 বনাম Swin বনাম V2-99 প্রায়ই অধ্যয়নাধীন architectural পরিবর্তনের চেয়ে বড় |
| Pretraining corpus | ImageNet বনাম depth-pretrain বনাম বড় detection pretrain (nuImages, Objects365) |
| Input resolution | 256×704 বনাম 512×1408 small-object recall উল্লেখযোগ্যভাবে বদলায় |
| Voxel size / BEV resolution | 0.075 মি বনাম 0.1 মি; 0.4 মি বনাম 0.8 মি BEV grid |
| LiDAR sweep | ১ বনাম ১০ জমা-করা sweep একাই কয়েক NDS-এর সমান |
| Training epoch / schedule | দীর্ঘ schedule উন্নতি করতেই থাকে; ২০-epoch পদ্ধতি বনাম ২৪-epoch baseline সুষ্ঠু লড়াই নয় |
| CBGS / class-balanced sampling | কার্যকর epoch মোটামুটি দ্বিগুণ করে; বিরল class-এ সাহায্য করে, car AP কমাতে পারে |
| Model EMA | সাধারণত বিনামূল্যে +0.5–1 NDS |
| Test-time augmentation | Double-flip + multi-scale + rotation ১–৩ NDS যোগ করতে পারে; TTA সহ ও ছাড়া test entry নিয়মিতভাবে সমতুল্য ধরে তুলনা করা হয় |
| GT-paste / copy-paste | মাত্রা ও multimodal handling ফলাফল বদলায় এবং fusion-এর সঙ্গে interact করে |
| Eval code / score threshold / NMS | Implementation drift mAP-কে point-এর দশমাংশে সরায় |
10Robustness and corruption benchmarks
Clean-set accuracy does not predict deployment behavior. Standard tools:
- Common-corruptions for 3D detection [12] — ~27 corruption types across LiDAR and camera; the headline findings are that motion-level corruptions dominate, that LiDAR–camera fusion helps on average but does not save you, and that "cross-sensor" and "snow" are the two worst cases.
- Robo3D [13] — physically-principled corruptions on KITTI / SemanticKITTI / nuScenes / Waymo val, with a standardized corruption-error and relative-robustness summary.
- MultiCorrupt and similar — specifically misaligned / missing multi-sensor inputs for fusion models.
- Report the clean–corrupt gap, the per-corruption breakdown, and a relative-robustness score — not just the mean corrupted number, which a big model can carry by brute force.
১০Robustness ও corruption benchmark
Clean-set accuracy deployment আচরণ অনুমান করে না। স্ট্যান্ডার্ড টুল:
- 3D detection-এর জন্য common-corruptions [12] — LiDAR ও camera-জুড়ে ~২৭ ধরনের corruption; প্রধান ফলাফল হলো motion-level corruption প্রাধান্য নেয়, LiDAR–camera fusion গড়ে সাহায্য করে কিন্তু বাঁচায় না, এবং "cross-sensor" ও "snow" দুটি সবচেয়ে খারাপ ক্ষেত্র।
- Robo3D [13] — KITTI / SemanticKITTI / nuScenes / Waymo val-এ physically-principled corruption, একটি standardized corruption-error ও relative-robustness সারাংশ সহ।
- MultiCorrupt ও সদৃশ — বিশেষভাবে fusion মডেলের জন্য misaligned / missing multi-sensor input।
- clean–corrupt gap, per-corruption breakdown, ও একটি relative-robustness score রিপোর্ট করুন — কেবল mean corrupted সংখ্যা নয়, যা একটি বড় মডেল জোর করে টেনে নিতে পারে।
11Statistical rigor
- Seeds and variance. 3D detectors have non-trivial run-to-run spread — often several tenths of an NDS point, more for rare classes. A 0.3-NDS "improvement" from a single run each is not a result. Report mean ± std over ≥3 seeds, or a bootstrap confidence interval over the eval set.
- Compute-matched comparison. Plot accuracy against GFLOPs, latency, and parameters. A gain that costs 2× compute belongs on a Pareto curve, not in a bold table cell.
- Significance. When margins are within a couple of standard deviations, say so. Do not bold it.
- Report cost. Training GPU-hours, inference latency on named hardware, peak memory, and — increasingly expected — energy. These are part of the result.
- Ablate one thing at a time, from a fixed reference config, and give each ablation its own seeds.
১১পরিসংখ্যানগত কড়াকড়ি
- Seed ও variance। 3D detector-এর run-to-run বিস্তার তুচ্ছ নয় — প্রায়ই NDS point-এর কয়েক দশমাংশ, বিরল class-এ আরও বেশি। প্রতিটির একটিমাত্র run থেকে ০.৩-NDS "উন্নতি" কোনো ফলাফল নয়। ≥৩টি seed-এর উপর mean ± std, অথবা eval set-এর উপর একটি bootstrap confidence interval রিপোর্ট করুন।
- Compute-matched তুলনা। GFLOP, latency ও parameter-এর সাপেক্ষে accuracy plot করুন। ২× compute খরচ করা লাভের জায়গা একটি Pareto curve-এ, bold টেবিল-cell-এ নয়।
- Significance। ব্যবধান যখন কয়েকটি standard deviation-এর মধ্যে, তা বলুন। bold করবেন না।
- খরচ রিপোর্ট করুন। Training GPU-ঘণ্টা, নামসহ hardware-এ inference latency, peak memory, এবং — ক্রমশ প্রত্যাশিত — energy। এগুলো ফলাফলের অংশ।
- একবারে একটি জিনিস ablate করুন, একটি স্থির reference config থেকে, এবং প্রতিটি ablation-কে তার নিজস্ব seed দিন।
12Reproducibility infrastructure
- One codebase. Build on a maintained framework (MMDetection3D [18], OpenPCDet) so baselines and your method share data loading, augmentation, and eval code. Re-implementing baselines yourself is the most common source of unfair comparison.
- Pinned configs + container. Exact config files, a dependency lockfile, and a Docker image. Sparse-convolution and voxel-pooling kernels are version-sensitive and a frequent cause of "cannot reproduce".
- Determinism, honestly. Some sparse ops are non-deterministic on GPU; state this rather than pretending a fixed seed gives bit-exact runs.
- Dataset versioning. Note the dataset version and devkit commit; annotation fixes have changed scores historically (the 2019 KITTI 40-point change [2] is the canonical example).
- Release predictions. Publish the raw prediction files for val, so others can re-score under new metrics without retraining, and respect the test-server submission limits — the hidden test set only works if people do not probe it.
- Model card. Intended use, training data, known failure modes, compute, and the full knob table from §9.
- Leaderboards vs. papers. A number on a public leaderboard with TTA and a giant backbone is not the same claim as an architecture ablation. Keep the two separate in your own tables.
- Licensing. Some datasets forbid redistributing derived labels or training on the test images; check before releasing pseudo-labels or pretrained weights.
১২Reproducibility অবকাঠামো
- এক codebase। একটি রক্ষণাবেক্ষণ-করা framework-এর উপর গড়ুন (MMDetection3D [18], OpenPCDet) যাতে baseline ও আপনার পদ্ধতি data loading, augmentation ও eval code ভাগ করে। নিজে baseline পুনরায় বাস্তবায়ন করাই অসম তুলনার সবচেয়ে সাধারণ উৎস।
- Pinned config + container। হুবহু config ফাইল, একটি dependency lockfile, এবং একটি Docker image। Sparse-convolution ও voxel-pooling kernel version-সংবেদনশীল এবং "reproduce করা যায় না"-র ঘন ঘন কারণ।
- Determinism, সৎভাবে। কিছু sparse op GPU-তে non-deterministic; একটি স্থির seed bit-exact run দেয় ভান না করে এটা বলুন।
- Dataset versioning। dataset version ও devkit commit উল্লেখ করুন; annotation সংশোধন ঐতিহাসিকভাবে score বদলেছে (২০১৯-এর KITTI 40-point পরিবর্তন [2] প্রধান উদাহরণ)।
- Prediction প্রকাশ করুন। val-এর raw prediction ফাইল প্রকাশ করুন, যাতে অন্যরা retrain না করেই নতুন metric-এ re-score করতে পারে, এবং test-server submission সীমা মানুন — লুকানো test set তখনই কাজ করে যখন লোকে সেটি probe না করে।
- Model card। উদ্দিষ্ট ব্যবহার, training data, জানা failure mode, compute, এবং §৯-এর পূর্ণ knob টেবিল।
- Leaderboard বনাম paper। TTA ও বিশাল backbone সহ একটি public leaderboard-এর সংখ্যা একটি architecture ablation-এর মতো একই দাবি নয়। নিজের টেবিলে দুটো আলাদা রাখুন।
- Licensing। কিছু dataset derived label পুনর্বণ্টন বা test image-এ training নিষিদ্ধ করে; pseudo-label বা pretrained weight প্রকাশের আগে দেখুন।
13The checklist
Metric. Match function chosen and justified · orthogonal errors reported separately · stratified by distance, occlusion, class · temporal-stability / tracking metric · a safety- or planning-aware summary · calibration diagnostic · metric frozen before results.
Split. Scene-level disjoint · geographic / temporal holdout where possible · no sweep leakage · sim town + weather holdout · at least one cross-dataset result · foundation-model pretraining data disclosed.
Controls. Backbone, pretraining, resolution, voxel / BEV size, sweeps, epochs, CBGS, EMA, TTA, GT-paste, eval code held fixed across compared methods and tabulated.
Statistics. ≥3 seeds with mean ± std or bootstrap CI · accuracy-vs-compute Pareto · significance stated · training cost, latency (named hardware), memory, energy reported.
Robustness. Corruption benchmark run · clean–corrupt gap and per-corruption breakdown · missing-modality behavior (for fusion).
Artifacts. One shared codebase · pinned configs + container · released val predictions · model card · dataset + devkit version noted · licensing checked.
১৩চেকলিস্ট
Metric। Match function বাছাই ও যুক্তিসহ · orthogonal error আলাদাভাবে রিপোর্ট · দূরত্ব, occlusion, class অনুযায়ী stratified · temporal-stability / tracking metric · একটি safety- বা planning-aware সারাংশ · calibration diagnostic · ফলাফলের আগে metric frozen।
Split। Scene-স্তরে disjoint · সম্ভব হলে ভৌগোলিক / সময়ভিত্তিক holdout · sweep leakage নেই · sim town + weather holdout · অন্তত একটি cross-dataset ফলাফল · foundation-model pretraining data প্রকাশিত।
Controls। Backbone, pretraining, resolution, voxel / BEV size, sweep, epoch, CBGS, EMA, TTA, GT-paste, eval code তুলনা-করা পদ্ধতিজুড়ে স্থির ও টেবিলভুক্ত।
Statistics। mean ± std বা bootstrap CI সহ ≥৩ seed · accuracy-vs-compute Pareto · significance বলা · training খরচ, latency (নামসহ hardware), memory, energy রিপোর্ট।
Robustness। Corruption benchmark চালানো · clean–corrupt gap ও per-corruption breakdown · missing-modality আচরণ (fusion-এর জন্য)।
Artifacts। এক shared codebase · pinned config + container · প্রকাশিত val prediction · model card · dataset + devkit version উল্লিখিত · licensing যাচাই।
14Toward closed-loop evaluation
The field is moving toward evaluation that closes the loop — nuPlan [14] for closed-loop planning on real logs, NAVSIM [15] for non-reactive simulation with a driving-quality score that correlates better with closed-loop than open-loop L2 does, and CARLA-based suites such as Bench2Drive for reactive scenarios. Perception benchmarks will not be replaced by these, but they set the target: a perception improvement that does not move a planning or closed-loop number is, at best, unproven. Design your evaluation so that link is visible.
১৪closed-loop মূল্যায়নের দিকে
ক্ষেত্রটি এমন মূল্যায়নের দিকে যাচ্ছে যা loop বন্ধ করে — বাস্তব log-এ closed-loop planning-এর জন্য nuPlan [14], একটি driving-quality score সহ non-reactive simulation-এর জন্য NAVSIM [15] যা open-loop L2-র চেয়ে closed-loop-এর সঙ্গে ভালো correlate করে, এবং reactive দৃশ্যের জন্য Bench2Drive-এর মতো CARLA-ভিত্তিক suite। Perception benchmark এগুলো দিয়ে প্রতিস্থাপিত হবে না, কিন্তু এগুলো লক্ষ্য ঠিক করে দেয়: যে perception উন্নতি একটি planning বা closed-loop সংখ্যা নাড়ায় না, তা বড়জোর অপ্রমাণিত। আপনার মূল্যায়ন এমনভাবে ডিজ়াইন করুন যাতে সেই সংযোগ দৃশ্যমান।
Key takeaways
- Most non-reproducible 3D-perception gains come from unreported knobs — backbone, sweeps, schedule, TTA, eval code — not architecture. Fix and tabulate them.
- Scores are not comparable across datasets: nuScenes matches on center distance, Waymo APH weights heading and LET loosens depth, KITTI uses strict IoU with a metric that changed in 2019.
- Stratify every metric by distance, occlusion, and class; add tracking / stability and planning-aware summaries.
- Split at the scene level, hold out geography / time / sim towns, and report at least one cross-dataset number.
- Report ≥3 seeds, an accuracy-vs-compute Pareto, robustness under corruption, and release val predictions with a model card.
- Aim your evaluation at the closed-loop target: a detection gain that does not survive contact with a planner is unproven.
মূল কথা
- বেশিরভাগ non-reproducible 3D-perception লাভ আসে রিপোর্ট-না-করা knob থেকে — backbone, sweep, schedule, TTA, eval code — architecture থেকে নয়। এগুলো স্থির করুন ও টেবিলভুক্ত করুন।
- Dataset-জুড়ে score তুলনীয় নয়: nuScenes center distance-এ match করে, Waymo APH heading-কে weight করে ও LET depth শিথিল করে, KITTI strict IoU ব্যবহার করে এমন একটি metric সহ যা ২০১৯-এ বদলেছে।
- প্রতিটি metric দূরত্ব, occlusion ও class অনুযায়ী stratify করুন; tracking / stability ও planning-aware সারাংশ যোগ করুন।
- Scene স্তরে split করুন, ভূগোল / সময় / sim town সরিয়ে রাখুন, এবং অন্তত একটি cross-dataset সংখ্যা রিপোর্ট করুন।
- ≥৩ seed, একটি accuracy-vs-compute Pareto, corruption-এর অধীন robustness রিপোর্ট করুন, এবং একটি model card সহ val prediction প্রকাশ করুন।
- আপনার মূল্যায়ন closed-loop লক্ষ্যে তাক করুন: যে detection লাভ planner-এর সংস্পর্শে টেকে না তা অপ্রমাণিত।
Referencesতথ্যসূত্র
- Geiger, A. et al. “Are we ready for Autonomous Driving? The KITTI Vision Benchmark Suite.” CVPR 2012.
- Simonelli, A. et al. “Disentangling Monocular 3D Object Detection.” ICCV 2019. (Introduces the 40-point recall AP for KITTI.) arXiv:1905.12365
- Caesar, H. et al. “nuScenes: A Multimodal Dataset for Autonomous Driving.” CVPR 2020. arXiv:1903.11027
- Sun, P. et al. “Scalability in Perception for Autonomous Driving: Waymo Open Dataset.” CVPR 2020. arXiv:1912.04838
- Hung, W.-C. et al. “LET-3D-AP: Longitudinal Error Tolerant 3D Average Precision for Camera-Only 3D Detection.” 2022. arXiv:2206.07705
- Wilson, B. et al. “Argoverse 2: Next Generation Datasets for Self-Driving Perception and Forecasting.” NeurIPS 2021 Datasets & Benchmarks. arXiv:2301.00493
- Mao, J. et al. “One Million Scenes for Autonomous Driving: ONCE Dataset.” NeurIPS 2021 Datasets & Benchmarks. arXiv:2106.11037
- Tian, X. et al. “Occ3D: A Large-Scale 3D Occupancy Prediction Benchmark for Autonomous Driving.” NeurIPS 2023. arXiv:2304.14365
- Liu, H. et al. “Fully Sparse 3D Occupancy Prediction (SparseOcc); introduces RayIoU.” ECCV 2024. arXiv:2312.17118
- Philion, J. et al. “Learning to Evaluate Perception Models Using Planner-Centric Metrics (PKL).” CVPR 2020. arXiv:2004.08745
- Li, H. et al. “Delving into the Devils of Bird's-eye-view Perception: A Review, Evaluation and Recipe.” IEEE TPAMI 2023. arXiv:2209.05324
- Dong, Y. et al. “Benchmarking Robustness of 3D Object Detection to Common Corruptions in Autonomous Driving.” CVPR 2023. arXiv:2303.11040
- Kong, L. et al. “Robo3D: Towards Robust and Reliable 3D Perception against Corruptions.” ICCV 2023. arXiv:2303.17597
- Caesar, H. et al. “nuPlan: A closed-loop ML-based planning benchmark for autonomous vehicles.” CVPR 2021 Workshop on Autonomous Driving. arXiv:2106.11810
- Dauner, D. et al. “NAVSIM: Data-Driven Non-Reactive Autonomous Vehicle Simulation and Benchmarking.” NeurIPS 2024 Datasets & Benchmarks. arXiv:2406.15349
- Weng, X. et al. “3D Multi-Object Tracking: A Baseline and New Evaluation Metrics (AMOTA / AMOTP).” IROS 2020. arXiv:1907.03961
- Luiten, J. et al. “HOTA: A Higher Order Metric for Evaluating Multi-Object Tracking.” IJCV 2021. arXiv:2009.07736
- Contributors. “MMDetection3D: OpenMMLab next-generation platform for general 3D object detection.” 2020. github.com/open-mmlab/mmdetection3d