Ubuntu 20.04系统下DAMOYOLO-S从安装到部署全流程详解

张开发
2026/5/5 16:37:45 15 分钟阅读
Ubuntu 20.04系统下DAMOYOLO-S从安装到部署全流程详解
Ubuntu 20.04系统下DAMOYOLO-S从安装到部署全流程详解最近在折腾目标检测模型发现DAMOYOLO-S这个模型挺有意思它平衡了速度和精度很适合在实际项目里用。但说实话在Linux系统上从零开始配环境对新手来说是个不小的挑战动不动就遇到依赖冲突、版本不匹配折腾半天跑不起来。所以我花时间整理了一份在Ubuntu 20.04 LTS系统上从系统配置到模型成功运行的完整流程。这份指南会带你一步步走把那些常见的坑都提前标出来目标就是让你能顺顺利利地把环境搭好把模型跑起来。即使你之前没怎么接触过Linux或者深度学习环境搭建跟着做问题也不大。1. 准备工作与系统基础配置在开始安装各种深度学习框架之前我们需要先把Ubuntu系统的基础环境打理好。这就像盖房子前先打好地基能避免后面很多莫名其妙的错误。1.1 系统更新与换源刚安装好的Ubuntu第一件事就是更新软件源列表并升级现有软件包。为了获得更快的下载速度特别是国内用户我建议将软件源更换为国内的镜像源比如阿里云或清华大学的源。打开终端先备份原来的源列表文件sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup然后编辑源列表文件。你可以使用nano或vim编辑器这里用nanosudo nano /etc/apt/sources.list将文件里的内容全部删除替换为阿里云的镜像源针对Ubuntu 20.04 Focaldeb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse按CtrlO保存再按CtrlX退出nano编辑器。接着更新软件包列表并升级系统sudo apt update sudo apt upgrade -y这个-y参数表示自动确认所有提示省得一直按回车。这个过程可能需要一些时间取决于你的网速和更新包的数量。1.2 安装NVIDIA显卡驱动如果你的机器有NVIDIA显卡并且希望使用GPU来加速DAMOYOLO-S模型的推理这能快很多那么安装合适的显卡驱动是必须的。Ubuntu 20.04自带的nouveau开源驱动对CUDA支持不好。首先检查一下你的显卡型号lspci | grep -i nvidia然后我们可以使用Ubuntu提供的附加驱动工具来安装。先添加显卡驱动PPA仓库sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update接下来查看推荐安装的驱动版本ubuntu-drivers devices你会看到一个列表其中标有“recommended”的就是系统推荐版本。通常安装这个推荐版本即可。例如如果推荐的是nvidia-driver-535则安装命令如下sudo apt install nvidia-driver-535 -y安装完成后必须重启系统才能使驱动生效。sudo reboot重启后在终端输入以下命令来验证驱动是否安装成功nvidia-smi如果安装成功你会看到一个表格显示了你的GPU型号、驱动版本、CUDA版本这里显示的是驱动支持的最高CUDA版本并非已安装以及GPU的使用情况。看到这个界面说明驱动没问题了。2. 安装CUDA与cuDNNCUDA是NVIDIA推出的并行计算平台cuDNN是针对深度神经网络的GPU加速库。PyTorch等框架依赖它们来实现GPU运算。2.1 安装CUDA Toolkit我们不需要安装完整庞大的CUDA Toolkit因为PyTorch通常会自带所需的CUDA运行时库。更推荐的方式是通过PyTorch官方渠道来匹配安装。但为了系统兼容性和一些其他工具如nvcc编译器我们安装一个与PyTorch要求匹配的CUDA版本。访问NVIDIA CUDA Toolkit Archive找到CUDA 11.8这是一个与PyTorch 2.0版本兼容性较好的版本。选择对应系统Linux, x86_64, Ubuntu, 20.04的runfile (local)安装方式。在终端中按照官网给出的命令安装。大致步骤如下wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run sudo sh cuda_11.8.0_520.61.05_linux.run在安装界面中注意由于我们已经安装了驱动所以一定要取消勾选Driver的安装只选择CUDA Toolkit。然后按照提示完成安装。安装完成后需要将CUDA路径添加到环境变量中。编辑你的shell配置文件如~/.bashrcnano ~/.bashrc在文件末尾添加以下几行export PATH/usr/local/cuda-11.8/bin${PATH::${PATH}} export LD_LIBRARY_PATH/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH::${LD_LIBRARY_PATH}}保存退出后使配置立即生效source ~/.bashrc验证CUDA安装nvcc -V这条命令会输出CUDA编译器的版本信息确认安装成功。2.2 安装cuDNNcuDNN需要从NVIDIA开发者网站下载需要注册账号。下载与CUDA 11.8对应的cuDNN版本例如cuDNN v8.9.x for CUDA 11.x的Local Installer for Linux (x86_64)。下载后是一个压缩包例如cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz。解压并复制文件到CUDA目录tar -xvf cudnn-linux-x86_64-8.9.7.29_cuda11-archive.tar.xz sudo cp cudnn-linux-x86_64-8.9.7.29_cuda11-archive/include/cudnn*.h /usr/local/cuda-11.8/include/ sudo cp -P cudnn-linux-x86_64-8.9.7.29_cuda11-archive/lib/libcudnn* /usr/local/cuda-11.8/lib64/ sudo chmod ar /usr/local/cuda-11.8/include/cudnn*.h /usr/local/cuda-11.8/lib64/libcudnn*3. 搭建Python与深度学习环境现在我们来准备Python环境和核心的深度学习框架。3.1 安装Miniconda推荐使用Conda可以方便地创建独立的Python环境避免项目间的包版本冲突。Miniconda是Anaconda的轻量版。wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh安装过程中按照提示操作主要是按回车看协议输入yes确认以及选择安装路径。安装完成后关闭并重新打开终端或者执行source ~/.bashrc来激活Conda。创建一个专门用于DAMOYOLO的Python 3.9环境conda create -n damoyolo python3.9 -y conda activate damoyolo看到命令行提示符前面变成(damoyolo)就说明已经进入这个环境了。3.2 安装PyTorch这是最关键的一步。访问PyTorch官网根据你的配置选择Stable (稳定版) Linux Conda Python CUDA 11.8。官网会生成类似下面的命令conda install pytorch torchvision torchaudio pytorch-cuda11.8 -c pytorch -c nvidia在你的(damoyolo)环境中执行它。这个过程会下载安装PyTorch及其依赖时间可能稍长。安装完成后在Python中验证python -c import torch; print(torch.__version__); print(torch.cuda.is_available())如果输出PyTorch版本号并且第二行是True恭喜你PyTorch GPU环境配置成功3.3 安装其他必要依赖DAMOYOLO和一些视觉任务常用的库还需要以下包pip install opencv-python-headless matplotlib scipy tqdm pyyaml tensorboard # 安装一个稍旧但兼容性好的Pillow版本有时新版本会有问题 pip install Pillow9.5.0opencv-python-headless是不带GUI功能的OpenCV适合服务器环境。tensorboard用来可视化训练过程。4. 部署与运行DAMOYOLO-S环境终于准备好了现在让我们把主角DAMOYOLO-S请上场。4.1 获取DAMOYOLO源码从GitHub上克隆DAMOYOLO的官方仓库git clone https://github.com/tinyvision/DAMO-YOLO.git cd DAMO-YOLO4.2 安装DAMOYOLO的特定依赖项目根目录下通常有一个requirements.txt文件安装它pip install -r requirements.txt此外DAMOYOLO需要pycocotools来评估在COCO数据集上的性能。安装它pip install cython # 可能需要先安装一些系统库 sudo apt install gcc -y pip install pycocotools4.3 下载预训练模型权重为了快速体验模型效果我们直接下载作者训练好的模型权重。以DAMOYOLO-S为例你可以在项目的README或Release页面找到模型权重的下载链接。假设我们下载到weights文件夹mkdir -p weights cd weights # 示例链接请以实际仓库提供的链接为准 wget https://github.com/tinyvision/DAMO-YOLO/releases/download/.../damoyolo_s.pth cd ..4.4 运行推理测试现在我们可以用一张示例图片来测试模型是否工作正常。DAMOYOLO仓库里通常会有demo.py或tools/demo.py这样的脚本。首先准备一张测试图片比如test.jpg放在项目根目录。然后运行推理命令。命令的具体格式需要参考项目文档一般类似这样python tools/demo.py -f configs/damoyolo_s.py --engine pytorch --path test.jpg --conf 0.25 --device 0我来解释一下参数-f configs/damoyolo_s.py: 指定模型配置文件。--engine pytorch: 使用PyTorch引擎。--path test.jpg: 输入图片路径。--conf 0.25: 置信度阈值低于这个值的检测框会被过滤掉。--device 0: 使用第0块GPU如果有多块卡。如果一切顺利脚本会输出检测到的目标信息并在当前目录生成一个带有检测框的结果图片例如test_vis.jpg。用图片查看器打开它就能看到模型识别出的物体和框了。4.5 可能遇到的问题与解决ImportError: libGL.so.1: 这是OpenCV的常见问题。安装以下系统包sudo apt install libgl1-mesa-glx -yModuleNotFoundError: No module named xxx: 说明缺少某个Python包。根据错误信息用pip install安装对应的包即可。CUDA out of memory: 如果图片太大或模型太大导致GPU内存不足可以尝试减小输入图片的尺寸在demo脚本中找相关参数如img_size或者换用更小的模型变体如DAMOYOLO-Tiny。版本冲突如果遇到奇怪的版本冲突错误可以尝试在干净的Conda环境中严格按照项目requirements.txt和PyTorch官网命令重新安装。5. 总结走完这一整套流程你应该已经在Ubuntu 20.04上成功运行起DAMOYOLO-S模型了。回顾一下最关键的几个步骤是打好系统基础换源、装驱动、匹配好CUDA和PyTorch版本、以及仔细阅读你要运行的那个项目的具体文档。Linux下的环境配置就是这样一步错可能步步错但一旦走通后面就非常顺畅了。这份教程把可能踩的坑都标了出来希望能帮你省下一些折腾的时间。DAMOYOLO-S跑起来后你可以试着用它检测不同的图片和视频调整一下置信度阈值感受一下它的速度和精度。接下来你可以去探索如何用自己的数据训练它或者把它集成到你的应用项目里去那又是另一个有趣的故事了。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章