摘要: Kalman Filter 预测 + Hungarian/IoU 匹配的在线跟踪框架。对比 SORT(prediction-centric)和 OC-SORT(observation-centric)在遮挡、非线性运动下的差异,以及 ByteTrack 的低分框补匹配思路。
编写时间:2024-05 目标检测只回答“这一帧哪里有目标”,跟踪还要回答“下一帧是不是同一个目标”。SORT 这类算法的优势是简单、在线、实时,特别适合先作为工程 baseline。 SORT 基本流程 flowchart TD A["Detector 输出检测框"] --> B["Kalman Filter 预测现有轨迹"] B --> C["计算 IoU 代价矩阵"] C --> D["Hungarian 匹配"] D --> E["匹配轨迹更新"] D --> F["未匹配检测新建轨迹"] D -->...
摘要: WireGuard 在这里不是管理入口方案,而是把服务器作为中转节点,自建一个虚拟局域网。用于异地设备互通、伪局域网联机游戏和远控实验,包含 Server/Client 配置、AllowedIPs、NAT 和排障记录。
编写时间:2024-05-16 管理入口后来基本都放在 Cloudflare Application / Zero Trust 后面了,WireGuard 在这里不是为了解决“管理页面不能裸露”的问题。我当时更想要的是一个自己可控的虚拟局域网:几台不在同一地点的设备接进同一个网段,让家里的服务器充当中转节点。 这个用途有点像自建版“局域网联机网络”:可以尝试伪局域网联机游戏,例如《博德之门 3》这类支持局域网发现或直连的游戏;也可以做伪局域网远控,把异地设备当作同一个内网里的机器访问。后来这类远控场景被免费且体验不错的软件覆盖了不少,例如支持高分辨率的远程桌面工具,所以 WireGua...
摘要: 警察/外卖员/指定品牌车的检测分类迭代。YOLOv5X plus 对比实验、自定义输入尺寸适配车端视角、场景优先级矩阵、BadCase 驱动的数据闭环。
编写时间:2024-05 目标检测训练迭代,类别以若干车端业务目标为主,并讨论新增相近长尾类别。这不是一次单纯训练,而是训练、评测、数据清洗、量化评估、再训练的持续迭代。 训练迭代流程 flowchart TD A["收集/同步数据集"] --> B["训练集 labels 对齐"] B --> C["A100/T4 云端训练"] C --> D["pt 模型评测"] D --> E["BadCase 聚类"] E --> F["补充训练/验证集"] F --> C D --> G["车端量化评估"]...
摘要: 不罗列部署清单,而是整理 self-hosted 服务的接入流程:从 awesome-selfhosted 找候选,用 Docker Compose 管运行和数据目录,用 NPM 或手写 Nginx 管入口,管理服务放到 Zero Trust 后面。以博客、媒体自动化、AList 和管理入口作为代表例子。
编写时间:2024-04-28 硬件、系统和网络入口都接上以后,我才开始真正往这台机器里放长期服务。这里的重点不是“我部署过哪些项目”,而是整理出一套可重复的 self-hosted 接入流程:先从需求出发找项目,再用 Docker 管运行,用 Nginx Proxy Manager 或手写 Nginx 管入口。 挑项目时可以参考 awesome-selfhosted。这个列表很适合作为索引:想做文件管理、媒体库、监控、笔记、自动化时,先看有哪些成熟项目,再回到自己的机器上判断它是否真的值得部署。 接入流程 ...
摘要: 服务器服务要从外网访问后,网络问题会从 Docker 延伸到软路由、DDNS、端口转发、Cloudflare Tunnel、Zero Trust、NPM 和备案域名。记录 R5C/OpenWRT 初始化、动态公网 IP 绑定、80/443 受限后的取舍,以及境内外域名分层。
编写时间:2024-04-18 服务器底座跑起来以后,我遇到的第一个大问题是:这些服务到底怎么从外面访问?如果只是局域网里打开 Docker 页面,事情很简单;但一旦要做博客、媒体库、文件入口和远程管理,就会立刻碰到软路由、DDNS、备案、证书、80/443 端口限制和反向代理。 这一阶段要把“家用动态公网 IP + 软路由 + DDNS + 境内外域名分流”一步步接起来。下面的域名、IP、端口和账号都只写示例值。 总体拓扑 flowchart TD A["光纤入户"] --> B["光猫桥接"] B --> C["软路由 PPPoE 拨...
摘要: 厘清 Docker 和 NVIDIA Container Toolkit 的各自角色,以 YOLOv5 训练容器为例展示 docker-compose.yml 写法,含 runtime: nvidia、shm_size 等关键配置。
编写时间:2024-04 记录一下 Docker 和 NVIDIA Container Toolkit 各自干什么、怎么配合。以 YOLOv5 训练环境为例。 Docker 和 NVIDIA Container Toolkit 的区别 这俩经常一起出现,但角色完全不同: | 组件 | 作用 | | --- | --- | | Docker | 容器化运行环境,把项目和依赖打包 | | NVIDIA Driver | 宿主机上的 GPU 驱动 | | NVIDIA Container Toolkit | 让容器访问宿主机 GPU | | CUDA 镜像 | 容器内 CUDA/c...
摘要: 在传统算法优化完成后,部署实测 RefineDNet、PSD、RIDCP 等 12 种深度学习去雾方法。数据集域差异导致真实素材上均未超越优化后的传统算法,确认了继续走传统路线的判断。
编写时间:2023-09 把能跑的深度学习去雾方法在真实监控/道路雾天素材上测了一遍。出发点很简单:现有 CUDA 传统算法能实时,但浓雾区生成感强、颜色有失真、边缘有残雾。想看看深度学习能不能补这些。 <a href="https://mxspace.plumes.moe/api/v2/objects/file/gwjfm7i31f1tkge4d2.pdf" target="_blank" rel="noopener noreferrer" style="display:inline-flex;align-items:center;padding:9px 14px;bor...
摘要: 背景复原模型的 CPU 前后处理加速。Intel oneAPI + IPP + TBB,通过消除 computeImg 独立遍历、融合到上采样步骤,21004μs → 13015μs。
编写时间:2023-08 背景复原管线里的 CPU 前后处理模块。任务很具体:对模型输入做下采样和格式转换,对模型输出做上采样、通道拆分和逐像素混合,全程只在 CPU 上跑。优化目标是把 1080P 单帧控制在 25ms 以内,不能拖模型推理的后腿。 问题定义 背景复原模型输入两帧(当前帧 x 和参考帧 ref),输出是一张融合后的去干扰图。模型本身跑在 GPU 上,但前后处理在 CPU 侧: flowchart LR A["x: uchar hwc / 1920×1088 RGB"] --> B["Preprocess"] C[...
摘要: 用累积残差法区分扶梯、告示牌等"一直在动但不属于前景"的区域。100 帧残差累积 + 二值化 + 形态学 + 连通域过滤,轻量级纯 CPU 方案。
编写时间:2023-08 监控视频的背景建模通常假设背景是静止的。但真实场景里有一些东西虽然一直在动,却不属于前景——扶梯在运行、电子告示牌在滚动文字、喷泉在喷水。它们不应该触发"运动检测",但又确实在变化。这个模块就是处理这个边界情况。 问题定义 flowchart LR A["视频帧序列"] --> B{"像素变化"} B --> C["前景: 人/车 / 短暂、不规则"] B --> D["伪前景: 扶梯/告示牌 / 持续、规律"] B --> E["真背景: 墙壁/地面 / 基本不变"] C --> F["应...
摘要: 基于 Modern CMake 中文指南的学习笔记,以 ArcDetect_Timestamps 项目为例。涵盖 target 思维、option 平台分支、PUBLIC/PRIVATE/INTERFACE、主项目守卫、子项目组织。
编写时间:2023-08 学习 Modern CMake 的主要参考是 Modern CMake 中文指南。这篇文章不是在翻译它,而是在时间戳检测项目里实际用到的一些写法和工作方式,记录下来的学习笔记。 核心转变:从全局到 target 老式 CMake 习惯用 include_directories、link_libraries、add_definitions 这些全局操作。Modern CMake 的核心变动是把一切挂在 target 上: | 老...