Bipin Saha

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 এমনভাবে ডিজ়াইন করা যাতে এমন না হয়।

Published 27 Apr 2026 Updated 31 Aug 2026 ~29 min read
প্রকাশ ২৭ এপ্রিল ২০২৬ হালনাগাদ ৩১ আগস্ট ২০২৬ ~২৯ মিনিট পাঠ
  • Benchmarking
  • Reproducibility
  • Evaluation metrics
  • Experimental design
  • nuScenes / Waymo
  • Benchmarking
  • Reproducibility
  • Evaluation metric
  • পরীক্ষামূলক নকশা
  • nuScenes / Waymo

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

Major AV 3D-detection benchmarks and the shape of their evaluation. Match functions and stratification differ enough that scores are not comparable across datasets.
DatasetMatch functionHeadline metricStratification
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} mNDS = (5·mAP + Σ TP-scores) / 10, over 10 classesPer-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-APLEVEL_1 (>5 pts) / LEVEL_2 (≥1 pt); range 0–30 / 30–50 / 50 m+
Argoverse 2 [6]3D center distanceCDS (composite detection score), 26 classes, 150 mPer-class; long-tail-heavy taxonomy
ONCE [7]3D IoUAP (orientation-aware)Large unlabeled pool for semi-/self-supervised study
Occ3D [8]Voxel occupancy + semanticsmIoU; RayIoU [9] to fix depth-penalty inconsistencynuScenes / 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-এর মানচিত্র

প্রধান AV 3D-detection benchmark ও তাদের মূল্যায়নের গড়ন। Match function ও stratification যথেষ্ট আলাদা, তাই dataset-জুড়ে score তুলনীয় নয়।
DatasetMatch functionপ্রধান metricStratification
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-APLEVEL_1 (>5 pt) / LEVEL_2 (≥1 pt); range 0–30 / 30–50 / 50 মি+
Argoverse 2 [6]3D center distanceCDS (composite detection score), ২৬ class, ১৫০ মিper-class; long-tail-প্রধান taxonomy
ONCE [7]3D IoUAP (orientation-aware)semi-/self-supervised গবেষণার জন্য বড় unlabeled pool
Occ3D [8]Voxel occupancy + semanticsmIoU; 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:

Confounds to fix and disclose in any 3D-detection comparison.
KnobWhy it matters
Image / point backboneR50 vs. R101 vs. Swin vs. V2-99 is often larger than the architectural change under study
Pretraining corpusImageNet vs. depth-pretrain vs. large detection pretrain (nuImages, Objects365)
Input resolution256×704 vs. 512×1408 changes small-object recall substantially
Voxel size / BEV resolution0.075 m vs. 0.1 m; 0.4 m vs. 0.8 m BEV grid
LiDAR sweeps1 vs. 10 accumulated sweeps is worth several NDS on its own
Training epochs / scheduleLonger schedules keep improving; a 20-epoch method vs. a 24-epoch baseline is not a fair fight
CBGS / class-balanced samplingRoughly doubles effective epochs; helps rare classes, can hurt car AP
Model EMATypically +0.5–1 NDS for free
Test-time augmentationDouble-flip + multi-scale + rotation can add 1–3 NDS; test entries with and without TTA are routinely compared as if equivalent
GT-paste / copy-pasteStrength and multimodal handling change results and interact with fusion
Eval code / score threshold / NMSImplementation drift moves mAP by tenths of a point

লুকানো knob — একটি নিয়ন্ত্রণ চেকলিস্ট

এদের প্রত্যেকটি রিপোর্ট-করা nuScenes NDS-কে সাধারণ "architecture" delta-র চেয়ে বেশি সরিয়েছে। যেসব পদ্ধতি তুলনা করছেন তাদের জুড়ে এগুলো স্থির রাখুন এবং মান রিপোর্ট করুন:

যেকোনো 3D-detection তুলনায় যেসব confound স্থির ও প্রকাশ করতে হবে।
Knobকেন গুরুত্বপূর্ণ
Image / point backboneR50 বনাম R101 বনাম Swin বনাম V2-99 প্রায়ই অধ্যয়নাধীন architectural পরিবর্তনের চেয়ে বড়
Pretraining corpusImageNet বনাম depth-pretrain বনাম বড় detection pretrain (nuImages, Objects365)
Input resolution256×704 বনাম 512×1408 small-object recall উল্লেখযোগ্যভাবে বদলায়
Voxel size / BEV resolution0.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 augmentationDouble-flip + multi-scale + rotation ১–৩ NDS যোগ করতে পারে; TTA সহ ও ছাড়া test entry নিয়মিতভাবে সমতুল্য ধরে তুলনা করা হয়
GT-paste / copy-pasteমাত্রা ও multimodal handling ফলাফল বদলায় এবং fusion-এর সঙ্গে interact করে
Eval code / score threshold / NMSImplementation 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

Reproducible AV-perception benchmark 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.

১৩চেকলিস্ট

Reproducible AV-perception benchmark চেকলিস্ট

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তথ্যসূত্র

  1. Geiger, A. et al. “Are we ready for Autonomous Driving? The KITTI Vision Benchmark Suite.” CVPR 2012.
  2. Simonelli, A. et al. “Disentangling Monocular 3D Object Detection.” ICCV 2019. (Introduces the 40-point recall AP for KITTI.) arXiv:1905.12365
  3. Caesar, H. et al. “nuScenes: A Multimodal Dataset for Autonomous Driving.” CVPR 2020. arXiv:1903.11027
  4. Sun, P. et al. “Scalability in Perception for Autonomous Driving: Waymo Open Dataset.” CVPR 2020. arXiv:1912.04838
  5. Hung, W.-C. et al. “LET-3D-AP: Longitudinal Error Tolerant 3D Average Precision for Camera-Only 3D Detection.” 2022. arXiv:2206.07705
  6. Wilson, B. et al. “Argoverse 2: Next Generation Datasets for Self-Driving Perception and Forecasting.” NeurIPS 2021 Datasets & Benchmarks. arXiv:2301.00493
  7. Mao, J. et al. “One Million Scenes for Autonomous Driving: ONCE Dataset.” NeurIPS 2021 Datasets & Benchmarks. arXiv:2106.11037
  8. Tian, X. et al. “Occ3D: A Large-Scale 3D Occupancy Prediction Benchmark for Autonomous Driving.” NeurIPS 2023. arXiv:2304.14365
  9. Liu, H. et al. “Fully Sparse 3D Occupancy Prediction (SparseOcc); introduces RayIoU.” ECCV 2024. arXiv:2312.17118
  10. Philion, J. et al. “Learning to Evaluate Perception Models Using Planner-Centric Metrics (PKL).” CVPR 2020. arXiv:2004.08745
  11. 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
  12. Dong, Y. et al. “Benchmarking Robustness of 3D Object Detection to Common Corruptions in Autonomous Driving.” CVPR 2023. arXiv:2303.11040
  13. Kong, L. et al. “Robo3D: Towards Robust and Reliable 3D Perception against Corruptions.” ICCV 2023. arXiv:2303.17597
  14. Caesar, H. et al. “nuPlan: A closed-loop ML-based planning benchmark for autonomous vehicles.” CVPR 2021 Workshop on Autonomous Driving. arXiv:2106.11810
  15. Dauner, D. et al. “NAVSIM: Data-Driven Non-Reactive Autonomous Vehicle Simulation and Benchmarking.” NeurIPS 2024 Datasets & Benchmarks. arXiv:2406.15349
  16. Weng, X. et al. “3D Multi-Object Tracking: A Baseline and New Evaluation Metrics (AMOTA / AMOTP).” IROS 2020. arXiv:1907.03961
  17. Luiten, J. et al. “HOTA: A Higher Order Metric for Evaluating Multi-Object Tracking.” IJCV 2021. arXiv:2009.07736
  18. Contributors. “MMDetection3D: OpenMMLab next-generation platform for general 3D object detection.” 2020. github.com/open-mmlab/mmdetection3d