计算机视觉——一种现代方法(第二版)学习笔记

第1章 摄像机的几何模型


如上左图所示,我们需要将一个空间点X映射到一个图像点x(3维->2维)上即

根据右上图我们很容易推到处下面的变换:

这个结论是将图像平面的原点设立在主轴与图像平面的交点上,而实际上我们默认的图像坐标系应该是位于图像的左上角,向下为x轴向右为y轴,因此我们这里进行一个坐标系调整(可以理解为在齐次坐标下对点进行一个平移):


可以简单的从下面的示意图中理解透视投影的基本含义,最核心的步骤就是求透视矩阵:


其中K为摄像机内参,为一个3x3的矩阵,自由度为5,s其中刻画任何可能的传感器轴间的倾斜,u0,v0是以像素坐标表达的光心C’的坐标,α,β为水平与垂直方向上的焦距;[R, t]为外参矩阵,为一个3x4的矩阵,自由度为6(三个旋转,三个平移)。此处x, X的坐标为齐次坐标。

三种常用的投影模型:

针孔成像模型:可以简称为针孔模型,其成像特点是物体成像会近大远小,平行线会相交(考虑一条延伸到地平线的马路的照片)。这个模型对应的投影过程称之为透视投影。针孔成像模型又有多个称呼例如针孔透视投影模型、中心透视投影模型,均表示相同含义。
弱透视投影模型:针对于针孔成像模型做了进一步简化,物体投影时各个点与小孔的距离都用物体的平均距离代替,即不存在近大远小了,因为都是相同距离了。这样成像的大小就是成像平面与针孔距离d,以及物体与针孔距离D之间的比例决定了。这个模型对应的投影过程就称之为弱透视投影。
正交投影成像模型:在弱透视投影上进一步简化,让弱透视投影中仅存的比例为1,其效果等同于平行光线投射到成像平面上。这个模型对应的投影过程称之为正交投影。

总体上,相机成像可以分为四个步骤:刚体变换、透视投影、畸变校正和数字化图像。
一、刚体变换(从世界坐标系到相机坐标系)
世界坐标系(world coordinate)(xw,yw,zw),也称为测量坐标系,是一个三维直角坐标系,以其为基准可以描述相机和待测物体的空间位置。世界坐标系的位置可以根据实际情况自由确定。
相机坐标系(camera coordinate)(xc,yc,zc),也是一个三维直角坐标系,原点位于镜头光心处,x、y轴分别与相面的两边平行,z轴为镜头光轴,与像平面垂直。
刚体变换只改变物体的空间位置(平移)和朝向(旋转),而不改变其形状,可用两个变量来描述:旋转矩阵R和平移向量t:

齐次坐标下可写为:
二、透视投影(从相机坐标系到图像坐标系)
我们可以将透镜的成像简单地抽象成下图所示:
设 f=OB 表示透镜的焦距,m=OC 为像距,n=AO 为物距,有:
一般地,由于物距远大于焦距,即 n>>f,所以 m≈f,此时可以用小孔模型代替透镜成像:
齐次坐标下有:
如果将成像平面移到相机光心与物体之间,则有中心透视模型:

可得:
齐次坐标下有:
总体上看,透视投影将相机坐标系中的点投影到理想图像坐标系,其变换过程只与相机焦距 f 有关。

三、畸变矫正
理想的针孔成像模型确定的坐标变换关系均为线性的,而实际上,现实中使用的相机由于镜头中镜片因为光线的通过产生的不规则的折射,镜头畸变(lens distortion)总是存在的,即根据理想针孔成像模型计算出来的像点坐标与实际坐标存在偏差。畸变的引入使得成像模型中的几何变换关系变为非线性,增加了模型的复杂度,但更接近真实情形。畸变导致的成像失真可分为径向失真和切向失真两类:

畸变类型很多,总体上可分为径向畸变和切向畸变两类,径向畸变的形成原因是镜头制造工艺不完美,使得镜头形状存在缺陷,包括枕形畸变和桶形畸变等,可以用如下表达式来描述:

切向畸变又分为薄透镜畸变和离心畸变等,薄透镜畸变则是因为透镜存在一定的细微倾斜造成的;离心畸变的形成原因是镜头是由多个透镜组合而成的,而各个透镜的光轴不在同一条中心线上。切向畸变可以用如下数学表达式来描述:

在引入镜头的畸变后,成像点从理想图像坐标系到真实图像坐标系的变换关系可以表示为:

四、数字化图像
光线通过相机镜头后最终成像在感光阵列(CCD或CMOS)上,然后感光阵列将光信号转化为电信号,最后形成完整的图像。我们用dx和dy分别表示感光阵列的每个点在x和y方向上物理尺寸,即一个像素是多少毫米,这两个值一般比较接近,但由于制造工艺的精度问题,会有一定误差,同样的,感光阵列的法向和相机光轴也不是完全重合,即可以看作成像平面与光轴不垂直。

我们用仿射变换来描述这个过程,如上图,O点是图像中心点,对应图像坐标(u0,v0),Xd - Yd是真实图像坐标系,U-V是数字化图像坐标系,有:

齐次坐标下有:
上式中的变换矩阵即为相机的内参数矩阵 K,其描述了相机坐标系中点到二维图像上点的变换过程。
综上所述,在不考虑镜头畸变的情况下,相机的整个成像过程可表示为:

四个坐标系之间存在着下述关系 ( 矩阵依次左乘 ):

第2章 光照及阴影

像素的亮度:
1.决定一个像素亮度的三个主要现象
照相机的响应:Icamera(x)=k·Ipatch(X)
设X为空间中一点,其投影至图像表面的坐标点为x,Ipatch(X)为点X处的光照强度,Icamera(x)为相应图像上点x处的响应强度,k为校准常数。
表面反射:光从表面反射到相机的部分
照度:单位表面接收到的光量。

2.在表面的反射

镜面反射:镜面反射是指若反射面比较光滑,当平行入射的光线射到这个反射面时,仍会平行地向一个方向反射出来,这种反射就属于镜面反射。
漫反射:漫反射,是投射在粗糙表面上的光向各个方向反射的现象。当一束平行的入射光线射到粗糙的表面时,表面会把光线向着四面八方反射,所以入射线虽然互相平行,由于各点的法线方向不一致,造成反射光线向不同的方向无规则地反射,这种反射称之为“漫反射”或“漫射”。
高光镜面反射:镜面反射并不像镜子反射那样精确,反射光线主要集中在接近镜面反射方向的某一范围内。以上特点导致出现高光现象,就像从镜子中看到的点光源的镜面反射,当发生此类现象时,高光部分往往是小而明亮的。比如金属勺子和盘子。

3.光源和它们的影响
朗伯余弦定律:表明远点光源照明的漫反射表面的亮度。
I=ρI0cosθ
I0为光源强度,θ为光源与表面法线的夹角,ρ为漫反射率。

这个定律提示了明亮的图像像素来自正向光源的表面,而较暗的像素来源于背离光源的表面。

4.朗伯+镜面反射模型
图像亮度=漫反射部分+ 镜面反射部分+ 周围环境部分
I(x)=ρ(x)(N·S)Vis(S,x)+ M + ρ(x)A
N(x)表示x处的单位表面法向量,S是从x处指向光源的向量且长度为I0,ρ(x)为x处的反射系数,Vis(S,x)表示从x处能看见光源时为1,否则为0。

5.面光源:面光源是指发光的模式,相对led点光源及普通灯具光源而言,现有面光源如平板光源,led面光源具有出光柔和、不伤眼、省电、光线自然等特点。

在面光源环境下,为了计算某表面的光照强度,可以采取将光源分解成若干个小光源,然后通过求小光源的光照强度而得到整体光照强度。若存在遮挡物体,某些表面片对部分小光源将不可见,因而它们整体黑暗,处于全影中。其他表面片将部分但非全部可见到小光源,这些表面片将十分明亮或相对较暗,它们处于半影区。

第3章 颜色

色彩是人的眼睛对于不同频率的光线的不同感受,色彩既是客观存在的(不同频率的光)又是主观感知的,有认识差异。
颜色空间也称彩色模型(又称彩色空间或彩色系统)它的用途是在某些标准下用通常可接受的方式对彩色加以说明。

线性颜色空间:
颜色空间——RGB
RGB:R(Red)红色;G(Green)绿色;B(Blue)蓝色;
RGB是通过红绿蓝三原色来描述颜色的颜色空间,RGB颜色空间以R、G、B 三种基本色为基础,进行不同程度的叠加,产生丰富而广泛的颜色,所以俗称三基色模式。在大自然中有无穷多种不同的颜色,而人眼只能分辨有限种不同的颜色,RGB模式可表示一千六百多万种不同的颜色,在人眼看来它非常接近大自然的颜色,故又称为自然色彩模式。红绿蓝代表可见光谱中的三种基本颜色或称为三原色,每一种颜色按其亮度的不同分为256个等级。
我们通常所说的三通道图就是指RGB通道图像(单通道图是灰度图像)。我们可以将一张图像的R/G/B通道拆分出来

颜色空间——CMY & CMYK(减色混合和油墨)
CMY:C(Cyan)青色;M(Magenta)洋红或品红;Y(Yellow)黄色;
CMY是上述三种颜色的简写,是相减混色模式,用这种方法产生的颜色之所以称为相减色,乃是因为它减少了为视觉系统识别颜色所需要的反射光。
CMYK:C(Cyan)青色;M(Magenta)洋红或品红;Y(Yellow)黄色;K(Black)黑色;
CMYK模型针对印刷媒介,即基于油墨的光吸收/反射特性,眼睛看到颜色实际上是物体吸收白光中特定频率的光而反射其余的光的颜色。印刷四色模式(CMYK)是彩色印刷时采用的一种套色模式,利用色料的三原色混色原理,加上黑色油墨,共计四种颜色混合叠加,形成所谓“全彩印刷”。此处缩写使用最后一个字母K而非开头的B,是因为在整体色彩学中已经将B给了RGB的Blue蓝色。
RGB和CMY的转换:

CIE XYZ颜色空间
线性颜色空间的一般性问题:如果原色是真实光,则对某些波长至少有一个颜色匹配函数是负的。如果使用RGB色彩空间,这一段颜色无法合成。


CIE-XYZ系统,就是在RGB系统的基础上,用数学方法,选用三个理想的原色来代替实际的三原色,从而将CIE-RGB系统中的光谱三刺激值和色度坐标r、g、b均变为正值。
x色度坐标相当于红原色的比例,y色度坐标相当于绿原色的比例。马蹄形的光谱轨迹各波长的位置,可以看到:光谱的红色波段集中在图的右下部,绿色波段集中在图的上部,蓝色波段集中在轨迹图的左下部。中心的白光点E的饱和度最低,光源轨迹线上饱和度最高。
通常越远离中性点的颜色越饱和(饱和度)——深红和浅红的区别,色度——绿色和红色之间的区别,绕着中性点移动。

非线性颜色空间:
HSV颜色空间
HSV是一种将RGB色彩空间中的点在倒圆锥体中的表示方法。HSV即色调(Hue)、饱和度(Saturation)、亮度(Value)。

色调(H):用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°;

饱和度(S)表示颜色接近光谱色的程度。一种颜色,可以看成是某种光谱色与白色混合的结果。其中光谱色所占的比例愈大,颜色接近光谱色的程度就愈高,颜色的饱和度也就愈高。饱和度高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。通常取值范围为0%~100%,值越大,颜色越饱和。

亮度(V)表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白)。

HSV模型的三维表示从RGB立方体演化而来。设想从RGB沿立方体对角线的白色顶点向黑色顶点观察,就可以看到立方体的六边形外形。六边形边界表示色彩,水平轴表示纯度,明度沿垂直轴测量。HSV颜色空间可以用一个圆锥空间模型来描述。圆锥的顶点处,V=0,H和S无定义,代表黑色。圆锥的顶面中心处V=max,S=0,H无定义,代表白色。

第4章 线性滤波

线性滤波器的主要策略是用不同的加权模式计算像素加权和,以寻找不同的图像模式。
1.线性滤波和卷积
二维卷积公式:
几种常见的线性滤波:均值滤波、高斯滤波、中值滤波
均值滤波器:
均值滤波是典型的线性滤波算法,主要方法为邻域平均法,即用一片图像区域的各个像素的均值来代替原图像中的各个像素值。一般需要在图像上对目标像素给出一个模板(内核),该模板包括了其周围的临近像素(比如以目标像素为中心的周围8(3x3-1)个像素,构成一个滤波模板,即去掉目标像素本身)。再用模板中的全体像素的平均值来代替原来像素值。

中值滤波器:
在一连串数字{1,4,6,8,9}中,数字6就是这串数字的中值。由此我们可以应用到图像处理中。依然我们在图像中去3*3的矩阵,里面有9个像素点,我们将9个像素进行排序,最后将这个矩阵的中心点赋值为这九个像素的中值。
通常用来处理椒盐噪声。
高斯滤波器:
高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。高斯滤波最有用的滤波操作,虽然效率往往不是最高的。需要注意的是opencv中的GaussianBlur()是高斯低通滤波器,用来模糊减噪,所以叫高斯模糊。
通常用来处理高斯噪声。

# 平滑处理# 均值滤波,简单的平均卷积操作
blur = cv2.blur(img, (3, 3))
# 方框滤波,基本和均值一样,可以选择归一化
box = cv2.boxFilter(img, -1, (3, 3), normalize=True) #若normalize = False,越界时灰度值取255
# 高斯滤波,越接近核,权重越大,相当于更重视中间的
gaussian = cv2.GaussianBlur(img, (5, 5), 1)
# 中值滤波,相当于用中值代替核
median = cv2.medianBlur(img, 5)res = np.hstack((blur, gaussian, median)) # 将三幅图像横向排列显示,vstack则为纵向显示
print(res)
cv2.imshow('blur vs gaussian vs median', res)

2.移不变线性系统:
三大性质:
叠加性:R(f+g)=R(f)+R(g)
按比例缩放:R(kf)=kR(f)
移不变性:在移不变系统中,对转移了位置激励的响应等于对原激励的响应产生相同的位移。例如投向照相机中心的光为一个小亮点,那么如果这束光投向外围,看到的仍然是同样的小亮点,只是转移了位置。

3.离散和连续卷积的性质:
对称的:
(gh)(x) = (hg)(x)
(gh) = (hg)
可结合的:
((fg)h) = (f(gh))
((fg)h) = (f(gh))

4.离散卷积的边缘效应:
在边缘处计算有些像素位置的卷积值时,需要虚拟并不存在的图像值,采用的策略有
忽略这些点——意味着只考虑所需图像位置有像素点的值
使用常数填充——当输出值接近图像边缘时,卷积输出对图像的依赖程度下降。
使用其他方法填充图像

5.空间频率和傅里叶变换:
什么是傅里叶变换?
表示能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在不同的研究领域,傅立叶变换具有多种不同的变体形式,如连续傅立叶变换和离散傅立叶变换。傅里叶变换是一种分析信号的方法,它可分析信号的成分,也可用这些成分合成信号。
傅里叶变换有什么用呢?
傅里叶变换可以将一个时域信号转换成在不同频率下对应的振幅及相位,其频谱就是时域信号在频域下的表现,而反傅里叶变换可以将频谱再转换回时域的信号。
为什么要在频率域研究图像增强?
·可以利用频率成分和图像外表之间的对应关系。一些在空间域表述困难的增强任务,在频率域中变得非常普通。
·滤波在频率域更为直观,它可以解释空间域滤波的某些性质。
·可以在频率域指定滤波器,做反变换,然后在空间域使用结果滤波器作为空间域滤波器的指导。
·一旦通过频率域试验选择了空间滤波,通常实施都在空间域进行。

二维连续函数f(x,y)的傅里叶变换F(u,v)定义为:

给定F(u,v),通过傅里叶反变换可以得到 f(x,y):

二维离散傅里叶变换及反变换:

给出F(u,v),通过傅里叶反变换得到f(x,y):

二维DFT的极坐标表示:
幅度或频率谱为:
(R(u,v)和I(u,v)分别是F(u,v)的实部和虚部)
相角或相位谱为:
功率谱为:
F(u,v)的原点变换:

每行中第二幅图片是第一幅图片的幅度谱的对数值;第三幅图片为缩放之后的相位谱,-Π是暗色,Π是亮色。最后的图片是将幅度谱进行反转之后得到的图像,尽管这种反转导致了显著的噪声,但是傅里叶变换并没有显著的影响对图像的理解,这反映出在图像感知方面,相位谱比幅度谱更为重要。

6.高斯金字塔

高斯金字塔:向下采样法(缩小)
(图中从下向上)

高斯金字塔:向上采样法(放大)
(图中从上向下)

高斯金字塔由一组不同大小的图像组成。通常在高斯金字塔的底层放置原始图像,当前层(顶层除外)的图像用高斯模板滤波,然后下采样后的图像放在当前层的上一层。拉普拉斯金字塔当前层的图像(与高斯金字塔的上一层对齐)等于高斯金字塔的上一层(底层除外)的上采样图像减去高斯金字塔的当前层图像。彩色图像为红绿蓝三通道值分别相减的结果。

# 图像金字塔-向上(放大)
up = cv2.pyrUp(img)
print(up.shape)
# 图像金字塔-向下(缩小)
down = cv2.pyrDown(img)
print(down.shape)



第5章 局部图像特征

Sobel,Scharr,Laplacian,Canny边缘检测:
https://blog.csdn.net/qq_33562982/article/details/102895625
harris角点检测:
https://blog.csdn.net/qq_33562982/article/details/102869323
DoG高斯差分,SIFT尺度不变特征变换算法:
https://blog.csdn.net/qq_33562982/article/details/102869536
SURF加速稳健特征算法:
https://blog.csdn.net/qq_33562982/article/details/102869803
基于ORB的特征检测和特征匹配:
https://blog.csdn.net/qq_33562982/article/details/102869907
FLANN近邻匹配:
https://blog.csdn.net/qq_33562982/article/details/102913182

第6章 纹理

一、局部纹理表示(每个像素点形成一个纹理描述)
找到纹理基元,纹理基元通常是由子元素构成的(点和条形),可以使用不同方向、尺度、相位的滤波寻找子元素,再通过找到的子元素的近邻来描述图像中的每个点(高斯滤波可实现)。
算法:
1.选定n个关于子元素的滤波器(不同尺度、方向)
2.对图像的每个像素点计算不同滤波器的响应
3.对每个卷积响应采用半波归一化,计算max(0,FiI(x,y))和max(0,-FiI(x,y))
4.计算局部汇总:对所有的滤波响应做高斯滤波,尺度为基滤波器的2倍

二、基于图像区域的纹理表示(池化纹理表示)
如果直接使用基于局部的特征表示构建图像区域的特征,向量维数太大了;如果通过直方图表示区域特征的话,cell个数太多了,因为每个像素的纹理表示多少有些不同。
1.构建词典
一个图像提取多个patch,最简单情况patch就用像素值表示
根据训练集图像的patch(向量)创建词典,可以利用k-means(设定k个数,初始化k个聚类中心,依次计算图像与k个聚类中心距离,将其聚到最近的类中,根据聚类结果更新聚类中心,迭代进行,直到聚类中心不发生大的变化)
学习词典(聚类)过程:

2.提取给定图像区域的纹理
对于给定的图像块,提取多个patch像素向量表示。
与词典中的所有向量做距离运算进行聚类,找到最近距离像素点所在的类并获取纹理类型标记,将其标记加入该图像区域所对应的纹理类型直方图中。
计算完给定图像块的所有patch后便可得该图像块的纹理表示。

三、纹理合成(边界上总有没有合成值)
采取正方形近邻:
从样本图像中随机选择一个小方块像素
将样本图像值插入到合成图像中
直到要合成图像每个位置都有值
对于合成图像边界上没有合成的地方
用样本图像匹配该地方的近邻填入值

CNN中池化的作用?为什么要选择池化

池化也就是pooling,池化层在卷积层之后。在对输入图像进行卷积之后,得到feature map,也就是特征图。池化操作是对feature map进行操作,又分为平均池化和最大池化。
平均池化:倾向于保留突出背景特征
最大池化:倾向于保留突出纹理特征
卷积的作用就是为了提取某些指定的特征,而池化就是为了进一步抽取更高阶的特征。通过池化操作忽略一些细节信息,强行让CNN学到的更多我们想要的高阶信息。

图像特征之LBP

LBP 算子是一种有效的纹理描述算子, 它具有旋转不变性和灰度不变性等显著优点。其基本思想是用其中心像素的灰度值作为阈值,与它的邻域相比较得到的二进制码来表述局部纹理特征。
基本LBP
首先介绍LBP 算子的计算方式。对于一幅图像中的某个局部区域内的任意像素f(xc , yc ),以其为中心点gc , 对3 ×3 窗口内的8 个点g0 ,…, g7 , 纹理T 定义如下:

以窗口中心点灰度值为阈值对窗口内其它像素做二值化处理, 如公式(2)所示:

得到一个8 位的二进制数, 按公式(3)对像素不同位置进行加权求和, 即可得到该窗口的LBP 值:

一个基本的LBP 算子如下图所示。

改进LBP
为了适应不同尺度的纹理特征,对LBP 算子进行了改进, 将3 ×3 邻域扩展到任意邻域, 并用圆形邻域代替了正方形邻域, 采用双线性插值算法计算没有完全落在像素位置的点的灰度值。此外, 改进后的LBP 算子允许在半径为R 的圆形邻域内有任意多个像素点, 如图3 所示。符号表示在半径为R 的圆形邻域内有P 个像素点。

原始LBP与改进LBP的差别:
(1)原始定义于方形邻域上,而修改过的定义于圆形邻域中,从而更易于定义具有旋转不变性的纹理描述算子
(2)修改后的,算子中,其邻域中对角线上的像素值是通过线性内插得到的

计算机视觉——一种现代方法(第二版)学习笔记相关推荐

  1. DirectX 9.0c游戏开发手记之“龙书”第二版学习笔记之1: 开场白

    在开场白之前的说明: 这是"DirectX 9.0c游戏开发手记"的第一部分,叫做"'龙书'第二版学习笔记",讲的是我做"龙书"第二版(原名 ...

  2. Docker技术入门与实战 第二版-学习笔记-7-数据管理(volume)

    Docker 数据管理 为什么要进行数据管理呢?因为当我们在使用container时,可能会在里面创建一些数据或文件,但是当我们停掉或删除这个容器时,这些数据或文件也会同样被删除,这是我们并不想看见的 ...

  3. Windows游戏编程大师技巧第二版学习笔记之第一章 实验补充

    前面记录的一下看书中的重点,编程还是要动手,下面就来动手试试,这里选择VC6.0编译器 这里先来配置游戏编程环境,原书中的dx81sdk_full.exe一共是1百多MB,其实没必要整那么多,看我在我 ...

  4. 利用python进行数据分析第二版学习笔记

    行话: 数据规整(Munge/Munging/Wrangling) 指的是将非结构化和(或)散乱数据处理为结构化或整洁形式的整个过程.这几个词已经悄悄成为当今数据黑客们的行话了.Munge这个词跟Lu ...

  5. Docker技术入门与实战 第二版-学习笔记-2-镜像构建

    3.利用 commit 理解镜像构成 在之前的例子中,我们所使用的都是来自于 Docker Hub 的镜像. 直接使用这些镜像是可以满足一定的需求,而当这些镜像无法直接满足需求时,我们就需要定制这些镜 ...

  6. Docker技术入门与实战 第二版-学习笔记-3-Dockerfile 指令详解

    前面已经讲解了FROM.RUN指令,还提及了COPY.ADD,接下来学习其他的指令 5.Dockerfile 指令详解 1> COPY 复制文件 格式: COPY  <源路径> .. ...

  7. MFC应用程序设计(第二版)学习笔记

    第一章, Windows应用开发基础 基本概念 windows API函数按功能大体分为以下: 窗口管理函数 WUI 图形设备管理函数 GUI 系统服务函数 SUI 早期开发使用软件开发工具包sdk, ...

  8. NO.73——《人工智能·一种现代方法》Agent学习笔记

    Agent 首先,何为Agent?通过传感器感知环境,并通过执行器对所处环境产生影响. Agent的感知序列:是该Agent存储的所有输入历史的完整数据. Agent函数 Agent函数是抽象的数学描 ...

  9. Docker技术入门与实战 第二版-学习笔记-9-Docker Compose 项目-2-Compose 命令说明

    Compose 命令说明 1)命令对象与格式 对于 Compose 来说,大部分命令的对象既可以是项目本身,也可以指定为项目中 的服务或者容器.如果没有特别的说明,命令对象将是项目,这意味着项目中所有 ...

  10. Docker技术入门与实战 第二版-学习笔记-9-Docker Compose 项目-1-举例说明

    Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速在集群中部署分布式应用 Compose 通过一个配置文件来管理多个Docker容器,在配置文件中 ...

最新文章

  1. C# viewstate
  2. tls1.1 tls1.2_Java 8将默认使用传输级别安全性(TLS)1.2
  3. cv2.imread()返回none时应如何解决
  4. python可以做科学计算吗_python能做什么科学计算
  5. go语言struct各种定义和用法
  6. 回忆2020年,这一年有你们真好~
  7. 【转】NHibernate集合映射中的set, list, map, bag, array
  8. SylixOS中AARCH64跳转表实现原理
  9. The North American Invitational Programming Contest 2016 - Tourists ( LCA )
  10. Windows键盘如何映射为Mac使用
  11. 安装win7和XP双系统的注意事项
  12. k线图中的三条线没了怎么办?
  13. 【echarts高级用法】在地理坐标系中镶嵌柱状图,在加上时间轴让图动起来
  14. 贷款那些事之还款方式等额本息(一)
  15. 《矩阵理论》笔记 4 — 矩阵分析及其应用
  16. 图像视频滤镜算法---颜色滤镜
  17. C#-获取当前程序集Assembly的文件名
  18. 深度卷积对抗神经网络 基础 第六部分 缺点和偏见 GANs Disadvantages and Bias
  19. cad中简单流程图制作_如何制作流程图,word快速生成流程图技巧
  20. 2021年11月线上消费信贷市场用户洞察:头部效应明显,绿色金融成新风口

热门文章

  1. 我叫mt4最新服务器,我叫mt4什么时候开新区 开服时间表
  2. 【读书笔记】算法的乐趣
  3. N-ary Tree n叉树学习
  4. 求两数的最大公约数算法
  5. 关于计算机面试重难点 之 操作系统,字节架构师有话说
  6. 关于“一个SAPer的网络日志”
  7. IT公司、软件公司资质(转)
  8. 友盟集成第三方分享和登录
  9. c++实现多项式类定义
  10. 『孩子快抓紧妈妈的手』