Multi-digits Recognition Using ConVNet on Mobile categories:
2016-03-06 15:46
309 查看
这是Stanford,Mobile Computer Vision课程的一个final report
Segment:提取到digits的patch,将图像还原成28 * 28的大小,以满足CNN的输入尺寸要求。
Batching CNN:意思就是:CNN在test的时候,在CPU上,本来是输入一张图片,所以在FC层执行的是vector-matrix 乘法,那么若是先把多张图片经过卷积层得到各自vector,再将vector组合成matrix,然后在FC层执行matrix-matrix操作。因此,run-time得到提升。提升比例见下图:
总的流程图:
源码
简介
使用DeepBeliefSDK和opencv等工具,使用ConVNet模型做了一个Android APP。功能是能够从一张图中识别0-9几个数字。因为在移动设备上,设备的运算速度和memory都受到了限制,所以作者设计了一个简单的卷积网络(两层卷积两层maxpooling),并且使用了batching来加速识别速度。大致方法就是提取每一个digit的patch,分别输入CNN进行识别。使用的训练集是MNIST。流程
PreProcess: 将图片转换成灰度图,使用Canny进行边缘检测去定位图片中digits的位置,得到bounding boxes。接下来要将图片转换成二值图,首先将bounding boxes外的区域设置为黑色,然后在bounding boxes中,使用下面图中的方程求出threshold,绘出bounding boxes内部的二值图(注意pixels只取bounding boxes内的)。注意,这个app只适用于背景比较干净的场合(比如一张白纸上写几个数字)。Segment:提取到digits的patch,将图像还原成28 * 28的大小,以满足CNN的输入尺寸要求。
Batching CNN:意思就是:CNN在test的时候,在CPU上,本来是输入一张图片,所以在FC层执行的是vector-matrix 乘法,那么若是先把多张图片经过卷积层得到各自vector,再将vector组合成matrix,然后在FC层执行matrix-matrix操作。因此,run-time得到提升。提升比例见下图:
总的流程图:
源码及文章
文章: 访问密码 ab86源码
相关文章推荐
- python中使用OpenCV进行人脸检测的例子
- opencv 做人脸识别 opencv 人脸匹配分析
- 使用opencv拉伸图像扩大分辨率示例
- 基于C++实现kinect+opencv 获取深度及彩色数据
- OpenCV 2.4.3 C++ 平滑处理分析
- Python中使用OpenCV库来进行简单的气象学遥感影像计算
- 利用Python和OpenCV库将URL转换为OpenCV格式的方法
- python结合opencv实现人脸检测与跟踪
- Python环境搭建之OpenCV的步骤方法
- Python实现OpenCV的安装与使用示例
- 在树莓派2或树莓派B+上安装Python和OpenCV的教程
- opencv-python学习一--人脸检测
- CUDA搭建
- 稀疏自动编码器 (Sparse Autoencoder)
- 白化(Whitening):PCA vs. ZCA
- softmax回归
- 卷积神经网络初探
- 在Ubuntu上安装OpenCV3.0和Python-openCV的经历
- OpenCV配置,从来没有这么简单!
- ubuntu下opencv和qt的安装配置