KITTI数据集下载与目录结构指南
本文档提供了KITTI数据集的完整下载指南,包含两个主要部分:KITTI_dataset(3D目标检测训练集)和KITTI_raw_data(原始连续帧数据)。文档详细介绍了两种下载方式(自动脚本和手动下载)、解压步骤、目录结构说明以及数据完整性验证方法。KITTI_dataset包含7482张图像及其对应的LiDAR点云、标定文件和标签,约15-20GB;KITTI_raw_data包含多个连续
KITTI数据集下载与目录结构指南
目录
概述
本项目需要两个KITTI数据集:
-
KITTI_dataset: 3D目标检测训练集(用于训练和评估)
- 包含7482张图像及其对应的LiDAR点云、标定文件和标签
- 文件索引范围:
000000到007481
-
KITTI_raw_data: 原始连续帧数据(用于视频处理)
- 包含多个连续帧序列
- 用于生成处理后的视频输出
数据集大小估算
- KITTI_dataset: 约 15-20 GB(压缩包约 12 GB)
- KITTI_raw_data: 每个序列约 1-5 GB(取决于序列长度)
下载时间估算
- 取决于网络速度
- 建议使用稳定的网络连接
- 可以使用断点续传(
wget -c)
KITTI_dataset 下载指南
数据集说明
KITTI 3D目标检测数据集包含以下4个压缩包:
- data_object_image_2.zip - 左侧彩色图像(约 12 GB)
- data_object_velodyne.zip - LiDAR点云数据(约 29 GB)
- data_object_calib.zip - 标定文件(约 1 MB)
- data_object_label_2.zip - 3D边界框标签(约 5 MB)
方法一:使用wget自动下载(推荐)
创建下载脚本 download_kitti_dataset.sh:
#!/bin/bash
# 设置目标目录
DATASET_DIR="/home/dlh/YOLO-LiDAR-Fusion/KITTI_dataset"
mkdir -p "$DATASET_DIR"
cd "$DATASET_DIR" || exit 1
# KITTI数据集下载链接(官方S3存储)
BASE_URL="https://s3.eu-central-1.amazonaws.com/avg-kitti/data_object_image_2"
# 定义要下载的文件
FILES=(
"data_object_image_2.zip"
"data_object_velodyne.zip"
"data_object_calib.zip"
"data_object_label_2.zip"
)
echo "=========================================="
echo "开始下载KITTI 3D目标检测数据集"
echo "目标目录: $DATASET_DIR"
echo "=========================================="
echo ""
# 下载每个文件
for file in "${FILES[@]}"; do
echo "正在下载: $file"
echo "URL: ${BASE_URL}/${file}"
# 使用wget断点续传下载
wget -c --progress=bar:force:noscroll \
"${BASE_URL}/${file}" \
-O "$file" \
2>&1 | tee "download_${file%.zip}.log"
if [ $? -eq 0 ]; then
echo "✅ 成功下载: $file"
# 验证文件大小
file_size=$(du -h "$file" | cut -f1)
echo " 文件大小: $file_size"
else
echo "❌ 下载失败: $file"
echo " 请检查网络连接或手动下载"
fi
echo ""
done
echo "=========================================="
echo "下载完成!"
echo "=========================================="
使用方法:
chmod +x download_kitti_dataset.sh
./download_kitti_dataset.sh
方法二:手动下载
-
访问KITTI官网:
- 链接: https://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d
- 需要注册账号(免费)
-
下载文件:
- 登录后,下载以下4个文件到
KITTI_dataset目录:data_object_image_2.zipdata_object_velodyne.zipdata_object_calib.zipdata_object_label_2.zip
- 登录后,下载以下4个文件到
解压数据集
下载完成后,解压所有文件:
cd /home/dlh/YOLO-LiDAR-Fusion/KITTI_dataset
# 解压图像数据
echo "解压图像数据..."
unzip -q data_object_image_2.zip
# 解压LiDAR点云数据
echo "解压LiDAR点云数据..."
unzip -q data_object_velodyne.zip
# 解压标定文件
echo "解压标定文件..."
unzip -q data_object_calib.zip
# 解压标签文件
echo "解压标签文件..."
unzip -q data_object_label_2.zip
echo "解压完成!"
或者使用自动化脚本:
#!/bin/bash
# extract_kitti_dataset.sh
DATASET_DIR="/home/dlh/YOLO-LiDAR-Fusion/KITTI_dataset"
cd "$DATASET_DIR" || exit 1
echo "开始解压KITTI数据集..."
for zip_file in *.zip; do
if [ -f "$zip_file" ]; then
echo "解压: $zip_file"
unzip -q "$zip_file"
if [ $? -eq 0 ]; then
echo "✅ 成功解压: $zip_file"
else
echo "❌ 解压失败: $zip_file"
fi
fi
done
echo "解压完成!"
echo ""
echo "验证目录结构..."
ls -d data_object_*/training/*/
验证下载完整性
# 检查文件数量
echo "图像文件数量:"
ls -1 data_object_image_2/training/image_2/*.png | wc -l
# 应该显示: 7482
echo "LiDAR点云文件数量:"
ls -1 data_object_velodyne/training/velodyne/*.bin | wc -l
# 应该显示: 7482
echo "标定文件数量:"
ls -1 data_object_calib/training/calib/*.txt | wc -l
# 应该显示: 7482
echo "标签文件数量:"
ls -1 data_object_label_2/training/label_2/*.txt | wc -l
# 应该显示: 7482

KITTI_raw_data 下载指南
数据集说明
KITTI原始数据包含多个连续帧序列,每个序列包含:
- 连续的多帧图像(
image_02/data/) - 对应的LiDAR点云(
velodyne_points/data/) - 标定文件(
calib/) - 时间戳文件(
timestamps.txt)
方法一:使用提供的下载脚本
项目已包含下载脚本 download_kitti_raw.sh:
#!/bin/bash
# KITTI原始数据下载脚本
RAW_DATA_DIR="/home/dlh/YOLO-LiDAR-Fusion/KITTI_raw_data"
BASE_URL="https://s3.eu-central-1.amazonaws.com/avg-kitti/raw_data"
# 常用序列列表
SEQUENCES=(
"2011_09_26_drive_0001"
"2011_09_26_drive_0002"
"2011_09_26_drive_0005"
"2011_09_26_drive_0009"
"2011_09_26_drive_0011"
"2011_09_26_drive_0013"
"2011_09_26_drive_0014"
"2011_09_26_drive_0015"
"2011_09_26_drive_0017"
"2011_09_26_drive_0018"
"2011_09_26_drive_0019"
"2011_09_26_drive_0020"
"2011_09_26_drive_0022"
"2011_09_26_drive_0023"
"2011_09_26_drive_0027"
"2011_09_26_drive_0028"
"2011_09_26_drive_0029"
"2011_09_26_drive_0032"
"2011_09_26_drive_0035"
"2011_09_26_drive_0036"
)
mkdir -p "$RAW_DATA_DIR"
cd "$RAW_DATA_DIR"
echo "开始下载KITTI原始数据..."
echo "注意:如果下载失败,可能需要从官网手动下载:"
echo "https://www.cvlibs.net/datasets/kitti/raw_data.php"
echo ""
for seq in "${SEQUENCES[@]}"; do
echo "尝试下载序列: $seq"
# 尝试不同的URL格式
URLS=(
"${BASE_URL}/${seq}/${seq}_sync.zip"
"${BASE_URL}/${seq}_sync/${seq}_sync.zip"
"${BASE_URL}/${seq}/${seq}.zip"
)
for url in "${URLS[@]}"; do
if wget -c --spider "$url" 2>&1 | grep -q "200 OK"; then
echo "找到有效链接: $url"
wget -c --progress=bar:force "$url" -O "${seq}_sync.zip"
if [ $? -eq 0 ]; then
echo "✅ 成功下载: $seq"
break
fi
fi
done
sleep 1
done
echo ""
echo "下载完成!如果某些序列下载失败,请从官网手动下载"
使用方法:
chmod +x download_kitti_raw.sh
./download_kitti_raw.sh
方法二:手动下载
-
访问KITTI原始数据页面:
- 链接: https://www.cvlibs.net/datasets/kitti/raw_data.php
- 需要注册账号
-
选择序列:
- 选择日期和驱动序列(如
2011_09_26_drive_0001) - 下载对应的
*_sync.zip文件
- 选择日期和驱动序列(如
-
下载到目标目录:
# 将下载的zip文件放到KITTI_raw_data目录 mv ~/Downloads/2011_09_26_drive_0001_sync.zip \ /home/dlh/YOLO-LiDAR-Fusion/KITTI_raw_data/
解压原始数据
重要: KITTI原始数据的zip文件解压后需要重新组织目录结构!
步骤1:解压所有zip文件
cd /home/dlh/YOLO-LiDAR-Fusion/KITTI_raw_data
# 解压所有序列
for zip_file in *_sync.zip; do
if [ -f "$zip_file" ]; then
echo "解压: $zip_file"
unzip -q "$zip_file"
fi
done
步骤2:重新组织目录结构
解压后,每个序列会创建类似 2011_09_26/2011_09_26_drive_0001_sync/ 的目录结构。
需要将结构重组为项目要求的格式:
#!/bin/bash
# reorganize_raw_data.sh
RAW_DATA_DIR="/home/dlh/YOLO-LiDAR-Fusion/KITTI_raw_data"
cd "$RAW_DATA_DIR" || exit 1
echo "重新组织KITTI原始数据目录结构..."
# 查找所有解压后的序列目录
for seq_dir in 2011_*/2011_*_drive_*_sync; do
if [ -d "$seq_dir" ]; then
echo "处理序列: $seq_dir"
# 提取序列名称(如 2011_09_26_drive_0001_sync)
seq_name=$(basename "$seq_dir")
# 创建目标目录结构
mkdir -p "$seq_name"
# 复制标定文件
if [ -d "$seq_dir/calib" ]; then
cp -r "$seq_dir/calib" "$seq_name/"
fi
# 复制图像数据
if [ -d "$seq_dir/image_02" ]; then
cp -r "$seq_dir/image_02" "$seq_name/"
fi
# 复制LiDAR点云数据
if [ -d "$seq_dir/velodyne_points" ]; then
cp -r "$seq_dir/velodyne_points" "$seq_name/"
fi
echo "✅ 完成: $seq_name"
fi
done
echo ""
echo "清理原始解压目录..."
rm -rf 2011_*/
echo "重新组织完成!"
或者,如果只需要处理单个序列:
# 假设已解压 2011_09_26_drive_0001_sync.zip
# 解压后结构: 2011_09_26/2011_09_26_drive_0001_sync/
# 创建目标目录
mkdir -p 2011_09_26_drive_0001_sync
# 复制必要文件
cp -r 2011_09_26/2011_09_26_drive_0001_sync/calib 2011_09_26_drive_0001_sync/
cp -r 2011_09_26/2011_09_26_drive_0001_sync/image_02 2011_09_26_drive_0001_sync/
cp -r 2011_09_26/2011_09_26_drive_0001_sync/velodyne_points 2011_09_26_drive_0001_sync/
# 清理
rm -rf 2011_09_26/
目录结构详解
KITTI_dataset 目录结构
KITTI_dataset/
├── data_object_image_2/ # 图像数据
│ └── training/
│ └── image_2/
│ ├── 000000.png # 图像文件(索引 000000-007481)
│ ├── 000001.png
│ ├── ...
│ └── 007481.png
│
├── data_object_velodyne/ # LiDAR点云数据
│ └── training/
│ └── velodyne/
│ ├── 000000.bin # 点云文件(索引 000000-007481)
│ ├── 000001.bin
│ ├── ...
│ └── 007481.bin
│
├── data_object_calib/ # 标定文件
│ └── training/
│ └── calib/
│ ├── 000000.txt # 标定文件(索引 000000-007481)
│ ├── 000001.txt
│ ├── ...
│ └── 007481.txt
│
└── data_object_label_2/ # 3D边界框标签
└── training/
└── label_2/
├── 000000.txt # 标签文件(索引 000000-007481)
├── 000001.txt
├── ...
└── 007481.txt
文件说明
1. 图像文件 (*.png)
- 格式: PNG
- 尺寸: 1242 × 375 像素
- 颜色: RGB
- 数量: 7482 张
- 用途: YOLOv8分割模型的输入
2. LiDAR点云文件 (*.bin)
- 格式: 二进制文件
- 数据类型:
float32 - 结构: 每行4个值
[x, y, z, intensity] - 点云数量: 约 100,000 - 150,000 点/帧
- 坐标系: Velodyne LiDAR坐标系
- 读取方法:
points = np.fromfile('000000.bin', dtype=np.float32).reshape(-1, 4) # points shape: (N, 4) where N is number of points
3. 标定文件 (*.txt)
- 格式: 文本文件
- 内容: 相机和LiDAR之间的变换矩阵
- 关键参数:
P2: 相机2的投影矩阵 (3×4)R0_rect: 校正矩阵 (3×3)Tr_velo_to_cam: LiDAR到相机的变换矩阵 (3×4)
- 示例内容:
P2: 7.215377e+02 0.000000e+00 6.095593e+02 4.485728e+01 0.000000e+00 7.215377e+02 1.728540e+02 2.163791e-01 0.000000e+00 0.000000e+00 1.000000e+00 2.745884e-03 R0_rect: 9.999239e-01 9.837760e-03 -7.131048e-03 -9.837796e-03 9.999421e-01 -4.859612e-03 7.123802e-03 4.860459e-03 9.999488e-01 Tr_velo_to_cam: 7.533745e-03 -9.999714e-01 -6.166020e-04 -4.069766e-03 1.480249e-02 7.280733e-04 -9.998902e-01 -7.631618e-02 9.998621e-01 7.523790e-03 1.480755e-02 -2.717806e-01
4. 标签文件 (*.txt)
- 格式: 文本文件
- 每行一个对象
- 格式:
类别 截断 遮挡 角度 2D边界框 3D尺寸 3D位置 旋转角 - 示例:
Car 0.00 0 -1.57 587.01 173.33 614.12 238.11 1.65 1.67 3.64 -0.65 1.71 46.70 -1.59 Pedestrian 0.00 0 -0.20 712.40 143.00 810.73 307.92 1.60 0.60 1.73 0.23 1.57 9.72 -0.20 - 字段说明:
类别: Car, Pedestrian, Cyclist, DontCare等截断: 0-1,对象被截断的程度遮挡: 0-3,遮挡程度角度: 观察角度(弧度)2D边界框:[x1, y1, x2, y2]像素坐标3D尺寸:[高度, 宽度, 长度]米3D位置:[x, y, z]相机坐标系,米旋转角: 绕Y轴旋转角度(弧度)
KITTI_raw_data 目录结构
KITTI_raw_data/
├── 2011_09_26_drive_0001_sync/ # 序列1
│ ├── calib/
│ │ ├── calib_cam_to_cam.txt # 相机到相机的标定
│ │ ├── calib_velo_to_cam.txt # LiDAR到相机的标定
│ │ └── calib_imu_to_velo.txt # IMU到LiDAR的标定
│ │
│ ├── image_02/ # 相机2图像(左侧彩色相机)
│ │ ├── data/
│ │ │ ├── 0000000000.png # 连续帧图像
│ │ │ ├── 0000000001.png
│ │ │ ├── ...
│ │ │ └── 0000000107.png
│ │ └── timestamps.txt # 时间戳文件
│ │
│ └── velodyne_points/ # LiDAR点云
│ ├── data/
│ │ ├── 0000000000.bin # 连续帧点云
│ │ ├── 0000000001.bin
│ │ ├── ...
│ │ └── 0000000107.bin
│ └── timestamps.txt # 时间戳文件
│
├── 2011_09_26_drive_0002_sync/ # 序列2
│ └── ...
│
└── ... # 其他序列
文件说明
1. 标定文件
-
calib_cam_to_cam.txt: 包含相机内参和相机之间的变换
P_rect_02: 相机2的校正投影矩阵R_rect_00: 校正旋转矩阵
-
calib_velo_to_cam.txt: LiDAR到相机的变换
R: 旋转矩阵 (3×3)T: 平移向量 (3×1)
2. 图像文件
- 格式: PNG
- 命名: 10位数字,从
0000000000.png开始 - 数量: 每个序列约 100-500 帧(取决于序列长度)
3. LiDAR点云文件
- 格式: 二进制文件(与KITTI_dataset相同)
- 命名: 与图像文件对应(相同索引)
- 同步: 图像和点云通过时间戳同步
4. 时间戳文件 (timestamps.txt)
- 格式: 每行一个时间戳
- 格式:
YYYY-MM-DD HH:MM:SS.ffffff - 用途: 确保图像和点云的同步
验证数据集完整性
验证KITTI_dataset
创建验证脚本 verify_kitti_dataset.sh:
#!/bin/bash
DATASET_DIR="/home/dlh/YOLO-LiDAR-Fusion/KITTI_dataset"
cd "$DATASET_DIR" || exit 1
echo "=========================================="
echo "验证KITTI_dataset完整性"
echo "=========================================="
echo ""
# 检查目录是否存在
required_dirs=(
"data_object_image_2/training/image_2"
"data_object_velodyne/training/velodyne"
"data_object_calib/training/calib"
"data_object_label_2/training/label_2"
)
for dir in "${required_dirs[@]}"; do
if [ -d "$dir" ]; then
echo "✅ 目录存在: $dir"
else
echo "❌ 目录缺失: $dir"
fi
done
echo ""
echo "检查文件数量..."
# 检查图像文件
image_count=$(ls -1 data_object_image_2/training/image_2/*.png 2>/dev/null | wc -l)
echo "图像文件数量: $image_count (期望: 7482)"
# 检查点云文件
velodyne_count=$(ls -1 data_object_velodyne/training/velodyne/*.bin 2>/dev/null | wc -l)
echo "点云文件数量: $velodyne_count (期望: 7482)"
# 检查标定文件
calib_count=$(ls -1 data_object_calib/training/calib/*.txt 2>/dev/null | wc -l)
echo "标定文件数量: $calib_count (期望: 7482)"
# 检查标签文件
label_count=$(ls -1 data_object_label_2/training/label_2/*.txt 2>/dev/null | wc -l)
echo "标签文件数量: $label_count (期望: 7482)"
echo ""
echo "检查文件索引连续性..."
# 检查索引范围
first_image=$(ls -1 data_object_image_2/training/image_2/*.png | head -1 | xargs basename | sed 's/.png//')
last_image=$(ls -1 data_object_image_2/training/image_2/*.png | tail -1 | xargs basename | sed 's/.png//')
echo "图像索引范围: $first_image 到 $last_image"
# 检查是否有缺失的索引
missing_count=0
for i in {0..7481}; do
idx=$(printf "%06d" $i)
if [ ! -f "data_object_image_2/training/image_2/${idx}.png" ]; then
missing_count=$((missing_count + 1))
if [ $missing_count -le 10 ]; then
echo "⚠️ 缺失图像: ${idx}.png"
fi
fi
done
if [ $missing_count -eq 0 ]; then
echo "✅ 所有图像文件完整"
else
echo "⚠️ 缺失 $missing_count 个图像文件"
fi
echo ""
echo "=========================================="
echo "验证完成"
echo "=========================================="
验证KITTI_raw_data
#!/bin/bash
RAW_DATA_DIR="/home/dlh/YOLO-LiDAR-Fusion/KITTI_raw_data"
cd "$RAW_DATA_DIR" || exit 1
echo "=========================================="
echo "验证KITTI_raw_data完整性"
echo "=========================================="
echo ""
# 查找所有序列目录
sequences=$(find . -maxdepth 1 -type d -name "2011_*_drive_*_sync" | sort)
if [ -z "$sequences" ]; then
echo "❌ 未找到任何序列目录"
exit 1
fi
echo "找到的序列:"
echo "$sequences" | while read seq; do
seq_name=$(basename "$seq")
echo " - $seq_name"
done
echo ""
echo "检查每个序列的完整性..."
for seq_dir in $sequences; do
seq_name=$(basename "$seq_dir")
echo ""
echo "检查序列: $seq_name"
# 检查标定文件
if [ -f "$seq_dir/calib/calib_cam_to_cam.txt" ] && \
[ -f "$seq_dir/calib/calib_velo_to_cam.txt" ]; then
echo " ✅ 标定文件完整"
else
echo " ❌ 标定文件缺失"
fi
# 检查图像文件
if [ -d "$seq_dir/image_02/data" ]; then
image_count=$(ls -1 "$seq_dir/image_02/data"/*.png 2>/dev/null | wc -l)
echo " ✅ 图像文件: $image_count 帧"
else
echo " ❌ 图像目录缺失"
fi
# 检查点云文件
if [ -d "$seq_dir/velodyne_points/data" ]; then
point_count=$(ls -1 "$seq_dir/velodyne_points/data"/*.bin 2>/dev/null | wc -l)
echo " ✅ 点云文件: $point_count 帧"
# 检查图像和点云数量是否匹配
if [ "$image_count" -eq "$point_count" ]; then
echo " ✅ 图像和点云数量匹配"
else
echo " ⚠️ 图像和点云数量不匹配"
fi
else
echo " ❌ 点云目录缺失"
fi
done
echo ""
echo "=========================================="
echo "验证完成"
echo "=========================================="
常见问题与解决方案
问题1: 下载速度慢或中断
解决方案:
- 使用断点续传:
wget -c - 使用多线程下载工具(如
aria2c):aria2c -x 8 -s 8 "https://s3.eu-central-1.amazonaws.com/avg-kitti/data_object_image_2/data_object_image_2.zip" - 使用代理或VPN
- 手动下载(从官网)
问题2: 解压失败(文件损坏)
解决方案:
- 重新下载损坏的文件
- 验证文件完整性(如果提供了MD5校验和)
- 使用
unzip -t测试zip文件:unzip -t data_object_image_2.zip
问题3: 磁盘空间不足
解决方案:
- 检查可用空间:
df -h /home/dlh/YOLO-LiDAR-Fusion - 解压后删除zip文件(节省空间):
# 解压完成后删除zip文件 rm -f KITTI_dataset/*.zip rm -f KITTI_raw_data/*.zip - 只下载需要的部分(如只下载图像和点云,不下载原始数据)
问题4: 目录结构不正确
解决方案:
- 检查README.md中的要求结构
- 使用提供的重组脚本
- 手动创建符号链接(如果需要):
# 如果文件在其他位置 ln -s /path/to/actual/data KITTI_dataset/data_object_image_2
问题5: 文件索引不连续
解决方案:
- 检查是否有缺失的文件
- 某些索引可能确实不存在(KITTI数据集可能有跳号)
- 代码应该能够处理缺失的索引
问题6: 权限问题
解决方案:
# 确保有读写权限
chmod -R 755 /home/dlh/YOLO-LiDAR-Fusion/KITTI_dataset
chmod -R 755 /home/dlh/YOLO-LiDAR-Fusion/KITTI_raw_data
问题7: 原始数据解压后结构混乱
解决方案:
- 使用提供的重组脚本
reorganize_raw_data.sh - 手动重组(参考上面的步骤2)
- 确保每个序列目录包含:
calib/目录image_02/目录velodyne_points/目录
快速参考
下载命令汇总
# KITTI_dataset
cd /home/dlh/YOLO-LiDAR-Fusion/KITTI_dataset
wget -c https://s3.eu-central-1.amazonaws.com/avg-kitti/data_object_image_2/data_object_image_2.zip
wget -c https://s3.eu-central-1.amazonaws.com/avg-kitti/data_object_image_2/data_object_velodyne.zip
wget -c https://s3.eu-central-1.amazonaws.com/avg-kitti/data_object_image_2/data_object_calib.zip
wget -c https://s3.eu-central-1.amazonaws.com/avg-kitti/data_object_image_2/data_object_label_2.zip
# 解压
unzip -q data_object_image_2.zip
unzip -q data_object_velodyne.zip
unzip -q data_object_calib.zip
unzip -q data_object_label_2.zip
验证命令
# 检查文件数量
ls -1 KITTI_dataset/data_object_image_2/training/image_2/*.png | wc -l
ls -1 KITTI_dataset/data_object_velodyne/training/velodyne/*.bin | wc -l
# 检查目录结构
tree -L 3 KITTI_dataset/
tree -L 3 KITTI_raw_data/
清理命令
# 删除zip文件(解压后)
rm -f KITTI_dataset/*.zip
rm -f KITTI_raw_data/*.zip
# 删除临时文件
rm -f KITTI_dataset/download_*.log
总结
- KITTI_dataset: 用于训练和评估,包含7482个样本
- KITTI_raw_data: 用于视频处理,包含多个连续帧序列
- 下载: 可以使用wget自动下载或从官网手动下载
- 解压: 注意原始数据需要重组目录结构
- 验证: 使用提供的脚本验证数据集完整性
完成数据集下载和组织后,即可开始使用项目进行3D目标检测!
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)