【Azure 架构师学习笔记 】- Azure AI(5)-Azure认知服务-Azure Computer Vision OCR

本文属于【Azure 架构师学习笔记】系列。

本文属于【Azure AI】系列。

接上文 【Azure 架构师学习笔记 】- Azure AI(4)-数据工程在AI系统中的设计(ADF+ADLS+Azure ML)

前言

本文开始接触一下另外一个服务:Azure 认知服务(Cognitive Services)。

从上图可以看到

  1. Azure AI = Azure 的 AI 服务总称(包含认知服务+高级AI)
  2. 认知服务 = Azure AI 的基础服务层(预训练模型,开箱即用)
  3. Azure AI Vision = 认知服务中的计算机视觉子集(包含OCR、图像分析等)

Azure Computer Vision服务在2026年已经演变为一个统一的、多模态的图像分析平台。它的核心能力可以概括为以下几个层面:

  1. 光学字符识别:不只是提取文字
    o 强大的OCR引擎:底层的读取OCR引擎构建在多个深度学习模型之上,由基于脚本的通用模型提供支持,提供了真正的全球语言支持,对印刷体和手写体都有很高的识别率 。
    o 与生成式AI的集成:这是2026年的一个重大变化。OCR功能可以被集成到Azure OpenAI服务中。例如,当你使用GPT-4 Turbo with Vision模型时,可以开启"视觉增强"选项,让AI助手不仅能"看"图片,还能通过图像分析API获取图片中可读文本和物体的精确位置,从而进行更深入的分析 。
  2. 图像分析:让AI理解图片内容
    o 这是Computer Vision更广泛的能力,包括:
     图像标记:根据图片内容自动生成标签列表,例如"户外"、"沙滩"、"狗"。
     目标检测:定位并框出图片中的物体,如人、车辆、产品。
     图像描述:自动生成一句描述图片内容的人类可读文本。
     名人/地标识别:识别图片中的知名人物和地标。
     智能裁剪:为缩略图自动找到最佳的裁剪区域。
  3. 空间分析:处理视频流中的人、移动和互动,适用于零售、安全等场景。例如,统计顾客在货架前的停留时间,或检测社交距离。

创建 Azure Computer Vision 资源

可以参考前文terraform脚本创建的方式Azure 架构师学习笔记】 - Azure AI(1)- 概述,或者用portal创建。

  1. 登录 Azure 门户
  2. 点击 "创建资源",搜索 Computer Vision
  3. 选择 "Computer Vision",点击 创建
  4. 填写基本信息:
    订阅:选择你的订阅
    资源组:新建或选择已有
    区域:建议选 East US 或 Southeast Asia(延迟较低)
    名称:任意
    定价层:免费层 F0(每月 20 次免费调用,足够学习)或标准层 S1
    点击 "审阅+创建" → "创建"

获取密钥和终结点

实操

接下来我们做一个极其简单的演示:

输入:本地图片文件(如 sample.jpg)

输出:从图片中提取的文本(OCR)

代码

运行时请更新必要的包,并确保KEY, Endpoint等可用。

python 复制代码
pip install azure-cognitiveservices-vision-computervision msrest
python 复制代码
import os
import time
from azure.cognitiveservices.vision.computervision import ComputerVisionClient
from msrest.authentication import CognitiveServicesCredentials

VISION_ENDPOINT = "你的endpoint"
VISION_KEY = "你的密码"

def ocr_local_image(image_path):
    """从本地图片提取文字"""
    client = ComputerVisionClient(
        endpoint=VISION_ENDPOINT,
        credentials=CognitiveServicesCredentials(VISION_KEY)
    )

    # 1. 提交本地图片
    with open(image_path, "rb") as f:
        read_response = client.read_in_stream(f, raw=True)

    # 2. 获取操作 ID
    operation_location = read_response.headers["Operation-Location"]
    operation_id = operation_location.split("/")[-1]

    # 3. 轮询结果
    while True:
        result = client.get_read_result(operation_id)
        if result.status.lower() not in ["notstarted", "running"]:
            break
        time.sleep(1)

    # 4. 提取文字
    texts = []
    if result.status == "succeeded":
        for page in result.analyze_result.read_results:
            for line in page.lines:
                texts.append(line.text)
    return "\n".join(texts) if texts else "未识别到文字"


if __name__ == "__main__":
    image_path = r"本地图片完整路径"  # 你的本地图片
    if not os.path.exists(image_path):
        print(" 图片不存在")
    else:
        print(" 识别中...")
        result = ocr_local_image(image_path)
        print(" 结果:\n", result)

测试图片:

运行结果:

小结

认知服务现在叫 Azure AI 服务,创建的 Computer Vision 就是它的一部分。

你可以创建一个多服务资源,用一个密钥调用多个 AI 能力。上面的例子中,我们可以通过一个Azure AI Service来完成。

下一步计划探索 Document Intelligence(文档智能)。

相关推荐
七夜zippoe15 小时前
Agent 上线第一天就炸了:6 个生产事故的根因分析与修复记录
大数据·ai·agent·根因分析·修复记录
秋饼15 小时前
GPT-Live 全双工语音 API Java 服务端落地实战:事件协议、会话恢复与生产踩坑
java·ai·技术分享·后端开发
bst@微胖子15 小时前
SpringAI快速入门(7) RAG 实战(三):检索增强配置与重排序实战
ai
#六脉神剑15 小时前
myBuilder 11 月新版本:AI辅助设计
ide·人工智能·低代码·ai·mybuilder
codigger18 小时前
AI 把代码写得飞快,然后呢?聊聊我验收生成代码的一套流程
ai·程序员·编程·#人工智能
秋饼1 天前
MCP 2026-07-28 无状态协议大改版:Spring AI 2.1 多轮往返请求与网关路由落地
java·ai·技术分享·后端开发
进击的雷神2 天前
我用 second-brain-skills 把 Claude Code 升级成了“第二大脑”:PPT、品牌手册、SOP 一人搞定
ai·claude·ppt·sop
Alluxio2 天前
Alluxio + OCI:为 AI 工作负载实现亚毫秒访问延迟与可扩展吞吐
运维·数据库·人工智能·分布式·缓存·ai·语言模型
wflynn2 天前
Genie 4新增原生音频,实时世界模型加入声音生成
ai·技术
吴名氏.2 天前
Java转AI Agent教程(第十二周)检索与切分
java·开发语言·人工智能·ai·ai agent