从零构建 All-in-One 家庭服务器:硬件、系统与服务边界
摘要: 总览式整理。根据前面几篇搭建记录,回看一台家庭 All-in-One 服务器的底座:硬件选型、系统初始化、LVM 数据盘、Docker 服务目录、NPM/Nginx 反代边界,以及智能插座 + 通电自启的远程恢复思路。硬件价格为 2023-2024 年参考。
编写时间:2026-06-04 一开始其实没想把它做成多完整的 homelab。只是照片、视频、文档、小工具和博客这些东西越堆越多,总觉得应该有一台自己的机器长期在线,能放在家里慢慢折腾。 所以第一步不是画架构图,而是先把需求摊开:能安静运行,能放文件和媒体,能跑 Docker,能部署博客,最好人在外面时也能救回来。硬件就先按“够用、便宜、能验证”的思路来,系统、网络、数据盘跑通以后,再继续往上加服务。 后面的问题是一层一层冒出来的。服务要从外网访问,就要处理域名、证书、软路由、DDNS、端口转发;管理页面不想裸露,就放到 Cloudflare Application / Zero ...
传统去雾算法中的递归计算优化:四叉树、均值方差和积分图
摘要: 四叉树大气光估计的每一层都要对四个子区域遍历像素算均值和标准差,用积分图把重复求和变成 O(1) 查表,不改算法效果只改计算路径。
编写时间:2023-03 大气光估计是传统去雾里值得单独拆出来的计算环节。它看起来只是一个小函数,但在 1080P 视频去雾里会被反复调用,里面的均值和标准差如果每次都遍历像素,代价很快就会堆起来。 原始递归过程 大气散射模型还是: $$ I(x)=J(x)t(x)+A(1-t(x)) $$ 算法要先找全局大气光 A,思路来自 Kim et al. JVCIR 2013。原始方法是从整张图开始,把当前区域 R_k 切成四个子区域,对每个子区域计算: $$ S(R)=\mu...
CUDA 积分图优化:二维前缀和、平方积分图和 Warp Shuffle
摘要: 改写 CUDA sample 的 shfl_scan 实现二维积分图和平方积分图,支撑 warp shuffle 快速前缀和。行 scan + 列 scan 两遍 pass,适配 255² 平方值。
编写时间:2023-04 代码仓库:Plumess/Calculate-integral-image-using-cuda 积分图是这次去雾优化里最“以空间换时间”的部分。它的目的很明确:把区域求和从反复遍历变成一次预处理后的 O(1) 查询。 为什么去雾需要积分图 大气光估计要频繁计算区域均值和标准差: $$ \mu=\frac{sum(I)}{N}, \quad \sigma=\sqrt{\frac{sum(I^2)}{N}-\mu^2} ...
UniAD 端到端智驾学习:从 BEV 到 Planning
摘要: UniAD 的环境搭建、数据集拆分、训练成本和指标理解。核心贡献:自定义 nuScenes 子集拆分工具,利用 description 字段区分 trainval/test,保持 JSON 表间 token 引用对齐。
编写时间:2024-04 代码仓库:Plumess/UniAD-mini UniAD 是端到端自动驾驶方向里很适合学习的一套工程:它把感知、跟踪、地图、运动预测、占用预测和规划串在一个框架里。重点围绕环境、数据、训练成本、指标和推理流程。 整体流程 flowchart TD A["多相机/雷达/激光雷达数据"] --> B["Transformer 映射到 BEV"] B --> C["TrackFormer / 检测与跟踪"] B --> D["M...
光流插帧调研与 BadCase 分析
摘要: 针对大运动、小目标、重复纹理、遮挡四类 BadCase,实测对比 UPR-Net、EMA-VFI、AMT 等方法的结构偏好。自研 FBNet 参考 RIFE 和 IFRNet 的光流管线设计。
编写时间:2023-10 2023 年底的视频插帧调研,目标不是复述所有论文,而是理解结构和真实视频 BadCase 的关系。核心问题是:哪些结构对大运动、小物体、重复纹理、遮挡更有效,哪些问题即使论文指标好也会在真实视频里翻车。 VFI 的基本问题 给定前后两帧 I0、I1,生成中间帧 It。常见路线包括光流、kernel convolution、相位、扩散/生成、多模块融合等。 flowchart LR A["I0, I1"] --> B["运动估计"] B --> C["Warp"] C --> D["遮挡/空洞...
双机博客架构:DDNS 后端 + 固定 IP 前端
摘要: 博客主要服务跑在家庭服务器,但备案域名需要稳定固定公网 IP。方案是 DDNS 主机跑 mx-server、MongoDB、Redis 和一份前端,固定 IP 主机只跑无状态 Shiro 前端,后端数据保持一份,前端入口可以多份。
编写时间:2026-04-03 博客跑起来以后,我又遇到一个现实约束:我希望主要服务放在自己的物理服务器上,但备案域名又需要一个稳定的固定公网 IP。两个需求叠在一起后,最自然的做法不是把完整服务复制两份,而是拆成两台机器:DDNS 主机跑有状态后端,固定 IP 主机只跑无状态前端。 域名、IP、密钥和路径只保留示例写法。 问题背景 这套架构解决的是两个约束: | 约束 | 说明 | | --- | --- | | 家庭服务器性能更强 | 适合跑 mx-server、数据库、Redis、媒体和其他服务 | | 家庭宽带 IP 会变化 | 可以用 DDNS 或 Cloudfl...
小米路由器 SSH 解锁记录:从 Telnet 到持久化管理入口
摘要: 独立的设备折腾记录,不放进 All-in-One 主线。记录自有小米路由器从 Telnet 到 SSH 持久化的流程,用于安装工具、发送 WOL、运行轻量脚本和检查内网状态。路由器 SSH + WOL 能跑通,但不是最终日常远程重启主方案。
编写时间:2024-06-21 这篇是独立的设备折腾记录,不放进 All-in-One 服务器搭建主线。它记录的是在自有路由器上开启 SSH 的流程,用于安装工具、发送 WOL、运行轻量脚本和检查内网状态。 路由器 SSH + WOL 是一条有效的远程开机尝试,但最后日常远程重启还是智能插座 + 通电自启更简单。路由器这条链路依赖固件、SSH 持久化、工具安装和网络入口,能跑通,但维护成本偏高。 不同型号和固件版本差异很大,所有 stok、SN、密码、URL 参数都做了模板化处理;请只在自己的设备上操作。 为什么要开 SSH 软路由或家用路由器如果能 SSH,就可以承担更多...
远程重启与兜底恢复:智能插座、通电自启和 WOL 尝试
摘要: 远程恢复最终靠智能插座 + BIOS 通电自启:系统卡死时远程断电再上电,机器自动开机,NetworkManager 和 Docker 服务自动恢复。WOL、路由器 SSH 和魔术包也能跑通,但维护成本更高,作为尝试记录保留。
编写时间:2024-06-09 服务跑起来以后,我开始反过来想一个更现实的问题:人在外面,机器坏了怎么办?管理入口本身已经放在 Cloudflare Application / Zero Trust 后面,能进后台时可以 SSH、看日志、重启容器;真正麻烦的是系统卡死、机器断电、网络恢复后机器没有自动回来。 最后最实用的远程恢复方案不是 Wake On LAN,而是智能插座 + BIOS 通电自启:需要重启时远程断电再上电,机器来电后自动开机,系统联网,Docker 服务自动拉起。WOL 和路由器 SSH 发送魔术包是有效尝试,但链路更折腾,适合记录,不适合作为主方案。 故障恢...
高通 QNN 量化部署:从 YOLO 权重到 8295 推理评估
摘要: YOLO → ONNX → QNN 量化 → 8295 推理评估的完整工程链路。200 张校准图的量化策略、INT8 精度验证、后处理对齐。
编写时间:2024-06 代码仓库:Plumess/yolov5-qnn QNN 量化、推理、评估的工程链路,重点是从 YOLO 权重走到 8295 可评估产物。流程包括环境准备、ONNX 转换、QNN 量化、推理后处理和验证集评估。 总流程 flowchart LR A["best.pt"] --> B["export.py 转 ONNX"] B --> C["qnn-onnx-converter"] C --> D["量化校准 input_lis...
Kalman Filter:预测、观测和不确定性
摘要: 从 Predict-Update 两步循环出发,用直觉理解 F/P/Q/H/R/K 各矩阵的含义。Kalman Gain 本质是预测和观测之间的加权权重,Q 和 R 是调参核心。
编写时间:2024-05 从多目标跟踪的直觉出发,Kalman Filter 要解决的问题是:存在一个带噪声的观测,也存在一个运动模型;Kalman Filter 做的是把二者按不确定性融合。 两步循环 flowchart LR A["上一时刻状态 x"] --> B["Predict"] B --> C["预测状态 x'"] C --> D["观测 z"] D --> E["Update"] C --> E E --> F["修正状态 x"] F --> A <img src="...