大语言模型也可以进行图像分割:使用Gemini实现工业异物检测完整代码示例

Gemini模型在大语言模型市场中展现出独特的优势,特别是在计算机视觉领域具有显著的技术潜力。与其他主流大语言模型相比,Gemini在目标检测和图像分割方面具备原生支持能力。较大规模的Gemini模型经过专门训练,能够直接输出边界框坐标和分割掩码,这一特性在当前的大语言模型生态中较为罕见。虽然Qwen-VL和Moondream等模型也具备类似功能,但从性能表现来看,Gemini Pro系列在图像分割任务中具有明显优势。本文将通过一个实际应用场景——工业传送带异物检测,详细介绍如何利用Gemini的图像分割能力构建完整的解决方案。

Gemini图像分割功能机制

Gemini模型具备对图像中目标对象进行精确分割的能力,可同时输出分割掩码和边界框信息。实现这一功能的关键在于构造合适的提示(prompt)。

以下是标准的提示格式:

  1. query="Detect ..."
  2. prompt=f"{query}. Output a JSON list of segmentation masks where each entry contains the 2D bounding box in the key \"box_2d\", the segmentation mask in key \"mask\", and the text label in the key \"label\". Use descriptive labels."

该提示指导模型返回JSON格式的检测结果,其中

  1. mask

字段包含经过base64编码的PNG图像数据,精确描述了识别对象的像素级区域信息:

  1. [
  2. {
  3. "box_2d": [120, 514, 600, 998],
  4. "mask": "data:image/png;base64,iVBORw0KGgoAAA...",
  5. "label": "my label",
  6. },
  7. {
  8. "box_2d": [220, 29, 609, 320],
  9. "mask": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAAAAAB5Gfe6AAAAsElEQVR42....",
  10. "label": "my other label",
  11. },
  12. ...
  13. ]

项目环境搭建

为了实现完整的图像分割应用,需要建立规范的项目结构。创建名为

  1. gemini_segmentation_project

的项目目录,其组织结构如下:

  1. gemini_segmentation_project/
  2. ├── .env
  3. ├── main.py
  4. ├── image.png
  5. └── requirements.txt

首先配置环境变量文件

  1. .env

,用于安全存储API密钥信息:

  1. #.env
  2. GEMINI_API_KEY="YOUR_GEMINI_API_KEY_HERE"

项目需要一张测试图像,本示例假设使用包含多个物品的传送带图像,将其保存为

  1. image.png

并放置在项目根目录下。

建议为项目创建独立的Python虚拟环境,以确保依赖包管理的隔离性和项目的可重现性。

 

https://avoid.overfit.cn/post/686368d5afc44b4397c299f1ef97319a

posted @ 2025-07-03 13:11  deephub  阅读(5)  评论(0)    收藏  举报