Assistent de reconeixement de text OCR

【Deep Learning OCR Series·6】Anàlisi en profunditat de l'arquitectura CRNN

Anàlisi detallada de l'arquitectura CRNN, incloent-hi l'extracció de característiques CNN, el modelatge de seqüències RNN i la implementació completa de la funció de pèrdua CTC. Endinsa't en la combinació perfecta de CNN i RNN.

## Introducció CRNN (Xarxa Neuronal Recurrent Convolucional) és una de les arquitectures més importants en el camp de l'OCR per aprenentatge profund, proposada per Bai Xiang et al. el 2015. La CRNN combina de manera intel·ligent les capacitats d'extracció de característiques de les xarxes neuronals convolucionals (CNNs) amb les capacitats de modelatge de seqüències de les xarxes neuronals recurrents (RNN) per aconseguir el reconeixement de text de punta a punta. Aquest article oferirà una anàlisi en profunditat del disseny arquitectònic del CRNN, els principis de funcionament, els mètodes d'entrenament i les aplicacions específiques en OCR, proporcionant als lectors una comprensió tècnica completa. ## Visió general de l'arquitectura CRNN ### Motivació de disseny Abans de la CRNN, els sistemes OCR normalment adoptaven un enfocament pas a pas: primer es realitzaven la detecció i segmentació de caràcters, i després es reconeixia cada caràcter. Aquest enfocament presenta els següents problemes: **Limitacions dels mètodes tradicionals**: - Propagació d'errors: Els errors en la segmentació de caràcters poden afectar directament els resultats de reconeixement - Complexitat: Requereix dissenyar algorismes complexos de segmentació de caràcters - Poca robustesa: Sensible a l'espaiat de caràcters i als canvis de lletra - Incapacitat per gestionar traços continus: El fenomen dels traços continus en textos manuscrits és difícil de separar **Idees innovadores de CRNN**: - Aprenentatge end-to-end: Mapeig directe d'imatges a seqüències de text - Sense segmentació: Evita la complexitat de la segmentació de caràcters - Modelatge de seqüències: Utilitzar RNN per modelar dependències entre caràcters - Alineació CTC: Soluciona desajustos de longitud de seqüències d'entrada i sortida ### Arquitectura general L'arquitectura CRNN consta de tres components principals: **1. Capes convolucionals**: - Funció: Extreure seqüències de característiques d'imatges d'entrada - Entrada: Imatge de línia de text (alçada fixa, amplada variable) - Sortida: Seqüència de mapes de característiques **2. Capes recurrents**: - Funció: Modelar dependències contextuals en seqüències de característiques - Entrada: La seqüència de llargmetratges extreta per la CNN - Sortida: Una seqüència de característiques amb informació contextual **3. Capa de transcripció**: - Funció: Convertir seqüències de característiques en seqüències de text - Mètode: Utilitzant CTC (Classificació Temporal Connexionista) - Sortida: El resultat final del reconeixement de text ## Explicació detallada de les capes convolucionals ### Estratègies d'extracció de característiques La capa convolucional de CRNN està dissenyada específicament per al reconeixement de text: **Característiques de l'estructura de la xarxa**: - Profunditat poc profunda: normalment s'utilitzen 7 capes de capes convolucionals - Petits nuclis convolucionals: principalment s'utilitzen nuclis convolucionals 3×3 - Estratègia de pooling: Utilitza el pooling amb moderació en la direcció d'amplada **Configuració específica de xarxa**: Entrada: 32×W×1 (alçada 32, amplada W, canal únic) Conv1: 64 nuclis convolucionals 3×3, pas 1, omple 1 MaxPool1: 2×2 piscines, longitud de pas 2 Conv2: 128 3×3 nuclis convolucionals, pas 1, omple 1 MaxPool2: 2×2 agrupats, mida de pas 2 Conv3: 256 nuclis convolucionals 3×3, pas 1, omplir 1 Conv4: 256 nuclis convolucionals 3×3, pas 1, omplir 1 MaxPool3: 2×1 agrupat, mida de pas (2,1) Conv5: 512 3×3 nuclis convolucionals, pas 1, omplir 1 BatchNorm + ReLU Conv6: 512 nuclis convolucionals 3×3, pas 1, omplir 1 BatchNorm + ReLU MaxPool4: 2×1 agrupat, mida de pas (2,1) Conv7: 512 nuclis convolucionals 2×2, pas 1, omplir 0 Sortida: 512×1×W/4 ### Consideracions clau de disseny **Estratègia d'alta compressió**: - Objectiu: Comprimir la imatge a 1 píxel d'alçada - Mètode: Comprimir gradualment l'alçada utilitzant múltiples capes d'acumulació - Raó: L'alçada de la línia de text és relativament poc important **Estratègia de retenció d'amplada**: - Objectiu: Mantenir la informació d'amplada de la imatge tant com sigui possible - Mètode: Reduir les operacions de pooling en la direcció d'amplada - Raó: La informació de la seqüència del text es reflecteix principalment en la direcció d'amplada **Conversió de mapes de característiques**: La sortida de la capa convolucional s'ha de convertir al format d'entrada de la RNN: - Sortida en brut: C×H×W (Alçada × canal× amplada) - Convertit: W×C (Longitud de la seqüència× Dimensió de la característica) - Mètode: Prendre el vector de característiques per a cada posició d'amplada com a pas de temps ## Explicació detallada de la capa circular ### Selecció RNN Les CRNN normalment utilitzen LSTM bidireccionals com a capa de llaç: **Avantatges de l'LSTM bidireccional**: - Informació contextual: Utilitzar tant el context endavant com el posterior - Dependències de llarga distància: LSTM és capaç de gestionar dependències de llarga distància - Estabilització del gradient: Evita el problema de la desaparició del gradient **Configuració de xarxa**: Entrada: W×512 (longitud de la seqüència × dimensió de la característica) BiLSTM1: 256 cel·les ocultes (128 endavant + 128 enrere) BiLSTM2: 256 cel·les ocultes (128 endavant + 128 enrere) Sortida: W×256 (longitud de la seqüència× dimensions ocultes) ### Mecanismes de modelatge de seqüències **Modelatge de Dependències de Temps**: La capa RNN captura les dependències temporals entre caràcters: - La informació del personatge anterior ajuda a reconèixer el personatge actual - La informació sobre els caràcters posteriors també pot proporcionar un context útil - La informació de tota la paraula o frase ajuda a desambiguar **Millores de funcionalitats**: Les característiques processades per RNN tenen les següents característiques: - Sensible al context: Les característiques de cada ubicació contenen informació contextual - Consistència temporal: Les característiques en ubicacions adjacents tenen una certa continuïtat - Riquesa semàntica: Combina característiques visuals i de seqüència ## Explicació detallada de la capa de transcripció ### Mecanisme CTC La CTC (Classificació Temporal Connexionista) és un component clau de la CRNN: **El paper dels CTC**: - Resolució de problemes d'alineació: Les longituds de les seqüències d'entrada no coincideixen amb les longituds de les seqüències de sortida - Entrenament d'extrem a extrem: No cal anotacions d'alineació a nivell de caràcter - Gestionar duplicats: Gestionar correctament els casos de caràcters duplicats **Com funciona el CTC**: 1. Ampliar el conjunt d'etiquetes: Afegir etiquetes en blanc a sobre del conjunt original de caràcters 2. Enumeració de camins: Enumera tots els possibles camins d'alineació 3. Probabilitat de camí: Calcular la probabilitat de cada camí 4. Marginació: suma les probabilitats de tots els camins per obtenir la probabilitat de seqüència ### Funció de pèrdua CTC **Representació matemàtica**: Donada la seqüència d'entrada X i la seqüència objectiu Y, la pèrdua CTC es defineix com: L_CTC = -log P(Y| X) on P(Y| X) s'obté sumant les probabilitats de tots els possibles camins alineats: P(Y| X) = Σ_π∈B^(-1)(Y) P(π| X) Aquí B^(-1)(Y) representa tots els conjunts de camins que es poden mapar a la seqüència objectiu Y. **Algorisme endavant-enrere**: Per calcular eficientment la pèrdua de CTC, s'utilitza un algorisme endavant-enrere per a la programació dinàmica: - Algorisme de Forward: Calcula la probabilitat d'assolir cada estat - Algorisme cap enrere: Calcula la probabilitat des de cada estat fins al final - Càlcul de gradient: Calcular gradients conjuntament amb la probabilitat endavant-enrere ## Estratègia d'entrenament CRNN ### Preprocessament de dades **Preprocessament d'imatge**: - Normalització de mida: Unificar l'alçada de la imatge a 32 píxels - Manteniment de la relació d'aspecte: Manté la relació d'aspecte de la imatge original - Conversió en escala de grisos: Convertir a una imatge en escala de grisos d'un sol canal - Normalització numèrica: els valors dels píxels es normalitzen a [0,1] o [-1,1] **Millora de dades**: - Transformacions geomètriques: rotació, inclinació, transformació en perspectiva - Canvis d'il·luminació: brillantor, ajustos de contrast - Addició de soroll: soroll gaussià, soroll de sal i pebre - Desenfocament: Desenfocament de moviment, Desenfocament gaussià ### Tècniques d'entrenament **Programació de la velocitat d'aprenentatge**: - Taxa d'aprenentatge inicial: Normalment establerta a 0,001 - Estratègia de desintegració: desintegració exponencial o desintegració escalonada - Estratègia d'escalfament: Les primeres èpoques utilitzen una taxa d'aprenentatge baixa **Tècniques de regularització**: - Dropout: Afegeix un dropout després de la capa RNN - Degradació del pes: la regularització L2 evita el sobreajustament - Normalització per lots: Utilitza la normalització per lots a la capa CNN **Selecció d'optimitzador**: - Adam: Taxa d'aprenentatge adaptativa, convergència ràpida - RMSprop: Adequat per a la formació de la RNN - SGD+Momentum: opció tradicional però estable ## Optimització i millora de CRNN ### Optimització d'arquitectura **Millores parcials de CNN**: - Connexions ResNet: S'han afegit connexions residuals per millorar l'estabilitat de l'entrenament - DenseNet Fabric: Les connexions denses milloren la multiplexació de característiques - Mecanisme d'Atenció: Introdueix l'atenció espacial en les CNN **Millores parcials de la RNN**: - Substitució de GRU: Utilitza GRU per reduir la quantitat de paràmetres - Transformer: Substitueix les RNN mitjançant mecanismes d'autoatenció - Característiques multiescala: Incorporen característiques de diferents escales ### Optimització del rendiment **Acceleració d'inferència**: - Quantització de models: la quantització INT8 redueix l'esforç computacional - Poda de models: Eliminar connexions poc importants - Destil·lació del coneixement: Aprèn el coneixement de models grans amb models petits **Optimització de la memòria**: - Punts de control de gradient: Reduir la petjada de memòria durant l'entrenament - Precisió mixta: Entrena amb FP16 - Optimització dinàmica de grafs: Optimitzar l'estructura del gràfic calculat ## Casos d'aplicació reals ### Reconeixement de text manuscrit **Escenaris d'aplicació**: - Digitalitzar notes manuscrites - Ompliment automàtic de formularis - Reconeixement de documents històrics **Característiques tècniques**: - Gran variació de caràcters: Requereix una gran capacitat d'extracció de característiques - Processament continu de traços: Els avantatges del mecanisme CTC són evidents - El context importa: Les capacitats de modelització de seqüències de les RNN són crítiques ### Reconeixement de text imprès **Escenaris d'aplicació**: - Digitalitzar documents - Identificació del bitllet - Reconeixement de senyalització **Característiques tècniques**: - Regularitat de la tipografia: l'extracció de característiques de CNN és relativament senzilla - Regles de tipografia: Es pot utilitzar la informació de maquetació - Requisits d'alta precisió: Requereix ajust fi del model ### Reconeixement de text d'escena **Escenaris d'aplicació**: - Reconeixement de text Street View - Identificació de l'etiqueta del producte - Reconeixement de senyals de trànsit **Característiques tècniques**: - Context complex: Requereix una extracció robusta de característiques - Deformació severa: Es requereix un disseny d'arquitectura robusta - Requisits en temps real: Requereix raonament eficient ## Resum Com a arquitectura clàssica d'OCR d'aprenentatge profund, CRNN resol amb èxit molts problemes dels mètodes tradicionals d'OCR. El seu mètode d'entrenament d'extrem a extrem, el concepte de disseny sense segmentació de caràcters i la introducció del mecanisme CTC proporcionen una inspiració important per al desenvolupament posterior de la tecnologia OCR. **Contribucions clau**: - Aprenentatge d'extrem a extrem: Simplifica el disseny dels sistemes OCR - Modelatge de seqüències: Utilitza de manera efectiva les propietats de seqüència del text - Alineació CTC: Desajust de longitud de seqüència adreçat - Arquitectura simple: Fàcil d'entendre i implementar **Direcció de desenvolupament**: - Mecanisme d'Atenció: Introduir l'atenció per millorar el rendiment - Transformer: Substitueix les RNN per autoatenció - Fusió multimodal: Combinar altra informació com models de llenguatge - Disseny lleuger: compressió de models per a dispositius mòbils L'èxit del CRNN és un testimoni del gran potencial de l'aprenentatge profund en el camp de l'OCR i proporciona una experiència valuosa per entendre com dissenyar sistemes d'aprenentatge efectius de punta a punta. En el proper article, aprofundirem en les matemàtiques i els detalls d'implementació de la funció de pèrdua CTC.
Servei d'atenció al client en línia de QQ assistent OCR
Servei d'atenció al client QQ(365833440)
Grup de comunicació d'usuaris d'assistent OCR QQ
QQGrup(100029010)
Assistent OCR contacta amb el servei d'atenció al client per correu electrònic
Bústia:net10010@qq.com

Gràcies pels vostres comentaris i suggeriments!