Recovering Black-Box Point Cloud Models from Pose Shifts via Derivative-Free Optimization
Organizations: Korea Electronics Technology Institute (KETI)
Abstract
Point cloud models are increasingly deployed through score-only black-box interfaces. Under this access model, test-time rotations outside the training distribution can substantially degrade performance. Although existing mitigations such as equivariant retraining and gradient-based adaptation are effective, they are infeasible without access to model weights or gradients. To address this limitation, we propose CanDO, a test-time canonicalization method that recovers lost performance using only forward queries. Specifically, CanDO searches for an input transformation that maximizes model confidence and uses derivative-free optimization to perform this search without gradients. We further identify three conditions for successful recovery: a training augmentation gap, an accuracy-aligned confidence surrogate, and global search over a multi-modal objective. Across multiple architectures and benchmarks, CanDO recovers 76% of the oracle gap under azimuthal misorientation and 51% under arbitrary SO(3) rotations for object part segmentation. These results show that frozen score-only point cloud models can recover from rotation-induced distribution shifts through post-deployment canonicalization alone.
Figures & tables
| mIoU / Accuracy | ||||||
|---|---|---|---|---|---|---|
| Benchmark | Transform | Backbone | Corrupted | Recovered | Oracle | % Gap |
| ShapeNetPart | Azimuth | PointNet++ | 76 | |||
| PointNeXt-S | 68 | |||||
| PointNet++ | 51 | |||||
| PointNeXt-S | 56 | |||||
| S3DIS | Tilt | PointNet++ | 52 | |||
| mIoU | Accuracy | |||||
|---|---|---|---|---|---|---|
| Method | Gradient | Update | Label | ShapeNetPart [ 66 ] | S3DIS [ 1 ] | ModelNet40 [ 63 ] |
| Source (No Adaptation) | ✗ | ✗ | ✗ | |||
| PCA Canonicalization [ 64 ] | ✗ | ✗ | ✗ | |||
| PCA + Confidence | ✗ | ✗ | ✗ | |||
| External Prior (Classifier) | ✗ | ✗ | ✗ | N/A | N/A | |
| DUA [ 27 ] | ✗ | ✓ | ✗ | |||
| Transform | Augmented | Accuracy Drop | Recovery | Recoverable |
|---|---|---|---|---|
| Yaw | Yes | 0.01 | ✗ (no headroom) | |
| Scale | No | 0.08 | ✗ (no headroom) | |
| -offset | No | 0.22 | ✗ (misaligned confidence) | |
| Color | No | 0.06 | ✗ (no headroom) | |
| Tilt | No | 0.42 | ✓ |
| Augmentation | Clean | Yaw | Tilt | |
|---|---|---|---|---|
| None | 0.828 | |||
| Yaw | 0.825 | |||
| Tilt | 0.826 | |||
| 0.820 |
| Optimizer | Family | % of Oracle Gap |
|---|---|---|
| Coordinate Finite Differences [ 6 ] | Local | 17 |
| NES [ 60 ] | Local | 18 |
| Score-Function [ 61 ] | Local | 19 |
| SPSA [ 47 ] | Local | 27 |
| Bayesian Optimization [ 43 ] | Global | 57 |
| Random Search [ 2 ] | Global | 53 |
| Budget | Bayesian [ 43 ] | Random Search [ 2 ] | CMA-ES [ 16 ] |
| 60 | 41 | 42 | 52 |
| 120 | 46 | 43 | 54 |
| 240 | 56 | 51 | 53 |
| Objective | Transform | Noise | Density | Mean | Identity Kept |
|---|---|---|---|---|---|
| Part Segmentation | |||||
| Classification |
| Corruption | Family | Confidence | Marginal Entropy |
|---|---|---|---|
| Rotate | Transform | ||
| Scale | Transform | ||
| Jitter | Noise | ||
| Add (Global) | Noise | ||
| Add (Local) | Noise | ||
| Dropout (Global) | Density |
| Frozen model | Equivariance | Clean | CanDO | |
|---|---|---|---|---|
| PointNet++ [ 35 ] | ✗ | 0.847 | 0.352 | 0.602 |
| PointNeXt-S [ 36 ] | ✗ | 0.841 | 0.372 | 0.637 |
| VN-PointNet [ 7 ] | ✓ | 0.794 | 0.794 | 0.794 |
| VN-DGCNN [ 7 ] | ✓ | 0.774 | 0.774 | 0.774 |
Appendix figures & tables13 assets
Supplementary material from the paper’s appendix.
Appendix
| Method | Budgets | Results at Each Budget | ||
|---|---|---|---|---|
| TENT [ 57 ] | / / | 0.345 | 0.346 | 0.301 |
| MEMO [ 67 ] | / / | 0.344 | 0.357 | 0.337 |
| Gradient Ascent | / / | 0.509 | 0.515 | 0.528 |
| Random Search [ 2 ] | / / | 0.541 | 0.575 | 0.567 |
| CMA-ES [ 16 ] | / / | 0.552 | 0.602 | 0.577 |
| Augmentation | Clean | Yaw | Tilt | |
|---|---|---|---|---|
| None | 0.842 | |||
| Yaw | 0.838 | |||
| 0.835 |
| Drop Under | Tilt | Large Scale | Color |
|---|---|---|---|
| PointNet [ 34 ] | 0.48 | – | – |
| PointNet++ [ 35 ] | 0.42 | 0.20 | 0.09 |
| PointNeXt-S [ 36 ] | 0.53 | 0.20 | 0.08 |
| Backbone | Family | Clean | CanDO | % Gap | Corr | |
|---|---|---|---|---|---|---|
| PointNet++ [ 35 ] | MLP | 0.92 | 0.13 | 0.34 | 29 | 0.31 |
| PointNeXt-S [ 36 ] | Conv | 0.93 | 0.16 | 0.48 | 42 | 0.52 |
| PointVector-S [ 8 ] | Conv | 0.93 | 0.15 | 0.47 | 40 | 0.54 |
| Point-MAE [ 30 ] | Transformer | 0.93 | 0.15 | 0.41 | 34 | 0.26 |
| Corruption | Family | Source | CanDO | |
|---|---|---|---|---|
| Rotate | Transform | 0.805 | 0.806 | |
| Scale | Transform | 0.839 | 0.840 | |
| Jitter | Noise | 0.791 | 0.795 | |
| Add (Global) | Noise | 0.813 | 0.815 | |
| Add (Local) | Noise | 0.837 | 0.839 | |
| Dropout (Global) | Density | 0.850 | 0.852 |
| Objective | Prob. | Temp. | Temp. | Temp. | Log-prob. | Neg. Entropy |
|---|---|---|---|---|---|---|
| Recovered |
| Task | Prior | Mean | harmed | harmed | harmed |
|---|---|---|---|---|---|
| Part Seg. | |||||
| Part Seg. | |||||
| Classif. | |||||
| Classif. |
| Rotate | Scale | Jitter | Add (Global) | |
|---|---|---|---|---|
| 0.2 | ||||
| 0.4 | ||||
| 0.7 |
| Corruption | Family | ||||
|---|---|---|---|---|---|
| Rotate | Transform | ||||
| Jitter | Noise | ||||
| Add (Global) | Noise | ||||
| Dropout (Global) | Density |
| Task | Net Gain | Clean | Mild | Severe | Identity Kept | |
|---|---|---|---|---|---|---|
| Part Seg. | ||||||
| Classif. | ||||||
Distribution Shift Robustness
Distribution shift robustness studies how to keep machine-learning predictions reliable when deployment data differ from training data.
See all 280 papers