最近闲来无事,打算把之前在其他博客站点写的一些跟tboox项目相关的老文,放到我的个人站点上来
并且整理归纳了下,以前学生时期研究的一些的玩意用到的一些技术,例如(手写识别、分形图像等等什么的。。)
以后就重点吧这个站点,作为我的个人博客主站了。。嘿嘿。
背景
本文,主要介绍我之前在学校时候,研究的一些跟手写数字识别相关的技术心得,主要涉及:数字图像处理、特征提取、神经网络等等相关的一些技术。。
虽然很多用到的还是网上现有的比较成熟的算法,但是在这些基础上,我还是有做了不少算法上的改进的。。
并且为了写这个项目,我当时还特地写了一整套神经网络库,从图像处理开始到最后的识别过程,没有使用任何第三方库,都是从0还是写起
也没
继续阅读 »
简介
所谓的细化就是经过一层层的剥离,从原来的图中去掉一些点,但仍要保持原来的形状,直到得到图像的骨架。
骨架,可以理解为图象的中轴,例如一个长方形的骨架是它的长方向上的中轴线;正方形的骨架是它的中心点;圆的骨架是它的圆心,直线的骨架是它自身,孤立点的骨架也是自身。
细化删除条件
内部点不能删除
孤立点不能删除
直线端点不能删除
如果P是边界点,去掉P后,如果连通分量不增加,则P可以删除
细化步骤
通过基于数学形态学的腐蚀细化法,通过刚才的删除条件,进行匹配删除,由于是直接判断,省了模板匹配的这一步。
针对3*3的八邻域,进行操作:
|| p3 || p2 || p9 ||
|| p4 || p1 || p8 ||
继续阅读 »
简介
倾斜校正主要有两种,一种是整体倾斜校正,另一种是局部倾斜校正。
由于本文主要研究具有不规则分布的多数字识别,因此只需要关注经过提取后的数字校正问题,也就是图像的局部校正。
矫正算法
目前的校正算法有很多,比如说:
对于整体倾斜校正可以采用统计图像左右两边的平均像素高度,通过计算整体倾斜度来进行校正。
这种方法对于像素较多的图像的处理效果明显,而且实现简单快速,但是对于那些已经经过提取得单一数字图像并不适用,因为此时的图像一般较小,且笔画较细,由于所需信息太少统计后的结果并不正确。
其实校正的核心就是使图像的倾斜度的接近为0,因此可以把它看作是一个最优化问题:
即寻找需要调整多少角度,才能使图像的倾斜度最小
继续阅读 »
引言
所谓数字分割就是指将经过二值化后的图像中的单个数字区域进行提取的过程。数字分割在数字识别中是一个必不可少的关键步骤,只有能够将数字进行准确的提取,才能将其一一识别。
数字分割的方法
数字分割的方法相当多,主要有以下几种:
基于直方图的分割
```
此类方法就是对每行和每列黑色像素数进行统计,生成行直方图和列直方图,并采用某种阈值选取法分别对图像进行行列分割。
这种方法简单快速,对于按矩阵分布的规则数字的分割效果相当好,但是无法对不规则分布的数字进行分割,因此具有一定的局限性。
```
基于聚类的分割
```
聚类就是一个将数据集划分为若干组或类的过程,通过聚类使得同一组内的数据对象具有较高的相似度,而不同组中的
继续阅读 »
本文主要介绍如何在安装完caffe后运行一个简单的例程:手写数字识别,以了解和熟悉caffe的基本使用过程。至于如何安装caffe,请参考我之前的文章:ubuntu 16.04上配置cuda+caffe环境。
继续阅读 »
在前面的caffe笔记:运行手写数字识别例程一节中,我们已经运行了caffe的mnist例程,并且训练出了自己的模型,并用自己的模型对测试集进行了预测,结果还是比较理想的。本节主要阐述如何把自己的手写数字图片(28×28)送入到上一节训练得到的LeNet模型中进行预测,评估数字识别效果。
继续阅读 »
在前面的文章caffe笔记:测试自己的手写数字图片中,不管输入的是什么图片,预测的结果都是在0~4这5个中。我今天又重新google了一下,发现了这个博客:深度学习初探——使用Caffe识别数字。发现该博客后面提到的方法很好的解决了上文中提到的问题。
继续阅读 »