Msaidizi wa utambuzi wa maandishi ya OCR

【Mfululizo wa OCR wa Kujifunza kwa Kina·6】Uchambuzi wa kina wa usanifu wa CRNN

Uchambuzi wa kina wa usanifu wa CRNN, pamoja na uchimbaji wa huduma ya CNN, uundaji wa mlolongo wa RNN, na utekelezaji kamili wa kazi ya upotezaji wa CTC. Ingia kwenye mchanganyiko kamili wa CNN na RNN.

## Utangulizi CRNN (Convolutional Recurrent Neural Network) ni mojawapo ya usanifu muhimu zaidi katika uwanja wa kujifunza kwa kina OCR, iliyopendekezwa na Bai Xiang et al. mwaka wa 2015. CRNN inachanganya kwa ustadi uwezo wa uchimbaji wa vipengele vya mitandao ya neva ya convolutional (CNNs) na uwezo wa uundaji wa mlolongo wa mitandao ya neva ya mara kwa mara (RNNs) ili kufikia utambuzi wa maandishi kutoka mwisho hadi mwisho. Makala haya yatatoa uchanganuzi wa kina wa muundo wa usanifu wa CRNN, kanuni za kufanya kazi, mbinu za mafunzo, na matumizi mahususi katika OCR, kuwapa wasomaji ufahamu wa kina wa kiufundi. ## Muhtasari wa Usanifu wa CRNN ### Motisha ya kubuni Kabla ya CRNN, mifumo ya OCR kwa kawaida ilichukua mbinu ya hatua kwa hatua: utambuzi wa wahusika na ugawaji ulifanywa kwanza, na kisha kila mhusika alitambuliwa. Njia hii ina shida zifuatazo: **Mapungufu ya Mbinu za Jadi**: - Uenezi wa makosa: Hitilafu katika sehemu za herufi zinaweza kuathiri moja kwa moja matokeo ya utambuzi - Ugumu: Inahitaji kubuni algoriti changamano za ugawaji wa wahusika - Uimara duni: Nyeti kwa nafasi ya herufi na mabadiliko ya fonti - Kutokuwa na uwezo wa kushughulikia viboko vinavyoendelea: Jambo la viboko vinavyoendelea katika maandishi yaliyoandikwa kwa mkono ni vigumu kutenganisha **Mawazo ya Ubunifu ya CRNN**: - Kujifunza kutoka mwisho hadi mwisho: Kuchora ramani moja kwa moja kutoka kwa picha hadi mfuatano wa maandishi - Hakuna Sehemu: Huepuka ugumu wa mgawanyiko wa wahusika - Uundaji wa Mlolongo: Tumia RNN kuiga utegemezi kati ya wahusika - Mpangilio wa CTC: Hushughulikia kutolingana kwa urefu wa mlolongo wa pembejeo-pato ### Usanifu wa jumla Usanifu wa CRNN una vipengele vitatu kuu: **1. Tabaka za Convolutional **: - Kazi: Toa mfuatano wa vipengele kutoka kwa picha za pembejeo - Ingizaji: Picha ya mstari wa maandishi (urefu usiobadilika, upana unaobadilika) - Pato: Mlolongo wa ramani ya kipengele **2. Tabaka za Mara kwa Mara **: - Kazi: Mfano wa utegemezi wa muktadha katika mfuatano wa vipengele - Pembejeo: Mlolongo wa kipengele uliotolewa na CNN - Pato: Mlolongo wa kipengele na maelezo ya muktadha **3. Tabaka la Unukuzi **: - Kazi: Badilisha mfuatano wa vipengele kuwa mfuatano wa maandishi - Njia: Kutumia CTC (Uainishaji wa Muda wa Uunganisho) - Pato: Matokeo ya mwisho ya utambuzi wa maandishi ## Maelezo ya kina ya tabaka za convolutional ### Mikakati ya Uchimbaji wa Kipengele Safu ya convolutional ya CRNN imeundwa mahsusi kwa utambuzi wa maandishi: **Vipengele vya Muundo wa Mtandao**: - Kina cha kina: Tabaka 7 za tabaka za convolutional kawaida hutumiwa - Punje ndogo za convolutional: Punje 3×3 za convolutional hutumiwa hasa - Mkakati wa Kukusanya: Tumia mkusanyiko kwa uangalifu katika mwelekeo wa upana **Usanidi maalum wa mtandao**: Ingizaji: 32×W×1 (urefu 32, upana W, chaneli moja) Conv1: 64 3×3 viini vya convolutional, hatua ya 1, jaza 1 MaxPool1: mabwawa 2×2, urefu wa hatua 2 Conv2: 128 3×3 punje za convolutional, hatua ya 1, jaza 1 MaxPool2: 2×2 iliyounganishwa, ukubwa wa hatua 2 Conv3: 256 3×3 viini vya convolutional, hatua ya 1, jaza 1 Conv4: 256 3×3 cores za convolutional, hatua ya 1, jaza 1 MaxPool3: 2×1 iliyounganishwa, saizi ya hatua (2,1) Conv5: 512 3×3 cores za convolutional, hatua ya 1, jaza 1 Kundi + ReLU Conv6: 512 3×3 kernels convolutional, hatua ya 1, jaza 1 Kundi + ReLU MaxPool4: 2×1 iliyounganishwa, ukubwa wa hatua (2,1) Conv7: 512 2×2 viini vya convolutional, hatua ya 1, jaza 0 Pato: 512×1×W / 4 ### Mazingatio muhimu ya Ubunifu **Mkakati wa Ukandamizaji wa Juu**: - Lengo: Kandamiza picha hadi pikseli 1 juu - Njia: Hatua kwa hatua kandamiza urefu kwa kutumia tabaka nyingi za kukusanya - Sababu: Urefu wa mstari wa maandishi sio muhimu **Mkakati wa Kushikilia Upana**: - Lengo: Dumisha habari ya upana wa picha iwezekanavyo - Njia: Punguza shughuli za kukusanya katika mwelekeo wa upana - Sababu: Maelezo ya mlolongo wa maandishi yanaonyeshwa hasa katika mwelekeo wa upana **Ubadilishaji wa Ramani ya Kipengele**: Pato la safu ya convolutional linahitaji kubadilishwa kuwa muundo wa pembejeo wa RNN: - Pato ghafi: C×H×W (urefu wa × chaneli× upana) - Imebadilishwa: W×C (Urefu wa Mlolongo× Kipimo cha Kipengele) - Njia: Chukua vekta ya kipengele kwa kila nafasi ya upana kama hatua ya wakati ## Maelezo ya kina ya safu ya mviringo ### Uteuzi wa RNN CRNN kwa kawaida hutumia LSTM za pande mbili kama safu ya kitanzi: **Faida za LSTM ya Bidirectional**: - Maelezo ya Muktadha: Tumia muktadha wa mbele na nyuma - Utegemezi wa Umbali Mrefu: LSTM ina uwezo wa kushughulikia utegemezi wa masafa marefu - Uimarishaji wa Gradient: Huepuka tatizo la kutoweka kwa gradient **Usanidi wa Mtandao**: Pembejeo: W×512 (urefu wa mlolongo × mwelekeo wa kipengele) BiLSTM1: seli 256 zilizofichwa (128 mbele + 128 nyuma) BiLSTM2: seli 256 zilizofichwa (128 mbele + 128 nyuma) Pato: W×256 (urefu wa mlolongo× vipimo vilivyofichwa) ### Mifumo ya Uundaji wa Mlolongo **Uundaji wa Utegemezi wa Muda**: Safu ya RNN inanasa utegemezi wa muda kati ya wahusika: - Habari ya mhusika uliopita husaidia katika utambuzi wa mhusika wa sasa - Habari kwa wahusika wanaofuata pia inaweza kutoa muktadha muhimu - Habari ya neno zima au kifungu husaidia kutofautisha **Uboreshaji wa Vipengele**: Vipengele vilivyochakatwa na RNN vina sifa zifuatazo: - Nyeti kwa muktadha: Vipengele vya kila eneo vina maelezo ya muktadha - Uthabiti wa muda: Vipengele katika maeneo ya karibu vina mwendelezo fulani - Utajiri wa semantic: Inachanganya vipengele vya kuona na mfuatano ## Maelezo ya kina ya safu ya unukuzi ### Utaratibu wa CTC CTC (Uainishaji wa Muda wa Uunganisho) ni sehemu muhimu ya CRNN: **Jukumu la CTCs**: - Kushughulikia Masuala ya Upatanishi: Urefu wa mfuatano wa pembejeo haulingani na urefu wa mfuatano wa pato - Mafunzo ya mwisho hadi mwisho: Hakuna haja ya ufafanuzi wa upatanishi wa kiwango cha wahusika - Kushughulikia nakala: Shughulikia kesi za herufi rudufu kwa usahihi **Jinsi CTC inavyofanya kazi**: 1. Panua seti ya lebo: Ongeza lebo tupu juu ya seti ya herufi asili 2. Hesabu ya Njia: Inaorodhesha njia zote zinazowezekana za upatanishi 3. Uwezekano wa njia: Kuhesabu uwezekano wa kila njia 4. Kutengwa: jumla ya uwezekano wa njia zote ili kupata uwezekano wa mlolongo ### Kazi ya upotezaji wa CTC **Uwakilishi wa Hisabati**: Kwa kuzingatia mlolongo wa pembejeo X na mlolongo unaolengwa Y, upotezaji wa CTC unafafanuliwa kama: L_CTC = -logi P(Y| X) ambapo P(Y| X) hupatikana kwa kujumlisha uwezekano wa njia zote zinazowezekana zilizopangwa: P(Y| X) = Σ_π∈B^(-1)(Y) P(π| X) Hapa B^(-1)(Y) inawakilisha seti zote za njia ambazo zinaweza kuchorwa kwa mlolongo unaolengwa Y. **Algorithm ya Mbele-Nyuma**: Ili kuhesabu upotezaji wa CTC kwa ufanisi, algorithm ya mbele-nyuma kwa programu inayobadilika hutumiwa: - Algorithm ya Mbele: Huhesabu uwezekano wa kufikia kila hali - Algorithm ya Nyuma: Huhesabu uwezekano kutoka kwa kila jimbo hadi mwisho - Hesabu ya Gradient: Kuhesabu gradients kwa kushirikiana na uwezekano wa mbele-nyuma ## Mkakati wa Mafunzo ya CRNN ### Usindikaji wa data **Usindikaji wa Picha **: - Urekebishaji wa ukubwa: Unganisha urefu wa picha hadi saizi 32 - Matengenezo ya Uwiano wa Mapengele: Hudumisha uwiano wa picha asili - Ubadilishaji wa kijivu: Badilisha kuwa picha ya kijivu ya kituo kimoja - Urekebishaji wa nambari: maadili ya pikseli hurekebishwa hadi [0,1] au [-1,1] **Uboreshaji wa Data**: - Mabadiliko ya kijiometri: mzunguko, tilt, mabadiliko ya mtazamo - Mabadiliko ya taa: mwangaza, marekebisho ya utofautishaji - Kuongeza kelele: Kelele ya Gaussian, kelele ya chumvi na pilipili - Ukungu: Ukungu wa mwendo, ukungu wa Gaussian ### Mbinu za Mafunzo **Ratiba ya Kiwango cha Kujifunza**: - Kiwango cha Awali cha Kujifunza: Kwa kawaida huwekwa kuwa 0.001 - Mkakati wa Kuoza: Kuoza kwa kielelezo au kuoza kwa hatua - Mkakati wa joto:Nyakati chache za kwanza hutumia kiwango kidogo cha kujifunza **Mbinu za kuhalalisha**: - Kuacha shule: Ongeza kuacha shule baada ya safu ya RNN - Uharibifu wa uzito: Urekebishaji wa L2 huzuia kufaa kupita kiasi - Urekebishaji wa kundi: Tumia urekebishaji wa kundi kwenye safu ya CNN **Uteuzi wa Kiboreshaji**: - Adam: Kiwango cha kujifunza kinachobadilika, muunganiko wa haraka - RMSprop: Inafaa kwa mafunzo ya RNN - SGD+Momentum: Chaguo la kitamaduni lakini thabiti ## Uboreshaji na uboreshaji wa CRNN ### Uboreshaji wa usanifu **Maboresho ya Sehemu ya CNN**: - Miunganisho ya ResNet: Miunganisho iliyoongezwa ili kuboresha uthabiti wa mafunzo - Kitambaa cha DenseNet: Miunganisho mnene huboresha kuzidisha vipengele - Utaratibu wa Makini: Inatanguliza umakini wa anga katika CNNs **Maboresho ya Sehemu ya RNN**: - Uingizwaji wa GRU: Tumia GRU kupunguza kiasi cha vigezo - Transfoma: Inachukua nafasi ya RNN kwa kutumia mifumo ya kujitahadhari - Vipengele vya Mizani mingi: Jumuisha vipengele kutoka kwa mizani tofauti ### Uboreshaji wa Utendaji **Kuongeza kasi ya makisio **: - Upimaji wa Mfano: Upimaji wa INT8 hupunguza juhudi za kukokotoa - Kupogoa mfano: Ondoa miunganisho isiyo muhimu - Kunereka kwa Maarifa: Jifunze ujuzi wa mifano mikubwa na mifano ndogo **Uboreshaji wa Kumbukumbu**: - Vituo vya ukaguzi vya gradient: Punguza alama ya kumbukumbu wakati wa mafunzo - Usahihi Mchanganyiko: Treni na FP16 - Uboreshaji wa grafu inayobadilika: Boresha muundo wa grafu iliyohesabiwa ## Kesi za Maombi ya Ulimwengu Halisi ### Utambuzi wa maandishi yaliyoandikwa kwa mkono **Matukio ya Maombi**: - Weka maelezo yaliyoandikwa kwa mkono kwenye dijiti - Jaza fomu kiotomatiki - Utambuzi wa hati ya kihistoria **Vipengele vya Kiufundi**: - Tofauti kubwa ya wahusika: Inahitaji uwezo mkubwa wa uchimbaji wa vipengele - Usindikaji wa Kiharusi unaoendelea: Faida za utaratibu wa CTC ni dhahiri - Mambo ya Muktadha: Uwezo wa uundaji wa mfuatano wa RNN ni muhimu ### Utambuzi wa maandishi yaliyochapishwa **Matukio ya Maombi**: - Weka hati kwenye dijiti - Kitambulisho cha tikiti - Utambuzi wa ishara **Vipengele vya Kiufundi**: - Kawaida ya fonti: Uchimbaji wa kipengele cha CNN ni moja kwa moja - Sheria za uchapaji: Maelezo ya mpangilio yanaweza kutumika - Mahitaji ya Usahihi wa Juu: Inahitaji urekebishaji mzuri wa mfano ### Utambuzi wa maandishi ya eneo **Matukio ya Maombi**: - Utambuzi wa Maandishi ya Mwonekano wa Mtaa - Utambulisho wa lebo ya bidhaa - Utambuzi wa ishara za trafiki **Vipengele vya Kiufundi**: - Mandharinyuma changamano: Inahitaji uchimbaji thabiti wa kipengele - Deformation kali: Ubunifu thabiti wa usanifu unahitajika - Mahitaji ya Wakati Halisi: Inahitaji hoja bora ## Muhtasari Kama usanifu wa kawaida wa OCR ya kujifunza kwa kina, CRNN inafanikiwa kutatua shida nyingi za njia za jadi za OCR. Njia yake ya mafunzo ya mwisho hadi mwisho, dhana ya muundo bila mgawanyiko wa wahusika, na kuanzishwa kwa utaratibu wa CTC zote hutoa msukumo muhimu kwa maendeleo ya baadaye ya teknolojia ya OCR. **Michango muhimu**: - Kujifunza Mwisho hadi Mwisho: Hurahisisha muundo wa mifumo ya OCR - Uundaji wa Mlolongo: Hutumia kwa ufanisi sifa za mfuatano wa maandishi - Mpangilio wa CTC: Kutolingana kwa urefu wa mlolongo kushughulikiwa - Usanifu Rahisi: Rahisi kuelewa na kutekeleza **Mwelekeo wa maendeleo**: - Utaratibu wa Makini: Kuanzisha umakini ili kuboresha utendaji - Transfoma: Inachukua nafasi ya RNN kwa kujiangalia - Mchanganyiko wa multimodal: Changanya habari zingine kama mifano ya lugha - Ubunifu mwepesi: ukandamizaji wa mfano kwa vifaa vya rununu Mafanikio ya CRNN ni ushuhuda wa uwezo mkubwa wa kujifunza kwa kina katika uwanja wa OCR na hutoa uzoefu muhimu wa kuelewa jinsi ya kubuni mifumo bora ya kujifunza kutoka mwanzo hadi mwisho. Katika makala inayofuata, tutachunguza maelezo ya hisabati na utekelezaji wa kazi ya upotezaji wa CTC.
Msaidizi wa OCR QQ huduma kwa wateja mkondoni
Huduma kwa wateja wa QQ(365833440)
Kikundi cha mawasiliano cha mtumiaji wa QQ msaidizi wa OCR
QQkikundi(100029010)
Msaidizi wa OCR wasiliana na huduma kwa wateja kwa barua pepe
Sanduku la barua:net10010@qq.com

Asante kwa maoni na mapendekezo yako!