掩膜纹理制作

本页面介绍通过SuperMap iDesktopX 10i(2022)及以上版本来制作掩膜纹理。

模型材质导出

本部分主要是通过SuperMap iDesktopX导出城市精细模型材质贴图。操作步骤如下:

  1. 打开SuperMap iDesktopX 10i(2022)及以上版本,加载城市精细模型所在数据源。
  2. 单击工具箱->三维数据->材质处理->生成材质资产,弹出生成材质资产面板。根据需求设置源数据和导出图片路径等参数,然后单击运行
  3. 提取完成后,将模型数据集中所有的纹理贴图导出为*.png图片。如果城市精细模型本身带有*.jpg或*.png的纹理贴图,也可以在此后步骤直接使用。如果数据带有*thd.png格式的烘焙纹理图片,可以批量删除。

基于AI提取窗户

本部分主要是通过SuperMap iDesktopX基于AI来识别提取大规模城市精细模型中的窗户。

该产品提供多个已经训练好的模型,可用于直接提取窗户,节省用户模型训练的时间,如果采用该方案可直接进行“基于训练结果识别窗户”操作。

用户也可以根据需要采用自有纹理进行训练得到新的训练模型。主要思路是将上述部分获取的模型纹理分为两部分,一部分用作手动提取窗户的样本,另一部分用作AI训练对象来自动提取窗户。全流程操作步骤如下:

手动提取窗户样本

  1. 从模型纹理中摘取部分纹理图片作为样本。样本需要具有整体代表性,且是有效纹理(带窗户)。样本数量建议为100个以上。
  2. 启动SuperMap iDesktopX,单击开始->浏览->样本管理->图片样本管理,弹出创建/打开样本库对话框。通过参数设置创建一个新的样本库,其中样本类型选择图片标注,原始图片路径为样本纹理所在路径。
  3. 导入的图片样本库效果如下图:

  4. 通过图片样本管理->样本标签管理->批量绘制功能,在样本库中中带有窗户的纹理图片上绘制和标注窗户区域,其中,玻璃部分的标签设置为Glass,窗框金属部分的标签设置为Metal,窗户石材部分的标签设置为Stone。
  5. 建议

    进行样本标签提取时,尽量绘制和标注正确且全面,有助于提升后续窗户自动提取的识别效果。

  6. 通过图片样本管理->样本管理->导出样本库功能,设置导出参数后(样本库用途选择目标检测),将完成样本标签提取的样本导出至指定路径。导出结果主要包括:
    • Annotations_train:样本库的训练集,保存记录了图片对应的样本标签类型和位置的txt文件。
    • Annotations_val:样本库的验证集,保存记录了图片对应的样本标签类型和位置的txt文件。
    • Images:训练集与验证集中所有带有窗子的纹理贴图的图片。
    • *.sda:样本配置文件。

配置AI训练环境

  1. 关闭SuperMap iDesktopX软件,获取并解压AI扩展包。具体操作步骤见机器学习环境配置
  2. 打开安装了当前使用的SuperMap iDesktopX的文件夹,复制并粘贴AI 扩展包中的resources_ml文件夹至根目录中。
  3. 然后,复制并粘贴AI 扩展包\support\MiniConda\conda文件夹至SuperMap iDesktopX\support\MiniConda文件夹中。
  4. 配置Python环境。
    • 打开SuperMap iDesktopX,单击开始->浏览->Python按钮,然后在弹出的Python窗口的左侧工具栏处,单击Python环境管理按钮。
    • 在Python环境管理对话框选择SuperMap iDesktopX产品包/support/MiniConda/conda/python.exe环境,单击确定按钮,并重启Python环境。
    • 弹出Python窗口则配置成功。

模型训练

  1. 单击工具箱->机器学习->图片分析->模型训练工具,弹出模型训练对话框。
  2. 设置训练数据路径,选择此前导出的图片样本库路径。
  3. 设置训练模型用途,选择目标检测。
  4. 设置模型算法,这里推荐使用Cascade R-CNN。
  5. 设置训练次数,这里推荐50。通常来说,次数越高,效果越准确,但到达一定次数后,准确率不会再上升。
  6. 设置模型存储结果路径。
  7. 参数设置完成后,单击运行,将生成训练结果。
  8. 以下提供一个判断训练次数是否合适的方法。

    在模型训练过程中,训练日志路径下会生成metrics_plot.png图片,用于记录训练次数与训练精度的关系。如下图所示,可以看到训练次数较少时的准确率的折线处于上升状态,说明随着训练次数的上升,训练的准确度也提高,但当训练次数达到40次之后,折线趋于平行横轴,说明提高训练次数已经不能显著提升训练的准确度。

基于训练结果识别窗户

  1. 基于上述训练结果,采用目标检测功能检测识别其他纹理图片中的窗户。
  2. 单击工具箱-机器学习-图片分析-目标检测工具,弹出目标检测设置面板。
  3. 设置源数据文件,输入需要进行窗户提取的纹理贴图路径。
  4. 设置模型文件,输入上述步骤步骤得到的模型训练结果路径。
  5. 设置概率阈值,值越高,窗子提取越精确,但遗漏数也增多。
  6. 设置结果文件路径,指定结果文件输出路径和文件夹名称。
  7. 参数设置完成后,单击运行。生成检测结果,输出多组一一对应的纹理贴图和XML文件。XML文件中记录了识别出的窗户的大小和位置。为了方便查看,也可以新建Annotation与Images文件夹,分别用于存放XML文件和纹理贴图。
  8. 单击图片样本管理->样本管理->导入样本库,弹出选择样本库设置面板,选择上一步骤导出的纹理贴图,即可查看并修改识别提取窗户的效果。
  9. 将样本库中的文件与检测识别得到的文件合并,即可得到项目中提取窗户的所有结果文件。

制作掩膜纹理

本部分介绍基于提取窗户的结果文件制作掩膜纹理。

  1. 单击工具箱->三维数据->材质处理->窗户材质美化工具,弹出窗户材质美化设置面板。
  2. 设置检测结果路径,AI提取的标识有窗户位置的xml文件所在路径。
  3. 设置图片路径,与xml文件对应的原始纹理图片所在路径。
  4. 勾选“游戏引擎使用”。
  5. 设置完成后,单击运行,生成得到带有掩膜纹理的模型数据集。数据集从普通材质变成了PBR材质,并且新增了掩膜纹理,掩膜纹理中玻璃部分用红色填充,金属部分用绿色填充、石材部分用蓝色填充,其余部分用黑色填充。