基于总布置图二维进行舱室布局的自动识别和舱室模型重建是当前研究的热点之一[1]。Sun等[2]将房间布局表示为3个1D向量,从单个全景图像估计3D房间布局问题。Yang等[3]和Zou等[4]从单个RGB全景图和全景图的2个投影预测3D房间布局。Zhang等[5]通过预测像素级表面参数来学习推断场景中主要平面的深度图即学习房间布局。Cheny等[6]、Zhao等[7]、Jang等[8]提出了建筑平面图二维重建技术,利用图像识别技术和特殊的连线规则重绘房间平面图。三维点云技术被应用于三维模型重构,翟凌宇[9]、姜志刚[10]、张宏鑫等[11]利用三维点云技术对全景图纸信息综合提取关键信息来恢复三维模型。Liu等[12]基于深度学习算法提出栅格数据转矢量的(raster to vector)方法完成房屋重构。上述研究成果在二维重绘及基于图片预测三维模型方面取得了显著进展,但大多数技术主要应用于建筑领域的房间模型识别及建模,在船舶舱室自动识别及数字化建模中的应用较少。与建筑领域相比,船舶舱室模型构建需要特别关注舱室形状复杂性及其处理方法。王晓琦等[13]提出一种三维模型自动生成技术,针对简易舱室总布置图的热度图识别关键点,经过特定规则连线后,将线特征加厚拉伸形成三维模型。但是该技术只实现了对简单舱壁的自动识别,且对单层甲板舱壁舱室识别不完整,并且尚未实现以舱室为单位的自动有效识别和建模,不能得到舱室信息。
因此,基于总布置舱室二维图片,开展基于舱室特征点的舱室自动识别和建模有效实用算法研究,有助于提高船舶舱室数字化设计和建模效率。
1 特征点提取及分类 1.1 特征点提取本文借鉴图像识别和信息提取技术,旨在对船舶总布置图进行特征点识别和信息提取。从二维图片中获取舱室的特征点坐标,具体处理步骤如下:
步骤1 对图像进行灰度化处理。这一步骤的目的是减少图像的信息量,从而提高后续处理的速度和效果。灰度图像仅包含0~255之间的256种灰度变化,而彩色图像则有
步骤2 将灰度图像转换为黑白二值图像。通过设定一个阈值,将大于该阈值的像素点设为白色,小于该阈值的则设为黑色。这一过程起到了图像分割和特征突出的作用。
步骤3 对图片进行边缘检测和降噪滤波处理。由于舱室二维图片上的线条存在一定宽度,可能影响坐标提取的准确性,利用Canny边缘检测算法[14]来减小线条宽度对特征点提取的影响。此外,为了进一步提升识别精确度进行操作,以增强特征点的显示效果。
步骤4 应用Harris角点检测算法[14]识别出所有特征点。从特征点具有的特征出发:即选取一个局部窗口,将这个窗口沿着各个方向移动,计算移动前后窗口内像素的差异的多少进而判断窗口对应的区域是否是特征点,其表达式为:
| $ |E(u,v)| = \sum [w(x,y){[[I(x + u,y + v) - I(x,y)]]^2} 。$ | (1) |
式中:x为像素点横坐标;y为像素点纵坐标;u、v均为窗口偏移量;E为灰度变化;w为权重;I为像素。
步骤5 特征点去重处理。对于坐标重复的特征点只保留1个。
经多次仿真计算误差平均值,本文算法误差为0.18×10−3,Raster-to-Vector 算法[12]误差为0.154×10−2,船体模型生成算法[13] 误差为0.203×10−3。
1.2 特征点分类为了实现舱室自动搜索,需将识别到的特征点按特征分类,特征点分类步骤如下:
步骤1 搜索范围设定。预设上下左右4个方向的搜索长度。
步骤2 相邻特征点搜索。从每个当前点出发,以指定的步长在搜索范围内上下左右4个方向进行相邻特征点搜索。
特征点搜索时须考虑像素误差的影响。如图1所示,点①为当前特征点,直线为搜索方向,若点②与点①的像素误差满足精度要求,则判定点②为点①的相邻特征点,否则点②不是点①的相邻特征点。
|
图 1 相邻点示意图 Fig. 1 Schematic diagram of adjacent points |
步骤3 停止条件。当搜索到相邻特征点时或搜索步长达到预设长度时,搜索停止。
步骤4 特征点分类。根据当前点的正上、正下、正左和正右4个方向特征点的分布情况,将当前点归为13类,如图2所示。其中,1~4类型的特征点代表舱室区的外轮廓为曲线的边界点。
|
图 2 特征点类型 Fig. 2 Corner type |
步骤5 特征点输出。按照分类结果输出各类点的坐标。
通过以上步骤完成了特征点的识别、定位和分类,结果如图3所示。
|
图 3 特征点提取及分类 Fig. 3 Feature point extraction and classification |
优先右转搜索算法,采用顺时针原则对舱室特征点进行搜索,依据特征点的类型,搜索规则如图4所示。特征点1箭头所指方向为右舷;特征点2箭头所指方向为左舷;特征点3箭头所指方向为船首;特征点4箭头所指方向为船尾。
|
图 4 优先右转算法搜索规则 Fig. 4 Preferential right-turn algorithm search rules |
首先,输入一个特征点作为起点,根据特征点的类型判断其作为起点的搜索次数和每一次搜寻下一特征点的方向,找到下一特征点。其次,将该点设为当前点,判断此特征点的类型,再根据优先右转搜索规则确定下一特征点的搜索方向,并找到相应的特征点。以此类推,直到找到的下一个特征点为起点为止,完成舱室特征点的自动识别。然后,按照搜寻路径顺序连接特征点得到舱壁,生成该舱室。
按照上述算法,分别以所有特征点为起点遍历搜索,即可完成所有规则舱室的自动识别。这里,规则形状舱室是指舱室角部均为直角的一类舱室,除此之外属于不规则形状舱室。
采用优先右转搜索算法对全部分类特征点进行搜索计算,得到所有规则形状舱室的搜寻结果,如图5所示。图中示例了3个典型舱室的搜索结果,其中圆圈点表示搜索起点,三角形点表示搜索过程中找到的舱室特征点,箭头表示搜索方向。
|
图 5 规则形状舱室搜索结果 Fig. 5 Regular shape cabin search results |
遍历所有点寻找舱室后会找到重复的舱室,需要进行筛选,若找到的舱室特征点都相同,则删除重复结果。
2.2 不规则形状舱室特征点处理算法不规则形状舱室特征点的处理采用以下算法:
特征点选择。首先,选取一个特征点,并判断其类型是否属于1~4类型。
如果该特征点不是这几种类型,则跳过此点,选择下一个特征点进行判断。
优先右转搜索。如果选定的特征点类型为1~4,以该特征点为起始点,调用优先右转搜索算法来寻找下一个特征点。
封闭条件判断。若找到的下一个特征点也属于1~4类型,则需要检查舱室的封闭条件。这时可能会出现如图6所示的8种情况,图中正确搜索的起点坐标为
|
图 6 不规则形状舱室特征点判断示意图 Fig. 6 Schematic diagram of the judgment of the feature points of the irregularly shaped cabin |
|
图 7 不规则形状舱室特征点示意图 Fig. 7 Schematic diagram of irregularly shaped cabins and feature points |
起点和终点均为4类或3类特征点(情况①和②),且所有同类特征点均不满足判断条件:
| $ {y_1} < y < {y_2}。$ | (2) |
起点和终点均为二类或一类特征点(情况③和情况④),同样地,这些同类特征点也不满足判断条件:
| $ {x_1} < x < {x_2}。$ | (3) |
情况⑤~情况⑧中,起止两端是不同的1~4类特征点,并且没有其他1~4类特征点可以构成有效连接:
| $ {x_1} < x < {x_2},{y_1} < y < {y_2}。$ | (4) |
结果处理。如果上述判断条件被满足,则可以连接起始和结束坐标形成一个封闭舱室。
如果不满足这些条件,则说明此次搜索结果无法构成舱室,需要重新选择下一个特征点作为新的起始点,再次进行搜索。
通过以上步骤,可以系统化地处理不规则形状舱室的特征点,从而确保对舱室结构的准确识别与分析。
2.3 舱室搜寻起点设置规则如下,以确保搜索过程中不遗漏任何房间,并遍历每个房间。方向定义:正右方连线视为第1方向;正下方连线视为第2方向;正左方连线视为第3方向;正上方连线视为第4方向。起点选择:将每一个点视作潜在的起点,并根据其类型规定相应的搜索方式。具体规则如下:一类点只能向第2方向寻找下一个点;二类点只能向第4方向寻找下一个点;三类点只能向第3方向寻找下一个点;四类点只能向第1方向寻找下一个点;五类点仅在第3和第4方向有可用的连接,因此作为起点时可以先向第3方向再向第4方向进行搜索。其他类型的规定依此类推,针对其他类型的特征点,也需明确其作为起始点时的搜寻次数和顺序。
通过以上步骤,可以获得完整的船舶舱室舱壁搜索结果,如图8所示。右上角结果图展示了2个典型不规则舱室的搜索路径。其中圆圈代表搜索起始点,三角形表示在搜索过程中找到的舱室特征点,而箭头则指示了搜索的具体方向。
|
图 8 舱室自动识别 Fig. 8 Cabin automatic recognition result diagram |
通过舱室自动搜索算法,可以得到舱室特征点坐标,根据坐标进行计算可得到舱室信息要素,包括:舱室位置、舱室尺寸、面积及面积心坐标、体积及体积心坐标、面积矩、体积矩等,将所得信息计入舱室信息数据库。其中,根据特征点坐标计算舱室面积及形心时,由于舱室形状复杂,可采用高斯面积公式:
| $ \begin{split} {{A}} =& \frac{1}{2}\left| {\left( {\sum\limits_{i = 1}^{n - 1} {{x_i}} {y_{i + 1}}} \right) + {x_n}{y_1} - \left( {\sum\limits_{i = 1}^{n - 1} {{x_{i + 1}}} {y_i}} \right) - {x_1}{y_n}} \right| = \\ &\frac{1}{2}\left| {\sum\limits_{i = 1}^n {{x_i}} ({y_{i + 1}} - {y_{i - 1}})} \right| = \frac{1}{2}\left| {\sum\limits_{i = 1}^n {{y_i}} ({x_{i + 1}} - {x_{i - 1}})} \right|= \\ &\frac{1}{2}\left| {\sum\limits_{i = 1}^n d et\left( {\begin{array}{*{20}{c}} {{x_i}}&{{x_{i + 1}}} \\ {{y_i}}&{{y_{i + 1}}} \end{array}} \right)} \right| = \frac{1}{2} \cdot \left| {\sum\limits_{i = 1}^n {{v_i}} \wedge {v_{i + 1}}} \right|。\end{split} $ | (5) |
式中:A为舱室面积;n为舱室特征点个数。
形心计算公式为:
| $ \left\{\begin{aligned} &C_x=\frac{1}{6A}\sum^{n-1}_{i=0}(x_i+x_{i+1})(x_i y_{i+1}-x_{i+1} y_i),\\ &C_y=\frac{1}{6A}\sum^{n-1}_{i=0}(y_i+y_{i+1})(x_i y_{i+1}-x_{i+1} y_i)。\end{aligned} \right.$ | (6) |
式中:
在此基础上,生成三维舱壁模型和三维舱室模型,分别如图9和图10所示。模型生成算法采用通用的obj三维模型格式。根据舱室自动搜索算法得到的特征点坐标、特征点方向以及舱壁线段特征信息,将所绘制的舱壁二维图的各舱壁线段按指定拉伸长度拉伸后,即可得到舱壁三维模型信息并写入obj文件。根据舱室自动搜索算法得到的舱室特征点坐标确定舱室平面,将舱室二维面垂向拉伸指定高度后即可得到舱室三维模型信息并写入obj文件。
|
图 9 舱壁三维模型图 Fig. 9 Three-dimensional drawing of the bulkhead and room of the cabin |
|
图 10 舱室三维模型图 Fig. 10 Three-dimensional drawing of room of the cabin |
利用通用三维建模工具软件(如Solidworks)可根据obj文件生成舱壁、舱室三维模型。这样,不仅能够有效管理和利用舱室数据库信息,还能直观展示舱壁、舱室的空间分布。
4 结 语针对船舶总布置设计中对数字化和智能化建模技术的需求,提出了一种基于总布置图二维图片的船舶舱室自动识别方法。主要结论如下:
1)将Harris角点识别算法和Canny边缘处理算法应用于船舶舱室特征点识别。开展了基于二维船舶总布置图图片的舱室关键特征点的自动精确识别、定位与分类技术研究,突破了自动准确识别舱室特征点及对特征点进行分类的关键技术。
2)提出了一种舱室自动识别新算法。提出了优先右转搜索算法,解决了规则舱室的自动识别问题。提出了不规则形状舱室特征点处理算法,解决了边缘不规则舱室的自动识别问题。基于上述2个算法实现了基于舱室二维图片的各类舱室的自动准确识别。
3)舱室三维数字化模型自动构建。结合特征点识别、定位和分类技术及优先右转搜索算法以及不规则形状舱室特征点处理算法,实现了总布置三维舱室模型的自动建模,可为后续舱室分类及布局设计要素计算分析提供基础模型和数据。
| [1] |
刘寅东. 高等船舶设计原理[M]. 大连: 大连海事大学出版社, 2021.
|
| [2] |
SUN C, HSIAO C W, SUN M, et al. HorizonNet: learning room layout with 1D representation and panostretch data augmentation [C]//Proceedings of 2019 IEEE/ CVF Conference on Computer Vision and Pattern Recognition (CVPR). Long Beach, CA, US, 2019.
|
| [3] |
YANG S T, WANG F E, PENG C H, et al. DuLa-Net: a dual projection network for estimating room layouts from a single RGB panorama[C]//Proceedings of 2019 IEEE/ CVF Conference on Computer Vision and Pattern Recognition. Long Beach, CA, US, 2019.
|
| [4] |
ZOU C, COLBURM A, SHAN Q, et al . Layoutnet: reconstructing the 3d room layout from a single rgb image[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Salt Lake City, UT, US, 2018.
|
| [5] |
ZHANG W D, ZHANG W, ZHANG Y D. Geo Layout: geometry driven room layout estimation based on depth maps of planes[C]// Proceedings of European Conference on Computer Vision. Berlin, Germany: Springer, 2020.
|
| [6] |
CHENY X, WANG C X. Two-stage Floor Plan Recognition with a Network Employing Attention Mechanism[C]//2024 IEEE 14th International Conference on Electronics Information and Emergency Communication (ICEIEC). Beijing, China, 2024.
|
| [7] |
ZHAO Y F, DENG X Y, LAI H H. Reconstructing BIM from 2D structural drawings for existing buildings[J]. Automation in Construction, 2021, 128.
|
| [8] |
H JANG, K YU et al. , Indoor reconstruction from floorplan images with a deep learning approach [J]. International Journal of Geo-Information, 2020, 9(2): 65.
|
| [9] |
翟凌宇. 室内场景的房间空间分割与三维重建方法研究[D]. 西安: 西安理工大学, 2024.
|
| [10] |
姜志刚. 基于全景图的房间布局重建算法研究[D]. 上海: 华东师范大学, 2022.
|
| [11] |
张宏鑫, 方雨桐, 刘木水, 等. 复杂建筑平面图纸的空间布局融合对偶识别方法[J]. 武汉大学学报(信息科学版), 2021, 46(9): 1354-1361. |
| [12] |
LIU C, WU J J, KOHLI P, et al. Raster-to-vector: revisiting floorplan transformation[C]//Proceedings of the IEEE International Conference on Computer Vision. Venice, Italy, 2017.
|
| [13] |
王晓琦, 赵旸, 张键, 等. 基于深度学习的船体三维模型自动生成方法[J]. 兵工学报, 2022, 43(S2): 115-119. DOI:10.12382/bgxb.2022.B011 |
| [14] |
王赛赛, 周阿维. 基于Canny-Harris角点检测的光学元件表面疵病检测[J]. 机械与电子, 2024, 42(8): 26-33. |
2025, Vol. 47

