手把手教学:如何在Conda环境下运行万物识别推理脚本
1. 引言
1.1 学习目标
本文将带你从零开始,在 Conda 环境下成功运行阿里开源的“万物识别-中文-通用领域”模型推理脚本。你将掌握:
- 如何激活指定的 Conda 环境
- 如何正确执行推理脚本
- 如何复制和修改文件路径以适配工作区
- 实际图片上传与推理结果查看方法
完成本教程后,你将能够独立部署并测试该图像识别模型,为后续的定制化开发打下基础。
1.2 前置知识
建议具备以下基础知识:
- 基础 Linux 命令行操作(cd、cp、ls)
- Python 脚本执行经验
- 对 Conda 环境管理有基本了解
无需深度学习或模型训练背景,本教程聚焦于工程落地与环境配置。
1.3 教程价值
该镜像基于 YOLOE 架构,支持开放词汇检测(Open-Vocabulary Detection),可实现“实时识别万物”。相比传统 YOLO 模型仅能识别预定义类别,YOLOE 支持文本提示、视觉提示甚至无提示场景下的任意物体识别,适用于智能监控、自动化标注、内容审核等实际业务场景。
本教程提供完整可复现的操作流程,避免官方文档中常见的路径错误、环境冲突等问题。
2. 环境准备
2.1 查看基础环境信息
根据镜像文档说明,当前环境已预装以下核心依赖:
| 组件 | 版本/位置 |
|---|---|
| PyTorch | 2.5 |
| Python 环境名称 | py311wwts |
| 依赖文件位置 | /root/requirements.txt |
| 推理脚本名称 | 推理.py |
| 示例图片 | bailing.png |
你可以通过以下命令确认环境状态:
# 查看当前 Python 版本 python --version # 查看 PyTorch 是否可用 python -c "import torch; print(torch.__version__)" # 查看依赖列表(可选) cat /root/requirements.txt2.2 激活 Conda 环境
使用如下命令激活预设的 Conda 环境:
conda activate py311wwts重要提示:
若提示conda: command not found,请先初始化 Conda:source ~/miniconda3/bin/activate或根据你的 Conda 安装路径调整。
激活成功后,终端前缀应显示(py311wwts),表示已进入目标环境。
3. 文件操作与路径配置
3.1 复制推理脚本到工作区
为了便于编辑和调试,建议将原始脚本复制到工作目录/root/workspace:
cp /root/推理.py /root/workspace/3.2 复制示例图片到工作区
同时复制示例图片以便测试:
cp /root/bailing.png /root/workspace/3.3 进入工作目录
切换至工作区进行后续操作:
cd /root/workspace此时可通过ls命令验证文件是否存在:
ls -l输出应包含:
-rw-r--r-- 1 root root ... 推理.py -rw-r--r-- 1 root root ... bailing.png4. 修改推理脚本中的文件路径
4.1 使用编辑器打开脚本
推荐使用nano或vim编辑器修改路径:
nano 推理.py4.2 定位图片加载代码
在脚本中查找类似以下代码段(具体形式可能略有不同):
image_path = "/root/bailing.png"或
img = Image.open("bailing.png")4.3 更新路径为当前工作区路径
将其修改为相对路径或绝对路径指向新位置:
方式一:使用相对路径(推荐)
image_path = "./bailing.png"方式二:使用绝对路径
image_path = "/root/workspace/bailing.png"4.4 保存并退出编辑器
- 若使用
nano:按Ctrl+O写入,回车确认,再按Ctrl+X退出 - 若使用
vim:按Esc,输入:wq回车保存退出
5. 运行推理脚本
5.1 执行推理命令
确保已在/root/workspace目录下,并执行:
python 推理.py5.2 预期输出示例
正常运行时,控制台将输出类似以下信息:
加载模型中... 模型加载完成! 正在处理图像:./bailing.png 检测到对象: - 人物: 0.98 - 白色帽子: 0.92 - 太阳镜: 0.87 - 领带: 0.76 分割掩码已生成。 结果保存至 output.png5.3 常见问题排查
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| ModuleNotFoundError | 缺少依赖包 | 运行pip install -r /root/requirements.txt |
| FileNotFoundError | 图片路径错误 | 检查推理.py中路径是否正确 |
| CUDA out of memory | 显存不足 | 减小输入图像尺寸或使用 CPU 模式 |
| Conda environment not found | 环境未创建 | 确认镜像完整性或重建环境 |
6. 自定义图片推理流程
6.1 上传自定义图片
通过 JupyterLab、SFTP 或 Web UI 将你的图片上传至/root/workspace/,例如命名为test.jpg。
6.2 修改脚本中的图片路径
再次编辑推理.py,更新图像路径:
image_path = "./test.jpg"6.3 添加图像格式兼容性处理(可选)
为增强鲁棒性,可在代码中加入自动格式判断逻辑:
from PIL import Image import os def load_image(image_path): if not os.path.exists(image_path): raise FileNotFoundError(f"图像文件不存在: {image_path}") return Image.open(image_path).convert("RGB") # 使用示例 img = load_image("./test.jpg")6.4 支持命令行参数(进阶)
可改造脚本支持传参方式运行:
import argparse parser = argparse.ArgumentParser() parser.add_argument("--image", type=str, required=True, help="输入图像路径") args = parser.parse_args() img = load_image(args.image)调用方式变为:
python 推理.py --image ./test.jpg7. 性能优化与最佳实践
7.1 启用半精度推理(FP16)
若 GPU 支持,可在模型加载时启用 FP16 提升速度:
model.half() # 转换为 float16 input_tensor = input_tensor.half()注意:需确保所有运算均支持半精度。
7.2 批量推理优化
对于多图批量处理,建议使用 DataLoader 或简单循环:
import glob for img_path in glob.glob("./*.jpg"): result = infer_one_image(img_path) print(f"{img_path}: {result}")7.3 结果可视化增强
添加 OpenCV 或 Matplotlib 可视化边界框与标签:
import cv2 import numpy as np def draw_boxes(image, boxes, labels, scores): for box, label, score in zip(boxes, labels, scores): x1, y1, x2, y2 = map(int, box) cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 2) cv2.putText(image, f"{label} {score:.2f}", (x1, y1-10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2) return image8. FAQ 常见问题解答
8.1 为什么必须复制文件到 workspace?
/root目录通常为只读或受限访问/root/workspace是用户可写区域,适合开发调试- 部分平台左侧文件浏览器仅挂载 workspace 目录
8.2 如何查看 GPU 使用情况?
nvidia-smi观察python进程是否占用显存。
8.3 推理速度慢怎么办?
尝试以下优化:
- 使用 TensorRT 加速(如有支持)
- 降低输入分辨率(如 resize 到 640x640)
- 启用 FP16 推理
- 关闭不必要的日志输出
8.4 如何导出推理结果?
可在脚本末尾添加 JSON 输出:
import json results = { "objects": [ {"class": "person", "score": 0.98, "bbox": [100, 50, 200, 300]} ] } with open("output.json", "w", encoding="utf-8") as f: json.dump(results, f, ensure_ascii=False, indent=2)9. 总结
9.1 核心步骤回顾
- 激活环境:
conda activate py311wwts - 复制文件:
cp /root/推理.py /root/workspace/ - 修改路径:将脚本中图片路径改为
./bailing.png - 运行脚本:
cd /root/workspace && python 推理.py
9.2 实践建议
- 所有修改应在
workspace目录进行 - 每次更换图片务必检查路径一致性
- 推荐使用命令行参数方式传递图像路径,提升灵活性
- 生产环境中应增加异常捕获与日志记录
9.3 下一步学习方向
- 学习 YOLOE 模型结构(参考 GitHub 项目地址)
- 尝试添加自定义文本提示功能
- 探索视觉提示(Visual Prompt)应用场景
- 将模型封装为 REST API 服务
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。