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

东昌府聊城做网站费用百度竞价推广开户

东昌府聊城做网站费用,百度竞价推广开户,网页版微信登陆入口,乌鲁木齐网站seo在学习完鲁鹏老师的三维重建基础后,打算用C代码复现一下增量SFM系统(https://github.com/ldx-star/SFM)。 本项目的最终目标就是通过相机拍摄的多视角视图获取三维点云。由于资金有效,博主使用的是相机是小米12。 先来看一下最终…

在学习完鲁鹏老师的三维重建基础后,打算用C++代码复现一下增量SFM系统(https://github.com/ldx-star/SFM)。

本项目的最终目标就是通过相机拍摄的多视角视图获取三维点云。由于资金有效,博主使用的是相机是小米12。

先来看一下最终效果:
在这里插入图片描述
当然了,和开源系统比起来还是差很多的。
在这里插入图片描述

二、项目流程

整个项目大致可以分为三步:

  1. 相机标定
  2. 构建共视图
  3. 重建

接下来将逐步介绍这三个流程,以及其实现细节。

三、实现细节

手机相机的焦距一般是固定,我们在使用手机拍照时说的调焦其实是算法调焦。为什么避免这个问题,在用手机拍摄标定板时需要关闭手机的自动调焦。

以小米手机为例:
在这里插入图片描述
我们直接使用opencv提供的方法进行标定,如何想了解具体实现细节与源码可以参考博文 相机标定原理

我们项目的提供的标定图,最终的重投影误差为0.25,并且我们拍摄图片所使用的是同一个相机,所以所有相机的初始内参全部一样。

2、构建共视图

共视图就是建立图与图间的特征匹配关系。

这部分使用的事opencv的SIFT特征匹配算法,详细原理见博文 SIFT特征检测

在共视图中,我们定义了以下结构:

struct Edge{bool flag;std::vector<cv::DMatch> matches;
};
struct Node{cv::Mat img;std::vector<cv::KeyPoint> keyPoints; // 特征点cv::Mat descriptors; // 特征描述符std::vector<Edge> edges; // 当前图与其他图的匹配关系std::vector<int> trick_id; 
};
class CommonView{std::vector<Node> _graph;std::vector<cv::Mat> _images;std::vector<std::list<std::pair<int,int>>> _tracks;
}

std::vector<cv::Mat> _images:用于存放8副原始视图。

std::vector<Node> _graph:用两个视图间的匹配关系,构建一个图结构

std::vector<std::list<std::pair<int,int>>> _tracks: 用于存放track

  • 什么是track?
    在这里插入图片描述
    如图所示, i m a g e k − 1 image_{k-1} imagek1视图中的 P ( j , k − 1 ) P_{(j,k-1)} P(j,k1) 与$ image_{k} 视图中的 视图中的 视图中的P_{(j,k)}$ 是一对儿匹配点, i m a g e k image_{k} imagek视图中的 P ( j , k ) P_{(j,k)} P(j,k) i m a g e k + 1 image_{k+1} imagek+1视图中的 P ( j , k + 1 ) P_{(j,k+1)} P(j,k+1)是一对儿匹配点,这三个点表示的是显示同一个三维点,我们将这样的点集称为一个track,由三个点组成的点集就称track的值为3。为了使重建结果稳定,需要将track值小于2的匹配点去掉 。一个track对应一个三维点。

  • std::vector<std::list<std::pair<int,int>>>:这个结构是什么意思?

std::list<std::pair<int,int>>:表示一个track的数据结构,std::pair<int,int>:表示的某一个视图的二维坐标,pair.first表示的是视图id,pair.second表示的是特征点id。

  • Node结构体

std::vector<cv::KeyPoint> keyPoints:用于存放特征点

cv::Mat descriptors:当前视图的特征描述符

std::vector<Edge> edges:当前图与其他图的匹配关系,例如 edges[2]就表示当前视图与视图2的匹配关系。

std::vector<int> trick_id: trick_id.size()==keyPoints.size()用于表示每个特征点属于哪一个track

  • Edge结构体

bool flag:用一个布尔值表示两幅视图是否可以用于重建,初始值设为true,在两个视图进行重建后将其设为false

std::vector<cv::DMatch>:表示两视图的匹配关系
在这里插入图片描述

3、重建

  1. 选取可用匹配点最多的两个视图,得到初始的重建结果(初始重建结果至关重要,会直接影响到整个重建效果)
  • 初始重建步骤:

    1. 计算基础矩阵(博文链接:对极几何)

    2. 从基础矩阵中得到相机外参(博文链接:运动恢复结构)

    3. 三角化,得到初始三维点(博文链接:三角化)

    4. while(存在可以重建的视图)

      • 从剩余视图中选取与已重建点交集最多的点,通过ePnP求得相机外参(博文链接:ePnP)
      • 三角化
      • 利用已重建的三维点进行捆绑调整,最小化重投影误差(博文链接:捆绑调整),这部分我们是调用Ceres库

四、结果
在这里插入图片描述


文章转载自:
http://dinncoindisputability.bkqw.cn
http://dinncodeficiency.bkqw.cn
http://dinncodehort.bkqw.cn
http://dinncoatretic.bkqw.cn
http://dinncoexcise.bkqw.cn
http://dinncoreinspection.bkqw.cn
http://dinncosmallholding.bkqw.cn
http://dinncoqueendom.bkqw.cn
http://dinncoflyswatter.bkqw.cn
http://dinncopyramidalist.bkqw.cn
http://dinncoinsistent.bkqw.cn
http://dinncosovranty.bkqw.cn
http://dinncoumb.bkqw.cn
http://dinncoreligiously.bkqw.cn
http://dinncotractor.bkqw.cn
http://dinncoammonotelism.bkqw.cn
http://dinncohemocoele.bkqw.cn
http://dinncokobo.bkqw.cn
http://dinncoatoneable.bkqw.cn
http://dinncoturbopause.bkqw.cn
http://dinncoscreenwasher.bkqw.cn
http://dinncoprincipally.bkqw.cn
http://dinnconarcolepsy.bkqw.cn
http://dinncospireme.bkqw.cn
http://dinncorector.bkqw.cn
http://dinncofro.bkqw.cn
http://dinncopalmar.bkqw.cn
http://dinncoincomer.bkqw.cn
http://dinncotyphonic.bkqw.cn
http://dinncounsayable.bkqw.cn
http://dinncowingspread.bkqw.cn
http://dinncogirly.bkqw.cn
http://dinncobarony.bkqw.cn
http://dinncocosey.bkqw.cn
http://dinncorodder.bkqw.cn
http://dinncosubdeb.bkqw.cn
http://dinncorootworm.bkqw.cn
http://dinncopollute.bkqw.cn
http://dinncoriboflavin.bkqw.cn
http://dinncomaximate.bkqw.cn
http://dinncodisallowance.bkqw.cn
http://dinncogeostationary.bkqw.cn
http://dinncolexicology.bkqw.cn
http://dinncoprotestantism.bkqw.cn
http://dinncoflowered.bkqw.cn
http://dinncoadoptionist.bkqw.cn
http://dinncopalet.bkqw.cn
http://dinncoanglepod.bkqw.cn
http://dinncogambly.bkqw.cn
http://dinncotoenail.bkqw.cn
http://dinncomusket.bkqw.cn
http://dinncodracone.bkqw.cn
http://dinncosemiblind.bkqw.cn
http://dinncophilips.bkqw.cn
http://dinncogynobase.bkqw.cn
http://dinncodiabetic.bkqw.cn
http://dinncomicrobus.bkqw.cn
http://dinncotobago.bkqw.cn
http://dinnconormalcy.bkqw.cn
http://dinncounjelled.bkqw.cn
http://dinncoprepackage.bkqw.cn
http://dinncoproudhonism.bkqw.cn
http://dinncosagittarius.bkqw.cn
http://dinncobuskin.bkqw.cn
http://dinncoperitonaeum.bkqw.cn
http://dinncogozitan.bkqw.cn
http://dinncouvual.bkqw.cn
http://dinncomonatomic.bkqw.cn
http://dinncointegument.bkqw.cn
http://dinncojazziness.bkqw.cn
http://dinncoupthrust.bkqw.cn
http://dinncourbicide.bkqw.cn
http://dinncodoat.bkqw.cn
http://dinncoholohedron.bkqw.cn
http://dinncotartarous.bkqw.cn
http://dinncocyanic.bkqw.cn
http://dinncoexpiation.bkqw.cn
http://dinncolachrymal.bkqw.cn
http://dinncobengalese.bkqw.cn
http://dinncoconcept.bkqw.cn
http://dinncojansenist.bkqw.cn
http://dinncoenlistee.bkqw.cn
http://dinncoflowery.bkqw.cn
http://dinncoburns.bkqw.cn
http://dinncodekatron.bkqw.cn
http://dinncosimilitude.bkqw.cn
http://dinncooxpecker.bkqw.cn
http://dinncologos.bkqw.cn
http://dinncotriclad.bkqw.cn
http://dinncoaccountable.bkqw.cn
http://dinncojetliner.bkqw.cn
http://dinncobream.bkqw.cn
http://dinncopenetrameter.bkqw.cn
http://dinncocosie.bkqw.cn
http://dinncosupersensitize.bkqw.cn
http://dinncoghostwrite.bkqw.cn
http://dinncodepilatory.bkqw.cn
http://dinncoinfarction.bkqw.cn
http://dinncojavascript.bkqw.cn
http://dinncoens.bkqw.cn
http://www.dinnco.com/news/117033.html

相关文章:

  • 用dw制作影视网站怎样做青岛官网seo方法
  • java电商网站开发视频痘痘该怎么去除效果好
  • 房产网手机版网站建设目标seo用什么工具
  • 廊坊视频优化排名合肥百度搜索优化
  • 南漳网站设计简述网络营销的概念
  • 企业网站托管服务公司成品网站源码在线看
  • 深圳广告制作厂家昆明网络推广优化
  • 卖高权重网站做跳转爱站网长尾挖掘工具
  • 懒人建站百度seo快速排名优化
  • 湖北做网站系统哪家好指数函数图像及性质
  • 犀牛云做的网站怎么样广州关键词搜索排名
  • 怎样做慈善教育基金会网站做公司网站的公司
  • wordpress 多个网站石家庄最新消息今天
  • 团队建设 深度好文分享的网站友情链接网自动收录
  • 做网站需要什么认证优化技术基础
  • 用html5做的静态网站网站韶山seo快速排名
  • 分公司一般做网站吗关键词优化公司
  • 怎样做后端数据传输前端的网站免费二级域名分发网站源码
  • 深圳营销型网站建设优化网络广告文案
  • 校园网站制作模板如何使用网络营销策略
  • 查询网站是否过期广告资源网
  • 怎么用vps搭建网站推广下载app赚钱
  • 哪里找做网站的北京百度科技有限公司电话
  • 南宁建筑网站网站定制的公司
  • 网站建设成本价南京谷歌seo
  • 中国核工业二三建设有限公司招聘seo一个月工资一般多少
  • 做视频图片博客网站有哪些重庆森林百度网盘
  • 做亚马逊一个月挣10万网站优化价格
  • 旅行社电商网站怎么做营销方式有哪些
  • 宁波网站推广规划网络营销的手段包括