Keypoint detection underpins many vision tasks, including pose estimation, viewpoint recovery, and 3D reconstruction, yet modern neural models remain vulnerable to small input perturbations. Despite its importance, formal robustness verification for keypoint detectors is largely unexplored due to high-dimensional inputs and continuous coordinate outputs. We propose the first coupled robustness verification framework for heatmap-based keypoint detectors that bounds the joint deviation across all keypoints, capturing their interdependencies and downstream task requirements. Unlike prior decoupled, classification-style approaches that verify each keypoint independently and yield conservative guarantees, our method verifies collective behavior. We formulate verification as a falsification problem using a mixed-integer linear program (MILP) that combines reachable heatmap sets with a polytope encoding joint deviation constraints. Infeasibility certifies robustness, while feasibility provides counterexamples, and we prove the method is sound: if it certifies the model as robust, then the keypoint detection model is guaranteed to be robust. Experiments show that our coupled approach achieves high verified rates and remains effective under strict error thresholds where decoupled methods fail.
Figures & tables
Figure 1: Overview of the keypoint detection pipeline and the proposed verification framework. A thick red dashed line divides keypoint detection (above) and verification (below). A seed image \bbX0 where an airplane is parking at the airport is processed by the model to identify keypoints, which are marked as green dots. The verification framework takes as input the seed image \bbX0 and a set of perturbed images \bbX (with local perturbations indicated by red circles) that form the convex hull \ccalX , along with the keypoint error bound δ\ccalV . By checking the feasibility of the MILP that is derived from the reachable set \ccalZ of the model and the keypoint error bound δ\ccalV , the method returns whether the model is robust.
Figure 2: An illustration of dynamic indexing for the first keypoint: the green grid indicates the ground-truth keypoint location, while the red grid represents the perturbed keypoint position. The index deviation (1, -1) retrieves the value Z31 .
m
α=1.0
α=0.5
α=0.2
α=0.1
testing
ours
baseline
testing
ours
baseline
testing
ours
baseline
testing
ours
baseline
1
100.0% (200/200)
99.5% (199/200)
47.5% (95/200)
100.0% (198/198)
99.0% (196/198)
0.0% (0/198)
100.0% (190/190)
71.6% (136/190)
0.0% (0/190)
88.7% (86/97)
10.3% (10/97)
0.0% (0/97)
2
100.0% (200/200)
99.0% (198/200)
52.5% (105/200)
100.0% (198/198)
100.0% (198/198)
0.0% (0/198)
98.4% (187/190)
72.1% (137/190)
0.0% (0/190)
89.7% (87/97)
8.2% (8/97)
0.0% (0/97)
3
100.0% (200/200)
99.0% (198/200)
53.0% (106/200)
100.0% (198/198)
99.0% (196/198)
0.0% (0/198)
99.4% (189/190)
67.4% (128/190)
0.0% (0/190)
88.7% (86/97)
5.1% (5/97)
0.0% (0/97)
4
100.0% (200/200)
97.0% (194/200)
53.0% (106/200)
100.0% (198/198)
98.0% (194/198)
0.0% (0/198)
99.5% (189/190)
62.1% (118/190)
0.0% (0/190)
90.7% (88/97)
7.2% (7/97)
0.0% (0/97)
Table 1: Statistical results on verified rate for non-overlapping local perturbations.
m
α=1.0
α=0.5
α=0.2
α=0.1
testing
ours
baseline
testing
ours
baseline
testing
ours
baseline
testing
ours
baseline
1
100.0% (196/196)
95.4% (187/196)
50.0% (98/196)
100.0% (195/195)
93.3% (182/195)
0.0% (0/195)
96.3% (183/190)
64.2% (122/190)
0.0% (0/190)
76.3% (74/97)
6.2% (6/97)
0.0% (0/97)
2
100.0% (192/192)
77.1% (148/192)
41.1% (79/192)
100.0% (190/190)
78.9% (150/190)
0.0% (0/190)
96.7% (175/181)
43.6% (79/181)
0.0% (0/181)
79.1% (72/91)
3.3% (3/91)
0.0% (0/91)
3
100.0% (157/157)
64.3% (101/157)
33.1% (52/157)
100.0% (157/157)
64.3% (101/157)
0.0% (0/157)
96.0% (142/148)
30.4% (45/148)
0.0% (0/148)
73.9% (51/69)
1.4% (1/69)
0.0% (0/69)
4
100.0% (126/126)
51.6% (65/126)
31.0% (39/126)
100.0% (126/126)
46.8% (59/126)
0.0% (0/126)
89.0% (105/115)
20.9% (24/115)
0.0% (0/115)
67.9% (36/53)
1.9% (1/53)
0.0% (0/53)
Table 2: Statistical results on verified rate for overlapping local perturbations.
m
α=1.0
α=0.5
α=0.2
α=0.1
ours
baseline
ours
baseline
ours
baseline
ours
baseline
1
11.8 ± 7.4
7.6 ± 6.6
10.8 ± 5.2
13.0 ± 9.0
12.6 ± 16.1
20.4 ± 6.3
9.1 ± 12.4
26.4 ± 6.4
2
17.0 ± 15.2
12.4 ± 9.9
18.6 ± 29.5
19.2 ± 12.0
16.1 ± 12.4
26.7 ± 7.4
12.3 ± 16.4
33.0 ± 11.8
3
29.8 ± 71.0
17.2 ± 9.6
28.9 ± 79.2
22.5 ± 13.5
21.9 ± 17.9
29.8 ± 10.7
14.1 ± 18.1
35.6 ± 10.8
4
36.0 ± 73.6
21.5 ± 12.4
37.2 ± 77.4
28.0 ± 15.7
29.0 ± 23.5
34.7 ± 12.2
18.5 ± 23.3
39.2 ± 14.2
Table 3: Statistical results on verification time for non-overlapping local perturbations (seconds).
α
overlapping
pruning
binary
integer
continuous
constraints
1.0
✗
✗
9.42 ×104± 0.00 ×101
46.0 ± 0.0
1.89 ×105± 5.29 ×102
6.61 ×105± 1.06 ×103
✓
5.31 ×101± 4.29 ×101
46.0 ± 0.0
8.36 ×102± 7.48 ×102
1.95 ×103± 1.61 ×103
✓
✗
9.42 ×104± 0.00 ×101
46.0 ± 0.0
1.92 ×105± 6.64 ×103
6.67 ×105± 1.33 ×104
✓
8.18 ×102± 4.11 ×103
46.0 ± 0.0
5.07 ×103± 1.42 ×104
1.27 ×104± 4.06 ×104
Table 4: Statistical results of the MILP size, including the number of binary, integer, and continuous variables, as well as the number of constraints. These results vary with the pose error threshold α , the presence of object-airplane overlap, and the use of the pruning strategy. Results obtained with pruning are highlighted in gray for non-overlapping images and in orange for overlapping images.
m
α=1.0
α=0.5
α=0.2
α=0.1
ours
baseline
ours
baseline
ours
baseline
ours
baseline
1
40.3 ± 95.9
16.3 ± 17.8
44.0 ± 94.0
20.9 ± 16.6
23.9 ± 39.8
29.3 ± 14.2
29.3 ± 45.9
36.0 ± 19.5
2
113.0 ± 155.4
30.8 ± 27.3
105.9 ± 147.5
35.1 ± 23.6
76.9 ± 114.6
48.4 ± 37.0
54.8 ± 69.8
51.1 ± 40.2
3
170.2 ± 175.1
48.3 ± 47.7
166.1 ± 173.6
56.6 ± 53.7
99.2 ± 131.0
65.6 ± 60.2
74.4 ± 83.7
64.2 ± 30.4
4
230.8 ± 190.0
66.2 ± 55.8
252.6 ± 194.0
77.9 ± 60.4
140.9 ± 138.5
84.9 ± 65.1
151.2 ± 210.3
104.4 ± 95.3
Table 5: Statistical results on verification time for overlapping local perturbations (seconds).
c %
α=1.0
α=0.5
α=0.2
α=0.1
testing
ours
baseline
testing
ours
baseline
testing
ours
baseline
testing
ours
baseline
0.05
100.0% (200/200)
99.5% (199/200)
55.5% (111/200)
100.0% (198/198)
100.0% (198/198)
0.0% (0/198)
100.0% (190/190)
75.3% (143/190)
0.0% (0/190)
94.8% (92/97)
11.3% (11/97)
0.0% (0/97)
0.5
100.0% (200/200)
99.5% (199/200)
55.0% (110/200)
100.0% (198/198)
100.0% (198/198)
0.0% (0/198)
99.5% (189/190)
72.1% (137/190)
0.0% (0/190)
91.8% (89/97)
10.3% (10/97)
0.0% (0/97)
1
100.0% (200/200)
99.5% (199/200)
54.0% (108/200)
100.0% (198/198)
100.0% (198/198)
0.0% (0/198)
98.4% (187/190)
64.7% (123/190)
0.0% (0/190)
84.5% (82/97)
8.2% (8/97)
0.0% (0/97)
Table 6: Statistical results on verified rate for contrast.
c %
α=1.0
α=0.5
α=0.2
α=0.1
ours
baseline
ours
baseline
ours
baseline
ours
baseline
0.05
19.0 ± 2.8
16.1 ± 3.4
19.4 ± 2.7
123.3 ± 9.6
20.1 ± 3.6
29.1 ± 3.7
23.9 ± 3.5
34.7 ± 3.2
0.5
22.9 ± 2.9
19.3 ± 3.4
23.3 ± 2.9
26.9 ± 9.3
24.1 ± 3.7
33.0 ± 3.8
28.0 ± 3.4
38.9 ± 3.0
1
48.1 ± 9.4
45.0 ± 10.3
49.0 ± 9.7
53.3 ± 16.0
49.7 ± 9.8
58.9 ± 9.9
54.9 ± 9.8
65.6 ± 8.8
Table 7: Statistical results on verification time for contrast (seconds).
b
α=1.0
α=0.5
α=0.2
α=0.1
testing
ours
baseline
testing
ours
baseline
testing
ours
baseline
testing
ours
baseline
1
100.0% (200/200)
99.5% (199/200)
55.5% (111/200)
100.0% (198/198)
100.0% (198/198)
0.0% (0/198)
100.0% (190/190)
72.1% (137/190)
0.0% (0/190)
93.8% (91/97)
10.3% (10/97)
0.0% (0/97)
2
100.0% (200/200)
99.0% (198/200)
54.5% (109/200)
100.0% (198/198)
100.0% (198/198)
0.0% (0/198)
100.0% (190/190)
63.7% (121/190)
0.0% (0/190)
88.6% (86/97)
7.2% (7/97)
0.0% (0/97)
Table 8: Statistical results on verified rate for brightness.
b
α=1.0
α=0.5
α=0.2
α=0.1
ours
baseline
ours
baseline
ours
baseline
ours
baseline
1
33.4 ± 5.5
29.0 ± 5.6
33.9 ± 5.5
35.2 ± 9.8
34.3 ± 5.9
43.4 ± 6.4
39.6 ± 11.9
48.9 ± 5.4
2
65.6 ± 13.4
58.3 ± 11.2
67.6 ± 16.9
65.0 ± 15.1
66.2 ± 13.3
75.8 ± 11.6
72.1 ± 12.8
77.9 ± 11.0
Table 9: Statistical results on verification time for brightness (seconds).
Appendix figures & tables2 assets
Supplementary material from the paper’s appendix.
Appendix
Figure 3: (a) Ground-truth keypoints are shown in green. (b) Deviations from the ground-truth keypoints are illustrated in both the vertical (first element) and horizontal (second element) directions. (c) Decoupled keypoint errors as determined by the method in the baseline ( Luo et al., 2025 ) . (d) Eight scenarios of coupled keypoint errors are evaluated using our approach, where the error of the first keypoint is fixed and the feasible error combinations for the second keypoint are enumerated. For example, the top-left case shows the feasible δh2 and δw2 values when δh1=δw1=−1 . The bottom-right case illustrates cases where keypoint errors fall outside the polytope. Specifically, when the first keypoint deviates from the ground truth by 1 pixel in both directions, no feasible solution exists, even if the second keypoint aligns perfectly with the ground truth. Note that (c) and (d) are best interpreted with reference to (b) to evaluate satisfaction of the constraints in ( 10 ).
Figure 4: In the first scenario (a)-(c), the MILP is infeasible. Conversely, in the second scenario (d)-(f), the MILP is feasible, resulting in the identification of a counterexample.