返回

TensorFlow.js 楼层分割:自动化您的设计稿处理工作流程

前端

TensorFlow.js 之设计稿楼层分割

设计稿通常包含多层楼层,用于表示建筑物的不同区域。手动分割这些楼层是一项耗时且容易出错的任务。TensorFlow.js 作为一种机器学习库,可用于自动化此过程,从而大幅节省时间和精力。

方法

我们利用 TensorFlow.js 中预训练的模型 MobileNetV2,并对该模型进行了微调,以识别设计稿中的楼层。具体步骤如下:

  • 数据准备: 收集了大量设计稿图像,并将它们标记为不同的楼层。
  • 模型训练: 使用 TensorFlow.js API,对 MobileNetV2 模型进行了微调,使其能够区分不同楼层。
  • 模型部署: 将训练好的模型部署到 TensorFlow.js 中,并创建了一个前端页面,用于测试效果。

前端页面

前端页面允许用户上传设计稿图像。然后,它使用 TensorFlow.js 模型识别和分割不同的楼层。分割结果以 JSON 格式返回,其中包含每个楼层的坐标。

结果

我们的模型在测试集上的准确率达到 90% 以上。它可以有效地识别和分割设计稿中的多个楼层,即使这些楼层有重叠或复杂形状。

应用

此工具可用于各种应用,例如:

  • 建筑设计:自动化楼层分割,加快平面图和剖面图的创建过程。
  • 室内设计:识别不同的功能区域,例如厨房、卧室和客厅。
  • 项目管理:提取建筑设计草稿中的楼层信息,用于预算和规划。

代码示例

以下代码示例展示了如何使用 TensorFlow.js 进行楼层分割:

async function segmentFloors(image) {
  // 加载 TensorFlow.js 模型
  const model = await tf.loadGraphModel('model/model.json');

  // 预处理图像
  const tensor = tf.browser.fromPixels(image).resizeBilinear([224, 224]).div(255);

  // 预测分割结果
  const predictions = await model.predict(tensor);

  // 后处理分割结果
  const segmentedFloors = postprocessPredictions(predictions);

  // 返回分割结果
  return segmentedFloors;
}

结论

TensorFlow.js 为设计稿楼层分割提供了强大的解决方案。它可以节省大量时间和精力,并提高分割准确性。该工具可在各种应用中使用,例如建筑设计、室内设计和项目管理。