手把手教你运行‘推理.py’,完成第一次图像识别
这是一篇真正为新手准备的实操指南。不讲大道理,不堆术语,就带你从打开终端开始,一步步运行起那个叫“推理.py”的文件,亲眼看到一张图片被准确识别出来。整个过程不需要你安装任何东西,所有环境都已准备好,你只需要跟着做,5分钟内就能看到结果。
1. 先搞清楚我们要做什么
你可能已经听说过“万物识别”这个词——它不是指识别某一种东西,而是能看懂日常生活中各种各样的图像:一只猫、一辆共享单车、一张超市小票、甚至是一张手写的便条。而今天要用的这个镜像,是阿里巴巴开源的「万物识别-中文-通用领域」模型,它的特别之处在于:
- 输出结果直接是通顺的中文句子,比如“一位穿蓝色工装的师傅正在修理路边的路灯”,而不是一堆英文标签或数字编码;
- 它专为中文场景训练过,对国内常见的物体、文字、环境更熟悉;
- 不需要你下载模型、配置GPU驱动、编译依赖——这些都已经在镜像里配好了。
你唯一要做的,就是让那个叫推理.py的脚本跑起来,并让它“看见”一张图。
我们用的示例图叫bailing.png,是一张白猫的照片。但别担心,后面你想换任何图都行,方法一模一样。
2. 环境已经备好,现在只需激活它
系统里早就装好了Python 3.11、PyTorch 2.5,还有所有必要的库(Pillow、transformers、numpy等)。它们被放在一个叫py311wwts的Conda环境中——你可以把它理解成一个独立的“工具箱”,里面所有工具都互相兼容,不会打架。
打开终端,输入这一行,然后回车:
conda activate py311wwts如果成功了,你会看到命令行提示符前面多了一个(py311wwts),像这样:
(py311wwts) root@xxx:~#这就说明你已经拿起了正确的工具箱。如果没看到括号,多试一次,或者检查有没有手误(比如把py311wwts打成py311wts)。
小提醒:这个环境里没有额外安装其他包,所以千万别运行
pip install torch这类命令——它反而可能把原本好好的PyTorch 2.5给覆盖掉。
3. 把文件挪到方便操作的地方
默认情况下,推理.py和bailing.png都在/root目录下。但直接在那里改代码不太方便——你没法用左侧的编辑器点开它,也不能直观地看到文件结构。
所以我们把它“搬”到工作区/root/workspace,这是为你预留的“桌面”,所有修改、测试、保存都在这里进行。
在终端里依次输入这两行命令(每输完一行按回车):
cp /root/推理.py /root/workspace/ cp /root/bailing.png /root/workspace/然后进入这个工作区:
cd /root/workspace现在,你在左侧文件树里应该能看到两个文件:推理.py和bailing.png。双击推理.py,它就会在编辑器里打开——这才是我们接下来要动的地方。
4. 修改代码里的图片路径(关键一步)
打开推理.py后,往下翻,找到类似这样的几行(位置通常在文件中后部):
image_path = "../bailing.png"或者可能是:
image_path = "/root/bailing.png"这些写法在当前环境下都会出错。为什么?因为脚本运行时的“当前位置”是/root/workspace,而../bailing.png会去找上一级目录(也就是/root)下的bailing.png——看起来好像对,但实际路径逻辑容易混乱;至于绝对路径,虽然能用,但一旦你换图、换位置,就得反复改,太麻烦。
最稳妥、最推荐的做法是:让脚本自动知道“我在哪”,然后在这个位置找图。
把原来那行替换成下面这段(直接复制粘贴即可):
import os image_path = os.path.join(os.getcwd(), "bailing.png")os.getcwd()的意思就是“我现在所在的文件夹”,os.path.join(...)是把文件夹和文件名安全地拼在一起。这样无论你把脚本放在哪个目录,只要图片和它在同一文件夹里,就一定能找到。
再确认一下:bailing.png确实在/root/workspace里,和推理.py并排放着。如果不确定,可以在终端里敲:
ls -l你应该看到输出里有这两行:
-rw-r--r-- 1 root root ... 推理.py -rw-r--r-- 1 root root ... bailing.png如果有,那就没问题了。
5. 运行!看它第一次“认出”这张图
回到终端(确保你还在/root/workspace目录下),输入:
python 推理.py然后静静等几秒。你会看到类似这样的输出:
正在加载模型... 模型加载完成。 正在处理图像: bailing.png 识别结果: 一只白色的猫咪蹲坐在沙发上,正望着窗外,阳光洒在地板上。成功了!这就是模型“看懂”这张图后,用中文说出来的完整描述。
注意几个细节:
- 第一次运行会稍慢一点,因为要加载模型到内存;
- 如果你看到报错,大概率是路径没改对,或者图片名字拼错了(比如写成
bailing.jpg); - 输出结果不是固定不变的,同一张图多次运行,描述可能略有差异——这是模型“思考”的自然表现,不是bug。
6. 换一张自己的图试试(超简单)
想试试别的图?完全没问题。步骤只有三步:
上传新图:点击界面左上角的“上传文件”按钮,选一张你手机里、电脑里的照片(支持PNG、JPG、JPEG格式);
移动到工作区:上传后,文件默认在
/root/upload/目录下。在终端里执行(假设你上传的是mydog.jpg):mv /root/upload/mydog.jpg /root/workspace/改代码:回到
推理.py,把刚才那行"bailing.png"改成"mydog.jpg":image_path = os.path.join(os.getcwd(), "mydog.jpg")再次运行:
python 推理.py
你会发现,输出变成了对“你家狗”的描述。整个过程,你只改了一行字。
7. 常见问题,三句话解决
实际操作中,你可能会遇到这几个高频问题。不用查文档、不用搜论坛,照着做就行:
问题:运行时报错
ModuleNotFoundError: No module named 'transformers'
→ 肯定是环境没激活对。先敲conda activate py311wwts,再确认提示符前有(py311wwts),然后再运行脚本。问题:报错
OSError: cannot identify image file 'xxx.png'
→ 图片路径不对,或者文件根本没传成功。先敲ls -l看看文件在不在;再敲file xxx.png确认是不是真PNG;最后检查代码里写的文件名,和ls列出来的是否一个字母都不差(大小写也要一致)。问题:卡住不动,或者报CUDA显存不足
→ 直接强制用CPU跑。打开推理.py,找到这行:DEVICE = "cuda" if torch.cuda.is_available() else "cpu"把它改成:
DEVICE = "cpu"保存,再运行。速度会慢一点,但100%能跑通。
8. 一个小升级:让一次运行识别多张图
如果你有一堆图想批量识别(比如几十张商品图),不用重复改几十次代码。可以加几行,让它自动扫文件夹:
打开推理.py,把最下面的单图识别部分(从raw_image = Image.open(...)开始)整段删掉,替换成下面这段:
# ========== 批量识别 images/ 文件夹下的所有图片 ========== import os from PIL import Image image_dir = "images" os.makedirs(image_dir, exist_ok=True) for filename in os.listdir(image_dir): if filename.lower().endswith((".png", ".jpg", ".jpeg")): image_path = os.path.join(image_dir, filename) try: raw_image = Image.open(image_path).convert("RGB") inputs = processor(images=raw_image, return_tensors="pt").to(DEVICE) with torch.no_grad(): generate_ids = model.generate( inputs["pixel_values"], max_new_tokens=64, num_beams=3, do_sample=False, temperature=0.7 ) result = processor.batch_decode( generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False )[0] print(f"[{filename}] {result}") except Exception as e: print(f"[{filename}] 处理失败: {e}")然后,在/root/workspace里新建一个叫images的文件夹,把你想识别的所有图都拖进去。再运行python 推理.py,它就会挨个识别,并把结果一条条打出来。
9. 总结:你已经完成了最关键的一步
回顾一下,你刚刚做了什么:
- 激活了一个预装好的AI环境;
- 把脚本和图片放到同一个地方;
- 改了一行路径代码,让它稳稳找到图;
- 按下回车,亲眼看到模型用中文说出图里有什么;
- 还学会了换图、查错、批量处理。
这看似简单的几步,其实是绝大多数AI项目落地的第一道门槛。很多人卡在“环境装不上”“路径找不到”“依赖冲突”上,最终放弃。而你,已经跨过去了。
下一步你可以:
- 把识别结果保存成文本文件,方便整理;
- 用Gradio快速搭个网页界面,让同事也能上传图来试;
- 或者把这段逻辑封装成函数,嵌入到你的业务系统里。
技术本身没有那么神秘。它就像一把已经磨好的刀,而你,刚刚亲手握住了刀柄。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。