zoukankan      html  css  js  c++  java
  • 视觉三维重建中不同三角网格视角的选择

    每个三角网格可能被多个视角所看到,但每个三角网格只选择一个视角获取纹理

    视角的选择应当考虑到以下因素:

    1. 三角网格在视角中的可视性
    2. 三角网格在视角图像的细节丰富程度
    3. 三角网格在视角图像中的尺度
    4. 相邻三角网格尽量具有相同视角

    判断可视性

    1. 法向量与负视线方向的夹角要小于一定值
    2. 视线方向与相机朝向的夹角要小于一定值
    3. 碰撞检测(BVH)

    数学模型

    马尔科夫随机场

    [E(l)=sum_{F_{i} in ext { Faces }} E_{ ext { data }}left(F_{i}, l_{i} ight)+sum_{left(F_{i}, F_{j} ight) in ext { Edges }} E_{ ext { smooth }}left(F_{i}, F_{j}, l_{i}, l_{j} ight) ]

    数据项

    1. 纹理细节--投影三角形的平均梯度(一般转化为灰度图)
    2. 尺度--投影三角形的面积

    [E_{mathrm{data}}=-int_{phileft(F_{i}, l_{i} ight)}left| ablaleft(I_{l_{i}}(p) ight) ight|_{2} mathrm{d} p \ l_{i} quad 表示视角\ ablaleft(I_{l_{i}}(p) ight)表示投影点处的梯度\ phileft(F_{i}, l_{i} ight)表示三角形的投影区域 ]

    由于像素离散性,在投影三角形上均匀取点计算梯度平均值,再乘以三角形面积。

    平滑项

    [E_{mathrm{smooth}}=left[l_{i} eq l_{j} ight] ]

    如果两个三角网格不相邻添加罚项

  • 相关阅读:
    [转]MySQL日志——Undo | Redo
    linux查看系统的硬件信息
    Linux HDD information (SATA/SCSI/SAS/SSD)
    sysbench 0.5使用手册
    MYSQL数据丢失讨论
    innodb_flush_method理解
    快速从mysqldump文件中恢复一个表
    Python 交互模式中 Delete/Backspace 键乱码问题
    Django--源码安装
    greenplum-时间处理
  • 原文地址:https://www.cnblogs.com/narjaja/p/10902577.html
Copyright © 2011-2022 走看看