三维模型特征提取方法概述

2023-05-16

点击上方“计算机视觉工坊”,选择“星标”

干货第一时间送达

12c28ee220cdcc4d81fa4a2964773355.png

作者I 开拓者5号@CSDN

编辑I 3D视觉开发者社区

一、三维特征提取概述

三维特征提取是模式识别中最基本的研究内容之一,可以有效地缓解模式识别领域经常出现的“维数灾难”问题并对识别性能起着十分重要的作用。

目前国内外对特征提取的研究已日趋成熟并出现了很多特征提取方法,比如主成分分析(PCA)、线性判别分析(LDA)、局部保留映射(LPP)等,但是它们仍存在某些缺陷。主成分分析(PCA)是一种无监督的特征提取算法,它通过最小化样本的重构误差来寻找一组正交变换,将高维数据投影到低维数据空间。线性判别分析(LDA)是一种有监督的学习算法,它的目标是在最小化类内散度的同时最大化类间散度以保留判别信息。当数据规模较大时,LDA会优于PCA,但是当数据规模较小时,PCA会比LDA更具有优势。

传统的线性变换方法,降维后难以保留原始高维数据的局部几何结构,近年来,又出现了许多基于非线性变换的特征提取方法,以基于流形学习的方法最为典型,比如局部保留映射(LPP)、局部线性嵌入(LLE)、等距离映射(Isomap)等,其中局部保留映射(LPP)是一种较为常用的特征提取方法,它是通过构建数据的局部邻接图来保留数据的局部结构并通过最小化任意两个点的加权平方距离和来找到最优的投影。

局部保留特征提取方法的思想来源于流形学习,在低维子空间中保持了原始空间样本点之间的近邻关系,成为继LDA之后的又一著名的特征提取方法,并广泛地应用在人脸识别等领域。

基于向量的特征提取方法是一维数据,对于图形,二维模式特征提取方法效率更高,而针对地质体这种三维对象,需要三维特征提取的方法。

随着三维模型获取技术、计算机图形学以及计算机网络技术的发展,三维模型在很多领域获得了广泛应用,并且形成越来越庞大的三维模型数据库。如何从模型库的海量数据中迅速查找我们所需要的模型已经成为当前迫切需要解决的问题。

通常,完整的基于内容的三维模型检索系统包括特征提取、相似性度量、模型检索、反馈机制、性能评价等方面。

基于模型内容的检索的基本原理为:利用机器自动提取并计算三维模型的内在特征,如形状、拓扑关系、模型表面信息等,通过对待查询模型和目标模型特征之间的相似性匹配来自动建立特征检索索引,实现对三维模型数据库的浏览和检索,其中三维模型的特征提取对三维模型的相似性检索至关重要。

一个理想的特征描述符需要满足以下几个条件:

(1)易于表达和计算;

(2)尽量不受边界噪声、变形、模型简化等影响,应具有良好的鲁棒性;

(3)具有不被模型的平移、旋转、缩放等几何不变性以及不受模型多种格式的变化的拓扑不变性,具有良好的稳定性。

(4)不同模型的特征表示应该尽量不尽相同,即具有唯一性。

迄今为止,国内外已经有多家院校和研究机构开展了特征提取及相关技术的研究,并相继提出了多种特征提取方法,主要分为以下几类:基于轮廓形状的特征提取,基于拓扑形状的特征提取,基于视觉形状的特征提取。

1、基于轮廓形状的特征提取

基于轮廓形状的几何特征提取算法主要是通过计算并比较三维模型的轮廓特征从而获得三维模型的几何相似性来实现。其中,三维模型轮廓特征主要包括了顶点以及网格的分布特征。Osada提出了通过随机采样才获得三维模型的几何特征的形状分布方法。对于从三维模型表面上随机采样得到的两个点,可得到它们之间的欧氏距离(D2距离),更进一步,通过统计以上方法而得到的欧氏距离,可获得三维模型的形状分布曲线。具有相似外形特征但细节不相同的模型也可能有大体相同的形状分布曲线,因此,仅利用一条曲线来表示三维模型的形状,在实际的应用中这通常不够理想,这是Osada算法的缺点所在。

de4369b6166afd481bd76713c71e79ba.png

Osada讨论分析的5 种几何函数

2、基于拓扑形状的特征提取

基于拓扑形状的三维模型相似性比较算法的核心思想是通过比较三维模型的拓扑结构来获得三维模型相似性。其中,最常用的拓扑结构信息包括三维模型的分支与连通性等,如Reeb图。采用基于多分辨率Reeb图的骨架提取方法,不仅可以描述三维模型的特征,同时还具备了描述模型的空间拓扑关系的能力。对于局部匹配乃至全局匹配该方法都是较为适用的。

3、基于视觉形状特征提取

在基于视觉的三维模型相似性比较算法中,主要通过比较三维模型在各个方向的视觉图像的相似性可以获得三维模型的相似性。

二、骨架形状特征提取

骨架形状特征提取更加符合人类视觉特征的可视化描述。该方法是一种基于拓扑的特征提取方法,是通过提取不同组成部分之间的连通关系来描述三维模型的结构特征,其不仅能识别拓扑不同的模型,而且对拓扑相近但几何构造不同的三维模型也能识别,因此具有很好的稳定性。

骨架是一种线性的几何体,可以直观的反映出三维模型原有的形状信息和拓扑性质,是一种性能优良的几何特征。但是要实现对三维模型骨架特征的提取,首先需要解决三维模型骨架特征计算机获取问题。目前骨架可以被理解为三维模型的各部分的内在中轴线(Mediaaxis),基于此国内外学者提出了用烧草模型和最大球(圆)模型来定义骨架。

骨架算法的研究已经进行了很多年,主要集中在二维图形领域,可利用图形中的连通性和单像素性来衡量提出的骨架是否跟原有物体保持相对一致性。通常对于二维平面物体,我们采用连续的曲线表示骨架,类似可用曲面来表示基于体素的三维模型的骨架。由于曲面形式的多样化,很难用统一的形式来描述其特征,因此目前主流的骨架提取算法一般都是直接抽取三维物体的线性骨架(curveskeleton)。

708494a715528d5854eb0af4a51f6ca7.png

三、局部特征提取

为了提高三维模型建模效率,遵循可复用和节约成本的原则,可以适用现有的模型或构件建立模型,找到符合用户意图的三维模型部件已经成为一个新问题。于是三维模型局部检索的出现具有重大现实意义。在三维模型全局特征基础上,三维模型的局部特征提取方法也越来越多。

所谓局部特征是指三维模型某个显著部分或者构件的特征,是相对全局特征而言的。在三维模型的局部特征提取方法中,大多采用了分割三维模型的思路,分割后每个部件的特征可作为三维模型的局部特征。

Marini等团队提出利用Reeb图实现模型的自动分割,并对分割后的每个子部分进行球谱分析提取几何特征,在运用图匹配方法实现模型的局部匹配。

4d11c254f0deedc79bb533b87b925f25.png

参考文献:

赵浩鑫.几种特征提取方法的研究[D].河北大学,2012.

邓军国.三维模型检索中几种特征提取方法实现研究[D].西北大学,2009.

姚小兰.三维模型检索中的特征提取技术研究[D].中国石油大学,2009.

备注:作者也是我们「3D视觉从入门到精通」知识特邀嘉宾:一个超干货的3D视觉学习社区

本文仅做学术分享,如有侵权,请联系删文。

重磅!计算机视觉工坊-学习交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

fa6a96b2bd7b5a638c85acd3a921a055.png

▲长按加微信群或投稿

1f656e0a6b57f554d5c87121d7ab2b9b.png

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列手眼标定相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

7927da6678c43ee19eb466110a75a33f.png

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

三维模型特征提取方法概述 的相关文章

  • 分析int(*p)[4] = a

    面试题 xff1a 二级指针 include lt iostream gt int main int a 3 4 61 0 1 2 3 4 5 6 7 8 9 10 11 int p 4 61 a std cout lt lt p 43 1
  • af::convolve在CUDA中局限性

    使用在Cuda出现访问冲突问题 xff08 opengcl正常 xff09 xff1a af convolve I I kernel 报错 xff1a 0x00007FFC6443ADAC af dll 处 位于 XXXX exe 中 引发
  • 2016

    2016 最近 xff0c 许多朋友兴起总结2016了 xff0c 看得我心痒 xff0c 心热 我自己不禁也总结起来了 别人的总结要么是 2016XXXX 要么是 2016OOOO 我苦思2秒 xff0c 却想不起一个标题来 xff0c
  • gdb反汇编disassemble

    GDB Command Reference disassemble command gdb反汇编可用disassemble disass命令 用法如下 xff1a disassemble disassemble Function 指定要反汇
  • S.M.A.R.T. 参数(smartctl)计算硬盘精确健康值

    参考 xff1a Acronis Drive Monitor Disk Health Calculation 文章目录 1 背景2 smartctl a dev sda3 计算健康值3 1 关键参数3 1 1 公式说明3 2 2 计算举例
  • python脚本——通过telnet连接设备

    文章目录 一 说明二 代码三 用法总结 一 说明 通过telnetlib库 xff0c telnet到设备上并做一些测试 包括重启设备 等待重启完成 其它测试操作等 二 代码 span class token comment usr bin
  • lspci 命令详解及常用命令

    文章目录 一 说明二 参数说明三 用法举例 一 说明 lspci是查看设备上pcie设备信息的命令 该命令的不同参数配合 xff0c 在查看pcie设备和定位pcie问题时很有用 包括查看pcie设备中断号 查看配置空间内容 修改配置空间寄
  • 中断模式和polling模式 && 硬件中断和软件中断

    文章目录 一 总结在前二 中断2 1 硬件中断与软件中断2 1 1 对比2 1 2 硬件中断2 1 3 软件中断 三 polling 一 总结在前 S NOInterruptPolling1中断模式下 xff0c 设备通知CPU有业务需要被
  • dma_alloc_coherent 申请内存用法和问题总结

    文章目录 1 dma alloc coherent用法2 问题3 解决方法方法一 xff0c 走CMA空间配置3 1 内核配置 96 96 CONFIG CMA 96 96 3 2 修改cma起始地址3 3 设置cma空间 xff08 大小
  • hadoop之HDFS:通过Java API访问HDFS

    HDFS是一个分布式文件系统 xff0c 可以通过Java API接口对HDFS进行操作 xff0c 下面记录实现Java API的过程和出现的一些问题及解决方案 环境搭建 导入jar包 common包中的jar文件导入 hadoop 2
  • sonic开发——修改内核配置

    参考 xff1a https github com Azure sonic linux kernel sonic 中的内核配置修改不需要编译menuconfig xff0c 而是直接修改 patch kconfig exclusions和p
  • 计算机内存管理之内存访问

    文章目录 一 设备I O内存访问ioremap amp ioremap nocacheioremap cachedioremap wc amp ioremap wtI O内存访问流程 二 设备地址映射到用户空间mmap过程 三 devmem
  • 内存管理之预留内存

    文章目录 一 memblock二 cmdline 有时候 xff0c 我们需要预留一段内存不受内核直接管理分配 xff0c 有什么办法 xff1f 一 memblock mmeblock是内存的一种管理机制 xff0c 主要管理这两种内存
  • 远程工作的一些命令

    文章目录 git配置ssh免密登录sshfs映射远程目录linux远程控制其它主机vscode ssh失败 git配置 git config global user name usrname git config global user e
  • 机器视觉-相机标定及畸变矫正

    摘要 xff1a 本文首先介绍了针孔相机模型 xff08 线性模型 xff09 xff0c 然后推导四个坐标轴变换的关系 xff0c 引出R T K D中包含相机的5个内参 xff0c 6个外参 然后介绍相机畸变的原因以及畸变模型 xff0
  • STM32的寄存器操作

    STM32最基本的 xff0c 最底层的 xff0c 就是对寄存器的直接操作 通过操作特定寄存器的特定位 xff0c 来实现相对应的功能 本文通过GPIO点亮LED来演示 GPIO 查阅数据手册 xff0c 了解相关内容 启动代码 旧版的k
  • STM32之RTOS:uCOS和FreeRTOS

    RTOS全称是 Real Time Operating System xff0c 中文就是实时操作系统 RTOS是指一类系统 xff0c 如 uC OS xff0c FreeRTOS xff0c RTX xff0c RT Thread 等
  • 树莓派3b系统Ubuntumate16下的tightvnc或xrdp远程控制开机启动

    本文主要是树莓派3b系统Ubuntumate16下 xff0c tightvnc开机自启动的爬坑经验 xff0c 这一技术极大便利了我们在手机 电脑端 xff0c 远程控制树莓派等基于liux系统的移动开发硬件 实现的过程从0到1 xff0
  • 关于spring-boot-maven-plugin插件爆红问题

    关于spirngboot打包插件爆红 xff0c 也就是 Plugin org springframework boot spring boot maven plugin not found错误问题 网上找了一大堆方法试了还是爆红 xff0

随机推荐

  • 198个经典C#WinForm实例源码(超赞)

    198个经典C WinForm实例源码 1 窗体 2 控件 3 图像 4 报表 5 系统 6 文件 7 网络 8 数据库 9 加密 解密 10 硬件读写 01 窗体技巧02 控件操作03 图像操作04 报表打印06 系统操作07 文件处理0
  • MySQL8.0.12重置root密码

    在安装完数据库后 xff0c 由于自己不小心直接关闭了安装窗口 xff0c 或者长时间没有使用root用户登录系统 xff0c 导致忘记了root密码 xff0c 这时就需要重置MySQL的root密码 当然 xff0c 最简单方式自然是删
  • 解决方法集合CondaHTTPError:HTTP 000 CONNECTION FAILED for url<https://mirrors.tuna.tsinghua.edu.cn/anaco

    目录 背景 解决方案 主要原因 xff1a 配置没配对 方法A xff1a 在cmd输入 方法B xff1a 修改 condarc xff08 运行期配置文件 xff09 其他原因 原因A xff1a 开了代理或者VPN 原因B xff1a
  • c# TCP通信编程

    目录 协议类JSON协议类XML协议类 通信信息适配 协议类 span class token keyword public span span class token keyword abstract span span class to
  • 【银河麒麟V10】【桌面】ssh连接问题

    1 xshell secureCRT ssh连接V10 2107报 服务器发送了一个意外的数据包 如下 xff1a 解决方式 xff1a 方式1 使用mobaxterm连接无问题 方式2 sudo vim etc ssh sshd conf
  • 【su问题】su: warning: cannot change directory to /home/oracle: Permission denied

    发现问题 su warning cannot change directory to home oracle Permission denied 解决方法 基本上是根目录 或者是 home oracle目录权限的问题 root 64 myo
  • Nginx安装及配置

    Nginx 安装简介 xff1a 有两个版本 Mainline版 包含最新的特性和bug修改 xff0c 并且总是保持更新 可靠 xff0c 但可能会包含实验性的模块 xff0c 以及一定数量的新 bugStable版 不包含新特性 xff
  • HAL库禁用JTAG,使用PB3、PB4、PA15作为普通IO

    void HAL GPIO Init GPIO TypeDef GPIOx GPIO InitTypeDef GPIO Init HAL RCC AFIO CLK ENABLE HAL AFIO REMAP SWJ NOJTAG 禁用JTA
  • 【FreeRTOS 应用开发笔记】FreeRTOS 的启动流程(三)

    在RTOS中 xff0c 常用的启动方式有两种 xff1a 1 在 main 函数中将硬件初始化 xff0c RTOS 系统初始化 xff0c 所有任务的创建这些都弄好 xff0c 这个我称之为万事都已经准备好 最后 启动 RTOS 的调度
  • Ubuntu下使用命令安装配置中文环境

    1 查看当前语言环境 执行 echo LANG 若输出结果为en US UTF 8 xff0c 则表示当前语言环境为英文 2 安装中文语言包 执行命令 xff1a apt get update amp amp apt get install
  • nvm安装详解,nvm控制node npm版本修改(windows环境)

    一 前言 为什么要用 nvm node升到14 2 npm升到6 14后 运行旧配置需求低版本npm项目时候 就会报错 node sass 等等版本不支持的错误 xff0c 类似 xff1a Module build failed Erro
  • Java中a++与++a的理解

    在编程中我们都熟知 a 43 43 和 43 43 a 两者都是原来的值自身 43 1 xff0c 只不过是前者先进行值得使用再 43 1 xff0c 后者先进行 43 1再使用新的值 xff0c 如下 xff1a int a 61 1 i
  • 面试那些事(一)

    最近裸辞了 xff0c 就觉得解脱了好嗨哦 xff01 终于不要再看到领导丑恶的嘴脸 xff01 终于可以不要再逼着加班啦 xff01 终于周末可以好好的睡一觉了 xff01 本来计划的是找好之后再离职 可是发现根本就没时间去准备 xff0
  • 能ping通,不能ssh登录

    宿主机 ping VMware Linux虚拟机能通 xff0c 但是不能ssh登录 当你试了所有方法都不行时 xff0c linux主机网卡改一个IP地址就好了 xff0c 例如10 0 0 1 10 0 0 2 原因是 Linux网卡
  • docker安装软件时出现:报错:E: You don‘t have enough free space in /var/cache/apt/archives/.

    背景 xff1a 在linux系统下安装了一个docker容器 xff0c 拉取一个debian系统后在系统里使用apt get install进行安装文件 问题 xff1a 报错 xff1a E You don 39 t have eno
  • C语言总结

    1 简述C C语言不但执行效率高而且可移植性好 xff0c 可以用来开发应用软件 驱动 操作系统等 2 第一个C程序 include lt stdio h gt int main printf 34 Hello World 34 retur
  • VNC 1.1 窗口大小修改

    编辑vncserver 文件 vi usr bin vncserver 找到 geometry 61 34 1024x768 34 按 i 修改 按 wq 保存 重启vnc服务即可 PS 不会重启只能一一kill 掉 vncserver k
  • 《Java核心技术》卷1——学习笔记(1)

    第三章的基本语法 1 类名命名规范为骆驼命名法 xff0c 即首字母大写 2 源代码为 java文件 xff0c 编译后字节码文件为 class 控制台先用javac name java命令编译源文件 xff0c 然后用java name运
  • Ubuntu 18.04 install docker-ce(community)

    Ubuntu 18 04 install docker ce community 1 Older versions of Docker were called docker docker io or docker engine If the
  • 三维模型特征提取方法概述

    点击上方 计算机视觉工坊 xff0c 选择 星标 干货第一时间送达 作者I 开拓者5号 64 CSDN 编辑I 3D视觉开发者社区 一 三维特征提取概述 三维特征提取是模式识别中最基本的研究内容之一 xff0c 可以有效地缓解模式识别领域经