[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-lkeab--BCNet":3,"tool-lkeab--BCNet":62},[4,18,26,35,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,2,"2026-04-10T11:39:34",[14,15,13],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":32,"last_commit_at":41,"category_tags":42,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[43,13,15,14],"插件",{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[52,15,13,14],"语言模型",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[14,15,13,61],"视频",{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":79,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":100,"forks":101,"last_commit_at":102,"license":103,"difficulty_score":104,"env_os":105,"env_gpu":106,"env_ram":107,"env_deps":108,"category_tags":122,"github_topics":123,"view_count":32,"oss_zip_url":80,"oss_zip_packed_at":80,"status":17,"created_at":140,"updated_at":141,"faqs":142,"releases":175},8124,"lkeab\u002FBCNet","BCNet","Deep Occlusion-Aware Instance Segmentation with Overlapping BiLayers [CVPR 2021]","BCNet 是一款专注于实例分割的深度学习模型，特别擅长处理物体相互遮挡的复杂场景。在传统的图像分割任务中，当多个物体重叠时，算法往往难以准确区分前景与背景，导致边缘识别模糊或错误。BCNet 通过引入创新的“双层解耦”机制，能够在同一个检测区域内显式地建模遮挡关系，将物体边界与掩码分离处理，从而精准还原被遮挡物体的完整轮廓。\n\n该工具基于 Detectron2 框架开发，兼容 Faster R-CNN（两阶段）和 FCOS（无锚框一阶段）等主流检测器，并在 COCO 和 KINS 数据集上取得了领先的性能表现。其技术亮点在于利用图卷积网络（GCN）对遮挡者与被遮挡者进行分组处理，不仅显著提升了分割精度（mAP），还让模型的预测过程更具可解释性。此外，BCNet 在带来性能飞跃的同时，仅增加了极小的计算负担，部署和使用都非常简便。\n\nBCNet 非常适合计算机视觉领域的研究人员、算法工程师以及需要高精度分割效果的开发者使用。无论是用于自动驾驶中的行人车辆识别、机器人抓取中的物体分析，还是学术研究中探索遮挡问题，BCNet 都是一个高效且可靠的选择。","# Deep Occlusion-Aware Instance Segmentation with Overlapping BiLayers [BCNet, CVPR 2021]\n\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n[![PWC](https:\u002F\u002Fimg.shields.io\u002Fendpoint.svg?url=https:\u002F\u002Fpaperswithcode.com\u002Fbadge\u002Fdeep-occlusion-aware-instance-segmentation\u002Finstance-segmentation-on-coco)](https:\u002F\u002Fpaperswithcode.com\u002Fsota\u002Finstance-segmentation-on-coco?p=deep-occlusion-aware-instance-segmentation)\n[![PWC](https:\u002F\u002Fimg.shields.io\u002Fendpoint.svg?url=https:\u002F\u002Fpaperswithcode.com\u002Fbadge\u002Fdeep-occlusion-aware-instance-segmentation\u002Finstance-segmentation-on-kins)](https:\u002F\u002Fpaperswithcode.com\u002Fsota\u002Finstance-segmentation-on-kins?p=deep-occlusion-aware-instance-segmentation)\n\nThis is the official pytorch implementation of [BCNet](https:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent\u002FCVPR2021\u002Fpapers\u002FKe_Deep_Occlusion-Aware_Instance_Segmentation_With_Overlapping_BiLayers_CVPR_2021_paper.pdf) built on the open-source detectron2.\n\n> [**Deep Occlusion-Aware Instance Segmentation with Overlapping BiLayers**](https:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent\u002FCVPR2021\u002Fpapers\u002FKe_Deep_Occlusion-Aware_Instance_Segmentation_With_Overlapping_BiLayers_CVPR_2021_paper.pdf)           \n> Lei Ke, Yu-Wing Tai, Chi-Keung Tang  \n> CVPR 2021\n\nHighlights\n-----------------\n- **BCNet:** Two\u002Fone-stage (detect-then-segment) instance segmentation with state-of-the-art performance.\n- **Novelty:** A new mask head design, explicit occlusion modeling with **bilayer decouple (object boundary and mask)** for the occluder and occludee in the same RoI.\n- **Efficacy:** Large improvements both the FCOS (anchor-free) and Faster R-CNN (anchor-based) detectors.\n- **Simple:** Small additional computation burden and easy to use.\n\nVisualization of Occluded Objects\n-----------------\n\u003Ctable>\n    \u003Ctr>\n        \u003Ctd>\u003Ccenter>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flkeab_BCNet_readme_1af7b790d92c.png\" height=\"260\">\n            \nQualitative instance segmentation results of our BCNet, using ResNet-101-FPN and Faster R-CNN detector. The bottom row visualizes squared heatmap of **object contour and mask predictions** by the two GCN layers for the occluder and occludee in **the same ROI region** specified by the red bounding box, which also makes the final segmentation result of BCNet more explainable than previous methods. The heatmap visualization of GCN-1 in fourth column example shows that **BCNet handles multiple occluders with in the same RoI by grouping them together**. See our paper for more visual examples and comparisons.\n          \u003C\u002Fcenter>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Ctable>\n    \u003Ctr>\n          \u003Ctd>\u003Ccenter>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flkeab_BCNet_readme_c33586f9d861.png\" height=\"260\">\n              \nQualitative instance segmentation results of our BCNet, using ResNet-101-FPN and FCOS detector.\n          \u003C\u002Fcenter>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\nResults on COCO test-dev\n------------\n(Check Table 8 of the paper for full results, all methods are trained on COCO train2017)\n\nDetector(Two-stage) | Backbone  | Method | mAP(mask) |\n|--------|----------|--------|-----------|\nFaster R-CNN| Res-R50-FPN | Mask R-CNN (ICCV'17) | 34.2 |\nFaster R-CNN| Res-R50-FPN | PANet (CVPR'18) | 36.6 |\nFaster R-CNN| Res-R50-FPN | MS R-CNN (CVPR'19) | 35.6 |\nFaster R-CNN| Res-R50-FPN | PointRend (1x CVPR'20) | 36.3 |\n**Faster R-CNN**| **Res-R50-FPN** | **BCNet (CVPR'21)** | [**38.4**](scores\u002Fstdout_r50_frcnn.txt) | \nFaster R-CNN| Res-R101-FPN | Mask R-CNN (ICCV'17) | 36.1 | \nFaster R-CNN| Res-R101-FPN | MS R-CNN (CVPR'19) | 38.3 |\nFaster R-CNN| Res-R101-FPN | BMask R-CNN (ECCV'20) | 37.7 | \n**Box-free** | Res-R101-FPN | SOLOv2 (NeurIPS'20) | 39.7 | \n**Faster R-CNN**|**Res-R101-FPN** | **BCNet (CVPR'21)** | [**39.8**](scores\u002Fstdout_frcnn.txt)|\n\nDetector(One-stage) | Backbone | Method | mAP(mask) |\n|--------|----------|--------|-----------|\nFCOS| Res-R101-FPN | BlendMask (CVPR'20) | 38.4 | \nFCOS| Res-R101-FPN | CenterMask (CVPR'20) | 38.3 | \nFCOS| Res-R101-FPN | SipMask (ECCV'20) | 37.8 |\nFCOS| Res-R101-FPN | CondInst (ECCV'20) | 39.1 |\n**FCOS**| Res-R101-FPN | **BCNet (CVPR'21)**| [**39.6**](scores\u002Fstdout_fcos.txt), [Pretrained Model](https:\u002F\u002Fhkustconnect-my.sharepoint.com\u002F:u:\u002Fg\u002Fpersonal\u002Flkeab_connect_ust_hk\u002FEfiDFLLEawFJpruwuOl3h3ABBjAKysTf0qJQU80iaKbqYg?e=igzC51), [Submission File](https:\u002F\u002Fhkustconnect-my.sharepoint.com\u002F:u:\u002Fg\u002Fpersonal\u002Flkeab_connect_ust_hk\u002FEVgMSMFwOmVDjAIB3LFusAMBTyTY-N_6qWbAWEBq_PK9xQ?e=5Lrmv7)|\nFCOS|Res-X101 FPN| BCNet (CVPR'21) | [41.2](scores\u002Fstdout_fcos_x101.txt) |\n\nIntroduction\n-----------------\nSegmenting highly-overlapping objects is challenging, because typically no distinction is made between real object contours and occlusion boundaries. Unlike previous two-stage instance segmentation methods, **BCNet** models image formation as composition of two overlapping image layers, where the top GCN layer detects the occluding objects (occluder) and the bottom GCN layer infers partially occluded instance (occludee). **The explicit modeling of occlusion relationship with bilayer structure naturally decouples the boundaries of both the occluding and occluded instances, and considers the interaction between them during mask regression.** We validate the efficacy of bilayer decoupling on both one-stage and two-stage object detectors with different backbones and network layer choices. The network of BCNet is as follows:\n\u003Ccenter>\n\u003Ctable>\n    \u003Ctr>\n          \u003Ctd>\u003Ccenter>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flkeab_BCNet_readme_f7b579eb564d.png\" height=\"430\">\u003C\u002Fcenter>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n\u003C\u002Ftable>\nA brief comparison of mask head architectures, see our paper for full details.\n\u003Ctable>\t\n    \u003Ctr>\n          \u003Ctd>\u003Ccenter>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flkeab_BCNet_readme_b68e9d555040.png\" height=\"270\">\u003C\u002Fcenter>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003C\u002Fcenter>\n\n## Step-by-step Installation\n```\nconda create -n bcnet python=3.7 -y\nsource activate bcnet\n \nconda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.1 -c pytorch\n \n# FCOS and coco api and visualization dependencies\npip install ninja yacs cython matplotlib tqdm\npip install opencv-python==4.4.0.40\n# Boundary dependency\npip install scikit-image\n \nexport INSTALL_DIR=$PWD\n \n# install pycocotools. Please make sure you have installed cython.\ncd $INSTALL_DIR\ngit clone https:\u002F\u002Fgithub.com\u002Fcocodataset\u002Fcocoapi.git\ncd cocoapi\u002FPythonAPI\npython setup.py build_ext install\n \n# install BCNet\ncd $INSTALL_DIR\ngit clone https:\u002F\u002Fgithub.com\u002Flkeab\u002FBCNet.git\ncd BCNet\u002F\npython3 setup.py build develop\n \nunset INSTALL_DIR\n```\n\n\n## Dataset Preparation\nPrepare for [coco2017](http:\u002F\u002Fcocodataset.org\u002F#home) dataset following [this instruction](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdetectron2\u002Ftree\u002Fmaster\u002Fdatasets). And use our converted mask annotations ([google drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1F2ClhTH5vZNlYvAqQhFQ3TVAbfbYp02y\u002Fview?usp=sharing) or [onedrive](https:\u002F\u002Fhkustconnect-my.sharepoint.com\u002F:u:\u002Fg\u002Fpersonal\u002Flkeab_connect_ust_hk\u002FEW2ZVyev7e5Pr1fVfF2nn18BRod82j_jW5Z4ywYd1evq8Q?e=qj0Bbm)) to replace original annotation file for bilayer decoupling training.\n\n```\n  mkdir -p datasets\u002Fcoco\n  ln -s \u002Fpath_to_coco_dataset\u002Fannotations datasets\u002Fcoco\u002Fannotations\n  ln -s \u002Fpath_to_coco_dataset\u002Ftrain2017 datasets\u002Fcoco\u002Ftrain2017\n  ln -s \u002Fpath_to_coco_dataset\u002Ftest2017 datasets\u002Fcoco\u002Ftest2017\n  ln -s \u002Fpath_to_coco_dataset\u002Fval2017 datasets\u002Fcoco\u002Fval2017\n```\n\nMulti-GPU Training and evaluation on Validation set\n---------------\n```\nbash all.sh\n```\nOr\n```\nCUDA_VISIBLE_DEVICES=0,1 python3 tools\u002Ftrain_net.py --num-gpus 2 \\\n\t--config-file configs\u002Ffcos\u002Ffcos_imprv_R_50_FPN.yaml 2>&1 | tee log\u002Ftrain_log.txt\n```\n\nPretrained Models\n---------------\nFCOS-version download: [link](https:\u002F\u002Fhkustconnect-my.sharepoint.com\u002F:u:\u002Fg\u002Fpersonal\u002Flkeab_connect_ust_hk\u002FEfiDFLLEawFJpruwuOl3h3ABBjAKysTf0qJQU80iaKbqYg?e=igzC51)\n```\n  mkdir pretrained_models\n  #And put the downloaded pretrained models in this directory.\n```\n\nTesting on Test-dev\n---------------\n```\nexport PYTHONPATH=$PYTHONPATH:`pwd`\nCUDA_VISIBLE_DEVICES=0,1 python3 tools\u002Ftrain_net.py --num-gpus 2 \\\n\t--config-file configs\u002Ffcos\u002Ffcos_imprv_R_101_FPN.yaml \\\n\t--eval-only MODEL.WEIGHTS .\u002Fpretrained_models\u002Fxxx.pth 2>&1 | tee log\u002Ftest_log.txt\n```\n\nVisualization\n---------------\n```\nbash visualize.sh\n```\n\nReference script for producing bilayer mask annotation:\n---------------\n```\nbash process.sh\n```\n\nThe COCO-OCC split:\n---------------\nThe COCO-OCC split download: [link](https:\u002F\u002Fhkustconnect-my.sharepoint.com\u002F:u:\u002Fg\u002Fpersonal\u002Flkeab_connect_ust_hk\u002FEee8WYEY4plIko4X5ej4ahYBB28FEHfxxolxtEkhF8QbRg?e=5d000r), which is detailed described in paper.\n\nCitation\n---------------\nIf you find BCNet useful in your research or refer to the provided baseline results, please star :star: this repository and consider citing :pencil::\n```\n@inproceedings{ke2021bcnet,\n    author = {Ke, Lei and Tai, Yu-Wing and Tang, Chi-Keung},\n    title = {Deep Occlusion-Aware Instance Segmentation with Overlapping BiLayers},\n    booktitle = {CVPR},\n    year = {2021}\n}  \n```\nRelated high-quality instance segmentation work:\n```\n@inproceedings{transfiner,\n    author={Ke, Lei and Danelljan, Martin and Li, Xia and Tai, Yu-Wing and Tang, Chi-Keung and Yu, Fisher},\n    title={Mask Transfiner for High-Quality Instance Segmentation},\n    booktitle = {CVPR},\n    year = {2022}\n}\n```\n\nRelated occlusion handling work:\n```\n@inproceedings{ke2021voin,\n  author = {Ke, Lei and Tai, Yu-Wing and Tang, Chi-Keung},\n  title = {Occlusion-Aware Video Object Inpainting},\n  booktitle = {ICCV},\n  year = {2021}\n}\n```\nRelated Links\n---------------\n[Youtube Video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=iHlGJppJGiQ) | [Poster](http:\u002F\u002Fwww.kelei.site\u002Fposter\u002FBCNet_CVPR21.pdf)|\n[Zhihu Reading](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F378269087)\n\nRelated CVPR 2022 Work on high-quality instance segmentation: [Mask Transfiner](https:\u002F\u002Fgithub.com\u002FSysCV\u002Ftransfiner)\n\nRelated NeurIPS 2021 Work on multiple object tracking & segmentation: [PCAN](https:\u002F\u002Fgithub.com\u002FSysCV\u002Fpcan)\n\nRelated ECCV 2020 Work on partially supervised instance segmentation: [CPMask](https:\u002F\u002Fwww.ecva.net\u002Fpapers\u002Feccv_2020\u002Fpapers_ECCV\u002Fpapers\u002F123530375.pdf)\n\n\nLicense\n---------------\nBCNet is released under the MIT license. See [LICENSE](LICENSE) for additional details.\nThanks to the Third Party Libs\n[detectron2](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdetectron2).   \n\nQuestions\n---------------\nLeave github issues or please contact 'lkeab@cse.ust.hk'\n","# 基于重叠双层结构的深度遮挡感知实例分割 [BCNet, CVPR 2021]\n\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n[![PWC](https:\u002F\u002Fimg.shields.io\u002Fendpoint.svg?url=https:\u002F\u002Fpaperswithcode.com\u002Fbadge\u002Fdeep-occlusion-aware-instance-segmentation\u002Finstance-segmentation-on-coco)](https:\u002F\u002Fpaperswithcode.com\u002Fsota\u002Finstance-segmentation-on-coco?p=deep-occlusion-aware-instance-segmentation)\n[![PWC](https:\u002F\u002Fimg.shields.io\u002Fendpoint.svg?url=https:\u002F\u002Fpaperswithcode.com\u002Fbadge\u002Fdeep-occlusion-aware-instance-segmentation\u002Finstance-segmentation-on-kins)](https:\u002F\u002Fpaperswithcode.com\u002Fsota\u002Finstance-segmentation-on-kins?p=deep-occlusion-aware-instance-segmentation)\n\n这是基于开源 detectron2 构建的 [BCNet](https:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent\u002FCVPR2021\u002Fpapers\u002FKe_Deep_Occlusion-Aware_Instance_Segmentation_With_Overlapping_BiLayers_CVPR_2021_paper.pdf) 的官方 PyTorch 实现。\n\n> [**基于重叠双层结构的深度遮挡感知实例分割**](https:\u002F\u002Fopenaccess.thecvf.com\u002Fcontent\u002FCVPR2021\u002Fpapers\u002FKe_Deep_Occlusion-Aware_Instance_Segmentation_With_Overlapping_BiLayers_CVPR_2021_paper.pdf)           \n> Lei Ke, Yu-Wing Tai, Chi-Keung Tang  \n> CVPR 2021\n\n亮点\n-----------------\n- **BCNet:** 具有最先进性能的两阶段\u002F单阶段（先检测后分割）实例分割方法。\n- **新颖性:** 一种新的掩码头部设计，通过 **双层解耦（对象边界与掩码）** 对同一 RoI 中的遮挡物和被遮挡物进行显式遮挡建模。\n- **有效性:** 对 FCOS（无锚框）和 Faster R-CNN（基于锚框）检测器均有显著提升。\n- **简单性:** 额外计算开销小，易于使用。\n\n遮挡物体可视化\n-----------------\n\u003Ctable>\n    \u003Ctr>\n        \u003Ctd>\u003Ccenter>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flkeab_BCNet_readme_1af7b790d92c.png\" height=\"260\">\n            \n我们 BCNet 的定性实例分割结果，采用 ResNet-101-FPN 和 Faster R-CNN 检测器。底部一行展示了由两个 GCN 层对遮挡物和被遮挡物在红色边界框指定的 **同一 ROI 区域** 中的 **物体轮廓和掩码预测** 的平方热图，这也使得 BCNet 的最终分割结果比以往方法更具可解释性。第四列示例中 GCN-1 的热图可视化显示，**BCNet 通过将同一 RoI 内的多个遮挡物分组来处理它们**。更多可视化示例和对比请参阅我们的论文。\n          \u003C\u002Fcenter>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Ctable>\n    \u003Ctr>\n          \u003Ctd>\u003Ccenter>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flkeab_BCNet_readme_c33586f9d861.png\" height=\"260\">\n              \n我们 BCNet 的定性实例分割结果，采用 ResNet-101-FPN 和 FCOS 检测器。\n          \u003C\u002Fcenter>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\nCOCO test-dev 上的结果\n------------\n（完整结果请参见论文表 8，所有方法均在 COCO train2017 上训练）\n\n两阶段检测器 | 主干网络  | 方法 | mAP(mask) |\n|--------|----------|--------|-----------|\nFaster R-CNN| Res-R50-FPN | Mask R-CNN (ICCV'17) | 34.2 |\nFaster R-CNN| Res-R50-FPN | PANet (CVPR'18) | 36.6 |\nFaster R-CNN| Res-R50-FPN | MS R-CNN (CVPR'19) | 35.6 |\nFaster R-CNN| Res-R50-FPN | PointRend (1x CVPR'20) | 36.3 |\n**Faster R-CNN**| **Res-R50-FPN** | **BCNet (CVPR'21)** | [**38.4**](scores\u002Fstdout_r50_frcnn.txt) | \nFaster R-CNN| Res-R101-FPN | Mask R-CNN (ICCV'17) | 36.1 | \nFaster R-CNN| Res-R101-FPN | MS R-CNN (CVPR'19) | 38.3 |\nFaster R-CNN| Res-R101-FPN | BMask R-CNN (ECCV'20) | 37.7 | \n**无框** | Res-R101-FPN | SOLOv2 (NeurIPS'20) | 39.7 | \n**Faster R-CNN**|**Res-R101-FPN** | **BCNet (CVPR'21)** | [**39.8**](scores\u002Fstdout_frcnn.txt)|\n\n单阶段检测器 | 主干网络 | 方法 | mAP(mask) |\n|--------|----------|--------|-----------|\nFCOS| Res-R101-FPN | BlendMask (CVPR'20) | 38.4 | \nFCOS| Res-R101-FPN | CenterMask (CVPR'20) | 38.3 | \nFCOS| Res-R101-FPN | SipMask (ECCV'20) | 37.8 |\nFCOS| Res-R101-FPN | CondInst (ECCV'20) | 39.1 |\n**FCOS**| Res-R101-FPN | **BCNet (CVPR'21)**| [**39.6**](scores\u002Fstdout_fcos.txt), [预训练模型](https:\u002F\u002Fhkustconnect-my.sharepoint.com\u002F:u:\u002Fg\u002Fpersonal\u002Flkeab_connect_ust_hk\u002FEfiDFLLEawFJpruwuOl3h3ABBjAKysTf0qJQU80iaKbqYg?e=igzC51), [提交文件](https:\u002F\u002Fhkustconnect-my.sharepoint.com\u002F:u:\u002Fg\u002Fpersonal\u002Flkeab_connect_ust_hk\u002FEVgMSMFwOmVDjAIB3LFusAMBTyTY-N_6qWbAWEBq_PK9xQ?e=5Lrmv7)|\nFCOS|Res-X101 FPN| BCNet (CVPR'21) | [41.2](scores\u002Fstdout_fcos_x101.txt) |\n\n简介\n-----------------\n对高度重叠的物体进行分割具有挑战性，因为通常无法区分真实的物体轮廓和遮挡边界。与以往的两阶段实例分割方法不同，**BCNet** 将图像形成建模为两个重叠图像层的组合，其中顶层 GCN 层检测遮挡物（occluder），底层 GCN 层推断部分遮挡的实例（occludee）。**通过双层结构对遮挡关系的显式建模，自然地解耦了遮挡物和被遮挡物的边界，并在掩码回归过程中考虑了它们之间的相互作用。** 我们在不同主干和网络层选择的一阶段和两阶段目标检测器上验证了双层解耦的有效性。BCNet 的网络架构如下：\n\u003Ccenter>\n\u003Ctable>\n    \u003Ctr>\n          \u003Ctd>\u003Ccenter>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flkeab_BCNet_readme_f7b579eb564d.png\" height=\"430\">\u003C\u002Fcenter>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n\u003C\u002Ftable>\n掩码头部架构的简要比较，详细信息请参阅我们的论文。\n\u003Ctable>\t\n    \u003Ctr>\n          \u003Ctd>\u003Ccenter>\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flkeab_BCNet_readme_b68e9d555040.png\" height=\"270\">\u003C\u002Fcenter>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003C\u002Fcenter>\n\n## 逐步安装\n```\nconda create -n bcnet python=3.7 -y\nsource activate bcnet\n \nconda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.1 -c pytorch\n \n# FCOS 和 coco api 以及可视化依赖项\npip install ninja yacs cython matplotlib tqdm\npip install opencv-python==4.4.0.40\n# 边界依赖项\npip install scikit-image\n \nexport INSTALL_DIR=$PWD\n \n# 安装 pycocotools。请确保已安装 cython。\ncd $INSTALL_DIR\ngit clone https:\u002F\u002Fgithub.com\u002Fcocodataset\u002Fcocoapi.git\ncd cocoapi\u002FPythonAPI\npython setup.py build_ext install\n \n# 安装 BCNet\ncd $INSTALL_DIR\ngit clone https:\u002F\u002Fgithub.com\u002Flkeab\u002FBCNet.git\ncd BCNet\u002F\npython3 setup.py build develop\n \nunset INSTALL_DIR\n```\n\n## 数据集准备\n按照 [此说明](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdetectron2\u002Ftree\u002Fmaster\u002Fdatasets) 准备 [coco2017](http:\u002F\u002Fcocodataset.org\u002F#home) 数据集。并使用我们转换后的掩码标注文件（[google drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1F2ClhTH5vZNlYvAqQhFQ3TVAbfbYp02y\u002Fview?usp=sharing) 或 [onedrive](https:\u002F\u002Fhkustconnect-my.sharepoint.com\u002F:u:\u002Fg\u002Fpersonal\u002Flkeab_connect_ust_hk\u002FEW2ZVyev7e5Pr1fVfF2nn18BRod82j_jW5Z4ywYd1evq8Q?e=qj0Bbm)) 替换原始标注文件，以进行双层解耦训练。\n\n```\n  mkdir -p datasets\u002Fcoco\n  ln -s \u002Fpath_to_coco_dataset\u002Fannotations datasets\u002Fcoco\u002Fannotations\n  ln -s \u002Fpath_to_coco_dataset\u002Ftrain2017 datasets\u002Fcoco\u002Ftrain2017\n  ln -s \u002Fpath_to_coco_dataset\u002Ftest2017 datasets\u002Fcoco\u002Ftest2017\n  ln -s \u002Fpath_to_coco_dataset\u002Fval2017 datasets\u002Fcoco\u002Fval2017\n```\n\n多GPU训练及在验证集上的评估\n---------------\n```\nbash all.sh\n```\n或者\n```\nCUDA_VISIBLE_DEVICES=0,1 python3 tools\u002Ftrain_net.py --num-gpus 2 \\\n\t--config-file configs\u002Ffcos\u002Ffcos_imprv_R_50_FPN.yaml 2>&1 | tee log\u002Ftrain_log.txt\n```\n\n预训练模型\n---------------\nFCOS版本下载：[链接](https:\u002F\u002Fhkustconnect-my.sharepoint.com\u002F:u:\u002Fg\u002Fpersonal\u002Flkeab_connect_ust_hk\u002FEfiDFLLEawFJpruwuOl3h3ABBjAKysTf0qJQU80iaKbqYg?e=igzC51)\n```\n  mkdir pretrained_models\n  #并将下载的预训练模型放入该目录。\n```\n\n在Test-dev数据集上测试\n---------------\n```\nexport PYTHONPATH=$PYTHONPATH:`pwd`\nCUDA_VISIBLE_DEVICES=0,1 python3 tools\u002Ftrain_net.py --num-gpus 2 \\\n\t--config-file configs\u002Ffcos\u002Ffcos_imprv_R_101_FPN.yaml \\\n\t--eval-only MODEL.WEIGHTS .\u002Fpretrained_models\u002Fxxx.pth 2>&1 | tee log\u002Ftest_log.txt\n```\n\n可视化\n---------------\n```\nbash visualize.sh\n```\n\n生成双层掩码标注的参考脚本：\n---------------\n```\nbash process.sh\n```\n\nCOCO-OCC划分：\n---------------\nCOCO-OCC划分下载：[链接](https:\u002F\u002Fhkustconnect-my.sharepoint.com\u002F:u:\u002Fg\u002Fpersonal\u002Flkeab_connect_ust_hk\u002FEee8WYEY4plIko4X5ej4ahYBB28FEHfxxolxtEkhF8QbRg?e=5d000r)，具体细节在论文中有所介绍。\n\n引用\n---------------\n如果您在研究中使用了BCNet，或参考了提供的基线结果，请为本仓库点赞 :star:，并考虑引用 :pencil:: \n```\n@inproceedings{ke2021bcnet,\n    author = {Ke, Lei and Tai, Yu-Wing and Tang, Chi-Keung},\n    title = {Deep Occlusion-Aware Instance Segmentation with Overlapping BiLayers},\n    booktitle = {CVPR},\n    year = {2021}\n}  \n```\n相关高质量实例分割工作：\n```\n@inproceedings{transfiner,\n    author={Ke, Lei and Danelljan, Martin and Li, Xia and Tai, Yu-Wing and Tang, Chi-Keung and Yu, Fisher},\n    title={Mask Transfiner for High-Quality Instance Segmentation},\n    booktitle = {CVPR},\n    year = {2022}\n}\n```\n\n相关遮挡处理工作：\n```\n@inproceedings{ke2021voin,\n  author = {Ke, Lei and Tai, Yu-Wing and Tang, Chi-Keung},\n  title = {Occlusion-Aware Video Object Inpainting},\n  booktitle = {ICCV},\n  year = {2021}\n}\n```\n\n相关链接\n---------------\n[Youtube视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=iHlGJppJGiQ) | [海报](http:\u002F\u002Fwww.kelei.site\u002Fposter\u002FBCNet_CVPR21.pdf)|[知乎文章](https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F378269087)\n\n与CVPR 2022相关的高质量实例分割工作：[Mask Transfiner](https:\u002F\u002Fgithub.com\u002FSysCV\u002Ftransfiner)\n\n与NeurIPS 2021相关的多目标跟踪与分割工作：[PCAN](https:\u002F\u002Fgithub.com\u002FSysCV\u002Fpcan)\n\n与ECCV 2020相关的部分监督实例分割工作：[CPMask](https:\u002F\u002Fwww.ecva.net\u002Fpapers\u002Feccv_2020\u002Fpapers_ECCV\u002Fpapers\u002F123530375.pdf)\n\n\n许可证\n---------------\nBCNet采用MIT许可证发布。更多详情请参阅 [LICENSE](LICENSE) 文件。\n感谢第三方库\n[detectron2](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdetectron2)。\n\n问题\n---------------\n请在GitHub上提交Issue，或联系‘lkeab@cse.ust.hk’","# BCNet 快速上手指南\n\nBCNet 是一种基于重叠双层（Overlapping BiLayers）设计的实例分割网络，专为解决严重遮挡场景下的实例分割问题而设计。该工具基于 Detectron2 构建，支持 Faster R-CNN（两阶段）和 FCOS（单阶段）检测器，在 COCO 数据集上取得了 SOTA 性能。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n- **操作系统**: Linux (推荐 Ubuntu 18.04+)\n- **Python**: 3.7\n- **CUDA**: 10.1\n- **PyTorch**: 1.4.0\n- **显存**: 建议 8GB 以上（多卡训练更佳）\n\n**前置依赖**:\n- `ninja`, `yacs`, `cython`, `matplotlib`, `tqdm`\n- `opencv-python==4.4.0.40`\n- `scikit-image`\n- `pycocotools`\n\n> **注意**: 由于项目依赖特定版本的 PyTorch (1.4.0) 和 CUDA (10.1)，建议使用 Conda 创建独立虚拟环境以避免冲突。\n\n## 安装步骤\n\n请依次执行以下命令完成环境配置和代码安装：\n\n```bash\n# 1. 创建并激活 Conda 环境\nconda create -n bcnet python=3.7 -y\nsource activate bcnet\n\n# 2. 安装 PyTorch 和 torchvision (指定版本 1.4.0 + CUDA 10.1)\n# 若国内下载缓慢，可尝试使用清华源：-c https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Fanaconda\u002Fcloud\u002Fpytorch\u002F\nconda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.1 -c pytorch\n\n# 3. 安装基础依赖\npip install ninja yacs cython matplotlib tqdm\npip install opencv-python==4.4.0.40\npip install scikit-image\n\n# 4. 设置环境变量并安装 pycocotools\nexport INSTALL_DIR=$PWD\ncd $INSTALL_DIR\ngit clone https:\u002F\u002Fgithub.com\u002Fcocodataset\u002Fcocoapi.git\ncd cocoapi\u002FPythonAPI\npython setup.py build_ext install\n\n# 5. 克隆并安装 BCNet\ncd $INSTALL_DIR\ngit clone https:\u002F\u002Fgithub.com\u002Flkeab\u002FBCNet.git\ncd BCNet\u002F\npython3 setup.py build develop\n\n# 6. 清理环境变量\nunset INSTALL_DIR\n```\n\n## 基本使用\n\n### 1. 数据集准备\n\n本项目基于 **COCO 2017** 数据集。您需要下载原始数据集，并替换为作者提供的**双层掩码标注文件**（用于训练遮挡解耦模型）。\n\n1.  下载 [COCO 2017](http:\u002F\u002Fcocodataset.org\u002F#home) 数据集。\n2.  下载转换后的标注文件：[Google Drive](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1F2ClhTH5vZNlYvAqQhFQ3TVAbfbYp02y\u002Fview?usp=sharing) 或 [OneDrive](https:\u002F\u002Fhkustconnect-my.sharepoint.com\u002F:u:\u002Fg\u002Fpersonal\u002Flkeab_connect_ust_hk\u002FEW2ZVyev7e5Pr1fVfF2nn18BRod82j_jW5Z4ywYd1evq8Q?e=qj0Bbm)。\n3.  按照以下结构建立软链接（假设数据集路径为 `\u002Fpath_to_coco_dataset`）：\n\n```bash\nmkdir -p datasets\u002Fcoco\nln -s \u002Fpath_to_coco_dataset\u002Fannotations datasets\u002Fcoco\u002Fannotations\nln -s \u002Fpath_to_coco_dataset\u002Ftrain2017 datasets\u002Fcoco\u002Ftrain2017\nln -s \u002Fpath_to_coco_dataset\u002Ftest2017 datasets\u002Fcoco\u002Ftest2017\nln -s \u002Fpath_to_coco_dataset\u002Fval2017 datasets\u002Fcoco\u002Fval2017\n```\n*请将下载的转换后标注文件覆盖到 `datasets\u002Fcoco\u002Fannotations` 对应目录中。*\n\n### 2. 下载预训练模型\n\n如果您只想进行测试或微调，请先下载预训练权重。以 FCOS 版本为例：\n\n```bash\nmkdir pretrained_models\n# 将下载的 .pth 文件放入 pretrained_models 目录\n# 下载地址：https:\u002F\u002Fhkustconnect-my.sharepoint.com\u002F:u:\u002Fg\u002Fpersonal\u002Flkeab_connect_ust_hk\u002FEfiDFLLEawFJpruwuOl3h3ABBjAKysTf0qJQU80iaKbqYg?e=igzC51\n```\n\n### 3. 运行示例\n\n#### 方案 A：一键脚本（推荐）\n项目提供了封装好的脚本，可直接启动多卡训练或评估：\n\n```bash\n# 训练与验证（需修改 all.sh 内部配置以匹配您的显卡数量）\nbash all.sh\n```\n\n#### 方案 B：手动命令\n**多卡训练示例** (使用 2 张 GPU, FCOS + ResNet-50):\n```bash\nCUDA_VISIBLE_DEVICES=0,1 python3 tools\u002Ftrain_net.py --num-gpus 2 \\\n\t--config-file configs\u002Ffcos\u002Ffcos_imprv_R_50_FPN.yaml 2>&1 | tee log\u002Ftrain_log.txt\n```\n\n**仅测试\u002F评估示例** (使用预训练模型在 Test-dev 集上评估):\n```bash\nexport PYTHONPATH=$PYTHONPATH:`pwd`\nCUDA_VISIBLE_DEVICES=0,1 python3 tools\u002Ftrain_net.py --num-gpus 2 \\\n\t--config-file configs\u002Ffcos\u002Ffcos_imprv_R_101_FPN.yaml \\\n\t--eval-only MODEL.WEIGHTS .\u002Fpretrained_models\u002Fxxx.pth 2>&1 | tee log\u002Ftest_log.txt\n```\n*注：请将 `xxx.pth` 替换为您实际下载的模型文件名。*\n\n#### 可视化结果\n生成可视化图像：\n```bash\nbash visualize.sh\n```","某自动驾驶感知团队正在开发城市复杂路口的行人检测系统，需精准识别被车辆或路灯部分遮挡的行人轮廓以规划安全路径。\n\n### 没有 BCNet 时\n- **遮挡导致分割断裂**：传统模型（如 Mask R-CNN）难以处理严重遮挡，常将被挡行人的掩码错误截断或与其他物体融合，导致目标丢失。\n- **边界模糊不清**：在重叠区域，算法无法区分“遮挡者”与“被遮挡者”的边界，生成的轮廓锯齿严重，影响后续轨迹预测精度。\n- **多目标混淆**：当多个行人紧密重叠在同一检测框内时，模型倾向于将其合并为一个大块，无法实例级分离。\n- **调试黑盒化**：开发人员难以判断分割错误是源于检测框不准还是掩码生成逻辑缺陷，缺乏可解释性中间特征。\n\n### 使用 BCNet 后\n- **显式建模遮挡关系**：BCNet 通过独特的双层解耦设计，能在同一检测框内独立计算遮挡者和被遮挡者的边界，完整还原被遮行人的真实轮廓。\n- **像素级边缘锐利**：利用图卷积网络（GCN）细化重叠区域，生成的掩码边缘平滑且贴合人体结构，显著提升了小目标和遮挡目标的 mAP。\n- **同框多实例分离**：即使多个行人高度重叠，BCNet 也能通过分组机制将其正确拆分为独立个体，避免了目标合并漏检。\n- **可视化可解释性强**：系统可直接输出物体轮廓与掩码的热力图，让工程师直观看到模型如何处理遮挡逻辑，大幅缩短调优周期。\n\nBCNet 通过创新的遮挡感知机制，将复杂场景下的实例分割精度推向新高度，让自动驾驶系统在拥挤人群中看得更清、判得更准。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flkeab_BCNet_1af7b790.png","lkeab","Lei Ke","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Flkeab_6f884513.png","Postdoc at CMU. Previously at ETH Zurich and HKUST.","CMU","Pittsburgh","keleiwhu@gmail.com",null,"http:\u002F\u002Fwww.kelei.site","https:\u002F\u002Fgithub.com\u002Flkeab",[84,88,92,96],{"name":85,"color":86,"percentage":87},"Python","#3572A5",90,{"name":89,"color":90,"percentage":91},"Cuda","#3A4E3A",6.4,{"name":93,"color":94,"percentage":95},"C++","#f34b7d",3.6,{"name":97,"color":98,"percentage":99},"Shell","#89e051",0.1,570,78,"2026-04-12T19:56:25","MIT",4,"Linux","需要 NVIDIA GPU，CUDA 10.1 (基于安装命令 cudatoolkit=10.1)，显存大小未说明（建议 8GB+ 以运行 ResNet-101 模型）","未说明",{"notes":109,"python":110,"dependencies":111},"该项目基于 detectron2 构建。安装时需先配置 COCO 数据集，并使用作者提供的转换后的掩码标注文件替换原始标注以进行双层解耦训练。代码包含自定义编译步骤（setup.py build develop），主要在 Linux 环境下测试。","3.7",[112,113,114,115,116,117,118,119,120,121],"pytorch==1.4.0","torchvision==0.5.0","detectron2","opencv-python==4.4.0.40","ninja","yacs","cython","matplotlib","tqdm","scikit-image",[15],[124,125,126,127,128,129,130,131,132,133,114,134,135,136,137,138,139],"instance-segmentation","occlusion-handling","bcnet","cvpr2021","cvpr","detection","segmentation","object-detection","occlusion","non-local","fastrcnn","fcos","boundary-detection","gcn","bilayer-network","amodal-instance-segmentation","2026-03-27T02:49:30.150509","2026-04-17T08:24:21.216858",[143,148,153,158,163,167,171],{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},36355,"使用自定义数据集训练时，遇到 'NoneType' object is not iterable 或进程终止错误怎么办？","这通常是因为自定义数据集的标注格式与代码预期不一致。请检查以下几点：\n1. 确保配置文件（config）中的图片路径设置为绝对路径。\n2. 检查数据集处理文件（如 coco.py），确认分割掩码（segmentation）的读取逻辑正确。如果数据集中缺少特定字段（如 bg_object_segmentation），可能需要将其修改为与标准 segmentation 一致的读取方式，例如将 `anno.get(\"segmentation\", None)` 应用于所有相关变量。\n3. 确保 JSON 标注文件中的类别 ID 从 1 开始连续编号，而不是从 0 开始。","https:\u002F\u002Fgithub.com\u002Flkeab\u002FBCNet\u002Fissues\u002F103",{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},36356,"如何正确设置自定义数据集的类别数量（NUM_CLASSES）以避免类别 ID 错误？","出现 'AssertionError: A prediction has category_id=XX, which is not available in the dataset' 错误通常是因为标注文件中的类别 ID 与模型配置不匹配。\n解决方案：\n1. 检查你的 COCO 格式 JSON 文件，确保类别 ID（category_id）是从 1 到 N 连续排列的。如果原始 ID 是从 0 到 N-1，需要在转换脚本中将其偏移 +1。\n2. 在配置文件或命令行参数中正确设置 `MODEL.ROI_HEADS.NUM_CLASSES`、`MODEL.FCOS.NUM_CLASSES` 和 `MODEL.RETINANET.NUM_CLASSES` 为你的实际类别数（不包含背景）。\n3. 注意：Detectron2 框架要求类别 ID 必须在 [1, #categories] 范围内，否则会自动应用映射导致错误。","https:\u002F\u002Fgithub.com\u002Flkeab\u002FBCNet\u002Fissues\u002F27",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},36357,"如果遮挡物（Occluder）不在类别标签中，还能被识别吗？如何配置？","可以识别。你需要在代码配置中显式设置相关参数。具体来说，可以在 `detectron2\u002Fconfig\u002Fdefaults.py` 文件中找到相关配置项（通常在第 329 行附近）进行设置，以允许模型处理未在主类别标签中的遮挡物对象。","https:\u002F\u002Fgithub.com\u002Flkeab\u002FBCNet\u002Fissues\u002F110",{"id":159,"question_zh":160,"answer_zh":161,"source_url":162},36358,"训练时遇到 'Timed out waiting ... for send operation to complete' 或分布式通信超时错误如何解决？","该错误通常发生在多卡分布式训练时，由于进程间通信（NCCL）超时导致。\n建议尝试以下解决方法：\n1. 增加超时时间限制：在启动脚本或环境变量中设置 `NCCL_TIMEOUT`（例如 export NCCL_TIMEOUT=3600）。\n2. 检查网络配置：确保所有 GPU 节点之间的网络连接正常，防火墙未阻止通信端口。\n3. 如果是单台机器多卡，尝试减少 `NUM_WORKERS` 或调整 batch size 以减少通信压力。\n4. 确保所有进程都能正常访问共享文件系统，避免在写入日志或指标时发生阻塞。","https:\u002F\u002Fgithub.com\u002Flkeab\u002FBCNet\u002Fissues\u002F53",{"id":164,"question_zh":165,"answer_zh":166,"source_url":152},36359,"在 Windows 系统上运行 BCNet 遇到问题，有什么建议？","BCNet 及其依赖的 Detectron2 在 Windows 上的支持有限，许多用户报告在 Windows 上训练会出现各种兼容性问题（如 CUDA 环境、多进程启动等）。\n强烈建议：\n1. 不要在 Windows 上直接运行训练代码。\n2. 使用 Linux 服务器或虚拟机进行训练。\n3. 或者使用 Docker 容器部署，项目维护者提供了相关的 Docker 支持，这可以避免本地环境配置的复杂性。\n4. 如果必须查看结果，可以在 Linux 上训练好模型后，将权重文件下载到 Windows 进行推理测试。",{"id":168,"question_zh":169,"answer_zh":170,"source_url":157},36360,"如何只修改 Mask Head 部分而不改变整个检测器架构？","如果你只想替换或修改掩码头（Mask Head）的设计，不需要重写整个检测器。\n你可以直接在代码中找到定义 Mask Head 的部分进行修改。通常位于模型定义文件中（如 `modeling\u002Froi_heads\u002Fmask_head.py` 或类似路径）。维护者建议只需更改 mask head 的设置代码，然后将其与你能够顺利训练\u002F推理的其他代码库结合即可。具体的修改位置取决于你使用的具体检测框架版本，但核心思路是隔离修改 ROI Heads 中的 mask 分支。",{"id":172,"question_zh":173,"answer_zh":174,"source_url":152},36361,"安装 PyTorch 后为什么 Detectron2 仍然报错找不到 CUDA？","这是一个常见的误区。通过 Anaconda 安装的 `cudatoolkit` 仅对 PyTorch 有效，并不等同于系统级的 CUDA 驱动或编译环境，Detectron2 需要完整的本地 CUDA 环境来进行编译和操作。\n解决方法：\n1. 在机器上本地安装完整的 CUDA Toolkit 和 cuDNN。\n2. 或者直接使用项目提供的 Docker 镜像，其中已经预配置好了所有必要的 CUDA 环境和依赖，这是最稳妥的方式。",[]]