随笔分类 -  Algorithm/Machine Learning

Algorithm and Machine Learning notes
3D Gaussian splatting 08: 部署模型网页展示
摘要:制作好的Gaussian 3D模型, 可以通过项目自带的 SIBR Viewer 查看, 但是这个运行对显卡有要求, 另一个选择是 Splatviz, 这个对显卡要求更低, 但是这两个都是需要在本地运行, 只能自己查看模型效果, 如果要将效果展示给别人, 最好的方案就是基于web的viewer, 线上直接可用的是poly.cam, 如果想自己做一个网页展示模型, 可以用 GaussianSplats3D 阅读全文

posted @ 2025-08-26 15:33 Milton 阅读(548) 评论(0) 推荐(1)

3D Gaussian splatting 07: 代码阅读-训练载入数据和保存结果
摘要:train.py 载入数据对应的方法调用, 在训练时, 读取colmap数据最终调用的是 readColmapSceneInfo 方法, 从 images.bin, cameras.bin 读取每一张图的相机参数和位姿, 在 readColmapSceneInfo() 方法里会判断是否有 points3D.ply, 存在就读取, 不存在就创建一个再读取, 读取出来的是 BasicPointCloud 类型的数据 阅读全文

posted @ 2025-06-03 18:24 Milton 阅读(587) 评论(0) 推荐(0)

3D Gaussian splatting 06: 代码阅读-训练参数
摘要:训练程序入参除了训练过程参数, 另外设置了ModelParams, OptimizationParams, PipelineParams三个参数组, 分别控制数据加载、渲染计算和优化训练环节, 这些参数类共同构成3D高斯渲染模型的核心配置. 在项目的 README.md 中有大部分参数的说明. 以下在注释中标出主要参数的含义. 阅读全文

posted @ 2025-06-01 18:25 Milton 阅读(547) 评论(0) 推荐(1)

3D Gaussian splatting 05: 代码阅读-训练整体流程
摘要:从这节开始阅读 train.py, 根据代码分析训练过程. 首先是训练的整体流程 阅读全文

posted @ 2025-06-01 11:18 Milton 阅读(648) 评论(0) 推荐(1)

3D Gaussian splatting 04: 代码阅读-提取相机位姿和稀疏点云
摘要:convert.py 用于从帧系列中提取相机参数, 相机位姿和对象特征点的稀疏点云, 从 convert.py 的代码可以看到转换阶段的处理流程. 在Convert阶段, 使用Colmap处理输入帧序列, 在3D场景的稀疏重建完成后, model 默认会被导出到 bin 文件中, 因为这样比较紧凑, 节省空间, 在结果目录中生成以下文件 阅读全文

posted @ 2025-05-31 21:41 Milton 阅读(786) 评论(0) 推荐(1)

3D Gaussian splatting 03: 用户数据训练和结果查看
摘要:3D Gaussian splatting 03: 用户数据训练和结果查看于训练的图片集采集有两种方式, 一种是使用相机从不同角度拍照, 另一种是拍视频后逐帧提取. 两种方式各有利弊, 拍照分辨率更高, 方便控制光圈,快门和白平衡, 但是拍照时较难控制好角度可能会造成部分交叠区域过小, 视频比较容易实现连续的画面移动, 保证交叠区域, 但是大多数手机没法手动控制视频录制过程的光圈和白平衡, 并且视频的分辨率大多数是通过插值填充的, 拍摄1080p视频时, 实际有效像素并没有1080p. 阅读全文

posted @ 2025-05-30 20:13 Milton 阅读(1593) 评论(0) 推荐(1)

3D Gaussian splatting 02: 快速评估
摘要:3D Gaussian splatting 02: 快速评估以下使用 Inria 提供的数据集运行训练过程, 验证和评估重建效果, 数据输入是一组静态场景的图像以及摄像机位置, 表示为稀疏的点云, 通过colmap处理得到. 阅读全文

posted @ 2025-05-30 18:40 Milton 阅读(1022) 评论(0) 推荐(0)

图像处理中的 Gaussina Blur 和 SIFT 算法
摘要:SIFT(Scale-Invariant Feature Transform)算法是一种用于图像处理中的局部特征提取方法, 具有尺度、旋转和光照不变性, 通过对图像进行不同尺度的高斯模糊生成多组图像并从中提取特征实现 阅读全文

posted @ 2025-04-07 20:37 Milton 阅读(443) 评论(0) 推荐(0)

Colmap的安装和使用
摘要:Colmap的安装和使用在 Ubuntu 22.04 下可以通过`apt install colmap`安装, 但是这样安装的是不带CUDA支持的版本, 支持CUDA的版本需要通过编译安装, 可以参考的安装说明 阅读全文

posted @ 2025-04-07 07:55 Milton 阅读(4144) 评论(0) 推荐(0)

3D Gaussian splatting 01: 环境搭建
摘要:3D Gaussian splatting 01: 环境搭建3D Gaussian 是一种新的辐射场的实时渲染方法, 能够在较少的训练时间中实现SOTA级别的视觉效果, 允许以 1080p 分辨率进行高质量的实时(≥ 30 fps)新视图合成. 3D Gaussian Splatting 使用 3D Gaussian 球表示三维模型, 并通过 Splatting 技术渲染出来. 阅读全文

posted @ 2025-03-30 18:55 Milton 阅读(3083) 评论(0) 推荐(2)

在嵌入式设备中用多项式快速计算三角函数和方根
摘要:在 MCS-51, Cortex M0, M3 之类的芯片上编程时, 能使用的资源是非常有限, 通常只有两位数KB的Flash, 个位数KB的RAM. 如果要使用三角函数和开方就要引入 math.h, 会消耗掉10KB以上的Flash空间. 在很多情况下受硬件资源限制无法使用 math.h, 这时候使用简化的方法进行三角函数和开方运算就非常有意义, OlliW's Bastelseiten在2014年的一篇文章里, 提供了几个实用的计算方法. 下面介绍其计算方法和代码实现. 阅读全文

posted @ 2024-03-03 17:11 Milton 阅读(684) 评论(0) 推荐(6)

惯性传感器的倾角计算
摘要:在判断物体在空间中的姿态以及运动轨迹时, 用得最多的是加速度和角速度传感器. 加速度传感器可以计算倾角, 陀螺仪可以计算角速度, 本文介绍常用的倾角计算方法, 结合陀螺仪提高动态精度的互补滤波. 阅读全文

posted @ 2024-03-03 01:46 Milton 阅读(2747) 评论(0) 推荐(1)

卡尔曼滤波器的定义,实例和代码实现
摘要:卡尔曼滤波器(Kalman filter)是一种高效的递归滤波器, 能够从一系列包含噪音的测量值中估计动态系统的状态. 因为不需要存储历史状态, 没有复杂计算, 非常适合在资源有限的嵌入式系统中使用. 常用于飞行器的导引, 导航及控制, 机械和金融中的时间序列分析, 轨迹最佳化等. 本文对卡尔曼滤波器的定义进行简化并提供了C语言的简易实现. 阅读全文

posted @ 2024-02-28 19:29 Milton 阅读(3547) 评论(0) 推荐(2)

ADPCM(自适应差分脉冲编码调制)的原理和计算
摘要:ADPCM 用于解决 DPCM 的差值宽度问题, 通过定义一个差值表(例如IMA ADPCM 中使用 89个固定差值, 取值从7到32767), 将差值的范围放宽到16bit, 此时差值在数组中的编号只需要6bit就可以表示(0 - 88), 再进一步只记录编号的变化值, 就将变化量压缩到了4bit. ADPCM算法并没用固定标准, 最常见的是IMA ADPCM. 以下以 IMA ADPCM 为例进行说明 阅读全文

posted @ 2022-11-22 20:39 Milton 阅读(6280) 评论(0) 推荐(0)

OCR 03: PaddleOCR
摘要:Catalog OCR 01: EasyOCR OCR 02: Tesseract-OCR OCR 03: PaddleOCR About Git repository https://github.com/PaddlePaddle/PaddleOCR Online demo https://www 阅读全文

posted @ 2022-10-31 15:11 Milton 阅读(302) 评论(0) 推荐(0)

OCR 02: Tesseract-OCR
摘要:Catalog OCR 01: EasyOCR OCR 02: Tesseract-OCR OCR 03: PaddleOCR Project Host And Brief Official Site: https://tesseract-ocr.github.io/ GitHub Reposito 阅读全文

posted @ 2022-10-31 15:08 Milton 阅读(193) 评论(0) 推荐(0)

OCR 01: EasyOCR
摘要:Catalog OCR 01: EasyOCR OCR 02: Tesseract-OCR OCR 03: PaddleOCR Related Links Official site with online demo: https://www.jaided.ai/easyocr/ Installat 阅读全文

posted @ 2022-10-31 14:31 Milton 阅读(507) 评论(0) 推荐(0)

DS18B20数字温度计 (三) 1-WIRE总线 ROM搜索算法和实际测试
摘要:以下说明当总线上存在多个 DS18B20 芯片时, 识别各个 DS18B20 的编号并进行通信的算法. 其实这是 1-Wire 总线的搜索算法, 当 1-Wire 总线上挂接了多个设备时, 总线控制端需要通过 ROM Search 命令来判断总线上存在的设备以及获取他们的8字节唯一ROM. 1-WIRE SEARCH ALGORITHM 算法规则和实现机制, ROM搜索算法的核心规则, 是在搜索中重复进行一个简单的三步操作 阅读全文

posted @ 2022-06-12 11:32 Milton 阅读(3257) 评论(3) 推荐(1)

STC8H开发(十一): GPIO单线驱动多个DS18B20数字温度计
摘要:DS18B20 是一个单线通信的数字温度计, 允许在一根总线上挂接多个 DS18B20 并分别通信, 在普通温度下, 可以直接从数据口取电, 这时候只需要两根连线. 供电电压兼容3.3V和5V, 温度检测范围[-55°C, +125°C]摄氏度, 在 [-10°C, +85°C] 精确率可以达到 ±0.5°C. DS18B20内部有9字节的暂存器和3个字节的EEPROM存储, 带一个8字节的唯一序列号. 文中会说明其8位CRC的计算方式, 以及单线总线上多个DS18B20的搜索算法. 阅读全文

posted @ 2022-06-04 22:59 Milton 阅读(1881) 评论(0) 推荐(0)

多模式匹配的Trie实现
摘要:业务场景 这种需求一般用于敏感词过滤等场景, 输入是大文本, 需要快速判断是否存在匹配的模式串(敏感词), 或者在其中找出所有匹配的模式串. 对于模式串数量不超过5000的场景, 直接用暴力查找速度也能接受, 对于更大规模的模式串, 需要对匹配进行优化. 实现原理 带Fail Next回溯的Trie 阅读全文

posted @ 2020-04-28 16:08 Milton 阅读(505) 评论(0) 推荐(0)

导航