购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第1章
绪论

如同蒸汽时代的蒸汽机、电气时代的电机、信息时代的计算机和互联网,人工智能(Artif icial Intelligence,AI)正成为推动人类进入智能时代的决定性力量。全球产业界充分认识到人工智能技术引领新一轮产业变革的重大意义,纷纷转型发展,抢滩布局人工智能创新生态。世界主要发达国家均把发展人工智能作为提升国家竞争力、维护国家安全的重大战略,力图在国际科技竞争中掌握主导权。习近平总书记在十九届中央政治局第九次集体学习时深刻指出,加快发展新一代人工智能是事关我国能否抓住新一轮科技革命和产业变革机遇的战略问题。

人工智能赋能新时代对于人们的生活将产生重大改变,而汽车行业被广泛认为将最先引发AI技术的巨大变革。人工智能技术可以使汽车实现智能驾驶功能。通过利用传感器、计算机视觉、机器学习和深度学习等技术,汽车可以感知和理解周围环境,做出相应的决策和控制。智能驾驶可以提高行车安全性、减少驾驶压力,并改善交通效率。人工智能技术还可以通过分析交通数据、道路状况和驾驶习惯,提供智能导航和路径规划。它可以根据实时交通情况选择最佳路线,并提供实时导航指引,帮助驾驶人避开拥堵路段,节省时间和燃料消耗。

人工智能发展包含四个要求,即知识、数据、算法和算力(计算能力),汽车智能驾驶的实现离不开人工智能的赋能,而人工智能算法需要依靠计算机语言来实现。本章主要简单介绍人工智能技术和智能汽车技术的发展及基本概念,以及Python编程语言特点及开发环境。

1.1 人工智能的发展及基本概念

1.1.1 人工智能的起源与发展

人类对人工智能和智能机器的梦想与追求,可以追溯到3000多年前,中国也不乏这方面的故事与史料。在我国西周时代(公元前1066—前771年),就流传着巧匠偃师献给周穆王一个歌舞艺伎的故事。在公元前2世纪出现的书籍中,描写过一个类似机器人角色的机械化剧院,这些人造角色能够在宫廷仪式上进行舞蹈和列队表演,我国东汉时期(公元25—220年),张衡发明的指南车是世界上最早的机器人雏形。可以说,人类在追梦智能机器和人工智能的道路上经历了万千遐想,创造了无数的实践成果。

跨越到20世纪三四十年代,智能界发生了两件极其重要的事件:数理逻辑的形式化和智能可计算(机器能思维)的思想,建立了计算与智能关系的概念。被称为“人工智能之父”(The father of AI)的图灵(Turing AM)于1936年创立了自动机理论,提出一个理论计算机模型,奠定了电子计算机设计基础,促进了人工智能特别是思维机器的研究。1950年图灵的论文“机器能思考吗?”,为人工智能提供了科学性和开创性的构思。可以说,人工智能开拓者在数理逻辑、计算本质、控制论、信息论、自动机理论、神经网络模型和电子计算机等方面做出的创造性贡献,奠定了人工智能发展的理论基础,孕育了人工智能技术。

人工智能探索道路并不是一帆风顺的,而是曲折起伏的,经历了计算驱动、知识驱动和数据驱动三次浪潮 ,如图1.1所示。

图1.1 人工智能三次浪潮

1.计算驱动时期(1956年—20世纪70年代初期)

(1)达特茅斯会议

1956年夏季,由麦卡锡(Mc Carthy J)、明斯基(Minsky ML)、罗彻斯特(Lochester N)和香农(Shannon CE)共同发起,并邀请其他6位年轻的科学家,在美国达特茅斯(Dartmouth)大学举办了一次长达两个月的10人研讨会,讨论用机器模拟人类智能问题,首次使用了“人工智能”这一术语,标志着人工智能学科的诞生。这是人类历史上第一次人工智能研讨会,标志着国际人工智能学科的诞生,具有十分重要的历史意义。发起这次研讨会的人工智能学者麦卡锡和明斯基,则被誉为国际人工智能的“奠基者”或“创始人”(The founding father),有时也被称为“人工智能之父”。

(2)计算驱动的人工智能基本思想

达特茅斯会议之后,人工智能迎来了它的一次春天,诞生了第一个由麻省理工学院编写的聊天程序——ELIZA。它能够根据设计的规则,对用户的问题进行模式匹配,从预先编写好的答案库中选择合适的答案。1959年,塞缪尔的跳棋程序能对所有可能跳法进行搜索以指导最佳路径,这掀起了人工智能发展的第一个高潮。

(3)走入低谷

人工智能发展初期创造了各种软件程序和硬件机器人,突破性进展大大提升了人们对人工智能的期望,开始尝试一些更有挑战性的任务,并提出了一些不切实际的目标。但这个时期创造的产品看起来都只是“玩具”,远不能实现实际的工业应用。很多难题理论上可以解决,看上去只是少量的规则,但计算量却是惊人的。实际上由于当时计算机能力有限,很多问题根本无法解决,接二连三的失败和预期目标的落空(例如机器翻译闹出笑话等),使得计算驱动的人工智能陷入低谷。

2.知识驱动时期(20世纪70年代初期—90年代中期)

20世纪70年代出现的专家系统模拟人类专家的知识和经验解决特定领域的问题,实现了人工智能从理论研究走向实际应用、从一般推理策略探讨转向运用专门知识的重大突破。专家系统在医疗、化学、地质等领域取得成功,推动人工智能走入应用发展的新高潮。

随着人工智能的应用规模不断扩大,专家系统存在的应用领域狭窄、缺乏常识性知识、知识获取困难、推理方法单一、缺乏分布式功能、难以与现有数据库兼容等问题逐渐暴露出来。曾经一度被非常看好的神经网络技术,由于过分依赖于计算机和经验数据量,因此长期没有取得实质性的进展,人工智能又一次陷入低谷。

3.数据驱动时期(20世纪90年代中期至今)

网络技术尤其是互联网技术的迅速发展,极大地推动了人工智能领域的创新研究,并有力地促进了其实用化进程。1997年,国际商业机器公司(IBM)研发的深蓝超级计算机在国际象棋对决中击败了世界冠军卡斯帕罗夫,这一里程碑事件标志着人工智能技术的重大突破。随后在2008年,IBM提出了“智慧地球”这一前瞻性的概念,进一步凸显了信息技术对全球发展的深远影响。

随着大数据、云计算、互联网及物联网等信息技术日臻成熟和完善,神经网络逐渐成为当今人工智能技术研发的核心驱动力。特别是在2006年,Hinton发表了“Learning Mul-tiple Layers of Representation”这篇开创性论文,构建了全新的神经网络架构,奠定了深度学习在人工智能领域内的核心技术地位,他也因此被誉为“深度学习之父”。得益于泛在感知数据和图形处理器等先进计算平台的强力支撑,以深度神经网络为代表的人工智能技术实现了飞跃式进步,成功跨越了科学理论与实际应用之间的鸿沟。例如,在图像分类、语音识别、知识问答、人机博弈以及无人驾驶等领域取得了重大技术突破。尤其是在2016年和2017年,谷歌推出的AlphaGo人工智能围棋程序连续战胜了世界围棋冠军李世石和柯洁,引发了全球范围内对人工智能爆发式增长的关注热潮。

时至今日,诸如ChatGPT、文心一言等大规模预训练模型的提出与广泛应用,更是将人工智能的发展推向了一个前所未有的巅峰。

历经60余年的发展历程,人工智能已在算法设计、算力提升(计算能力)以及数据资源(算料)这三大核心要素上取得重大突破,正处于从“难以使用”向“切实可用”的关键技术拐点。然而,要真正实现“便捷高效且普遍适用的人工智能”,尚需克服诸多技术瓶颈和挑战。

1.1.2 中国人工智能技术的发展

与国际上人工智能的发展情况相比,我国的人工智能研究不仅起步较晚,而且发展道路曲折坎坷,历经了质疑、批评甚至打压的十分艰难的发展历程,直到改革开放之后,中国的人工智能才逐渐走上发展之路,如图1.2所示。中国的人工智能发展到今天,主要经历了曲折认识、艰难起步、迎来曙光、快速发展和国家战略五个阶段。

图1.2 中国人工智能发展史

1.曲折认识

20世纪50—60年代,人工智能在西方国家得到重视和发展,但那时我国几乎没有人工智能研究,人工智能在中国要么受到质疑,要么与“特异功能”一起受到批判,被认为是伪科学和修正主义。主要原因是受到苏联批判人工智能和控制论的影响,苏联将人工智能斥为“资产阶级的反动伪科学”。20世纪60年代后期和70年代,虽然苏联解禁了控制论和人工智能的研究,但因中苏关系恶化,中国学术界将苏联的这种解禁斥之为“修正主义”,人工智能研究继续停滞。

1978年3月,全国科学大会在北京召开。邓小平发表了“科学技术是生产力”的重要讲话。大会提出了“向科学技术现代化进军”的战略决策,打开了解放思想的先河,促进了中国科学事业的发展。这是中国改革开放的先声,广大科技人员出现了思想大解放,人工智能也在酝酿着进一步的解禁。吴文俊提出的利用机器证明与发现几何定理的新方法——几何定理机器证明,获得1978年全国科学大会重大科技成果奖就是一个好的征兆。20世纪80年代初期,钱学森等主张开展人工智能研究,中国的人工智能研究进一步活跃起来。但是,由于当时社会上把“人工智能”与“特异功能”混为一谈,把两者一并斥之为“伪科学”,使中国人工智能走过一段很长的弯路。

2.艰难起步

20世纪70年代末至80年代,知识工程和专家系统在欧美发达国家得到迅速发展,并取得重大的经济效益。当时我国相关研究处于艰难起步阶段,一些基础性的工作得以开展,包括选派留学生出国研究人工智能、成立人工智能学会和开始人工智能的相关项目研究。

改革开放后,自1980年起中国大批派遣留学生赴西方发达国家研究现代科技,学习科技新成果,其中包括人工智能和模式识别等学科领域。这些人工智能“海归”专家,已成为中国人工智能研究与开发应用的学术带头人和中坚力量,为发展中国人工智能做出了举足轻重的贡献。1981年9月,中国人工智能学会(CAAI)在长沙成立,于光远在大会期间主持了一次大型座谈会,讨论有关人工智能的一些认识问题。他指出:“人工智能是一门新兴的科学,我们应该积极支持”。

20世纪70年代末—80年代前期,一些人工智能相关项目已被纳入国家科研计划,在1978年召开的中国自动化学会年会上,报告了光学文字识别系统、手写体数字识别、生物控制论和模糊集合等研究成果,表明中国人工智能在生物控制和模式识别等方向的研究已开始起步。又如,1978年把“智能模拟”纳入国家研究计划。不过,当时还未能直接提到“人工智能”研究,说明中国的人工智能禁区有待进一步打开。

3.迎来曙光

1984年1月和2月,邓小平分别在深圳和上海观看儿童与计算机下棋时,指示“计算机普及要从娃娃抓起”,此后,中国人工智能研究开始走上正常的发展道路。国防科工委于1984年召开了全国智能计算机及其系统学术讨论会,1985年又召开了全国首届第五代计算机学术研讨会,1986年起把智能计算机系统、智能机器人和智能信息处理等重大项目列入国家高技术研究发展计划(863计划)。1986年,国内首部人工智能专著《人工智能及其应用》出版;1987年,《模式识别与人工智能》杂志顺利创刊,1988年,《机器人学》著作出版;1990年,《智能控制》著作出版;1993年,智能控制和智能自动化等项目被列入国家科技计划攀登项目。

4.快速发展

进入21世纪后,更多的人工智能与智能系统研究课题获得国家自然科学基金重点和重大项目、863计划和国家重点基础研究发展计划(973计划)项目、科技部科技攻关项目、工信部重大项目等各种国家基金计划支持,并与中国国民经济和科技发展的重大需求相结合,力求为国家做出更大贡献。这方面的研究项目很多,代表性的研究有视觉与听觉的认知计算、面向Agent的智能计算机系统、中文智能搜索引擎关键技术、智能化农业专家系统、虹膜识别、语音识别、人工心理与人工情感、基于仿人机器人的人机交互与合作、工程建设中的智能辅助决策系统、未知环境中移动机器人导航与控制等。

2009年,中国人工智能学会牵头组织,向国家学位委员会和国家教育部提出设置“智能科学与技术”学位授权一级学科的建议。这个建议凝聚了中国广大人工智能教育工作者的心智心血和远见卓识,对中国人工智能学科建设具有十分深远的意义。

5.国家战略

2014年6月9日,习近平总书记在中国科学院第十七次院士大会、中国工程院第十二次院士大会开幕式上发表重要讲话强调:“由于大数据、云计算、移动互联网等新一代信息技术同机器人技术相互融合步伐加快,3D打印、人工智能迅猛发展,制造机器人的软硬件技术日趋成熟,成本不断降低,性能不断提升,军用无人机、自动驾驶汽车、家政服务机器人已经成为现实,有的人工智能机器人已具有相当程度的自主思维和学习能力。”这是党和国家最高领导人首次对人工智能和相关智能技术的高度评价,是对开展人工智能和智能机器人技术开发的庄严号召和大力推动。

2015年5月,国务院发布《中国制造2025》部署全面推进实施制造强国战略。围绕实现制造强国的战略目标,《中国制造2025》明确了9项战略任务和重点。这些战略任务,无论是提高创新能力、信息化与工业化深度融合、强化工业基础能力、加强质量品牌建设,还是推动重点领域突破发展、全面推行绿色制造、推进制造业结构调整、提高制造业国际化发展水平,都离不开人工智能的参与,都与人工智能的发展密切相关。

2016年4月,工业和信息化部、国家发展改革委、财政部三部委联合印发了《机器人产业发展规划(2016—2020年)》,为“十三五”期间中国机器人产业发展描绘了清晰的蓝图。人工智能是智能机器人产业发展的关键核心技术,规划提出的大部分任务,如智能生产、智能物流、智能工业机器人、人机协作机器人、消防救援机器人、手术机器人、智能型公共服务机器人、智能护理机器人等,都需要采用各种人工智能技术。

2016年5月,国家发展改革委和科技部等4部门联合印发《“互联网+”人工智能三年行动实施方案》,明确未来3年智能产业的发展重点与具体扶持项目,进一步体现出人工智能已被提升至国家战略高度。

2017年7月,国务院印发《新一代人工智能发展规划》,旨在抓住人工智能发展的重大战略机遇,构筑我国人工智能发展的先发优势,加快建设创新型国家和世界科技强国;2018年4月,教育部印发《高等学校人工智能创新行动计划》,旨在提升高校人工智能领域科技创新、人才培养和服务国家需求的能力。

近年来,在《新一代人工智能发展规划》指引下,科技部成立人工智能规划推进办公室、战略咨询委员会和人工智能治理专业委员会,也相继制定了《新一代人工智能治理原则》和《伦理规范》,针对基于人工智能技术应用的ChatGPT在海内外引发广泛关注,启动人工智能重大科技项目,确定了以“基础软硬件”为主体、以“基础理论”和“创新应用”为两翼的“一体两翼”研发布局,从推动人工智能与经济社会深度融合、全方位推动人工智能开放合作等四个方面推进研发和应用。我国在《“十三五”国家科技创新规划》中,面向2030年,确定了15个重大项目的立项建议,涉及航空、网络安全、智能电网、智能制造和机器人等多个高新领域,酝酿“人工智能2.0”推动中国高新技术发展及产业化水平。

党的二十大报告中强调要构建新一代信息技术、人工智能等一批新的增长引擎,这为我国新一代信息技术产业发展指明了方向。新一代信息技术高速发展,不仅为我国加快推进制造强国、网络强国和数字中国、交通强国建设提供了坚实有力的支撑,而且将促进各行业转型升级,成为推动我国经济高质量发展的新动能。

这些重大国家战略决策的发布与实施,体现了中国已把人工智能技术提升到国家发展战略的高度,对发展中国人工智能给予高屋建瓴的指示与支持,为人工智能的发展创造了前所未有的优良环境,也赋予人工智能艰巨而光荣的历史使命。

1.1.3 人工智能的基本概念

人工智能是研究开发能够模拟、延伸和扩展人类智能的理论、方法、技术、应用等的一门新技术科学,其研究目的是促使智能机器会听(语音识别、机器翻译等)、会看(图像识别、文字识别等)、会说(语音合成、人机对话等)、会思考(人机对弈、定理证明等)、会学习(机器学习、知识表示等)、会行动(机器人、自动驾驶汽车等)。

1.人工智能的定义

人工智能是一门前沿的交叉学科,像许多新兴学科一样,人工智能至今尚无统一的定义。斯坦福大学Nilsson教授提出,人工智能是关于知识的科学,包括知识的表示、知识的获取、知识的应用,需要从学科和功能两方面来定义。

(1)从学科角度定义

人工智能是计算机学科中涉及研究、设计和应用智能机器的一个分支,它的近期主要目标在于研究机器模仿和执行人脑的某些智能功能,并开发相关的理论和技术。

(2)从功能角度定义

人工智能是智能机器所执行的与人类智能有关的功能,如判断、推理、证明、识别、感知、理解、设计、思考、规划、学习和问题求解等思维活动。

也有一种定义是将人工智能分为两部分,即“人工”和“智能”,用“四会”进行界定,人工智能=会运动+会看懂+会听懂+会思考。这里的“人”指的是“机器人”,“人工”指的是需要机器人做工,而这种做工必然会导致某些物件或者事情发生变化;“智能部分”认为机器人和人类一样能智慧地处理各种运动,也就是说能具有意识自发地来决策并执行,不需要人类去干预。

随着深度学习技术的发展,人工智能发展到不仅指机器像人类一样具备感知、理解和推理能力,而且能够生成新的知识、思想和创意,能够进行创造性思维和创新性的工作,也就是具有感知、认知、决策和行动的能力。

2.人工智能的主流学派

目前, 人工智能的主流学派有三大流派,分别是符号主义、连接主义和行为主义 。这三大学派各有优势和局限,存在相互影响和借鉴的地方,但它们也有明显的区别和对立。

1)符号主义学派,人工智能的早期学派,又称为逻辑主义、心理学派或计算机学派,其原理主要为物理符号系统假设和有限合理性原理。符号主义认为人的认知基元是符号,而认知过程即符号操作过程。符号主义认为人是一个物理符号系统,计算机也是一个物理符号系统,因此我们能用计算机的符号操作来模拟人的认知过程。它的研究重点是如何用符号来表示和处理知识,以及如何进行推理和决策。

符号主义学派的代表性算法有专家系统和推理机。符号主义的应用案例有启发式程序、专家系统和知识工程。启发式程序是一种基于问题求解的智能程序,可以根据问题的特点和当前状态,选择合适的策略和方法,寻找最优或近似最优的解决方案。例如,数独程序、国际象棋程序等。专家系统是一种基于知识表示和推理的智能程序,可以模拟人类专家在某一领域回答或解决问题的过程。例如,医疗诊断系统、法律咨询系统、金融分析系统等。知识工程是一种基于知识获取、表示、存储、管理和利用的智能技术,可以帮助人类构建和维护知识库,提高知识的质量和效率。例如,百度百科、维基百科等。

2)连接主义学派,又称仿生学派或生理学派,是一种基于神经网络和网络间的连接机制与学习算法的智能模拟方法。连接主义认为人的思维基元是神经元,而不是符号处理过程,既然生物智能是由神经网络产生的,那就通过人工方式构造神经网络,再训练人工神经网络产生智能。连接主义强调智能活动是由大量简单单元通过复杂连接后并行运行的结果。

连接主义的代表性成果有感知器、反向传播网络、卷积神经网络等。感知器是一种最简单的人工神经网络模型,可以实现对输入信号的线性分类,例如手写数字识别、逻辑门实现等;反向传播网络是一种多层前馈神经网络模型,可以通过反向传播算法调整网络权重,实现对输入信号的非线性映射,例如图像分类、语音识别、自然语言处理等;卷积神经网络是一种特殊的反向传播网络模型,可以通过卷积层、池化层和全连接层提取输入信号的特征,并进行分类或回归,例如人脸识别、目标检测、图像生成等。

3)行为主义学派,又称进化主义或控制论学派,是一种基于“感知-行动”的行为智能模拟方法。行为主义认为智能取决于感知和行为,取决于对外界复杂环境的适应,而不是表示和推理。生物智能是自然进化的产物,生物通过与环境及其他生物之间的相互作用,从而发展出越来越强的智能,人工智能也可以沿这个途径发展。行为主义对传统人工智能进行了批评和否定,提出了无知识表示和无推理的智能行为观点。行为主义的代表性成果有六足行走机器人、波士顿动力机器人等。

符号主义、连接主义和行为主义从不同的角度智能地探索大自然,与人脑思维模型有着密切关系。符号主义学派研究抽象思维,连接主义学派研究形象思维,而行为主义学派研究感知思维,他们各有各的特点,三大学派在理论方法与技术路线等方面的争论一直没有停止过。在理论方法上,符号主义着重于功能模拟,提倡用计算机模拟人类认知系统所具备的功能和机能;连接主义着重于结构模拟,通过模拟人的生理网络来实现智能;行为主义着重于行为模拟,依赖感知和行为实现智能。在技术路线方面,符号主义依赖于软件路线,通过启发性程序设计,实现知识工程和各种智能算法;连接主义依赖于硬件设计,如脑模型、智能机器人等;行为主义利用一些相对独立的功能单元,组成分层异步分布式网络,为机器人的研究开创新的方法。人工智能界普遍认为,符号主义、连接主义和行为主义三大学派将长期共存,未来的发展将立足于各学派之间求同存异、相互融合。

本书主要介绍目前主流的深度学习方法,深度学习是深层的神经网络方法,属于机器学习方法中的一种。通过对本书的学习,学会采用Python语言和百度飞桨深度学习框架(Paddle Paddle),从零基础开始搭建深度学习模型,实现智能汽车的自动巡航、目标识别等。

1.2 智能汽车及全国大学生智能汽车竞赛

1.2.1 智能汽车技术概述

智能汽车是一个集环境感知、规划决策、多等级辅助驾驶等功能于一体的综合系统,它集中运用了计算机、现代传感、信息融合、通信、人工智能及自动控制等技术,是典型的高新技术综合体。对智能汽车的研究主要致力于提高汽车的安全性、舒适性。近年来,智能汽车已经成为世界汽车工程领域研究的热点和汽车工业增长的新动力。

智能汽车的实现依赖于多种关键技术,这些技术共同构成了智能汽车系统的基础。以下是智能汽车的一些关键技术:

1)传感器技术:包括激光雷达、摄像头、超声波传感器等,用于感知车辆周围环境。传感器可以获取道路信息、交通标志、行人、障碍物等数据,为车辆做出智能决策提供关键信息。

2)自动驾驶技术:自动驾驶是智能汽车的核心技术,它基于传感器数据实现车辆的自主导航和驾驶。自动驾驶技术包括路径规划、环境感知、决策和控制等模块,确保车辆在各种情况下安全行驶。

3)人工智能和机器学习:人工智能技术在智能汽车中起着至关重要的作用。机器学习用于训练模型,从数据中学习和改进决策能力,使智能汽车能够适应不同的交通环境和路况。

4)高精度地图和定位技术:高精度地图是智能汽车导航的基础,它提供了道路几何、标志和交通信号等的详细信息。定位技术如全球定位系统(GPS)、惯性导航等则确保车辆在地图上的准确定位。

5)通信技术:智能汽车需要与其他车辆、交通基础设施和云端服务进行实时通信,从而获取最新的交通信息和路况,并实现车辆之间的协同行驶。

6)人机交互技术:智能汽车需要与驾驶人和乘客进行交互,使得操控更加简单化、智能化和个性化。人机交互技术包括语音识别、手势控制、人脸识别等。

7)数据安全和隐私保护:智能汽车能处理大量的数据,其中包括个人信息。因此,车辆系统的数据安全和隐私保护至关重要,防止数据泄漏和滥用。

8)软件和系统集成:智能汽车是一个复杂的系统,需要多个软件模块的协同工作,软件和系统集成技术确保各个模块的正确运行和高效合作。

这些技术共同构成了智能汽车的关键技术基础,随着科技的不断进步和应用的推进,智能汽车将为交通出行带来革命性的变革。

1.2.2 全国大学生智能汽车竞赛简介

全国大学生智能汽车竞赛是一个由教育部、科技部等部门共同支持举办的竞赛活动,旨在促进大学生对智能汽车技术学习和创新能力的提升。该竞赛通常包括以下几个方面。

1)智能汽车设计与制作:参赛队伍需要设计和制作一辆能够自主驾驶、具备感知和决策能力的智能汽车,涉及机械结构设计、传感器选择和布置、算法开发等方面的技术挑战。

2)感知与决策算法:参赛队伍需要开发智能汽车的感知和决策算法,使其能够准确地感知周围环境、理解交通规则和场景,并做出安全、高效的驾驶决策。这涉及计算机视觉、机器学习、路径规划等领域的知识和技术。

3)驾驶性能测试:参赛队伍的智能汽车需要经过一系列驾驶性能测试,例如道路行驶、避障、停车等任务,评委会根据智能汽车的驾驶表现和性能指标进行评估和排名。

4)创新应用和实践:除了基本的智能汽车设计和制作,参赛队伍还可以展示自己的创新应用和实践成果。这包括使用车联网技术与其他车辆或基础设施进行通信、实现智能交通管理等方面的创新。

全国大学生智能汽车竞赛为大学生提供了一个锻炼实践能力和创新能力的平台,激发学生对智能汽车技术的兴趣和热情。此外,该竞赛也促进了智能汽车技术的研发和应用,推动了中国智能交通领域的发展。

全国大学生智能汽车竞赛百度智慧交通创意组是全国大学生智能汽车竞赛中的一个子赛项,已连续举办多年。该赛项旨在鼓励大学生在智能交通领域的创新和创意,竞赛内容更多侧重于深度学习技术的创新应用,场景化地设计了基于深度学习的智能车趣味赛题。图1.3是2023年竞赛用车模,图1.4是2023年竞赛用场景。2023年竞赛的主题要求参赛学生在“长江之歌”主题的故事线中,使用飞桨PaddlePaddle和EdgeBoard完成特定场景的自动驾驶任务及系列自动化操作,这些任务的核心内容是深度学习模型的设计与部署,包括自动巡航的回归预测任务和目标检测任务,要求使用的深度学习框架是百度的PaddlePaddle,深度学习模型的创建用Python语言。通过学习本书,学生就能够从零基础开始学习Python语言编程、Python数据分析、利用Python和飞桨PaddlePaddle搭建深度学习模型,完成竞赛各项任务。

图1.3 全国大学生智能汽车竞赛百度智慧交通创意组2023年车模

图1.4 全国大学生智能汽车竞赛百度智慧交通创意组2023年竞赛场景

1.3 程序设计语言及Python语言简介

程序设计语言是用于编写计算机程序的一套规则和符号体系。它们定义了程序的结构、语法和语义,允许开发人员以一种可被计算机理解的方式表达算法和逻辑。根据程序设计语言的抽象级别,可以将程序设计语言分为低级语言和高级语言。按照编程范式或编程方法论,可以将程序设计语言分为结构化语言和面向对象语言。编程范式是一种组织和设计代码的方式,它定义了编程语言中的基本概念、原则和规范。

1.3.1 低级语言和高级语言

1.低级语言

低级语言直接与计算机硬件交互,更接近计算机的底层操作,它们提供了对计算机底层操作的直接控制。低级语言可以进一步分为机器语言和汇编语言。

(1)机器语言

机器语言是计算机能够直接执行的二进制指令代码,是计算机硬件可以直接识别和执行的程序设计语言。它使用二进制数字表示不同的操作和数据,例如:执行数字2和3的加法,16位计算机上的机器指令为:11010010 00111011,不同计算机结构的机器指令会有所不同。机器语言允许程序员直接控制计算机硬件资源,对应于计算机处理器的底层指令集,如处理器、内存和输入/输出设备。程序员可以直接操作内存地址、寄存器和设备控制器等底层细节。机器语言的语法和指令集是与特定的计算机架构相关的,不同的计算机架构有不同的指令集和操作码,因此机器语言程序在不同的计算机上可移植性差。机器语言的语法和指令集对于程序员来说可能比较晦涩和难以理解,这使得它的可读性和可维护性差。

(2)汇编语言

汇编语言是机器语言的一种文本表示形式,使用助记符代表机器指令和内存地址,助记符通常是人类可读的英文单词或简写,与具体的机器指令一一对应。例如:执行数字2和3的加法,汇编语言代码为:add 2, 3, result,运算结果写入result。与机器语言一样,汇编语言是直接与计算机硬件交互的语言,它的语法和指令集是与特定计算机架构相关的。不同的计算机架构有不同的指令集和寄存器,因此汇编语言程序在不同的架构上可能不可移植。汇编语言需要程序员具备对底层硬件的深入了解和编程技巧,对于初学者来说,理解和编写汇编语言代码可能是一项挑战。

2.高级语言

高级语言是相对于低级语言的概念,它更接近自然语言,结合了数学表达式和英语符号,更容易地描述计算问题并利用计算机解决计算问题。例如:执行数字2和3加法的高级语言代码为:result=2+3。高级语言通过使用抽象层和更易读的语法,使程序员能够更方便地编写和理解代码。

高级语言不能直接被计算机执行,它在计算机上的执行需要依赖编译器或解释器来进行翻译和执行。这些工具将高级语言转换为计算机能够理解和执行的形式,以实现相应的功能和逻辑。也就是说,高级语言需要通过编译执行或解释执行。

(1)编译执行

高级语言的代码首先通过编译器将其转换为目标平台的机器语言,生成可执行的机器代码文件,这个过程只需要进行一次。然后,这些机器代码可以直接在目标平台上执行。由于代码已经被转换为机器语言,编译执行通常比解释执行更高效,但由于生成的机器代码与特定的目标平台相关,可执行文件在不同平台上需要重新编译才能运行。常见的编译执行语言包括C、C++、Java等。编译执行语言属于静态语言,在静态语言中,变量的数据类型通常在编译阶段就确定,并且在程序执行过程中保持不变。在静态语言中,程序员需要显式地声明变量的类型,并且变量在声明时必须具有确定的类型。

(2)解释执行

高级语言的代码逐行被解释器读取和执行。解释器将源代码逐行翻译成机器语言或字节码,并立即执行翻译得到的代码。每执行一行代码,解释器都会解释并执行下一行。由于解释器将代码直接翻译为目标平台的指令,解释执行通常具有较好的跨平台性,但解释执行的速度通常较慢,因为每次执行代码都需要解释器进行解释和转换。常见的解释执行语言包括Python、JavaScript和Ruby等。解释语言通常被称为脚本语言,用于编写脚本程序。脚本语言通常使用动态类型,变量的类型在运行时可以根据上下文进行推断和更改。脚本语言的特点是具有简洁的语法和灵活的动态特性,适合用于自动化、批处理和快速开发等任务。

现实中很多高级语言的执行方式不是绝对的,而是综合使用了解释执行和编译执行的混合模式。例如,Python解释器在运行代码时会将其转换为中间形式的字节码,并使用解释器执行字节码。这种方式结合了解释执行的灵活性和编译执行的性能优势。

1.3.2 结构化语言和面向对象语言

结构化语言和面向对象语言是两种常见的编程范式,它们在代码组织和设计上有所不同。这两种编程范式都有自己的特点和优势,适用于不同的应用场景和开发需求。结构化语言适用于较小规模的程序开发和底层系统编程,而面向对象语言更适合于大型软件系统和面向对象设计的应用领域。

1)结构化语言是以结构化编程为基础的一种编程范式。结构化编程强调使用顺序、选择和循环等结构来组织代码,以实现清晰、可读性强的程序。结构化语言通过顺序结构、条件语句和循环语句等实现程序逻辑的控制。C语言是一种典型的结构化语言。

2)面向对象语言是以面向对象编程(OOP)为基础的一种编程范式。面向对象编程将程序组织为对象的集合,每个对象都具有数据和对数据操作的方法。面向对象编程通过封装、继承和多态等机制来组织和设计代码,以实现代码的重用。

1.3.3 Python语言特点

Python是一种高级、通用且解释型的编程语言,于1991年由Guido van Rossum创建。Python具有简洁明确的语法和强大的功能,被广泛应用于各种领域,包括Web开发、数据分析、人工智能、科学计算和自动化等。Python语言的一些特点和优势如下:

1)简洁易读:Python语法简洁明确,采用缩进来表示代码块,提供了清晰、可读性强的代码结构。这使得初学者能够快速上手,并且提高了代码的可读性和可维护性。

2)高级特性:Python支持面向对象编程(OOP)和函数式编程,具有封装、继承、多态等面向对象特性,以及匿名函数、高阶函数、生成器等函数式编程特性。

3)广泛的库和框架支持:Python拥有丰富的第三方库和框架,如numpy、pandas、django、flask等,可以快速开发各种应用和解决复杂的问题。

4)跨平台性:Python是跨平台的,可以在多个操作系统上运行,包括Windows、macOS和Linux等。

5)强大的生态系统:Python拥有活跃的开源社区,提供了大量的资源、教程和文档,可以方便地获取支持和解决问题。

6)快速开发和迭代:Python的开发效率较高,能够快速迭代和构建原型。它提供了交互式解释器和调试工具,便于开发和调试代码。

由于Python具有易学易用、强大的组合数据类型、开放包容等功能,使得Python成为一门受欢迎的编程语言,为非计算机专业的人员从事数据分析提供了更广阔的平台,并在不同行业和领域中得到了广泛的应用。

1.3.4 Python开发环境及小实例

1.Python开发环境

Python开发需要设置一个适合的开发环境。可以从Python官方网站(https://www.py-thon.org)下载最新版本的Python解释器安装包,并按照安装向导进行安装。Pyhton主网站下载页面如图1.5所示。目前最新版本是3.11.4,大家下载时可以不用选择最新版本,这是因为Python的第三方库很多,有些库的更新速度不一定能跟得上Python解释器的更新速度。

图1.5 Python主网站下载页面

Python安装包将在系统中安装一批与Python开发和运行相关的程序,其中最重要的两个是Python命令行和Python集成开发环境(Python ' s Integrated Development Environment,IDLE)。Python IDLE是一个简单的集成开发环境(IDE),适用于编写和运行简单的Py-thon代码。对于更复杂的项目和开发需求,需要使用更强大的IDE,常用的Python IDE有PyCharm、Visual Studio Code、Jupyter Notebook等。本书第7章往后的实例和项目将基于Jupyter Notebook完成。前6章的实例主要基于Python IDLE完成,对于零基础同学,建议选用Python IDLE完成前6章实例和作业,有基础的同学可以直接选用PyCharm或Jupyter Notebook完成。

2.运行Python小程序实例

运行Python程序有两种方式:交互式和文件式。交互式指Python解释器即时响应用户输入的每条代码,给出输出结果。文件式也称为批量式,指用户将程序写在文件中,写完以后启动Python解释器批量执行文件中的代码。交互式一般用于初学时测试少量代码,文件式是最常用的编程方式。本节将以Window系统中IDLE环境下运行“Hello Word”小程序演示两种方式的启动和执行方法。

(1)交互式启动和执行方法

交互式编程模式下可以逐行编写和测试代码,立即查看结果。这对于尝试新的代码片段、调试和学习Python语言非常有用。交互式可以有两种方式启动:

1)在命令行终端(Windows下是命令提示符,macOS和Linux下是终端)启动。启动步骤如下:

①打开命令行终端(Windows下是命令提示符,macOS和Linux下是终端)。

②输入python或python3命令,然后按Enter键,启动Python解释器。你应该会看到一个提示符>>>,表示现在可以输入Python代码。

③输入Python代码行,例如:print("Hello World")。

④按Enter键执行代码,你将立即看到代码的输出结果。

命令行终端启动交互式的界面和程序运行如图1.6所示。

图1.6 命令行终端启动交互式的界面和程序运行

2)通过调用安装的IDLE来启动Python运行环境,可以在Windows“开始”菜单中搜索“IDLE”找到快捷方式。IDLE中交互式运行“Hello World”程序的效果如图1.7所示。

图1.7 IDLE中交互式运行“Hello World”程序的效果

(2)文件式启动和执行方法

文件式编程模式是通过编写代码文件实现的。这种模式适用于编写较长的代码、独立的程序或模块。文件式可以打开任意文本编辑器,按照Python语言要求编辑代码,本节中我们选用IDLE。打开IDLE,按快捷键Ctrl+N打开一个新窗口,或在菜单中选择File→New File选项。打开的新窗口不是交互模式,而是一个具备Python语法高亮辅助的编辑器,可以进行代码编辑。例如,输入print("Hello World")并保存为hello.py文件,如图1.8所示,按快捷键F5,或在菜单中选择Run→Run Module选项运行该文件。

图1.8 IDLE启动文件式编程

下面给出4个小实例的交互式和文件式代码,读者可以在IDLE的交互式或文件式两种方式下练习。如果不明白代码中的具体语法含义,可以先忽略,后面章节我们将学习。建议零基础的学习者要多仿写、改写程序,尽量尝试去理解和体会代码。注意在编辑器中输入代码时,“>>>”是交互模式下自动有的,不需要也不能再输入,“#”及后面的文字是注释,用来帮助理解程序,不影响程序执行。实例1.1~实例1.3既给出了交互模式下的过程展示,也给出了文件模式代码;实例1.4由于代码行数较多,只给出了文件模式的代码,读者也可以自行进行交互模式的体会。实例1.4运行结果如图1.9所示。

图1.9 绘制的同心圆

习题

一、选择题

1.Python是一种( )。

A.编译型语言

B.解释型语言

C.汇编语言

D.机器语言

2.以下( )不属于Python语言的特点。

A.通用性

B.语法简洁

C.执行效率高的编译型语言

D.生态高产

3.Python语言的编程范式是( )。

A.面向过程

B.面向对象

C.函数式

D.逻辑式

4.Python语言中,( )是正确的注释方式。

A.//注释

B./*注释*/

C.#注释

D.以上所有

5.人工智能的三次浪潮分别是( )。

A.符号主义、连接主义、进化计算

B.计算驱动、知识驱动、数据驱动

C.机器学习、深度学习、强化学习

D.自然语言处理、计算机视觉、语音识别

6.数据驱动的人工智能的基本思想是( )。

A.使用计算机来模拟人类的思维过程

B.使用计算机来存储和处理大量的数据

C.使用计算机来学习和适应新的环境

D.使用计算机来与人类进行自然语言交流

7.人工智能赋能汽车的意义是( )。

A.提高汽车的安全性

B.提高汽车的舒适性

C.提高汽车的智能化水平

D.以上所有

二、判断题

1.Python是一种静态类型语言。( )

2.Python是一种编译型语言。( )

3.Python是一种面向过程的语言。( )

4.Python是一种脚本语言。( )

5.Python语言是一种跨平台语言。( )

6.人工智能的三次浪潮是相互独立的。( )

7.计算驱动的人工智能的主要技术是符号主义。( )

8.知识驱动的人工智能的主要技术是专家系统。( )

9.人工智能的未来发展方向是数据驱动。( )

10.人工智能的三次浪潮都取得了巨大的成功。( )

三、简答题

1.简述人工智能的三次浪潮,以及计算驱动、知识驱动、数据驱动的基本思想。

2.什么是人工智能,试从学科和能力两方面加以说明。

3.请阐述你对中国在人工智能方面重大战略决策的理解。

4.智能汽车包括哪些关键技术,人工智能赋能汽车的意义是什么?

5.简述结构化语言和面向对象语言的区别。

四、实训题

练习下面两个实例,熟练使用Python开发环境IDLE。

(1)九九乘法表输出。要求排列工整对齐打印输出九九乘法表。

(2)绘制一个五角星图形,如题图1.1所示。

题图1.1 五角星 4zCHRajuoNSHMIppb2edSAlSnKZSYJJWPvhqx0VHvduLxAhnydnrwCMqo5ICQGG0

点击中间区域
呼出菜单
上一章
目录
下一章
×