BCNet

GitHub
570 78 较难 1 次阅读 4天前MIT图像
AI 解读 由 AI 自动生成,仅供参考

BCNet 是一款专注于实例分割的深度学习模型,特别擅长处理物体相互遮挡的复杂场景。在传统的图像分割任务中,当多个物体重叠时,算法往往难以准确区分前景与背景,导致边缘识别模糊或错误。BCNet 通过引入创新的“双层解耦”机制,能够在同一个检测区域内显式地建模遮挡关系,将物体边界与掩码分离处理,从而精准还原被遮挡物体的完整轮廓。

该工具基于 Detectron2 框架开发,兼容 Faster R-CNN(两阶段)和 FCOS(无锚框一阶段)等主流检测器,并在 COCO 和 KINS 数据集上取得了领先的性能表现。其技术亮点在于利用图卷积网络(GCN)对遮挡者与被遮挡者进行分组处理,不仅显著提升了分割精度(mAP),还让模型的预测过程更具可解释性。此外,BCNet 在带来性能飞跃的同时,仅增加了极小的计算负担,部署和使用都非常简便。

BCNet 非常适合计算机视觉领域的研究人员、算法工程师以及需要高精度分割效果的开发者使用。无论是用于自动驾驶中的行人车辆识别、机器人抓取中的物体分析,还是学术研究中探索遮挡问题,BCNet 都是一个高效且可靠的选择。

使用场景

某自动驾驶感知团队正在开发城市复杂路口的行人检测系统,需精准识别被车辆或路灯部分遮挡的行人轮廓以规划安全路径。

没有 BCNet 时

  • 遮挡导致分割断裂:传统模型(如 Mask R-CNN)难以处理严重遮挡,常将被挡行人的掩码错误截断或与其他物体融合,导致目标丢失。
  • 边界模糊不清:在重叠区域,算法无法区分“遮挡者”与“被遮挡者”的边界,生成的轮廓锯齿严重,影响后续轨迹预测精度。
  • 多目标混淆:当多个行人紧密重叠在同一检测框内时,模型倾向于将其合并为一个大块,无法实例级分离。
  • 调试黑盒化:开发人员难以判断分割错误是源于检测框不准还是掩码生成逻辑缺陷,缺乏可解释性中间特征。

使用 BCNet 后

  • 显式建模遮挡关系:BCNet 通过独特的双层解耦设计,能在同一检测框内独立计算遮挡者和被遮挡者的边界,完整还原被遮行人的真实轮廓。
  • 像素级边缘锐利:利用图卷积网络(GCN)细化重叠区域,生成的掩码边缘平滑且贴合人体结构,显著提升了小目标和遮挡目标的 mAP。
  • 同框多实例分离:即使多个行人高度重叠,BCNet 也能通过分组机制将其正确拆分为独立个体,避免了目标合并漏检。
  • 可视化可解释性强:系统可直接输出物体轮廓与掩码的热力图,让工程师直观看到模型如何处理遮挡逻辑,大幅缩短调优周期。

BCNet 通过创新的遮挡感知机制,将复杂场景下的实例分割精度推向新高度,让自动驾驶系统在拥挤人群中看得更清、判得更准。

运行环境要求

操作系统
  • Linux
GPU

需要 NVIDIA GPU,CUDA 10.1 (基于安装命令 cudatoolkit=10.1),显存大小未说明(建议 8GB+ 以运行 ResNet-101 模型)

内存

未说明

依赖
notes该项目基于 detectron2 构建。安装时需先配置 COCO 数据集,并使用作者提供的转换后的掩码标注文件替换原始标注以进行双层解耦训练。代码包含自定义编译步骤(setup.py build develop),主要在 Linux 环境下测试。
python3.7
pytorch==1.4.0
torchvision==0.5.0
detectron2
opencv-python==4.4.0.40
ninja
yacs
cython
matplotlib
tqdm
scikit-image
BCNet hero image

快速开始

基于重叠双层结构的深度遮挡感知实例分割 [BCNet, CVPR 2021]

License: MIT PWC PWC

这是基于开源 detectron2 构建的 BCNet 的官方 PyTorch 实现。

基于重叠双层结构的深度遮挡感知实例分割
Lei Ke, Yu-Wing Tai, Chi-Keung Tang
CVPR 2021

亮点

  • BCNet: 具有最先进性能的两阶段/单阶段(先检测后分割)实例分割方法。
  • 新颖性: 一种新的掩码头部设计,通过 双层解耦(对象边界与掩码) 对同一 RoI 中的遮挡物和被遮挡物进行显式遮挡建模。
  • 有效性: 对 FCOS(无锚框)和 Faster R-CNN(基于锚框)检测器均有显著提升。
  • 简单性: 额外计算开销小,易于使用。

遮挡物体可视化

我们 BCNet 的定性实例分割结果,采用 ResNet-101-FPN 和 Faster R-CNN 检测器。底部一行展示了由两个 GCN 层对遮挡物和被遮挡物在红色边界框指定的 同一 ROI 区域 中的 物体轮廓和掩码预测 的平方热图,这也使得 BCNet 的最终分割结果比以往方法更具可解释性。第四列示例中 GCN-1 的热图可视化显示,BCNet 通过将同一 RoI 内的多个遮挡物分组来处理它们。更多可视化示例和对比请参阅我们的论文。

我们 BCNet 的定性实例分割结果,采用 ResNet-101-FPN 和 FCOS 检测器。

COCO test-dev 上的结果

(完整结果请参见论文表 8,所有方法均在 COCO train2017 上训练)

两阶段检测器 主干网络 方法 mAP(mask)
Faster R-CNN Res-R50-FPN Mask R-CNN (ICCV'17) 34.2
Faster R-CNN Res-R50-FPN PANet (CVPR'18) 36.6
Faster R-CNN Res-R50-FPN MS R-CNN (CVPR'19) 35.6
Faster R-CNN Res-R50-FPN PointRend (1x CVPR'20) 36.3
Faster R-CNN Res-R50-FPN BCNet (CVPR'21) 38.4
Faster R-CNN Res-R101-FPN Mask R-CNN (ICCV'17) 36.1
Faster R-CNN Res-R101-FPN MS R-CNN (CVPR'19) 38.3
Faster R-CNN Res-R101-FPN BMask R-CNN (ECCV'20) 37.7
无框 Res-R101-FPN SOLOv2 (NeurIPS'20) 39.7
Faster R-CNN Res-R101-FPN BCNet (CVPR'21) 39.8
单阶段检测器 主干网络 方法 mAP(mask)
FCOS Res-R101-FPN BlendMask (CVPR'20) 38.4
FCOS Res-R101-FPN CenterMask (CVPR'20) 38.3
FCOS Res-R101-FPN SipMask (ECCV'20) 37.8
FCOS Res-R101-FPN CondInst (ECCV'20) 39.1
FCOS Res-R101-FPN BCNet (CVPR'21) 39.6, 预训练模型, 提交文件
FCOS Res-X101 FPN BCNet (CVPR'21) 41.2

简介

对高度重叠的物体进行分割具有挑战性,因为通常无法区分真实的物体轮廓和遮挡边界。与以往的两阶段实例分割方法不同,BCNet 将图像形成建模为两个重叠图像层的组合,其中顶层 GCN 层检测遮挡物(occluder),底层 GCN 层推断部分遮挡的实例(occludee)。通过双层结构对遮挡关系的显式建模,自然地解耦了遮挡物和被遮挡物的边界,并在掩码回归过程中考虑了它们之间的相互作用。 我们在不同主干和网络层选择的一阶段和两阶段目标检测器上验证了双层解耦的有效性。BCNet 的网络架构如下:

掩码头部架构的简要比较,详细信息请参阅我们的论文。

逐步安装

conda create -n bcnet python=3.7 -y
source activate bcnet
 
conda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.1 -c pytorch
 
# FCOS 和 coco api 以及可视化依赖项
pip install ninja yacs cython matplotlib tqdm
pip install opencv-python==4.4.0.40
# 边界依赖项
pip install scikit-image
 
export INSTALL_DIR=$PWD
 
# 安装 pycocotools。请确保已安装 cython。
cd $INSTALL_DIR
git clone https://github.com/cocodataset/cocoapi.git
cd cocoapi/PythonAPI
python setup.py build_ext install
 
# 安装 BCNet
cd $INSTALL_DIR
git clone https://github.com/lkeab/BCNet.git
cd BCNet/
python3 setup.py build develop
 
unset INSTALL_DIR

数据集准备

按照 此说明 准备 coco2017 数据集。并使用我们转换后的掩码标注文件(google driveonedrive) 替换原始标注文件,以进行双层解耦训练。

  mkdir -p datasets/coco
  ln -s /path_to_coco_dataset/annotations datasets/coco/annotations
  ln -s /path_to_coco_dataset/train2017 datasets/coco/train2017
  ln -s /path_to_coco_dataset/test2017 datasets/coco/test2017
  ln -s /path_to_coco_dataset/val2017 datasets/coco/val2017

多GPU训练及在验证集上的评估

bash all.sh

或者

CUDA_VISIBLE_DEVICES=0,1 python3 tools/train_net.py --num-gpus 2 \
	--config-file configs/fcos/fcos_imprv_R_50_FPN.yaml 2>&1 | tee log/train_log.txt

预训练模型

FCOS版本下载:链接

  mkdir pretrained_models
  #并将下载的预训练模型放入该目录。

在Test-dev数据集上测试

export PYTHONPATH=$PYTHONPATH:`pwd`
CUDA_VISIBLE_DEVICES=0,1 python3 tools/train_net.py --num-gpus 2 \
	--config-file configs/fcos/fcos_imprv_R_101_FPN.yaml \
	--eval-only MODEL.WEIGHTS ./pretrained_models/xxx.pth 2>&1 | tee log/test_log.txt

可视化

bash visualize.sh

生成双层掩码标注的参考脚本:

bash process.sh

COCO-OCC划分:

COCO-OCC划分下载:链接,具体细节在论文中有所介绍。

引用

如果您在研究中使用了BCNet,或参考了提供的基线结果,请为本仓库点赞 :star:,并考虑引用 :pencil::

@inproceedings{ke2021bcnet,
    author = {Ke, Lei and Tai, Yu-Wing and Tang, Chi-Keung},
    title = {Deep Occlusion-Aware Instance Segmentation with Overlapping BiLayers},
    booktitle = {CVPR},
    year = {2021}
}  

相关高质量实例分割工作:

@inproceedings{transfiner,
    author={Ke, Lei and Danelljan, Martin and Li, Xia and Tai, Yu-Wing and Tang, Chi-Keung and Yu, Fisher},
    title={Mask Transfiner for High-Quality Instance Segmentation},
    booktitle = {CVPR},
    year = {2022}
}

相关遮挡处理工作:

@inproceedings{ke2021voin,
  author = {Ke, Lei and Tai, Yu-Wing and Tang, Chi-Keung},
  title = {Occlusion-Aware Video Object Inpainting},
  booktitle = {ICCV},
  year = {2021}
}

相关链接

Youtube视频 | 海报|知乎文章

与CVPR 2022相关的高质量实例分割工作:Mask Transfiner

与NeurIPS 2021相关的多目标跟踪与分割工作:PCAN

与ECCV 2020相关的部分监督实例分割工作:CPMask

许可证

BCNet采用MIT许可证发布。更多详情请参阅 LICENSE 文件。 感谢第三方库 detectron2

问题

请在GitHub上提交Issue,或联系‘lkeab@cse.ust.hk

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|6天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|1周前
语言模型图像Agent

Deep-Live-Cam

Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。

88.9k|★★★☆☆|1周前
开发框架图像Agent