Point-GNN
Point-GNN 是一款专为点云数据设计的三维目标检测开源工具,由 CVPR 2020 论文提出。它主要解决自动驾驶、机器人导航等场景中,如何从激光雷达采集的稀疏、无序点云中精准识别车辆、行人等物体位置的难题。
与传统方法不同,Point-GNN 的核心亮点在于巧妙结合了图神经网络(GNN)与点云处理技术。它将点云构建为图结构,让每个点都能与其邻近点交换信息,从而更有效地捕捉物体的局部几何特征和空间关系,显著提升了检测精度,尤其在处理遮挡和复杂背景时表现优异。
这款工具非常适合从事计算机视觉研究的学者、自动驾驶算法工程师以及深度学习开发者使用。由于官方实现基于 TensorFlow 1.15 并提供了完整的训练与推理代码,使用者需要具备一定的编程基础和深度学习框架操作经验。虽然配置环境(如 CUDA、KITTI 数据集处理)有一定门槛,但其清晰的文档和模块化设计为复现前沿算法提供了便利,是探索三维感知领域的有力参考实现。
使用场景
某自动驾驶初创团队正在开发城市道路感知系统,急需从激光雷达点云数据中精准识别车辆与行人以规划行驶路径。
没有 Point-GNN 时
- 传统体素化方法在处理稀疏点云时丢失大量细节,导致远处小目标(如行人)漏检率高达 30%。
- 基于固定网格的算法难以适应不同密度和形状的物体,对遮挡严重或姿态倾斜的车辆检测框偏差较大。
- 后处理阶段依赖繁琐的人工规则进行边界框合并与评分,不仅调参耗时,还常因规则冲突产生重复检测。
- 模型无法有效捕捉点与点之间的长距离拓扑关系,在复杂路口场景下误将路边护栏识别为障碍物。
使用 Point-GNN 后
- 利用图神经网络直接在原始点云上构建局部邻域图,保留了细微几何特征,将远处行人的召回率提升至 85% 以上。
- 通过自适应的图结构聚合信息,模型能灵活应对各种形状和遮挡情况,对倾斜车辆的定位精度显著提高。
- 内置的自动边界框合并与评分机制替代了人工规则,大幅简化了部署流程,同时消除了重复检测问题。
- 强大的全局上下文建模能力让系统能准确区分动态车辆与静态背景设施,在复杂路口场景下的误报率降低了 40%。
Point-GNN 通过将点云转化为图结构进行深度学习,从根本上解决了稀疏数据下的特征丢失难题,为自动驾驶提供了更可靠的环境感知基石。
运行环境要求
- 未说明
需要 NVIDIA GPU 以支持 GPU 加速(可选但推荐),需安装 CUDA 10.0,具体显存大小未说明(文中提到使用双卡训练,单卡需减半 batch size 以节省显存)
未说明

快速开始
Point-GNN
本仓库包含我们论文 Point-GNN: 用于点云中3D目标检测的图神经网络 的参考实现,该论文发表于CVPR 2020。
如果您在研究中使用了此代码,请考虑引用我们的工作:
@InProceedings{Point-GNN,
author = {Shi, Weijing and Rajkumar, Ragunathan (Raj)},
title = {Point-GNN: 图神经网络用于点云中的3D目标检测},
booktitle = {IEEE计算机视觉与模式识别会议(CVPR)},
month = {6月},
year = {2020}
}
快速入门
前置条件
我们在此实现中使用TensorFlow 1.15。如果您需要GPU支持,请先安装CUDA。
pip3 install --user tensorflow-gpu==1.15.0
安装其他依赖项:
pip3 install --user opencv-python
pip3 install --user open3d-python==0.7.0.0
pip3 install --user scikit-learn
pip3 install --user tqdm
pip3 install --user shapely
KITTI数据集
我们使用KITTI 3D目标检测数据集。请从KITTI官网下载数据集,并同时下载3DOP训练/验证划分文件这里。我们在splits/目录下提供了按类别划分的额外文件。建议采用以下文件结构:
DATASET_ROOT_DIR
├── image # 左侧彩色图像
│ ├── training
| | └── image_2
│ └── testing
| └── image_2
├── velodyne # Velodyne点云文件
│ ├── training
| | └── velodyne
│ └── testing
| └── velodyne
├── calib # 校准文件
│ ├── training
| | └──calib
│ └── testing
| └── calib
├── labels # 训练标签
│ └── training
| └── label_2
└── 3DOP_splits # 划分文件。
├── train.txt
├── train_car.txt
└── ...
下载Point-GNN
递归克隆仓库:
git clone https://github.com/WeijingShi/Point-GNN.git --recursive
推理
运行检查点
在验证集上测试:
python3 run.py checkpoints/car_auto_T3_train/ --dataset_root_dir DATASET_ROOT_DIR --output_dir DIR_TO_SAVE_RESULTS
在测试集上测试:
python3 run.py checkpoints/car_auto_T3_trainval/ --test --dataset_root_dir DATASET_ROOT_DIR --output_dir DIR_TO_SAVE_RESULTS
usage: run.py [-h] [-l LEVEL] [--test] [--no-box-merge] [--no-box-score]
[--dataset_root_dir DATASET_ROOT_DIR]
[--dataset_split_file DATASET_SPLIT_FILE]
[--output_dir OUTPUT_DIR]
checkpoint_path
Point-GNN 在 KITTI 数据集上的推理
位置参数:
checkpoint_path 检查点路径
可选参数:
-h, --help 显示帮助信息并退出
-l LEVEL, --level LEVEL
可视化级别,0表示禁用,1表示非阻塞可视化,2表示阻塞。默认=0
--test 启用测试模型
--no-box-merge 禁用边界框合并
--no-box-score 禁用边界框得分
--dataset_root_dir DATASET_ROOT_DIR
KITTI 数据集路径。默认="../dataset/kitti/"
--dataset_split_file DATASET_SPLIT_FILE
KITTI 数据集划分文件路径。默认="DATASET_ROOT_DIR/3DOP_splits/val.txt"
--output_dir OUTPUT_DIR
保存检测结果的路径。默认="CHECKPOINT_PATH/eval/"
性能
安装Kitti原生离线评估工具:
cd kitti_native_evaluation
cmake ./
make
在验证集上评估输出结果:
evaluate_object_offline DATASET_ROOT_DIR/labels/training/label_2/ DIR_TO_SAVE_RESULTS
训练
我们将训练参数放在一个train_config文件中。要开始训练,我们需要train_config和config文件。
usage: train.py [-h] [--dataset_root_dir DATASET_ROOT_DIR]
[--dataset_split_file DATASET_SPLIT_FILE]
train_config_path config_path
PointGNN 的训练
位置参数:
train_config_path 训练配置文件路径
config_path 配置文件路径
可选参数:
-h, --help 显示帮助信息并退出
--dataset_root_dir DATASET_ROOT_DIR
KITTI 数据集路径。默认="../dataset/kitti/"
--dataset_split_file DATASET_SPLIT_FILE
KITTI 数据集划分文件路径。默认="DATASET_ROOT_DIR/3DOP_splits/train_config["train_dataset"]"
例如:
python3 train.py configs/car_auto_T3_train_train_config configs/car_auto_T3_train_config
我们强烈建议读者在开始训练前查看train_config文件。一些您可能需要首先调整的常见参数如下:
train_dir 存储检查点和日志的目录。
train_dataset 用于训练的数据集划分文件。
NUM_GPU 使用的GPU数量。我们在参考模型中使用了两块GPU。
如果您只想使用单块GPU,可能还需要将批量大小减半以节省显存。
同样地,如果您希望利用更多GPU,可以适当增加批量大小。
具体细节请参阅train.py文件。
我们还提供了一个评估脚本,用于定期评估检查点。例如:
python3 eval.py configs/car_auto_T3_train_eval_config
您可以使用TensorBoard查看训练和评估状态:
tensorboard --logdir=./train_dir
许可证
本项目采用MIT许可证授权 - 详情请参阅LICENSE文件。
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
Deep-Live-Cam
Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具,用户仅需一张静态照片,即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点,让高质量的数字内容创作变得触手可及。 这款工具不仅适合开发者和技术研究人员探索算法边界,更因其极简的操作逻辑(仅需三步:选脸、选摄像头、启动),广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换,还是制作趣味短视频和直播互动,Deep-Live-Cam 都能提供流畅的支持。 其核心技术亮点在于强大的实时处理能力,支持口型遮罩(Mouth Mask)以保留使用者原始的嘴部动作,确保表情自然精准;同时具备“人脸映射”功能,可同时对画面中的多个主体应用不同面孔。此外,项目内置了严格的内容安全过滤机制,自动拦截涉及裸露、暴力等不当素材,并倡导用户在获得授权及明确标注的前提下合规使用,体现了技术发展与伦理责任的平衡。