色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

實現圖像到文字的轉換過程

lviY_AI_shequ ? 來源:未知 ? 作者:李倩 ? 2018-04-04 08:51 ? 次閱讀

賽題以識別類似手寫體的四則運算式為主題,參賽者需要在充滿干擾信息的10萬張圖片中,設計算法識別圖片上數學運算式并計算結果。決賽在初賽的基礎上,引入分數和更加復雜的運算,同樣以最終的識別率來評判算法。

本節會詳細介紹我在進行四則混合運算識別競賽初賽時的所有思路。

問題描述

本次競賽目的是為了解決一個 OCR 問題,通俗地講就是實現圖像到文字的轉換過程。

數據集

初賽數據集一共包含10萬張180*60的圖片和一個labels.txt的文本文件。每張圖片包含一個數學運算式,運算式包含:

3個運算數:3個0到9的整型數字; 2個運算符:可以是+、-、*,分別代表加法、減法、乘法 0或1對括號:括號可能是0對或者1對

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

文本文件 labels.txt 包含10w行文本,每行文本包含每張圖片對應的公式以及公式的計算結果,公式和計算結果之間空格分開,例如圖片中的示例圖片對應的文本如下所示:

(3-7)+5 1

5-6+2 1

(6+7)*2 26

(4+2)+7 13

(6*4)*4 96

評價指標

官方的評價指標是準確率,初賽只有整數的加減乘運算,所得的結果一定是整數,所以要求序列與運算結果都正確才會判定為正確。

我們本地除了會使用官方的準確率作為評估標準以外,還會使用 CTC loss 來評估模型。

使用 captcha 進行數據增強

官方提供了10萬張圖片,我們可以直接使用官方數據進行訓練,也可以通過Captcha,參照官方訓練集,隨機生成更多數據,進而提高準確性。根據題目要求,label 必定是三個數字,兩個運算符,一對或沒有括號,根據括號規則,只有可能是沒括號,左括號和右括號,因此很容易就可以寫出數據生成器的代碼。

生成器

生成器的生成規則很簡單:

相信大家都能看懂。當然,我寫文章的時候又想到一種更好的寫法:

除了生成算式以外,還有一個值得注意的地方就是初賽所有的減號(也就是“-”)都是細的,但是我們直接用 captcha 庫生成圖像會得到粗的減號,所以我們修改了image.py中的代碼,在_draw_character函數中我們增加了一句判斷,如果是減號,我們就不進行 resize 操作,這樣就能防止減號變粗:

我們繼而使用生成器生成四則運算驗證碼:

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

上圖是修改過的生成器,可以看到減號已經不粗了。

模型結構

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

BN 層主要是為了訓練加速,實驗結果非常好,模型收斂快了很多。

base_model 的可視化:

model 的可視化:

模型訓練

在經過幾次測試以后,我已經拋棄了 evaluate 函數,因為在驗證集上已經能做到 100% 識別率了,所以只需要看 val_loss 就可以了。在經過之前的幾次嘗試以后,我發現在有生成器的情況下,訓練代數越多越好,因此直接用 adam 跑了50代,每代10萬樣本,可以看到模型在10代以后基本已經收斂。

我們可以看到模型先分為四份,在四個顯卡上并行計算,然后合并結果,計算最后的 ctc loss,進而訓練模型。

結果可視化

這里我們對生成的數據進行了可視化,可以看到模型基本已經做到萬無一失,百發百中。

打包成 docker 以后提交到比賽系統中,經過十幾分鐘的運行,我們得到了完美的1分。

總結

初賽是非常簡單的,因此我們才能得到這么準的分數,之后官方進一步提升了難度,將初賽測試集提高到了20萬張,在這個集上我們的模型只能拿到0.999925的成績,可行的改進方法是將準確率進一步降低,充分訓練模型,將多個模型結果融合等。

官方擴充測試集的難點

在擴充數據集上,我們發現有一些圖片預測出來無法計算,比如[629,2271,6579,17416,71857,77631,95303,102187,117422,142660,183693]等,這里我們取 117422.png 為例。

我們可以看到肉眼基本無法認出這個圖,但是經過一定的圖像處理,我們可以顯現出來它的真實面貌:

然后我們可以看到這樣的結果:

當然,還有一張圖是無法通過預處理得到結果的,142660,這有可能是程序的 bug 造成的小概率事件,所以初賽除了我們跑了一個 docker 得到滿分以外,沒有第二個人達到滿分。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 圖像
    +關注

    關注

    2

    文章

    1089

    瀏覽量

    40528
  • 代碼
    +關注

    關注

    30

    文章

    4818

    瀏覽量

    68874
  • 生成器
    +關注

    關注

    7

    文章

    319

    瀏覽量

    21074

原文標題:百度魅族深度學習大賽初賽冠軍作品(圖像識別.源碼)

文章出處:【微信號:AI_shequ,微信公眾號:人工智能愛好者社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    模數A/D轉換器的基本原理與轉換過程解析

    在一系列選定的瞬間對模擬信號進行取樣,然后再將這些取樣值轉換成輸出的數字量,并按一定的編碼形式給出轉換結果。整個A/D轉換過程大致可分為取樣、量化、編碼三個過程
    發表于 08-03 15:22 ?7323次閱讀
    模數A/D<b class='flag-5'>轉換</b>器的基本原理與<b class='flag-5'>轉換過程</b>解析

    A/D轉換器的轉換過程及電路分析

    值也離散的數字信號,因此,A/D轉換一般要經過取樣、保持、量化及編碼4個過程。在實際電路中,這些過程有的是合并進行的,例如,取樣和保持,量化和編碼往往都是在轉換過程中同時
    發表于 02-28 18:04 ?7133次閱讀
    A/D<b class='flag-5'>轉換</b>器的<b class='flag-5'>轉換過程</b>及電路分析

    labview編程模擬十進制數到二進制數的轉換過程

    模擬十進制數到二進制數的轉換過程,以LED來模擬各個二進制位,并能以動畫方式模擬計數的過程。 選擇手動方式時,將8個LED變成滑動條中數字的二進制(基數2)表示。例如,如果滑動條設置為數字10(在
    發表于 12-07 22:20

    晶體二極管的開關轉換過程

    晶體二極管開關電源轉換過程分析
    發表于 05-21 07:24

    當將IoT原理應用到工廠流程時,在轉換過程中會丟失什么?

    當將IoT原理應用到工廠流程時,在轉換過程中會丟失什么?
    發表于 06-16 09:01

    AD轉換過程是通過哪幾個步驟完成的

    模擬分頻器是什么?AD轉換過程是通過哪幾個步驟完成的?壓敏電阻的作用有哪些?
    發表于 10-18 06:00

    一文淺析ADC的轉換過程

      ADC轉換過程:取樣保持、量化和編碼。  1) 采樣保持:模擬電子開關S在采樣脈沖CPS的控制下重復的開關。S接通時,ui(t)對C充電,為采樣過程;S斷開時,C上的電壓保持不變,為保持過程
    發表于 03-16 18:06

    圖像文字的合成

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

    電液伺服系統位置與壓力控制轉換過程的加減速算法與仿真

    電液伺服系統位置與壓力控制轉換過程的加減速算法與仿真
    發表于 05-03 14:23 ?8次下載

    詳解晶體二極管開關轉換過程

    晶體二極管開關電路在數字系統和自動化系統里應用很廣泛,在晶體二極管開關特性實驗中,其開關轉換過程中輸出與輸入存在時間上的延遲或者滯后,研究晶體二極管開關特性主要是研究其開關狀態轉換過程所需時間的長短。
    的頭像 發表于 01-08 16:04 ?5115次閱讀
    詳解晶體二極管開關<b class='flag-5'>轉換過程</b>

    如何使用FPGA實現BayerRGB圖像格式轉換的設計

    利用FPGA處理數據量大、處理速度快,結合CMOS圖像傳感器MT9M001和BayerCFA格式圖像的特點,設計一種基于FPGA的圖像數據轉換處理系統,提出用硬件
    發表于 01-25 16:04 ?6次下載
    如何使用FPGA<b class='flag-5'>實現</b>Bayer<b class='flag-5'>到</b>RGB<b class='flag-5'>圖像</b>格式<b class='flag-5'>轉換</b>的設計

    Linux虛擬地址物理地址轉換過程

    虛擬地址物理地址轉換過程 虛擬地址和物理地址都被劃分了兩部分: 虛擬地址由虛擬頁面號VPN和虛擬地址偏移VA offset兩部分組成。同樣,物理地址由物理頁幀號PFN和物理地址偏移PA
    的頭像 發表于 10-08 11:45 ?2030次閱讀
    Linux虛擬地址<b class='flag-5'>到</b>物理地址<b class='flag-5'>轉換過程</b>

    一文講解ADC模數轉換芯片的原理及轉換過程

    和傳輸時,就需要ADC模擬轉換芯片幫助我們實現這一功能。ADC芯片全稱Analog-to-Digital Converter(模擬數字轉換器),是一個幫助我們將模擬信號轉換成為數字信號
    的頭像 發表于 10-23 14:57 ?2448次閱讀

    應用衛星通信領域的一個坐標轉換過程—機體坐標系與ENU坐標系的轉換

    今天我們要講的是應用于衛星通信領域的一個坐標轉換過程——機體坐標系與ENU坐標系的轉換
    的頭像 發表于 12-27 09:30 ?4658次閱讀
    應用衛星通信領域的一個坐標<b class='flag-5'>轉換過程</b>—機體坐標系與ENU坐標系的<b class='flag-5'>轉換</b>

    SDI轉AV轉換器技術解析:轉換過程中的關鍵要素與優勢

    隨著高清視頻技術的快速發展,SDI(Serial Digital Interface)轉AV轉換器成為了實現高清信號與普通家電設備兼容的關鍵設備。這種轉換器在技術上涉及多個關鍵要素,
    的頭像 發表于 02-22 15:03 ?695次閱讀
    主站蜘蛛池模板: 最近中文字幕高清中文字幕MV | 狠狠色狠狠色狠狠五月ady| 亚洲偷自拍精品视频在线观看| 欧美z000z猪| 久久性综合亚洲精品电影网| 国产色婷婷亚洲99麻豆| 高h 大尺度纯肉 np快穿| 成 人 网 站毛片| 暗卫受被肉到失禁各种PLAY| 超大号黑吊magnet| 久久黄色精品视频| 美国大臿蕉香蕉大视频| 牛牛在线国产精品| 日韩欧美一区二区中文字幕| 日本浴室日产在线系列| 十七岁日本免费完整版BD| 桃色窝| 臀精插宫NP文| 无遮掩H黄纯肉动漫在线观看星| 午夜福利92看看电影80| tobu中国日本高清| 国产XXXXXX农村野外| 国产亚洲欧美在线中文BT天堂网| 国产色婷婷精品人妻蜜桃成熟 | 成人在线视频在线观看| 国产91综合| 国产永不无码精品AV永久| 日本69xxxx| 亚洲欧美精品一中文字幕| 中国女人逼| 成人伊人青草久久综合网| 美女MM131爽爽爽| 妖精视频一区二区免费| JAVAPARSER丰满白老师| 国产精华av午夜在线观看| 久草大| 清晨紧湿爱运动h高h| 亚洲精品久久久久中文字幕二区| 一个人在线观看视频| 成人国产亚洲欧美成人综合网| 男女AA片免费|