在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Deep Belief Network
DBN的图像应用计算机识别图像时,它看到的就是一个100010001二进制数据或者理解为一个矩阵。在此基础上我们可以将图片处理成RGB或者纯二值图(黑\白,1\0代表)。 程序功能说明可以通过http://accord-framework.net/中的”Sample applications”,进入样例程序页面,找到“Deep Belief Networks and Boltzmann machies”. 学习界面,如下图: 验证界面,如下图(大家画的时候尽量贴满整个格子,因为编码方面,按照窗口的图像缩放成32x32的图像,没有切割,所以大家画的数字,在画布上太小,识别不出来): 程序结构说明演示程序是用WPF编程的,采用M-V-VM模式。基于数据绑定完成交互的(有别于Winform的事件启发,殊途同归)。 界面的对应关系如下: 代码分析-神经网络的数据准备程序在启动后,会从资源文件optdigits-tra.txt中抽取图像数据,转化成Bitmap。Optdigits类负责数据的装载、转换、提取、存储等动作。 核心代码如下: extractSample函数,将图像缩放到32X32,特征函数很简单如下: 代码分析-神经网络的监督学习先以非监督学习学习一次,再勾选“Use supervised learning”监督学习,点击执行。 程序会实例化一个神经网络算法类,新建一个Teacher,从数据准备中调取数据,开始教主界面“MainViewModel. Network”这个“小孩子”学习。
代码分析-神经网络的学有所用机器学习后,具备了识别图像的能力了,那我们就画个数字让它认一认。 程序通过WPF的一张画布控件“DrawingCanvas”,利用定时器定时提取特征(特征提取过程函数必须要与学习一致),将学习后的二值图(byte数组),送给“小孩子”认。 “小孩子”接到指令,开始认了: |
请发表评论