Added Qwen3-VL support in sv.Detections.from_vlm and legacy from_lmm mapping. Use vlm=sv.QWEN_3_VL. (#2015)
import supervision as sv
response = """```json
[
{"bbox_2d": [220, 102, 341, 206], "label": "taxi"},
{"bbox_2d": [30, 606, 171, 743], "label": "taxi"},
{"bbox_2d": [192, 451, 318, 581], "label": "taxi"},
{"bbox_2d": [358, 908, 506, 1000], "label": "taxi"},
{"bbox_2d": [735, 359, 873, 480], "label": "taxi"},
{"bbox_2d": [758, 508, 885, 617], "label": "taxi"},
{"bbox_2d": [857, 263, 988, 374], "label": "taxi"},
{"bbox_2d": [735, 243, 838, 351], "label": "taxi"},
{"bbox_2d": [303, 291, 434, 417], "label": "taxi"},
{"bbox_2d": [426, 273, 552, 382], "label": "taxi"}
]
```"""
detections = sv.Detections.from_vlm(
vlm=sv.VLM.QWEN_3_VL,
result=response,
resolution_wh=(1023, 682)
)
detections.xyxy
# array([[ 225.06 , 69.564, 348.843, 140.492],
# [ 30.69 , 413.292, 174.933, 506.726],
# [ 196.416, 307.582, 325.314, 396.242],
# [ 366.234, 619.256, 517.638, 682. ],
# [ 751.905, 244.838, 893.079, 327.36 ],
# [ 775.434, 346.456, 905.355, 420.794],
# [ 876.711, 179.366, 1010.724, 255.068],
# [ 751.905, 165.726, 857.274, 239.382],
# [ 309.969, 198.462, 443.982, 284.394],
# [ 435.798, 186.186, 564.696, 260.524]])