【实用工具】【图像处理,超大图片识别,方案篇:化繁为简】
【实用工具】【图像处理,超大图片ocr识别,方案篇:化繁为简】
- 前言
- 1. 主流看图软件识大图
- 1.1 windows自带软件
- 1.2 photoshop
- 1.3. ACDSee
- 2. 直接识别
- 2.1. 存在的问题
- 2.1. 改进思路
- 3. 改进后识别
- 3.1 重采样
- 3.2. 裁减图片
- 4.结语
前言
最近有个项目需要对超大图片(分辨率大于90000 x 60000)内容进行识别,且图片上限不确定(客户使用专业制图工具生成);其中,样本选取TIF,JPG两种格式样本如下。
如图1所示,x3000.TIF分辨率为92127x63492,静态图片大小为650M。
如图2所示,x2000.jpg分辨率为61418x42328,静态图片大小为69.7M。
那么windows自带看图软件打开以上图片表现如何,我在项目中如何解决此类问题呢?
1. 主流看图软件识大图
1.1 windows自带软件
(1)windows画图软件(mspaint.exe)。
加载x2000.jpg(69.7MB, 分辨率61418x42328)图片,打开失败。
(2)windows照片查看器
加载x2000.jpg(69.7MB, 分辨率61418x42328)图片,提示“内存不足”;如下图所示。
通过图3可知,打开x2000.jpg之前内存占用为4.19G,打开图片后峰值内存达到7.45G;且报出“内存可能不足”。则可知windows照片查看器占用内存 大于 3.26G(7.45-4.19),如此大的信息量加载,时间消耗也是巨大的。
1.2 photoshop
选取经典的photoshop软件为例,当打开x2000.jpg;photoshop峰值内存达到2G左右,图片原始大小7.26G, 如下图所示。
1.3. ACDSee
ACDSee整体表现较为优异,峰值内存约为300M左右;不随图片变大而上升。显示方式上,类似于逐行扫描的那种,一块一块向下逐渐显示;最后完成整图的显示。
ACDSee的解决方案,即是逐块进行加载;这也是在章节3中提到的重采样工具的设计思路。
2. 直接识别
2.1. 存在的问题
原始的图片太大;一般应用程序无法提供如此大的内存来加载原始图片(如x2000.jpg,原始图片大小7.26G, 压缩为jpg后大小为69.7M).目前,ocr直接识别会导致以下问题。
(1)ocr是基于区域识别的,如果分辨率过高;导致识别窗口始终只能覆盖汉字的局部,如下图所示,假设屏幕为识别窗口,能捕获的文字如下图所示。
图6中,因对于9W*6W分辨率的打不开,实际图分辨率为22749x16722;将其放大5倍(500%),得到9W x 6W图的示意效果。
(2)对于市面上主流的图片识别或处理软件,大多是完全载入;当遇到分辨率过高时(如x2000.jpg;图片原始大小7.26G),如无优化会导致软件内存不足无法载入。测试过程中,windows的画图(mspaint.exe),自带识图(调用dlhost.exe)等都会导致弹出“无法载入”,卡死现象。
2.1. 改进思路
针对白底黑字的识别区域,如进行等比例缩放,选取有效区域进行针对性识别;是否会提升识别率呢,经过试验不影响识别效果; 以下是某“检查软件”识别效果。
3. 改进后识别
对于白底黑字的文字识别场景,分别实验“重采样”、“图片裁剪”因素对于识别率的影响。从实验结果看,对于白底黑字类样本,ocr识别率可迅速提升。
3.1 重采样
重采样通俗一点就是,将图片栅格化,每个栅格包含N个像素点,使用重采样算法输出所有栅格的输出值;输出图像采样率降为原有的1/N。常用的重采样算法如下(详细会在下一篇进行详细介绍)。
- 最邻近法。
- 双线性内插法。
- 三次卷积内插法。
使用重采样工具(自研),对图片进行处理后,使用OCR识别图7所示。
3.2. 裁减图片
将图片识别区域变小,即对图片进行裁减后;经实验对于高分辨率的图片,提升识别率影响不大。但降低分辨率后,使用裁剪可提升识别效果。
4.结语
以上场景对于白底黑字图片,效果尤为明显;其中,图片转换工具为自研,可供大家交流学习。因该模块应用于正式项目,需提供MAC地址限制授权;大家可邮件联系:ausable@163.com,小波,或在评论区留言。
【实用工具】【图像处理,超大图片识别,方案篇:化繁为简】相关推荐
- python 识图点击_Python图片识别——人工智能篇
一.安装pytesseract和PIL PIL全称:Python Imaging Library,python图像处理库,这个库支持多种文件格式,并提供了强大的图像处理和图形处理能力. 由于PIL仅支 ...
- Python图片识别——人工智能篇
目录 一.安装pytesseract和PIL PIL全称:Python Imaging Library,python图像处理库,这个库支持多种文件格式,并提供了强大的图像处理和图形处理能力. 由于P ...
- python智能识别 病虫草害_Python图片识别——人工智能篇
一.安装pytesseract和PIL PIL全称:Python Imaging Library,python图像处理库,这个库支持多种文件格式,并提供了强大的图像处理和图形处理能力. 由于PIL仅支 ...
- python识图 web_Python图片识别——人工智能篇
一.安装pytesseract和PIL PIL全称:Python Imaging Library,python图像处理库,这个库支持多种文件格式,并提供了强大的图像处理和图形处理能力. 由于PIL仅支 ...
- 实用工具(锐捷云桌面篇)-Halo工具
大家好,我是小杜.今日在学习的过程中又发现了一个云桌面好用的工具-"Halo工具". Halo工具是集云主机体检.故障信息收集工具.故障排查案例集.极简部署等于一体的工具,在完成体 ...
- 实用工具(锐捷睿易篇)
大家好,我是小杜,美好的一天又开始了. 3个多星期以来,知道了设备如何登录,如何部署实施配置上网,学习的过程中发现了一个"惊为天人"的云管平台--诺客云MACC,睿易系列的产品用的 ...
- 实用工具(锐捷业务软件篇)
大家好,我是小杜,又是元气满满的一天.这不,今天又是精神满满的来到了我的"战斗基地"-工位上,开始今天的学习战斗.从师傅那得知业务软件在部署的时候有几个很好用的工具,可以在业务中实 ...
- 快速入门开发实现订单类图片识别结果抽象解析
一.背景 面对订单数据纸质文件或图片,仅靠人眼识别的话效率很低,需引入机器学习来识别和解析图片以提高效率.当前市面上已有收费的图片识别服务,包括阿里.百度等,识别效果较好,但针对订单类图片,不仅要关注 ...
- [验证码识别技术]-初级的滑动式验证图片识别
初级的滑动式验证图片识别方案 1 abstract 验证码作为一种自然人的机器人的判别工具,被广泛的用于各种防止程序做自动化的场景中.传统的字符型验证安全性已经名存实亡的情况下,各种新型的验证码如雨后 ...
- gparted使用 ubuntu_如何使用 GParted 实用工具缩放根分区
原标题:如何使用 GParted 实用工具缩放根分区 在这篇文章中,我们将教你如何使用 GParted 缩放在 Linux 上的活动根分区. -- Magesh Maruthamuthu(作者) 今天 ...
最新文章
- linux 模拟生成 CAN 设备
- mybatis oracle批量修改
- 重载运算与类型转换——基本概念,输入和输出运算符,算术和关系运算符,赋值运算符,下标运算符,递增和递减运算符,成员访问运算符...
- 【2016年第1期】农业大数据资产管理面临的挑战与思考
- Python-Flask构建微信小程序订餐系统-Flask打造高可用flask mvc框架-08
- 软件开发计划_敏捷软件开发实践:估算与计划读书笔记125第23章 案例分析:Bomb Shelter Studio...
- 电工电子产品环境试验GB国标汇总
- lldp协议代码阅读_LLDP(lldp协议平时开启还是关闭)
- PayPal开发文档整理(2)- 开发者文档介绍
- matlab 调和级数作图,华工数学实验报告斐波那契数列.doc
- pico3pro使用unity播放360全景视频及事件交互
- java 创建新的图片,底色自己设定
- aria2的安装使用
- 通过TMG发布ActiveSync
- 基于凌鸥平台的120° 方波控制 BLDC 无感 比较器反电动势过零点
- word中插入endnote 为什么会是大括号,而且后面没有文献
- android收集备忘录恢复工具,手机小小备忘录数据恢复大问题轻松恢复文件看这里...
- 第6章 面向对象的程序设计
- 教师资格证材料分析题答题模板,可直接套用!
- select: Invalid argument