【三维重建】【深度学习】NeRF_Pytorch代码--预备基础知识

2023-11-08

【三维重建】【深度学习】NeRF_Pytorch代码–预备基础知识

给定一个场景的多视角的图像,神经辐射场(NeRF)通过图像重建误差优化一个神经场景表征,优化后可以实现逼真的新视角合成效果。NeRF最先是应用在新视点合成方向,由于其超强的隐式表达三维信息的能力后续在三维重建方向迅速发展起来。



前言

在详细解析NeRF代码之前,首要任务是成功运行NeRF代码【win10下参考教程】,后续学习才有意义。本博客讲解Im数据加载模块的代码,不涉及其他功能模块代码。

渲染和逆渲染

渲染和逆渲染是计算机图形学中两个重要的概念,分别涉及将三维场景转换成二维图像和从二维图像中还原出三维场景的过程。

  • 渲染(Rendering))是指将三维场景中的几何形状、纹理、光照等信息转换成二维图像的过程。
  • 逆渲染(Inverse rendering)是指从二维图像中还原出三维场景中的几何形状、纹理、光照等信息的过程。

视角合成方法

通常使用一个中间3D场景表征作为中介来生成高质量的虚拟视角,即首先需要对中间3D场景进行表征,然后再对这个中间3D场景进行渲染,生成照片级的视角。
如何对这个中间3D场景进行表征,分为了“显示3D表征“和”隐式3D表征“

  • 显示3D表征:确地定义物体的几何形状,包括网格(Mesh),点云(PointCloud),体素(Voxel)等,它能够对场景进行显式建模,但是因为其是离散表示的,导致了不够精细化会造成重叠等伪影,更重要的是它存储的三维场景表达信息数据量极大,对内存的消耗限制了高分辨率场景的应用。
  • 隐式3D表征:通过一些数学方程来隐式地定义物体的几何形状,通常用一个函数来描述场景几何,可以理解为将复杂的三维场景表达信息存储在函数的参数中,以更自然地描述一些具有复杂形状的物体。因为往往是学习一种3D场景的描述函数,因此在表达大分辨率场景的时候它的参数量相对于“显示表示”是较少的,并且”隐式表示“函数是种连续化的表达,对于场景的表达会更为精细。

显式是离散的表达,不能精细化,导致重叠等伪影,耗费内存,限制了在高分辨率场景的应用。
隐式是连续的表达,能够适用于大分辨率的场景,而且不需要3D信号进行监督。


四大坐标系

  • 图像坐标系 ( x , y ) \left( {x,y} \right) (x,y) 以相机光轴与成像平面的交点(principal point)为坐标原点,描述物体通过投影投射在成像平面中的位置。
  • 像素坐标系 ( u , v ) \left( {u,v} \right) (u,v) 以成像平面左上顶点为坐标原点,描述像素点(pixel)在数字图像中的坐标位置而引入。
  • 相机坐标系 ( X c , Y c , Z c ) \left( {{X_{\rm{c}}},{Y_{\rm{c}}},{Z_{\rm{c}}}} \right) (Xc,Yc,Zc) 以相机的光心为坐标系原点, X c {{X_c}} Xc, Y c {{Y_c}} Yc轴平行于图像坐标系的 x {x} x, y {y} y轴,相机的光轴为 Z c {{Z_c}} Zc轴,坐标系满足右手法则。相机的光心可理解为相机透镜的几何中心。
  • 世界坐标系 ( X w , Y w , Z w ) \left( {{X_{\rm{w}}},{Y_{\rm{w}}},{Z_{\rm{w}}}} \right) (Xw,Yw,Zw) 用于表示空间物体的绝对坐标,世界坐标系可通过旋转和平移得到相机坐标系。

图像坐标系与像素坐标系


图像坐标系与像素坐标系的转换推导:
u = x d x + u 0 u = \frac{x}{{dx}} + {u_0} u=dxx+u0
v = y d y + v 0 v = \frac{y}{{dy}} + {v_0} v=dyy+v0

( u , v ) \left( {u,v} \right) (u,v)表示图像中像素的行数和列数, ( u 0 , v 0 ) \left( {u_0,v_0} \right) (u0,v0)表示图像坐标系下的原点在像素坐标系中的坐标, d x {{dx}} dx d y {{dy}} dy表示单个像素分别在 x {{x}} x轴和 y {{y}} y轴上的物理尺寸, x d x \frac{x}{{dx}} dxx y d y \frac{y}{{dy}} dyy的单位为像素。

矩阵表示形式:
[ u v ] = [ 1 d x 0 0 1 d y ] [ x y ] + [ u 0 v 0 ] \left[ {\begin{array}{cc} u\\ v \end{array}} \right] = \left[ {\begin{array}{cc} {\frac{1}{{dx}}}&0\\ 0&{\frac{1}{{dy}}} \end{array}} \right]\left[ {\begin{array}{cc} x\\ y \end{array}} \right] + \left[ {\begin{array}{cc} {{u_0}}\\ {{v_0}} \end{array}} \right] [uv]=[dx100dy1][xy]+[u0v0]
齐次坐标表示形式:
[ u v 1 ] = [ 1 d x 0 u 0 0 1 d y v 0 0 0 1 ] [ x y 1 ] \left[ {\begin{array}{ccc} u\\v\\1 \end{array}} \right] = \left[ {\begin{array}{ccc} {\frac{1}{{dx}}}&0&{{u_0}}\\ 0&{\frac{1}{{dy}}}&{{v_0}}\\ 0&0&1 \end{array}} \right]\left[ {\begin{array}{ccc} x\\ y\\ 1 \end{array}} \right] uv1 = dx1000dy10u0v01 xy1

相机坐标系与像素坐标系(相机内参)

相机坐标系到图像坐标系是透视关系

根据三角形相似原理可得:

f Z c = x X c = y Y c \frac{f}{{Z{}_c}} = \frac{x}{{X{}_c}} = \frac{y}{{Y{}_c}} Zcf=Xcx=Ycy
变换形式:
{ Z c ⋅ x = f ⋅ X c Z c ⋅ y = f ⋅ Y c \left\{ {\begin{array}{cc} {Z{}_c \cdot x = f \cdot X{}_c}\\ {Z{}_c \cdot y = f \cdot Y{}_c} \end{array}} \right. {Zcx=fXcZcy=fYc
齐次坐标表示形式:
Z c ⋅ [ x y 1 ] = [ f 0 0 0 f 0 0 0 1 ] [ X c Y c Z c ] Z{}_c \cdot \left[ {\begin{array}{cc} x\\ y\\ 1 \end{array}} \right] = \left[ {\begin{array}{cc} {\begin{array}{cc} f&0&0 \end{array}}\\ {\begin{array}{cc} 0&f&0 \end{array}}\\ {\begin{array}{cc} 0&0&1 \end{array}} \end{array}} \right]\left[ {\begin{array}{cc} {X{}_c}\\ {Y{}_c}\\ {Z{}_c} \end{array}} \right] Zc xy1 = f000f0001 XcYcZc
带入像素坐标系与图像坐标系之间的转换公式:
Z c ⋅ [ u v 1 ] = [ 1 d x 0 u 0 0 1 d y v 0 0 0 1 ] [ f 0 0 0 f 0 0 0 1 ] [ X c Y c Z c ] Z{}_c \cdot \left[ {\begin{array}{cc} u\\ v\\ 1 \end{array}} \right] = \left[ {\begin{array}{cc} {\begin{array}{cc} {\frac{1}{{dx}}}&0&{{u_0}} \end{array}}\\ {\begin{array}{cc} 0&{\frac{1}{{dy}}}&{{v_0}} \end{array}}\\ {\begin{array}{cc} 0&0&1 \end{array}} \end{array}} \right]\left[ {\begin{array}{cc} {\begin{array}{cc} f&0&0 \end{array}}\\ {\begin{array}{cc} 0&f&0 \end{array}}\\ {\begin{array}{cc} 0&0&1 \end{array}} \end{array}} \right]\left[ {\begin{array}{cc} {X{}_c}\\ {Y{}_c}\\ {Z{}_c} \end{array}} \right] Zc uv1 = dx10u00dy1v0001 f000f0001 XcYcZc
整理可得:
Z c ⋅ [ u v 1 ] = [ f x 0 u 0 0 f y v 0 0 0 1 ] [ X c Y c Z c ] Z{}_c \cdot \left[ {\begin{array}{cc} u\\ v\\ 1 \end{array}} \right] = \left[ {\begin{array}{cc} {\begin{array}{cc} {{f_x}}&0&{{u_0}} \end{array}}\\ {\begin{array}{cc} 0&{{f_y}}&{{v_0}} \end{array}}\\ {\begin{array}{cc} 0&0&1 \end{array}} \end{array}} \right]\left[ {\begin{array}{cc} {X{}_c}\\ {Y{}_c}\\ {Z{}_c} \end{array}} \right] Zc uv1 = fx0u00fyv0001 XcYcZc

f x {{f_x}} fx f y {{f_y}} fy分别表示相机在 x {{x}} x轴和 y {{y}} y轴方向上的焦距

相机内参(Camera Intrinsics) K {{K}} K为:
K = [ f x 0 u 0 0 f y v 0 0 0 1 ] K = \left[ {\begin{array}{cc} {\begin{array}{cc} {{f_x}}&0&{{u_0}} \end{array}}\\ {\begin{array}{cc} 0&{{f_y}}&{{v_0}} \end{array}}\\ {\begin{array}{cc} 0&0&1 \end{array}} \end{array}} \right] K= fx0u00fyv0001

世界坐标系与相机坐标系(相机外参)

绕z轴的旋转

当一个点 P W ( x w , y w , c w ) {P_W}\left( {{x_w},{y_w},{c_w}} \right) PW(xw,yw,cw) z {{z}} z轴旋转 θ \theta θ角得到点 P C ( x c , y c , c c ) {P_C}\left({{x_c},{y_c},{c_c}} \right) PC(xc,yc,cc) z {{z}} z坐标保持不变, x {{x}} x y {{y}} y组成的 x o y {{xoy}} xoy平面( o {{o}} o是坐标原点)上进行的其实可以看作一个二维旋转。

{ X c = X w cos ⁡ θ + Y w sin ⁡ θ Y c = − X w sin ⁡ θ + Y w cos ⁡ θ Z c = Z w \left\{ {\begin{array}{cc} {{X_c} = {X_w}\cos \theta + {Y_w}\sin \theta }\\ {{Y_c} = - {X_w}\sin \theta + {Y_w}\cos \theta }\\ {{Z_c} = {Z_w}} \end{array}} \right. Xc=Xwcosθ+YwsinθYc=Xwsinθ+YwcosθZc=Zw
矩阵形式如下:
[ X c Y c Z c ] = [ cos ⁡ θ sin ⁡ θ 0 − sin ⁡ θ cos ⁡ θ 0 0 0 1 ] [ X w Y w Z w ] = R z [ X w Y w Z w ] \left[ {\begin{array}{cc} {{X_c}}\\ {{Y_c}}\\ {{Z_c}} \end{array}} \right] = \left[ {\begin{array}{cc} {\cos \theta }&{\sin \theta }&0\\ { - \sin \theta }&{\cos \theta }&0\\ 0&0&1 \end{array}} \right]\left[ {\begin{array}{cc} {{X_w}}\\ {{Y_w}}\\ {{Z_w}} \end{array}} \right] = {R_z}\left[ {\begin{array}{cc} {{X_w}}\\ {{Y_w}}\\ {{Z_w}} \end{array}} \right] XcYcZc = cosθsinθ0sinθcosθ0001 XwYwZw =Rz XwYwZw

绕x轴的旋转

当一个点 P W ( x w , y w , c w ) {P_W}\left( {{x_w},{y_w},{c_w}} \right) PW(xw,yw,cw) x {{x}} x轴旋转 α \alpha α角得到点 P C ( x c , y c , c c ) {P_C}\left({{x_c},{y_c},{c_c}} \right) PC(xc,yc,cc) x {{x}} x坐标保持不变, y {{y}} y z {{z}} z组成的 y o z {{yoz}} yoz平面( o {{o}} o是坐标原点)上进行的其实可以看作一个二维旋转。

y {{y}} y轴类似于二维坐标系中的 x {{x}} x轴, z {{z}} z轴类似于 y {{y}} y

{ X c = X w Y c = Y w cos ⁡ α + Z w sin ⁡ α Z c = − Y w sin ⁡ α + Z w cos ⁡ α \left\{ {\begin{array}{cc} {{X_c} = {X_w}}\\ {{Y_c} = {Y_w}\cos \alpha + {Z_w}\sin \alpha }\\ {{Z_c} = - {Y_w}\sin \alpha + {Z_w}\cos \alpha } \end{array}} \right. Xc=XwYc=Ywcosα+ZwsinαZc=Ywsinα+Zwcosα
矩阵形式如下:
[ X c Y c Z c ] = [ 1 0 0 0 cos ⁡ α sin ⁡ α 0 − sin ⁡ α cos ⁡ α ] [ X w Y w Z w ] = R x [ X w Y w Z w ] \left[ {\begin{array}{cc} {{X_c}}\\ {{Y_c}}\\ {{Z_c}} \end{array}} \right] = \left[ {\begin{array}{cc} 1&0&0\\ 0&{\cos \alpha }&{\sin \alpha }\\ 0&{ - \sin \alpha }&{\cos \alpha } \end{array}} \right]\left[ {\begin{array}{cc} {{X_w}}\\ {{Y_w}}\\ {{Z_w}} \end{array}} \right] = {R_x}\left[ {\begin{array}{cc} {{X_w}}\\ {{Y_w}}\\ {{Z_w}} \end{array}} \right] XcYcZc = 1000cosαsinα0sinαcosα XwYwZw =Rx XwYwZw

绕y轴的旋转

当一个点 P W ( x w , y w , c w ) {P_W}\left( {{x_w},{y_w},{c_w}} \right) PW(xw,yw,cw) y {{y}} y轴旋转 β \beta β角得到点 P C ( x c , y c , c c ) {P_C}\left({{x_c},{y_c},{c_c}} \right) PC(xc,yc,cc) y {{y}} y坐标保持不变, z {{z}} z x {{x}} x组成的 z o x {{zox}} zox平面( o {{o}} o是坐标原点)上进行的其实可以看作一个二维旋转。

z {{z}} z轴类似于二维坐标系中的 x {{x}} x轴, x {{x}} x轴类似于 y {{y}} y

{ X c = − Z w sin ⁡ β + X w cos ⁡ β Y c = Y w Z c = Z w cos ⁡ β + X w sin ⁡ β \left\{ {\begin{array}{cc} {{X_c} = - {Z_w}\sin \beta + {X_w}\cos \beta }\\ {{Y_c} = {Y_w}}\\ {{Z_c} = {Z_w}\cos \beta + {X_w}\sin \beta } \end{array}} \right. Xc=Zwsinβ+XwcosβYc=YwZc=Zwcosβ+Xwsinβ
矩阵形式如下:
[ X c Y c Z c ] = [ cos ⁡ β 0 − sin ⁡ β 0 1 0 sin ⁡ β 0 cos ⁡ β ] [ X w Y w Z w ] = R y [ X w Y w Z w ] \left[ {\begin{array}{cc} {{X_c}}\\ {{Y_c}}\\ {{Z_c}} \end{array}} \right] = \left[ {\begin{array}{cc} {\cos \beta }&0&{ - \sin \beta }\\ 0&1&0\\ {\sin \beta }&0&{\cos \beta } \end{array}} \right]\left[ {\begin{array}{cc} {{X_w}}\\ {{Y_w}}\\ {{Z_w}} \end{array}} \right] = {R_y}\left[ {\begin{array}{cc} {{X_w}}\\ {{Y_w}}\\ {{Z_w}} \end{array}} \right] XcYcZc = cosβ0sinβ010sinβ0cosβ XwYwZw =Ry XwYwZw

小结

旋转矩阵 R = R x R y R z R = {R_x}{R_y}{R_z} R=RxRyRz
R = [ c o s β c o s θ c o s β sin ⁡ θ − sin ⁡ β sin ⁡ α sin ⁡ β c o s θ − cos ⁡ α sin ⁡ θ sin ⁡ α sin ⁡ β sin ⁡ θ + cos ⁡ α c o s θ 0 c o s ∂ sin ⁡ β c o s θ + sin ⁡ α sin ⁡ θ c o s ∂ sin ⁡ β sin ⁡ θ − sin ⁡ α c o s θ c o s ∂ c o s β ] R = \left[ {\begin{array}{cc} {{\rm{cos}}\beta {\rm{cos}}\theta }&{{\rm{cos}}\beta \sin \theta }&{ - \sin \beta }\\ {\sin \alpha \sin \beta {\rm{cos}}\theta - \cos \alpha \sin \theta }&{\sin \alpha \sin \beta \sin \theta + \cos \alpha {\rm{cos}}\theta }&0\\ {{\rm{cos}}\partial \sin \beta {\rm{cos}}\theta + \sin \alpha \sin \theta }&{{\rm{cos}}\partial \sin \beta \sin \theta - \sin \alpha {\rm{cos}}\theta }&{{\rm{cos}}\partial {\rm{cos}}\beta } \end{array}} \right] R= cosβcosθsinαsinβcosθcosαsinθcossinβcosθ+sinαsinθcosβsinθsinαsinβsinθ+cosαcosθcossinβsinθsinαcosθsinβ0coscosβ
R R R代入则完成世界坐标系到相机坐标系的转化:

[ X c Y c Z c ] = R [ X w Y w Z w ] + t \left[ {\begin{array}{cc} {{X_c}}\\ {{Y_c}}\\ {{Z_c}} \end{array}} \right] = R\left[ {\begin{array}{cc} {{X_w}}\\ {{Y_w}}\\ {{Z_w}} \end{array}} \right] + t XcYcZc =R XwYwZw +t
齐次坐标系:
[ X c Y c Z c 1 ] = [ R t 0 1 × 3 1 ] [ X w Y w Z w 1 ] \left[ {\begin{array}{cc} {{X_c}}\\ {{Y_c}}\\ {{Z_c}}\\ 1 \end{array}} \right] = \left[ {\begin{array}{cc} R&t\\ {{0_{1 \times 3}}}&1 \end{array}} \right]\left[ {\begin{array}{cc} {{X_w}}\\ {{Y_w}}\\ {{Z_w}}\\ 1 \end{array}} \right] XcYcZc1 =[R01×3t1] XwYwZw1
相机外参 R t {{Rt}} Rt(Camera Extrinsics):
[ R t 0 1 × 3 1 ] \left[ {\begin{array}{cc} R&t\\ {{0_{1 \times 3}}}&1 \end{array}} \right] [R01×3t1]


世界坐标系与像素坐标系

在相机外参基础上加入相机内参进行计算:
Z w ⋅ [ u v 1 ] = [ f x 0 u 0 0 f y v 0 0 0 1 ] [ R t 0 1 × 3 1 ] [ X w Y w Z w 1 ] Z{}_w \cdot \left[ {\begin{array}{cc} u\\ v\\ 1 \end{array}} \right] = \left[ {\begin{array}{cc} {\begin{array}{cc} {{f_x}}&0&{{u_0}} \end{array}}\\ {\begin{array}{cc} 0&{{f_y}}&{{v_0}} \end{array}}\\ {\begin{array}{cc} 0&0&1 \end{array}} \end{array}} \right]\left[ {\begin{array}{cc} R&t\\ {{0_{1 \times 3}}}&1 \end{array}} \right]\left[ {\begin{array}{cc} {{X_w}}\\ {{Y_w}}\\ {{Z_w}}\\ 1 \end{array}} \right] Zw uv1 = fx0u00fyv0001 [R01×3t1] XwYwZw1
完成世界坐标系到像素坐标系的转换。


总结

尽可能简单、详细的介绍关于NeRF_Pytorch的所需的预备基础知识(随时补充新的),后续会根据自己学到的知识结合个人理解讲解NeRF的原理和代码。

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

【三维重建】【深度学习】NeRF_Pytorch代码--预备基础知识 的相关文章

随机推荐

  • 利用python,2分钟完成1000台路由器的配置或备份

    0 实现要求 通过2个简单的脚本 检测任意网段中ssh可达的设备并链接 同时对所有设备写入任意华为命令脚本 并记录设备回显的所有内容 如1000台设备 dis cu 显示结果 1 实验准备 此处主要是华为的设备 模拟器使用ensp 4台路由
  • 详谈IEEE浮点数编码机制

    在一些工程领域中单单依靠整数是无法满足他们对精度的需求的 这种时候就需要用到浮点数了 今天着重来聊一聊在计算机底层 浮点数的编码方式 以及它相关值的计算方式 二进制小数 在介绍浮点数之前先来看看二进制中实数可以如何表示 假设我有一个十进制的
  • VS2019中QT槽函数连接及使用

    1 qt连接VS 连接前提是在下载qt的时候将 MSVC 2017装上 点击扩展 选择管理扩展 搜索qt 选择下载 之后下载结束并重新打开后 会弹出一个 QT option 将路径填进去 2 VS中qt的使用 在qt中可以直接添加信号与槽
  • Windows如何关闭电脑休眠(适用所有Windows系统版本)

    方法一 此方法适用所有Windows系统版本电脑 1 点击开始按钮 在搜索框中输入cmd 右键点击选择以管理员身份运行 2 在打开的命令提示符窗口中 输入命令 powercfg h off 然后回车就可以了 3 如果想重新开启休眠功能 同样
  • 时间选择组件默认显示前7天日期

    1 div class st time div
  • windows下openGLES 3.0 配合 vs 环境搭建(二)

    在 http blog csdn net dardgen2015 article details 51563914 中 讨论了怎样搭建openGLes 3 0的环境 但是这种方法需要CMake的配合 不是很方便 接下来我们看看怎样搭建可以不
  • Double型比较大小 compareTo()

    public class DoubleCompare public static void main String args Double d1 100 0 Double d2 90 0 Double d3 150 005 int i 10
  • vue3自定义指令批量注册(按钮防重指令)

    vue3文档中很简单的描述了一下自定义指令
  • es分布式架构和原理分析

    es的分布式架构 前言 这篇初识ElasticSearch文章中 说明了es的集群的核心概念 回顾一下 关于节点 一个运行中的 es实例称为一个节点 而集群是由一个或者多个拥有相同cluster name 配置的节点组成 它们共同承担数据和
  • 计算机四级网络工程师(计算机网络单选)- 知识点

    计算机四级网络工程师 操作系统单选 计算机四级网络工程师 操作系统多选 计算机四级网络工程师 计算机网络单选 计算机四级网络工程师 计算机网络多选 一 Ethernet 1 Ethernet帧结构一般包含前导码 帧前定界符 目的地址 源地址
  • Device Association Service占用CPU - 解决方案

    问题 电脑开启蓝牙后 连接蓝牙设备时 服务主机 Device Association Service服务可能会占用大量CPU 在任务管理器中可以查看 若占用CPU持续超过10 则属于异常状态 由于本人问题已经解决 因此没有问题截图 下文介绍
  • 用R做中文LDA主题模型可视化分析

    LDA主题模型在2002年被David M Blei Andrew Y Ng 是的 就是吴恩达老师 和Michael I Jordan三位第一次提出 近几年随着社会化媒体的兴起 文本数据成为越来越重要的分析资料 海量的文本数据对社会科学研究
  • 99_好题整理1—鸡兔同笼

    F 鸡兔同笼 内存限制 128 MiB 时间限制 3000 ms标准输入输出 题目描述 已知鸡和兔的总数量为n 总腿数为m 输入n和m 依次输出鸡和兔的数目 如果无解 则输出 No answer 不要引号 输入格式 第一行输入一个数据a 代
  • 实用 SQL 语句收藏这篇就够了

    前言 文章沿着设计一个假想的应用 awesome app 为主线 从零创建修改数据库 表格 字段属性 索引 字符集 默认值 自增 增删改查 多表查询 内置函数等实用 SQL 语句 收藏此文 告别零散又低效地搜索经常使用的 SQL 语句 所有
  • STM32程序卡死HardFault_Handler

    在工作过程中移植部分功能程序后发现程序经常性莫名卡死 然后就一直在HardFault Handler中断卡死 解决如下 1 首先去网上查询了出现HardFault Handler是由于什么原因造成 1 堆栈溢出 这个可能性不大 2 数组越界
  • Scrapy+bs4爬取京东商品对应的评论信息

    Scrapy bs4爬取京东商品对应的评论信息 spiders comm py coding utf 8 import json import jsonpath import scrapy from bs4 import Beautiful
  • tomcat端口介绍以及配置启用https

    一 tomcat 默认端口
  • 步进电动机 - 特征篇(一)

    第1章 步进电动机特征篇 1 1 步进电动机特征 步进电动机是如同时钟的秒针一般 每次旋转一定角度的电动机 首先 介绍一下步进电动机的特征 链接 https www orientalmotor com cn web seminar stki
  • 添加区块到区块链当中003

    package main import crypto sha256 fmt 0 定义结构 创建前哈希值 创建当前哈希值 和数据 type Block struct Prevhash byte 前哈希 Hash byte 当前哈希 TODO
  • 【三维重建】【深度学习】NeRF_Pytorch代码--预备基础知识

    三维重建 深度学习 NeRF Pytorch代码 预备基础知识 给定一个场景的多视角的图像 神经辐射场 NeRF 通过图像重建误差优化一个神经场景表征 优化后可以实现逼真的新视角合成效果 NeRF最先是应用在新视点合成方向 由于其超强的隐式