drl_grasping

GitHub
508 65 较难 1 次阅读 1周前BSD-3-Clause其他
AI 解读 由 AI 自动生成,仅供参考

drl_grasping 是一个专注于利用深度强化学习提升机器人抓取能力的开源项目。它旨在解决机器人在面对未知物体、复杂地形或全新视角时,难以仅凭紧凑的 3D 观测数据实现稳定抓取的难题。通过引入八叉树(Octrees)作为核心感知输入,该项目让机器人能够高效理解三维空间结构,从而学习到鲁棒的抓取策略。

该工具特别适合机器人领域的研究人员与开发者,尤其是那些致力于探索仿真到现实迁移(Sim-to-Real)、无模型强化学习算法以及机械臂控制的专业人士。其独特的技术亮点在于支持多种观测模式(如 RGB 图像、深度图及八叉树)的直接对比,并基于 ROS 2、Gazebo 和 MoveIt 2 构建了完整的训练与评估闭环。项目不仅集成了 TD3、SAC 等主流端到端算法,还成功验证了策略在零样本情况下从仿真环境迁移至真实机器人甚至类月面场景的能力,为复杂环境下的智能操作提供了强有力的实验平台。

使用场景

某航天科研团队正在开发月球采样返回任务中的自主机械臂系统,需要在未知且复杂的月面环境中抓取形态各异的岩石样本。

没有 drl_grasping 时

  • 感知数据冗余且处理慢:传统方法依赖高分辨率 RGB 图像或深度图,数据传输带宽占用大,且在嵌入式设备上实时处理 3D 点云的计算延迟极高。
  • 泛化能力差,难以应对新环境:基于规则或监督学习的策略一旦遇到训练集中未出现的岩石形状、光照变化或月壤纹理,抓取成功率急剧下降。
  • 仿真到现实的鸿沟巨大:在模拟器中训练好的模型,部署到真实机械臂上往往因物理参数差异而失效,需要耗费数周时间进行繁琐的微调(Sim-to-Real Gap)。
  • 动作规划不够灵活:传统的离散动作空间限制了机械臂的灵活性,难以在狭窄或非结构化地形中执行精细的连续笛卡尔空间运动。

使用 drl_grasping 后

  • 高效紧凑的八叉树感知:利用八叉树(Octrees)作为输入,将 3D 观测数据压缩至极致,显著降低了计算负载,实现了毫秒级的实时决策响应。
  • 强大的零样本迁移能力:基于深度强化学习训练的策略具备极强的鲁棒性,能直接将在仿真中学到的技能“零样本”迁移到真实的月球模拟设施中,无需额外微调。
  • 适应多样化未知场景:模型在面对从未见过的相机角度、陌生岩石形态及复杂地形纹理时,仍能保持高成功率,完美契合月球探测的不确定性。
  • 连续的精细操作控制:支持连续动作空间的端到端训练,使机械臂能够像人类一样平滑调整姿态,在复杂月面环境中完成高精度的抓取任务。

drl_grasping 通过结合紧凑的八叉树感知与深度强化学习,彻底解决了非结构化环境下机器人抓取的泛化难题,实现了从仿真到真实月球场景的无缝跨越。

运行环境要求

操作系统
  • Linux
GPU

需要 NVIDIA GPU (用于 O-CNN 硬件加速),具体型号和显存未说明,需支持 CUDA

内存

未说明 (但提及仿真环境计算复杂,训练缓慢,暗示需要较高配置)

依赖
notes1. 该项目强依赖机器人仿真生态,必须安装 ROS 2 Galactic、Gazebo Fortress 和 MoveIt 2。2. 核心算法基于 PyTorch 和 Stable-Baselines3,3D 特征提取使用微软的 O-CNN 库以利用 NVIDIA GPU 加速。3. 提供 Docker 部署选项(推荐)以避免复杂的环境配置。4. 目前不支持并行环境运行,且由于物理仿真和渲染的计算复杂性,训练速度较慢。5. 实验具有非确定性,即使种子相同结果也可能不同。
python未说明
ROS 2 Galactic
Gazebo Fortress
MoveIt 2
PyTorch
Stable-Baselines3
OpenAI Gym
O-CNN
TensorFlow (仅用于 DreamerV2)
drl_grasping hero image

快速开始

基于八叉树的机器人抓取深度强化学习

本项目专注于应用深度强化学习,从紧凑的八叉树形式的3D观测中获取鲁棒的策略,使机器人能够抓取各种不同的物体。

在新场景上评估训练好的策略(之前未见过的相机位姿、物体、地形纹理等)。

仅在仿真环境中训练的策略的仿真到现实迁移(零样本迁移)。鸣谢:奥尔堡大学

在仿真环境中评估用于月球表面岩石抓取的训练策略。

在月球模拟设施中的仿真到现实迁移(零样本迁移)。鸣谢:卢森堡大学

概述


该仓库包含多个用于机器人操作的强化学习环境,重点是使用笛卡尔空间中的连续动作进行机器人抓取。所有环境都有多种观测变体,便于直接比较(RGB图像、深度图、八叉树等)。每个任务都与一个仿真环境相关联,可用于训练强化学习智能体。这些智能体随后可以在集成ros2_control(或通过ros1_bridge集成ros_control)的实体机器人上进行评估。

端到端的无模型演员-评论家算法已在这些环境中进行了测试(TD3SACTQC | SB3 PyTorch实现)。还提供了一个用于实验基于模型的算法(DreamerV2 | 原始TensorFlow实现)的设置,不过目前仅限于RGB图像观测。由于与Gym API兼容,这些环境应能与大多数算法及其实现互操作。

环境列表

以下是已实现的环境列表。每个环境(观测变体)都有两个版本,Task-Obs-vXTask-Obs-Gazebo-vX(表格中省略)。其中,Task-Obs-vX实现了环境的逻辑,可用于真实机器人;而Task-Obs-Gazebo-vX则将该逻辑与Gazebo内的仿真环境结合在一起。对于大部分任务而言,机器人之间可以互换,但也有一些限制(例如,GraspPlanetary任务需要移动机械臂来完全随机化环境)。

如果您有兴趣配置这些环境,请先查看Gym注册中的参数列表,然后再查看各自的源代码。

到达末端执行器目标。 抓取并举起一个随机物体。 抓取并举起一块月球岩石。
Reach-v0(状态观测) Grasp-v0(状态观测) GraspPlanetary-v0(状态观测)
GraspPlanetary-MonoImage-v0
Reach-ColorImage-v0 GraspPlanetary-ColorImage-v0
Reach-DepthImage-v0 GraspPlanetary-DepthImage-v0
GraspPlanetary-DepthImageWithIntensity-v0
GraspPlanetary-DepthImageWithColor-v0
Reach-Octree-v0 Grasp-Octree-v0 GraspPlanetary-Octree-v0
Reach-OctreeWithIntensity-v0 Grasp-OctreeWithIntensity-v0 GraspPlanetary-OctreeWithIntensity-v0
Reach-OctreeWithColor-v0 Grasp-OctreeWithColor-v0 GraspPlanetary-OctreeWithColor-v0

默认情况下,GraspGraspPlanetary任务会使用GraspCurriculum,以调整其奖励函数和环境难度。

领域随机化

为了促进训练好的智能体从仿真环境到真实世界的迁移,仿真环境引入了领域随机化技术,旨在提高学习策略的泛化能力。这种随机化通过ManipulationGazeboEnvRandomizer实现,它会在每次环境重置时填充虚拟世界,并支持对多个属性进行随机化。由于该随机化器包含大量可配置参数,请查看源代码以了解您可以创建哪些环境。

“Grasp”任务的领域随机化示例。

“GraspPlanetary”任务的领域随机化示例。

模型数据集

本仓库中的仿真环境可以使用任何SDF模型的数据集,例如来自Fuel的模型。默认情况下,“Grasp”任务会使用Google扫描对象集合,并结合由TEXTURE_DIRS环境变量指定的一组PBR材质贴图。相比之下,“GraspPlanetary”任务则采用通过Blender程序化生成的自定义模型。不过,这些设置也可以根据需要进行调整。

所有外部模型在被插入到场景之前,都可以通过ModelCollectionRandomizer以多种方式进行自动配置和随机化,例如优化碰撞几何、估算(随机化的)惯性属性,以及随机化几何尺度或表面摩擦等参数。在处理大型模型集合时,还可以基于几何复杂度或是否存在孤立组件等多个方面启用模型过滤功能。用于管理数据集的一些脚本可以在scripts/utils/目录下找到。

基于3D八叉树观测的端到端学习

该项目最初研究了如何利用3D视觉观测来提升操纵技能的端到端学习效果。之所以选择八叉树结构,是因为与其他3D表示方法相比,它具有更高效的组织方式。

为从3D八叉树观测中提取抽象特征,项目采用了基于八叉树的3D卷积神经网络。负责此类特征提取的网络模块以OctreeCnnFeaturesExtractor的形式实现(PyTorch)。该特征提取器是为TD3、SAC和TQC算法实现的OctreeCnnPolicy策略的一部分。内部,该提取器利用了Microsoft O-CNN的实现,从而能够在NVIDIA GPU上获得硬件加速。

带有八叉树3D卷积神经网络特征提取器的端到端演员-评论家网络架构示意图。

局限性

为方便起见,以下列出了本仓库已知的局限性:

  • 不支持并行环境—— 目前无法同时运行多个环境实例。
  • 训练速度较慢—— 仿真环境计算复杂度较高(物理模拟、渲染、底层低级控制等),这显著影响了在时间和计算资源受限的情况下训练智能体的能力。可以通过牺牲部分精度和真实性来提升某些方面的性能(如调整physics_rate/step_size)。
  • 超参数欠佳—— 尽管针对部分环境与算法组合使用了超参数优化框架,但这一过程较为耗时。加之超参数数量众多且普遍较为敏感,因此本仓库提供的默认超参数可能并非最优。
  • 非确定性—— 实验结果并不完全可重复,即使使用相同的伪随机数种子也可能产生不同结果。这主要归因于基于网络的通信的非确定性,以及底层深度学习框架和硬件本身的非确定性等因素。

使用说明

在使用本仓库时,有两种设置方式可供选择。对于初次尝试本仓库的用户,推荐使用选项A——Docker,因为它更为简便。如果您更倾向于本地安装,则可以选择选项B——本地安装。这两种方式在使用本仓库时并无优劣之分;然而,预构建的Docker镜像自带所有必要的数据集,并能实现运行环境的隔离。

选项A——Docker

硬件要求

  • CUDA GPU—— 处理八叉树观测需要支持CUDA的GPU。其他部分则可在CPU上正常运行。

安装Docker

首先,请确保您的系统已配置好使用Docker与NVIDIA GPU。您可以按照适用于Debian系发行版的install_docker_with_nvidia.bash安装脚本进行操作。或者,您也可以参考NVIDIA Container Toolkit安装指南来为其他Linux发行版进行配置。

# 在克隆的仓库内执行脚本
.docker/host/install_docker_with_nvidia.bash
# (替代方案)直接从URL执行脚本
bash -c "$(wget -qO - https://raw.githubusercontent.com/AndrejOrsula/drl_grasping/master/.docker/host/install_docker_with_nvidia.bash)"

克隆预构建的 Docker 镜像

drl_grasping 的预构建 Docker 镜像可以直接从 Docker Hub 拉取,无需在本地构建。您可以使用以下命令手动拉取最新镜像或之前标记的某个 Release。镜像的平均大小为 25GB(包含数据集)。

docker pull andrejorsula/drl_grasping:${TAG:-latest}

(可选)构建新镜像

您也可以使用附带的 Dockerfile 在本地构建 Docker 镜像。为此,可以按如下方式执行 build.bash 脚本(参数为可选)。该脚本始终会打印相应的底层 docker build ... 命令,供您参考。

.docker/build.bash ${TAG:-latest} ${BUILD_ARGS}

运行 Docker 容器

为简便起见,请使用附带的 run.bash 脚本运行 drl_grasping Docker 容器(参数为可选)。该脚本启用了 NVIDIA GPU 和 GUI 界面,同时自动挂载必要的卷(例如持久化日志)并设置环境变量(例如使中间件通信与主机同步)。该脚本始终会打印相应的底层 docker run ... 命令,供您参考。

# 在克隆的仓库内执行脚本
.docker/run.bash ${TAG:-latest} ${CMD}
# (替代方法)直接从 URL 执行脚本
bash -c "$(wget -qO - https://raw.githubusercontent.com/AndrejOrsula/drl_grasping/master/.docker/run.bash)" -- ${TAG:-latest} ${CMD}

此 Docker 容器中 drl_grasping 的网络通信基于 ROS 2 的 ROS_DOMAIN_ID 环境变量进行配置,可通过 ROS_DOMAIN_ID={0...101} .docker/run.bash ${TAG:-latest} ${CMD} 来设置。默认情况下(ROS_DOMAIN_ID=0),外部通信受限且禁用多播。当设置为 ROS_DOMAIN_ID=42 时,通信仍限制在 localhost,但启用多播,允许监控容器外、同一系统内的通信。而使用 ROS_DOMAIN_ID=69 则会采用默认的网络接口和多播设置,从而能够监控同一局域网内的通信。其他所有 ROS_DOMAIN_ID 值均保持默认行为,可用于实现通信分区,以运行多个 drl_grasping 实例。

选项 B – 本地安装

硬件要求

  • CUDA GPU – 必须配备支持 CUDA 的 GPU,以实现八叉树观测的硬件加速处理。其余部分在 CPU 上也可正常运行。

依赖项

推荐使用 Ubuntu 20.04(Focal Fossa)作为本地安装的操作系统。其他 Linux 发行版也可能适用,但需要从源代码编译大部分依赖项。

以下是使用该项目所需的主依赖项,必须安装到您的系统中。

所有其他依赖项将通过 vcstooldrl_grasping.repos)获取,或在下方构建过程中通过 pippython_requirements.txt)和 rosdep 安装。

构建

递归克隆此仓库并导入 VCS 依赖项。然后安装依赖项,并使用 colcon 进行构建。

# 将此仓库克隆到您喜欢的 ROS 2 工作空间
git clone --recursive https://github.com/AndrejOrsula/drl_grasping.git
# 安装 Python 依赖项
pip3 install -r drl_grasping/python_requirements.txt
# 导入依赖项
vcs import < drl_grasping/drl_grasping.repos
# 安装依赖项
IGNITION_VERSION=fortress rosdep install -y -r -i --rosdistro ${ROS_DISTRO} --from-paths .
# 构建
colcon build --merge-install --symlink-install --cmake-args "-DCMAKE_BUILD_TYPE=Release"

引用环境变量

在通过本地安装使用该项目之前,请务必先引用 ROS 2 工作空间。

source install/local_setup.bash

这将启用以下功能:

  • 使用 drl_grasping Python 模块
  • 通过 ros2 run drl_grasping <可执行文件> 运行二进制文件、脚本和示例
  • 通过 ros2 launch drl_grasping <启动脚本> 启动设置脚本
  • 共享资源的可发现性
测试随机智能体

一个好的起点是使用随机智能体模拟一些训练回合,其中动作从定义的动作空间中随机采样。这在修改环境时也非常有用,因为它允许您在没有深度学习流水线运行的情况下分析动作及其产生的观测结果。要开始,请运行以下示例。它应该会打开 RViz 2 和 Gazebo 客户端实例,为您提供可视化反馈。

ros2 run drl_grasping ex_random_agent.bash

运行示例脚本后,底层的 ros2 launch drl_grasping random_agent.launch.py ... 命令及其所有参数都会被打印出来供您参考(示例如下)。如果需要,您可以直接使用自定义参数来启动该命令。

ros2 launch drl_grasping random_agent.launch.py seed:=42 robot_model:=lunalab_summit_xl_gen env:=GraspPlanetary-Octree-Gazebo-v0 check_env:=false render:=true enable_rviz:=true log_level:=warn
训练新智能体

您也可以从头开始训练自己的智能体。要开始训练,请运行以下示例。默认情况下,训练过程中会使用无头模式以减少计算负载。

ros2 run drl_grasping ex_train.bash

运行示例脚本后,底层的 ros2 launch drl_grasping train.launch.py ... 命令及其所有参数都会被打印出来供您参考(示例如下)。如果需要,您可以直接使用自定义参数来启动该命令。

ros2 launch drl_grasping train.launch.py seed:=42 robot_model:=panda env:=Grasp-OctreeWithColor-Gazebo-v0 algo:=tqc log_folder:=/root/drl_grasping_training/train/Grasp-OctreeWithColor-Gazebo-v0/logs tensorboard_log:=/root/drl_grasping_training/train/Grasp-OctreeWithColor-Gazebo-v0/tensorboard_logs save_freq:=10000 save_replay_buffer:=true log_interval:=-1 eval_freq:=10000 eval_episodes:=20 enable_rviz:=false log_level:=fatal

远程可视化

为了在训练过程中可视化智能体,可以分别打开 RViz 2 和 Gazebo 客户端实例。对于 Docker 部署,这些命令可以在一个新的 drl_grasping 容器中执行,且需使用相同的 ROS_DOMAIN_ID

# RViz 2(注:采用此方法不会加载机器人模型的可视化)
rviz2 -d $(ros2 pkg prefix --share drl_grasping)/rviz/drl_grasping.rviz

# 阁楼客户端
ign gazebo -g

TensorBoard

训练过程中,TensorBoard 日志将被生成到由 tensorboard_log:=${TENSORBOARD_LOG} 参数指定的目录中。你可以使用以下命令在浏览器中打开这些日志。

tensorboard --logdir ${TENSORBOARD_LOG}

(实验性)使用 Dreamer V2 进行训练

你也可以尝试使用基于模型的 Dreamer V2 算法来训练一些智能体。要开始训练,请运行以下示例。默认情况下,训练过程中会使用无头模式以减少计算负载。

ros2 run drl_grasping ex_train_dreamerv2.bash

运行示例脚本后,底层的 ros2 launch drl_grasping train_dreamerv2.launch.py ... 命令及其所有参数都会被打印出来供你参考(示例如下)。如果需要,你可以直接使用自定义参数来启动该命令。

ros2 launch drl_grasping train_dreamerv2.launch.py seed:=42 robot_model:=lunalab_summit_xl_gen env:=GraspPlanetary-ColorImage-Gazebo-v0 log_folder:=/root/drl_grasping_training/train/GraspPlanetary-ColorImage-Gazebo-v0/logs eval_freq:=10000 enable_rviz:=false log_level:=fatal
评估新智能体

一旦你训练好智能体,就可以对其进行评估。首先查看 ex_evaluate.bash,你可以根据自己的训练结果进行修改。该脚本会打开 RViz 2 和 Gazebo 客户端实例,为你提供可视化反馈,同时智能体的表现会被记录并输出到 STDOUT

ros2 run drl_grasping ex_evaluate.bash

运行示例脚本后,底层的 ros2 launch drl_grasping evaluate.launch.py ... 命令及其所有参数也会被打印出来供你参考(示例如下)。如果需要,你可以直接使用自定义参数来启动该命令。例如,你可以通过 load_checkpoint:=${LOAD_CHECKPOINT} 参数选择特定的检查点,而不是运行最终模型。

ros2 launch drl_grasping evaluate.launch.py seed:=77 robot_model:=panda env:=Grasp-Octree-Gazebo-v0 algo:=tqc log_folder:=/root/drl_grasping_training/train/Grasp-Octree-Gazebo-v0/logs reward_log:=/root/drl_grasping_training/evaluate/Grasp-Octree-Gazebo-v0 stochastic:=false n_episodes:=200 load_best:=false enable_rviz:=true log_level:=warn
优化超参数

使用 TD3、SAC 和 TQC 训练智能体的默认超参数可以在 hyperparams 目录下找到。可以使用 Optuna 自动调优其中的一些参数。要开始,运行以下示例。默认情况下,超参数优化过程中会使用无头模式以减少计算负载。

ros2 run drl_grasping ex_optimize.bash

运行示例脚本后,底层的 ros2 launch drl_grasping train.launch.py ... 命令及其所有参数也会被打印出来供你参考(示例如下)。如果需要,你可以直接使用自定义参数来启动该命令。

ros2 launch drl_grasping optimize.launch.py seed:=69 robot_model:=panda env:=Grasp-Octree-Gazebo-v0 algo:=tqc log_folder:=/root/drl_grasping_training/optimize/Grasp-Octree-Gazebo-v0/logs tensorboard_log:=/root/drl_grasping_training/optimize/Grasp-Octree-Gazebo-v0/tensorboard_logs n_timesteps:=1000000 sampler:=tpe pruner:=median n_trials:=20 n_startup_trials:=5 n_evaluations:=4 eval_episodes:=20 log_interval:=-1 enable_rviz:=true log_level:=fatal

引用

如果你在工作中使用了 drl_grasping,请使用以下引用:

@inproceedings{orsula_learning_2022,
  author    = {Andrej Orsula and Simon B{\o}gh and Miguel Olivares-Mendez and Carol Martinez},
  title     = {{Learning} to {Grasp} on the {Moon} from {3D} {Octree} {Observations} with {Deep} {Reinforcement} {Learning}},
  year      = {2022},
  booktitle = {2022 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  pages     = {4112--4119},
  doi       = {10.1109/IROS47612.2022.9981661}
}

目录结构

.
├── drl_grasping/        # [dir] 该项目的主要 Python 模块
│   ├── drl_octree/      # [dir] 用于从 3D 八叉树观测数据进行端到端学习的子模块
│   ├── envs/            # [dir] 环境子模块
│   │   ├── control/     # [dir] 智能体控制接口
│   │   ├── models/      # [dir] 用于仿真环境的功能性模型
│   │   ├── perception/  # [dir] 智能体感知接口
│   │   ├── randomizers/ # [dir] 仿真环境的领域随机化
│   │   ├── runtimes/    # [dir] 任务的运行时实现(仿真/真实)
│   │   ├── tasks/       # [dir] 任务的具体实现
│   │   ├── utils/       # [dir] 该子模块中跨模块使用的环境特定工具
│   │   └── worlds/      # [dir] 用于仿真环境的最小世界模板
│   └── utils/           # [dir] 用于训练和评估脚本样板的子模块(使用 SB3)
├── examples/            # [dir] 用于训练和评估强化学习智能体的示例
├── hyperparams/         # [dir] 用于训练强化学习智能体的默认超参数
├── launch/              # [dir] 可用于与该仓库交互的 ROS 2 启动脚本
├── pretrained_agents/   # [dir] 预训练智能体集合
├── rviz/                # [dir] RViz2 的可视化配置
├── scripts/             # [dir] 用于训练、评估及其他实用功能的辅助脚本
├── CMakeLists.txt       # 支持 Colcon 的 CMake 构建文件
└── package.xml          # ROS 2 包元数据

版本历史

2.0.02022/12/16
1.1.02021/10/14
1.0.02021/06/08

常见问题

相似工具推荐

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85.3k|★★☆☆☆|2天前
图像数据工具视频

funNLP

funNLP 是一个专为中文自然语言处理(NLP)打造的超级资源库,被誉为"NLP 民工的乐园”。它并非单一的软件工具,而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。 面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点,funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具,还独特地收录了丰富的垂直领域资源,如法律、医疗、金融行业的专用词库与数据集,甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性,从基础的字典词典到前沿的 BERT、GPT-2 模型代码,再到高质量的标注数据和竞赛方案,应有尽有。 无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师,还是从事人工智能研究的学者,都能在这里找到急需的“武器弹药”。对于开发者而言,它能大幅减少寻找数据和复现模型的时间;对于研究者,它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神,极大地降低了中文自然语言处理的开发与研究成本,是中文 AI 社区不可或缺的宝藏仓库。

79.9k|★☆☆☆☆|1周前
语言模型数据工具其他

cs-video-courses

cs-video-courses 是一个精心整理的计算机科学视频课程清单,旨在为自学者提供系统化的学习路径。它汇集了全球知名高校(如加州大学伯克利分校、新南威尔士大学等)的完整课程录像,涵盖从编程基础、数据结构与算法,到操作系统、分布式系统、数据库等核心领域,并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。 面对网络上零散且质量参差不齐的教学资源,cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容,仅收录真正的大学层级课程,排除了碎片化的简短教程或商业广告,确保用户能接触到严谨的学术内容。 这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员,以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽,不仅包含传统的软件工程与网络安全,还细分了生成式 AI、大语言模型、计算生物学等新兴学科,并直接链接至官方视频播放列表,让用户能一站式获取高质量的教育资源,免费享受世界顶尖大学的课堂体验。

79.8k|★☆☆☆☆|1周前
其他图像数据工具

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|2周前
Agent图像开发框架

PaddleOCR

PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。

75.9k|★★★☆☆|今天
语言模型图像开发框架

awesome-machine-learning

awesome-machine-learning 是一份精心整理的机器学习资源清单,汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点,这份清单按编程语言(如 Python、C++、Go 等)和应用场景(如计算机视觉、自然语言处理、深度学习等)进行了系统化分类,帮助使用者快速定位高质量项目。 它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库,还是资深工程师对比不同语言的技术选型,都能从中获得极具价值的参考。此外,清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源,构建了从学习到实践的全链路支持体系。 其独特亮点在于严格的维护标准:明确标记已停止维护或长期未更新的项目,确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”,awesome-machine-learning 以开源协作的方式持续更新,旨在降低技术探索门槛,让每一位从业者都能高效地站在巨人的肩膀上创新。

72.1k|★☆☆☆☆|2周前
开发框架其他