从YOLO例程看AI推理实现
2026 年 02 月 04 日
最近看了 YOLO 的两个例程。
这里整理一下我看懂了什么。
AI 应用类型与实现
AI 应用分类非常细,要根据具体的应用类型,去分析其分类,然后找实现方式。
举个例子来说,车牌识别,车牌检测,分类属于:计算机视觉 - 目标检测 - 小目标检测。
要实现车牌识别,要按顺序做以下几步:
- 目标检测,从图片当中找到车牌部分的边界,可以用 YOLO/RetinaNet/FAster R-CNN 等。
- 图像校正/透视变换,将检测到的车牌区域裁剪出来,做旋转/透视变换,使之成为规则矩形。
- OCR 字符识别,可以用传统 Tesseract 方式,或 CRNN/SVTR 等深度学习模型。
- (可选)后处理,分析结果是否合法,或分析连续视频帧的结果是否稳定。
上面只包含推理,没包含训练。如果要训练,就得找对应数据集,比如 CCPD,然后训练得到权重集。
很明显,每一个具体的 AI 应用,背后必然有一系列算法实现,只能是具体问题具体分析。
深度学习相关
用深度学习方式做 AI 应用,需要了解训练和推理。
训练
简单说,训练引擎 + 数据集 = 权重集(.pt/.pth/.ckpt/.onnx 等)。
有几个值得注意的点。
- 训练引擎和推理引擎可能不一样,比如,pytorch/tensorflow 既能训练也能推理,但 onnx runtime 就只能推理无法训练。
- 数据集通常需要编程才能使用,除非是提供了封装好的接口。
- onnx 是通用的权重集格式,支持互转,适用范围很广。所以用训练引擎训练完成后通常可以导出为 onnx 格式。
推理
简单说,推理引擎 + 权重集 + 用户输入 = 推理输出。
同样有几个注意的点:
- 权重集和用户输入有相关性,用户输入必须转换为权重集所需要的格式。
- 推理输出通常不能直接使用,需要转化。比如 YOLO 做目标检测得到的矩阵框可能就需要坐标转换。
推理 AI 部署模式
以我现在的认知,谈训练为时尚早。前面两个例程都只是推理,相对简单。两个例程分别使用 YOLOv5 和 YOLOv8,都是用 COCO 数据集 训练得到的权重集,能识别 80 种目标。两个例程的权重集都是 onnx 格式,前者是在 rockchip 芯片上使用 rknn 进行推理;后者是通过 ort 运行 onnkruntime 进行推理。但推理流程基本是一致的,如下:
- 初始化引擎。
- 将图片按照模型能接受的格式,转换成输入参数。
- 运行模型,得到输出。
- 过滤并整理输出,得到目标矩形框的数组,和对应的物体类型等相关信息。
- 将目标矩形框画到原始画面上,输出图片。
onnx runtime 可以用多种开发语言调用,可以在多种架构运行,甚至可能支持边缘设备的 NPU 硬件加速。一次编写,到处运行。所以我认为它是个不错的选择。
AI 应用功能分类框架
最后,列一下我查到的 AI 应用分类框架,作为索引方便后续实现具体目标时查询:
- 计算机视觉 (Computer Vision)
1.1 图像分类 (Image Classification)
- 手写数字识别(MNIST)
- 动物/物体识别(ImageNet)
- 卫星图像分类
- 病理图像分类
1.2 目标检测 (Object Detection)
- 通用目标检测(COCO)
- 小目标检测
- 车牌检测
- 人脸关键点检测
- 行人检测
- 车辆检测
- 安全监控异常行为检测
1.3 语义分割 / 实例分割 (Segmentation)
- 道路分割(自动驾驶)
- 医学图像分割(肿瘤、器官)
- 人物抠图
- 实例分割(COCO实例分割)
1.4 人脸分析 (Face Analysis)
- 人脸检测
- 人脸识别
- 表情识别
- 年龄/性别预测
1.5 OCR (Optical Character Recognition)
- 文本检测(图片中文字位置)
- 文本识别(文字内容提取)
- 票据识别
- 车牌识别
- 手写体识别
1.6 视频分析 (Video Understanding)
- 行为识别(动作检测)
- 视频摘要 / 场景切割
- 异常事件检测
- 视频目标跟踪
1.7 生成式视觉 (Generative Vision)
- 图像生成(Stable Diffusion, DALL·E)
- 图像修复 / 超分辨率
- 风格迁移
- 人脸换脸 / 头像生成
- 自然语言处理 (NLP)
2.1 文本分类 (Text Classification)
- 情感分析
- 新闻分类
- 垃圾邮件识别
- 话题分类
2.2 文本生成 (Text Generation)
- 对话系统 / 聊天机器人(ChatGPT)
- 自动写作 / 内容生成
- 代码生成(Codex、CodeLLM)
- 文学创作生成
2.3 文本理解 (Text Understanding)
- 问答系统 (QA)
- 信息抽取 / 实体识别
- 文本摘要
- 文本相似度计算
2.4 机器翻译 (Machine Translation)
- 中英文互译
- 多语言翻译
- 专业领域翻译(医学、法律)
2.5 语音文本交互 (Speech + NLP)
- 语音识别 → 文本
- 语音助手(Siri、小度)
- 语音指令控制
- 语音与音频 (Speech / Audio)
3.1 语音识别 (ASR)
- 连续语音识别
- 关键词检测 / 命令识别
- 电话语音转写
3.2 语音合成 (TTS)
- 语音朗读 / 助手语音
- 情绪语音生成
- 多语种语音合成
3.3 声纹 / 音频分析
- 说话人识别
- 环境声音识别
- 音乐风格分类
- 音频生成 / 音乐生成
- 推荐系统与预测 (Recommender / Prediction)
- 个性化推荐(视频、商品)
- 用户行为预测
- 销售预测 / 库存预测
- 金融风险预测
- 强化学习与决策 (RL & Planning)
- 游戏 AI(围棋、DOTA)
- 自动驾驶策略优化
- 机器人控制 / 动作规划
- 物流路径优化
- 多模态 / 跨模态应用 (Multi-modal AI)
- 文本 + 图像生成(图文生成)
- 视频 + 文本理解(视频问答)
- 音频 + 文本生成(TTS + 字幕生成)
- 跨模态检索(文本搜索图片/视频)