iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0
自我挑戰組

資料分析及AI深度學習-簡單基礎實作系列 第 13

DAY13:玉山人工智慧挑戰賽-中文手寫字辨識(資料前處理)

  • 分享至 

  • xImage
  •  

問題及解決方法

  • 資料集問題:

    • 圖檔沒有文字卻有標籤。
    • 一張圖片多個文字。
    • 標籤錯誤。
    • 圖檔的字不明確。
  • 解決方法:

    • 我們先用抽樣的小量樣本(這裡我們討論後只採取3000張圖片樣本),後採用於物件偵測的YOLOv4幫我們自動框出中文字。
    • 標籤錯誤則手動標籤更正。
    • 圖檔文字不明確直接刪除。

實作內容

  • LabelImg
    • 有兩種方法可以執行,可用python或下載exe執行,這邊我直接去官網下載exe來執行。

      • 載完打開exe後,需要設定訓練集的路徑以及標記後的XML檔儲存路徑。
          

      • 再來要設定自動儲存,勾選auto save。

      • 之後就來框選中文字,將他標記為word。

      • 框完在你儲存XML的資料夾內會產生XML檔。

      • XML檔不要有中文出現。

  • Colab及模型成效
    • 接下來就是上去Colab上訓練我們的YOLOv4模型,Colab的訓練主要由我們組員執行,他也有參加鐵人賽也寫得非常詳細,可以去參考我的隊友midnight_tiredYOLOv4及Colab訓練的文章,這裡就不多加闡述。大家也多多支持我的隊友,期待他每天的文章吧!

圖檔分類

  • 用建好的YOLOv4模型來分類我們的資料集,主要會分為3類資料夾:

    • 一個字(一個框)

    • 兩個字以上(多個框)

      • 這是完美切割成兩個字的樣本。

      • 其中也有切割不成功的樣本。

    • 空白,沒文字

  • 主辦單位說,正式比賽只會有一個清楚的字出現,故我們討論出,只針對一個字的資料夾去做處理及訓練,兩個字及沒有文字的資料夾則暫不處理。

  • 在對一個字的資料夾做處理的時候發現其中有些問題:

    • 標籤錯誤

       解決:採取人工重新標籤

    • 字體被切一半

        解決:例如"洋"的圖片是羊,也是採取人工標籤為"羊"

    • 字不在官方要的800字內

        解決:利用python程式將標籤在非800字內的移入800字外的資料夾


今日小結

  • 詳細程式碼可以參閱,我隊友的文章(傳送門)
  • 明天要來處理圖片的紅色線條問題,例如下圖,

    以及將圖片做灰階,我們認為文字不分顏色,故灰階對於文字的圖像辨識訓練會有較好的效果。
  • 因為我們是隊友,所以資料前處理部分會有很多重疊之處,做的方法甚至code都幾乎一模一樣,敬請見諒。

上一篇
DAY12:玉山人工智慧挑戰賽-中文手寫字辨識(前言)
下一篇
DAY14:玉山人工智慧挑戰賽-中文手寫字辨識(OpenCV圖像處理)
系列文
資料分析及AI深度學習-簡單基礎實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言