一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

實(shí)現(xiàn)圖像到文字的轉(zhuǎn)換過(guò)程

lviY_AI_shequ ? 來(lái)源:未知 ? 作者:李倩 ? 2018-04-04 08:51 ? 次閱讀

賽題以識(shí)別類似手寫(xiě)體的四則運(yùn)算式為主題,參賽者需要在充滿干擾信息的10萬(wàn)張圖片中,設(shè)計(jì)算法識(shí)別圖片上數(shù)學(xué)運(yùn)算式并計(jì)算結(jié)果。決賽在初賽的基礎(chǔ)上,引入分?jǐn)?shù)和更加復(fù)雜的運(yùn)算,同樣以最終的識(shí)別率來(lái)評(píng)判算法。

本節(jié)會(huì)詳細(xì)介紹我在進(jìn)行四則混合運(yùn)算識(shí)別競(jìng)賽初賽時(shí)的所有思路。

問(wèn)題描述

本次競(jìng)賽目的是為了解決一個(gè) OCR 問(wèn)題,通俗地講就是實(shí)現(xiàn)圖像到文字的轉(zhuǎn)換過(guò)程。

數(shù)據(jù)集

初賽數(shù)據(jù)集一共包含10萬(wàn)張180*60的圖片和一個(gè)labels.txt的文本文件。每張圖片包含一個(gè)數(shù)學(xué)運(yùn)算式,運(yùn)算式包含:

3個(gè)運(yùn)算數(shù):3個(gè)0到9的整型數(shù)字; 2個(gè)運(yùn)算符:可以是+、-、*,分別代表加法、減法、乘法 0或1對(duì)括號(hào):括號(hào)可能是0對(duì)或者1對(duì)

圖片的名稱從0.png到99999.png,下面是一些樣例圖片(這里只取了一張):

文本文件 labels.txt 包含10w行文本,每行文本包含每張圖片對(duì)應(yīng)的公式以及公式的計(jì)算結(jié)果,公式和計(jì)算結(jié)果之間空格分開(kāi),例如圖片中的示例圖片對(duì)應(yīng)的文本如下所示:

(3-7)+5 1

5-6+2 1

(6+7)*2 26

(4+2)+7 13

(6*4)*4 96

評(píng)價(jià)指標(biāo)

官方的評(píng)價(jià)指標(biāo)是準(zhǔn)確率,初賽只有整數(shù)的加減乘運(yùn)算,所得的結(jié)果一定是整數(shù),所以要求序列與運(yùn)算結(jié)果都正確才會(huì)判定為正確。

我們本地除了會(huì)使用官方的準(zhǔn)確率作為評(píng)估標(biāo)準(zhǔn)以外,還會(huì)使用 CTC loss 來(lái)評(píng)估模型。

使用 captcha 進(jìn)行數(shù)據(jù)增強(qiáng)

官方提供了10萬(wàn)張圖片,我們可以直接使用官方數(shù)據(jù)進(jìn)行訓(xùn)練,也可以通過(guò)Captcha,參照官方訓(xùn)練集,隨機(jī)生成更多數(shù)據(jù),進(jìn)而提高準(zhǔn)確性。根據(jù)題目要求,label 必定是三個(gè)數(shù)字,兩個(gè)運(yùn)算符,一對(duì)或沒(méi)有括號(hào),根據(jù)括號(hào)規(guī)則,只有可能是沒(méi)括號(hào),左括號(hào)和右括號(hào),因此很容易就可以寫(xiě)出數(shù)據(jù)生成器的代碼。

生成器

生成器的生成規(guī)則很簡(jiǎn)單:

相信大家都能看懂。當(dāng)然,我寫(xiě)文章的時(shí)候又想到一種更好的寫(xiě)法:

除了生成算式以外,還有一個(gè)值得注意的地方就是初賽所有的減號(hào)(也就是“-”)都是細(xì)的,但是我們直接用 captcha 庫(kù)生成圖像會(huì)得到粗的減號(hào),所以我們修改了image.py中的代碼,在_draw_character函數(shù)中我們?cè)黾恿艘痪渑袛啵绻菧p號(hào),我們就不進(jìn)行 resize 操作,這樣就能防止減號(hào)變粗:

我們繼而使用生成器生成四則運(yùn)算驗(yàn)證碼:

上圖就是原版生成器生成的圖,我們可以看到減號(hào)是很粗的。

上圖是修改過(guò)的生成器,可以看到減號(hào)已經(jīng)不粗了。

模型結(jié)構(gòu)

模型結(jié)構(gòu)像之前寫(xiě)的文章一樣,只是把卷積核的個(gè)數(shù)改多了一點(diǎn),加了一些 BN 層,并且在四卡上做了一點(diǎn)小改動(dòng)以支持多GPU訓(xùn)練。如果你是單卡,可以直接去掉base_model2 = make_parallel(base_model, 4)的代碼。

BN 層主要是為了訓(xùn)練加速,實(shí)驗(yàn)結(jié)果非常好,模型收斂快了很多。

base_model 的可視化:

model 的可視化:

模型訓(xùn)練

在經(jīng)過(guò)幾次測(cè)試以后,我已經(jīng)拋棄了 evaluate 函數(shù),因?yàn)樵隍?yàn)證集上已經(jīng)能做到 100% 識(shí)別率了,所以只需要看 val_loss 就可以了。在經(jīng)過(guò)之前的幾次嘗試以后,我發(fā)現(xiàn)在有生成器的情況下,訓(xùn)練代數(shù)越多越好,因此直接用 adam 跑了50代,每代10萬(wàn)樣本,可以看到模型在10代以后基本已經(jīng)收斂。

我們可以看到模型先分為四份,在四個(gè)顯卡上并行計(jì)算,然后合并結(jié)果,計(jì)算最后的 ctc loss,進(jìn)而訓(xùn)練模型。

結(jié)果可視化

這里我們對(duì)生成的數(shù)據(jù)進(jìn)行了可視化,可以看到模型基本已經(jīng)做到萬(wàn)無(wú)一失,百發(fā)百中。

打包成 docker 以后提交到比賽系統(tǒng)中,經(jīng)過(guò)十幾分鐘的運(yùn)行,我們得到了完美的1分。

總結(jié)

初賽是非常簡(jiǎn)單的,因此我們才能得到這么準(zhǔn)的分?jǐn)?shù),之后官方進(jìn)一步提升了難度,將初賽測(cè)試集提高到了20萬(wàn)張,在這個(gè)集上我們的模型只能拿到0.999925的成績(jī),可行的改進(jìn)方法是將準(zhǔn)確率進(jìn)一步降低,充分訓(xùn)練模型,將多個(gè)模型結(jié)果融合等。

官方擴(kuò)充測(cè)試集的難點(diǎn)

在擴(kuò)充數(shù)據(jù)集上,我們發(fā)現(xiàn)有一些圖片預(yù)測(cè)出來(lái)無(wú)法計(jì)算,比如[629,2271,6579,17416,71857,77631,95303,102187,117422,142660,183693]等,這里我們?nèi)?117422.png 為例。

我們可以看到肉眼基本無(wú)法認(rèn)出這個(gè)圖,但是經(jīng)過(guò)一定的圖像處理,我們可以顯現(xiàn)出來(lái)它的真實(shí)面貌:

然后我們可以看到這樣的結(jié)果:

當(dāng)然,還有一張圖是無(wú)法通過(guò)預(yù)處理得到結(jié)果的,142660,這有可能是程序的 bug 造成的小概率事件,所以初賽除了我們跑了一個(gè) docker 得到滿分以外,沒(méi)有第二個(gè)人達(dá)到滿分。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1091

    瀏覽量

    40929
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4882

    瀏覽量

    70046
  • 生成器
    +關(guān)注

    關(guān)注

    7

    文章

    322

    瀏覽量

    21574

原文標(biāo)題:百度魅族深度學(xué)習(xí)大賽初賽冠軍作品(圖像識(shí)別.源碼)

文章出處:【微信號(hào):AI_shequ,微信公眾號(hào):人工智能愛(ài)好者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    模數(shù)A/D轉(zhuǎn)換器的基本原理與轉(zhuǎn)換過(guò)程解析

    在一系列選定的瞬間對(duì)模擬信號(hào)進(jìn)行取樣,然后再將這些取樣值轉(zhuǎn)換成輸出的數(shù)字量,并按一定的編碼形式給出轉(zhuǎn)換結(jié)果。整個(gè)A/D轉(zhuǎn)換過(guò)程大致可分為取樣、量化、編碼三個(gè)過(guò)程
    發(fā)表于 08-03 15:22 ?8032次閱讀
    模數(shù)A/D<b class='flag-5'>轉(zhuǎn)換</b>器的基本原理與<b class='flag-5'>轉(zhuǎn)換過(guò)程</b>解析

    A/D轉(zhuǎn)換器的轉(zhuǎn)換過(guò)程及電路分析

    值也離散的數(shù)字信號(hào),因此,A/D轉(zhuǎn)換一般要經(jīng)過(guò)取樣、保持、量化及編碼4個(gè)過(guò)程。在實(shí)際電路中,這些過(guò)程有的是合并進(jìn)行的,例如,取樣和保持,量化和編碼往往都是在轉(zhuǎn)換過(guò)程中同時(shí)
    發(fā)表于 02-28 18:04 ?7498次閱讀
    A/D<b class='flag-5'>轉(zhuǎn)換</b>器的<b class='flag-5'>轉(zhuǎn)換過(guò)程</b>及電路分析

    labview編程模擬十進(jìn)制數(shù)到二進(jìn)制數(shù)的轉(zhuǎn)換過(guò)程

    模擬十進(jìn)制數(shù)到二進(jìn)制數(shù)的轉(zhuǎn)換過(guò)程,以LED來(lái)模擬各個(gè)二進(jìn)制位,并能以動(dòng)畫(huà)方式模擬計(jì)數(shù)的過(guò)程。 選擇手動(dòng)方式時(shí),將8個(gè)LED變成滑動(dòng)條中數(shù)字的二進(jìn)制(基數(shù)2)表示。例如,如果滑動(dòng)條設(shè)置為數(shù)字10(在
    發(fā)表于 12-07 22:20

    當(dāng)將IoT原理應(yīng)用到工廠流程時(shí),在轉(zhuǎn)換過(guò)程中會(huì)丟失什么?

    當(dāng)將IoT原理應(yīng)用到工廠流程時(shí),在轉(zhuǎn)換過(guò)程中會(huì)丟失什么?
    發(fā)表于 06-16 09:01

    AD轉(zhuǎn)換過(guò)程是通過(guò)哪幾個(gè)步驟完成的

    模擬分頻器是什么?AD轉(zhuǎn)換過(guò)程是通過(guò)哪幾個(gè)步驟完成的?壓敏電阻的作用有哪些?
    發(fā)表于 10-18 06:00

    一文淺析ADC的轉(zhuǎn)換過(guò)程

      ADC轉(zhuǎn)換過(guò)程:取樣保持、量化和編碼?! ?) 采樣保持:模擬電子開(kāi)關(guān)S在采樣脈沖CPS的控制下重復(fù)的開(kāi)關(guān)。S接通時(shí),ui(t)對(duì)C充電,為采樣過(guò)程;S斷開(kāi)時(shí),C上的電壓保持不變,為保持過(guò)程
    發(fā)表于 03-16 18:06

    圖像文字的合成

    前幾天要做一段程序,把文字和位圖圖像合成并保存為位圖文件。但問(wèn)了好久都沒(méi)人給一個(gè)滿意的答復(fù),只好在黑暗中摸索,費(fèi)了一番功夫,實(shí)現(xiàn)圖像文字
    發(fā)表于 10-25 15:50 ?3次下載

    電液伺服系統(tǒng)位置與壓力控制轉(zhuǎn)換過(guò)程的加減速算法與仿真

    電液伺服系統(tǒng)位置與壓力控制轉(zhuǎn)換過(guò)程的加減速算法與仿真
    發(fā)表于 05-03 14:23 ?8次下載

    詳解晶體二極管開(kāi)關(guān)轉(zhuǎn)換過(guò)程

    晶體二極管開(kāi)關(guān)電路在數(shù)字系統(tǒng)和自動(dòng)化系統(tǒng)里應(yīng)用很廣泛,在晶體二極管開(kāi)關(guān)特性實(shí)驗(yàn)中,其開(kāi)關(guān)轉(zhuǎn)換過(guò)程中輸出與輸入存在時(shí)間上的延遲或者滯后,研究晶體二極管開(kāi)關(guān)特性主要是研究其開(kāi)關(guān)狀態(tài)轉(zhuǎn)換過(guò)程所需時(shí)間的長(zhǎng)短。
    的頭像 發(fā)表于 01-08 16:04 ?5310次閱讀
    詳解晶體二極管開(kāi)關(guān)<b class='flag-5'>轉(zhuǎn)換過(guò)程</b>

    如何使用FPGA實(shí)現(xiàn)BayerRGB圖像格式轉(zhuǎn)換的設(shè)計(jì)

    利用FPGA處理數(shù)據(jù)量大、處理速度快,結(jié)合CMOS圖像傳感器MT9M001和BayerCFA格式圖像的特點(diǎn),設(shè)計(jì)一種基于FPGA的圖像數(shù)據(jù)轉(zhuǎn)換處理系統(tǒng),提出用硬件
    發(fā)表于 01-25 16:04 ?6次下載
    如何使用FPGA<b class='flag-5'>實(shí)現(xiàn)</b>Bayer<b class='flag-5'>到</b>RGB<b class='flag-5'>圖像</b>格式<b class='flag-5'>轉(zhuǎn)換</b>的設(shè)計(jì)

    Linux虛擬地址物理地址轉(zhuǎn)換過(guò)程

    虛擬地址物理地址轉(zhuǎn)換過(guò)程 虛擬地址和物理地址都被劃分了兩部分: 虛擬地址由虛擬頁(yè)面號(hào)VPN和虛擬地址偏移VA offset兩部分組成。同樣,物理地址由物理頁(yè)幀號(hào)PFN和物理地址偏移PA
    的頭像 發(fā)表于 10-08 11:45 ?2307次閱讀
    Linux虛擬地址<b class='flag-5'>到</b>物理地址<b class='flag-5'>轉(zhuǎn)換過(guò)程</b>

    一文講解ADC模數(shù)轉(zhuǎn)換芯片的原理及轉(zhuǎn)換過(guò)程

    和傳輸時(shí),就需要ADC模擬轉(zhuǎn)換芯片幫助我們實(shí)現(xiàn)這一功能。ADC芯片全稱Analog-to-Digital Converter(模擬數(shù)字轉(zhuǎn)換器),是一個(gè)幫助我們將模擬信號(hào)轉(zhuǎn)換成為數(shù)字信號(hào)
    的頭像 發(fā)表于 10-23 14:57 ?2872次閱讀

    應(yīng)用衛(wèi)星通信領(lǐng)域的一個(gè)坐標(biāo)轉(zhuǎn)換過(guò)程—機(jī)體坐標(biāo)系與ENU坐標(biāo)系的轉(zhuǎn)換

    今天我們要講的是應(yīng)用于衛(wèi)星通信領(lǐng)域的一個(gè)坐標(biāo)轉(zhuǎn)換過(guò)程——機(jī)體坐標(biāo)系與ENU坐標(biāo)系的轉(zhuǎn)換。
    的頭像 發(fā)表于 12-27 09:30 ?5518次閱讀
    應(yīng)用衛(wèi)星通信領(lǐng)域的一個(gè)坐標(biāo)<b class='flag-5'>轉(zhuǎn)換過(guò)程</b>—機(jī)體坐標(biāo)系與ENU坐標(biāo)系的<b class='flag-5'>轉(zhuǎn)換</b>

    SDI轉(zhuǎn)AV轉(zhuǎn)換器技術(shù)解析:轉(zhuǎn)換過(guò)程中的關(guān)鍵要素與優(yōu)勢(shì)

    隨著高清視頻技術(shù)的快速發(fā)展,SDI(Serial Digital Interface)轉(zhuǎn)AV轉(zhuǎn)換器成為了實(shí)現(xiàn)高清信號(hào)與普通家電設(shè)備兼容的關(guān)鍵設(shè)備。這種轉(zhuǎn)換器在技術(shù)上涉及多個(gè)關(guān)鍵要素,
    的頭像 發(fā)表于 02-22 15:03 ?837次閱讀

    一文看懂ADC轉(zhuǎn)換過(guò)程

    1、A /D轉(zhuǎn)換的一般步驟和取樣定理模擬量到數(shù)字量的轉(zhuǎn)換過(guò)程: 取樣:把時(shí)間連續(xù)變化的信號(hào)變換為時(shí)間離散的信號(hào)。 保持:保持取樣信號(hào),使有充分時(shí)間將其變?yōu)閿?shù)字信號(hào)。 取樣定理: 量化和編碼:? 量化
    的頭像 發(fā)表于 01-23 17:43 ?1162次閱讀
    一文看懂ADC<b class='flag-5'>轉(zhuǎn)換過(guò)程</b>