paddleOCR 图片识别

news/2025/9/23 17:05:42/文章来源:https://www.cnblogs.com/pass-ion/p/19107533

PaddleOCR 中,detreccls 分别代表 OCR 流水线中的三个关键模块。

1. det - 文本检测(Text Detection)

功能

  • 定位:在图像中找出文本所在的位置

  • 边界框:为每个文本区域生成边界框

  • 文本行检测:检测文本行或单词的位置

from paddleocr import PaddleOCR
import cv2
import numpy as np# 只使用检测模型
ocr_det = PaddleOCR(det=True, rec=False, cls=False, use_gpu=False)def text_detection_only(image_path):"""仅进行文本检测"""result = ocr_det.ocr(image_path, cls=False)# 可视化检测结果image = cv2.imread(image_path)if result is not None:for line in result:if line:for word_info in line:# 获取检测框坐标points = np.array(word_info[0], dtype=np.int32)# 绘制检测框(绿色)cv2.polylines(image, [points], True, (0, 255, 0), 2)cv2.imshow('Detection Result', image)cv2.waitKey(0)cv2.destroyAllWindows()# 使用示例
text_detection_only('test_image.jpg')
# 检测结果示例
[[[[10, 20], [100, 20], [100, 40], [10, 40]], 0.95],  # 边界框坐标 + 置信度[[[50, 60], [200, 60], [200, 80], [50, 80]], 0.92]
]

2. rec - 文本识别(Text Recognition)

功能

  • 字符识别:识别检测到的文本区域中的具体文字内容

  • 序列识别:将图像中的文本转换为字符串

  • 多语言支持:支持中文、英文、日文等多种语言

# 只使用识别模型(需要先有检测框)
ocr_rec = PaddleOCR(det=False, rec=True, cls=False, use_gpu=False)def text_recognition_only(image_path, bboxes):"""仅进行文本识别(需要提供检测框)"""image = cv2.imread(image_path)recognition_results = []for bbox in bboxes:# 裁剪文本区域x_coords = [point[0] for point in bbox]y_coords = [point[1] for point in bbox]x_min, x_max = min(x_coords), max(x_coords)y_min, y_max = min(y_coords), max(y_coords)text_region = image[y_min:y_max, x_min:x_max]# 保存临时图片进行识别cv2.imwrite('temp_crop.jpg', text_region)# 识别文本result = ocr_rec.ocr('temp_crop.jpg', cls=False)if result and result[0]:text = result[0][0][1][0]confidence = result[0][0][1][1]recognition_results.append((text, confidence))return recognition_results# 使用示例
bboxes = [[[10, 20], [100, 20], [100, 40], [10, 40]],  # 假设的检测框[[50, 60], [200, 60], [200, 80], [50, 80]]
]
results = text_recognition_only('test_image.jpg', bboxes)
for text, confidence in results:print(f"识别结果: {text}, 置信度: {confidence:.4f}")

3. cls - 方向分类(Text Orientation Classification)

功能

  • 方向判断:判断文本是正向、反向、倒向还是侧向

  • 自动校正:自动旋转文本到正确方向以提高识别准确率

  • 多角度支持:支持0°、90°、180°、270°等方向

# 只使用方向分类模型
ocr_cls = PaddleOCR(det=False, rec=False, cls=True, use_gpu=False)def orientation_classification_only(image_path):"""仅进行方向分类"""result = ocr_cls.ocr(image_path, rec=False, det=False)if result is not None:for line in result:if line:for word_info in line:# 方向分类结果orientation = word_info[1][0]  # 0, 90, 180, 270confidence = word_info[1][1]angle_map = {0: "0° (正向)", 90: "90° (顺时针)", 180: "180° (倒向)", 270: "270° (逆时针)"}print(f"文本方向: {angle_map.get(orientation, '未知')}")print(f"方向置信度: {confidence:.4f}")# 使用示例
orientation_classification_only('rotated_text.jpg')

4. 完整的 OCR 流水线

def complete_ocr_pipeline(image_path):"""
    完整的OCR处理流程:det → cls → rec"""
    # 使用所有三个模块ocr = PaddleOCR(det=True, rec=True, cls=True, use_gpu=False)# 执行完整OCRresult = ocr.ocr(image_path, cls=True)print("=== 完整OCR处理流程 ===")if result is not None:for page_num, page in enumerate(result):print(f"\n--- 第 {page_num + 1} 页 ---")for line_num, line in enumerate(page):if line:print(f"\n文本行 {line_num + 1}:")for word_num, word_info in enumerate(line):if len(word_info) >= 2:# 检测结果bbox = word_info[0]text = word_info[1][0]confidence = word_info[1][1]print(f"  单词 {word_num + 1}:")print(f"    位置: {bbox}")print(f"    文本: {text}")print(f"    置信度: {confidence:.4f}")return result# 使用示例
complete_result = complete_ocr_pipeline('document.jpg')

5.实际应用场景

def practical_applications():"""
    不同场景下的模块选择建议"""
    scenarios = {"文档扫描": "使用完整OCR (det+cls+rec) - 需要高精度","实时视频文字识别": "使用检测+识别 (det+rec) - 需要速度快","文字区域分析": "仅使用检测 (det) - 只需要位置信息","已有定位的文字识别": "仅使用识别 (rec) - 已有检测框","旋转文本处理": "使用分类+识别 (cls+rec) - 处理方向问题"}print("应用场景建议:")for scenario, recommendation in scenarios.items():print(f"  {scenario}: {recommendation}")# 各模块的作用总结
def module_summary():"""
    三模块功能总结"""
    summary = {'det': {'功能': '文本检测','输入': '原始图像','输出': '文本边界框坐标','用途': '找出图像中文本的位置','类似功能': 'YOLO、Faster R-CNN等目标检测'},'rec': {'功能': '文本识别', '输入': '裁剪的文本区域图像','输出': '识别出的文本内容','用途': '将图像文字转换为可读文本','类似功能': 'CRNN、TRBA等文字识别模型'},'cls': {'功能': '方向分类','输入': '文本区域图像', '输出': '文本方向角度','用途': '校正文本方向提高识别率','类似功能': '图像分类模型'}}for module, info in summary.items():print(f"\n=== {module.upper()} 模块 ===")for key, value in info.items():print(f"  {key}: {value}")# 使用示例
module_summary()
practical_applications()

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/913256.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手机网站制作公司工业和信息化部网站备案系统

大家在面试数据分析岗或其他岗位的时候,时常会被问到一些SQL题,我今天就将常被问到的一些SQL题及答案整理下,给大家做个参考!案例所使用的表为:(一)各种连接函数的区别?(…

使用命令行powershell修改系统变量

本文主要讲解通过命令行pwsh修改环境变量。 工具pwshGetEnvironmentVariable函数 获取环境变量 第一个参数:变量名称 第二个参数:变量类型,User、Machine,二选一 SetEnvironmentVariable函数 用来设置环境变量 第一…

东坑东莞网站建设wordpress加黑字体

我是卢松松,点点上面的头像,欢迎关注我哦! 王自如的一番话引来了众多围攻,格力已报警,高管遭到侮辱诽谤。这应该是近年来少见的大企业和网络大v之间公开翻脸互撕的场景了! 就在今天格力就高管遭自媒体侮辱诽谤报案。…

化妆品网站建设策划书html5静态模板

一、目标 实现一个函数,传入两个datetime类型的参数,返回double类型的工作日天数 二、思路 如何计算差值? 如果开始时间和结束时间在同一天:实现同 datediff(end, start, ‘ss’) / 86400.0 如果开始时间和结束时间在不同天&am…

个人网站 主机怎样利用云盘做电影网站

2003年夏天的一个周日,AI教父Hinton在多伦多大学的办公室里敲代码,突然响起略显莽撞的敲门声。门外站着一位年轻的学生,说自己整个夏天都在打工炸薯条,但更希望能加入Hinton的实验室工作。Hinton问,你咋不预约呢&#…

企业建网站费用苏州做视频网站广告公司

在西班牙巴塞罗那移动通信大会上,华为公司展台用电子屏展示5G技术。新华社资料图近日,第十二届音乐盛典咪咕汇在上海梅赛德斯奔驰文化中心开幕。周杰伦、张惠妹、G.E.M.邓紫棋等华语乐坛著名歌手悉数亮相。在上海移动、咪咕、华为的合作之下,…

公司做网站找谁公司做网站找谁网站建设设计制作维护

一 清除数据中恒定不变值 如果某个数据长时间不变,默认异常,清除掉该部分数据: # 使用 shift 和 cumsum 来创建一个分组键,每次值改变都会增加组号 g (df[沉淀池3号进水流量] ! df[沉淀池3号进水流量].shift()).cumsum()# 使用…

5118素材网站wordpress小型店商城

作为一个硬核作者,绝不和你扯废话,干货无套路送你 题目一: 给定一个数组arr,求出需要排序的最短子数组长度 要求: 时间o(n),空间o(1) 思路: 有序的数组中,任意一个数字,一定小于左…

论坛网站建设源码下载南昌网站建设模板合作

原文链接:https://blog.csdn.net/XFYBB/article/details/129174579 物料的成本中心,作业价格没有维护 再用FCMLHELP,重新创建一下 se37,FCMLHELP_CHECK_TESTFLAG,打断点,跳过PW

数据全生命周期安全建设方案推荐:双轮驱动架构的实践与创新

在数据安全领域,传统"全生命周期控制"模式面临业务动态化、环境开放化、决策弹性化的三重挑战。全知科技(Data-Sec)提出的"全链路泛监测体系",通过构建"观测面+控制面"双轮驱动架构,…

番禺网站推广公司网站跟wordpress连接

1. 题目 我们将石头放置在二维平面中的一些整数坐标点上。每个坐标点上最多只能有一块石头。 每次 move 操作都会移除一块所在行或者列上有其他石头存在的石头。 请你设计一个算法,计算最多能执行多少次 move 操作? 示例 1: 输入&#xf…

赋能智慧水利:国标GB28181平台EasyGBS在农业水文监控中的落地实践

赋能智慧水利:国标GB28181平台EasyGBS在农业水文监控中的落地实践农业水利,作为国家经济的命脉,正经历着从传统人工管理到数字化、智能化的深刻变革。水库、河道、灌区、泵站等关键设施的安全监控与高效调度,是保障…

VS依赖项显示黄色感叹号、红色叉叉,NU1101找不到包异常情况处理方案

例如:找不到包 Syncfusion.Maui.Toolkit。源 C:\Program Files\dotnet\library-packs, DevExpress 20.1 Local, Microsoft Visual Studio Offline Packages 中不存在具有此 ID 的包一、工具-->Nuget程序包管理器--…

噬菌体展示技术原理深度解析:从基因型-表型偶联到亲和筛选的核心逻辑

在抗体开发、肽药物筛选、蛋白互作研究等领域,噬菌体展示技术凭借 “将外源分子展示与基因信息偶联” 的独特优势,成为连接分子生物学与应用生物技术的关键工具。它通过基因工程手段将外源肽或蛋白的编码基因插入噬菌…

AT_arc197_e [ARC197E] Four Square Tiles

注意到 \(h, w \le 3n - 1\),所以四个瓷砖肯定是上下左右四个类似一个正方形放在一起的。 先算一下主对角线上不相交的时候的方案数,此时再将副对角线线上相交的方案数给减掉容斥即可。

怎么做拍卖网站vivo官方网站进入

靶机下载链接: 百度网盘 请输入提取码 提取码: sqv3 一、主机发现 1.用ifconfig查看kali的ip,因为kali和靶机都开启了NAT模式,使用namp -sP 192.168.101.0/24探测靶机ip 二、信息收集 1.使用nmap扫描靶机 使用nmap -A 192.168.101.108 ,查…

免费信息发布网站有哪些汕头网站建设sthke

论文笔记整理:叶宏彬,浙江大学计算机博士生。论文地址:https://arxiv.org/abs/2009.07543摘要:近年来,神经对话问答的产生已广受欢迎。现有对话模型学习中广泛采用了最大似然估计目标(MLE)。但是…

手机网站整站下载wordpress 编辑器 白色

# 冒泡排序,复杂度为O(n^2) def bubble_sorted(li:list)->list:for i in range(len(li)):# 第几趟exchanged False# 这个是为了防止多余的遍历,如果前面的元素已经是排序好的,那就不需要再进行比较了,减少运行时间for j in ra…

网站开发选择题苏州市建设局网站首页

1、在 Docker 内部以及容器之间管理数据,在容器中管理数据主要有两种⽅式: 数据卷(Data Volumes) 挂载主机⽬录 (Bind mounts)2、数据卷 数据卷 是⼀个可供⼀个或多个容器使⽤的特殊⽬录,它绕过 UFS ,可以提…

开网站是干什么的如何完整建设一个网站

目录 1、简单中间实现 2、使用闭包函数实现中间件 在PHP中,中间件是一种常用的设计模式,用于处理请求和响应,它可以在请求到达目标处理程序之前或响应发送给客户端之前执行一些特定的逻辑。中间件提供了一种灵活的方式来修改或扩展应用程序的…