两美元的单片机上跑计算机视觉:用 ESP32-S3 的 128 位 SIMD 手写 FAST 角点检测
来源:shraiwi.com — 2026-10-26
📋 概述
作者在 ESP32-S3 的技术参考手册里翻到一组没被广泛使用的 SIMD 指令,于是用它手写了一个加速版 FAST 角点检测器:处理一帧 QVGA(320×240)只要约 6 毫秒,约为参考实现的两倍速度。这颗芯片双核 240MHz、带 Wi-Fi 和蓝牙,价格比一杯咖啡还低。实现过程中他先学汇编,再对付一组古怪的限制——向量寄存器只能按特定方式拼接、没有便利的 shuffle——最后自己写了一个简易寄存器分配器 basm 来生成汇编。
🔑 核心要点
- 性能数字具体:QVGA 帧约 6ms,约为参考实现的两倍,芯片是两美元级的 ESP32-S3。
- SATD 式思路:一次算 16 个像素的极值计数,因为一个向量寄存器正好装 16 个 8 位值。
- 约束条件塑造了实现:指令集有限、缺 shuffle,作者只能自己写 basm 做寄存器分配,而不是靠编译器的向量化。
- 这类指令早就在手册里公开,但社区资料只有三处(Larry Bank 的博客、esp-dsp、esp-dl),说明「可用但没人用」本身就是机会。
💡 金句
It achieves roughly double the performance of the reference implementation, and takes around ~6ms to process a QVGA (320x240) frame.
👍 0
👎 0
← 返回 Hacker News 首页