通过SRCNN对图片进行超分辨率重建

好久之前看到一篇关于深度学习的相关应用,里面提到了对图片进行超分辨率重建(Super Resolution),很感兴趣,因为手上好多低分辨率的图片,想upgrade.

论文点这里

看了论文,然后网上也刚好有个专门针对动漫图片进行超分辨率重建的项目waifu2x,也把代码看了一下

训练数据可以通过高分辨率图片下采样到低分辨率,然后插值重建,二者即可构成高低分辨率数据对。为了提高训练速度,可以通过在高分辨率数据对集中随机截取一小块进行训练,降低训练数据规模。

论文里面只用了三层的卷积层,而waifu2x使用了七层。

整个网络结构相对简单,区别于其他超分辨率重建的方法,如字典映射和稀疏编码方法。 继续阅读“通过SRCNN对图片进行超分辨率重建”

Hello Swift!

蘋果剛發佈了swift,相比較於objc,咱是覺得輕鬆點了。之前就是覺得語法有點複雜,所以沒折騰objc。

咱晚把玩了下swift,還是挺好玩的,特別是playground的即時顯示功能,玩起來真有種腳本語言的錯覺。

亂七八糟的看了一下語法之後,第一次開始開始稍微認真點接觸xcode。xcode 6 beta是咱另外找來下載的,木有興趣折騰apple dev program,反正就是把玩下,期待7.1越獄,這樣應該就可以部署真機。有點不穩定,經常莫名崩潰。該不會是咱的mbp太渣了把。。。。

既然稍微會用丁點swift了,那麼寫個ios的”Hello world”就是必須的了。現在的手機應用開發一般都是遵循源自web的MVC開發模式,然後根據之前把玩Android和Windows Phone的那一點基礎,感覺折騰ios應該也不是太大問題。 继续阅读“Hello Swift!”

用Python實現人臉檢測-3(BP-ANN Classification)

嗯,此次小項目的最後一個模塊,也是最為核心的模塊,後向反饋人工神經網絡,咱簡稱BP-ANN。

本模塊通過一點的樣本訓練之後,就是用來進行分類了。

這也是咱做的最為醜陋的一個模塊了,整個代碼寫下來,可讀性不是一般的差。。。。有時候,自己都不知道在寫得什麼玩意兒,真是給跪了,因為沒有使用向量化實現,完全使用迭代的方法,效率簡直。。。。反正就是寫得很醜陋,而且由於某個設計的缺陷,導致 隱層和輸出層的神經元數目不能大於輸入量。。。。orz 很多时候跑起來還會經常拋出“超出數域”的錯誤。。。。不知道是個什麼情況,不過還真覺得python在處理實數上,略為糾結,咱用了無數多個round函數來降低運算精度。 继续阅读“用Python實現人臉檢測-3(BP-ANN Classification)”

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

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

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

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

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