基于AWS的3D模型搜索服务实现

3D模型广泛应用于计算机游戏、电影、工程、零售业、广告等许多领域。市场上有很多制作3D模型的工具,但几乎没有工具可以直观地搜索3D模型数据库以找到类似的3D模型 因为开发好的 3D 模型搜索工具非常具有挑战性。 它需要复杂的计算和 AI/ML 框架来创建模型描述符并提取特征向量、数据库来保存和索引大量形状数据以及在大型数据集上进行近实时模式匹配。

在这里插入图片描述

推荐:用 NSDT编辑器 快速搭建可编程3D场景

1、要解决的业务问题

在这篇文章中,让我们了解 3D 模型业务中的实际业务问题,并了解如何在 AWS 云上实施该解决方案。

让我们从一个假设的业务问题开始。 工程设计公司 X 在旧数据存储中存储了大量 3D 模型,他们希望开展一项新业务来在线销售其模型。 公司希望提供使用照片、手绘或 3D 模型对象进行视觉搜索的服务,并找到匹配的 3D 模型,以便客户可以轻松选择和购买他们想要的模型。

在这里,X 公司在遗留数据库中拥有大量 3D 模型。 第一步是将模型下载到云存储(最好是 S3)并提取这些模型的形状和特征数据,然后对数据建立索引,以便将相似的模型分组在一起并实现高效搜索。

2、特征生成和索引

下图说明了形状和特征数据生成和索引的架构。
在这里插入图片描述

以下是实施该解决方案所需采取的步骤。

  • 配置提供无服务器批量计算平台的 AWS Batch 以运行连接到旧数据库并将 3D 模型文件下载到 S3 存储桶的服务。 可以安排它每晚运行。
  • 实施 AWS Lambda 函数来处理 S3 存储桶中下载的 3D 模型,并使用形状表示算法生成形状数据。 生成的形状数据应存储在 Amazon DynamoDB 中。 可以配置此 Lambda 函数以触发 S3 存储桶放置事件。
  • 实施另一个 AWS Lambda 函数,以不同角度创建 3D 模型的多个快照,并将它们作为图像存储在 S3 存储桶中。
  • 使用在众所周知的 ImageNet 数据集上预先训练的卷积神经网络 (CNN) 模型从生成的图像中提取特征,或者使用 Amazon SageMaker 训练和部署的模型
  • Amazon SageMaker 是一个完全托管的机器学习平台,允许创建、训练和部署 在 AWS 云中快速部署机器学习模型。 使用此模型,可以提取图像纹理、几何数据和元数据并将其存储在 Amazon DynamoDB 中。
  • 创建另一个 lambda 函数,以使用步骤 4 中提取的特征数据来丰富步骤 2 中生成的形状数据。现在形状数据已使用特征数据来丰富。 形状数据是一组浮点数。 下一步是将相似的形状分组在一起。
  • 使用 AWS lambda 函数,在 Amazon OpenSearch Service 上构建参考 k-NN 索引,这是一项完全托管的服务,可让你轻松、经济高效地大规模部署、保护和运行弹性搜索。 Amazon OpenSearch Service 提供 k-最近邻 (k-NN) 搜索,可以将形状数据存储为向量,并使用 k-NN 算法按欧几里得距离或余弦相似度对相似的形状数据进行分组。

现在,我们已经生成了富含特征的形状描述符,并使用 k 最近邻 (k-NN) 算法对它们进行了索引。 接下来,展示 3D 模型或模型的 2D 视图(你可以使用工具绘制前视图、顶视图和侧视图)以查询应用程序,以从 Amazon OpenSearch 中的索引数据中查找类似模型。

3、3D模型搜索

下图描述了从模型存储库中查找相似模型的实时 3D 模型搜索的架构。
在这里插入图片描述

  • 使用 S3 中托管的 Web 应用程序,你可以上传 3D 模型对象(如果有),也可以使用草图应用程序绘制模型的顶视图、前视图和侧视图,并将视图作为图像上传。 如果从不同角度呈现更多视图图像,将获得更准确的结果。
  • 上传的图像通过 Amazon API Gateway 发送到 AWS Lambda。
  • AWS Lambda 函数将为上传的模型/图像生成形状描述符,然后调用 Amazon SageMaker 实时端点来提取特征数据。
  • AWS Lambda 函数将利用特征数据丰富形状描述符。
  • AWS Lambda 函数将查询发送到 Amazon Elastic Search Service (Amazon OpenSearch Service) 索引中的 k 最近邻。 它将返回 k 个相似模型数据的列表,并返回模型各自的 Amazon S3 URI。
  • AWS Lambda 函数生成预签名的 Amazon S3 URL 以返回到客户端 Web 应用程序以可视化类似的模型。

本文的目的是解释使用 AWS 服务在 AWS 云上进行 3D 模型搜索服务的架构和高级实现细节。 添加了下面的常见问题解答部分以提供更多详细信息。

4、常见问题解答

  • 什么是 3D 形状描述符?

3D 形状描述符是一组数字,用于表示 3D 模型表面上的点,以捕获 3D 对象的几何本质。 它是 3D 对象的紧凑表示,描述符形成具有有意义的距离度量的向量空间。

  • 如何生成 3D 形状描述符?

有许多算法可用于生成 3D 形状描述符。 他们生成一组 2D 视图数据,这些数据是通过以不同角度旋转 3D 模型而生成的。 更多视图产生更高的准确性。 流行的算法是光场描述符(LFD)和多视图卷积神经网络(MVCNN)。

  • 什么是预训练 CNN 模型?

预训练模型是由某人创建和训练的模型,用于解决与我们遇到的问题类似的问题。 在我们的例子中,我们可以使用预先训练的 resnet50 卷积神经网络,该网络经过 ImageNet 数据库中超过一百万张图像的训练。 resnet50 可作为 SageMaker 中的内置算法使用。

  • 什么是 SageMaker?

它是一项完全托管的机器学习服务,可快速轻松地构建和训练机器学习模型,然后直接将其部署到生产就绪的托管环境中。

  • Amazon Elastic Search Service 与 Amazon OpenSearch Service。

Amazon Elastic Search Service 现在更名为 Amazon OpenSearch Service,它提供最新版本的 OpenSearch 以及由 OpenSearch 仪表板和 Kibana 提供支持的可视化功能。 它使你能够轻松摄取、保护、搜索、聚合、查看和分析大量数据。

  • Amazon OpenSearch Service 的 k-NN 是什么?

它允许你在向量空间中搜索点,并通过欧几里得距离或余弦相似度找到这些点的“k 个最近邻”。


原文链接:基于AWS的3D模型搜索 — BimAnt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/51739.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL系列】Select语句单表查询详解(二)ORDERBY排序

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

C语言:选择+编程(每日一练Day8)

目录 选择题: 题一: 题二: 题三: 题四: 题五: 编程题: 题一:字符个数统计 思路一: 题二:多数元素 思路一: 本人实力有限可能对一些…

k8s 安装 istio(二)

3.3 部署服务网格调用链检测工具 Jaeger 部署 Jaeger 服务 kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.16/samples/addons/jaeger.yaml 创建 jaeger-vs.yaml 文件 apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata…

【面试】一文讲清组合逻辑中的竞争与冒险

竞争的定义:组合逻辑电路中,输入信号的变化传输到电路的各级逻辑门,到达的时间有先后,也就是存在时差,称为竞争。 冒险的定义:当输入信号变化时,由于存在时差,在输出端产生错误&…

使用haproxy搭建web架构

haproxy HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上。 HAProxy提供了可以在七层和四层两种负载均衡能力,它可以提供高可用性、负载均衡、及基于TCP和HTTP应用的代理。适用于负载大的Web站点,在运行在硬件上可…

企业工程项目管理系统源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理) em

​ 工程项目管理软件(工程项目管理系统)对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营,全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#…

mysql数据库root密码遗忘后,修改root密码

目录 方式一: 方式二: 2.1 也可以像我这样,普通用户登录进去后 2.2 执行如下命令,将已知的user1的加密密文更新到root中 2.3 查询数据库 2.4 用root用户登录 2.5 登录正常,但这会root登录进去后,无法…

2023深圳智博会,正运动助力智能装备“更快更准”更智能!

■展会名称: 2023 深圳国际智能装备产业博览会暨深圳国际电子装备产业博览会(以下简称“EeIE 智博会”) ■展会日期 2023年8月29日-31日 ■展馆地点 深圳国际会展中心(宝安新馆) ■展位号 3B030 正运动技术,作为国内领先的…

smartbi token回调获取登录凭证漏洞

前段时间,Smartbi官方修复了一处权限绕过漏洞。未经授权的攻击者可利用该漏洞,获取管理员token,完全接管管理员权限。于是研究了下相关补丁并进行分析。 0x01分析结果 依据补丁分析,得到如下漏洞复现步骤 第一步,设…

网络安全---负载均衡案例

一、首先环境配置 1.上传文件并解压 2.进入目录下 为了方便解释,我们只用两个节点,启动之后,大家可以看到有 3 个容器(可想像成有 3 台服务器就成)。 二、使用蚁剑去连接 因为两台节点都在相同的位置存在 ant.jsp&…

CAD泰森多边形框架3D插件

插件介绍 CAD泰森多边形框架3D插件可用于在AutoCAD软件内生成三维Voronoi框架结构实体模型,适用于多孔Voronoi科研论文渲染绘图、Voronoi框架有限元建模、Voronoi空间结构优化等方面的应用。 使用说明 插件可设置生成的几何尺寸、晶格尺寸及边框直径等信息。 插…

发现一种增加在 GitHub 曝光量的方法,已举报

今天偶然看到一种增加项目和个人在 GitHub 曝光量的方法,但感觉无法赞同这种做法,已经向 GitHub 官方举报。 具体怎么回事呢?我上周在 Vim 插件大佬 tpope 的一个项目提了个 Issue,但一周过去了,大佬也没有回应&#x…

CSDN编程题-每日一练(2023-08-25)

CSDN编程题-每日一练(2023-08-25) 一、题目名称:影分身二、题目名称:小鱼的航程(改进版)三、题目名称:排查网络故障 一、题目名称:影分身 时间限制:1000ms内存限制:256M 题目描述&am…

Git gui教程---第八篇 Git gui的使用 创建一个分支

一般情况下一个主分支下代码稳定的情况下会新建出一个分支,然后在分支上修改,修改完成稳定后再合并到主分支上。 或者几个人合作写一份代码,每个人各一个分支,测试稳定再合并到主分支上。 在git gui选择菜单栏“分支”&#xff0…

什么是代码审计?怎么做?

代码审计是对源代码进行人工或自动化审查,以查找潜在的安全漏洞和隐患。在信息安全测试中,代码审计是非常重要的一环。它主要包括以下几个方面: 1.变量验证:检查代码是否对变量进行验证,防止变量被恶意用户篡改。 2.…

板卡设计+硬件每日学习十个知识点(44)23.8.24 (检测单元设计,接口部分设计,板卡电源输入设计,电源检测电路)

文章目录 1.检测单元介绍(使用GD32单片机)2.GD32的最小系统板3.GD32的温度监测4.GD32的电压监测和电流监测5.GD32的布线6.接口部分设计7.板卡电源输入设计8.电源检测电路 1.检测单元介绍(使用GD32单片机) 答: 首先要为…

Forrester首次面向中国的开源报告:阿里云在云原生领域开源布局最全面

Forrester 于近期发布了《Navigate The Cloud-Native Ecosystem In China, 2023》,报告概述了中国云原生领域的开源项目对构建云原生生态的促进作用,这些开源项目正深刻影响着企业的技术决策者以何种策略拥抱云原生这一现代 IT 基础设施的核心。 报告表…

很干的 Nginx

🎨 前言 本篇文章有些概念性的东西,是结合自己的理解表达出来的,可能有些理解不到位的地方。希望多多指教,谢谢大家。 红包献上 🧧🧧🧧🧧🧧🧧🧧…

深度学习处理文本(NLP)

文章目录 引言1. 反向传播1.1 实例流程实现1.2 前向传播1.3 计算损失1.4 反向传播误差1.5 更新权重1.6 迭代1.7 BackPropagation & Adam 代码实例 2. 优化器 -- Adam2.1 Adam解析2.2 代码实例 3. NLP任务4. 神经网络处理文本4.1 step1 字符数值化4.2 step 2 矩阵转化为向量…

成集云 | 抖店连接器客户静默下单催付数据同步钉钉 | 解决方案

源系统成集云目标系统 方案介绍 随着各品牌全渠道铺货,主播在平台上直播时客户下了订单后不能及时付款,第一时间客户收不到提醒,不仅造成了客户付款率下降,更大量消耗了企业的人力成本和经济。而成集云与钉钉深度合作&#xff0…