当前位置: 首页 > article >正文

3D模型语义搜索引擎

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

3DSEE 的主要功能包括:

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

1、文件和目录组织

3D 模型语义搜索引擎通过理解用户输入的语义信息,为其提供高效、准确的模型检索体验。当前版本 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 关键字查询

输入关键字,点击搜索按钮开始查询,返回查询结果

image1

  • 输入关键词:car 查询结果如下

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 http://127.0.0.1:3005/?keyword=car&page=1&limit=10&radius=3

响应结果

JSON 对象,主要字段说明如下:

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

响应示例

[
  {
    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 -X POST -D '{"data": {}, "path": "./model.obj", "modelType": "obj"}' http://127.0.0.1:3005/

响应结果

返回字符串表示操作结果信息

"保存成功"

http://www.kler.cn/a/580840.html

相关文章:

  • 聚水潭数据集成到MySQL的高效方法
  • 51c视觉~3D~合集2
  • 笔记本电脑外接固态移动硬盘可以用于深度学习吗
  • Cryptography 与 PyCryptodome 源码级解析
  • MCP-代码解读TypeScript版本
  • (二分 数学推导区间 两个数组的距离值)leetcode 1385
  • 【第21节】C++设计模式(行为模式)-Chain of Responsibility(责任链)模式
  • Redis7——进阶篇(五)
  • Consensus 大会全观察:政策、生态与技术交汇,香港能否抢占 Web3 先机?
  • 【网络编程】WSAAsyncSelect 模型
  • redis 用来实现排行榜的功能
  • Qt 中实现自定义控件子类化
  • scala传递匿名函数简化的原则
  • Android 低功率蓝牙之BluetoothGattCharacteristic详解
  • linux下文件读写操作
  • 探索CAMEL:揭开多智能体系统的神秘面纱
  • upload-labs(1-20)详解(专业版)
  • JVM参数调整
  • Linux——基础IO【3万字大章】
  • 第四次CCF-CSP认证(含C++源码)