字符检测专题第一期:OCR技术工业应用浅谈

news2024/11/20 4:41:21

难题不会做?扫一扫,题目、解析立马出现。寄快递需要输入信息?扫一扫,软件自动提取上传。身份证信息需要录入?扫一扫,立马精准识别。这些都是我们日常司空见惯的动作,而实现这一切正是得益于OCR技术。

OCR通过图像处理和模式识别技术对光学的字符进行识别,是一种能够将文字自动识别录入到电脑中的软件技术。在工业领域,光学字符识别 (OCR) 是一项机器视觉任务。

图片1

一、OCR字符识别技术步骤

  

图像预处理

图像预处理一般包括二值化、文字定位和倾斜校正等步骤。二值化将三原色构成的多色图像转换成单色图像,这就是预处理的第一步,其目的是减少冗余信息量, 加快速度。倾斜校正是指对倾斜的文本完成校正。

字符分割

对预处理后的图像进行字符定位和分割操作,经过切分处理后,才能方便对单个文字进行识别处理。它是OCR中的一个重要步骤, 其效果直接影响 OCR 的最终结果。

特征提取

从单个字符图像上提取统计特征或结构特征,并从已有的特征库中找到与待识别文字相似度最高的文字进行比对、匹配。传统的特征提取方法,如模板匹配和结构分析等,面对复杂字符时并不是非常有效,而且会耗费大量时间。深度学习可以轻易完成这项任务,只要拥有足够量的数据集,就能提供更精确的识别。

字符识别

在识别结果基础上根据语种的语言模型进行识别校正。

结果输出

二、OCR识别检测技术的复杂应用

在工业领域,OCR技术被普遍应用在食药品、新能源、3C电子、汽车制造、烟草等行业,实现生产日期、批号、产品编号等信息的自动识别。几乎所有的工业产品上都会印有字符,这是产品的“身份证”。而产品的外观由于字符在印刷时产生的瑕疵、错误等就会引起客户对厂商的投诉。

图片2

传统的字符识别应用场景相对固定、字体单一规范、识别率较高。但面对并不理想的环境或复杂字符:字符组合的复杂性、字符印刷材质及工艺的多样性、生产过程中产生的多类字符缺损等检测难题,业内的综合识别率只有90%甚至更低,这样的识别率远远达不到实际应用的需求。

解决此类难题就需要使用AI视觉字符识别技术对产品上的字符进行高精度、高效率、高稳定的实时检测,分析判断其是否合格。AI视觉字符识别技术不仅能快速提升流水线的检测速度和精度,更能降低人工成本、提升产量质量。

复杂字符组合

包含中文、英文、数字、特殊符号、专业单位、二维码 、条形码等复杂字符内容。

图片3

图片4

字符印刷材质、工艺多样

纸板、塑料、金属、玻璃、锡纸等印刷材质及烫印、击凸、丝印、喷码、镭射等工艺的不同导致字符印刷质量存在差异。

图片5

图片6

图片7

字符缺损

字符印刷中导致的墨点、异物、文字残缺、漏印、色差、字符粘连、脏点、刀丝、拖墨、划伤、溢胶、气泡、模糊、扭曲、污渍等。

图片8

图片9

图片10

维视智造VisionBank AI 深度通用字符识别技术,在VisionBank AI的高效架构之上,延续了操作简单的图形化开发方式,基于深度学习算法的技术加持,为用户带来了更智能、更便捷的使用体验。

如何破解复杂工业环境下的识别难点,让万千字符识别难题,仅需一套视觉系统就能高效完成?下期内容为大家揭晓~

封面

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

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

相关文章

(其他) 剑指 Offer 61. 扑克牌中的顺子 ——【Leetcode每日一题】

❓剑指 Offer 61. 扑克牌中的顺子 难度:简单 从若干副扑克牌中随机抽 5 张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大…

一分钟图情论文:《原始的布拉德福定律》

天津大学图书馆的研究馆员范铮先生,在《图书情报工作》第一期中发表了题为《原始的布拉德福定律》的文章,详细介绍了布拉德福定律的历史背景、调查统计数据、文献曲线以及理论推导等关键内容。这篇文章让我们能够深入了解布拉德福定律的本质和原始构想。…

linux内核源码分析之虚拟内存

目录 虚拟地址空间划分(用户空间) 32位系统虚拟地址空间分配 64位系统虚拟地址空间分配 内存管理 内核布局虚拟地址空间 虚拟内存区域在内核中组织 内存访问权限 调用malloc 申请内存, 虚拟地址空间布局(内核&#xff09…

动静态库生成使用

🔥🔥 欢迎来到小林的博客!!       🛰️博客主页:✈️林 子       🛰️博客专栏:✈️ Linux       🛰️社区 :✈️ 进步学堂       &#x1f6f0…

2000-2022年上市公司行业异质性数据(技术密集型、劳动密集型、资本密集型)(含原始数据和处理代码)

2000-2022年上市公司行业异质性数据(技术密集型、劳动密集型、资本密集型)(含原始数据和处理代码) 1、时间:2000-2022年 2、指标:股票代码、年份、股票简称、统计日期、行业名称、行业代码、成立日期、上…

React复习日志大纲

文章目录 创建项目启动项目项目目录说明调整项目src剩余目录01基本使用02 列表渲染03 条件渲染04 样式处理05 函数和类组件创建和渲染06 事件绑定07 事件对象e08 传递额外参数09 组件状态修改10 受控组件11 非受控组件12 组件通信父传子13 Props说明14 组件通信子传父15 组件通…

【已解决】您所使用的密钥ak有问题,不支持jsapi服务,可以访问该网址了解如何获取有效密钥。

您所使用的密钥ak有问题,不支持jsapi服务,可以访问该网址了解如何获取有效密钥。详情查看:http://lbsyun.baidu.com/apiconsole/key#。 问题 百度密钥过期 思路 注册成为开发者 如果还没注册百度地图api账号的,点击以后就进入…

LRU算法之我见

文章目录 一、LRU算法是什么?二、使用原理三、代码实现总结 一、LRU算法是什么? LRU算法又称最近最少使用算法,它是是大部分操作系统为最大化页面命中率而广泛采用的一种页面置换算法。是一种缓存淘汰策略,根据使用频率来淘汰无用…

华清远见第六课程day4作业

仿照string类&#xff0c;完成myString 类 #include <iostream> #include <cstring>using namespace std;class myString{ private:char *str;int size; public:myString():size(10){str new char[size];strcpy(str,"");}myString(const char*s){size …

mysql leetcode打题记录

文章目录 完成度基本语法高级语法连接日期 函数编写函数聚合函数 因为上过的数据库课实在太水了&#xff0c;所以打算先在菜鸟教程/CSDN/leetcode先学一下基本语法&#xff0c;然后去做Stanford数据库原理的课程CS145。 小目标&#xff1a;把leetcode上不用钱的mysql的题先做一…

RabbitMQ死信队列与延迟队列

死信队列 死信队列的定义 死信队列&#xff08;Dead Letter Queue&#xff09;&#xff1a; 死信队列是一种特殊的队列&#xff0c;用于存放不能被消费的消息。当消息满足某些条件时&#xff0c;比如消息过期、消息被拒绝消费或消息达到最大重试次数等&#xff0c;RabbitMQ 会…

实现数组去重的七种方法

实现数组去重的 7 种方式 1. 方法一&#xff1a;利用两层循环数组的splice方法 通过两层循环对数组元素进行逐一比较&#xff0c;然后通过splice方法来删除重复的元素。此方法对NaN是无法进行去重的&#xff0c;因为进行比较时NaN ! NaN。 let arr [1, 2, 2, abc, abc, true,…

Mac系统 AndroidStudio Missing essential plugin:org.jetbrains.android报错

打开Android Studio,提示 Missing essential plugin:org.jetbrains.android错误&#xff0c;产生的原因是Kotlin被禁用。 解决的方法是删除disabled_plugins.txt&#xff0c;Mac OS对应的路径为&#xff1a; /Users/xzh/Library/Application Support/Google/AndroidStudio202…

C#中async/await的线程ID变化情况

一、简单的起步 Console.WriteLine($"主线程开始ID&#xff1a;{Thread.CurrentThread.ManagedThreadId}");//aawait Task.Delay(100);//cConsole.WriteLine($"主线程结束ID&#xff1a;{Environment.CurrentManagedThreadId}");//b 结果&#xff1a; …

MySQL复合查询(查询直接看这里)

回顾基本查询 查询工资高于500或岗位为TOM的雇员&#xff0c;同时还要满足他们的姓名首字母为大写的J select * from EMP where(sale > 500 or job TOM) and ename like J%;按照部门号升序而雇员的工资降序排序 select * from EMP order by deptno, sal desc;最后&#…

CANoe中的工作模式之争:由一段简单的代码引出的问题

1、引子 有网友问我一个CAPL中timer定时器的代码问题。他在CANoe工程中写了一段代码:每5秒循环触发一次定时器事件程序,输出一句文本信息到Write窗口。但是执行后发现并不是每5秒触发一次定时器事件程序,而是非常快的触发定时器事件程序。当他把这段代码复制到一个新的CANo…

【integrin + vWFa vWF】

CR3 ; CR4 ; 也有 vWFA CD11 CD18 vWF --Crystal structure and substrate-induced activation of ADAMTS13 神奇&#xff01; HGNC:12726 vWF 12p13.31 HGNC: 7 a2M 12p13.31

微服务之流控、容错组件sentinel

背景 2012年阿里巴巴研发的流量治理组件&#xff0c;核心功能流控、容错 有什么功能 流量控制 流量控制 网关控制 黑白名单 熔断降级 熔断 保护分布式系统防止因为调用下有服务时产生故障或者请求超时等异常影响上游服务&#xff0c;使用熔断方案&#xff0c;类似断路器…

城市内涝监测预警系统:有效降低内涝风险,保障城市安全

近日&#xff0c;受台风“海葵”的影响&#xff0c;福建广东多地遭遇了持续性强降雨的袭击&#xff0c;道路积水严重&#xff0c;“城市看海”模式再次开启&#xff0c;不少网友纷纷调侃房子已经升级为海景房。近年来受极端天气影响&#xff0c;城市内涝灾害越发凸显&#xff0…

vscode 画流程图

文章目录 1、安装插件 draw2、新建文件3、开始画图4、另存为图片 vscode可以画流程图了&#xff0c;只需要安装插件就可以了。 1、安装插件 draw 2、新建文件 3、开始画图 4、另存为图片