前言
上了大学以来看了很多很多csdn上的博客,感觉受益匪浅得到了很多的帮助,所以今天想总结一下自己最近在做的一个小项目——一个简单的音视频采集分析系统:
整体来说:
文字识别 —— opencv+EAST+tesseract 语音分析 —— mfcc+pyaudio GUI —— pygame 123
本文也主要从这三个方面来讲解代码和思路
1.文字识别
对于选取什么编程语言进行开发的问题上,在经过了多次许多考虑之后(装不上c++的opencv),我最终选择用python来做本次开发主要语言(用pip装起来实在简单)。后来也证明这个选择对现阶段的我来说是非常正确的。
1.1初识opencv
opencv对于图像的处理能力可以说是非常的强大。而对于小白的我来说主要关注的是图像识别的相关内容。在刚刚接触opencv的时候我尝试了许多它的一些人脸识别、微笑识别的demo——即别人做好xml(分选器)
opencv的xml的主要原理并不复杂——主要是依托机器学习的相关内容对大量的正负样本集进行训练。其中机器学习的方式可谓是五花八门,阿里好像也有相关的比赛。我就主要说我自己试用的一种官方自带的harr特征训练分选器:
1 准备一份正负样本集:
1.1正样本就是你要识别的东西 负样本就是完全不相关的背景(负样本最好跟应用场景相关)
1.2负样本的数量要达到正样本的三倍?(不太懂,可能也有一定的玄学成分)
1.3样本数量别太多也别太少(太少没用,太多训练太慢)
1.4利用opencv把样本集的图片都给灰度化了(对于灰度化很多朋友可能不太理解(我就不太懂)在查阅了很多资料后,我个人认为灰度化就是把图像转化为数据以方便我们对图像做一些处理,我们常见的RGB模式更多的是图像在颜色上的表示,而想转化成计算机语言就要进行灰度化了。(可能更重要的减小数据大小))
ming
2 利用opencv老版本的harr训练器(新版本更新完把它给砍了)
2.1要进cmd来操作,还有一些固定命令来完成文件夹的操作
⬇这个博客里写的很全可以参考参考(感谢他奥)
https://blog.csdn.net/qq_32502511/article/details/79010509
经过了漫长的学习过程(4个小时?)我终于获得了自己的分选器,但是效果不佳,不佳的原因有很多(样本少、训练方式效率低、训练器有bug(我觉得它那个层级有点问题)),最终我放弃了自己训练的四个分选器。
小结:整体来说呢,官方自带的harr训练器的算法主要就是查找图片的像素特征然后配合阈值来完成分选和判决,整体来说的思路也是比较古老吧,但是对于opencv不是很了解的小伙伴来说,是一个练手的好机会
↓这个链接详细讲解了opencv的