用Python實現人臉檢測-2(數據預處理)

其實,這模塊的PCA部分其實可以不要的,只要對圖像如果預處理得當的話。

但還決定實現一個PCA,因為既然學到了,還是嘗試實現一個,裏面用到numpy模塊進行線性運算。

一般用以檢測的圖片,咱都決定先按比例變換到一個小圖(這裡固定為320的寬度,寬度自適應),當然同時還將像素數據轉換成8位灰度(相比較RGB,數據量少了2/3),然後再對這張小圖進行滑動窗口操作,一旦得到人臉的坐標數據,再按照比例恢復到原圖的坐標位置。這樣應該可以提升一定的效率。

至於使用PCA與否,關鍵還是看你自己的考慮吧,可能并不需要這個,也能得到很好的效率,因為即使20*20的方格裏,也有400個像素特徵,這或許還並不能算多。不過咱還是實現了,在400維降到2維,居然能擁有100%的方差保留。 Continue reading “用Python實現人臉檢測-2(數據預處理)” >

用Python實現人臉檢測-1(滑動窗口)

那就接著剛剛折騰的課程,來實現個小項目(face detection)吧。

代碼神馬的都放到github上了,應該會接著不斷優化,因為個人覺得這個東西,性能堪憂,只能作為實驗性質,基本沒有實用意義。

大家需要注意下,face detection跟face recognition的區別。

具體實現的思想,大部份可以參考上一篇博文噢。

但是還是扯一下吧,咱是這麼想的,用滑動窗口技術劃出一個個圖塊,然後用BP-ANN分類器進行人臉檢測。

當然說起來是挺簡單的,但是這其中還要涉及獲取訓練樣本(咱只能人工折騰這個了。。),各種預處理,然後還需要對BP-ANN分類器進行訓練,調整神馬的。

因為自己是個新手,所以代碼寫得不好看,也不優雅。但是’make it works,keep it simple’,咱還是基本做到了,雖然聽起來很像是借口的樣子。 Continue reading “用Python實現人臉檢測-1(滑動窗口)” >

机器学习笔记-16(应用范例:照片OCR)

这里是第十八部分,应用范例:照片OCR。

OCR是啥? 全称为Optical character recognition(光学字符识别),也就是一项从图像的光学信息进行字符识别的技术。

那么,就直接进行问题描述吧。咱们现在的问题是如果从一个照片中提取出含字符的区域,并进行识别。

The Photo OCR problem

照片OCR问题

为了解决这个问题,咱构建了一个流水线结构。把整个处理过程依次分为了 文本检测->字符切分->字符分类 三个部分。每一模块的输出作为下一个模块的输入,也就形成了流水线一般的处理结构。下图给出了每一模块的具体处理任务。 Continue reading “机器学习笔记-16(应用范例:照片OCR)” >

机器学习笔记-15(大规模机器学习)

这部分主要是讲超大规模数据下的机器学习优化方法。之前就说过了一个结论”大数据下,各算法差异不明显。”

Machine learning and data

大数据集下的机器学习情况

关于评估机器学习的效果,也就是之前的学习曲线,在这就不多说了,直接说这部分的内容了,这部分东西总的来说不多,也很容易理解。

Learning with large datasets

大规模数据下的学习曲线

课程一共介绍了四个关于大规模机器学习的优化方法,首先来讲第一个Stochastic gradient descent(随机梯度下降法)。 Continue reading “机器学习笔记-15(大规模机器学习)” >