理解文字識別:一文讀懂OCR商業化產品的算法邏輯

文字識別是一項“歷久彌新”的技術。早在上世紀初,工程師們就開始嘗試使用當時有限的硬件設備掃描并識別微縮膠片、紙張上的字符。隨著時代和技術的發展,人們在日常生活中使用的電子設備不斷更新換代,文字識別的需求成為一項必備的技術基礎:不論是工廠序列號檢測,還是手機拍照翻譯,都離不開準確高效的識別技術。

在文檔智能應用領域,文字識別同樣是不可或缺的一環,它能夠將系統的覆蓋范圍從純電子文檔擴展到掃描、拍照、甚至手寫領域,極大提升實用范圍與性能。

本文將介紹文字識別技術方案,解析商業化產品的算法邏輯。

光學字符識別技術溯源

理解文字識別,首先需要明確OCR的概念。

光學字符識別(Optical Character Recognition, OCR) 是一種將圖像中的文字(如印刷體、手寫體)轉換為機器可編輯文本的技術。其核心目標是通過算法模擬人類視覺對文字的理解,實現從非結構化圖像到結構化文本的轉化,以供后續分析和組織使用。

OCR技術的發展歷史悠久,其概念最早由奧地利工程師 Gustav Tauschek在1929年提出。20世紀50年代至60年代期間,OCR的研究主要集中在手寫文檔的識別上,如支票處理和郵件分揀。這一時期的系統依賴于預處理技術和基于規則或模板匹配的方法。例如,早期版本的ABBYY OCR利用圖像二值化、降噪和布局分析等技術,通過模板匹配實現字符識別。

在深度學習出現之前,OCR系統主要依靠特征工程和傳統機器學習技術進行字符識別,這些方法廣泛應用于郵政編碼識別、表單處理和銀行業務等領域。典型案例如HP Labs于1984年開發的Tesseract OCR,與日本東芝公司研制的信函自動分揀系統,第一個實現手寫體郵政編碼識別。

隨著OCR技術在各個行業的應用,包括逐漸擴展到車牌識別、身份證識別等領域,對更高精度和更廣泛應用的需求日益增加。研究人員開始探索更先進的方案,如場景文本識別、多語言識別和文檔字符識別。自2010年以來,端到端深度學習算法的發展顯著改變了OCR領域,能夠實現高精度實時識別,移動端應用爆發。

OCR涉及兩個主要任務:文本檢測和文本識別。第一步是在圖像中定位文本的位置,第二步則是應用識別算法將識別出的文本轉換為計算機可讀的字符。

文本檢測

文本檢測是OCR的核心環節之一,目的是從圖像中定位文字區域。傳統方法依賴手工設計特征(如邊緣檢測),但難以應對復雜場景。基于分割的深度學習方法通過像素級預測,成為解決彎曲文本、密集排列等難題的主流方案。

將文本檢測作為圖像分割問題來處理,即通過像素分類來識別文本區域,可以參考以下技術流程:

  1. 特征提取:骨干網絡提取圖像多尺度特征。

  2. 像素級預測:分割網絡輸出概率圖,標記每個像素是否屬于文本區域。

  3. 后處理:通過二值化、連通域分析等步驟,將概率圖轉換為文本邊界框或多邊形。

與傳統回歸方法直接預測邊界框不同,分割方法更擅長處理不規則文本(如彎曲、旋轉文字),且對背景干擾更具魯棒性。

早期的方法使用全卷積網絡(FCNs)進行文本行檢測,而后續算法如PAN[1]和CRAFT[2]則進一步提升了效率和精度,并通過字符級檢測增強了對復雜文本布局的適應性。

使用CRAFT進行字符級檢測

實例分割方法將每個文本塊視為獨立的實例,有效應對了緊密相鄰文本塊的挑戰[3]。SPCNET[4]和LSAE[5]等技術在此基礎上進行了改進,前者采用金字塔注意力模塊增強特征提取能力,后者利用雙分支架構優化檢測效果,在處理復雜背景和重疊文本方面表現出色。

后處理步驟在基于分割的方法中尤為重要,例如二值化操作可以顯著提升最終檢測結果的質量。可微二值化(DB)通過在網絡中集成二值化過程,提高了檢測和檢測精度,有效地結合了前處理與后處理的優勢,使得整體文本檢測流程更加高效和精確[6]。

文本識別

基于CTC損失的方法

在OCR文本識別任務中,模型需要將圖像中的文字序列(如“ABC123”)準確轉換為字符標簽。傳統方法依賴字符分割與單獨識別,但面臨間距不均、粘連字符等難題。CTC(Connectionist Temporal Classification)損失函數的提出,實現了端到端的序列學習,成為不定長文本識別的主流解決方案。

CTC通過動態對齊解決輸入(圖像特征序列)與輸出(目標字符序列)的長度差異問題,它計算所有可能對齊路徑的概率,特別適合處理可變長度的文本,其核心機制包含三部分:

  1. 特征編碼:使用CNN+BiLSTM網絡提取圖像特征,生成時序特征向量(如100個時間步)。

  2. 路徑擴展:允許模型在每個時間步預測字符或空白符(blank),如“-A--B-C”與“AA-BC”均可映射為“ABC”。

  3. 概率聚合:通過前向-后向算法合并所有有效路徑的概率,計算負對數損失指導訓練。

以輸入5個時間步識別“cat”為例,CTC自動對齊“cc-a-t”“c-aat”等路徑,無需人工標注字符位置信息。

在基于CTC的識別方法中,CRNN模型是一個顯著的應用實例,它結合了卷積神經網絡(CNN)、循環神經網絡(RNN)和CTC損失進行序列生成,這種組合有效提升了文本識別的靈活性和準確性[7]。Deep TextSpotter進一步改進了這一方法,它結合了CNN特征提取和CTC損失,提高了文本檢測和識別的精度[8]。

然而,盡管CTC在許多場景下表現出色,但在處理長文本、上下文細微差別和垂直文本時,可能導致計算復雜性的增加,影響模型效率和準確率。因此在實際應用中,需要根據具體需求選擇合適的模型架構和技術手段,以平衡識別精度和計算效率。

基于序列到序列的方法

序列到序列(seq2seq)技術使用編碼器-解碼器架構來編碼輸入序列并生成相應的輸出,通過注意力機制管理長距離依賴關系,實現端到端映射,是解決復雜文本識別任務的重要技術路線之一。傳統方法通常使用RNN和CNN將圖像特征轉換為一維序列,再由基于注意力的解碼器進行處理。但是,在處理任意方向和不規則文本時,將圖像轉換為一維序列以適應基于Transformer的架構仍存在挑戰。

為了解決這些問題,模型采用了多種策略,如輸入校正和二維特征圖。例如,空間Transformer網絡(STN)能夠將文本圖像校正為矩形、水平對齊的字符,這在ASTER[9]、ESIR[10]等模型中得到了應用。其他模型則直接從二維空間中提取字符,避免了對輸入圖像的修改,以適應不規則和多方向文本,如SAR[11]、AON[12]和SATRN[13]。

隨著Transformer架構的普及,傳統的CNN和RNN模型逐漸被基于注意力的編碼器-解碼器系統所取代。性能改進主要集中在更好地處理二維幾何位置信息,來應對不規則或長文本序列。當前,OCR研究在利用Transformer架構提高復雜圖像文本處理性能方面不斷進步[14],隨著多模態融合方向的發展和擴散模型在序列生成中的應用,技術邊界將持續拓展。

歡迎后臺私信添加小助手微信,免費在線體驗文字識別模型,來交流群與我們共同探討技術發展與AI應用的可能性。

參考文獻

[1] Wenhai Wang, Enze Xie, Xiaoge Song, Yuhang Zang, Wenjia Wang, Tong Lu, Gang Yu, and Chunhua Shen. Efficient and accurate arbitrary-shaped text detection with pixel aggregation network. In Proceedings of the IEEE/CVF international conference on computer vision, pages 8440–8449, 2019.

[2] Youngmin Baek, Bado Lee, Dongyoon Han, Sangdoo Yun, and Hwalsuk Lee. Character region awareness for text detection. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition, pages 9365–9374, 2019.

[3] Dan Deng, Haifeng Liu, Xuelong Li, and Deng Cai. Pixellink: Detecting scene text via instance segmentation. In Proceedings of the AAAI conference on artificial intelligence, volume 32, 2018.

[4] Enze Xie, Yuhang Zang, Shuai Shao, Gang Yu, Cong Yao, and Guangyao Li. Scene text detection with supervised pyramid context network. In Proceedings of the AAAI conference on artificial intelligence, volume 33, pages 9038–9045, 2019.

[5] Zhuotao Tian, Michelle Shu, Pengyuan Lyu, Ruiyu Li, Chao Zhou, Xiaoyong Shen, and Jiaya Jia. Learning shape-aware embedding for scene text detection. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition, pages 4234–4243, 2019.

[6] Jiachen Li, Yuan Lin, Rongrong Liu, Chiu Man Ho, and Humphrey Shi. Rsca: Real-time segmentation-based context-aware scene text detection. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition, pages 2349–2358, 2021.

[7] Baoguang Shi, Xiang Bai, and Cong Yao. An end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition. IEEE transactions on pattern analysis and machine intelligence, 39(11):2298–2304, 2016.

[8] Michal Busta, Lukas Neumann, and Jiri Matas. Deep textspotter: An end-to-end trainable scene text localization and recognition framework. In Proceedings of the IEEE international conference on computer vision, pages 2204–2212, 2017.

[9] Fangneng Zhan and Shijian Lu. Esir: End-to-end scene text recognition via iterative rectification. Cornell University Library, pages 1–8, 2018.

[10] Canjie Luo, Lianwen Jin, and Zenghui Sun. Moran: A multi-object rectified attention network for scene text recognition. Pattern Recognition, 90:109–118, 2019.

[11] Hui Li, Peng Wang, Chunhua Shen, and Guyu Zhang. Show, attend and read: A simple and strong baseline for irregular text recognition. In Proceedings of the AAAI conference on artificial intelligence, volume 33, pages 8610–8617, 2019.

[12] Zhanzhan Cheng, Yangliu Xu, Fan Bai, Yi Niu, Shiliang Pu, and Shuigeng Zhou. Aon: Towards arbitrarily-oriented text recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 5571–5579, 2018.

[13] Junyeop Lee, Sungrae Park, Jeonghun Baek, Seong Joon Oh, Seonghyeon Kim, and Hwalsuk Lee. On recognizing texts of arbitrary shapes with 2d self-attention. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops, pages 546–547, 2020.

[14] Jingye Chen, Bin Li, and Xiangyang Xue. Scene text telescope: Text-focused scene image super-resolution. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pages 12026–12035, 2021.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/75670.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/75670.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/75670.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

開源模型應用落地-語音轉文本-whisper模型-AIGC應用探索(五)

一、前言 在上一節中,學習了如何使用vLLM來部署Whisper-large-v3-turbo模型。不過,在實際使用時,模型一次只能處理30秒的音頻。今天,將結合實際業務,介紹如何處理一段完整的音頻,并生成相應的字幕文件。 相…

“十五五”時期航空彈藥發展環境分析

1.“十五五”時期航空彈藥發展環境分析 (標題:小二號宋體居中) 一、建言背景介紹 (一級標題:黑體三號,首行空兩格) 航空彈藥作為現代戰爭的核心裝備,其發展水平直接關乎…

IDEA批量替換項目下所有文件中的特定內容

文章目錄 1. 問題引入2. 批量替換項目下所有文件中的特定內容2.1 右鍵項目的根目錄,點擊在文件中替換2.2 輸入要替換的內容 3. 解決替換一整行文本后出現空行的問題4. 增加篩選條件提高匹配的精確度 更多 IDEA 的使用技巧可以查看 IDEA 專欄: IDEA 1. 問…

藍橋杯 臨時抱佛腳 之 二分答案法與相關題目

二分答案法(利用二分法查找區間的左右端點) (1)估計 最終答案可能得范圍 是什么 (2)分析 問題的答案 和 給定條件 之間的單調性,大部分時候只需要用到 自然智慧 (3)建…

學習爬蟲的第二天——分頁爬取并存入表中

閱讀提示:我現在還在嘗試爬靜態頁面 一、分頁爬取模式 以豆瓣Top250為例: 基礎url:豆瓣電影 Top 250https://movie.douban.com/top250 分頁參數:?start0(第一頁)、?start25(第二頁)等 每頁顯示25條數…

第 8 章:使用更好的庫_《C++性能優化指南》_notes

使用更好的庫 第八章核心知識點解析編譯與測試建議總結優化原則重點內容:第一部分:多選題(10題)第二部分:設計題答案與解析多選題答案:設計題答案示例(部分): 測試用例設…

RabbitMQ 學習整理1 - 基礎使用

項目代碼:RabbitMQDemo: 學習RabbitMQ的一些整理 基本概念 RabbitMQ是一種基于AMQP協議的消息隊列實現框架RabbitMQ可以用于在系統與系統之間或者微服務節點之間,進行消息緩存,消息廣播,消息分配以及限流消峰處理RabbitMQ-Serve…

React組件簡介

組件 在 React 中,組件(Component) 是 UI 的基本構建塊。可以把它理解為一個獨立的、可復用的 UI 單元,類似于函數,它接受輸入(props),然后返回 React 元素來描述 UI。 組件的簡單…

Kafka消息序列化深度革命:構建高性能、高安全的自定義編碼體系

一、突破默認序列化的桎梏 1.1 原生序列化器的致命缺陷 Kafka默認提供的StringSerializer/ByteArraySerializer在復雜場景下暴露三大痛點: 類型安全黑洞:字節流缺乏元數據描述,消費端解析如履薄冰版本兼容困境:數據結構變更導致…

向量數據庫與傳統數據庫的差異

向量數據庫是一種專門設計用于高效存儲、管理和檢索**向量數據(高維數值數組)**的數據庫系統。它針對非結構化數據(如圖像、文本、音頻)的特征進行優化,通過將數據轉化為向量嵌入(embeddings)&a…

自動化框架的設計與實現

一、自動化測試框架 在大部分測試人員眼中只要沾上“框架”,就感覺非常神秘,非常遙遠。大家之所以覺得復雜,是因為落地運用起來很復雜;每個公司,每個業務及產品線的業務流程都不一樣,所以就導致了“自動化…

SpringBoot 3+ Lombok日志框架從logback改為Log4j2

r要將Spring Boot 3項目中的日志框架從Logback切換到Log4j2&#xff0c;并配置按日期滾動文件和控制臺輸出&#xff0c;請按照以下步驟操作&#xff1a; 步驟 1&#xff1a;排除Logback并添加Log4j2依賴 在pom.xml中修改依賴&#xff1a; <dependencies><!-- 排除默…

①、環境準備-主流技術(IPS/FW/主備-主主快速切換)

主流技術&(IPS/FW/主備-主主快速切換&#xff09; 一、RBM主備方案 RBM-FW-P 主配置內容介紹-注釋 remote-backup group 含義&#xff1a;定義了一個遠程備份組。這表明設備支持某種形式的遠程備份功能&#xff0c;用于在設備之間同步配置或數據。data-channel interface …

量化交通擁堵

指數&#xff1a; 基于嚴重擁堵里程比的指數和基于出行時間比的指數。 評價指標是飽和度&#xff08;VC比&#xff09;&#xff0c;它表示交通量與通行能力的比值。 飽和度可分為道路飽和度和路口飽和度。道路飽和度還會進一步分級&#xff0c;有四檔和六檔之分。 城市道路和…

PDF與Markdown的量子糾纏:一場由VLM導演的文檔界奇幻秀

緣起:當格式界的"泰坦尼克號"撞上"黑客帝國" 某個月黑風高的夜晚,在"二進制酒吧"的霓虹燈下: PDF(西裝革履地晃著威士忌): “我的每一頁都像瑞士手表般精密,連華爾街的禿鷲都為我傾倒!” Markdown(穿著帶洞的拖鞋): “得了吧老古董!…

【neo4j數據導出并在其他電腦導入】

停止服務 neo4j stop 導出 neo4j-admin database dump neo4j --to-path"C:\Users\12901\Downloads\test folder" 導入 將 .dump 文件放在一個目錄中 mkdir /root/dump-directory mv /root/neo4j.dump /root/dump-directory/ 使用包含 .dump 文件的目錄路徑作為 …

前端使用WPS WebOffice 做在線文檔預覽與編輯

先附上官網 WebOffice SDK 1、在下面這個地方找到jdk&#xff0c;然后下載 按照 2、只需要把jdk下載下來&#xff0c;放到項目中&#xff0c;然后引入到項目中就可以了&#xff0c;在wps 官網創建個應用&#xff0c;然后把appId放到代碼中就可以了&#xff0c;等待后端把回調…

跨語言微服務架構(Java、Python)——“API中臺”

文章目錄 一、引言二、系統架構概述2.1 統一單點登錄&#xff08;SSO&#xff09;與權限管理設計2.2 API中臺與數據中臺的融合2.3 跨語言適配器與 JWT 認證機制 三、技術細節與工具選型3.1 SSO 系統的選型與實現3.2 微服務架構與 API 中臺的實現3.3 跨語言適配器實現與技術難點…

DeepSeek V3-0324升級:開啟人機共創新紀元

一、技術平權&#xff1a;開源協議重構AI權力格局 DeepSeek V3選擇MIT協議開源6850億參數模型&#xff0c;本質上是一場針對技術壟斷的“數字起義”。這一決策的深層影響在于&#xff1a; 商業邏輯的重構 閉源AI公司依賴API收費的商業模式面臨根本性挑戰。當頂級模型能力可通過…

QOpenGLWidget視頻畫面上繪制矩形框

一、QPainter繪制 在QOpenGLWidget中可以繪制,并且和OpenGL的內容疊在一起。paintGL里面繪制完視頻后,解鎖資源,再用QPainter繪制矩形框。這種方式靈活性最好。 void VideoGLWidget::paintGL() {glClear(GL_COLOR_BUFFER_BIT);m_program.bind();//繪制視頻數據// 解綁VAOg…