Enhancing Geometric Perception in VLMs via Translator-Guided Reinforcement Learning
Organizations: Tsinghua University · Guangdong Laboratory of Artificial Intelligence and Digital Economy (SZ)
Abstract
Vision-language models (VLMs) often struggle with geometric reasoning due to their limited perception of fundamental diagram elements. To tackle this challenge, we introduce GeoPerceive, a benchmark comprising diagram instances paired with domain-specific language (DSL) representations, along with an efficient automatic data generation pipeline. This design enables the isolated evaluation of geometric perception independently from reasoning. To exploit the data provided by GeoPerceive for enhancing the geometric perception capabilities of VLMs, we propose GeoDPO, a translator-guided reinforcement learning (RL) framework. GeoDPO employs an NL-to-DSL translator, which is trained on synthetic pairs generated by the data engine of GeoPerceive, to bridge natural language and DSL. This translator facilitates the computation of fine-grained, DSL-level scores, which serve as reward signals in reinforcement learning. We assess GeoDPO on both in-domain and out-of-domain datasets, spanning tasks in geometric perception as well as downstream reasoning. Experimental results demonstrate that, while supervised fine-tuning (SFT) offers only marginal improvements and may even impair performance in out-of-domain scenarios, GeoDPO achieves substantial gains: on in-domain data, on out-of-domain data, and on downstream reasoning tasks. These findings underscore the superior performance and generalization ability of GeoDPO over SFT. All codes are released at https://github.com/Longin-Yu/GeoPerceive to ensure reproducibility.
Figures & tables
| Diagram | Model | Caption |
| GPT-o3 ( Achiam et al., 2023 ) | The diagram shows two intersecting circles , … , an external point lies still farther to the right, … red chords and , … | |
| Qwen3-235B ( Team, 2025 ) | The diagram consists of two overlapping circles . The larger circle has a center labeled as , and the smaller circle is tangent to the larger circle … | |
| GeoDPO (Ours) | The diagram depicts … and two circles, the larger centered at , intersecting the smaller at point and . The smaller circle passes through and , … |
| Iter | Validity | Overall Score | Points | Lines | Circles | Constraints | ||||||||
| P | R | F1 | P | R | F1 | P | R | F1 | P | R | F1 | |||
| 1 | 100.0 | 94.2 | 97.9 | 97.9 | 97.8 | 98.0 | 98.0 | 98.0 | 84.7 | 85.8 | 85.1 | 95.7 | 96.3 | 95.9 |
| 2 | 100.0 | 90.8 | 97.9 | 97.6 | 97.7 | 97.4 | 97.4 | 97.4 | 74.9 | 74.7 | 74.6 | 94.2 | 93.4 | 93.7 |
| 3 | 100.0 | 87.4 | 95.2 | 94.2 | 94.7 | 93.4 | 93.4 | 93.3 | 71.9 | 71.7 | 71.7 | 90.8 | 89.4 | 89.8 |
| 4 | 100.0 | 87.0 | 96.8 | 96.4 | 96.6 | 94.0 | 93.9 | 93.8 | 67.5 | 67.5 | 67.4 | 91.1 | 89.6 | 90.2 |
| 5 | 100.0 | 83.2 | 94.0 | 92.9 | 93.4 | 92.3 | 90.7 | 91.4 | 67.6 | 65.8 | 65.9 | 84.9 | 80.7 | 82.1 |
| Model | Method | Overall Score | Points | Lines | Circles | Constraints | ||||||||
| P | R | F1 | P | R | F1 | P | R | F1 | P | R | F1 | |||
| Qwen2.5-VL (7B) | Raw | 57.96 | 84.58 | 75.19 | 79.07 | 64.15 | 49.73 | 53.95 | 45.16 | 44.82 | 44.63 | 54.30 | 54.12 | 54.18 |
| w/ SFT | 64.02 (+10.46%) | 83.81 (-0.91%) | 82.18 (+9.3%) | 82.21 (+3.97%) | 64.49 (+0.53%) | 55.74 (+12.09%) | 58.02 (+7.54%) | 58.07 (+28.59%) | 57.61 (+28.54%) | 57.56 (+28.97%) | 58.05 (+6.91%) | 58.76 (+8.57%) | 58.29 (+7.59%) | |
| w/ GeoDPO | 66.19 (+14.2%) | 93.97 (+11.1%) | 85.96 (+14.32%) | 89.26 (+12.89%) | 68.82 (+7.28%) | 60.65 (+21.96%) | 62.3 (+15.48%) | 49.38 (+9.34%) | 48.54 (+8.3%) | 48.7 (+9.12%) | 64.5 (+18.78%) | 64.5 (+19.18%) | 64.5 (+19.05%) | |
| InternVL3 (8B) | Raw | 58.44 | 82.07 | 76.09 | 78.59 | 60.52 | 53.47 | 54.61 | 48.70 | 48.02 | 48.16 | 52.43 | 52.37 | 52.40 |
| w/ SFT | 62.71 (+7.31%) | 85.96 (+4.74%) | 85.35 (+12.17%) | 84.68 (+7.75%) | 62.28 (+2.91%) | 60.12 (+12.44%) | 58.8 (+7.67%) | 58.6 (+20.33%) | 58.83 (+22.51%) | 58.28 (+21.01%) | 49.12 (-6.31%) | 49.16 (-6.13%) | 49.09 (-6.32%) | |
| Model | Method | Overall Score | Points | Lines | Circles | Constraints | ||||||||
| P | R | F1 | P | R | F1 | P | R | F1 | P | R | F1 | |||
| Qwen2.5-VL (7B) | Raw | 58.14 | 80.42 | 75.11 | 77.67 | 67.53 | 49.74 | 57.29 | 43.82 | 44.63 | 44.22 | 57.26 | 49.95 | 53.36 |
| w/ SFT | 58.41 (+0.46%) | 80.63 (+0.26%) | 74.15 (-1.28%) | 77.25 (-0.54%) | 67.53 (0.0%) | 50.37 (+1.27%) | 57.7 (+0.72%) | 46.17 (+5.36%) | 45.66 (+2.31%) | 45.92 (+3.84%) | 56.5 (-1.33%) | 49.52 (-0.86%) | 52.78 (-1.09%) | |
| w/ GeoDPO | 60.28 (+3.68%) | 81.89 (+1.83%) | 79.98 (+6.48%) | 80.92 (+4.18%) | 68.19 (+0.98%) | 52.84 (+6.23%) | 59.54 (+3.93%) | 44.42 (+1.37%) | 45.69 (+2.38%) | 45.05 (+1.88%) | 60.49 (+5.64%) | 51.44 (+2.98%) | 55.6 (+4.2%) | |
| InternVL3 (8B) | Raw | 58.74 | 76.06 | 76.90 | 76.48 | 63.92 | 51.04 | 56.76 | 51.69 | 50.48 | 51.08 | 49.21 | 52.14 | 50.64 |
| w/ SFT | 58.57 (-0.29%) | 76.41 (+0.46%) | 77.73 (+1.08%) | 77.06 (+0.76%) | 63.52 (-0.63%) | 51.43 (+0.76%) | 56.84 (+0.14%) | 49.84 (-3.58%) | 48.22 (-4.48%) | 49.02 (-4.03%) | 49.97 (+1.54%) | 52.85 (+1.36%) | 51.37 (+1.44%) | |
| Method | Models | ||
| Qwen2.5-VL | InternVL3 | LLaVA-Next | |
| Raw | 30.05 | 29.06 | 26.11 |
| w/ SFT | 32.02 | 30.05 | 29.06 |
| w/ GeoDPO | 40.39 | 40.39 | 33.50 |
Appendix figures & tables10 assets
Supplementary material from the paper’s appendix.
Appendix
| Predicate | Parameters | Example |
| Point | label: str | null | Point("A") , Point(null) |
| Line | through: list<Point> | Line([Point("A"), Point("B")]) |
| Circle | center: Point | null through: list<Point> | Circle(Point("O"), [Point("A")]) |
| Predicate | Operator | Parameters | Description |
| ConstraintParallel | line1: Line line2: Line | Constrain line1 to be parallel to line2 . | |
| ConstraintPerpendicular | line1: Line line2: Line | Constrain line1 to be perpendicular to line2 . | |
| ConstraintLineCircleTangent | line: Line circle: Circle | Constrain line to be tangent to circle . | |
| ConstraintCircleCircleTangent | circle1: Circle circle2: Circle | Constrain circle1 to be tangent to circle2 . | |
| ConstraintEqual | Eq | dist1: Tuple<Point, Point> dist2: Tuple<Point, Point> | Constrain dist1 and dist2 to have equal length. |
| Generation Iterations | Translator Split | Main Split | ||||||||
| 1 | 2 | 3 | 4 | 5 | 1 | 2 | 3 | 4 | 5 | |
| # Train | 3920 | 2548 | 1960 | 882 | 490 | 1524 | 1485 | 1333 | 1203 | 1034 |
| # Test | 80 | 52 | 40 | 18 | 10 | 47 | 38 | 44 | 38 | 33 |
| # Total | 4000 | 2600 | 2000 | 900 | 500 | 1571 | 1523 | 1377 | 1241 | 1067 |
| Solving SR (%) | – | – | – | – | – | 78.5 | 76.2 | 68.8 | 62.0 | 53.4 |
| Benchmark | Domain | Evaluation Granularity | Automation | #Samples |
| Geometry3K ( Lu et al., 2021 ) | Reasoning | Binary Answers | ✗ | 3,002 |
| UniGeo ( Chen et al., 2022 ) | Reasoning | Binary Answers | ✗ | 9,543 |
| MathVista ( Lu et al., 2023 ) | Reasoning | Binary Answers | ✗ | 6,164 |
| GeoQA ( Chen et al., 2021 ) | Reasoning | Binary Answers | ✗ | 4,998 |
| GeoPerceive (Ours) | Perception | Primitives + Constraints | ✓ |
| Method | Overall | Points | Lines | Circles | Constraints | ||||||||
| P | R | F1 | P | R | F1 | P | R | F1 | P | R | F1 | ||
| Pretrained | 57.96 | 84.58 | 75.19 | 79.07 | 64.15 | 49.73 | 53.95 | 45.16 | 44.82 | 44.63 | 54.30 | 54.12 | 54.18 |
| w/ SFT | 64.02 | 83.81 | 82.18 | 82.21 | 64.49 | 55.74 | 58.02 | 58.07 | 57.61 | 57.56 | 58.05 | 58.76 | 58.29 |
| w/ GeoDPO | 66.19 | 93.97 | 85.96 | 89.26 | 68.82 | 60.65 | 62.30 | 49.38 | 48.54 | 48.70 | 64.50 | 64.50 | 64.50 |
| w/ GeoPPO | 65.54 | 91.13 | 86.18 | 87.89 | 69.05 | 59.81 | 61.58 | 56.51 | 55.70 | 55.66 | 57.12 | 56.98 | 57.04 |
| Training Samples | Validity | Overall | Points | Lines | Circles | Constraints | ||||||||
| P | R | F1 | P | R | F1 | P | R | F1 | P | R | F1 | |||
| 9800 (in practice) | 100.0 | 89.2 | 96.4 | 95.9 | 96.1 | 95.4 | 95.0 | 95.2 | 75.0 | 74.8 | 74.6 | 91.7 | 90.4 | 90.8 |
| 7500 | 99.5 | 89.1 | 94.9 | 94.7 | 94.8 | 94.3 | 94.2 | 94.2 | 76.7 | 75.9 | 76.2 | 91.9 | 91.0 | 91.3 |
| 5000 | 97.5 | 82.3 | 94.5 | 86.8 | 93.7 | 91.7 | 91.6 | 90.1 | 73.9 | 73.1 | 60.4 | 71.6 | 70.3 | 85.0 |
| 2500 | 95.5 | 73.8 | 92.9 | 80.4 | 93.7 | 90.5 | 83.2 | 84.6 | 66.0 | 65.6 | 56.7 | 57.5 | 57.3 | 60.3 |
| Method | Training Samples of Translator | Overall | Points | Lines | Circles | Constraints | ||||||||
| P | R | F1 | P | R | F1 | P | R | F1 | P | R | F1 | |||
| Pretrained | N/A | 57.96 | 84.58 | 75.19 | 79.07 | 64.15 | 49.73 | 53.95 | 45.16 | 44.82 | 44.63 | 54.30 | 54.12 | 54.18 |
| w/ GeoDPO | 9800 (ours) | 66.19 | 93.97 | 85.96 | 89.26 | 68.82 | 60.65 | 62.30 | 49.38 | 48.54 | 48.70 | 64.50 | 64.50 | 64.50 |
| w/ GeoDPO | 7500 | 66.27 | 93.08 | 84.48 | 86.61 | 62.39 | 60.01 | 61.35 | 58.71 | 56.77 | 57.67 | 60.15 | 58.94 | 59.45 |
| w/ GeoDPO | 5000 | 65.48 | 88.70 | 82.01 | 84.53 | 63.12 | 59.42 | 61.04 | 56.98 | 56.17 | 56.29 | 60.08 | 60.08 | 60.08 |
| w/ GeoDPO | 2500 | 63.95 | 85.32 | 79.68 | 82.09 | 61.89 | 56.21 | 59.23 | 57.22 | 54.42 | 56.87 | 58.73 | 55.99 | 57.61 |
RL for VLMs
Reinforcement learning for vision-language models aligns multimodal reasoning, tool use, and action with task-specific feedback.
See all 472 papers