高精地图在无人驾驶中的应用

2023-10-26

转自:http://36kr.com/p/5060994.html

编者按:本文来自《程序员》,作者 陈辰、刘少山,36氪经授权发布。

高精地图是无人驾驶核心技术之一,精准的地图对无人车定位、导航与控制,以及安全至关重要。本文是“无人驾驶技术系列”第七篇,首先介绍高精地图与传统地图的区别,然后介绍其特点及制作过程。在了解高精地图基础知识后,探索其在无人驾驶场景中的应用。

电子地图分类

我们日常使用的用于导航、查询地理信息的地图都属于传统电子地图,其主要服务对象是人类驾驶员。而与传统电子地图不同,高精度电子地图的主要服务对象是无人驾驶系统。本节讨论两者的不同。

➤传统电子地图

如图1所示,我们日常使用的用于导航、查询地理信息的地图,如Google、百度、苹果地图等,都可以并入传统电子地图。尽管电子地图出现还不到一百年,对传统地图的研究和开发已有几千年历史,并发展出“制图学”这一门学科。在制图学的基础上,电子地图的出现极大提高了检索效率,并且能快速查找最优路径,极大方便了人们出行。

高精地图在无人驾驶中的应用

传统电子地图是对路网的一种抽象:都将路网抽象成有向图的形式——图的顶点代表路口,边代表路口与路口的连接。路名、地标以及道路骨架信息都可以被抽象成存储于这些有向图顶点或边中的属性。这种抽象的地图表征形式能很好地适应人类驾驶员需求,其原因在于人类生来就有很强的视觉识别及逻辑分析能力。在驾驶过程中,人类驾驶员一般都能有效判别如下信息:识别路面及路面标示线,确定自己在路面的大致位置,寻找并辨认路标等。参照辨识出的信息,结合当前GPS(一般精度在5-10米)在当前电子地图中的位置,人类驾驶员便大致知道自己在实际路网中的位置,并计划下一步如何驾驶。

正是基于人类驾驶员的这些能力,传统电子地图可被极大精简,比如一条弯曲的道路可以被精简到用只有几个点的线段来表示,只要大致轮廓符合现实路网结构,人类驾驶员即可结合驾驶信息定位自己的当前位置。

➤高精电子地图

与传统电子地图不同,高精度电子地图的主要服务对象是无人驾驶车,或者说是机器驾驶员。和人类驾驶员不同,机器驾驶员缺乏与生俱来的视觉识别、逻辑分析能力。比如,人可以很轻松、准确地利用图像、GPS定位自己,鉴别障碍物、人、交通信号灯等,但这对当前的机器人来说都是非常困难的任务。因此,高精度电子地图是当前无人驾驶车技术中必不可少的一个组成部分。高精度电子地图包含大量行车辅助信息,其中,最重要的是对路网精确的三维表征(厘米级精度)。比如,路面的几何结构,道路标示线的位置,周边道路环境的点云模型等。有了这些高精度的三维表征,车载机器人就可以通过比对车载GPS、IMU、LiDAR或摄像头数据来精确确认自己的当前位置。此外,高精地图还包含丰富的语义信息,比如交通信号灯的位置及类型,道路标示线的类型,识别哪些路面可以行驶等。这些能极大提高车载机器人鉴别周围环境的能力。此外,高精度地图还能帮助无人车识别车辆、行人及未知障碍物。这是因为高精地图一般会过滤掉车辆、行人等活动障碍物。如果无人车在行驶过程中发现当前高精地图中没有的物体,便有很大几率是车辆、行人或障碍物。因此,高精地图可以提高无人车发现并鉴别障碍物的速度和精度。

高精地图特点

相比服务于GPS导航系统的传统地图而言,高精地图最显著的特点是其表征路面特征的精准性。传统地图只需要做到米级精度即可实现GPS导航,但高精地图需要达到厘米级精度才能保证无人车行驶安全。

此外,高精地图还需要比传统地图有更高的实时性。由于路网每天都有变化,如整修、道路标识线磨损及重漆、交通标示改变等。这些变化需要及时反映在高精地图上以确保无人车行驶安全。实时高精地图有很高的难度,但随着越来越多载有多种传感器的无人车行驶在路网中,一旦有一辆或几辆无人车发现了路网的变化,通过与云端通信,就可以把路网更新信息告诉其他无人车,使其他无人车更加聪明和安全。

高精地图在无人驾驶中的应用

➤数据特征类型

和传统地图相似,高精地图也具有分层的数据结构。如图3所示,最底层是基于红外线雷达传感器所建立的精密二维网格。一般这个二维网格的精度保证在5×5厘米左右。可以行驶的路面、路面障碍物,以及路面在激光雷达下的反光强度都被存储于相应的网格当中。无人车在行驶的过程中,通过比对其红外线雷达搜集到的数据及其内存中的高精二维网格,就能确定车辆在路面的具体位置。

高精地图在无人驾驶中的应用高精地图二维网格表征。由于网格很细,我们可以从相应的雷达反射上清楚识别出路面及路面标识线的位置。绿色区域表示不可行驶的路面

除了底层的二维网格表征外,高精地图还包含很多有关路面的语义信息。如图4所示,在二维网格参照系的基础上,高精地图一般还包含道路标识线的位置及特征信息,以及相应的车道特征。由于车载传感器可能会因为恶劣天气、障碍物,以及其他车辆的遮挡不能可靠分析车道信息,高精地图中的车道信息特征能帮助无人车更准确可靠地识别道路标识线,并理解相邻车道之间是否可以安全并道。

高精地图在无人驾驶中的应用

高精地图中的车道信息

高精地图在无人驾驶中的应用

图5 高精地图中的道路标识线及路牌信息

此外,如图5所示,高精地图还会标明道路标示牌、交通信号等相对于二维网格的位置,这些信息起两方面作用:

  • 提前预备无人车,告知其在某些特定的位置检测相应的交通标示牌或交通信号灯,提高无人车的检测速度。

  • 在无人车没有成功检测出交通标示牌或信号灯的情况下,确保行车安全。

➤数据量估计

无人车使用的高精地图是个2D网格,数据主要由激光雷达产生,由于激光雷达的精度大约是5厘米,所以地图的最高精度可以达到每个网格5×5厘米。在如此高的精度下,如何有效管理数据是一大挑战。首先,为了尽量让地图在内存里中,我们要尽量去掉不需要的数据。一般激光雷达可覆盖方圆100米范围,假设每个反光强度可以用一个字节记录,那么每次激光雷达扫描可产生4MB数据。扫描会包括公路旁边的树木及房屋,但无人车行驶并不需要这些数据,只需记录公路表面的数据即可。假设路面的宽度为20米,就可以通过数据处理把非公路表面的数据过滤掉,这样每次扫描的数据量会下降到0.8MB。在过滤数据的基础上,还可以使用无损压缩算法,如LASzip压缩地图数据,可以达到超过10倍的压缩率。经过这些处理后,1TB硬盘就可以存下全中国超过10万公里的高精地图数据。

高精地图的生产

传统电子地图主要依靠卫星图片产生,然后由GPS定位,这种方法可以达到米级精度。而高精地图需要达到厘米级精度,仅靠卫星与GPS是不够的。因此,其生产涉及多种传感器, 由于产生的数据量庞大,通常会使用数据采集车(如图6所示)收集,然后通过线下处理把各种数据融合产生高精地图。

高精地图在无人驾驶中的应用

图6 高精地图数据采集车

➤所需要的传感器种类

高精地图的制作是个多传感器融合的过程, 包括了以下几种:

陀螺仪(IMU): 一般使用6轴运动处理组件,包含了3轴加速度和3轴陀螺仪。加速度传感器是力传感器,用来检查上下左右前后哪几个面都受了多少力(包括重力),然后计算每个上的加速度。陀螺仪就是角速度检测仪,检测每个上的加速度。假设无人车以Z轴为轴心,在一秒钟转到了90度,那么它在Z轴上的角速度就是90度/秒。从加速度推算出运动距离需要经过两次积分,所以,但凡加速度测量上有任何不正确,在两次积分后,位置错误会积累然后导致位置预测错误。所以单靠陀螺仪并不能精准地预测无人车位置。

轮测距器(Wheel Odometer): 我们可以通过轮测距器推算出无人车的位置。汽车的前轮通常安装了轮测距器,分别会记录左轮与右轮的总转数。通过分析每个时间段里左右轮的转数,我们可以推算出车辆向前走了多远,向左右转了多少度等。可是由于在不同地面材质(比如冰面与水泥地)上转数对距离转换的偏差,随着时间推进,测量偏差会越来越大。所以单靠轮测距器并不能精准预测无人车位置。

GPS:任务是确定四颗或更多卫星的位置,并计算出它与每颗卫星之间的距离,然后用这些信息使用三维空间的三边测量法推算出自己的位置。要使用距离信息进行定位,接收机还必须知道卫星的确切位置。GPS接收机储存有星历,其作用是告诉接收机每颗卫星在各个时刻的位置。在无人车复杂的动态环境,尤其在大城市中,由于各种高大建筑物的阻拦。GPS多路径反射(Multi-Path)的问题会更加明显。这样得到的GPS定位信息很容易就有几十厘米甚至几米的误差,所以单靠GPS不可以制作高精地图。

激光雷达(LiDAR): 光学雷达通过首先向目标物体发射一束激光,然后根据接收-反射的时间间隔来确定目标物体的实际距离。然后根据距离及激光发射的角度,通过简单的几何变化可以推导出物体的位置信息。LiDAR系统一般分为三个部分:一是激光发射器,发出波长为600nm到1000nm的激光射线;二是扫描与光学部件,主要用于收集反射点距离与该点发生的时间和水平角度(Azimuth);三是感光部件,主要检测返回光的强度。因此我们检测到的每一个点都包括了空间坐标信息以及光强度信息<i>。光强度与物体的光反射度(reflectivity) 直接相关,所以从检测到的光强度也可以对检测到的物体有初步判断。

➤高精地图计算模型

图7展示了通用的高精地图制作流程。首先陀螺仪(IMU)及轮测距器 (Wheel Odometer)可以高频率地给出当前无人车的位置预测,但由于其精确度原因,位置可能会有一定程度偏差。为了纠正这些偏差,可以使用传感器融合计技术(比如使用Kalman Filter) 结合GPS与激光雷达(LiDAR)的数据算出当前无人车的准确位置。然后根据当前的准确位置与激光雷达的扫描数据,把新数据加入地图中。

高精地图在无人驾驶中的应用

图7 高精地图计算架构

公式1是个高度简化的高精地图计算模型, Q代表优化方程,z代表激光雷达扫描出的点,h为方程预测最新扫描点的位置与反光度,m为扫描到的点在地图中的位置,x代表无人车当前位置。这个方程的目的是通过最小化J求出测量点在地图中的准确位置。在计算模型中,m与x开始都是未知的,可以先通过多传感器融合求x,再求出测量点在地图中的准确位置m。

高精地图在无人驾驶中的应用

无人驾驶场景中的应用

如上文所述,高精度电子地图包含大量的行车辅助信息,包括路面的几何结构、标示线位置、周边道路环境的点云模型等。有了这些高精度的三维表征,无人驾驶系统就可以通过比对车载GPS、IMU、LiDAR或摄像头的数据来精确确认自己当前的位置,并进行实时导航。

➤定位

无人车对可靠性和安全性要求非常高,所以我们默认已由高精度LiDAR和多种传感器融合建好了地图,在这个前提下,再谈一谈无人车的跟踪和定位技术。

无人车定位主要通过粒子滤波进行。所谓粒子滤波就是指:通过寻找一组在状态空间中传播的随机样本来近似表示概率密度函数,用样本均值代替积分运算,进而获得系统状态的最小方差估计的过程,这些样本被形象地称为“粒子”,故而叫粒子滤波。比较常见的(如在Sebastian Thrun的经典无人车论文中)是粒子滤波维护一个姿态向量(x, y, yaw),默认roll/pitch相对足够准,运动预测可以从IMU中取得加速度和角速度。粒子滤波需要注意样本贫化和其他可能的灾难定位错误(catastrophic error),一小部分粒子可以持续从现在GPS的位置估计中获得。正如前文所说,对样本数量的自适应控制也需要根据实际情况有效调整。

因为已经有了高精度LiDAR点云地图,所以很自然地就可以用实时点云数据和已经建好的地图进行匹配。而3D点云匹配必然要说到Iterative Closest Point (ICP),ICP的目标是在给出两组点云的情况下,假设场景不变,算出这两组点云之间的pose。最早的ICP原理,就是第一组点云的每个点在第二组点云里找到一个最近的匹配,之后通过所有的匹配来计算均方误差(MSE),进而调整估计的pose,这样进行多次迭代,最终算出两组点云的相对pose。因此,预先有地图的情况下,用实时的点云加上一个大概pose猜测就可以精准算出无人车的当前pose,且时间相邻的两帧点云也可以算出一个相对pose。

另一方面,因为无人车是个复杂的多系统融合,所以当前标配是LiDAR,Camera、IMU(六轴陀螺仪)都必须拥有。拥有了Camera和IMU,做各种VO (Visual Odometry)和最近的VIO (Visual Inertial Odometry)SLAM就是自然选择。前面提到的粒子滤波,还有各种版本的卡尔曼滤波,加上Graph和关键帧概念,都属于SLAM范畴。笔者之前曾详细介绍了SLAM的各种应用探讨和相对应的工程细节 (参见《SLAM刚刚开始的未来》),在此不再一一讨论,但值得注意的是,多传感器多信息源融合只要算法正确并工程实现扎实,效果一定会比单一传感器要好。举两个具体的例子:ICP虽然后来有了很多改进(比如point-to-distance的测量改进,又比如用kd-tree加速查找改进),但需要很好的初始化pose,否则ICP很容易掉入局部最优而搞不定全局最优,这时非常需要图像视觉补充。图像的特征点提取描述计算可以让匹配更精准,速度也不慢,但距离太远精准度会下降,而且有很多图像视觉无法搞定的情况(比如无人车或者别的物体阴影,又比如光照变化,获取illumination-invariant特征非常困难),所以笔者认为,多传感器多信息源融合不是“让它变好”,而是“没你不行”。更明显的是,GPS在户外已经很可靠,没有理由不用它先告诉无人车的大概位置。

➤导航与控制

跟踪和定位技术还是被动的感知方案,而真正意义的无人车也就是全自主驾驶而不是辅助驾驶需要无人车自己智能地来做路径规划,这里从技术层面略作探讨。

路径规划是个范畴很大的话题,需要先做几个限定:一是地图已知,如果未知,就无“规划”可言,机器人或无人车如果完全对世界未知,那么问题实际是“SLAM+探索”;二是对无人车领域来说,一般还是2D或2.5D地图,而不是在3D地图上六个自由度运动规划(那是室内全自主无人机飞行);三是路径规划默认无人车按照规划的路径每一步执行后的pose准确,也就是说,这里刻意把定位和路径规划分开,但实际工程中这两者紧密联系,因为如果定位不准,路径规划一定会受影响。

即使有了这几个设定,路径规划本身有多个教科书版本。这里简单谈有代表性又被广泛应用的两种。一是明确寻找最佳路径的搜索A*算法,核心理念是:如果有最好的路径便一定将其找到。如果单位路径成本(cost)不一样,最好的路径不一定是最短的。A*是搜索了所有可能后,选择了最好的,而且运用了启发式算法来决定。其数据结构实现是priority queue,不停选取“最小成本”节点来扩建路径。

另一类是基于抽样(sampling based)的路径规划——并不知道最优路径是什么,所以从起点开始随机抽样(怎么随机很有讲究)来扩建可能的路径集。有一个很重要的因素可以加速抽样——障碍物的检测。若遇到障碍物,在其方向再扩建路径便没有意义。典型的算法是RRT (Rapidly-exploring Random Tree)。但需要注意,这种算法侧重有效率地让树往大面积没有搜索过的区域增长,实际运用中(特别是在无人车应用中),如果有了启发式算法,实时的路径规划很注重效率,需根据实际情况优化。这方面的研究包括RRT变种或两类算法的结合(如A*-RRT)。

笔者想强调:在无人车工程实现中,路径规划一定要根据传感器情况和地图质量来做实际算法选择和调整。无论地图有多准,传感器的数据质量如何,优化永远需要在安全的前提下进行。

结论

高精度电子地图的信息量与质量直接决定了无人驾驶系统的安全性、可靠性,以及效率。与传统电子地图不同,高精地图更精准(厘米级),更新更快,并且包含了更多信息(语义信息)。由于这些特性,制作高精地图并不容易,需要使用多种传感器互相纠正。在初始图制作完成后,还需要进行过滤以降低数据量达到更好的实时性。在拥有了这些高精度地图信息后,无人驾驶系统就可以通过比对车载GPS、IMU、LiDAR或摄像头数据来确认当前的精确位置,并进行实时导航。

作者简介:

陈辰,斯坦福大学电子工程博士,研究方向大数据挖掘、计算几何,以及机 器学习。期间主要侧重的应用方向包括基于分布式传感器数据的地图 更新与重建。目前就职于DeepMap并从事面向无人车的高清地图开发。

刘少山,PerceptIn联合创始人。加州大学欧文分校计算机博士,研究方向智能 感知计算、系统软件、体系结构与异构计算。现在PerceptIn主要专注 于SLAM技术及其在智能硬件上的实现与优化。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

高精地图在无人驾驶中的应用 的相关文章

  • 无人驾驶:Term-1-p2-traffic-sign-classifier

    简介 Term 1第二节课是进行交通标志分类 xff0c 数据集主要来自于German Traffic Sign xff0c 包含了42种交通标志 xff0c 通过深度学习网络进行分类 环境准备 python 2 7numpyscikit
  • 2、无人驾驶--路径规划算法:Dijkstra

    目录 2 Dijkstra2 1 算法简介2 2 算法思路具体流程 xff1a 2 3 算法具体实现2 3 1 程序详解 2 Dijkstra 声明 xff1a 本文是学习古月居 基于栅格地图的机器人路径规划算法指南 黎万洪 后写的笔记 x
  • python无人驾驶_无人驾驶技术入门(四):无人车传感器 IMU 深入剖析

    上一次的分享里 xff0c 我介绍了GPS的原理 xff08 三角定位 xff09 及特性 xff08 精度 频率 xff09 xff0c 同时也从无人车控制的角度 xff0c 讨论了为什么仅有GPS无法满足无人车的定位要求 为了能让无人驾
  • 无人驾驶-控制-LQR(运动学)

    无人驾驶 控制 LQR xff08 运动学 xff09 一 车辆建模 二 参考轨迹 利用泰勒展开 xff0c 进行线性化 xff1a 离散化处理 对离散后的式子进行处理 xff0c 得到X k 43 1 的表达式 综上 xff1a 由于系统
  • 无人驾驶——激光雷达篇

    激光雷达技术简介 无人驾驶技术是多项技术的集成 xff0c 包括传感器 定位与深度学习 高精地图 路径规划 障碍物检测与规避 机械控制 系统集成与优化 能耗与散热管理等 无人车系统的感知端由不同的传感器组成 xff0c 其中包括GPS xf
  • 2、无人驾驶--路径规划算法:Dijkstra

    目录 2 Dijkstra2 1 算法简介2 2 算法思路具体流程 xff1a 2 3 算法具体实现2 3 1 程序详解 2 Dijkstra 声明 xff1a 本文是学习古月居 基于栅格地图的机器人路径规划算法指南 黎万洪 后写的笔记 x
  • 高精地图在无人驾驶中的应用

    转自 http 36kr com p 5060994 html 编者按 本文来自 程序员 作者 陈辰 刘少山 36氪经授权发布 高精地图是无人驾驶核心技术之一 精准的地图对无人车定位 导航与控制 以及安全至关重要 本文是 无人驾驶技术系列
  • costmap 代价地图

    转自 https sychaichangkun gitbooks io ros tutorial icourse163 content chapter10 10 3 html 10 3 costmap costmap是Navigation
  • useful link for compiling segmap

    https www cnblogs com chenlinchong p 12576699 html ubuntu16 04编译segmap https blog csdn net weixin 42606990 article detai
  • 优达学城无人驾驶工程师——P2交通路牌识别

    这次是P2项目 交通路牌识别 用到的是简单的卷积网络 2层的卷积层加上4层全连接层 因为用的数据集的图片大小是32x32的 所以不用很复杂的神经网络 数据地址在这里 https s3 us west 1 amazonaws com udac
  • 自动驾驶中无迹卡尔曼滤波器的应用(Unscented-Kalman-Filter)

    无迹卡尔曼滤波 一 无迹卡尔曼滤波器 二 CTRV模型 2 1 状态向量 2 2 状态转移方程计算 2 2 1 确定部分 2 2 2 噪声 三 无迹卡尔曼滤波器 3 1 无迹卡尔曼滤波思路 3 2 sigma点 3 3 无迹卡尔曼滤波器的实
  • 百度无人驾驶apollo项目训练最佳算法模型改进

    百度无人驾驶apollo项目训练最佳算法模型改进 google的无人驾驶的最新算法训练模型 现在已经为外界熟知 使用了较为复杂的训练模型 当然了 google的无人驾驶也没有真正的落地实用化 所以google的算法也不是最终解决方案 百度a
  • NVIDIA 不同显卡对应的GPU计算能力

    转自 https blog csdn net dlhlsc article details 85088280 Fermi CUDA 3 2 until CUDA 8 deprecated from CUDA 9 SM20 or SM 20
  • 一种基于光流的无人机仿生智能避障方法

    转自 https patents google com patent CN106155082A zh 一种基于光流的无人机仿生智能避障方法 技术领域 0001 本发明涉及一种单目视觉的基于光流的无人机智能仿生避障方法 特别是属于人 工智能以
  • PaddleDetection的学习笔记

    1 PaddleDetection介绍 PaddleDetection是由百度推出的目标检测开源模型库 1 1 常见格式 pdparams 保存参数权重的文件格式 2 安装PaddleDetection Python版本 python lt
  • 概率机器人教学课件

    http www probabilistic robotics org
  • 漫谈 SLAM 技术(下)

    转自 https zhuanlan zhihu com p 135958593 3 视觉SLAM系统关键问题 结合上述介绍的SLAM系统 我们从以下几个方面分析视觉SLAM系统需要考虑的关键问题 1 图像信息使用 视觉SLAM方法根据使用图
  • 无人驾驶论坛

    1 百度Apollo论坛 http www 51apollo com 2 人工智能中文资讯网 http www ailab cn
  • KITTI数据集--参数

    一 kitti数据集 label解析 16个数代表的含义 第1个字符串 代表物体类别 Car Van Truck Pedestrian Person sitting Cyclist Tram Misc or DontCare 注意 Dont
  • 《学习篇》学会这18个常用ROS命令集合就能入门ROS了

    常用ROS命令概述 ROS常用命令可以按照其使用场景分为ROSshell命令 ROS执行命令 ROS信息命令 ROS catkin命令与ROS功能包命令 虽然很难从一开始就很熟练地使用所有的命令 但是随着使用的次数增多 你会发现常用的几个R

随机推荐

  • 【100%通过率 】【华为OD机试 c++/java/python】任务总执行时长【 2023 Q1

    华为OD机试 题目列表 2023Q1 点这里 2023华为OD机试 刷题指南 点这里 题目描述 任务总执行时长 任务编排服务负责对任务进行组合调度 参与编排的任务有两种类型 其中一种执行时长为taskA 另一种执行时长为taskB 任务一旦
  • 麒麟 mips mysql_中标麒麟(龙芯CPU)--docker基础镜像制作

    Docker 是一个开源的应用容器引擎 基于 Go 语言 并遵从Apache2 0协议开源 Docker 的出现为开发人员和运维人员带来了极大的便利 Docker在X86下常见的发行版Linux如Ubuntu Centos上应用非常成熟 教
  • 数据结构---插入排序

    插入排序 算法思想 具体流程 JAVA实现 算法时间复杂度为O n2 的排序 冒泡排序 弊端 元素交换次数太多了 选择排序 弊端 当数列包含多个值相等的元素时 选择排序有可能打乱它们原有的顺序 插入排序 算法思想 维护一个有序区 把元素一个
  • spring-session整合redis原理 排查失效原因

    根据网上配置了一个springsession整合redis作为session后 发现session获取失败 redis里面是有值 登录模块设置进去也能获取的到 但是其他的服务就获取不到 记录一下 跟着源码探寻为何失败 auth服务的配置 引
  • Linux下SVN 命令每次都要输入密码

    问题描述 SVN每次操作都需要输入密码 操作相当麻烦 影响效率 解决方法 修改vi subversion config 文件 将password stores的值修改为simple 即 password stores simple auth
  • k8s中文件描述符与线程限制

    背景 linux中为了防止进程恶意使用资源 系统使用ulimit来限制进程的资源使用情况 包括文件描述符 线程数 内存大小等 同样地在容器化场景中 需要限制其系统资源的使用量 限制方法 ulimit docker 默认支持ulimit设置
  • 跑深度学习nvidia驱动忽然失效的详细解决方法

    由于经常跑深度学习 所以对于显卡驱动什么的都还是整的比较明白的不含糊 所以都能跑的起来 但是今天跑pytorch框架时 用到cuda 忽然给我报了个错 RuntimeError No CUDA GPUs are available 这给我整
  • 两个非递减顺序表合并成一个非递减顺序表

    两个非递减顺序表合并成一个非递减顺序表 引入 以下这个例题的描述是关于合并两个有序的数组 然后合并之后同样也是一个非递减的顺序排列 但是我名这里讲的不是顺序表 而是封装成一个顺序表 但是我们这里的顺序表其实底层同样是一个数组 所以解题的思路
  • 脚踏实地《数据结构第二章》第一节:线性表的定义和基本操作

    考点分析 一 线性表的定义 数据结构三要素 逻辑结构 定义 线性表是具有相同数据类型的n n gt 0 个数据元素的有限序列 其中n为表长 当n 0时线性表是一个空表 相同 每个数据元素所占空间一样大 帮助计算机快速找到某一个具体的元素 序
  • Deepin(Linux)下安装tensorflow-gpu(2019-5-28)

    2019 9 7更新 六 6中安装tensorflow gpu不要采用pip install tensorflow gpu 1 9 直接用conda install channel https conda anaconda org anac
  • Spring MVC案例

    文章目录 Spring MVC 基于XML配置与注解的方式使用Spring MVC 一 创建项目SpringMVCDemo01 二 在pom xml中添加依赖 三 添加项目web功能 四 创建登录页面 登录成功页面 登录失败页面 五 创建登
  • 网安之web攻防第三十天

    知识点 1 数据库堆叠注入 根据数据库类型决定是否支持多条语句执行 2 数据库二次注入 应用功能逻辑涉及上导致的先写入后组合的注入 3 数据库Dnslog注入 解决不回显 反向连接 SQL注入 命令执行 SSRF等 4 黑盒模式分析以上 二
  • airpodspro窃听模式_AirPods Pro实时收听怎么关闭? AirPods Pro实时收听的使用方法

    苹果全新AirPods Pro增加了许多新功能 首先 是控制播放 苹果在AirPods Pro中放弃了敲击手势 并用杆上的力传感器取代了它 控制音乐或视频只需要简单的短按即可 一次按压即可播放或暂停当前播放 两次按压将跳至下一曲目 而三次挤
  • 2019-07-11T09:15:41.000+0000类似时间转换

    let a 2019 07 11T09 15 41 000 0000 new Date a
  • (个人)AR电子书系统创新实训第一周(2)

    了解ZXing Net 想要在unity上实现下载资源的功能 我首先需要确认二维码扫描系统在unity上的可行性 如果要自行开发一套二维码扫描系统 不仅需要知道二维码生成和解码的原理 而且应该还需要用到一些图形学相关的代码库 如opencv
  • Android中为layout创建子文件夹

    在开发Android项目的时候 往往都有一大批java文件和layout文件 java文件分类比较简单 直接方法创建文件夹就行 但layout还需要多一步配置 看最后的文件结构图 实现步骤 1 创建相应的文件夹结构 需要注意的是 无论如何
  • ‘float‘ object has no attribute ‘decode‘

    错误代码 weibo df pd read csv Users dl Desktop 情感分析论文 词云图 微博文本数据 原始数据 原数据 表格 微博文本内容 csv print weibo df head 在读取csv或者excel文件时
  • Python基础—文件操作

    Python基础 文件操作 文件操作 文件是指为了重复使用或长期使用的目的 以文本或二进制形式存放于外部存储器 硬盘 U盘 光盘等 中的数据保存形式 文件是信息交换的重要途径 也是利用程序解决实际问题的重要媒介 程序对数据读取和处理都是在内
  • 单片机裸机环境下编写AT指令程序

    1 写在前面 AT指令在各种WIFI模块 2G 4G模块以及一些无线通讯模块中应用广泛 但是用过的朋友都知道 这种方式对于单片机编程来说 并不友好 本篇文章将以ESP8266 WIFI模块为例介绍在单片机裸机环境下编写AT指令程序的一种方式
  • 高精地图在无人驾驶中的应用

    转自 http 36kr com p 5060994 html 编者按 本文来自 程序员 作者 陈辰 刘少山 36氪经授权发布 高精地图是无人驾驶核心技术之一 精准的地图对无人车定位 导航与控制 以及安全至关重要 本文是 无人驾驶技术系列