type
status
date
slug
summary
tags
category
icon
password
 
notion image

base.py

定义BaseDataset Class(torch.utils.data.Dataset, ABC)
 
值得注意的 1. ABC作为parent class建立BaseDataset
分别有@abstractmethod 和 @staticmethod
 
abstractmethod 相当于java 中interface
只需要pass 而后subclass中具体根据用途定义
但是ABC class更强大在于可以同时有staticmethod 是实实在在的implemented method
 
这里用了一个组合 使用内置indexing 会直接调用该subclass 的inner_get_item
使得每个sub class只需要重新写inner_get_item
 
  1. Static method部分
self.uids = json.load() 为dataset长度
 
_load_rgba_image converts Image.open()→np.array()→torch.form_numpy
rgba转换成rgb
rgba[:, :3, :, :] * rgba[:, 3:4, :, :]
rgb channel分别与 a(alpha 代表opacity透明度) channel相乘
 
之后bg_color * (1 - rgba[:, 3:, :, :]) Computes the background color contribution where alpha is not fully opaque 如果本身全透明 (a channel为0) 则back_ground color 全部显现
若全不透明 (a channel为1) 则back_ground color 完全看不见
 
background与image作concat
 
还有一个查找dir的_locate_datadir
 

cam_utils.py

An extrinsic matrix represents the pose (position and orientation) of a camera or an object in a 3D space relative to a world coordinate system. It typically combines a rotation(缩放,旋转,shear剪切,reflect轴对称…) matrix and a translation vector(平移) to transform points from the world coordinate system to the camera coordinate system
总结一下: R是(3,3) T是(3,) RT是(3,4) Extrinsic Matrix是(4,4)
notion image
notion image
 
 
后面两个decompose很简单就不贴了
 
normalize camera extrinsic matrices (poses) by applying a transformation that centers the cameras based on their distance to a pivotal point (often the center of the scene or object of interest)
这里了解了另外一种一般calibration方法
Intrinsics * Extrinsics 构建calibration矩阵
将world point映射为image point 3d→2d 点
notion image
 
这里是将所有所有poses建立在canonical frame之上
camera alignment
notion image
Inverse matrix reverses linear transformation
因为有一段时间没有接触线性代数了 这里写的很慢 比较重复
可以想象从pos1 开始 相机会一直变换角度
我们相当于把每个pose除以最开始的pos(做reverse transformation)
得到转变量 之后再transform到canonical frame上
这样pos0因为 自身就是起点 转变量就是I 所以最终pose就是frame量本身
 
linear transformation → 看align上去的值
reverse transformation → 看mis align的值 转变量
notion image
 
Normalize 一下Intrinsics 内参
notion image
 
 
这里的broadcast 将(b,12) 与 4个 (1,1) concat在一起
[(b,12),(1,1)…] 第一个dim broadcast到dim上
因为camera不变 所有RT poses concat相同量
 
看错了 从上一步来的fx, fy 都是(b,)
这里单纯前面batch dim一致 在dim=-1 多加4个数
 
torch.cat不能broadcast 只有加减乘除可以
notion image
notion image
notion image
有点跑题了 试了试concat和repeat的机制 回到下一个function
 
notion image
像之前提到的构建完整Intrinsic matrix(I)
和之前function差不多 只是现在包含更规范 dim
 
构建完整matrix用stack更合适 如果只是一个dim上合并 concat适合
 
定义look_at 和 up_world(0,0,1)(default z axis up)
 
z_axis = camera_position - look_at
normalize(individually through layer norm)
 
LRM 代码精读 2-[Loss]用http Git clone失败原因
Loading...
ran2323
ran2323
我们再来一次, 这一次, 好好来!
Latest posts
Leetcode记录「2」
2024-12-27
Flutter 基础 记录
2024-12-25
Flutter tutorial 记录
2024-12-25
Privicy policy for GitHub To Text (Chrome Extension)
2024-12-22
一些 Kubernetes 笔记
2024-12-21
一些 docker 笔记
2024-12-20
Announcement
 
 
 
 
暂时没有新的内容