はじめに
TECH BLOG Advent Calendar 2025 Day 14 の記事です。
R&D の奥村です。私が 2016 年から深層学習ベースの画像解析をはじめてからはや幾星霜ですが、2025 年は特に VLM (Vision Language Model) の進展を強く感じた一年でした。画像をテキストとして解釈できるだけでなく、以前はタスク特化型モデルでしか実現できなかった物体検出やセグメンテーションが Qwen2.5-VL / Gemini 2.5 / Gemini 3.0 Pro Preview / Qwen3-VL などで可能になりつつあります。本記事ではその一部を紹介します。
モデル
Qwen2.5-VL
まず 2025 年 1 月 に Qwen2.5-VL が登場しました。
当時は以下のように uv を使って実行していました。
$ uv run \
--with 'numpy<2' \
--with 'git+https://github.com/huggingface/transformers' \
--with mlx-vlm \
python -m mlx_vlm.generate \
--model mlx-community/Qwen2.5-VL-3B-Instruct-8bit \
--max-tokens 500 \
--temp 0.0 \
--prompt "Describe this image." \
--image image.png
プロンプトを以下のように指定すると、画像に含まれるテキストをバウンディングボックスつきで検出し、JSON 形式で出力するという OCR 的なことができます。
Detect all text in the image and return their locations in the form of coordinates. The format of output should be like {"bbox_2d": [x1, y1, x2, y2], "text": "Inc."}.
出力は以下のようになります。当時試した結果では、座標はピクセル単位で、プロンプトで指定した通り [left, top, right, bottom] の並びになっていました。
[ {"bbox_2d": [61, 58, 955, 642], "text": "UPGRADE!"}, {"bbox_2d": [155, 138, 213, 155], "text": "SUSHI"}, ... ]
パラメータ数 3B や 7B の軽量版なら M2 MacBook Air でも実行でき、日本語も得意で衝撃を受けました1。当時はまだ Ollama で実行できませんでしたが、今は対応済みのようですね。
Gemini 2.5 Pro / Flash
2025 年 3 月に Gemini 2.5 Pro が、 2025 年 4 月に Gemini 2.5 Flash がそれぞれプレビューで登場しました。
Gemini 1.5 時代から、バウンディングボックスを出力することができたようです。座標系は 0 ~ 1000 の値にスケールされるようですが、Gemini 2.5 では新たにインスタンスセグメンテーションができるようになりました。
オプティムでは昔から Mask R-CNN などでトマトやいちごをセグメンテーションしてきましたが、それが一発でできるとは・・・と衝撃を受けました。
Qwen3-VL
2025 年 9 月には Qwen3-VL が登場しました。
私が試した限りでは、上で触れたモデルよりも小さい物体の検出能力に優れているようでした。
セグメンテーションには対応していないようでした。
GitHub レポジトリにさまざまなクックブックが公開されていて、参考になります。
- OCR: https://github.com/QwenLM/Qwen3-VL/blob/main/cookbooks/ocr.ipynb
- ドキュメント解析: https://github.com/QwenLM/Qwen3-VL/blob/main/cookbooks/document_parsing.ipynb
- 3D 物体検出: https://github.com/QwenLM/Qwen3-VL/blob/main/cookbooks/3d_grounding.ipynb
- 動画理解: https://github.com/QwenLM/Qwen3-VL/blob/main/cookbooks/video_understanding.ipynb
Gemini 3.0 Pro Preview
2025 年 11 月には Gemini 3.0 Pro Preview が登場しました。
私が試した限りでは、物体検出の座標精度が上がっているようでした。
残念ながらセグメンテーション能力はないようですが、正式版ではどうなるか楽しみですね。
その他
他にも GPT-5 などでも同様なプロンプトで物体検出ができました。
先日発表されたばかりの GPT-5.2 では、物体検出能力が強化されたようですね。
GLM-4.6V も画像に強くなったようです。
まとめ
各モデルの能力を雑にまとめると以下のとおりです。
| モデル | 物体検出 | セグメンテーション | OCR | 動画理解 | 3D理解 |
|---|---|---|---|---|---|
| Qwen2.5-VL | ✅ | ✅ | ✅ | ||
| Gemini 2.5 Pro/Flash | ✅ | ✅ | ✅ | ✅ | |
| Qwen3-VL | ✅ | ✅ | ✅ | ✅ | |
| Gemini 3.0 Pro Preview | ✅ | ✅ | ✅ | ❓️ | |
| GLM-4.6V | ✅ | ✅ | ✅ |
さまざまな画像認識タスクができつつある一方、特化型モデルに比べると精度・速度で劣ることが多いと思います。これまで色々な物体検出モデルを触ってきましたが、プロンプトで検出対象を自由に指定できるのは VLM ならではの強さなので、状況に応じてどちらも上手く活用できるとよいと思います。
直近一ヶ月は GPT-5.1-Codex-Max、Gemini 3 Pro、Nano Banana Pro、DeepSeek V3.2、Mistral 3、Amazon Nova 2、GLM-4.6V、Devstral 2、Qwen3-Omni-Flash-2025-12-01、GPT-5.2 と非常に数多くのモデルがリリースされたり、React2Shell などの脆弱性対応でバタバタしていましたが、みなさんいかがお過ごしでしたか?やることをやりきってよい年末年始を過ごせるようにしたいですね。
オプティムでは、こうした技術に興味がある・作ってみたい、というエンジニアを募集しています。興味のある方は、こちらをご覧ください。
- これより前にも Microsoft の Florence-2 というモデルで物体検出が可能でしたが、日本語に対応していないなどの課題がありました。↩