Ubuntu 20.04下保姆级安装SUSTechPOINTS点云标注工具(含Docker避坑与uWSGI解决)

张开发
2026/6/5 14:18:51 15 分钟阅读

分享文章

Ubuntu 20.04下保姆级安装SUSTechPOINTS点云标注工具(含Docker避坑与uWSGI解决)
Ubuntu 20.04下SUSTechPOINTS点云标注工具全流程部署指南在自动驾驶和机器人研究领域3D点云标注是构建高质量训练数据的关键环节。SUSTechPOINTS作为一款开源的3D点云目标检测标注工具因其简洁的界面和实用的功能而备受研究者青睐。然而在实际部署过程中不少开发者会在Docker配置、环境依赖和uWSGI编译等环节遇到棘手问题。本文将带您避开这些坑实现从零开始的一次性成功部署。1. 环境准备与Docker配置部署SUSTechPOINTS的第一步是确保基础环境就绪。Ubuntu 20.04作为长期支持版本提供了稳定的运行基础但仍需注意以下几个关键点系统要求检查清单Ubuntu 20.04.4 LTS推荐或更高版本至少8GB内存处理大型点云文件时建议16GB以上50GB可用磁盘空间已安装Git和curl基础工具Docker作为容器化部署的核心其正确配置直接关系到后续步骤的顺利进行。不同于简单的apt install命令我们需要关注权限管理和镜像构建的细节# 卸载旧版本Docker如有 sudo apt remove docker docker-engine docker.io containerd runc # 安装依赖工具 sudo apt update sudo apt install -y apt-transport-https ca-certificates curl software-properties-common # 添加Docker官方GPG密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 设置稳定版仓库 echo deb [archamd64 signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 安装Docker引擎 sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io注意安装完成后务必执行sudo usermod -aG docker $USER将当前用户加入docker组并重新登录使权限生效。这是避免后续操作频繁使用sudo的关键步骤。常见问题排查表问题现象可能原因解决方案docker命令需要sudo用户未加入docker组执行usermod命令后重新登录端口8081被占用已有容器运行docker ps查看并docker stop停止冲突容器镜像构建失败Dockerfile路径错误确保在Docker目录下执行build命令2. SUSTechPOINTS项目部署获取项目源码后我们需要特别注意数据目录的结构安排。合理的文件布局不仅能保证标注工具正常运行还能为后续自定义数据集标注提供便利。项目克隆建议使用深度克隆以确保获取所有子模块git clone --recursive https://github.com/naurril/SUSTechPOINTS.git cd SUSTechPOINTS依赖安装环节需要关注Python环境的管理。推荐使用virtualenv创建隔离环境python3 -m venv venv source venv/bin/activate pip install --upgrade pip pip install -r requirements.txt模型文件是标注功能的核心组件必须正确放置# 创建模型目录并下载预训练模型 mkdir -p .algols/models wget https://github.com/naurril/SUSTechPOINTS/releases/download/0.1/deep_annotation_inference.h5 -O .algols/models/deep_annotation_inference.h5数据目录结构示例data/ ├── example/ # 示例点云数据 │ ├── image/ # 配套图像如有 │ ├── velodyne/ # 点云二进制文件 │ └── label/ # 标注文件 └── custom_dataset/ # 自定义数据集目录仿照example结构3. Docker容器化部署详解SUSTechPOINTS的Docker部署需要特别注意端口映射和卷挂载的配置。以下是经过验证的可靠部署方案构建自定义镜像时建议添加国内镜像源加速构建过程。创建Dockerfile后可在文件开头添加FROM ubuntu:20.04 RUN sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list容器运行命令详解docker run -it -d \ --restartalways \ --name SUSTechPoints_Instance \ -p 8081:8081 \ -v $(pwd)/data:/app/data \ -v $(pwd)/.algols:/app/.algols \ sustechpoints:v1.0.0 \ bash参数说明--restartalways确保容器意外退出后自动重启-v参数将主机目录挂载到容器内实现数据持久化-p将容器8081端口映射到主机相同端口容器管理常用命令参考# 查看运行中的容器 docker ps # 查看容器日志调试时非常有用 docker logs -f SUSTechPoints_Instance # 进入运行中的容器 docker exec -it SUSTechPoints_Instance bash # 停止和删除容器 docker stop SUSTechPoints_Instance docker rm SUSTechPoints_Instance4. uWSGI编译问题深度解决uWSGI作为连接Python应用和Web服务器的重要组件其编译过程往往是部署过程中最大的障碍。在Ubuntu 20.04上gcc-9的高版本会导致兼容性问题。系统级gcc降级方案# 安装gcc-7和g-7 sudo apt install -y gcc-7 g-7 # 设置优先级并切换默认版本 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50 sudo update-alternatives --config gcc # 验证版本 gcc --version # 应显示7.x.x对于不想修改系统环境的用户可以使用conda环境管理工具conda create -n sustech_env python3.7 conda activate sustech_env conda install -c anaconda gcc_linux-64 pip install uwsgiuWSGI配置文件示例uwsgi.ini[uwsgi] http :8081 chdir /path/to/SUSTechPOINTS module main:app master true processes 4 threads 2 vacuum true die-on-term true启动服务命令uwsgi --ini uwsgi.ini5. 标注工作流实战技巧成功部署后访问http://localhost:8081即可进入标注界面。掌握以下技巧可以显著提升标注效率点云视图操作鼠标左键拖动旋转视角鼠标右键拖动平移场景滚轮缩放调整视距快捷键R重置视角标注最佳实践先使用Auto Annotation功能生成初步标注框手动调整框体位置和尺寸为每个对象添加适当的类别标签定期保存标注结果自动保存到data/label目录性能优化建议对于大型点云文件50MB可在加载前使用pcl_util工具进行降采样关闭不必要的浏览器标签释放内存定期清理data/tmp目录中的临时文件自定义数据集准备指南在data目录下创建新文件夹如custom_data按照example目录结构组织点云文件通常为.bin或.pcd格式确保点云文件命名规范如000001.bin对应000001.txt标注文件在界面左上角切换数据集即可开始标注6. 高级配置与故障排除为满足不同使用场景SUSTechPOINTS支持多种自定义配置。编辑config.py文件可以调整以下参数# 点云显示设置 POINT_SIZE 2 # 点云渲染大小 POINT_COLOR [1,1,1] # 默认颜色RGB格式 # 标注框设置 BOX_COLORS { # 不同类别的颜色映射 Car: [1,0,0], Pedestrian: [0,1,0], Cyclist: [0,0,1] } # 算法参数 DETECTION_THRESHOLD 0.5 # 自动标注置信度阈值常见问题解决方案标注界面加载缓慢检查点云文件大小超过100MB建议预处理确认浏览器硬件加速已启用尝试使用Firefox或Chrome最新版自动标注结果不准确确保.h5模型文件已正确放调整DETECTION_THRESHOLD参数检查点云坐标系是否与模型训练数据一致Docker容器频繁退出检查系统资源使用情况docker stats增加容器内存限制-m 4g查看容器日志定位具体错误对于团队协作场景可以考虑配置Nginx反向代理实现多用户访问server { listen 80; server_name your_domain.com; location / { proxy_pass http://127.0.0.1:8081; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }实际部署中发现合理配置交换空间可以显著提升大点云文件的处理能力。对于16GB以下内存的系统建议设置4-8GB的swapsudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # 永久生效 echo /swapfile none swap sw 0 0 | sudo tee -a /etc/fstab

更多文章