【CV】吴恩达机器学习课程笔记第18章
本系列文章如果沒有特殊說明,正文內容均解釋的是文字上方的圖片
機器學習 | Coursera
吳恩達機器學習系列課程_bilibili
目錄
- 18 應用案例:照片OCR
- 18-1 問題描述與流程(pipeline)
- 18-2 滑動窗口(sliding windows)分類器
- 18-3 獲取大量數據和人工數據合成
- 18-4 上限分析:下一步要做流水線中的哪一個
18 應用案例:照片OCR
18-1 問題描述與流程(pipeline)
1.找到一張圖片
2.首先識別出文字區域
3.然后分割出單獨文字
4.最后運用分類器識別出文字
以上稱為機器學習流水線,每一步都是一個機器學習模塊
18-2 滑動窗口(sliding windows)分類器
在文字區域檢測模塊中,要識別文字區域比較困難,因為文字區域的長寬比是不定的
而在行人檢測中,人的矩形的長寬比通常是相似的,先從行人檢測說起
假定用一個82×36的矩形來框定目標,則有一些正樣本(y=1)和負樣本(y=0),這樣就可以應用監督學習
要在上圖中找到行人,先在左上角框定一個符合比例的矩形,傳遞給檢測器檢測是否是行人,顯然不是,所以向右移動一個距離(稱為步長,一般為4-8像素),這樣不斷遍歷整個圖像,遍歷完后,再換一個稍大一點的相同比例的矩形再遍歷圖像,這樣不斷循環就能找到圖中的行人
在OCR中,同樣需要拿出一些正樣本和負樣本來訓練
任然通過用矩形遍歷的方式遍歷整個圖像,遍歷完后的輸出結果如上圖左下角所示,白色表示分類器輸出了很高的概率,灰色表示概率相對比較低一些,黑色表示輸出的概率極低,通過圖像膨脹算法變為右下角的圖,然后將比例正常(瘦高的矩形肯定不是文字區域)的矩形框出來就是文字區域
然后到第二個模塊↓↓
- 再次訓練一個分類器,正樣本為有文字分割區域的樣本,負樣本為沒有分割區域,是整個文字的樣本
- 訓練完后再用一個矩形遍歷文字區域的圖像,找出完整的文字
最后訓練一個能夠識別文字的分類器即可一個個識別出文字
18-3 獲取大量數據和人工數據合成
方法1:人造數據:自己從零制作數據集
方法2:擴充數據集
通過對一張圖進行扭曲等操作將這一個樣本變為了16個樣本
在聲音識別中通過增加背景音或噪音等方式人工制造失真來擴充數據集
上圖的上半部分:在圖像中添加一些在實際中可能出現的情況是正確的
上圖的下半部分:在圖像中添加噪聲很可能是沒有意義的
獲取數據的建議:
- 在擴充數據集之前確保學習算法具有低偏差(可以畫出學習曲線來觀察),(可以通過增加特征數量或增加神經網絡中隱藏層數量來獲得低偏差)
- 思考獲得10倍的數據集需要的工作量(有時候收集十倍的數據集非常簡單)
- 人造數據集
- 自己收集數據標簽
- 眾包收集數據集
18-4 上限分析:下一步要做流水線中的哪一個
上限分析:確定下一步把工作中心放在流水線中的哪個模塊是最高效的
假設目前整個系統的運行準確率為72%
先人工的讓Text detection模塊準確率為100%(手動完成這個模塊的工作),然后把模塊工作結果給下一個模塊,這樣得出最后的系統準確率變成了89%,然后再對character segmentation模塊進行相同的操作(即手動完成Text detection模塊和character segmentation模塊的工作),又得到系統準確率變成了90%,最后讓最后一個模塊也變成手動完成的(即手動完成了所有模塊),顯然這樣得到系統準確率變成了100%
這樣我們就得出了優化每個模塊能夠讓系統準確率提高多少,比如優化Text detection模塊可以讓準確率提高89%-72%=17%,優化character segmentation模塊可以讓準確率提高90%-89%=1%
總結
以上是生活随笔為你收集整理的【CV】吴恩达机器学习课程笔记第18章的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人生若如初见下一句是什么呢?
- 下一篇: 【CV】吴恩达机器学习课程笔记 | 第1