但是,当仅检测当前车道的车道边界时,我们可以获得与其他算法(例如[?],[7])相同的结果,这些算法同时使用了检测和跟踪功能

[7] Zu Kim. Realtime lane tracking of curved local road. In Intelligent Transportation Systems, Proceedings of the IEEE, pages 1149–1155, Sept. 17-20, 2006.

论文阅读前的准备工作

1、https://blog.csdn.net/viewcode/article/details/7969259

abstract

车道检测系统是许多智能交通系统的重要组成部分。
我们为带有曲率的的局部弯曲道路提出了一种鲁棒的实时车道跟踪算法。

首先,我们进行了一项比较研究,以找到一个好的实时车道标记分类器。

一旦检测到车道标记,就将它们分为许多由约束三次样条曲线表示的车道边界假设。

我们提出了一种使用粒子滤波技术RANSAC算法的可靠的假设生成算法。

我们引入了一种概率方法将车道边界假设分组为左右车道边界。

提出的分组方法可以应用于一般的对象跟踪问题

它将基于似然的对象识别技术结合到了Markovstyle过程中。

在当地街道上的实验结果表明,该算法非常可靠。

I. INTRODUCTION

从道路图像检测和定位车道是许多智能交通系统应用程序的重要组成部分。 关于车道检测已经进行了积极的研究,并且已经提出了各种算法[1],[2],[3],[4],[5],[6],[7]。

由于实时限制,然后处理器速度慢,已检测到车道标记
仅基于它们的强度值或简单的坡度变化,它们的许多结果显示在具有清晰车道标记或道路上没有障碍物的直路和/或高速公路上。

在[5]和[7]中发现了检测弯曲道路的一些例外。

但是,这两种算法都无法实时运行,并且结果只能在有限的场景下显示,其中不存在任何障碍。

我们提出了一种实时车道检测算法,该算法在各种车道标记类型和各种困难场景(包括车道变更,新兴/终止/合并/分割车道,交叉路口和主要车辆的分心和道路标记)上显示出可靠的结果。

车道曲率信息对于碰撞警告系统特别有用。 碰撞警告系统从各种传感器(例如雷达,LIDAR和加速度计)获取读数,检测车辆前方的物体,估计与检测到的物体的碰撞时间,并向驾驶员发出警告。

当前面有一条弯曲的道路时,就会发生困难。
在不知道道路曲率的情况下,该系统无法区分道路上的物体和人行道上的物体。

在图1中显示了一种误报情况。在没有关于道路曲率的信息的情况下,系统可能会为人行道上的邮箱生成误报。 我们的目标是检测车道的边界并估计其曲率。

将基于视觉的车道检测结果应用于碰撞预警系统的一个可能的困难是,较小的校准误差(相机俯仰角的变化)会导致较大的距离误差[8]。

但是,这不是关键问题。 例如,我们可以应用结合基于视觉的障碍物检测和基于主动传感器的障碍物检测的传感器融合技术来处理它[9]。

作为基于视觉的方法的替代,可以使用全球定位系统(GPS)和地理信息系统(GIS)。

但是,GPS在空间和时间分辨率上有局限性,而GIS中的详细信息经常丢失或不经常更新。 例如,驶下匝道时的弯道可能会导致错误的警告,但基于GPS的系统会难以区分车辆是否驶入驶出匝道。

基于视觉的车道检测和跟踪存在若干技术挑战:

•该算法应实时工作。

•当我们引入道路曲率时,搜索空间会变得很大,并且难以进行快速可靠的检测。

•我们处理本地道路,而以前的许多工作都集中在具有规则车道标记和较小曲率的高速公路上。 有各种类型的道路和车道标记,基于简单的基于强度或坡度的车道标记检测算法可能不起作用。

•有许多分散注意力的功能,例如在道路上写的交通指令以及领先的车辆。

•许多以前的方法都采用等宽车道模型。 但是,它们不能有效地处理各种情况,例如新兴车道,合并车道和开/关坡道上的分车道

我们的算法遵循“假设和验证”范式。

  • 在“假设”步骤中,将较低级别的特征分组为许多较高级别的特征假设,
  • 并在“验证”步骤中对其进行过滤,以降低较高级别分组的复杂性。

图2显示了流程图。

首先,假设地面平坦,对图像进行校正。示例图像和校正图像如图3所示。在校正图像中,检测到可能的车道标记像素。然后,将检测到的车道标记像素分组为车道边界假设。车道边界假设由受约束的三次样条曲线表示。

结合了粒子滤波技术(用于跟踪)和RANSAC(随机抽样共识)算法(用于检测)的组合方法来稳健地发现车道边界假设。

最后,将概率分组算法应用于将车道边界假设分组为左右车道边界。请注意,我们分别生成左右车道边界假设(与先前的许多作品具有一致宽度的车道模型不同)来处理各种情况,例如开/关坡道或新兴车道。

第二节介绍了我们的车道标记检测方法,包括对各种分类方法的比较研究。 实时视觉系统研究中缺乏这样的比较研究。 在第三部分中,我们介绍了假设车道边界的方法。 第四部分提出了概率分组算法。 实验结果在第五节中给出,我们在第六节中给出结论。

II. LANE MARKING DETECTION

样本道路图像如图4所示。大多数以前的算法只是寻找“水平强度颠簸”来检测车道标记。 在许多情况下,它显示出相当不错的性能,但是在困难的情况下,车道标记不清晰可见(例如,黄色中心标记的灰度强度与灰色道路像素相似)或图像质量较差。 它也会遭受领先车辆的错误检测以及道路和人行道上的纹理。

为了找到更好(但足够快)的分类算法,我们将机器学习技术应用于大量特征:9×3窗口中像素的RGB值(总共81个特征)。
Applying a stereo algorithm算法[3],[4]可以进一步提高性能,但本文重点研究单眼彩色图像。

从视频序列中,我们收集了565个车道标记和11893个非标记的图像块。 图5显示了示例图像补丁。 我们观察到各种颜色,纹理和宽度。

我们在数据集上比较分类性能和各种分类器的计算要求。 我们比较以下分类器:

  • 人工神经网络(ANN):我们将具有不同数量隐藏节点的双层神经网络进行了比较。 训练一个人工神经网络需要相当大的计算量,但是实际的分类时间却相对较短。 当存在n个特征(输入)和m个隐藏节点时,需要n + m加权求和和m个S型函数计算以对假设进行分类(在本例中为n = 81)。

  • 感知器:感知器提供最简单,最快的分类。 通过线性加权求和执行分类,并通过迭代(但快速)学习算法学习参数

  • 朴素贝叶斯分类器(NBC):朴素贝叶斯分类器尽管具有不现实的条件独立性假设,但仍表现出良好的分类性能。 我们比较条件概率的离散和单峰高斯表示。 对于这两种表示,学习时间与示例数成线性关系(最快)。 离散的NBC只需很少的计算即可进行分类。 高斯表示法需要计算n次指数函数。 但是,我们可以避免使用对数似然而不是实际概率来调用指数函数。 实际上,对于两种表示形式,都必须使用对数似然性以最小化数值误差,尤其是在特征数量较大时。 对于离散NBC,我们可以预先计算所有概率表条目的对数以保存计算。

  • 支持向量机(SVM):在最近十年中,支持向量机迅速普及。 它们为合并内核方法提供了一个很好的框架。 我们测试需要最小计算量的二阶多项式内核。

学习需要相对重要的计算,但是它受到多项式时间的限制。 分类涉及大量乘法运算(O(mn),其中m是支持向量的数量)。 支持向量的数量至少为n + 1。

但是,当数据不能清晰地分离(在变换后的特征空间中)或给出小的调整参数时,支持向量的数量可能远远大于n。

  • Ieng 2003:[6],Ieng等。 提出了一种快速简单的车道标记检测算法。 它只是找到了预先定义的像素宽度的强度凸起,据报道显示出良好的性能。

可以在许多机器学习文献中找到有关上述大多数分类器的详细信息,例如,[10]。

图6显示了提出的分类器的分类性能。

我们遵循[11]中提出的评估方案。

我们重复分层5倍交叉验证10次,并显示了置信区间的ROC曲线。

对于所有分类器,我们仅通过更改阈值即可获得ROC曲线(无需使用不同的参数进行重新学习)。

对于所有分类器,我们应用了各种参数,并选择了最佳参数。 对于人工神经网络,我们将其与5和15个隐藏节点进行了比较。 对于离散的朴素贝叶斯网络,我们使用了7级离散化。 通过调整参数100.0学习了SVM。 我们看到,支持向量机和神经网络显示出最佳性能。

我们还比较了分类器的分类计算。 我们在52×159图像上应用了分类器,并在表I中总结了计算时间。这些算法在奔腾III 1GHz机器上运行。 我们优化了所有分类算法,以实现最佳性能。 基于给出的结果,我们的决定是使用具有5个隐藏节点的ANN,这些节点显示出良好的分类性能,并且计算量较小。

III. LANE BOUNDARY HYPOTHESES GENERATION WITH PARTICLE FILTERING AND RANSAC

一旦检测到可能的车道标记像素(示例如图7a所示),它们就会被分组为5个控制点的三次样条曲线。 样条曲线是平滑的分段多项式函数,广泛用于表示曲线。 已经提出了各种样条曲线表示形式,我们使用三次样条曲线。 在三次样条表示中,第i个控制点和第(i + 1)个控制点之间的曲线上的点p表示为:

参数ai,…,hi由曲线平滑的控制点唯一确定。 0≤t≤1,(xi(0),yi(0))是第i个控制点,而(xi(1),yi(1))是第(i + 1)个控制点。

三次样条曲线对于稳健地确定控制点实际上在曲线上具有有用的属性。 我们使用该属性将RANSAC(随机抽样共识)算法[12]应用于曲线拟合。

RANSAC算法是一种鲁棒的拟合算法,已成功应用于各种计算机视觉问题。

在[7]中,Wang等。 使用B样条曲线表示弯曲的道路。 在Bspline表示中,控制点位于曲线的外部,其拟合过程需要大量的迭代。
另一方面,三次样条拟合更快,但通常会出现意想不到的不规则形状。

我们的算法使用三次样条进行快速拟合,但是施加了附加约束,即yi(t)是单调的并且曲率是合理的。

我们的RANSAC拟合过程如下。
首先,将车道标记分组为线段。 假设是根据一个,两个或三个线段的随机集合生成的。 对于每个假设,线段的数量也是随机确定的。

单个线段给出一条直线,一组两个线段给出一条曲率(大致)的曲线,而一组三个线段给出一条更复杂的曲线。

从这些线段中确定五个控制点中的三个。

第一个和最后一个控制点的位置通过外推第一个和最后一个线段来确定。

第一个控制点始终在整流图像的下边界上,最后一个控制点是沿外推曲线的最上方车道标记像素。

一旦生成了曲线假设,就可以测试其有效性。 首先,执行简单的几何测试以查看曲线是否与原始线段对齐。 然后,根据其车道标记像素支持执行第二项测试:

其中,m是曲线上的辅助车道标记像素,而λ是最小描述长度(MDL)标准的惩罚。 在我们的实现中,对于从一组两个线段生成的假设,λ= 0.1,对于从三个线段生成的假设,λ= 0.2。

在我们的实现中,给定一帧会生成500个随机假设。 一旦生成并验证了假设,便会进行重叠分析,并最终选择少量非重叠(但可能是部分重叠)的假设。

上面的算法没有利用车道边界的强时间一致性。

我们将其与基于粒子过滤技术的跟踪算法相结合。

对于粒子过滤,我们通过高斯分布对车辆的运动(旋转和平移)进行建模。

给定随机选择的运动,可以通过根据运动来移动先前检测到的车道边界的控制点来生成车道边界假设。 当附近有车道标记像素时,会稍微调整新控制点的位置。 会生成许多假设(在我们的实现中,每个左右边界100个假设),并根据支持车道标记像素对它们进行评分。

控制点的最终位置由所有假设位置的加权总和估算,其中权重是相应曲线假设的得分。由于车辆的向前运动,所有控制点最终都将移近。因此,我们需要调整第一个控制点的位置,使其不会从图像中消失。

我们强制第一个控制点的位置始终位于图像的边界上(通过对曲线进行插值可以找到调整后的位置)。

对于最后一个控制点,将在外推曲线位置上进行搜索。如果在当前确定的最后一个控制点上方有任何车道标记像素,则将其选择为新的最后一个控制点。

此外,还检查第二个控制点,以查看其位置是否过低(如果它继续下降,则最终将与第一个控制点发生碰撞)。如果其位置过低,则将其移除,并在第四个和最后一个(最后)控制点之间生成一个新的控制点。

从RANSASC算法和粒子过滤过程中选择的车道边界假设如图7b所示。 每个车道边界(左/右)最多选择五个假设,包括来自粒子滤波过程的假设。 粒子还显示为控制点附近的点云。

对控制点进行跟踪

IV. PROBABILISTIC GROUPING OF LANE BOUNDARIES 车道边界的概率分组

我们的下一个目标是从图7b所示的假设中选择最佳对。 我们将概率推理应用于决策。

推理的可用证据包括每个车道边界假设的车道标记支持(请参阅第III部分),两个边界假设的相容性以及时间一致性。

实际上,这是一个典型的对象跟踪问题。 这是一个基于part的跟踪,而以前的大多数工作都集中在单个零件的跟踪。 在本节中,我们介绍一种用于对象跟踪的新公式,该公式特别适合对象检测的“假设和验证”范式。

A. Probabilistic Grouping for Part-based Tracking

我们使用大写字母(例如X)来表示随机变量,并使用小写字母x(来表示这些变量进行的某些赋值)。

我们主要处理二进制分类,其中分配是对还是错。

对于多项式随机变量X,语句P(X =φ )用作P(X = missing)的简写。
一组多个变量或赋值用黑体字母表示,例如X和x

典型的时间推理模型,例如动态贝叶斯网络[13],使用后验概率从预定义的候选项中选择最佳假设:


其中X是目标随机变量,e是观察(当前和过去)。

但是,许多对象识别方法都使用最大似然估计[14],[15]。 他们的目标是发现:

其中X是特定假设的随机变量。 有多种原因使用最大似然估计。

首先,许多对象识别算法都使用“假设和验证”范式,其目标是从大量(而非预先确定的)假设中选择最佳的。

实际上,使用似然估计更有意义,因为生成的假设并非真正不相交。

其中许多是重叠的或共有相同的部分,因此选择一个并不完全意味着拒绝另一个。

另外,对二进制分类问题建模要比对多项学习分类的多项式分类问题容易得多。

我们使用似然估计引入动态贝叶斯网络风格的公式表示。 当我们假设证据变量e是三种独立证据变量的集合时,e =(ec,et,ep),
其中ec是在当前框架中收集的一组证据,
ep是过去收集的一组证据,
et是一组过渡证据(例如时间相关性)。

然后,我们想知道部分假设x的所有可能组合的P(x | ec,et,ep)。

然后,

其中α= 1 / P(ec | et,ep)是归一化常数。

在给定的图像帧中估计P(ec | x)在对象识别领域已得到了很好的研究。

面临的挑战是估计P(x | et,ep)。 应用马尔可夫假设,

其中H是前一个对象的随机变量,h表示单个假设(ΣhP(H = h)= 1)。

注意,我们不仅使用先前检测到的对象,而且还使用许多先前拒绝的假设。

有两个原因。首先,在某些情况下会生成一些假设,但没有一个假设足够强大而无法被接受。
可能是错误警报(噪音),也可能是证据支持相对较弱的对象。

我们要选择一个对象,它可能具有相对较弱的图像支持(et),但是随着时间的推移会被一致地观察到,而不是一个错误警报,该错误警报在一帧时可能具有较强的强度,但无处不在(短暂的时间支持)。

使用关于被拒绝的假设的信息可以解决这个问题。其次,当一个对象处于过渡阶段(例如,车道边界在匝道处分成两条线)时,两个或更多个强假设可能会相互竞争。最初的假设最终将变得越来越弱,并且图像支持也越来越弱,但仍然具有强大的时间支持。除非考虑到先前帧的否定假设,否则新兴的帧将获得更强的图像支持,但不会获得时间上的支持。

我们面临的问题是,我们从前一帧估计的是假设的可能性,而不是P(H = h | ep)。 为了解决这个问题,我们根据先前的可能性估算P(H = h | ep):

其中Hi是先前选择的假设(请参阅第III节)。 我们还考虑了错误或错误检测某些或全部对象的可能性。 因此,Hi可能表示检测错误。

对于P(x | H = hi,et),我们假设各个零件的跟踪历史彼此独立。 当x(以及Hi)由各个部分x1,…,xn组成时,

当hji不是误检测

其中βj是归一化常数,
P(et | xj,hj i)可以通过示例学习,
假设P(xj | hj i)是恒定的(假定存在先前检测到的部分,则为先验概率)。

当hji代表错误检测(Hj i =φ)时,P(xj | Hj i =φ,et)假定为常数,这是出现部分的先验概率。

另外,我们还需要知道在当前帧中被错误检测到的对象的第j部分的概率(用φj表示)。

在这种情况下,我们需要分别估计设置为常数的P(φj | Hj i = hj i,et)– P(φj | Hj i =φ)或P(φj | Hj i =检测到) )。

B. Application to Lane Boundary Grouping

在车道边界分组的情况下,X =(L,R),其中L代表左侧,R代表右侧车道边界假设。

对于P(ec | l,r),我们将证据变量ec分为彼此独立的变量(左假设为el,右假设为er)和从属变量(elr)。

然后,P(ec | l,r)= P(el | l)P(er | r)P(elr | l,r)。

对于el和er,我们使用第三部分介绍的车道标记支持得分。
对于其他,我们检查平均车道宽度和车道兼容性得分。

实际上,由于上坡/下坡或道路宽度的变化,车道宽度可能会稍微增加或减少(在图像内)。

我们假设车道宽度可以小比例线性增加或减少。

给定车道边界对,在不同距离处对车道宽度进行采样,并拟合为线性方程。 车道相容性分数与最大剩余距离成反比。

对于P(et | l,lprev)和P(et | r,rprev),使用一条曲线与另一条曲线的采样点之间的最大距离。

注意,没有隐藏变量,所有概率分布
(包括背景模型,例如P(ec | L = false))
可以直接从正面和负面的例子中学到。

我们假设上述大多数条件概率分布遵循单峰高斯模型。 车道宽度是一个例外。 为了强制最小和最大车道宽度,我们使用离散分布而不是高斯分布。

手动给出大量正面和负面的例子非常繁琐。 因此,采用半监督学习方法来估计参数。 程序如下:

1)手动给出概率分布参数以产生合理的结果。 这不是很困难,因为所有概率分布都非常直观。

2)自动检测结果被用作估算参数的依据。 被拒绝的假设被认为是负面的例子。

3)车道检测算法将再次应用新参数。

实验

实验结果以前的大部分工作仅在少量的“演示”图像上展示了实验。

在[7]中,结果显示在更多的图像帧上,但是在特定的场景中,在第一个帧中检测到车道并在整个序列中进行跟踪。相比之下,我们在两个录制的176×120图像分辨率的视频剪辑(MPEG)上展示了实验结果。

视频片段包括各种不同的车道类型,新兴/结束/合并车道,十字路口,车道变化,重要障碍物(领先的车辆)和道路上的干扰标志。此外,图像分辨率和质量(MPEG的四分之一)通常比以前的工作中要差。

在第一个视频剪辑中未检测到明显的错误警报。鲁棒的车道标记检测程序删除了许多错误的车道标记,而概率分组程序删除了许多错误的假设,这些假设没有足够的时间相关性。据报告由于缺乏车道标记支持而导致某些检测失败
在第一个视频剪辑中,在总共23帧的8例中临时错误地检测了单个车道边界,而在总共32帧的一例中两个通道的边界都被误检测到(在20帧中,只有一个车道边界可见)。

总体检测率类似于最新的非实时算法[7]。考虑到我们的示例包含更复杂的场景,包括交叉路口,车道变更和障碍物,这是一个非常有希望的结果。

在第二个视频剪辑中,竞争车道假说产生了两个误报事件,一个误报是由领先的车辆及其阴影投射在车道边界上引起的。在这两种误报情况下,正确的假设都被暂时拒绝,原因是较弱的车道标记支持和临时错误地识别正确的车道边界。

此外,还报告了一个严重的错误配置(将曲线检测为直线)和几例轻微的错误配置的情况。

算法也适用于低照度的视频图像。
使用与上述结果相同的参数。在这种情况下,由于通过白天的视频图像学习了车道标记分类器,因此发现了更多的误检。

但是,它仍然显示了我们方法的鲁棒性。通过重新学习带有深色视频图像的车道标记分类器,可以大大降低错误检测率。

可以从http://path.berkeley.edu/~zuwhan/lanedetection下载所得的视频剪辑。

结论

我们针对弯弯的局部道路引入了鲁棒的实时车道检测算法。 我们首先对车道标记分类性能和计算成本进行了比较研究。 我们的分组算法基于“假设和验证范式”。 我们介绍了一种基于粒子过滤和RANSAC技术的结合车道检测和跟踪的新颖方法。 我们还提出了一种用于基于零件的对象跟踪的概率分组方法,该方法可以将基于似然性的对象识别算法合并到Markov框架中。 提出了令人鼓舞的结果。 对于更复杂场景的视频剪辑,我们的算法显示出与最新的非实时算法可比的结果。 未来的工作将把建议的跟踪和分组框架应用于其他基于零件的跟踪应用程序,例如人体跟踪。

【论文】Realtime lane tracking of curved local road 检测和跟踪功能相关推荐

  1. 实时车道检测--A Novel Vision-Based Framework for Real-Time Lane Detection and Tracking

    A Novel Vision-Based Framework for Real-Time Lane Detection and Tracking SAE Technical Paper 2019-01 ...

  2. JDE(Towards Real-Time Multi-Object Tracking)代码训练——小白必看

    前言 自己在跑JDE多目标跟踪代码时,总结的方法和教训. 一.数据集制作 1.可直接下载作者给的数据集,是制作好的 论文链接:https://arxiv.org/pdf/1909.12605v1.pd ...

  3. Towards Real-Time Multi-Object Tracking

    Towards Real-Time Multi-Object Tracking论文阅读 Abstract The components of traditional MOT strategies wh ...

  4. 论文解读《Global Structure and Local Semantics-Preserved Embeddings for Entity Alignment》

    论文解读<Global Structure and Local Semantics-Preserved Embeddings for Entity Alignment> 论文题目:Glob ...

  5. CVPR2020论文解读:3D Object Detection三维目标检测

    CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...

  6. 论文简述 | DOT:面向视觉SLAM的动态目标跟踪

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1 摘要 在本文中,我们提出了动态目标跟踪(DOT),一个添加到现有SLAM系统的前端,可以显著提高它 ...

  7. AAAI 2020 Oral论文--TANet:提升点云3D目标检测的稳健性

    点击上方"深度学习技术前沿",选择"星标"公众号 资源干货,第一时间送达 来自华中科技大学白翔教授组的刘哲的 AAAI Oral 论文<TANet: Ro ...

  8. [论文]欠驱动水下机器人的平面轨迹规划与跟踪控制设计

    [论文]欠驱动水下机器人的平面轨迹规划与跟踪控制设计 摘要 研究了欠驱动自主水下航行器在水平面上的轨迹规划与跟踪控制的组合问题.给定光滑的.惯性的二维参考轨迹,规划算法利用车辆动力学计算参考方向和机体 ...

  9. 知网搜论文没有服务器响应,CNKI知网论文检测使用中的十四个常见问题

    原标题:CNKI知网论文检测使用中的十四个常见问题 1.初检段落A未发现抄袭,复检的时候A段怎么又发现抄袭了? 这是因为系统设置的阈值有关,大概3%左右的阀值:也就说每次大概3%左右重复内容不能检测出 ...

  10. Towards Real-Time Multi-Object Tracking(JDE)论文阅读笔记

    JDE阅读笔记 (一)Title (二)Summary (三)Research Problem (四)Problem Statement (五)Method 5.1 将Detection和Embedd ...

最新文章

  1. [转]SpringMVC+Hibernate+Spring 简单的一个整合实例
  2. express 4.*升级后带来的影响
  3. RealWave Surfaces 泡沫
  4. “一百万行 Python 代码对任何人都足够了”!
  5. 函数用法r语言_R语言中的apply函数族
  6. 栈的理解以及如何计算程序所需栈的大小并在IAR中设置栈
  7. POJ-3621 Sightseeing Cows 01分数(参数搜索)规划问题-最优比率环
  8. 统计学 多元线性回归
  9. Android Studio editText去掉下划线的办法
  10. 没有预算的新媒体运营如何启动?
  11. 涂鸦标准模组MCU SDK开发流程
  12. chrome清除https状态
  13. 使用html创建浮标,自制浮漂其实很简单,不信你来看一看
  14. 少壮不努力,长大写代码。。
  15. Android CE DE加密小结
  16. Html做一个pdf转换器,HTML转换到PDF转换器
  17. #1.8程式化自动化交易
  18. android nfc驱动,Android NFC 简单梳理
  19. PlantUML 入门
  20. 从2D地图到3D城市模型的概略路线

热门文章

  1. 题目:将一个正整数分解质因数
  2. Volley源码解析(一)
  3. 制作单机俄罗斯游戏心得(三)
  4. Android ADB动态查看内存信息之Watch使用
  5. 周五,放松心情,听我来分享问题背后的背后(二)
  6. 理工科学生计算机要求,理工科学生
  7. 显微镜自动聚焦原理是什么_自动玻璃感应门原理是什么?看看东莞装修网怎么说...
  8. java软件测试方法有哪些方法有哪些方法_软件测试方法和软件测试规则
  9. 让计算机工作起来教学反思,计算机教学反思
  10. java循环怎么分析_Java for循环的几种用法分析