SurgQ-VLM: Question-Conditioned Dual-Stream Compression and Answer-Type-Aware Reinforcement for Surgical Video Question Answering
Organizations: Centific Global Solutions
Abstract
Reasoning about surgical video -- which phase is underway, which instruments act, and when events occur -- underpins operative documentation, workflow analysis, and skill assessment. Yet surgical visual question answering is still largely built on single frames and closed labels that cannot express a duration, an ordering, or a count, and the video models that lift the frame limit typically compress every clip the same way regardless of the question, discarding the temporal evidence the answer needs. Worse, the answers are structurally heterogeneous, spanning five incompatible structures -- binary, classification, multi-label, counting, and sentence-temporal -- that no single training signal scores uniformly well. We propose SurgQ-VLM, a two-stage model for surgical video question answering. Stage 1 trains a question-conditioned dual-stream (slow/fast) compressor for a LoRA-adapted Qwen2.5-VL-7B: cross-attention conditions both streams on the question, and each clip's visual tokens shrink 49x from the raw ViT patches (11x vs. post-merge backbone tokens). Stage 2 post-trains with GRPO under an answer-type-aware reward that scores each question on the metric matching its answer structure (micro-F1 for label sets, normalised error for counts, a content-timing blend for temporal windows). On a sealed 21,840-question test split over Cholec80 and CholecT50, SurgQ-VLM reaches 0.779 keyword accuracy and a 10x BLEU-4 gain over zero-shot; GRPO adds 2.5 pp K-Acc (2.0 pp attributable to the answer-type-aware reward), concentrated in the structurally hard types, with answer format unchanged (ROUGE-L). Code is available at https://github.com/DhruvMakwana/SurgQ-VLM.
Figures & tables
| Answer structure | Q-types | Test QA | Metric |
|---|---|---|---|
| Binary | Q02, Q06, Q07, Q13, Q17 | 7,120 | Bin. accuracy |
| Classification | Q01, Q10, Q14, Q15 | 3,522 | K-Acc |
| Multi-label | Q05, Q11 | 2,446 | Micro-F1 |
| Counting | Q12 | 542 | Exact-match |
| S-temporal | Q03, Q04, Q08, Q09, Q16, Q18 | 8,210 | K-Acc, T-Acc ±2 |
| Total | Q01–Q18 (18 types) | 21,840 | — |
| Method | Backbone | Type | #Fr. | #Tok. | K-Acc | Primary | BLEU-4 | ROUGE-L | METEOR | CIDEr | T-Acc ±2 |
| Zero-shot | |||||||||||
| Qwen2.5-VL (backbone) | 7B | ZS | 45 | 7,605 | 0.220 | 0.293 | 0.057 | 0.255 | 0.193 | 0.260 | 0.510 |
| uAI-NEXUS MedVLM [ 34 ] | 7B | ZS | 8 | 1,352 | 0.398 | 0.376 | 0.038 | 0.214 | 0.183 | 0.125 | 0.338 |
| Fine-tuned on our SFT split | |||||||||||
| LLaVA-OneVision-7B [ 15 ] | Qwen2 | +LoRA | 8 | 1,568 | 0.653 | 0.621 | 0.481 | 0.759 | 0.703 | n/a | n/a |
| SurgVidLM [ 37 ] | Qwen2-VL | +LoRA | 30 | 540 | 0.740 | 0.710 | 0.554 | 0.751 | 0.710 | n/a | n/a |
| Answer structure | Metric | SFT | GRPO | |
| Binary † | B-Acc | 0.727 | 0.727 | |
| Classification | K-Acc | 0.818 | 0.818 | |
| Multi-label | F1 | 0.766 | 0.778 | 0.012 |
| Counting | Exact | 0.328 | 0.354 | 0.026 |
| Sent.-temporal | K-Acc | 0.690 | 0.741 | 0.051 |
| Primary (wtd. avg.) | — | 0.722 | 0.743 | 0.021 |
| Variant | Removed | K-Acc | Binary | Classif. | Multi-lbl | Count | S-Temp | ROUGE-L |
|---|---|---|---|---|---|---|---|---|
| Full SurgQ-VLM (SFT+GRPO) | — | 0.779 | 0.799 | 0.818 | 0.820 | 0.645 | 0.741 | 0.803 |
| Reward design | ||||||||
| Answer-type dispatch ( uniform) | per-structure reward | 0.759 | 0.799 | 0.819 | 0.784 | 0.627 | 0.699 | 0.803 |
| Architecture | ||||||||
| Compressor (backbone-only) | dual-stream compressor | 0.746 | 0.785 | 0.808 | 0.742 | 0.611 | 0.656 | 0.707 |
| Question conditioning | GuideInjectors | 0.673 | 0.756 | 0.793 | 0.755 | 0.576 | 0.529 | 0.733 |
| Question group | Q | Slow | Fast | Global |
|---|---|---|---|---|
| Phase | Q03 | |||
| Instrument | Q07 | |||
| Triplet/action | Q12 | |||
| Binary action | Q13 | |||
| Temporal | Q16 |
Appendix figures & tables10 assets
Supplementary material from the paper’s appendix.
Appendix
| Q | Name | Group | Answer struct. | Annotation source | Temporal | Coverage |
|---|---|---|---|---|---|---|
| Q01 | Current phase | Phase | Classification | phase majority vote | No | Both |
| Q02 | Phase change | Phase | Binary | phase change flag | No | Both |
| Q03 | Phase transition time | Phase | Sent.-temporal | phase segment boundary second | Yes | Both |
| Q04 | Phase sequence | Phase | Sent.-temporal | phase segments, ordered | Yes | Both |
| Q05 | Active instrument list | Instrument | Multi-label | instrument union across clip | No | Both |
| Q06 | Instrument presence | Instrument | Binary | per-instrument membership | No | Both |
| Group | Q | Example question | Ground-truth answer |
|---|---|---|---|
| Phase | Q01 | Which phase of the cholecystectomy procedure is shown here? | The clip primarily shows calot triangle dissection. |
| Q02 | Does the surgical phase change at any point during this clip? | No, the surgical phase remains constant throughout this clip. | |
| Q03 | How many seconds into the clip does the surgical phase change? | The phase changes from gallbladder packaging to cleaning coagulation at second 18 of the clip. | |
| Q04 | Which phases appear in this clip and in what order? | gallbladder packaging from second 0 to second 17, then cleaning coagulation from second 18 to the end of the clip. | |
| Instrument | Q05 | What instruments are active at any point in this clip? | hook, grasper |
| Q06 | Is the grasper used at any point in this clip? | Yes, the grasper is used in this clip. |
| Q | Name (group) | SFT | GRPO | (pp) |
|---|---|---|---|---|
| Q01 | Current phase (cls) | 0.8163 | 0.8186 | |
| Q02 | Phase change (bin) | 0.6694 | 0.6612 | |
| Q03 | Phase transition time (s-tmp) | 0.8793 | 0.8793 | |
| Q04 | Phase sequence (s-tmp) | 0.9253 | 0.9253 | |
| Q05 | Active instrument list (mul) | 0.7738 | 0.7896 | |
| Q06 | Instrument presence (bin) | 0.8623 | 0.8623 |
| Variant | K-Acc | Binary | Classif. | Multi-lbl | Counting | S-Temp |
|---|---|---|---|---|---|---|
| Full | 0.779 | 0.799 | 0.818 | 0.820 | 0.645 | 0.741 |
| only (strip , , ) | 0.760 | 0.799 | 0.820 | 0.788 | 0.630 | 0.700 |
| (strip , ) | 0.761 | 0.799 | 0.820 | 0.786 | 0.633 | 0.703 |
| (strip , ) | 0.760 | 0.799 | 0.819 | 0.788 | 0.629 | 0.701 |
| No length penalty ( ) | 0.760 | 0.798 | 0.820 | 0.787 | 0.636 | 0.701 |
| No Q-type IFW in reward (uniform weighting) | 0.765 | 0.799 | 0.820 | 0.794 | 0.628 | 0.712 |
| Q | Full | slow | fast | global | slow | fast | global |
|---|---|---|---|---|---|---|---|
| Q01 | 0.8201 | 0.8199 | 0.7932 | 0.8194 | |||
| Q02 | 0.6694 | 0.6557 | 0.5082 | 0.6585 | |||
| Q03 | 0.7680 | 0.7706 | 0.5485 | 0.7611 | |||
| Q04 | 0.8285 | 0.8293 | 0.7350 | 0.8289 | |||
| Q05 | 0.8276 | 0.8236 | 0.8201 | 0.8275 | |||
| Q06 | 1.0000 | 1.0000 | 1.0000 | 1.0000 |
| Model | s | s | s |
|---|---|---|---|
| 7B SFT | 0.860 | 0.874 | 0.884 |
| 7B + GRPO | 0.876 | 0.888 | 0.899 |
| Metric | Dispatch (ours) | per-group norm. |
| K-Acc | 0.779 | 0.779 |
| Primary | 0.743 | 0.743 |
| ROUGE-L | 0.803 | 0.811 |
| Per-group K-Acc (norm. dispatch) | ||
| Binary | — | |
| Classification | — | |