6-DoF问题相关基础知识笔记

  • 一、什么是6-DoF,即6个自由度是什么?
  • 二、PnP算法
  • 三、BOP挑战与官方数据集简介
    • BOP数据集
    • BOP toolkit
    • BOP挑战的介绍页面
  • 四、相关论文
    • CDPN2019
    • CDPN介绍
    • ICCV: CDPN2019笔记

一、什么是6-DoF,即6个自由度是什么?

首先,先解释一下自由度,自由度与刚体在空间中的运动相关。可以理解为物体移动的不同基本方式。

  1. 平移运动

刚体可以在3个自由度中平移:向前/后,向上/下,向左/右

  1. 旋转运动

刚体在3个自由度中旋转:纵摇(Pitch)、横摇(Roll)、垂摇(Yaw)

因此,3种类型的平移自由度+3种类型的旋转自由度 = 6自由度

在任意一个自由度中,物体可以沿两个“方向”自由运动。例如,电梯限制在1个自由度中(垂直平移),但电梯能够在这个自由度中上下运动。同样,摩天轮限制在1个自由度中,但这是旋转自由度,所以摩天轮能够朝相反的方向旋转。
我们可以继续举例子,比如说主题公园。碰碰车总共有3个自由度:它只能在3轴中的2条里平移(无法像电梯那样上下移动);然后它只能以一种方式旋转(无法像飞机那样纵摇和垂摇)。 所以2个平移+1个旋转=3自由度。
无论有多复杂,刚体的任何可能性运动都可以通过6自由度的组合进行表达。 例如在你用球拍击打网球的时候,球拍的复杂运动可以表示为平移和旋转的组合。

二、PnP算法

  1. PnP算法是什么?

PnP(Perspective-n-Point)是求解 3D 到 2D 点对运动的方法。它描述了当我们知道n 个 3D 空间点以及它们的投影位置时,如何估计相机所在的位姿。——《视觉SLAM十四讲》

通俗的讲,PnP问题就是在已知世界坐标系下N个空间点的真实坐标以及这些空间点在图像上的投影,如何计算相机所在的位姿。换句话说,就是已知量为空间中的真实坐标和图像坐标,求解相机的位姿(未知量)

  1. PnP问题的求解方法

PnP问题是在已知n 个 3D 空间点以及它们的投影位置时估计相机所在的位姿。那么 n 最小为多少时我们才能进行估算呢(最少需要几个3D-2D点对)?
我们可以设想以下场景,设相机位于点Oc,P1、P2、P3……为特征点。

场景1:N = 1时
当只有一个特征点P1,我们假设它就在图像的正中央,那么显然向量OcP1就是相机坐标系中的Z轴,此时相机永远是面对P1,于是相机可能的位置就是在以P1为球心的球面上,此外球的半径也无法确定,于是有无数个解。

场景2:N = 2时
现在多了一个约束条件,显然OcP1P2形成一个三角形,由于P1、P2两点位置确定,三角形的边P1P2确定。再加上向量OcP1和OcP2,从Oc点射向特征点的方向角也能确定。于是能够计算出OcP1的长度=r1,OcP2的长度=r2。于是这种情况下得到两个球:以P1为球心,半径为r1的球A;以P2为球心,半径为r2的球B。显然,相机位于球A,球B的相交处,依旧是无数个解。

场景3:N = 3时
这次又多了一个以P3为球心的球C,相机这次位于ABC三个球面的相交处,终于不再是无数个解了,这次应该会有4个解,其中一个就是我们需要的真解——即相机真实的位姿。

场景4:N > 3时
N=3时求出4组解,好像再加一个点就能解决这个问题了,事实上也几乎如此。说几乎是因为还有其他一些特殊情况,这些特殊情况就不再讨论了。N>3后,能够求出正解了,但为了一个正解就又要多加一个球D显然不够"环保",为了更快更节省计算机资源地解决问题,先用3个点计算出4组解获得四个旋转矩阵、平移矩阵。根据公式:

将第四个点的世界坐标代入公式,获得其在图像中的四个投影(一个解对应一个投影),取出其中投影误差最小的那个解,就是我们所需要的正解。

算法推导及详细讲解
姿态与旋转矩阵详细讲解

三、BOP挑战与官方数据集简介

BOP挑战 的目标是从 RGB/RGB-d 图像中捕捉估计刚性物体的6d 姿态(即3d 平移和3d 旋转)的最新技术。一个精确、快速、健壮、可扩展和易于训练的方法来解决这个任务将会在应用领域产生巨大的影响,比如机器人技术或者扩增实境技术。

BOP数据集

12项数据集简介
该数据集包括三维物体模型和训练和测试的 RGB-D 图像注释地面真实6d 物体的姿态和内在的摄像机参数。

三维物体模型是手工创建或使用类似 kinectfusion 的系统进行三维表面重建。训练图像从不同的角度显示单个物体,或者由 RGB-D/Gray-D 传感器捕获,或者通过渲染三维物体模型获得。测试图像是在复杂度分级的场景中捕获的,通常是混乱和遮挡的。

数据集以BOP Format 提供。使用BOP toolkit 需将所有数据集都存储在同一个文件夹中,每个数据集都存储在一个子文件夹中,该子文件夹使用数据集的基本名称(例如“ lm”、“ lmo”、“ unible”)命名。

一个示例演示如何从 bash 下载和解压 LM 数据集(其他数据集的归档名称可以在下面的下载链接中看到) :

export SRC=http://ptak.felk.cvut.cz/6DB/public/bop_datasets
wget $SRC/lm_base.zip         # Base archive with dataset info, camera parameters, etc.
wget $SRC/lm_models.zip       # 3D object models.
wget $SRC/lm_test_all.zip     # All test images ("_bop19" for a subset used in the BOP Challenge 2019/2020).
wget $SRC/lm_train_pbr.zip    # PBR training images (rendered with BlenderProc4BOP).unzip lm_base.zip             # Contains folder "lm".
unzip lm_models.zip -d lm     # Unpacks to "lm".
unzip lm_test_all.zip -d lm   # Unpacks to "lm".
unzip lm_train_pbr.zip -d lm  # Unpacks to "lm".

BOP toolkit

下载包含 python 脚本的 BOP toolkit,用于读取标准数据集格式、渲染、评估等。
6D位姿估计的理解及BOP数据集参数说明

BOP挑战的介绍页面

BOP: Benchmark for 6D Object Pose Estimation

仿真训练图像: 2020的挑战集中在合成的有效 RGB 训练图像。虽然基于深度的姿态估计方法通常都是从合成仿真数据中学习,但是基于 RGB 的方法在合成图像训练和真实测试图像之间相差较大的情况下仍然不太理想。为了应对这一状况,官方特别准备了 BlenderProc4BOP,一个开源的轻量级基于物理的渲染器(PBR) ,并用它为七个核心数据集中的每一个渲染训练图像(下面是示例图像)。有了这个补充,希望减少进入障碍的挑战参与者工作的基于学习的 RGB 和 RGB-d 解决方案。可以看到仿真训练图像是否有助于缩小在前一次迭代中观察到的基于深度和基于 rgb 的方法之间的性能差距。

四、相关论文

CDPN2019

CDPN:CoordinatesBased Disentangled Pose Network for Real-Time RGB-Based 6-DoF Object Pose Estimation

ICCV 2019的一篇文章,来自于清华大学,这是目前在6-DoF Object Pose Estimation的数据集LINEMOD和Occulusion LINEMOD上的state-of-the-art。

论文连接
论文下载
代码链接

Abstract

从单个的RGB图像中进行6-DoF object pose estimation是计算机视觉中长期存在的一个基础的问题。目前的主要方法是通过训练深度网络直接从图像中回归旋转和平移,或者构造2D-3D对应,然后通过PnP间接求解。我们认为,由于旋转和平移的显著性差异,应该区别对待。在这项工作中,我们提出了一个新的6-DoF姿态估计的方法:Coordinates-based Disentangled Pose Network(CDPN),它能够独立的预测旋转和平移来实现高的精度和稳定的姿态估计。我们的方法是灵活、有效、具有较高的准确率的,而且可以处理无纹理和遮挡的对象。在LINEMOD和Occlusion数据集上进行了大量的实验,证明了该方法的优越性。具体地说,我们的方法在通常使用的度量标准上显著地超过了目前最先进的基于rgb的方法。

  1. Introduction

物体的姿态识别在真实世界的许多应用中是必要的,包括机器人操作、增强现实等等。在这项工作中,我们关注的是从单个的RGB图像中估计6-DoF物体姿态,它仍然是这个领域的一个挑战。理想的解决方案应该能够处理各种光照条件下杂乱场景中无纹理和遮挡的物体,并且能够满足实时任务的速度要求。
  传统上来说,这个任务被动作一个几何问题和通过2D图像和3D 物体模型的特征点匹配来解决。但是,它们需要丰富的纹理来检测匹配的特征。因为,对于纹理不明显的物体不能够使用这种方法。受益于深度学习的发展【7】,多种的处理数据的方法的出现和巨大的进步。当前领先的方法直接从图像中回归6-DoF物体姿态【8,28】或者是在图像中预测2D关键点,进而通过PnP【20,19】间接的解决姿态问题。但是,但对于直接的方法,他们为了提高姿态估计的准确性,高度的依赖后期复杂的优化步骤与3D信息。对于间接的方法,稀疏的2D-3D对应使其对局部遮挡敏感。他们也需要姿态调优来实现更好的性能。除了这些方法,另一种方法是基于坐标的方法,它已经被证实对于严重的遮挡问题具有很好的鲁棒性【9,18】。它通过对目标每个像素在目标坐标系中的三维位置进行预测,建立密集的二维-三维对应关系来求解姿态。但是,现在的基于坐标的方法严重的依赖于深度信息而且是低效的,它在只有RGB情况下无法实现,难以满足实时性要求。
  现有的方法利用深度网络直接从图像中估计旋转 R和平移T,或构造2D-3D对应,并通过PnP间接求解。然而,旋转和平移具有明显不同的性质,并受到不同因素的影响。例如,图像中物体的大小和位置对旋转影响很小,但对平移影响很大。相反,图像中物体的外观对旋转影响很大,而对平移影响很小。因此,同样的处理可能会对 RT产生不同的影响,因此我们需要分别求解RT
  在这项工作中,我们的目标是开发一种高度精确、鲁棒和有效的姿态估计方法,用于RGB-only情况。我们采用基于坐标的方法来估计旋转,因为它们的密集对应显示了对遮挡和杂波的鲁棒性。但是,以这种方式解决的转换往往会在对象之间产生不同的性能,甚至在某些情况下会失败(具体的细节在 Sec 3.4)。我们提出的Coordinates-based Disentangled Pose Network(CDPN)去解耦旋转和平移,前面是通过PnP算法间接的求解Coordinates,后面是直接的在图像中进行估计。
  我们的贡献总结如下:

对于6D pose estimation,我们提出了Coordinates-based Disentangled Pose Network(CDPN)来有效的表示物体的旋转和平移。据我们所知,我们是第一个将基于PnP的间接法和基于回归的直接法相结合来进行物体姿态估计的。

我们提出了Dynamic Zoom In(DZI)动态缩放来进行姿态估计,增加检测误差的鲁棒性,而且能够使其对任何特有的检测器都不敏感。

为了提供实时应用,在旋转估计方面,我们提出了一个两阶段的对象级坐标估计,并伴随着Masked Coordinate-Confidence Loss(MCC Loss)来克服来自非目标区域的影响。

对于平移,为了避免坐标的影响,我们提出了一个Scale-Invarient Translarion Estimation(SITE)来实现鲁邦的和准确的平移估计。

我们的方法是高准确性,快速和可扩展的。我们在LINEMOD dataset上实现了state-of-the-art的性能。 这个系统是足够快速的(~30ms per image,运行时间能够进一步的缩短,通过使用的更快的检测器),去实现实时需求。

  1. Related work

单幅图像的位姿求解方法可分为直接法和基于pnp的位姿求解方法。
  Direct approaches. 在一些6-DoF相机姿态估计和视点估计的工作中,首次提出了直接法【22,11,10,16,23,14】。然后,在6-DoF物体姿态估计领域出现了一些相似的ideas。【8】将三自由度旋转空间离散化为可分类的viewpoint bins,通过训练基于ssd的【15】检测框架的分类器进行求解,而3-DoF的平移则是通过2D bounding box实现的。【28】提出了一种基于回归的方法PoseCNN,其中6-DoF位姿参数,i.e.,四元数和距离直接从输入图像回归。【6】通过回归Lie代数进行旋转,进一步结合预测距离和实例边界框得到6-DoF姿态。这些直接方法通常进一步利用深度信息和ICP【1】(迭代最近点)算法来确定姿态。然而,他们仍然面临一些具有挑战性的问题,如视点模糊问题【14】。
  PnP-based approaches. 另一类工作则是借助于中间表示来间接地解决6-DoF物体的姿态问。【20】提出了从图像中检测三维边界盒角的投影,并进一步利用PnP算法求解了6自由度的位姿。他们还需要ICP以获得更准确的估计。基于类似的思想,【25】提出了基于轻量级探测器YOLOv2【21】的YOLO6D。此外,一些人从图像中检测目标关键点来解决姿态问题。【19,29】利用hourglass-based【17,5】 网络预测了姿态和视点估计的语义关键点。除了这些基于稀疏关键点的方法外,另一种间接姿态估计方法是基于坐标的方法。【2】基于RGB-D图像,利用随机森林预测稠密的3D-3D对应,然后通过RANSAC优化6-DoF姿态假设。【12】用CNN代替了【2】中的能量函数来处理更复杂的情况。【3】进一步将这一思想推广到RGB-only 6-DoF的位姿估计。提出了一种自动上下文随机森林来联合预测目标标签和坐标。然而,这个性能依旧被限制。【4】使用了一个全卷积网络去预测6-DoF相机姿态估计场景下的3D coordinates。【18】通过语义分割CNN得到感兴趣的对象后,基于三维坐标回归CNN预测6D对象的位姿,而实际上他们通过将坐标离散到箱子中,将问题重新格式化为分类问题。最近,【26】引入了一种归一化的对象坐标空间(NOCS)用于分类级别的6D对象位姿估计,而深度信息用于估计整个6-DoF的位姿。
  与这些工作不同,我们分开对待旋转和平移。对于旋转,与现在的基于坐标的方法相比较,我们设计的基于local region的范例使评估更加的准确和有效。对于平移,我们直接从图像块中进行估计,我们将这些任务合并,并在一个统一的网络中解决它们。我们的工作在通用基准上实现了最先进的性能。
  

CDPN介绍

基于深度学习的姿态估计方法可以细分为直接法和间接法,直接法是不依赖物体三维模型,直接从物体的RGB像素学习物体的旋转量和平移量,间接法是先求解二维图像上目标物体的点和物体三维模型上点的对应关系,然后利用数学方法求解旋转量和平移量。

以前的方法要么是用直接法进行旋转量和平移量的估计,要么是间接法进行估计,由于旋转量的空间分布具有一定的周期性,当物体旋转一定角度后,就有可能和原图呈现相同画面,这样不同姿态的物体在RGB图像上的表现形式是一样的,仅利用直接法去求解旋转量就会产生很大误差,因此提出使用间接法去分析旋转矩阵。对于平移矩阵,间接法的使用也是可以的,但是会比较依赖于关键点的选取,如果关键点确实或被遮挡,会产生较大的误差,因此选用直接法估计平移矩阵。由此提出CDPN解耦的姿态估计策略。

对于场景图像目标的识别,语义分割不适用于同一场景内有多个相同类型物体的情况,只能使用实例分割,但是实例分割的模型的大小往往比较庞大,由此是用检测模型。
此处采用轻量级的检测模型,但这会带来吊打的误差,影响后续训练框架的易用性和鲁棒性,因此提随机动态缩放(Dynamic Zoom In)。【在轻量级识别网络给出的binging box的基础上加上随机扰动】。

CDPN网络则着重于从单一的RGB图像估计6D物体姿态,利用间接法进行物体旋转量的估计,并利用直接法进行物体平移量的估计。作者实验表明,两种参数用不同方法分开估计,在达到精度的同时,速度上也有提升。

CDPN姿态估计网络结构如图3.11所示,训练时,输入单张RGB图像,通过目标检测获取物体的矩形包围框,根据包围框将图片中的目标裁剪下来,利用动态缩放(Dynamic Zoom In)将裁剪下来的带有目标的图片缩放到256x256的大小,再送到神经网络里面,这样后续的网络就不用处理背景信息,而是专门对目标物体进行处理,最后通过主干网络进行特征提取后,分别进行旋转量和平移量的估计。

旋转量估计,使用基于pnp的模型会依赖于物体的关键点,估计模型都是针对特定种类的模型,对其他种类的模型不太适用。因此提出针对物体bounding box的角点的pnp旋转估计网络模型。【但是8的bb角点一般不落在物体的表面上,会大大影响查找精度】,因此采用基于物体坐标的旋转量估计:【之前的BB8?都是寻找三维模型上特征点对应于二维图像的映射坐标。CDPN反其道而行之,预测二维图像上的每个坐标点在三维模型上的坐标值。(将图像像素回归到三维对象坐标的方法不能处理对称对象。。。如PoseCNN则引入了一种新的用于对称目标姿态估计的训练损失函数ShapeMacth-Loss优化了角度误差的分布)】
R模型的输入输出:【三通道二位图像估计三维空间坐标xyz Map,以及一个置信度Map】,由此可以通过RANSAC&PNP的计算得出旋转矩阵。

对于旋转量估计的网络,输出为四通道且大小为64×64的特征图,可分为两种信息,一种是三通道的坐标图,这三个通道分别代表物体三维模型上三维点的坐标值,即第一个通道代表x,第二个是y,第三个是z;另一种是单通道的物体置信度图,图中的每个像素表征是否是目标物体。通过物体置信度图和物体的xyz的三维坐标图就可以通过基于RANSAC的PNP算法建立物体的像素到物体三维坐标的对应关系,从而得到物体的旋转矩阵。

场景图片检测出坐标Cx,Cy,boundingbox大小h,w,为了对应网络模型的输入大小而进行缩放,产生resize ratio:r,以上5维信息与R模型的训练过程是解耦的。
R模型产生的输出信息是Ts,由dx,dy【针对R网络输入图像的中心点的偏移量估计,此处偏移量经过hw归一化与场景图片检测无关。】以及tz,tz为针对扣下来的物体的相对深度值。

对于平移量估计的网络,通过图像预处理,也就是将利用图像中物体的矩形包围框裁剪下目标物体,再缩放到网络需要的大小。其中会从矩形包围框预测一个尺度不变的偏移量,再加上动态缩放过程中矩形包围框的信息和相机的参数就可以得到全局的偏移量。网络利用尺度不变平移估计(Scale-invariant Translation Estimation)不是直接预测绝对平移量T=(Tx,Ty,Tz),而是预测相对平移量(△x,△y,△z),其中相对平移可表示为:

其中(Ox,Oy)、(Cx,Cy)分别代表在原始图像中的物体中心坐标和采样块中心坐标, (h, w)是采样块在原始图像中的大小,r是动态缩放的比例,tz是裁剪下来的图像中物体的一个相对深度值,这个深度值是指在原始图像中物体的中心点距离相机的深度信息与缩放到输入图像大小的比例的一个比值。则绝对平移量可由相对平移量表示为:

其中fx,fy,是相机的参数。

如图3.12为 CDPN姿态估计网络的具体参数结构图,输入图片经过DZI处理得到大小为3x256x256的图片,输入到ResNet-34 的特征提取网络中,经过一系列卷积和池化操作得到512x8x8的特征图,然后将特征图分别送入两个网络,第一个是TranslationHead网络预测物体的平移量,该网络由6个卷积网络和 3个全连接网络组成,输出为预测的相对平移量(△x,△y,△z)。第二个是Rotation Head网络预测物体的旋转量,网络由三个网络块(一个反卷积层和两个卷积层)组成,将特征图变为256x64x64,最后通过一个1x1的卷积将通道数改为4,网络最后输出为4x64x64的特征图,其中一个通道为目标物体的置信度图即 mask,另外三个通道为物体三维模型上三维点的坐标图,后续通过置信度图和坐标图回归物体的旋转量。
物体的位姿可由RANSAC和PnP算法共同求解,在RANSAC算法框架下,迭代使用PnP算法,获得误差最小的值,使位姿估计更加准确。

RANSAC(Random Sample Consensus),即随机抽样一致,能够很好地去除外点!0)。算法的基本思想是,通过多次随机抽取部分数据进行模型估计,然后使用全部数据评估这些模型的正确性并进行比较,得出较好的数学模型。

PnP(Perspective-n-Point)是求解3D到2D点对运动的方法,它描述了当知道n个3D空间点及其投影位置时﹐如何估计相机的位姿。PnP问题有很多种求解方法:P3P,EPnP和光速法平差等。下面简单介绍P3P的原理。

如图3.13为P3P问题示意图。假如世界坐标系下有三个点为A,B,C,三点在相机成像平面上的投影分别为点a, b,c,相机光心为o,根据三角形相似原理有:

对以上式子全体除以OC^2,并记x= OA/OC. y = OB/OC,得


记v = AB^2 / OC^2.uv = BC^2/ OC^2,wv = AC^2 / OC^2,有

将第一个式子中的v放到等式一边,并带入其后两式,得

其中,cos ,cos, cos是已知的,同时u= BC^2/ AB^2,w = AC^2 / AB^2可以通过A,B,C在世界坐标系下的坐标算出,变换到像素坐标系下后,这个比值不变。

求解上述方程得到x和y,得到A,B,C在相机坐标系下的3D坐标,最后根据3D-3D对应关系,计算旋转矩阵R和平移矩阵T。

ICCV: CDPN2019笔记

主要思路就是6D中的Rotation的三维度和Translation的三维度有各自的特点。
首先是介绍6D问题中的两种解决方式:
1)间接方法:利用PnP算法求解3D模型与平面图片的点对,解算出精确的位姿。
2)直接方法:训练平面图片输入到输出位姿估计的网络,一步到位。

对于直接方法,6D中的Rotation的三维度较难通过训练单个网络的形式取得较好的结果,具体论证在论文:Understanding the Limitations of CNN-Based Absolute Camera Pose Regression
故采用两种不同结构的网络模型分别估算Rotation的三维度和Translation的三维度,其中Rotation的三维度利用间接方法PnP算法;而Translation的三维度使用直接方法训练模型。

6-DoF问题相关基础知识笔记相关推荐

  1. access2013数据库实验笔记_医学科研实验基础知识笔记(十):甲基化

    往期回顾 医学科研实验基础知识笔记(一):细胞增殖 医学科研实验基础知识笔记(二):细胞凋亡检测 医学科研实验基础知识笔记(三):细胞周期检测 医学科研实验基础知识笔记(四):细胞自噬研究策略 医学科 ...

  2. 【生信】基因组学相关基础知识2

    [生信]基因组学相关基础知识2 本文图片来源网络或学术论文,文字部分来源网络与学术论文,仅供学习使用. 目录 [生信]基因组学相关基础知识2 9.细胞增殖与分化的定义和区别 10.有丝分裂与减数分裂 ...

  3. 【RAC】RAC相关基础知识

    [RAC]RAC相关基础知识 1.CRS简介    从Oracle 10G开始,oracle引进一套完整的集群管理解决方案--Cluster-Ready Services,它包括集群连通性.消息和锁. ...

  4. Java基础知识笔记-11_2-Swing用户界面组件

    Java基础知识笔记-11_2-Swing用户界面组件 这章教程两个版本,一个语法是非lambda表达式版本,另一个是lambda表达式版本 非lambda表达式版本 1 Java Swing概述 J ...

  5. 二代测序之SNV基础知识笔记总结

    二代测序之SNV基础知识笔记总结 文章目录 二代测序之SNV基础知识笔记总结 SNV基础知识 SNVs Mutation vs. Variant[变异和突变] 不同层次的突变 DNA: 1.编码DNA ...

  6. b站唐老师人工智能基础知识笔记

    b站唐老师人工智能基础知识笔记 0.机器学习(常用科学计算库的使用)基础定位.目标定位 1.机器学习概述 1.1.人工智能概述 1.2.人工智能发展历程 1.3.人工智能主要分支 1.4.机器学习工作 ...

  7. python详细基础知识笔记

    详细基础知识笔记 注: ·第一章 学习准备 1.1高级语言.机器语言.汇编语言 1.2 汇编.解释 1.3 静态语言.脚本语言 1.4 Python的历史 1.5 Python语言的优点.缺点 1.6 ...

  8. HTML基础知识笔记(0基础入门)

    HTML&CSS基础知识笔记 HTML 一.HTML介绍 二.实体 三.meta标签 四.语义化标签(一) 五.语义化标签(二) 六.语义化标签(三) 七.列表 八.超链接 九.图片标签 十. ...

  9. Unity3D基础知识笔记

    Unity3D基础知识笔记 一.Unity简介 1)Unity3D概念 2)Unity3D的特点 二.Unity3D的发展历史 三.软件安装 一.Unity简介 1)Unity3D概念 Unity是由 ...

最新文章

  1. 图像降噪算法——稀疏表达:K-SVD算法
  2. Apache Lucene与Lucene.Net——全文检索服务器
  3. 1+X web中级 Laravel学习笔记——blade模版
  4. 数学 - 线性代数导论 - #10 线性相关性、向量空间的基和维数
  5. java onchange_jsp中select的onchange事件用法实例
  6. Magento重建所有索引方法
  7. 面试官:Spring代理目标bean时为何通过TargetSource类型对目标bean封装?
  8. MyBatis框架的基本使用
  9. win10家庭中文版安装win7虚拟机
  10. 专业的格式转换工具pdf2cad发布v11,支持当前所有的Windows和Mac操作系统
  11. 怎样运用好iMindMap中的虚线箭头
  12. Linux下为空白SD卡建立BOOT,rootfs分区
  13. 房地产微信营销方案微信“危”与“机”
  14. 计算机系要高考英语口语吗,高考英语口语考试_高考英语口语考试到底有什么用?很重要么?...
  15. 2020厦门国际银行数创金融杯建模大赛(一)----赛题说明数据重塑Baseline
  16. 凌晨 12 点突发 Istio 生产事故!一顿操作猛如虎解决了
  17. Java8新特性-Optional类
  18. 最小二乘法计算一组数据的斜率(线性回归、趋势计算)
  19. java+分割+汉字和英文_Java分割中英文,并且中文不能分割一半?
  20. EXCEL-名称管理器

热门文章

  1. Unity 3D:接入原生广告(UnityAds)和 GoogleAdmob 和 Vungle
  2. 人脸识别-闭集测试指标CMC曲线
  3. ES-aggregations
  4. 青云QingCloud Insight 2017: 云计算支撑未来商业图景
  5. ES5、ES6和ES2015有什么区别?
  6. tiny4412开发板LED灯驱动写法
  7. php简单添删改,ThinkPhp的添删改查功能
  8. LTE学习笔记--LTE无线连接过程--网络接入过程
  9. python调用mysql数据_python使用mysql数据库(虫师)
  10. IMX6UL上添加支持矩阵按键