python⼿写数字识别gui_MATLAB+GUI实现⼿写数字识别模式识别课程⼩作业
⽼师要求: ⽤MATLAB实现⼿写数字的识别,⽤GUI设计出可以⽤⿏标来写数字的输⼊板(竟然不是直接给图⽚)still asleep怎么读
沉浸在Python+Tensorflow/Caffe的世界⾥,完全没⽤过GUI的我眼泪掉下来。⽟⽶了好久的资料,感觉⼤多没什么⽤,还乱的很。⾃⼰⼀步步地学⽤GUI和⽤matlab训练⽹络。看着⽼师给的100张图⽚和⼀堆暂时没看出来有什么⽤的C++代码,真的是gui知道我都经历了些什么~
不过最后还是成功实现了
下⾯记录⼀下⾟酸史,超浅显也超详细,没有很强⼤的功能,适合跟我⼀样的⼩⽩仅⽤来完成任务。
⾸先新建GUI界⾯,可以⾃定义⽂件路径。创建后即会弹出GUI的编辑界⾯和.m⽂件,其中已经⾃动⽣成了⼀些代码。
此处参考百度经验:
(PS:若是不⼩⼼关掉了GUI的编辑界⾯也是可以通过"新建->打开现有GUI"再次编辑的)
java switch的详解在百度⽂库⾥到了⼀篇关于GUI的⽐较详细的课件:
表单大师如何截止填写结构体类型结构体初始化⼀些基础性知识不再赘述,也避免侵权。需要重点了解的有:回调函数、句柄函数、对象属性函数。
本任务中⽤到的有按钮、⽂本和坐标区三种控件。创建控件后双击可更改属性,如名称、字体⼤⼩等。此时运⾏后的界⾯暂时还不能写字,需要在.m⽂件⾥编写相关回调函数。
写字板的代码参考:
主要是让坐标区能显⽰⿏标画下的线。
在GUI编辑界⾯的相应控件处右键,点击"查看回调"下的相应函数,然后再到.m⽂件处编辑函数内容。需要什么控件实现什么功能就编辑该控件的相应函数哦~
(下⾯删除了.m⽂件⾥⼀些没⽤的注释,省略了前⾯⾃动⽣成的代码,识别按钮的回调函数会在后⾯贴上)
此时再运⾏就能在坐标区写字了。
jquery serialize不过注意:
需要将坐标区的属性->XLimMode/YLimMode都由auto改为manual。不然写出的第⼀笔会乱跳,轴还会动。
接下来就是要识别出⼿写的数字了,此处涉及到训练模型。码字到这⼉犯懒,下⾯有些函数相关的细节不想细说了。⼀些看不懂的函数就直接help⽂档说明看吧
由于在MATLAB官⽅⽹站上到了⼀篇基于HOG特征+SVM分类器识别数字的⽂档,⽼师也还没有要求⽤什么⽅法识别,我就按照⽂档的教程⽤⽼师给的100张图⽚试着训练了⼀下。最终效果还⾏,也常有错误的情况。
⽂档链接如下,训练模型参考了⼤部分代码:
-classification-using-hog-features.html
⽟⽶按照平时常⽤的思路,将SVM的训练代码单独⽤个脚本,将训练好的模型保存下来。这样训练⼀次,后⾯识别时直接导⼊模型使⽤就⾏,省时省⼒。
python基础代码写字训练代码如下:
识别按钮的回调函数:
初步实现了⼀下,也没⽤许多数据,效果⼀般般吧,还能凑合~
思考:⽤MNIST数据集或多加⼀些数据来训练的话效果应该会更好。或者⽤其他的分类⽅法,如贝叶斯、BP神经⽹络、深度卷积神经⽹络等。但由于时间问题,同时本⼈也不想深究MATLAB,故没有继续深⼊了解。界⾯也许能更美观点,能加⼊更多的功能,系统也许能有更好的分类性能,这些就留给有兴趣的⼈继续探索吧~
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论