基于侧影轮廓的三维模型构建

news/2024/5/21 0:35:45/文章来源:https://www.cnblogs.com/tangjielin/p/16784547.html

建模过程

图像的获取

由于待建模物体具有较多细节,因此选择在同一个方向拍摄两个角度的照片(手机倾斜角大约为60度和45度,如下图所示),以及顶部细节照片,最终拍摄的有效照片为35张。

image-20220920144652089

模型构建

新建项目,并导入所有拍摄的照片

image-20220920161338659

照片掩饰

可以先采用自动掩饰工具将物体轮廓从背景上大致分离出来,但是由于拍摄条件限制,物体下部分轮廓与垫板背景的区分度不够,因此自动掩饰的效果较差。

image-20220920144820392

后采用套索工具发现工作量较大,而且掩饰效果也没有达到预期效果,仍需要大量修改细节部分。

image-20220920144837150

通过网络搜索发现可以使用魔法标记工具(Magic Highlighter Tool)在对象边界周围粗略绘制后,直接填充背景即可获得较好的掩饰效果,且大大提高了工作效率。

image-20220920144853546

image-20220920144905697

模型体积生成

生成线架构模型

生成的线架构模型已具有草莓熊玩偶的雏形,但其表面的尖锐凸起相对较多。

image-20220920145005944

优化体积

优化后将一些明显的尖锐或突变部分加以消除,但其依然存在一定数量的尖锐地带,与真实物体形态还存在一定差异。

image-20220920145101258

image-20220920145129201

细化表面

可以发现细化表面这一步骤中将物体的可见外壳进一步细化了,表面线条更加流畅,接近真实物体的形态。

image-20220920145154717

纹理映射

利用前面拍摄的多角度图像对模型进行纹理映射

image-20220920145457065

模型展示

模型各角度展示

654

321

image-20220920144220754

外形:可以看到草莓熊玩偶的外部细节都被清晰刻画出,且没有发生太明显的畸变,例如草莓熊的刘海、手臂、脚。

纹理:由于拍摄时在室内拍摄,光线照射不均匀,所以模型给人一种一边两一边暗的感觉。同时也存在一些缺陷,例如草莓熊背后的拉环建模较差,推测是由于在多角度图像中缺少这个部位的具体信息。此外草莓熊玩偶背后的标签在建模后仅留下了根部,其余部分均消失。推测是由于对标签的拍摄角度过少导致的。

物体部位尺寸测量:

测量前,在系统中设置的所用定标垫的单位长度(经实际测量为72mm)。

image-20220920151939582

草莓熊模型两手尖之间的距离为11.7cm

image-20220920151744073

草莓熊模型两脚尖之间的的距离为3.7cm

image-20220920151817916

草莓熊模型头顶到屁股的距离为10.2cm

image-20220920151913082

问题与思考

模型存在问题

建模后模型底部的纹理混乱,且被映射了顶部的纹理。与其它同学交流发现也存在这个问题,推测是由于缺少物体底部的照片,系统将同一方位的顶部纹理映射至底部。解决办法可以仿照实验案例中的土豆拍摄方式,使用体积尽量小的材料作为物体支架,使得待建模物体的底部充分暴露出来,且可以被拍摄到,从而获得物体底部的照片。

image-20220920152309135

底部图片与顶部图片问题

顶部与底部图像并不属于“多角度图像”范畴,因此相对位置这一限定对其而言并无要求。此外,进一步思考还可以发现,在利用顶部与底部图片进行纹理手动匹配时,我们需要手动调整图像中目标物体与已有模型的相对位置——这一步在一些角度上可以认为是通过“人工”的方式进行了顶部或底部图像的“定标”;而之所以要求前述多角度图像相对位置不变正是由于软件需要借助其与定标垫的位置关系加以自动进行定标。因此,便可以解释底部图片(包括顶部图片)无需规定相对位置不变的原因。但实际上因为我们很难保证在颠倒后角度和相对位置不变,特别是对于本次实验中的这类比较复杂的问题,因此颠倒可能导致纹理更加混乱

薄面物体的建模问题

草莓熊玩偶背后的标签在建模后仅留下了根部,其余部分均消失,推测是由于对标签的拍摄角度过少导致的。在拍摄时应遵循如下原则:

  1. 只要眼睛能通过物体(包括狭小的缝隙)看到背景,就要对该方向的物体进行拍摄。
  2. 只要视线与诸如标签这样的薄面物体平行, 就要拍下该方向的照片
image-20220920153107072

侧影轮廓建模方法

基本原理

三维模型重建的方法可分为主动方法和被动方法两大类。主动方法主要以仪器直接去测量物体表面的三维信息,获得三维点云, 再用点云算法重建物体的表面以及获得三维模型,主动方法可以提供较高精度的三维模型,但需要非常昂贵的设备。被动的方法主要研究如何根据相机在不同视角拍摄的图像序列进行物体的三维模型重建[1]。而侧影轮廓建模方法就属于被动的建模方法。

侧影轮廓是物体投影在成像平面上图像的外形线条,它从特定角度描述了物体的几何形状。当以透视投影的方式从多个视角观察某一空间物体时,在每个视角的画面上都会得到一条该物体的侧影轮廓线,这条侧影轮廓线和对应的透视投影中心共同确定了三维空间中一个一般形状的锥体,而所观察对象物体便位于这一立体锥体内部。而所有这些空间锥体的交则构成了一个包含该物体的空间包络[4],这个空间包络被称为物体的可见外壳。因此,当观察视角足够多时,可使得这个可见外壳不断逼近对象物体表面,从而实现目标物体的空间三维的可视化。因此基于侧影轮廓的三维重建技术只需对普通数码相机围绕物体拍摄得到的多幅图像进行处理,即可重建出复杂曲面模型[2]。image-20220920162650026

为确定多角度图像的相对位置,相机标定是这类三维重建技术的必要步骤。通常使用标定装置(如已标定的固定相机或标记点)辅助标定[3]。本实验中的相机定标借助定标垫来完成。定标垫由15组共线的四点组组成,呈放射状排布。每一组点的大小分两个等级,过各点组圆心的直线相交于圆心。每组点集的大小排列顺序不同,不同点集组合唯一确定一个方向。因此可以根据各图像中不同点集合的位置,来确定对应相机的拍摄方位,并进一步将若干多角度图像位置关系加以求解。

基本流程

drawio2

参考文献

[1]阮孟贵,章毓晋.基于侧影轮廓的三维模型快速重建[J].计算机应用,2010,30(11):2998-3001.

[2]谷月霞,张维忠,王晓燕,油世明,王静.基于未标定图像的三维重建算法[J].计算机工程,2010,36(08):214-216.

[3]刘钢,彭群生,鲍虎军.基于图像建模技术研究综述与展望[J].计算机辅助设计与图形学学报,2005(01):18-27.

[4]曹煜陈秀宏. 基于侧影轮廓的图像三维重建方法[J]. 计算机工程, 2012, 038(005):224-226,229.

[5]蔡高剑. 基于无人机航拍的三维重建技术研究[D].长安大学,2017.

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

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

相关文章

kotlin koin

介绍 Koin是一个面向Android developer的依赖注入框架使用场景 为什么要用依赖注入框架? 比如我们有一个下载器对象Downloader,需要下面三个对象才能完成构造。但是这个下载器对象在各个活动中使用频繁val executor = Executor() val client = HttpClient() val request = Re…

使用 Zpan 搭建低成本个人私有网盘,还不限速

摘要:本文就介绍一个不限速的低成本个人网盘——ZPan,相较于老牌的私有网盘 OwnCloud 等,Zpan 有一个独有的优势:不限速。本文分享自华为云社区《使用 Zpan 搭建低成本个人私有网盘》,作者: 云存储开发者支…

甘特图:制定项目计划的三个要点

任何事情都要有计划,这样才能保证自己的事情按照既定的目标和轨迹推进 制定计划首先要明确以下三点: 1、目标明确:做这个项目是做什么的要达成什么目标。 2、任务明确:达成这个目标要做哪些事,有具体的实施推进步骤。…

MP-SPDZ详细介绍

基础知识概述 隐私计算底层协议包括两种:其一是基础的加密传输协议,用于信息分发,包括不经意传输、秘密分享、同态加密、零知识证明等。其二是加密计算协议,包括乱码电路、同态加密、零知识证明等。 不经意传输是所有隐私计算协…

python 运行错误收集

目录global全局声明错误 global全局声明错误 SyntaxError: name is_login is used prior to global declaration 解决办法:global is_login 放在 if is_login:的上面 is_login = Falsedef login_auth(func_name):def inner(*args, **kwargs):if is_login:res = func_name(*arg…

AlphaZero强化学习模型

搬来了DeepMind的AlphaTensor DeepMind前不久发在Nature上的论文Discovering faster matrix multiplication algorithms with reinforcement learning引发热议。 这篇论文在德国数学家Volken Strassen「用加法换乘法」思路和算法的基础上,构建了一个基于AlphaZero…

[GWCTF 2019]我有一个数据库

打开题目是乱码,好奇怪 御剑扫一下 扫到了phpmyadmin 版本为4.8.1 这个版本是有漏洞的(CVE-2018-12613),复现一下 部分源码: $target_blacklist array (import.php, export.php ); ​ // If we have a valid target…

SpringBoot统一处理返回格式

在对接第三方接口的时候,第三方接口返回格式形式为{"result":null,"status":1010},虽然返回了状态码,但是状态码对应的描述信息并没有携带,前端在使用的时候需要根据状态码返回一个友好的提示,如此…

刘韧:我每时每刻都会注意管理自己的知识

1. 担心总能让我积极行动起来。2. 要提早主动求变,不要等到被迫地、见招拆招地应变。3. 很多愚蠢的念头,都源于自己分内的事,却老想让别人负责,比如将自己的愿望寄托在子女身上。4. 推卸责任的同时,多少会对等地给予一…

ShardingSphere 5.2.0:分片审计功能拦截多分片场景下的不合理请求

一、背景Apache ShardingSphere 基于用户的实际使用场景,为用户打造了多种实用功能,包括数据分片、读写分离等。在数据分片功能中,我们发现有些用户涉及到的分片较多,一个分片逻辑表可能对应后端 1000 个物理表,这给用…

猿创征文 | 国产数据库实战之TiDB 数据库快速入门

猿创征文 | 国产数据库实战之TiDB 数据库快速入门一、系统检查1.检查系统版本2.查看本地IP地址3.TiDB集群介绍二、快速部署本地测试集群1.安装 TiUP工具2.声明全局环境变量3.快速部署TiDB 集群三、连接 TiDB 数据库1.新开一个session 以访问 TiDB 数据库2.通过Mysql客户端连接T…

SpringSecurity整合JWT+Oauth2认证

没写完&#xff0c;推荐下面的博客 推荐博客<查看pom依赖、数据库sql、实体类、数据映射>&#xff1a;SpringSecurity框架 推荐博客<查看SpringSecurity整合JWTOauth2认证>&#xff1a;SpringSecurity整合JWTOauth2认证 一 创建项目 测试浏览器&#xff1a;建议使用…

网课查题系统-公众号轻松调用方法

网课查题系统-公众号轻松调用方法 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&am…

Django ORM F对象和Q对象查询

Django ORM F对象和Q对象查询1.F对象查询2.Q对象查询Django提供了两个非常有用的工具&#xff1a;F对象和Q对象&#xff0c;方便了在一些特殊场景下的查询过程。 1.F对象查询 F对象用于操作数据库中某一列的值&#xff0c;它可以在没有实际访问数据库获取数据值的情况下对字段…

史上最简SLAM零基础解读(7) - Jacobian matrix(雅可比矩阵) → 理论分析与应用详解(Bundle Adjustment)

本人讲解关于slam一系列文章汇总链接:史上最全slam从零开始 文末正下方中心提供了本人联系方式&#xff0c;点击本人照片即可显示WX→官方认证{\color{blue}{文末正下方中心}提供了本人 \color{red} 联系方式&#xff0c;\color{blue}点击本人照片即可显示WX→官方认证}文末正…

基于微信小程序的毕业设计题目(23)php汽车维修保养小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)

项目背景和意义 目的&#xff1a;本课题主要目标是设计并能够实现一个基于微信汽车维修保养小程序系统&#xff0c;前台用户使用小程序&#xff0c;小程序使用微信开发者工具开发&#xff1b;后台管理使用基PPMySql的B/S架构&#xff0c;开发工具使用phpstorm&#xff1b;通过后…

毕业设计 单片机stm32智能路灯智能灯控系统 - LoRa远程通信

文章目录0 前言1 简介2 主要器件3 实现效果4 设计原理4.1 Lora模块4.2 DHT11温湿度传感器4.3 光照传感器5 部分核心代码6 最后0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕业答辩…

springboot使用布隆过滤器——缓存穿透

目录 1.布隆过滤器原理 2.具体使用场景 3.springboot集成布隆过滤器 4.总结 1.布隆过滤器原理 布隆过滤器&#xff08;Bloom Filter&#xff09;是非常经典的以空间换时间的算法。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否…

虹科分享 | 什么是深度数据包检测(DPI)

深度数据包检测 (DPI) 是一种分析通过网络发送的流量的高级方法。DPI 使用数据处理来检查数据包的特定细节&#xff0c;作为数据包过滤的一种形式。 虽然 DPI 用于查看 OSI 模型的第 2-7 层&#xff0c;但仅当设备可以查看并根据第 3 层或更高层采取行动时&#xff0c;它才被视…

rsync+inotify实时同步

查看主页俩篇 inotify、rsync 编写脚本实现inotify与rsync相结合 客户端 #!/bin/bash Path/root/rsync_data backup_Server192.168.80.132 /usr/bin/inotifywait -mrq --format %w%f -e create,close_write,delete $Path | while read line do if [ -f $line ];then rsync -…