前面的文章我们为大家介绍了,基于AI的自动化测试难点、关键点及落地,本文跟大家分享AI技术如何解决现有的自动化测试工具的不足和我们衍生出来的新的测试需求。
计算机视觉在上世纪70年代,处于技术萌芽期,由字符的识别技术慢慢进行演化,发展到现在,人脸识别技术已经是非常普遍的应用,图像识别技术在无人机、无人驾驶、电商等领域用得越来越多。
计算机视觉-核心技术
计算机视觉技术在解决我们自动化测试的问题时,主要通过以下几点:OpenCV图像识别开发框架我们可以通过开源的OpenCV框架去进行UI的自动化的识别。OCR文字识别技术OCR技术已经有几十年的历史了,因为现在AI的出现,OCR技术与AI结合之后,可以使文字识别的精度更高。算法深度学习-卷积神经网络在算法层面,我们现在已经在计算机视觉和图像识别技术方面已经越来越多地用到深度学习里面的卷积神经网络,它对我们图像识别的精准度的提升有着非常重要的帮助。数据集图像数据集我们通过大量的图像数据集去构建算法的模型,来训练它的精准度。OpenCV-模块简介OpenCV是目前用到的最广泛的图像识别的框架,它的模块非常多,也非常复杂,它在ml模块里面,可以去集成各类机器学习的模块,主流的机器学习的算法模块都可以集成到OpenCV里面。它的核心功能模块包含了传统的图像识别的基本数据结构和绘图的函数。具体模块参见下图:
OpenCV-图像处理过程它的图像处理过程主要包含以下四个步骤:
OpenCV-图像基本操作一个简单的图像的基本操作主要包括以下这几个步骤:通过图像载入这样一个函数,去把图像进行载入操作;通过窗口创建和图像显示,去进行图像的元素提取、相应的展示;通过文件写入进行一个相应的处理,最后进行资源释放,去完成整个的操作过程。
OCR第二大应用非常广泛的是OCR技术,OCR技术需要我们在界面的文字上进行相应的处理。刚才我们讲的OpenCV主要是图像的处理,OCR主要是文字的处理。OCR-技术组成OCR的技术组成和计算机视觉的发展过程一样,它也属于图像处理的一个子分支,它的处理首先是由图像进行相应的处理,然后进行版面分析,版面分析之后,进行版面的字符的识别、字符的分割、语义的处理,然后进行版面的还原,然后进行格式化输出。OCR-图像处理OCR图像处理可以通过去噪声、平滑等处理方式进行一个基本的处理。OCR-版面理解通过版面理解可以把版面的调用顺序、逻辑关系进行一个基本的理解的处理。OCR-字符分割通过字符分割的技术,我们可以识别出字的元素组成,可以通过行的分割、字的分割去识别哪些字和哪些字相互组合是有一定含义的。OCR-字符识别通过字符的识别我们去识别出字所代表的含义,英文的、中文的或者其他外文的都可以通过基本的字母表或字符表进行一个处理。OCR-语义处理通过语义处理,OCR可以将一个正确的结果展示出来。像我们下面举的这个例子,每个字会有不同的识别结果,我们通过语义的自动化处理能够识别出它最终的语义哪一个是正确的。
OCR-格式化输出最后是进行整个字符识别后的格式化的输出,我们将识别之后的内容形成一个完整的字符的文本,然后输出出来。算法-神经网络神经网络是我们目前在AI领域用的最核心的方法。在算法层面,机器学习(深度学习)大体是经历了这么几个过程:第一次兴起(年):感知机,由于没有引入非线性,不能求解异或问题。第二次兴起(年):将BP(BackPropagation)算法用于ANN的训练过程。第三次兴起(年):深度卷积神经网络的兴起,一直到现在。
算法-卷积神经网络原理卷积神经网络整体上的原理是这样的,首先在底层特征具有局部特性,因此可以利用卷积窗口进行特征提取。图像中不同区域的底层特征(如边界)具有相似性,可以共享一组滤波器。用卷积代替全连接进行特征提取,对底层特征组合得到更具语义信息的高层特征,最后形成深度卷积的神经网络。算法-深度神经网络发展深度神经网络发展是向着网络结构的不断优化和网络深度的增加的方向发展的。现在在图像识别里面用到非常广泛的ResNet技术已经将神经网络的层次增加到非常高,超过层的神经网络都可以去实现。
数据集
有大量的数据集可以供我们机器学习的模型的训练,比如说像最有名的ImageNet,Google李飞飞教授团队研发的一个数据集,通过这种开放的数据集可以帮我们去更好地训练机器学习的模型。现在非常多的行业里面或者一些创业公司里面,都有很好的这种行业性的数据集。
AI技术在其他方面和测试相关的创新主要有以下几个方面:AI编译器-测试代码生成首先是AI编译器,AI编译器对测试代码的生成带来了非常大的帮助。比如像NNVM编译器,是现在非常流行的一种开放式深度学习编译器,它可以将前端框架工作负载直接编译到硬件后端。由此带来的好处就是我可以将深度学习的工作负载进行一个优化。同时另一方面,我们通过这种计算图处理的优化,去减少整个资源的消耗,像内存利用率的消耗等。同时它还提出从前端深度学习框架到裸机硬件的端到端编译管道,通过这样的技术能够帮助我们在基于AI的测试代码的生成效率提升及资源利用率的优化。
AI语音识别-语音输入处理语音识别的应用越来越多,相应的算法也越来越成熟,识别的精准度也越来越高。这也是我们处理AI语音相关的应用的时候可以去使用的技术。
更多推荐:
基于AI的自动化测试难点、关键点及落地CNAS软件检测机构实验室间比对怎么做转载请注明:http://www.0431gb208.com/sjszjzl/8433.html