DAMO-YOLO TinyNAS入门教程:3步完成环境配置与模型部署
想试试最新的目标检测模型,但被复杂的安装步骤劝退?今天咱们就来聊聊DAMO-YOLO TinyNAS,一个兼顾速度和精度的检测框架,而且部署起来比你想的简单得多。
我最近在星图GPU平台上试了一下,发现整个过程其实挺顺畅的。这篇文章就是给你准备的快速上手指南,我会用最直白的方式,带你三步走完环境配置和模型部署,让你也能快速跑起来看看效果。
1. 准备工作:了解DAMO-YOLO TinyNAS
在开始动手之前,咱们先简单了解一下DAMO-YOLO TinyNAS到底是什么,这样后面操作起来心里更有底。
DAMO-YOLO是阿里巴巴达摩院团队开发的一个目标检测框架,你可以把它理解成YOLO系列的一个“加强版”。它最大的特点就是又快又准,在保持高推理速度的同时,检测精度也相当不错。
那TinyNAS又是什么呢?这是它的核心技术之一,全称是Tiny Neural Architecture Search。简单来说,就是它能根据你的硬件算力,自动搜索出最适合的网络结构。比如你用RTX 4090这样的高性能显卡,它就能给你匹配一个更复杂的模型来发挥全部性能;如果你用算力有限的设备,它也能给你一个轻量化的版本,保证流畅运行。
这种设计特别实用,因为很多时候我们并不需要那种“一刀切”的通用模型,而是希望模型能根据实际硬件条件做调整,既不让硬件闲着,也不让它跑不动。
2. 第一步:环境准备与镜像拉取
好了,理论部分先说到这,咱们开始动手。第一步就是在星图GPU平台上准备好运行环境。
2.1 创建GPU实例
首先,你需要登录星图平台,创建一个GPU实例。这个过程和创建普通的云服务器差不多,只是需要选择带GPU的规格。
我建议你选择RTX 4090或者同等级别的显卡规格,因为DAMO-YOLO TinyNAS对算力有一定要求,好的显卡能让推理速度更快,体验也更流畅。当然,如果你只是试试水,中等规格的GPU也够用。
创建实例时,系统镜像选择Ubuntu 20.04或者22.04都可以,这两个版本我都试过,兼容性没问题。记得分配足够的存储空间,建议至少50GB,因为后面要下载模型文件,这些文件体积不小。
2.2 拉取预置镜像
实例创建好后,咱们就不需要从零开始安装各种依赖了。星图平台提供了预置的DAMO-YOLO TinyNAS镜像,里面已经把Python环境、PyTorch、CUDA这些基础组件都配置好了。
你只需要在平台的应用市场或者镜像广场里搜索“DAMO-YOLO”或者“EagleEye”,就能找到对应的镜像。我用的那个镜像名字里带有“EagleEye”,这是基于DAMO-YOLO深度定制的一个版本,用起来更方便。
找到镜像后,直接点击“部署”或者“拉取”,平台会自动把这个镜像加载到你刚创建的GPU实例上。这个过程可能需要几分钟,取决于镜像大小和网络速度,耐心等一下就好。
镜像拉取完成后,你的实例就相当于有了一个“开箱即用”的DAMO-YOLO运行环境,省去了手动安装各种库的麻烦。
3. 第二步:快速部署与配置检查
环境准备好了,现在咱们进入实例,看看一切是否就绪,并做简单的配置检查。
3.1 登录实例与目录确认
通过SSH登录到你的GPU实例。登录后,先看看当前目录下有什么。通常预置镜像会把相关的代码和工具放在一个固定的目录里,比如/workspace/damo-yolo或者/home/ubuntu/DAMO-YOLO。
你可以用ls命令查看一下。如果看到了damo-yolo或者DAMO-YOLO这样的文件夹,就说明镜像内容已经成功加载了。
ls -la进入这个目录,看看里面有什么文件:
cd /workspace/damo-yolo # 根据你的实际路径调整 ls你应该能看到一些配置文件(在configs/文件夹里)、工具脚本(在tools/文件夹里)等。
3.2 验证关键依赖
虽然预置镜像应该都装好了,但为了保险起见,咱们快速验证几个核心依赖是否正常。
首先是Python和PyTorch。运行一个简单的Python命令,导入PyTorch并检查CUDA是否可用:
python3 -c "import torch; print('PyTorch版本:', torch.__version__); print('CUDA是否可用:', torch.cuda.is_available()); print('GPU设备:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else '无GPU')"如果输出显示CUDA可用,并且识别出了你的GPU型号(比如RTX 4090),那就说明PyTorch和GPU驱动没问题。
接着,检查一下ONNX Runtime,这是后面模型转换和推理可能会用到的:
python3 -c "import onnxruntime; print('ONNX Runtime版本:', onnxruntime.__version__)"这些检查都通过的话,你的环境基本上就妥了,可以进入最激动人心的环节——下载和测试模型。
4. 第三步:模型测试与效果体验
环境配置好了,现在来点实际的,下载一个预训练模型,并跑个简单的检测 demo 看看效果。
4.1 下载预训练模型
DAMO-YOLO提供了多个不同大小的预训练模型,比如Tiny(T)、Small(S)、Medium(M)、Large(L)。对于入门来说,我推荐先试试DAMO-YOLO-S这个型号,它在精度和速度上有一个比较好的平衡。
模型文件可以从官方提供的链接下载。在项目目录下,你可以直接使用wget命令来下载。这里我们下载PyTorch格式的模型文件(.pth)。
# 假设我们在项目根目录下 # 创建一个目录存放模型 mkdir -p weights cd weights # 下载DAMO-YOLO-S模型 (请替换为实际有效的下载链接,这里仅为示例格式) # 注意:实际链接请参考DAMO-YOLO官方GitHub仓库的Model Zoo部分 wget https://example.com/path/to/damoyolo_tinynasL25_S.pth # 如果官方链接需要其他方式,也可能需要从云盘下载,请根据仓库README操作由于直接下载链接可能变化,最稳妥的方式是去DAMO-YOLO的GitHub仓库页面,找到Model Zoo表格,里面有阿里云盘或Google Drive的下载链接。把文件下载到本地后,再上传到你的服务器weights目录里。
4.2 运行图片检测Demo
模型下载好后,咱们用项目自带的示例图片来测试一下。项目里通常自带了一张dog.jpg在assets文件夹里,正好用来测试。
回到项目工具目录,运行检测脚本:
cd /workspace/damo-yolo # 回到项目根目录 # 使用PyTorch模型进行图片检测 python tools/demo.py image \ -f ./configs/damoyolo_tinynasL25_S.py \ # 指定模型配置文件 --engine ./weights/damoyolo_tinynasL25_S.pth \ # 指定模型权重文件路径 --conf 0.25 \ # 置信度阈值,值越高检测出的框越少但越准 --infer_size 640 640 \ # 输入图片的尺寸 --device cuda \ # 使用GPU --path ./assets/dog.jpg # 要检测的图片路径运行这个命令后,程序会加载模型,对图片进行推理,然后把检测结果保存下来。通常输出图片会保存在类似./demo_output的目录里,名字可能是dog_det.jpg。
用文件查看器或者SCP工具把输出图片下载到本地电脑上打开看看,你应该能看到图片中的狗被一个矩形框框出来了,并且旁边有“dog”标签和置信度分数。
4.3 尝试其他输入源
图片测试成功了,你还可以试试其他输入源,比如视频文件或者摄像头(如果你的实例有摄像头权限)。
测试视频文件:
python tools/demo.py video \ -f ./configs/damoyolo_tinynasL25_S.py \ --engine ./weights/damoyolo_tinynasL25_S.pth \ --conf 0.25 \ --infer_size 640 640 \ --device cuda \ --path /path/to/your/video.mp4运行后,它会处理视频的每一帧,并生成一个带检测框的新视频文件。
使用摄像头(实时检测):
python tools/demo.py camera \ -f ./configs/damoyolo_tinynasL25_S.py \ --engine ./weights/damoyolo_tinynasL25_S.pth \ --conf 0.25 \ --infer_size 640 640 \ --device cuda \ --camid 0 # 通常0代表默认摄像头这个命令会打开一个实时窗口,显示摄像头画面和检测结果,按‘q’键可以退出。
5. 常见问题与小技巧
第一次部署运行,难免会遇到一些小问题。这里我总结几个常见的,帮你提前避坑。
问题1:运行demo时提示“No module named ‘damo’或‘tools’”。这通常是因为Python路径问题。在项目根目录下,需要把当前目录添加到Python路径中。你可以先运行一下这个命令:
export PYTHONPATH=/workspace/damo-yolo:$PYTHONPATH或者直接在运行demo脚本前,确保你的终端就在项目根目录下。
问题2:CUDA out of memory(显存不足)。如果遇到这个错误,可以尝试减小--infer_size,比如从640 640降到512 512或416 416。也可以尝试换一个更小的模型,比如下载DAMO-YOLO-T(Tiny)版本。
问题3:模型下载慢或者失败。官方链接有时可能受网络影响。除了耐心重试,也可以在国内的代码托管平台(如Gitee)搜索一下有没有镜像仓库,有时能找到转存的模型文件。
小技巧:调整置信度阈值--conf这个参数很重要。默认0.25是个比较平衡的值。如果你发现图片里检测框太多,把一些不重要的东西也框出来了,可以把这个值调高,比如调到0.5或0.6,这样只有把握很大的目标才会被检测出来。反过来,如果你希望不漏掉任何潜在目标,可以调低到0.1或0.15,但这样误检可能会变多。
小技巧:试试ONNX模型除了PyTorch模型,你还可以下载ONNX格式的模型文件(.onnx),然后用类似的命令,把--engine参数指向.onnx文件,并将--device改为cpu或cuda(ONNX Runtime也支持GPU加速)。这种方式有时在部署到生产环境时更灵活。
6. 总结
走完这三步,你应该已经成功在星图GPU上跑通了DAMO-YOLO TinyNAS,并且看到了实打实的检测效果。整个过程的核心其实就是利用好平台提供的预置镜像,省去繁琐的环境搭建,把精力集中在模型本身的使用和体验上。
从我自己的体验来看,这套流程对新手确实比较友好。你可能花时间最多的地方是在模型下载和参数理解上,一旦跑通第一个demo,后面就会顺利很多。DAMO-YOLO的速度和精度表现,在目标检测任务中确实有它的优势,尤其是TinyNAS技术带来的硬件适应性,让它在不同场景下都很有潜力。
如果你已经完成了基础测试,接下来可以尝试用它处理你自己的图片或视频,或者去看看官方文档里关于在自己的数据集上微调模型的教程,那会是更有意思的进阶玩法。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。