大数据的若干基础研究方向
朱扬勇1,2,熊贇1,2
1.复旦大学计算机科学技术学院,上海 200433;
2.上海市数据科学重点实验室,上海 200433
(引用标注:朱扬勇,熊贇.大数据的若干基础研究方向[J].大数据,2017,3(2):104-114.)
摘要 大数据问题的关键技术挑战在于:找到隐含在低价值密度数据中的价值;在希望的时间内完成。指出前者需要将领域知识和数据技术结合,这种结合的理论和新型算法构成大数据的分析基础和应用基础;后者需要设计新的计算机、集群体系、计算框架、存储体系和数据管理方法,这些构成大数据的计算基础和数据基础。另外,这两个挑战都涉及数学理论,这是大数据的数学基础。系统地分析了大数据的数学基础、计算基础、数据基础、分析基础和应用基础等基础研究方向。
关键词 大数据;数据科学;大数据基础;数据资源
Abstract Thekeytechnicalchallengesforbigdatalieinhowtodiscoverthevalueofthelow-value-densitydataandhowtocompletethetaskinthedesiredtime.Thewaystotakeupthesechallengesfromthreeaspectswerediscussed.Firstisthattheformerchallengerequiresthecombinationofdomainknowledgeanddatatechnology.Thiscombinationoftheoryandnewalgorithmsformsthebasisofapplicationandanalysisofbigdata.Secondisthatthelatterchallengeneedstodesignnewtypesofcomputer,clustersystem,computingframework,storagesystemanddatamanagementmethod,whichformsthebasisofcomputinganddataofbigdata.Thirdly,bothchallengesrelatetomathematicaltheory,whichisthebasisofmathematicsofbigdata.Inconclusion,severalfoundationissuesforbigdataresearchincludingthebasisofmathematics,computing,data,analysisandapplicationofbigdatawereanalyzed.
Keywords bigdata,datascience,foundationofbigdata,dataresource
1 引言
数据资源开发利用的目的是实现大数据价值。大数据是指为决策问题提供服务的大数据集、大数据技术和大数据应用的总称[1];大数据问题是指不能用当前技术在决策希望的时间内处理分析的数据资源开发利用问题[1]。就当下而言,现有技术难以处理PB级别以上的数据。PB级别的数据规模已经超过了大部分企业和机构自身积累的业务数据规模,这说明PB级别数据规模的应用涉及了企业和机构外部的数据,这是质的转变。在PB级别数据规模下,企业和机构可以用历史数据、跨界数据等足够多的数据来做决策。这将对科学研究、政府治理、民生改善、产业发展发挥革命性的作用。PB级别数据规模带来的技术挑战也是非常明显的,即“大数据问题”。从技术角度看,PB级别的数据量给计算机的硬件和软件都带来了挑战:机械硬盘、盘阵、体系结构、计算框架、数据移动、多地计算/异地计算、数据管理、数据分析等。随着计算技术的进步,这些技术问题是否就会得到解决?回答是否定的。摩尔定律(Moore’sLaw)不能解决大数据问题,摩尔定律是由英特尔(Intel)创始人之一戈登·摩尔(GordonMoore)提出来的[2]。其内容为:当价格不变时,集成电路上可容纳的元器件的数目,每隔18~24个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18~24个月翻一倍以上。这一定律揭示了信息技术进步的速度。自从PC时代以来,每次技术进步生产的计算机以亿万台计,每台计算机都在生产数据。现在想将很多台计算机生产的数据集中起来处理和分析,显然是现有技术不能实现的。这就是大数据问题产生的根源。大数据问题的关键技术挑战在于:找到隐含在低价值密度数据资源中的价值;在希望的时间内完成所有的任务。前者需要领域业务知识和数据技术相结合,这种结合的理论和新型算法构成了大数据的分析基础和应用基础;后者需要设计新的计算机、集群体系、计算框架、存储体系和数据管理方法,这些构成了大数据的计算基础和数据基础。另外,这两个挑战都涉及了一些抽象的数学理论,这是大数据的数学基础。面对大数据问题的挑战,需要研究如何发展大数据,如何从实践总结经验,抓住核心问题重点突破,实现原始创新,从基础做起,掌握核心技术,探索大数据的基础理论,为解决大数据如何用、如何管、如何算等关键问题提供理论指导。
2 大数据的基础
信息化和大数据二者的关系是“不混淆、不冲突”。
●不混淆是指信息化和大数据是不同的,不能混为一谈,信息化是生产数据的,大数据是开发数据的。从技术角度来看,信息化是技术进步促进数据增长;大数据是数据增长促进技术进步。
●不冲突是指大数据不取代信息化,信息化不包含大数据。这样,信息化工作照样做,并且信息化仍然将快速发展。但大数据已经从信息化工作中独立出来,如果说信息化对应的技术叫信息技术(informationtechnology,IT),那么大数据对应的技术可以叫数据技术(datatechnology,DT)。
核心点是数据增长促进技术进步。例如,当前10PB规模的数据无论是从上海到北京,或者是从一个数据中心到另外一个数据中心,甚至从一个存储集群到另一个存储集群,都是困难的、难以忍受的。既然数据大到难以移动,那么如何集成多个数据资源进行计算,如何设计数据不移动、软件移动的计算模型,实现多地计算、异地计算。又如,如何开发利用数据资源,如何确保数据安全和数据主权,这些都是数据量增长对技术进步的要求。信息化的技术和大数据的技术是不同的,参考文献[1]给出了二者技术的对比。这样,信息化的基础研究和大数据的基础研究也是不一样的。大数据的基础包括:应用基础、分析基础、数据基础、计算基础和数学基础5个方面。
大数据的应用基础包括各学科、各领域的基于数据的新方法、新范式、新理论等,用于支撑基于大数据的科学研究方法、社会发展方式、经济建设模式和国防安全手段。大数据的应用基础是建立在大数据技术、产品、工具和解决方案之上的,而这些产品和工具的开发需要大数据的分析基础。大数据的分析基础包括大数据分析理论与框架、大数据分析方法和算法、业务驱动的分析理论和方法等,大数据分析方法和算法的实现和实施需要大数据的数据基础、计算基础和数学基础。大数据的数据基础包括大数据的治理和管理、存储理论和模型、可视化等;大数据的计算基础包括多地计算/异地计算、计算框架、硬件设备、网络设备等;大数据的数学基础包括数据的数学结构、数据代数、数据相似性等。图1给出了大数据基础的逻辑关系。
图1 大数据基础逻辑关系
自2012年起,国家自然科学基金委员会对大数据研究开始立项,总体资助情况分布如图2所示。
图2 2012—2016年国家自然科学基金资助的以“大数据”为主题词的项目数
从图2可以看出,在这5年期间,大数据相关项目资助数持续增长,尤其是在2014年,相对于2013年有较大幅度的增长。2012年,大数据概念刚刚兴起,国家自然科学基金项目申请时间点已过,所以2012年几乎没有什么项目。2013年,各学部开始支持大数据项目,全社会掀起大数据热,各行各业都在讨论大数据。于是,到2014年,大数据项目大幅度增长,主要是应用基础的研究项目大幅度增长,几乎每个学部都支持了大数据的研究项目(如图3所示)。受资助的大数据相关项目在应用基础、分析基础、数据基础、计算基础和数学基础各方面的项目资助占比情况如图4所示。总体来看,科研项目关注最多的是对各个领域大数据应用问题的研究(应用基础占62%),其次主要集中在大数据挖掘方法研究(即分析基础占18%),其他依次为:数据基础(占11%)、计算基础(占7%)和数学基础(占2%)。
图3 2012—2016年国家自然科学基金委员会各学部资助项目数分布
图4 2012—2016年在五大基础方面的项目数总占比
从2012—2016年每年的占比情况来看(如图5所示),应用基础有明显的上升趋势;分析基础在2013年有明显的上升,随后占比较为平稳;数据基础历年占比都较为平稳,且所占比重也并不大;计算基础所占比例呈现出逐年下降的趋势(2016年稍有回升);数学基础被关注的比例历年很低,并维持稳定(低比例)。
图5 2012—2016年在五大基础方面的项目数年度占比
从图5可以看出,在2012年大数据发展初期,计算框架和计算能力是推动大数据发展最急需的基础,而之后随着开源计算框架的出现,计算基础的比例又开始下降。然而,2016年,数据开放共享成为趋势和重点,数据迁移、异地交换的需求又促进研究者探索新的计算框架。并且,分析基础在2013年的突增也说明当时对大数据方法需求的增长,随后相对稳定。在计算基础下降的过程中,应用基础占比逐渐上升,这说明越来越多的领域参与到大数据的研究中来。
图6为2012—2016年国家自然科学基金项目在五大基础方面的项目数的变化情况。可以看出,大数据研究过程中数学基础方面还需要更多的研究者参与和关注。在应用基础研究方面目前已经涉及众多领域,应该总结共性技术和理论,减少重复研究。数据的资源性迫切需要开放共享,数据基础的新问题、新技术、新理论的研究应该建立起来。
图6 2012—2016年在五大基础方面的项目数年度变化情况
3 大数据的应用基础
大数据的应用渗透到越来越多的领域,各领域大数据理论和方法的研究将为创新大数据应用、提升大数据价值奠定基础,创造出基于大数据的新型科学研究、管理决策、社会发展、经济建设方法和模式等。大数据的应用基础主要表现在各个学科基于大数据的创新,以科学研究的第四范式为代表[3],包括对人文社会科学的研究、管理决策新方法、外部事件驱动的管理决策方法、基于微观数据的宏观经济学等。
GRAYJ指出[3]:几千年前,科学研究是用实验解释自然现象的;几百年前,科学研究用理论模型探索科学规律,用实验验证理论;几十年前,科学研究用计算机模拟复杂现象,探索其中的奥秘;现在,科学研究是基于对数据的探索。科学的目的是认识宇宙、认识物质、认识生命、认识社会。
●在认识宇宙方面:人们用了很多方法,早期科学家用肉眼观测天空,后来用望远镜,现在用射电望远镜。这些望远镜得到的结果是各种各样的宇宙图像,天文学家通过分析这些图像来研究宇宙。
●在认识物质方面:人类还在研究物质的构成,为此于2008年建成并运行了欧洲强子对撞机装置。每一次正负电子的对撞,都产生了巨量的数据。科学家们经过不懈的努力,用了150个计算站点对200PB数据用了3年时间分析,继而科学家发现上帝粒子[4]。
●在认识生命方面:自从DNA被发现,人类对生命的认识进入了全新的阶段,人类似乎找到生命的本质、遗传的本质。DNA可以用A(腺嘌呤)、C(胞嘧啶)、G(鸟嘌呤)、T(胸腺嘧啶)4个字母的字符串表示,于是DNA变成了可以用计算机计算的数据,生命科学研究就出现计算生物学的分支,并且迅速发展。生命科学家开始分析数据,或者通过分析数据来研究生命。
●在认识社会方面:信息化极大地推动了社会的发展和进步,社会的抽样调查、问卷之类的研究方法将被淘汰,国家统计局已经和百度、阿里巴巴等数十家互联网公司合作进行数据收集和统计工作,共同推进大数据在政府统计中的应用,不断增强政府统计的科学性和及时性。从上述分析可知,不论是自然科学还是社会科学,先进的研究方法是在数据上开展研究,这也说明,认识数据先于认识宇宙、认识物质、认识生命和认识社会。大数据应用基础的主要研究方向如下。
●各学科基于大数据的新方法、新范式、新理论等,包括生命科学、物理、化学、天文、历史、社会、管理、经济等学科的大数据方法和模型研究与探索。
●各领域基于数据的新方法、新范式、新理论等,包括医疗、金融、交通、环保、商业等领域的大数据创新模式、智能决策方法和模型研究与探索。
●用于支撑基于大数据的科学研究方法、社会发展方式、经济建设模式和国防安全手段。
国家自然科学基金委员会也已对上述各个研究方向开展资助,例如在生命科学的大数据方法研究项目有:“利用大数据信息挖掘和基因进化方法研究禽流感病毒的跨地域传播”“基于大数据整合挖掘的肾细胞癌分子进化机制研究”等;商业、交通、环保等领域的大数据方法研究项目有:“大数据背景下的商业模式创新机制研究”“大数据驱动的产品精确设计理论、方法及其应用研究”“大数据环境下的复杂城市交通系统预测与控制”“数据驱动的我国PM2.5污染规律模型智能构建方法研究”“大数据驱动的我国典型重点流域水污染防控决策研究”以及“数据驱动的军事复杂系统风险决策分析方法及其应用研究”“面向军事情报的多媒体大数据分析与展示”等项目。
4 大数据的分析基础
开发数据的核心是数据分析,也就是说大数据技术的核心是数据分析技术。目前,大数据分析技术主要在传统方法上延伸拓展,还没有从本质上解决大数据利用面临的挑战。这需要探索大数据分析技术的共性问题,主要研究方向如下。
(1)传统数据分析算法的改进原理
现有的大数据分析理论与方法大多从传统的统计分析、数据挖掘、机器学习、数据融合等领域派生出来,例如K-means++[5]、K-meansⅡ[6]等聚类算法对经典K-means算法进行了改进,实现了大规模数据高效聚类。大数据的特点使现有方法超出了其使用条件和范围。因此,如何在拓展原有方法的基础上,研究适用于大数据特征的数据分析方法成为大数据时代的挑战,包括研究扩展传统的数据挖掘、机器学习、数据融合算法的原理。
(2)新型数据挖掘算法
大数据挖掘是从大数据中寻找其规律的技术[7]。大数据具有高价值、低密度的特性,“寻找”变得更具挑战性。分类分析需要有标签的训练集指导建模,但是大数据集中大多是没有经过专家打好标签的数据,需探索新的分类方法,以利用较少的有标签样本和较多的无标签样本进行学习。
此外,面向高价值低密度的大数据集,存在这样一类数据挖掘需求:发现给定大数据集里面少数相似的数据对象组成的、表现出相异于大多数数据对象而形成异常的群组,被称为特异群组挖掘[8-10]。新的大数据挖掘方法研究包括特异群组挖掘方法、面向海量数据查询的相似性计算方法、大规模带时序可信知识图谱自动构建方法、动态大图分析方法等。
(3)高维数据分析方法
通过对大数据本身的压缩来适应有限存储和计算资源,除了研发计算能力更强、存储量更大的计算机之外,维规约技术(包括选维、降维、维度子空间等)是一类有效的方法,但也具备技术挑战。需要面向不同类型的数据研究语义保持下的大数据维规约技术(包括特征分析、特征选择、降维、子空间等),形成新的高维大数据分析方法和理论。
(4)深度学习方法
深度学习[11]已成为机器学习研究中的一个热点领域,通过构建具有多隐层的学习模型和大量训练数据学习特征。对深度学习的研究不仅仅聚集在视觉、图像、语音、文本等分析研究中,也需要拓展到时间序列、复杂网络等数据集上。深度学习模型优化、计算能力等方面仍然是当前深度学习的难点,需要形成理论体系。国家自然科学基金委员会在大数据分析基础方面资助的项目有:“大数据机器学习分布式算法的可行性理论”“基于知识指导和模糊信息粒化的时序大数据分析和挖掘”“RADIUSK-means算法及其拓展问题的研究”“基于多源异构不确定数据的高效用信息挖掘的研究”“面向图像序列的深度学习理论与方法”“面向大数据的快速关联分析关键技术研究”“面向大数据分析的自学习网络关键技术研究”“基于认知计算的大数据挖掘理论与技术”项目等。
5 大数据的数据基础
数据是基础资源和战略资源,对资源竞争就会产生很多问题。国家之间的竞争涉及数据主权和数据安全,还有全球数据治理;一个国家内部涉及政府和公共数据资源的开放共享、交易流通,涉及数据权属和隐私安全保障,还涉及数据管理、数据质量、可视化等数据可用性问题。大数据研究需要有各种各样的数据环境,数据环境要与来源多样、类型多样的数据结合,并且数据规模要足够大。需要从数据质量保障、数据存储和数据索引等方面,研究大数据管理和治理的基础方法,包括以下几个方面。
(1)大数据治理
确保数据稀缺性不丧失和隐私泄露是推动和实现数据开放共享的关键,有必要探索数据隐私保护机制及模型、大数据权属认定与保障理论及体系、区块链技术,构建数据自治开放理论体系,推动大数据交易。
(2)外部数据的质量保障机制
大数据来源广泛,也导致了数据的可靠性下降,如果不经过处理而将非确定的大数据用在后续分析中,必然会导致最终结果的不确定或不准确。因而要研究数据清洁的收益和代价计算,高效量化出单个数据清洗对全局结果判决质量的提升以及清洗单个数据耗费的开销,从而选择最高性价比的数据进行清洗。研究多数据源融合的清洗问题,梳理融合中多数据源之间的依赖关系,确定数据清洗的时机与策略,达到最优的清洗性价比。研究大数据可用性的定义与表达、大数据的错误传播与可用性相关模型,大数据可用性中的可计算与计算复杂性度量模型,基于群智计算的迭代数据清洗机制等基础理论和框架。
(3)大数据建模
关系模型、面向对象模型在以前的数据管理技术中发挥了核心作用。但原有的数学模型多是针对一种类型的数据,而大数据中包含结构化数据、半结构化数据和非结构化数据,因此需要研究相应的建模方法,将不同类型的数据从语义上关联在一起,以复杂关联网络等技术为基础研究连接各种不同类型数据的数据描述机制,支撑对大数据的管理。
(4)大数据索引
传统索引结构常用于结构化数据库系统,能够提高小规模数据检索速度和查询表连接效率。然而,大数据环境下,传统索引结构存在冗余、存储空间过大、更新困难以及不适用于分布式存储环境等缺陷,这需要针对大数据的存储与数据特性研究大数据索引,包括非结构化数据索引结构、基于分布式存储的数据索引结构、高维与多目标需求下的数据索引结构等多种索引模型和索引性能评估模型。
(5)大数据可视化机理和方法
可视化是刻画数据之间关联性的有效手段,可视化分析贯穿于大数据全过程,如何实现可视化方法协助分析大规模、高维度、多来源、动态演化的数据,是当前可视化面临的挑战。因此,需要探索大数据全局视图可视化机理、时空相关的交互可视化机理、超大规模节点的高速数据渲染方法。
(6)知识图谱
知识图谱用于刻画实体或概念及其之间的关系,在大数据环境下,知识图谱更新和复杂性都急剧增加,为构建高质量知识图谱和实现有效推理,需要研究复杂知识图谱的语义描述方法、不确定知识图谱的构建与管理、基于知识图谱的多种类型数据表示模型、跨结构数据的存取机制和语义表示等。
国家自然科学基金委员会对数据基础研究方向的资助项目有:“大数据协同计算及查询服务的隐私保护”“大数据环境下的首席数据官、数据治理及组织绩效关系研究”“高质量大数据集成关键技术的研究”“大数据一致性错误管理理论与关键技术”“大数据集背景下概念格的多粒度构造和存储研究”“分布式不确定数据查询处理关键技术研究”“面向大数据的信息可视化设计方法研究”“高维大数据可视化的散度模型、算法及评价”“基于外存的海量知识图谱数据的查询处理”等。
6 大数据的计算基础
大数据通常需要有能够分析处理这些数据的软硬件环境,即需要具有足够计算能力的计算环境。以深度学习为例,HintonGE于2006年在《Science》上发表的论文《Reducingthedimensionalityofdatawithneuralnetworks》[11]提出了数据降维方法——deepautoencoder,这成为深度学习开创性标志算法之一。然而,却并没有作为被广泛关注和使用的方法,而是随着数年后计算条件和计算能力的提升,深度学习方法才开始发挥更为重要的应用价值。这意味着需要探索新型高效能系统结构、性能导向的大数据计算框架和多地计算/异地计算理论与方法。
(1)新型高效能系统结构
当前,计算机系统的计算部件、存储部件、通信部件的功能和性能已朝着高速、高容量、高带宽的方向发展,并具有可编程、可定制等特点。如何利用这些部件构建新型高效能计算机系统满足大数据处理需求,是一个迫切需要解决的问题。这需要探索可重构、高度可配置的新型高效能系统结构;研究计算、存储和通信部件的有机结合、按需配置、弹性伸缩的方法;研究可变结构、软硬件结合的拟态计算机系统结构;研究高效能分布式存储系统的构建原理。
(2)性能导向的大数据计算框架
大数据的规模、计算时效性以及异构数据分布存储的特征,对计算机系统的高通量、高时效和高并行提出了挑战。性能导向的并行计算框架是应对大数据挑战的关键和基础。这需要研究分析大数据应用的计算特征、通信特征和存储特征;研究并行计算系统的高通量、高时效计算技术,包括实时分布式内存系统、内存计算系统、异构多核平台的性能加速技术等;研究性能可预测的并行计算模型。
(3)多地计算/异地计算理论与方法
数据大的难以移动、数据重要的不愿移动,在此背景下,如何求解一个全局问题是一大挑战。通常在大数据所属地计算局部解,即大数据应用具有数据存储的分布性问题,在数据所在地进行计算,产生的部分计算结果可能出现不一致、相互背离等现象,需要通过不同方式的计算进行验证,这给求解全局问题带来挑战。因此,需要研究大数据多地计算/异地计算基础问题,包括异地计算行为建模;研究局部解的局限性评估机制、局部解发送接收的身份验证机制、局部解的优化融合策略;研究全局解的最优性评估机制、提高全局解最优率的异地选取策略等。国家自然科学基金委员会对上述各个研究方向开展资助的项目有:“云计算环境下大数据本地化技术研究”“结合逻辑与物理I/O访问信息的存储系统优化策略的研究”“互联云环境下面向数据中心的服务资源分配与调度机制研究”“面向大数据的高时效并行计算机系统结构与技术”“大数据高效能存储与管理方法研究”“面向大数据的计算与存储融合CPU体系结构研究”“分布式计算与系统”“面向大数据内存计算的计算机体系结构”“大数据环境下增量式迭代计算框架的研究与优化”“云计算环境下面向大数据的在线聚集并行优化机制研究”等。
7 大数据的数学基础
现有的大数据研究大多关注将传统方法应用于大数据的实际场景,而没有从大数据的内在结构、本质特征出发,这制约了大数据研究的深度发展,使得大数据技术面临瓶颈。因此,研究大数据需要从数据本身出发,这离不开数学方法的支持。大数据的表示和度量是大数据研究的关键和基础,相应地,与之密切相关的大数据代数系统、大数据内在数学结构和大数据相似性度量成为大数据的数学基础的重要内容。
(1)大数据的代数系统
关系代数为关系型计算提供理论依据。然而,高扩展性是大数据分析的重要需求,传统的关系数据模型难以胜任当前存在的非结构化数据(如文本数据、序列数据、流式数据等)的处理。近年来,已出现一些非关系型数据库(如HBase、MongoDB等),在非结构化数据上的复杂数据分析能力有所提高,并得到广泛应用。但是,目前缺少对非关系型数据库的数据代数的研究。对于非关系型数据,定义由数据集构成的集合上的度量方法和运算,形成一定论域上的数据代数等,这些都将在数学基础上对非关系型数据提供理论支持,有望突破现有技术瓶颈。
(2)大数据内在数学结构
数据有复杂的拓扑、网络等不同结构,在大数据问题中,数据本身往往具有更为复杂的内在数学结构,例如,高维数据空间中因为具有一定的约束条件而具有流形的数据结构;又如,在图像等非结构化数据中,先天性地具有低秩的数学性质。在深刻理解和挖掘内在相应结构的基础上,才能有效建立分析模型。针对大数据集的流形或复形等复杂数学结构和稀疏、低秩等数学性质,设计合理描述的数据结构,构建相应的度量,选取多尺度自适应的基底表示,为构建分析模型、形成反映内在结构参数的分析算法提供理论支撑,并通过数学结构的性质,保证算法的适用性。
(3)大数据的相似性度量
相似性是数据挖掘分析任务的核心。简单数据类型的相似性度量支撑传统数据分析模型,然而,针对复杂数据类型,这些相似性度量难以真实反映数据之间的关系。针对大数据复杂性特征,定义空间非刚性结构的相似性度量和超高维、多类型的大数据相似性度量,发展非线性降维方法、核理论以及相应的高效算法和稳定性分析。如前所述,大数据研究过程中数学基础方面还需要更多的研究者参与和关注,目前,国家自然科学基金用在大数据的数学基础方面的相对较少,但也有对上述研究方向的涉及,例如:“大数据环境下服务的存储范式理论及操作代数研究”“大数据中的广义稀疏几何结构学习方法研究”“适应大数据处理的概率相似度学习研究”等。
8 结束语
数据作为一种基础性资源已经得到广泛认可,大数据开始在各行各业发挥作用,同时也遇到了很多难题,例如数据质量、数据权属、数据开放共享、数据快速分析、异地数据计算等,这些问题可以统称为大数据问题。由于大数据的广泛性,大数据问题是多层次、多样的,需要各领域的科学家共同努力。本文将大数据的基础问题归类为应用基础、分析基础、数据基础、计算基础和数学基础五大类别。特别地,将各学科基于大数据的创新研究也归类为大数据的应用基础。这是因为科学研究进入了所谓的第四范式,第四范式的科学研究需要先行积累数据、研究数据、分析数据、观察数据,然后才进行业务研究,或者说,认识宇宙、认识物质、认识生命、认识社会,需要先行认识相应的数据,即认识数据先于认识宇宙、物质、生命和社会。建议国家层面研究基金全面部署,探究大数据各层面的基础问题,实现大数据原始创新,推动数据科学发展,有利于形成大数据的核心竞争力。
参考文献:
[1] 朱扬勇,熊贇.大数据是数据、技术,还是应用[J].大数据,2015,007.
[2]MOOREGE.Themicroprocessor:engineofthetechnologyrevolution[J].CommunicationsoftheACM,1997,40(2):112.
[3]HEYT,STEWARTT,KRISTINT.Theforthparadigm:data-intensivescientificdiscovery[M].Beijing:MicrosoftResearch,2009.
[4]CARMID,FALKOWSKIA,KUFLIKE,etal.Higgsafterthediscovery:astatusreport[J].JournalofHighEnergyPhysics,2012,arXiv:1207.1718.
[5]BAHMANIB,MOSELEYB,VATTANIA,etal.Scalablek-means++[J].ProceedingsoftheVLDBEndowment,2012,5(7):622-633.
[6]ARTHURD,VASSILVITSKIIS.K-means++:theadvantagesofcarefulseeding[C]//18thACM-SIAMSymposiumonDiscreteAlgorithms,January7-9,2007,NewOrleans,Louisiana,USA.NewYork:ACMPress,2007:1027-1035.
[7] 熊贇,朱扬勇,陈志渊.大数据挖掘[M].上海:上海科学技术出版社,2016.
[8] 熊贇,朱扬勇.特异群组挖掘:框架与应用[J].大数据,2015,020.
[9]XIONGY,ZHUYY,YUPS,etal.Towardscohesiveanomalymining[C]//27thAAAIConferenceonArtificialIntelligence(AAAI),July14-18,2013,Bellevue,Washington,USA.SanFrancisco:AAAIPress,2013:984-990.
[10]XIONGY,ZHUYY.Miningpeculiaritygroupsinday-by-daybehavioraldatasets[C]//IEEEInternationalConferenceonDataMining(ICDM),December6-9,2009,Miami,Florida,USA.NewJersey:IEEEPress,2009:578-587.
[11]HINTONGE,SALAKHUDINOVRR.Reducingthedimensionalityofdatawithneuralnetworks[J].Science,2006,313(5786):504-507.
人工智能如何在大数据处理中应用
人工智能,是处理大数据最理想和最有效的方法。我们的世界一直沉浸在大数据中,你能想到的任何话题,无论在线还是离线,都有大量的数据,如我们的日常活动、对无生命事物的偏好、属性、用途等等。下面,我们就来看看人工智能是如何在大数据处理中应用的?
[[353842]]
人工智能如何在大数据处理中应用
与人类和动物表现出来的自然智能相比,人工智能是机器表现出来的智能水平。因此,它有时被称为机器智能。一旦机器建立起来,它就能有效地感知其环境并采取一些行动,从而更好地实现成功实现既定目标的机会。
机器学习的根本在于用机器能够理解的编程语言编写代码或命令。这些代码有助于奠定机器思维能力的基础,以便机器可以被编程来执行代码中定义的某些功能。这些机器还被编程为使用它们的基本代码来生成相关代码的连续序列,以便在增加工作量时提高它们思考、学习和解决问题的能力。
就像起重机是被设计用来举起人类无法举起的重物的机器一样,一些机器也被编程来进一步思考和解决人类大脑和一些软件的麻烦的分析问题。这种有助于思考和分析的机器可以追溯到算盘时代。技术已经发展到一个程度,一台机器可以使用的信息/数据的数量几乎没有限制。这就引出了大数据的话题。
顾名思义,大数据只是一组庞大、广泛、复杂或海量的特定信息,可以被计算机/机器理解和存储。从专业角度讲,大数据是一个研究各种数据集的领域,这些数据集非常复杂,传统的数据处理系统无法处理。需要设计如此大量的数据来扩展其提取和分析功能。
人工智能是处理大数据的理想和最有效的方法。正确使用这些巨大的数据储备可以为数据集所属的行业提供有价值的见解和业务分析。因此,人们已经编写了人工智能算法来从大量复杂的数据中获益。
如何应用人工智能和大数据?
解决上面这些术语的含义,接下来我们将在人工智能文章的这一部分进行回顾,回顾应用程序如何受益于人工智能算法和大数据分析之间的协同作用,例如:
自然语言处理,其中记录了数百万人类语言的样本,并将其与相应的计算机编程语言翻译联系起来。因此,计算机被编程用来帮助组织分析和处理大量的人类语言数据。
帮助农业组织和企业扩大其监测能力。人工智能可以帮助农民在整个生长阶段计算和监控他们的农产品,直到成熟。人工智能可以在薄弱环节或缺陷扩散到这片广袤土地的其他区域之前很久就发现它们。在这种情况下,人工智能使用卫星系统或无人机来查看和提取数据。银行和证券被用来监控金融市场活动。例如,美国证券交易委员会(SEC)正在使用网络分析和自然语言处理来挫败金融市场中的非法交易活动。获取高频交易的交易数据分析,进行决策交易、风险分析和预测分析。它们还用于欺诈预警、卡欺诈检测、审计记录存档和分析、公司信用报告、客户数据转换等。
通信、媒体和娱乐。人工智能功能可以用来收集、分析和利用消费者的意见。利用移动和社交媒体内容。了解如何使用实时媒体内容。该行业的公司可以同时分析其客户数据和客户行为数据,以创建详细的客户档案,这些档案将用于为不同的目标受众创建内容、推荐内容和衡量内容性能。
医疗保健提供者受益于大量的健康数据,而人工智能简化了处方和健康分析。医院正在使用数百万部手机和传感器收集的数据,允许医生使用循证医学。此外,它可以更快地识别和跟踪慢性病的传播。
在教育领域,人工智能和大数据分析出于各种目的而同步,例如跟踪和分析学生登录学校系统的时间、在系统不同页面上花费的时间以及学生随时间的总体进度。这对于衡量教师的有效性也非常有用。因此,根据学生人数、各种课程、学生愿望、学生人口统计数据、行为模式和许多其他数据,对教师的表现进行分析和衡量。
在制造业中,库存管理、生产管理、供应链分析和客户满意度技术是无缝的。因此,提高了产品质量,保证了能效,提高了可靠性水平,增加了利润率。
在自然资源领域,人工智能和大数据之间的协同作用使得预测建模成为可能。它可以快速方便地分析大规模图形数据、地理空间数据、时间数据、地震解释和储层特征。
世界各国政府都将人工智能用于各种应用,如公共面部识别、交通管理中的车辆识别、人口统计、金融分类、能源勘探、环境保护、基础设施管理、犯罪调查等。
人工智能用于大数据的其他领域包括保险、零售和批发贸易、运输、能源和公用事业。
综上所述,在大数据分析中使用人工智能的巨大投资对每个人都有好处。而数据集将继续增长,因此应用程序和投资水平将随着时间的推移不断提高。与往常一样,人类干预将继续发挥作用,尽管预计这种相关性将随着时间的推移而继续下降。
基于人工智能的图像处理技术:利用Opencv实现
基于人工智能的图像处理技术本文档基于电子科技大学软件工程学院的的一门图像处理技术课程要求所撰写,希望后来的学习学妹!!!!不要照抄!!!!!
人工智能概述人工智能,作为计算机科学的一个重要分支,它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。作为一个面向未来的新技术,值得我们好好探索。
1.1人工智能的发展与现状人工智能的发展历经了三起三落,才走向今天勃勃生气的繁盛景致。
“人工智能”(ARTIFICIALINTELLIGENCE)一词最初是在1956年DARTMOUTH学会上提出的。其核心是希望计算机可以帮助人来获取一些认知、感知和决策的难题的解决方案。这样的课题成为了全球技术圈的热点,并相继取得了一些研究成果,如机器定理证明、跳棋程序等,人工智能的序幕就此拉开。人工智能发展初期的突破性极大促进人们对人工智能的期望值,一些科学家开始尝试一些不符合实际的目标方案,陷入接二连三的失败,使得人们对人工智能的期望值大大下降。20世纪70年代开发的专家系统模拟人类专家的知识和经验解决特定领域的问题,标志人工智能实现从理论研究走向实际应用并且能够使用专业知识技术解决专门问题的突破。[1]伴随着人工智能的应用规模扩张与高速增长,专家系统也存在诸多待解决的问题,使得人工智能发展再度受限。20世纪90年代中期,乘着互联网发展的东风,加持云存储、大数据、物联网的赋能,以深度神经网络为代表的人工智能技术发展迅速,人工智能打破了技术牢笼,实现了新的跨越与爆发式增长。其发展历程可以概括为下图。
如今,人工智能遍地开花,我们可以把现状概括为——“专用人工智能取得重要突破、通用人工智能尚处于起步阶段”[2]。我们可以看到,对于专业领域上的人工智能,如“阿尔法Go“在下围棋上表现得极为出色。这类人工智能目标更清晰明确,干扰性小,边界明晰,发展也自然更迅速;而对于通用领域来讲,其还达不到完全能领会人们的指令并作出正确判断的地步,泛化领域的人工智能由于其涉足范围广,发展并不超前。
也可以看到,人工智能创新创业走向快车道——对于一些创新创造的人工智能产品,他们正在赋能升级传统行业。搭载了人工智能的融合创新产品显得更加高端智能,逐渐受到消费者喜爱与偏好。
总之,人工智能的社会影响日益显著。其在智能交通、智能家居、智能医疗等智能领域的优势凸显,发展人工智能必对人民、社会、国家产生积极正向的作用。在《工人日报》的一篇社评就写到——人工智能作为新一代产业变革的核心驱动力之一,以AI为典型代表的、基于大模型应用的技术创新和产业成果在我国全面开花,正成为人工智能发展的新趋势。[2]
但是,人工智能目前仍然存在诸多困境。首先,社会上对人工智能存在一些“炒作”,夸大其词的宣传不免让人们对人工智能的真实发展水平产生错误认识认知;同时,隐私保护、知识产权、科技伦理等诸多衍生的现实问题也需要我们一同探讨才能达成共识,找到适合的解决方案。
1.2人工智能的应用人工智能在各大行业的应用广阔。随着“互联网+万物“概念的引进和提出,人工智能正在逐步渗入我们的各行各业中。
下面将用简单的几个例子说明。
智能家居与物联网智能家居搭载人工智能,配合智能音箱等设备,可以让用户以自然语言对话的交互方式,实现影视娱乐、生活服务、对话交流、信息拆线呢等操作,并且可以通过链接已经适配的互联网家居产品语音控制家具,同时支持自定义场景达到条件自动触发,达到万物互联的目的。国内的天猫精灵、小米智能家居已经实现这类技术的广泛应用。华为正在尝试更进一步的真正的万物互联模式。
智能交通“人工智能+交通”的模式,对我们的生活也大有裨益。这类系统能够使实现自动对交通需求和流量的分析,通过全局最优解的快速计算,引导交通流量变化,快速输送用户群体到目的地。诸如人工智能控制的“绿波带”,公交车的调度系统,导航app的堵车预测等。
智能金融人工智能对金融的生态领域影响也很显著。人工智能可以根据用户的消费行为习惯个性化推荐相关金融产品,推广个性化的金融服务;也可以综合消费者的消费征信记录,自动生成判定用户的信用分。人工智能在金融的巨大价值还藏在金融安全上,例如支付宝的金融风控系统就是依照人工智能对用户的异常行为的判断,及时阻止异常的资金举动,保障用户的金融安全。
个性化推荐人工智能的个性化推荐在目前的互联网产品中运用广泛。例如世界最大的视频提供商YouTube的基于神经网络的推荐系统,可以实时根据用户的点赞、收藏等行为形成用户画像和视频标签,基于以上特性形成个性化的精准推送,满足不同人群的差异化视频需求。
人工智能的应用在智能医疗、智能教育、智能工业上也有诸多例子。可见,人工智能正在各大行业发光发热,其巨大价值正在逐步发掘。
1.3人工智能技术与分类1.3.1人工智能技术随着人工智能的发展,人工智能技术也在不断创新突破。目前人工智能的前沿和基础技术主要有以下几类:
机器学习机器学习是实现智能的基础技术,是使计算机具有智能的根本途径。这项技术可以让计算机通过模拟人的学习方式和动作,从而重新组织已经掌握的知识体系并使得其不断完善
自然语言处理这项技术可以满足人和计算机用自然语言的有效通信。其可以让人工智能具备一定的理解、反应自然语言的能力,可以让人与人工智能之间实现自然的沟通交流。能够使得人工智能更加普适化、大众化
计算机视觉计算机视觉解决的是机器“看“的一门科学技术,其利用摄像机和电脑代替人的眼睛进行识别与处理。其技术可运用在识别、捕捉、跟踪、测量、监视、检测等多项功能点上。其需要从图像这一多维数据中获取有效信息并提取处理,形成有效数据。是人脸识别技术的基础技术
人机交互人机交互是研究机器与使用者间的交互逻辑与关系的学科。用户可以由人机交互的界面进行操作,控制系统施发命令。人机交互使得人与机器之间可以使用某一种特定的交互方式,高效率地完成人和机器之间的信息交互。视频APP的点赞按键,核电站的控制台等都可以视为人机交互的平台。
生物特征识别生物特征识别可以让计算机识别人体的某个指定特征来完成对个体的身份核实和判读。例如常见的指纹识别、人脸识别就是生物识别技术的体现。多用在刑事侦查、保密、权限管理等功能点上。
除此之外,还有“语音识别“技术、”虚拟现实“技术、”决策管理“技术等,门类多而复杂,笔者在此不过多阐述
1.3.2人工智能分类目前流行的分类方法将人工智能分三类[3]:
弱人工智能(ANI)只能代替人处理某个单方面能力的工作,其本质上只是实现了某种人类具备的技能,但没有取得自主学习的认知。
强人工智能(AGI)可代替一般人完成生活中的大部分工作,包括不同领域的技术它都能掌握。其各方面都能和人类比肩,它可以思考、认识、理解问题并综合分析。具有一定的经验管理和快速学习能力。
超人工智能(ASI)在近乎大部分领域都比最聪明的人脑都具备更高的智能,可以如通人类进行自主的学习。其各项水平(包括科创、社交、决断)会远远超越人类。其也具备一定的直觉与意识。
虚拟机与Ubuntu系统的安装2.1Linux内核目前我们常用的操作系统是Windows,而Linux是有别于Windows的一款经典的操作系统内核。不同于Windows的封闭,Linux开源且免费,因而有众多开发者负责运维和维护,其安全性更加高。Linux能运行主要的UNIX工具软件、应用程序和网络协议,兼容性更强。
Linux的内核模块化细分很巧妙,它的模块化运行机制可随时由用户的需求,切换或者增删相应的模块组件,使得Linux系统内核可以被分割得非常小巧,具有高度的自由性。
Linux的核心思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。
但在桌面版发行之前,一切操作都有终端命令构成,如果不熟知Linux命令,几乎完全无法使用这个系统。
2.2Ubuntu操作系统Ubuntu是一个以桌面应用为主的构建在Linux内核之上的操作系统,其意思是“人性”“我的存在是因为大家的存在"。
与Windows从根本上不同的是,因为是搭载了Linux内核,Ubuntu操作系统具有与Linux相似的优点——免费,而且开源,其具有巨大的操作空间来修改与编辑。
而与Windows相似的是,其提供了一个可视化桌面,对于普通的、未系统接触Linux命令的人来讲,这极大的降低了学习和试错成本。
正因为其兼具两个系统独有的优势,Ubuntu操作系统广受欢迎。
2.3虚拟机在本课程中,我们使用了VMware虚拟机来软安装新的操作系统Ubuntu。
使用虚拟机相当于单独开辟了一个操作系统,它与我们本省的操作系统基本上毫无关联,两者大体上讲互不依赖,是两个独立的操作系统。
虚拟机通过软件来模拟计算机软硬件,无需分区就能在同一台计算机上使用多种的操作系统。操作系统相互独立,可以保护多个的操作系统的稳定性和安全性,他们互不侵犯。不同的操作系统之间也能相互操作,实现文件的转移,热点的共享等内容。也可以通过网卡将几个虚拟机利用网卡连接到一个局域网,十分便捷。
2.4安装过程下面来简单介绍一下虚拟机和Ubuntu操作系统的安装过程。
我们需要首先下载VMware软件(版本号16)。
安装好后,双击即进入VMwareworkstation页面,选择创建一个新的虚拟机。进入安装向导。在新的页面,选择将Ubuntu操作系统的光盘映像文件(.iso文件)导入至VMware中(即图示第二个选项),等待读取。
为虚拟机设置名称,并为其分配其合理的存储空间(默认20G)、安装位置和相关配置(包括处理器数量、内核数量、网络设置等)。
等待其安装成功后会自动回到workstation页面,双击进入虚拟机。
至此,我们的VMware配置基本结束,接下来是Ubuntu的配置。
我们双击进入Ubuntu后,会出下如下图展示的Ubuntu欢迎页面
(Ubuntu欢迎页面)
点击“installUbuntu”然后在左侧选择语言,继续,随后设置虚拟机的账号和密码,等待安装成功即可进入Ubuntu的页面。
但是当前Ubuntu的屏幕过小,我们下载VMware-tool后点击最上方的放大按钮即可调整大小。
Ubuntu的软件更新默认从国外的源更新,更新速度和下载速度较慢。我们需要在“软件更新”中设置为国内源。笔者将其更换为阿里云的源下载。
OpenCV的安装与调试3.1关于OpenCVOpenCV是一个免费且开源发行的跨平台计算机视觉与机器学习软件库,旨在为计算机视觉应用程序提供通用基础架构。其主要有C语言代码生成编写,在Linux和Windows下可以自如地运行,运行快速,方便调用。OpenCV库拥有超过2500种优化算法,可以高效的完成各项图像识别的任务。在人脸识别、运动跟踪、动作识别、物体辨识等方面由诸多应用场景。
3.2关于编程环境本课程主要运用到的编程环境为C++与Python,又因为OpenCV主要由C语言编写而成,因此使用OpenCV的主流调用语言为C++/C语言。
C++是一种计算机高级程序设计语言,由核心是C语言的升级与拓展。C++擅长面向对象程序设计,同时也可以基于过程进行程序设计。其可以直面系统底层,也打破了很多C具有的限制;而Python语言是一种利于程序员编写和阅读的高效语言,其具有独特的简洁性、可读性和可拓展性,可以大大减少代码输入量。
3.3关于make当我们需要运行一个程序时,我们首先需要编译这个程序使得其生成一个可执行文件。对于一些简单的项目,我么直接调用python编译器/g++编译器进行编译即可。但对于车牌识别这类大型工程,我们编写的大型程序往往由多个编译单元构成。因此,构建应用时,发出的编译命令可能会比较长。
为达到此目的,推荐的构建方式是使用make工具。以C++为例,我们需要编写一个CMakeList.txt文档,其包含了我们要编译的所有单元,我们要链接的库函数、头文件以及我们目标生成的运行程序等一系列参数。编译好后在终端中依次发出cmake.和make命令即可完成编译
3.4安装OpenCV首先我们在终端运行
sudoapt-getinstallbuild-essential
安装编译必须的基础程序。编译程序有了这个软件,它才知道头文件和库函数的位置。安装过程中可能出现一些安装失败,为了保证安装成功,我们执行
sudoapt-getinstallffmpeglibavcodec-devlibavformat-devlibavdevice-devlibsdl-image1.2-dev
下载这些可能未安装的必备软件。
接着安装cmake并升级:
sudoapt-getinstallcmake
sudoapt-getupdate
利用命令cmake–version查看版本,确认版本在3.0以上。
接下来,右键解压OpenCV文件夹到Ubuntu的home处,在OpenCV根目录下创建一个release文件夹,进入release文件夹后打开终端输入:
cmake-DCMAKE_BUILD_TYPE=RELEASE-DCMAKE_INSTALL_PREFIX=/usr/local-DWITH_FFMPEG=ON-DWITH_TBB=ON-DWITH_GTK=ON-DWITH_V4L=ON-DWITH_OPENGL=ON-DWITH_CUBLAS=ON-DWITH_QT=OFF-DCUDA_NVCC_FLAGS="-D_FORCE_INLINES"..
和
make-j7
sudomakeinstall
等待OpenCV的编译,完成即可
3.5测试OpenCV的安装OpenCV为我们提供了一个样例来检测我们是否正确安装了OpenCV。
我们首先进入进入opencv-3.4.8/samples/cpp/example_cmake文件夹中,可以看到OpenCV已经为我们提供了一个程序opencv_example.cpp并且已经编写好了相关CMakeList.txt文档。
我们首先需要链接摄像头:顶部点击player->可移动设备->xxxcamera->连接。即可链接摄像头(如下图)。若链接失败需要在player->虚拟机设置->USB控制器将USB兼容性调整为3.x。
随后在终端输入cmake.和make命令完成编译,随后输入./opencv_example即可打开摄像头,摄像头右上方带有HelloOpenCV字样。
车牌识别4.1车牌识别应用与技术概要4.1.1技术简述车牌识别是计算机视频图像识别技术的一种基础应用,其可以实现在运动的视频或静止的图像里面准确识别车牌,通过图像提取、车牌定位、边界处理、字符识别、输出结果等一系列复杂过程实现。常在停车场,道路收费站系统,小区车库,道路电子眼抓拍系统有着广泛的应用。
车牌识别智能车牌识别模块大体共有两个步骤——车牌图像的定位定点,以及字符的识别判读。示意图如下图所示[4]:
4.1.2“PlateLocate”的实现过程
车牌图像的定位定点步骤中其实隐藏着三个子步骤,分别是“PlateLocate”,“SVMtrain”,“Platejudge”。其中最重要的部分是第一步“PlateLocate”过程。
PlateLocate的大体识别思路如下——一个未旋转的车牌包含很多垂直边缘,若能寻找到含有诸多垂直边缘的长方形图形块,我们就可以大概判断其为车牌。
其流程如下图所示
其中,需要用到两个比较重要的计算机视觉技术——高斯模糊和灰度化。
高斯模糊技术可以大大降低图像噪声以及图像的细节层次[4],其是将图像中指定像素点(例如车牌识别就是将车牌边缘)和周围点加权平均得到的效果,越靠近指定的中心点那么其与核心主体关系更加紧密,我们就可以设置更大的权重值
如下图所示:
。
公式为
此外,由于计算机的功能限制,彩色的图像图块比纯灰度处理的图像更加难以应付,使用灰度处理技术可以提高算法的运行速度。
我们使用Soble算子检测图像中的垂直边缘,以区分车牌。这种基于边缘特征定位的方法核心是获得数字图像的一阶梯度,把图像中每个像素的上下左右四领域的灰度值加权差,边缘处的加权差将会达到极值,从而我们检测到了边缘。[4]我们可以分别计算二维图像和方向的梯度与,利用公式:计算偏离角度,若那么我们可以认为此处为竖直边界。
此后通过二值化(对图像的每个像素做一个阈值处理)以及闭操作(将车牌字母连接成为一个连通域,便于取轮廓)即可取出车牌的轮廓。再进行角度修正、大小统一,即可得到一张标准的车牌图块。
4.1.3“SVMtrain”训练过程SVM训练类似于人工智能的机器学习,其利用标签这一属性,将明确的车牌图块定义标签,非车牌图块定义另一个标签,机器经过不断的对不同标签的图块的学习,以达到判断图块是否为真正车牌图块的功能(Platejudge)。[5]
其完整训练过程如下:
我们首先将可能含车牌的大量图片传递给机器,并为其打上标签,哪些有车牌而哪些无车牌贴上标签,机器对这些图片的相似点不同点进行分析判断,生成车牌模型。再利用Fscore指标进行评价。对于评价体系,我们需要两个指标——“准确率”(precision)和“查全率”(recall)。设置的相关公式如下:
4.1.4字符识别实现过程车牌的样式和编码规则相对固定,我们只需要由取轮廓分割法分割出七个单独的字符块(新能源八个)。且第一个字符永远是省份简称的中文,其他为数字或字母,且字母中没有I与O,减少了识别错误。
字符识别的分块首先仍然需要灰度化、二值化操作,前文已叙述。
类似于SVMtrain的过程,字符识别也需要机器训练,这里采用基于模板的训练方法(ANNtrain):首先,我们向机器输送一定量的字符模板,进行训练。随后在程序实际识别中,机器会根据公式来依次判断七个字符的每个字符与某一模板的相似度(公式中S代表相似值,I待测数据,T为模板),综合相似度大小即可完成字符的判断。
4.2车牌识别工程实现在本项目中,我们采用EasyPR库来辅助完成,其提供了大量已经训练好的车牌定位与字符识别数据,我们只需要调用其库函数识别即可。
我们只需要解压EasyPR的压缩包到home目录,在其根目录下打开终端依次输入cdEasyPR-master
./build.sh
EasyPR即安装成功。(如图为安装成功的界面)
在EasyPR提供的根目录中,提供了CMakeList.txt文档,其指向测试程序demo。我们可以借助这个文档加以改编形成自己的make文档。
如下图所示:
我们只需要将CMakeList.txt中的test/main.cpp改为自己的程序代码(比如我的是car/test.cpp)路径,工程名修改为自己的工程名。这样cmake就会编译我们的车牌识别程序并链接上EasyPR相关库函数,生成可执行文件。
以下以识别五个车牌的图片的代码为例,进行相关代码展示。
#include#include#include#includeusingnamespacestd;usingnamespaceeasypr;intmain(){ easypr::CPlateRecognizepr; pr.setResultShow(false); pr.setDetectType(easypr::PR_DETECT_CMSER); pr.setLifemode(true); //启用生活模式,以增大识别范围 pr.setResultShow(false); pr.setMaxPlates(5); //最大车牌识别量 vectorplateVec; Matsrc=imread("/home/jjq1/EasyPR-master/car/5cars.jpg"); //图片的地址 intresult=pr.plateRecognize(src,plateVec); if(result==0) { inttotal=plateVec.size(); std::cout