一种基于鱼眼摄像头的全景图像合成方法及系统与流程

文档序号:12378417阅读:474来源:国知局
一种基于鱼眼摄像头的全景图像合成方法及系统与流程

本发明涉及图像处理技术领域,尤其涉及一种基于鱼眼摄像头的全景图像合成方法及系统。



背景技术:

现在虚拟现实技术中一个关键部件就是自然全景图像的合成,现在常用无失真摄像头的视野一般是60度左右,为了合成360度的全景图像,需要多个摄像头组合成摄像头球面矩阵进行拍摄,现在也有采用广角鱼眼摄像头进行全景拍摄的方案,摄像头个数会大幅度减少,成本有所降低。

若采用摄像头球面矩阵的方法,普遍存在成本高,多摄像头精准同步控制的问题。另外为了合成360度全景图像,多个摄像头需要标定校准,批量生产有不少难度,对图像拼接算法的实时要求也比较高,无法在低成本的嵌入式平台上做实时实现。

因此,现有技术还有待于改进和发展。



技术实现要素:

鉴于现有技术的不足,本发明目的在于提供一种基于鱼眼摄像头的全景图像合成方法及系统,旨在解决现有技术中多摄像头成本高,无法精准控,多个摄像头需要标定校准,无法实现批量生产的问题。

本发明的技术方案如下:

一种基于鱼眼摄像头的全景图像合成方法,其中,方法包括:

A、预先将视角大于一预定角度的两个鱼眼摄像头相向设置,分别获取 相向摆设的两个鱼眼摄像头同步拍摄的第一原始图像和第二原始图像并存储;

B、根据预设的鱼眼摄像头的参数分别对第一原始图像和第二原始图像分别进行矫正,生成矫正后的第一矫正图像和第二矫正图像;

C、拼接第一矫正图像和第二矫正图像,调整鱼眼摄像头的参数对第一矫正图像和第二矫正图像进行校正后,生成对应的第三矫正图像和第四矫正图像;

D、将第三矫正图像和第四矫正图像的交叠区域根据距离加权叠加融合,生成加权叠加融合后的全景图像。

所述的基于鱼眼摄像头的全景图像合成方法,其中,两个鱼眼摄像头分别记为第一鱼眼摄像头,第二鱼眼摄像头,所述C具体包括:

C1、获取第一矫正图像和第二矫正图像中像素相同的点进行图像拼接;

C2、固定第二鱼眼摄像头的投影参数,调整第一鱼眼摄像头的投影参数直到第一矫正图像和第二矫正图像拼接区域间误差最小;

C3、固定调整后的第一鱼眼摄像头的投影参数,调整第二鱼眼摄像头的投影参数直到第一矫正图像和第二矫正图像拼接区域间误差最小;

C4、根据调整后的投影参数分别对第一矫正图像和第二矫正图像进行校正,生成对应的第三矫正图像和第四矫正图像。

任一项所述的基于鱼眼摄像头的全景图像合成方法,其中,所述鱼眼摄像头的参数包括焦距、视角、旋转角度、中心点坐标、径向失真参数和切向失真参数。

所述的基于鱼眼摄像头的全景图像合成方法,其中,所述C2具体包括:

C21、分别获取第一鱼眼摄像头的径向失真参数、切向失真参数及旋转角度、焦距、中心点坐标;

C22、获取第一鱼眼摄像头的径向失真参数、切向失真参数及旋转角度、焦距、中心点坐标中的一个参数,固定第一鱼眼摄像头的其他参数,固定 第二鱼眼摄像头的投影参数,调整获取的参数直到第一矫正图像和第二矫正图像拼接区域间误差最小;

C23、依次调整第一鱼眼摄像头的其他参数,重复步骤C22,直到第一鱼眼摄像头的径向失真参数、切向失真参数及旋转角度、焦距、中心点坐标全部调整完毕。

所述的基于鱼眼摄像头的全景图像合成方法,其中,所述D具体包括:

D1、获取第三矫正图像和第四矫正图像中的交叠区域中的像素点分别在第三矫正图像中的第一像素值和在第四矫正图像中的第二像素值;

D2、计算第一像素值及第二像素值加权平均后,生成叠加后的像素点的像素值;

D3、重复步骤D1和D2,直到叠加区域的所有像素点的叠加像素值全部计算完成后,生成叠加区域的融合拼接结果;

D4、获取叠加区域的融合拼接结果及第三矫正图像和第四矫正图像中的未交叠区域,生成加权叠加融合后的全景图像。

一种基于鱼眼摄像头的全景图像合成系统,其中,系统包括:

预先设置模块,用于预先将视角大于一预定角度的两个鱼眼摄像头相向设置,分别获取相向摆设的两个鱼眼摄像头同步拍摄的第一原始图像和第二原始图像并存储;

校正模块,用于根据预设的鱼眼摄像头的参数分别对第一原始图像和第二原始图像分别进行矫正,生成矫正后的第一矫正图像和第二矫正图像;

拼接与校正模块,用于拼接第一矫正图像和第二矫正图像,调整鱼眼摄像头的参数对第一矫正图像和第二矫正图像进行校正后,生成对应的第三矫正图像和第四矫正图像;

加权叠加模块,用于将第三矫正图像和第四矫正图像的交叠区域根据距离加权叠加融合,生成加权叠加融合后的全景图像。

所述的基于鱼眼摄像头的全景图像合成系统,其中,两个鱼眼摄像头 分别记为第一鱼眼摄像头,第二鱼眼摄像头,所述拼接与校正模块具体包括:

拼接单元,用于获取第一矫正图像和第二矫正图像中像素相同的点进行图像拼接;

第一调整单元,用于固定第二鱼眼摄像头的投影参数,调整第一鱼眼摄像头的投影参数直到第一矫正图像和第二矫正图像拼接区域间误差最小;

第二调整单元,用于固定调整后的第一鱼眼摄像头的投影参数,调整第二鱼眼摄像头的投影参数直到第一矫正图像和第二矫正图像拼接区域间误差最小;

校正单元,用于根据调整后的投影参数分别对第一矫正图像和第二矫正图像进行校正,生成对应的第三矫正图像和第四矫正图像。

任一项所述的基于鱼眼摄像头的全景图像合成系统,其中,所述鱼眼摄像头的参数包括焦距、视角、旋转角度、中心点坐标、径向失真参数和切向失真参数。

所述的基于鱼眼摄像头的全景图像合成系统,其中,所述第一调整单元具体包括:

参数获取单元,用于分别获取第一鱼眼摄像头的径向失真参数、切向失真参数及旋转角度、焦距、中心点坐标;

单个参数调整单元,用于获取第一鱼眼摄像头的径向失真参数、切向失真参数及旋转角度、焦距、中心点坐标中的一个参数,固定第一鱼眼摄像头的其他参数,固定第二鱼眼摄像头的投影参数,调整获取的参数直到第一矫正图像和第二矫正图像拼接区域间误差最小;

参数调整单元,用于依次调整第一鱼眼摄像头的其他参数,直到第一鱼眼摄像头的径向失真参数、切向失真参数及旋转角度、焦距、中心点坐标全部调整完毕。

所述的基于鱼眼摄像头的全景图像合成系统,其中,所述加权叠加模 块具体包括:

像素值获取单元,用于获取第三矫正图像和第四矫正图像中的交叠区域中的像素点分别在第三矫正图像中的第一像素值和在第四矫正图像中的第二像素值;

像素值加权叠加单元,用于计算第一像素值及第二像素值加权平均后,生成叠加后的像素点的叠加像素值;

叠加区域拼接单元,用于获取叠加区域的像素点全部计算完成后的叠加像素值,根据所有像素点的叠加像素值生成叠加区域的融合拼接结果;

全景图像生成单元,用于获取叠加区域的融合拼接结果及第三矫正图像和第四矫正图像中的未交叠区域,生成加权叠加融合后的全景图像。

本发明提供了一种基于鱼眼摄像头的全景图像合成方法及系统,本发明试图通过两个大广角鱼眼摄像头实现360度视频图像的拼接,由于摄像头数目的减少,可以大幅度降低标定校准的难度,提高可生产性,拼接算法可通过参数调整适用于多种不同的鱼眼摄像头,运算量比较低,可在嵌入式设备中实时实现,无缝自然的混叠方法可使拼接区域过渡自然。

附图说明

图1为本发明的一种基于鱼眼摄像头的全景图像合成方法的较佳实施例的流程图。

图2a为本发明的一种基于鱼眼摄像头的全景图像合成方法的具体应用实施例的两个相向设置的鱼眼摄像头示意图。

图2b为本发明的一种基于鱼眼摄像头的全景图像合成方法的具体应用实施例的图2a中的两个鱼眼摄像头的视角示意图。

图3a为本发明的一种基于鱼眼摄像头的全景图像合成方法的具体应用实施例的球面坐标系上一个点(x,y,z)在XY平面的投影示意图。

图3b为本发明的一种基于鱼眼摄像头的全景图像合成方法的具体应用 实施例的球面坐标系上一个点(x,y,z)在XY平面的投影示意图。

图4为本发明的一种基于鱼眼摄像头的全景图像合成方法的具体应用实施例的加权权重示意图。

图5a为本发明的一种基于鱼眼摄像头的全景图像合成方法的具体应用实施例的第一鱼眼摄像头采集的第一原始图像。

图5b为本发明的一种基于鱼眼摄像头的全景图像合成方法的具体应用实施例的第二鱼眼摄像头采集的第二原始图像。

图6a为本发明的一种基于鱼眼摄像头的全景图像合成方法的具体应用实施例的第一鱼眼摄像头采集的第一原始图像矫正后的第一矫正图像。

图6b为本发明的一种基于鱼眼摄像头的全景图像合成方法的具体应用实施例的第二鱼眼摄像头采集的第二原始图像矫正后的第二矫正图像。

图7为本发明的一种基于鱼眼摄像头的全景图像合成方法的具体应用实施例第一矫正图像和第三矫正图像融合后的全景图像。

图8为本发明的一种基于鱼眼摄像头的全景图像合成系统的较佳实施例的功能原理框图。

具体实施方式

为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供了一种基于鱼眼摄像头的全景图像合成方法的较佳实施例的流程图,如图1所示,其中,方法包括:

步骤S100、预先将视角大于一预定角度的两个鱼眼摄像头相向设置,分别获取相向摆设的两个鱼眼摄像头同步拍摄的第一原始图像和第二原始图像并存储;

步骤S200、根据预设的鱼眼摄像头的参数分别对第一原始图像和第二 原始图像分别进行矫正,生成矫正后的第一矫正图像和第二矫正图像;

步骤S300、拼接第一矫正图像和第二矫正图像,调整鱼眼摄像头的参数对第一矫正图像和第二矫正图像进行校正后,生成对应的第三矫正图像和第四矫正图像;

步骤S400、将第三矫正图像和第四矫正图像的交叠区域根据距离加权叠加融合,生成加权叠加融合后的全景图像。

具体实施时,步骤S100中输入图像来源于两个视角(Field of View,FOV)大于180°,相向摆设的鱼眼摄像头。步骤S200中鱼眼摄像头的参数包括焦距、视角、旋转角度、中心点坐标、径向失真参数和切向失真参数等。步骤S300中通过最大化拼接部位两幅图像相关性或最小化拼接部位两幅图像的差异,得最优化摄像头投影参数,并将此参数固定下来,通过投影公式获得投影图表,通过查表大幅度降低投影的运算量,调整摄像头参数对输入鱼眼图像进行校正。步骤S400中对拼接重叠部位的两幅图像,根据相对距离进行加权混叠,使得拼接图像过渡自然。

具体实施时,图3a是球面坐标系上一个点(x,y,z)在XY平面的投影示意图,从球体中心到点(x,y,z)的矢量与Z轴的夹角为θ,我们称之为鱼眼摄像头的入射角,(x,y,z)点在XY平面上的投影点的坐标为(x,y,0),从球体中心到点(x,y,0)的矢量与X轴的夹角为α,如果假设球体半径为单位1,我们可以得到:

z=cosθ

x=sinθ*cosα (公式1)

y=sinθ*sinα

图3b是球面坐标系上这个点(x,y,z)在XZ平面上的投影示意图,从球体中心到点(x,y,z)的矢量与Y轴的夹角为θ^‘,我们称其为纬度,(x,y,z)点在XZ平面上的投影点的坐标为(x,0,z),从球体中心到点(x,0,z)的矢量与Z轴的夹角为α^',如果假设球体半径为单位1,我们可以得到:

y=cosθ′

x=sinθ′*sinα′ (公式2)

z=sinθ′*cosα′

通过(公式1)和(公式2)我们可以在已知(x,y,z)点在XY平面投影(x,y,0)的情况下,获得(x,y,z)点的经度纬度数值:

α′=tan-1(tgθ*cosα) (公式3)

因为我们希望图像拼接是要在两幅鱼眼图像都投影到球面经度纬度情况下,在球面上拼接,这样,我们只需要对已知经度纬度球面上的点,找到其对应两幅鱼眼图像中的点的位置,对其像素进行叠加平均,就可以获得最终融合拼接图像。从(公式1)(公式2)(公式3)我们可以在已知空间点经纬度的情况下,获得鱼眼摄像头的入射角度θ和夹角α:

θ=cos-1(sinθ′*cosα′)

α=ctg-1(tgθ′*sinα′) (公式4)

据(公式4)和(公式1),可以获得三维空间点在XY平面的坐标(x,y)。(公式l)是假设鱼眼摄像头没有径向失真和切向失真情况下得到的投影公式,并且焦距为单位1,但是实际情况,由于鱼眼摄像头的视角大于180°,一定存在径向失真,还可能会有多种不同种类的鱼眼摄像头失真,如(表一)中罗列了几种可能的失真,其中f表示镜头的焦距。

表1

考虑到鱼眼摄像头的径向失真,并假设没有切向失真,根据(公式4)和(公式1),可以获得三维空间点在XY平面的坐标(x’,y’):

r=f*fun(θ,angle)

x′=f*fun(θ,angle)*cosα (公式5)

y′=f*fun(θ,angle)*sinα

其中fun(θ,angle)是θ和鱼眼摄像头视角(FoV)angle的函数,可以用(表1)中的某种解析公式表示,也可以通过θ的多项式表示,如(公式6)所示。另外,(公式1)和(公式5)都假设已知镜头的光学焦点是(0,0),在实际中,光学焦点是采集到图像的某个点,我们标识这个中心点的坐标为(xcenter,ycenter),并且镜头会存在切向失真和旋转,其中切向失真可以表示为:

distort)=ctg-1(tgθ′*sinα′)+Δα (公式7)

旋转可以表示为:

综合考虑上述各种失真参数,可以获得三维空间点在XY平面的坐标(x”,y”)。

进一步的实施例中,步骤S400具体包括:

步骤S401、获取第三矫正图像和第四矫正图像中的交叠区域中的像素点分别在第三矫正图像中的第一像素值和在第四矫正图像中的第二像素值;

步骤S402、计算第一像素值及第二像素值加权平均后,生成叠加后的像素点的叠加像素值;

步骤S403、重复步骤S401和步骤S402,直到叠加区域的所有像素点的叠加像素值全部计算完成后,生成叠加区域的融合拼接结果;

步骤S404、获取叠加区域的融合拼接结果及第三矫正图像和第四矫正图像中的未交叠区域,生成加权叠加融合后的全景图像。

具体实施时,通过(公式9),我们从鱼眼图像中得到对应空间纬度θ′,经度α′的点的像素值P:

P(θ′,α′)=fish(x",y") (公式10)

其中fish(x",y")表示对应坐标(x”,y”)在鱼眼图片中的像素值。本发明中,两个相向的视角大于180°的鱼眼摄像头会有一个重叠区域(例如重叠区域的经度范围是-22.5°~22.5°),通过(公式10),我们可以得到对应同一纬度、经度下空间中的点在两幅鱼眼图像中对应的点的位置和像素值P0、P1,将它们按照距离交汇中心点的远近,对两个投影点的像素值P0、P1进行加权平均,就可以得到重叠区域的拼接图像,如(公式11)所示:

P(θ′,α′)=w0*P0(θ′,α′)+w1*P1(θ′,α′) (公式11)

公式11)中w0和w1表示权重,与空间点距离交汇点的距离远近有关,如果交叉点的精度在15°,那上半个鱼眼图像的权重就大些,下半个鱼眼图像的权重就小些。直到最终误差最小,同时也获得两幅图像最佳的投影参数。

Error=∑θ′∑α′(P0(θ′,α′)-P1(θ′,α′))2 (公式12)

(公式12)中参与误差求和点是所有重叠区域的像素点,一般选定摄像头的镜头后,重叠区域的大小就固定下来。

根据交叉重叠区域的点靠近哪个扇形近,来决定(公式13)中的加权权重,如(图4)所示,重叠区域的夹角为β,蓝色点和扇形上边夹角为β0,那么上半个鱼眼图像与下半个鱼眼图像的权重分别为:

<mrow> <mi>w</mi> <mn>0</mn> <mo>=</mo> <mfrac> <mrow> <mi>&beta;</mi> <mo>-</mo> <mi>&beta;</mi> <mn>0</mn> </mrow> <mi>&beta;</mi> </mfrac> </mrow>

结合(公式12)及根据(公式11)就可以获得交叉区域的融合拼接结果。

进一步的实施例中,步骤S300具体包括:

步骤S301、获取第一矫正图像和第二矫正图像中像素相同的点进行图像拼接;

步骤S302、固定第二鱼眼摄像头的投影参数,调整第一鱼眼摄像头的投影参数直到第一矫正图像和第二矫正图像拼接区域间误差最小;

步骤S303、固定调整后的第一鱼眼摄像头的投影参数,调整第二鱼眼摄像头的投影参数直到第一矫正图像和第二矫正图像拼接区域间误差最小;

步骤S304、根据调整后的投影参数分别对第一矫正图像和第二矫正图像进行校正,生成对应的第三矫正图像和第四矫正图像。

具体实施时,根据(公式5),固定一些投影参数,获得两幅鱼眼图像投影初始化参数。固定鱼眼图像1的投影参数,调整鱼眼图像2的投影参数,包括焦距,图像中心位置,径向失真,切向失真,旋转角度,最小化(公式12)的误差,固定鱼眼图像2的投影参数,调整鱼眼图像1的投影参数,包括焦距,图像中心位置,径向失真,切向失真,旋转角度等,最小化(公式12)的误差,直到总误差小于预定误差。

进一步的实施例中,步骤S302具体包括:

步骤S321、分别获取第一鱼眼摄像头的径向失真参数、切向失真参数及旋转角度、焦距、中心点坐标;

步骤S322、获取第一鱼眼摄像头的径向失真参数、切向失真参数及旋转角度、焦距、中心点坐标中的一个参数,固定第一鱼眼摄像头的其他参 数,固定第二鱼眼摄像头的投影参数,调整获取的参数直到第一矫正图像和第二矫正图像拼接区域间误差最小;

步骤S323、依次调整第一鱼眼摄像头的其他参数,重复步骤S322,直到第一鱼眼摄像头的径向失真参数、切向失真参数及旋转角度、焦距、中心点坐标全部调整完毕。

具体实施时,进一步的实施例中,通过本发明的两个鱼眼摄像头同步采集的鱼眼图像如图5a,5b所示,预设一些参数初始值,如固定焦距,令旋转角度初始值为0,切向失真为0,固定某种径向失真参数,固定图像中心点(x_center,y_center),根据(公式10)获得球面矫正图像;

根据(公式12)和最小化交叉区域的图像差异,调整摄像头参数,这些参数包括焦距,图像中心位置坐标(center_x,center_y),径向失真,切向失真,旋转角度等,这些参数的调整可以采用与最小化交叉区域的图像差异相同的方法,即调整一个参数,固定其他参数,最小化误差,然后依次调整每一个参数,直到收敛;获得如(图6a)和(图6b)所示的球面矫正图像;根据交叉重叠区域的点靠近哪个扇形近,来决定(公式13)中的加权权重,根据(公式11)获得交叉区域的融合拼接结果,如(图7)所示。

本发明还提供了一种基于鱼眼摄像头的全景图像合成系统的较佳实施例的功能原理框图,如图8所示,系统包括:

预先设置模块100,用于预先将视角大于一预定角度的两个鱼眼摄像头相向设置,分别获取相向摆设的两个鱼眼摄像头同步拍摄的第一原始图像和第二原始图像并存储;具体如方法实施例所述。

校正模块200,用于根据预设的鱼眼摄像头的参数分别对第一原始图像和第二原始图像分别进行矫正,生成矫正后的第一矫正图像和第二矫正图像;具体如方法实施例所述。

拼接与校正模块300,用于拼接第一矫正图像和第二矫正图像,调整鱼眼摄像头的参数对第一矫正图像和第二矫正图像进行校正后,生成对应的 第三矫正图像和第四矫正图像;具体如方法实施例所述。

加权叠加模块400,用于将第三矫正图像和第四矫正图像的交叠区域根据距离加权叠加融合,生成加权叠加融合后的全景图像;具体如方法实施例所述。

进一步地,所述加权叠加模块具体包括:

像素值获取单元,用于获取第三矫正图像和第四矫正图像中的交叠区域中的像素点分别在第三矫正图像中的第一像素值和在第四矫正图像中的第二像素值;具体如方法实施例所述。

像素值加权叠加单元,用于计算第一像素值及第二像素值加权平均后,生成叠加后的像素点的叠加像素值;具体如方法实施例所述。

叠加区域拼接单元,用于获取叠加区域的像素点全部计算完成后的叠加像素值,根据所有像素点的叠加像素值生成叠加区域的融合拼接结果;具体如方法实施例所述。

全景图像生成单元,用于获取叠加区域的融合拼接结果及第三矫正图像和第四矫正图像中的未交叠区域,生成加权叠加融合后的全景图像;具体如方法实施例所述。

进一步地,两个鱼眼摄像头分别记为第一鱼眼摄像头,第二鱼眼摄像头,所述拼接与校正模块具体包括:

拼接单元,用于获取第一矫正图像和第二矫正图像中像素相同的点进行图像拼接;具体如方法实施例所述。

第一调整单元,用于固定第二鱼眼摄像头的投影参数,调整第一鱼眼摄像头的投影参数直到第一矫正图像和第二矫正图像拼接区域间误差最小;具体如方法实施例所述。

第二调整单元,用于固定调整后的第一鱼眼摄像头的投影参数,调整第二鱼眼摄像头的投影参数直到第一矫正图像和第二矫正图像拼接区域间误差最小;具体如方法实施例所述。

校正单元,用于根据调整后的投影参数分别对第一矫正图像和第二矫正图像进行校正,生成对应的第三矫正图像和第四矫正图像;具体如方法实施例所述。

进一步地,所述鱼眼摄像头的参数包括焦距、视角、旋转角度、中心点坐标、径向失真参数和切向失真参数;具体如方法实施例所述。

进一步地,所述第一调整单元具体包括:

参数获取单元,用于分别获取第一鱼眼摄像头的径向失真参数、切向失真参数及旋转角度、焦距、中心点坐标;具体如方法实施例所述。

单个参数调整单元,用于获取第一鱼眼摄像头的径向失真参数、切向失真参数及旋转角度、焦距、中心点坐标中的一个参数,固定第一鱼眼摄像头的其他参数,固定第二鱼眼摄像头的投影参数,调整获取的参数直到第一矫正图像和第二矫正图像拼接区域间误差最小;具体如方法实施例所述。

参数调整单元,用于依次调整第一鱼眼摄像头的其他参数,直到第一鱼眼摄像头的径向失真参数、切向失真参数及旋转角度、焦距、中心点坐标全部调整完毕;具体如方法实施例所述。

综上所述,本发明提供了一种基于鱼眼摄像头的全景图像合成方法及系统,方法包括:预先将两个鱼眼摄像头相向设置,分别获取两个鱼眼摄像头同步拍摄的第一原始图像和第二原始图像并存储;分别对第一原始图像和第二原始图像分别进行矫正,生成矫正后的第一矫正图像和第二矫正图像;拼接第一矫正图像和第二矫正图像并进行校正后,生成对应的第三矫正图像和第四矫正图像;将第三矫正图像和第四矫正图像的交叠区域根据距离加权叠加融合,生成加权叠加融合后的全景图像。本发明通过两个大广角鱼眼摄像头实现360度图像的拼接,摄像头数目的减少,可以大幅度降低标定校准的难度,运算量比较低,可在嵌入式设备中实时实现,拼接区域过渡自然。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1