迎大家關注騰訊云技術社區(qū)-博客園官方主頁,我們將持續(xù)在博客園為大家推薦技術精品文章哦~

作者:劉瀟龍

前言

首先需要說明,這里所說的數字識別不是手寫數字識別!

但凡對機器學習有所了解的人,相信看到數字識別的第一反應就是MNIST。MNIST是可以進行數字識別,但是那是手寫數字。我們現在要做的是要識別從九宮格圖片中提取出來的印刷體的數字。手寫數字集訓練出來的模型用來識別印刷體數字,顯然不太專業(yè)。而且手寫體跟印刷體相差不小,我們最看重的正確率問題不能保證。

本文從零開始做一遍數字識別,展示了數字識別的完整流程。從收集數據開始,到數據預處理,再到訓練KNN,最后進行數字識別。

我們一步一步來說。

數據收集

為了便于處理,我百度找到了10張下面這樣按照1-9-0順序排列的圖片,作為我們的初始數據集。

有的圖片可能本來除數字區(qū)域外,周圍空白部分比較多。為了便于處理,首先用windows自帶的畫圖軟件把圖片裁剪成上面這樣只包含數字區(qū)域的樣子。

這十張數據集基本涵蓋了印刷數字體的不同樣式、字體,而且顏色、背景甚至漸變方式都各不相同。

數據處理

顯然,我們第一步要做的就是上一節(jié)的內容,那就是把圖片中的數字分別提取出來。

訓練knn,還有其他任何有監(jiān)督的機器學習模型,不光要有樣本數據,還要有知道每一個樣本對應的標簽。這也是為什么我要選擇上面這樣按順序排列的數字圖片。

提取數字之后,我們可以對每一個數字的位置進行排序,然后根據位置信息可以知道每一個數字是幾。標簽也就由此生成了。

這一部分的內容可以分兩部分來說,第一部分就是提取數字,第二部分是提取數字之后的數據預處理。

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網站設計培訓,網站建設培訓學習是年輕人改變自己的最好方式