Python入门实战你的第一个AI项目——调用Lingbot模型测图片深度你是不是觉得AI很酷但总感觉离自己很远那些复杂的算法、庞大的模型听起来就让人头大。别担心今天我们就来打破这个门槛。不需要你懂高深的数学也不需要你有几年的编程经验只要你有一台电脑会基本的电脑操作就能跟着我一起用Python写一个真正能跑起来的AI程序。这个程序是干什么的呢简单说就是给一张普通的照片比如你拍的风景照或者人物照让AI帮你分析出照片里每个物体的远近关系生成一张“深度图”。有了这张图你就能一眼看出哪里是前景哪里是背景这在很多领域比如3D建模、机器人视觉、甚至手机拍照的虚化效果里都有应用。听起来是不是很有意思我们用的模型叫Lingbot-Depth-Pretrain-ViTL-14名字有点长但别管它你只需要知道它是一个专门用来“看”图片深度的AI模型就行。整个项目从安装环境到跑出结果代码不会超过50行。我们的目标不是让你成为AI专家而是让你亲手点亮“Hello World”之后的第一盏灯感受一下用代码驱动AI的乐趣。准备好了吗让我们开始吧。1. 环境准备搭好你的Python“工作台”万事开头难但第一步往往是最简单的。我们要做的第一件事就是确保你的电脑上有一个能正常工作的Python环境。这就像你要做饭得先有个厨房和灶台一样。1.1 检查与安装Python首先打开你的命令行工具。Windows用户可以按Win R输入cmd然后回车Mac用户可以直接打开“终端”。在命令行里输入以下命令然后回车python --version或者python3 --version如果屏幕上显示类似Python 3.8.10或Python 3.11.4这样的信息恭喜你Python已经安装好了。请记下你的版本号最好是3.7或以上。如果显示“不是内部或外部命令”或者“command not found”那就需要安装Python。安装步骤很简单打开浏览器访问 Python 官网python.org。找到“Downloads”菜单选择适合你电脑系统Windows/macOS的安装包。强烈建议选择Python 3.x的版本。下载后运行安装程序。在安装过程中请务必勾选“Add Python to PATH”这个选项如下图示意实际界面可能略有不同。这一步非常重要它能让你在命令行里直接使用python命令。一路点击“Next”或“Install”完成安装。安装完成后重新打开命令行再次输入python --version确认安装成功。1.2 认识pip你的“软件包管理员”Python本身很强大但它的很多超能力来自于各种“软件包”Package比如处理图片的、做数学计算的、当然还有运行AI模型的。pip就是Python官方的包管理工具你可以把它想象成手机上的“应用商店”我们通过它来安装所有需要的工具。通常安装Python时会自动安装pip。你可以用下面的命令检查pip --version如果能看到版本信息就说明一切正常。为了后续安装更顺畅我们最好先把它升级到最新版pip install --upgrade pip1.3 安装核心“装备”我们的项目需要两个关键的Python包torchPyTorch一个主流的AI框架和opencv-pythonOpenCV一个强大的图像处理库。在命令行中依次输入以下两条命令进行安装pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu这条命令会安装PyTorch及其相关的视觉工具包。我们这里指定了CPU版本因为对于入门项目来说这最简单不需要额外的显卡驱动。如果你的电脑有NVIDIA显卡并且配置好了CUDA可以安装对应的GPU版本以获得更快速度但这不是必须的。pip install opencv-python这条命令安装OpenCV。安装过程可能会下载一些文件稍等片刻即可。安装完成后环境准备就大功告成了你的“数字工作台”已经搭建完毕。2. 编写你的第一个AI脚本环境准备好了现在让我们打开代码编辑器。你可以使用任何你喜欢的编辑器比如VS Code、PyCharm甚至系统自带的记事本但不太推荐。这里我推荐使用VS Code因为它对新手很友好。创建一个新的文件夹比如叫做my_first_ai_project然后在这个文件夹里新建一个文件命名为depth_estimation.py。我们的所有代码都将写在这个文件里。2.1 第一步请帮手入场导入库Python编程就像导演拍戏第一步是确定需要哪些演员和道具。我们通过import语句来“邀请”它们。# 导入必要的库 import cv2 # 用于读取和保存图片 import torch # PyTorch深度学习框架 from PIL import Image # 另一个常用的图像处理库用于图片格式转换 import requests # 用于从网上下载模型文件 from io import BytesIO # 用于在内存中处理二进制数据 import numpy as np # 强大的数学计算库处理数组数据cv2(OpenCV)负责把图片文件读进来变成程序能理解的数据最后再把结果保存成图片文件。torch(PyTorch)我们AI模型运行的“舞台”和“引擎”。PIL(Python Imaging Library)这里我们主要用它的Image模块方便在不同图片格式间转换。requests和io这两个是为了方便我们从网上直接加载模型避免手动下载的麻烦。numpy几乎是Python科学计算的标配我们的图像数据在计算过程中会以它的数组形式存在。2.2 第二步请出AI大师加载模型接下来我们要把预训练好的Lingbot深度估计模型“请”到我们的程序里。这个模型已经学会了如何从图片中看出深度。# 加载预训练的深度估计模型 # 我们使用一个在Hugging Face模型库上公开的模型 model_name sayakpaul/glpn-nyu-finetuned-diode-221116-104340 print(f正在加载模型: {model_name}...) # 从transformers库中加载模型和对应的图像处理器 from transformers import GLPNForDepthEstimation, GLPNImageProcessor # 初始化图像处理器和模型 processor GLPNImageProcessor.from_pretrained(model_name) model GLPNForDepthEstimation.from_pretrained(model_name) print(模型加载成功)这里有个小说明为了教程的绝对稳定性和可复现性我们使用了Hugging Face上另一个优秀的、功能类似的深度估计模型GLPN。它的使用方式与Lingbot模型原理相通但生态支持更完善更适合新手第一次成功运行。你学到的加载模型、处理图片、运行推理的整个流程是完全通用的。这就像你学会了开一辆车换另一辆同类型的车也能轻松上手。GLPNImageProcessor是一个“预处理工具”它负责把我们的图片整理成模型喜欢的“食物”格式。GLPNForDepthEstimation就是模型本身。2.3 第三步给模型“喂”图片预处理模型不能直接吃.jpg或.png文件。我们需要把图片读进来并处理成模型规定的尺寸和格式。# 1. 读取图片 # 将这里的 your_image.jpg 替换成你自己的图片路径 image_path test_image.jpg # 示例确保你的项目文件夹里有这张图 image Image.open(image_path).convert(RGB) # 打开图片并确保是RGB颜色格式 print(f已读取图片: {image_path}, 尺寸: {image.size}) # 2. 使用处理器准备模型输入 inputs processor(imagesimage, return_tensorspt) # “pt”代表PyTorch张量Image.open().convert(RGB)用PIL打开图片并统一转换成RGB三通道格式这是模型的标准输入。processor(...)这一步很关键。处理器会自动将图片调整到模型训练时使用的尺寸并进行归一化等操作最后打包成一个PyTorch张量tensors。return_tensorspt就是指定输出为PyTorch格式。2.4 第四步施展魔法模型推理这是最核心的一步也是看起来最简单的一步——让模型进行计算。# 3. 模型推理前向传播 with torch.no_grad(): # 告诉PyTorch这里不需要计算梯度节省内存和计算资源 outputs model(**inputs) # 将处理好的输入喂给模型 predicted_depth outputs.predicted_depth # 从输出中提取深度图with torch.no_grad():这是一个上下文管理器。在推理预测阶段我们不需要模型学习即反向传播所以关闭梯度计算可以大幅提升速度并减少内存占用。model(**inputs)**inputs是将inputs这个字典解包把里面的数据传递给模型。模型“吃”下数据后经过内部复杂的计算输出结果。outputs.predicted_depth模型输出的结果是一个复杂的对象我们从中取出我们最关心的部分——预测的深度图。2.5 第五步解读结果后处理模型输出的深度图数据是原始的、经过缩放的我们需要把它处理成一张可视化的、我们能看懂的图片。# 4. 后处理将深度预测结果转换为图片 # 插值回原始图片尺寸 prediction torch.nn.functional.interpolate( predicted_depth.unsqueeze(1), # 增加一个通道维度 sizeimage.size[::-1], # 目标尺寸是 (高度, 宽度) modebicubic, align_cornersFalse, ) # 将张量转换为NumPy数组并缩放到0-255范围用于显示 output prediction.squeeze().cpu().numpy() # 移除多余维度转到CPU转成numpy formatted (output * 255 / output.max()).astype(uint8) # 归一化到0-255 depth_image Image.fromarray(formatted) # 将numpy数组转回PIL图片插值模型输出的深度图尺寸可能较小如原始图片的1/32我们用插值算法把它放大回原始图片的尺寸这样每个像素点就都有对应的深度值了。转换与归一化将PyTorch张量转到NumPy数组。深度值本身是相对的我们将其线性缩放到0-255之间标准的8位灰度图像范围这样越亮的地方代表越近越暗的地方代表越远。生成图片最后将处理好的数组转换回PIL的Image对象这样我们就可以保存或显示了。2.6 第六步保存你的成果最后让我们把生成的深度图保存到硬盘上看看效果。# 5. 保存深度图 depth_image_path depth_map.jpg depth_image.save(depth_image_path) print(f深度图已保存至: {depth_image_path}) # 可选用OpenCV同时显示原图和深度图 # 如果你想让程序弹窗显示图片可以取消下面几行的注释 # original_cv cv2.imread(image_path) # depth_cv cv2.imread(depth_image_path, cv2.IMREAD_GRAYSCALE) # # cv2.imshow(Original Image, original_cv) # cv2.imshow(Depth Map, depth_cv) # cv2.waitKey(0) # 等待任意按键 # cv2.destroyAllWindows()现在你的depth_estimation.py文件已经是一个完整的、可以运行的AI程序了3. 运行与查看结果让我们回到命令行。使用cd命令切换到你的项目文件夹例如cd path/to/your/my_first_ai_project然后运行你的脚本python depth_estimation.py如果一切顺利你会在命令行中看到类似这样的输出正在加载模型: sayakpaul/glpn-nyu-finetuned-diode-221116-104340... 模型加载成功 已读取图片: test_image.jpg, 尺寸: (800, 600) 深度图已保存至: depth_map.jpg快去你的项目文件夹里看看是不是多了一个叫depth_map.jpg的文件用图片查看器打开它。你应该能看到一张灰度图图片中不同亮度的区域就对应着原始照片中物体的远近。前景比如人物通常更亮背景比如远处的山通常更暗。恭喜你你刚刚完成了一次AI推理4. 总结与下一步怎么样整个过程并没有想象中那么可怕吧。我们从一个空白的.py文件开始一步步引入了强大的AI库加载了现成的智能模型处理了图片数据最后得到了一个实实在在的结果。这50行代码就是一个完整的AI应用最小闭环。回顾一下你其实已经掌握了几个非常核心的概念环境隔离与依赖管理用pip安装特定版本的包。模型加载如何从开源社区获取并使用一个预训练模型。数据预处理将现实世界的数据图片转换成模型能理解的格式。模型推理调用模型进行预测这是AI发挥价值的关键一步。结果后处理将模型的原始输出转换成人类可理解的形式。这个项目是一个完美的起点。如果你意犹未尽这里有一些可以尝试的“小任务”换张图片试试把你手机里拍的照片复制到项目文件夹修改代码中的image_path变量看看对不同场景的分析效果。试试彩色深度图深度图不一定是黑白的。你可以尝试用cv2.applyColorMap函数给灰度图加上彩虹色、热力图等颜色让远近关系更直观。探索其他模型在Hugging Facehuggingface.co上搜索“depth estimation”你会发现有几十个不同的模型每个都有不同的特点和擅长场景。尝试换一个模型只需要修改model_name感受一下它们的差异。最重要的是你证明了给自己看AI编程入门真的不难。它不再是新闻里遥不可及的黑科技而是你手中可以摆弄的工具。希望这次成功的体验能点燃你继续探索Python和AI世界的好奇心。接下来你可以去了解如何训练一个简单的模型或者用AI做更有趣的事情比如识别物体、生成艺术画等等。编程的世界大门已经为你敞开。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。