3DSEE:AI驱动的3D模型语义搜索引擎

3DSEE (3D SEmantic Engine)是基于 AI 技术的 3D 模型语义搜索引擎,可以自动提取 3D 模型内涵的语义信息并存储入库,以帮助用户使用自然语言或关键字高效地检索 3D 模型。3DSEE 提供完善的二次开发 API,无论使用Java、Python、PHP、JavaScript还是C#,都可以在自己的应用中集成 3D 模型的语义提取、入库和自然语言检索能力。

3DSEE官方下载地址:3D模型语义搜索引擎 。

3DSEE 的主要功能包括:

  • 语义提取:3DSEE 能够自动分析和理解 3D 模型内涵的语义信息,这使得用户无需手动添加标签或元数据,即可实现对模型内涵的全面理解。
  • 数据入库:3DSEE 将提取的语义信息和相关元数据统一存储在数据库中,以便快速、高效地进行检索。这为用户提供了一个集中管理和组织 3D 模型的平台,简化了数据管理的复杂性。
  • 自然语言检索:用户可以通过自然语言或关键字对 3D 模型进行检索。3DSEE 利用先进的自然语言处理技术,使用户能够用简单的语言描述来获取所需的 3D 模型,提高了检索的便捷性。

1、文件和目录组织

3DSEE 通过理解用户输入的语义信息,为其提供高效、准确的模型检索体验。当前版本 V1.0,主要文件及目录组织结构如下:

开发包文件说明
src/执行文件目录
src/models/AI模型目录
src/attempt.pyc执行方法文件
src/db.pyc数据管理文件
src/main.pyc引擎入口文件
src/modules.pyc模型调用文件
src/preview.pyc预览图生成文件
src/config.json配置文件
src/requirements.txt需要安装的依赖
installation.mdpytorch3D 安装指南
LICENSE.md开发包许可协议文件

2、环境安装和部署

首先参考 installation.md 安装基本运行环境。

2.1 安装依赖包

在 src 目录下打开 cmd,执行以下命令安装依赖包

pip install requirements.txt -r

2.2 修改配置文件

在 config.json 中修改配置

{
  "port": 3005, //服务端口号
  "host": "127.0.0.1", //服务地址
  "dbconfig": {
    "name": "default", //数据库名
    "host": "192.168.1.139", //数据库地址
    "port": 19530, //数据库端口
    "collection": "my_models", //集合名,首次启动会自动创建集合
    "load_timeout": 30 //加载集合时限
  }
}

2.3 启动服务

在 src 目录下打开 cmd,执行以下命令运行服务

python -m main

启动服务后,可以访问 http://127.0.0.1:3005/docs查看 api 文档(实际端口和 ip 请以配置文件为准)

3、示例程序使用方法

3DSEE 启动后,在example目录下运行以下命令启动示例程序:

npm install
npm run dev

示例程序提供了模型检索和入库功能。

3.1 关键字查询

输入关键字,点击搜索按钮开始查询,返回查询结果。例如,输入关键词car 查询结果如下:

image1

3.2 模型入库

填写表单,点击提交将模型添加到模型库中。

image4

4、API 使用说明

当前文档版本号为 v1.0,更新日期为 2023/11/29。

服务包中提供 2 个访问接口,列表如下。

接口名称访问 url请求
查询模型/GET
添加模型/POST

4.1 模型查询 API

通用调用[查询模型]接口,可以通过中文或英文关键词,查询到与其语义相关的模型。接口详细描述如下:

访问 URL: GET /

请求参数:查询参数的主要字段说明如下:

  • keyword:  必填,关键词, 如:car
  • page:  查询页数,默认值:1
  • limit:  每页返回数量,默认值:10
  • radius:  最小相似度阈值,数值越大则语义相似度匹配范围越大,默认值:1,

请求示例如下(使用 curl):

curl http://127.0.0.1:3005/?keyword=car&page=1&limit=10&radius=3

响应结果:JSON 对象,主要字段说明如下:

  • id:   唯一 id
  • distance:  确定最小相似度阈值,类型:number
  • entity:  json 对象,主要字段如下:
  • data:  3D模型自定义数据,JSON字符串
  • preview:   模型预览图url,字符串
  • path:  3D模型访问路径,字符串

响应结果示例如下:

[
  {
    id: 445859173072122400,
    distance: 1.2356822490692139,
    entity: {
      data: '{"name": "r2"}',
      path: "D:/preview/models/r2.off",
      preview: "http://127.0.0.1:3005/preview/81ac5d31-c11e-45e2-aa94-c39eddf3f459.png",
    },
  },
  {
    id: 445946831156557600,
    distance: 0.7618597269058228,
    entity: {
      data: '{"name": "car"}',
      path: "http://127.0.0.1:3005/preview/67d8abcf-176c-441c-abb5-3712750bd33c.png",
    },
  },
];

4.2 模型添加 API

通用调用[添加模型]接口,可以向库中添加模型。接口详细描述如下:

访问 URL: POST /

请求参数:JSON 对象,主要字段说明如下:

  • data: json 对象,自定义数据
  • path: 字符串,模型本地路径,务必确保可以访问,
  • modelType: 字符串,要添加的模型类型,当前支持:'obj', 'off', ply', 'glb'

请求示例如下(使用curl):

curl -X POST -D '{"data": {}, "path": "./model.obj", "modelType": "obj"}' http://127.0.0.1:3005/

响应结果:返回字符串,表示操作结果信息,例如:

"保存成功"

原文链接:3D模型语义搜索引擎 - BimAnt

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springcloud整合Oauth2自定义登录/登出接口

我使用的是password模式&#xff0c;并配置了token模式 一、登录 (这里我使用的示例是用户名密码认证方式) 1. Oath2提供默认登录授权接口 org.springframework.security.oauth2.provider.endpoint.postAccess; Tokenpublic ResponseEntity<OAuth2AccessToken> pos…

OSPF浅析

一、预习&#xff1a; 1、优点&#xff1a; 是一种典型的链路状态路由协议&#xff0c;协议号89&#xff0c;把大型网络分隔为多个较小、可管理的单元&#xff1a;Area a.减少LSA泛洪范围&#xff0c;有效地把拓朴变化 控制在区域内&#xff0c;达到网络优化的目的…

老师怎样避免精神内耗?

在老师的职业生涯中&#xff0c;遇到的挑战和压力可能会导致精神内耗&#xff0c;这会影响到心理和身体健康&#xff0c;更进一步影响到工作成果和个人生活。为了避免精神内耗&#xff0c;老师可以尝试以下方法&#xff1a; 1. 建立正面的心态&#xff1a;老师需要学会积极思考…

揭秘接口测试的必备基础知识!

这一篇讲接口测试的基础&#xff0c;如果你还在做手工测试&#xff0c;你可以从这里开始入门&#xff0c;做接口测试是最容易的一种自动化测试。 一、接口测试是什么 首先要理解接口测试就是测接口&#xff0c;如图所示&#xff1a; 让我们以数据驱动的视角来看接口测试&#…

Python网络爬虫环境的安装指南

网络爬虫是一种自动化的网页数据抓取技术&#xff0c;广泛用于数据挖掘、信息搜集和互联网研究等领域。Python作为一种强大的编程语言&#xff0c;拥有丰富的库支持网络爬虫的开发。本文将为你详细介绍如何在你的计算机上安装Python网络爬虫环境。 一、安装python开发环境 进…

常见的DOS命令、Java开发环境搭建、配置Path环境变量

目录 一、常见的DOS&#xff08;Disk Operating System、磁盘操作系统&#xff09;命令 二、Java开发环境搭建 1、什么是JDK、JRE 2、JDK版本选择 3、JDK的下载 三、配置Path环境变量 1、理解path环境变量 2、为什么配置path 3、如何配置 一、常见的DOS&#xff08;Dis…

OCP Java17 SE Developers 复习题08

答案 答案 答案 A. This code is correct. Line 8 creates a lambda expression that checks whether the age is less than 5, making option A correct. Since there is only one parameter and it does not specify a type, the parentheses around the parameter are …

【上海大学《面向对象程序设计A》课程小项目报告】抽象向量类模板及其派生类

1 项目内容及要求 本项目通过设计一个抽象向量类模板&#xff0c;以及一个通用的向量类模板和一个字符串类作为其派生类&#xff0c;以满足各种应用场景中的数据存储和处理需求。 项目内容&#xff1a; 抽象向量类模板。派生向量类。派生字符串类。测试及异常处理。联合测试…

顶级资源!五个免费图标素材网站

图片太花哨了&#xff0c;纯文本太单调了&#xff1f;别忘了设计师的魔法武器——图标&#xff01;图标材料是UI设计师不可缺少的一部分。优秀的图标设计不仅可以提高界面美感&#xff0c;还可以提高用户的互动体验&#xff0c;帮助用户更好地了解应用程序的功能和信息。在本文…

SpringBoot+SSM项目实战 苍穹外卖(3)

继续上一节的内容&#xff0c;本节完成菜品管理功能&#xff0c;包括公共字段自动填充、新增菜品、菜品分页查询、删除菜品、修改菜品。 目录 公共字段自动填充新增菜品文件上传实现新增菜品实现 useGeneratedKeys 菜品分页查询删除菜品修改菜品根据id查询菜品实现修改菜品实现…

【unity3D】Transform组件(如何访问和获取Transform组件)

&#x1f497; 未来的游戏开发程序媛&#xff0c;现在的努力学习菜鸡 &#x1f4a6;本专栏是我关于游戏开发的学习笔记 &#x1f236;本篇是unity的Transform组件 Transform组件 基础知识介绍三个成员变量常用属性扩展 Transform的相关查找方法静态方法 基础知识 介绍 在Unit…

在线网页视频提取工具哪个好用?建议收藏!

随着短视频的崛起&#xff0c;很多人都喜欢将视频下载到手机中慢慢观看&#xff0c;这样可以避免在线播放的卡顿问题&#xff0c;但是会遇到一个问题就是在线网页视频提取工具哪个好用&#xff0c;有的可以提取但是画质太差模糊&#xff0c;有的自带水印飞来飞去。今天小编给大…

【AXI死锁】

单主机单从机死锁 AXI4没有WID,所以比较严格,即写数据通道的数据必须严格的按照写地址通道的数据顺序传送,比如AW通道发送ADDR0,ADDR1,ADDR2三笔写操作,每个写操作burst length=2,那么W通道的顺序在AXI4协议的规定下必须为:WDATA0_0,WDATA0_1,WDATA1_0,WDATA1_1,WDATA2_0…

【3】PyQt文本和图片

1. 文本控件 文本控件是QLabel from PyQt5.QtWidgets import QWidget, QApplication, QLabel import sys# 1.创建应用程序 app QApplication(sys.argv)# 2.创建窗口 w QWidget()# 修改窗口标题 w.setWindowTitle(文本展示)# ---------------------------------------------…

从0开始学Spring、Springboot总结笔记(持续更新中~)

文章目录 一.基于SpringBoot进行Web开发入门1.IDEA编译器中创建springboot工程扩展&#xff1a;如何解决pom.xml文件中“找不到Maven插件”的问题&#xff1f; 2.Springboot项目如何编写请求类和请求方法并启动访问编写请求类和请求方法启动Springboot访问 一些学习资源参考 一…

超完整的mysql安装配置方法(包含idea和navicat连接mysql,并实现建表)

mysql安装配置方法 1、下载mysql2、解压到指定的安装目录3、配置初始化文件my.ini4、配置用户变量和系统变量5、初始化mysql6、安装mysql服务并启动修改密码7、使用idea连接mysql8、使用Navicat可视化工具连接mysql&#xff0c;并实现新建数据库&#xff0c;新建表 1、下载mysq…

pta模拟题(C语言7-26 整除光棍、7-27 稳赢、7-28 查验身份证、7-29 出生年、7-30 点赞)

7-26 整除光棍 这里所谓的“光棍”&#xff0c;并不是指单身汪啦~ 说的是全部由1组成的数字&#xff0c;比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如&#xff0c;111111就可以被13整除。 现在&#xff0c;你的程序要读入一个整数x&#xff0…

CentOS增加虚拟内存 (Linux增加内存)

前言 因为囊中羞涩不敢言&#xff0c;所以内存只有2G&#xff0c;项目在运行的时候&#xff0c;占用的内存已经报表&#xff0c;所以有的时候就会出现宕机的情况发生&#xff0c;后面发现可以通过使用增加虚拟内存空间&#xff0c;来增加内存容量。 下面进入正题&#xff0c;讲…

APOLLO自动驾驶技术沙龙:未来已来,共创智能交通新时代

在这次Apollo会议上&#xff0c;我深刻地感受到了人工智能自动驾驶技术领域的最新进展和未来趋势。作为一名从事软件开发工作的人员&#xff0c;我深感荣幸能够参加这次盛会。 前言 本次活动是百度Apollo社区工程师齐聚首钢Park&#xff0c;带来现场实操与技术分享。主要围绕Ap…

B027-MySQL增强

目录 多表查询为什么要用多表查询&#xff1f;笛卡尔积和内连接消除笛卡尔积外键数据库内连接练习左连接查询和右连接查询等值连接out join自连接子查询 数据操作(DML)数据的插入数据的删除数据的修改 数据库的备份与恢复Dos命令行窗口导出Dos命令行窗口导入Navicat导出Navicat…