图像识别与人工智能的联系

对于图像识别,自然应当与当今的时代潮流人工智能相结合起来。正如今年下半年在天津的夏季达沃斯峰会和在上海的中国国际进口博览会中所展示出来的,人工智能就是人类的第四次工业革命,而各个国家、企业都在展示当今时代人工智能的成果。而图像识别,正是人工智能的一个重要的研究方向。如何教会机器像人类一样会看会识别,是当今时代重点研究的一个课题。

图像识别,是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对像的技术。一般工业使用中,采用工业相机拍摄图片,然后再利用软件根据图片灰度差,做进一步识别处理,图像识别软件国外代表的有康耐视等,国内代表的有图智能等。另外在地理学中指将遥感图像进行分类的技术。

而联系到机器学习,主要涉及到的算法包含SVM,一种支持向量机,在机器学习领域,是一个有监督的学习模型,通常用来进行模式识别、分类以及回归分析的算法。以及CNN卷积神经网络算法,基于卷积神经网络CNN的人工智能技术的发展,目前基于主流的深度学习框架的直接开发出端到端不分割的识别方式,而且在没有经过太多trick的情况下,已经可以达到95%以上的识别率。

机器是如何学习的呢?这是一个非常值得思考的问题。人类正是有着聪明的大脑才能成为世界上最高级的生物,而教会机器像人的大脑一样去看这个世界并不容易,一个小孩从出生到这个世界到三岁,就已经看到了数以亿万计的、海量的图片,而一个机器,简单将已有的而较为寻常普遍的图片给其学习,远远难以达到人类大脑所能识别的信息。因此,早在2007年,TED便在网上发起了图片收集,在ImageNet上收集了来自全世界各个国家各个地区所传来的各式各样的图片,数量达到接近十亿,以此庞大数量的图像数据,来使机器所学习到的图像信息尽可能的贴近一个人类,或说是一个三岁孩子所学习到的信息。这便是机器学习的出发点,教会机器像人类一样去看这个世界。

而本次我将重点介绍CNN卷积神经网络,并用此种方法浅显的展现出机器学习与图像识别的联系。为了像人一样,人的大脑便是由一个庞大而缜密的神经网络组成,而每一个神经元就是最小最基本的单位。而卷积神经网络便是模仿了人脑的这一特点,由一个个神经元组成了一个神经网络,再经由机器学习以后,将训练的结果用于实际测试。

利用课余时间,我在网上收集资料并尝试搭建框架经行图像识别验证码。我运行的环境是基于Windows10,Python3.6,编译器为Pycharm,同时,主要利用Tensorflow进行机器训练学习这一过程。TensorFlow是一个基于数据流编程的符号数学系统,被广泛应用于各类机器学习算法的编程实现,拥有多层级结构,可部署于各类服务器、PC终端和网页并支持GPU和TPU高性能数值计算,被广泛应用于谷歌内部的产品开发和各领域的科学研究。

3588 图像识别 图像识别功能_图像识别

在此条件下,在机器学习过程中首先构建卷积神经网络并训练,经由卷积层(这里一共包含三层卷积层)、全连接层、池化层(每次池化后图片的高度和宽度都缩小为原来的一半)、输出层,这里在Python中调用Captcha库函数进行验证码的下载,训练集包含10000张图片(从0000-9999),同时生成测试集,即随机挑选50张验证码图片在机器经过学习后测试,这里的机器学习时长根据电脑配置不同而不同,CPU所需时间大约为20小时,而GPU所需时间大约为5-6小时。最后,这里我将生成的测试集数据以及测试情况截图:

3588 图像识别 图像识别功能_图像识别_02


3588 图像识别 图像识别功能_3588 图像识别_03

最后所得到结果,正确率为92%,由于测试集包含数量较少,以及验证码的灰度、散点都有所不同,此次数据结果仅为参考值。

图像识别作为人工智能的一个大类,如今已经变得越来越热门,在前几年江苏卫视《最强大脑》节目中也已经展现出百度机器人小度对于图像识别以及信息综合处理的能力,在技术发展越来越快、效果越来越完善的现在,我们应该要明白,最难的不是使用一个算法,而是真正明白我们要解决的问题。

参考文献:
1. 机器学习初步与实践
2. 使用Tensorflow构建和训练自己的CNN来做简单的验证码识别
3. 基于Opencv和Tensorflow实现实时手势识别
4. 李飞飞:如何教计算机理解图片