TwKit
正在载入
TwKit

一块不到 2 美元的 ESP32-S3,居然能跑实时计算机视觉。 这篇文章做的事情很硬核:给 ESP32-S3 的 FAST 特征点检测器加上 128 位 … · @RwatitFahsa · TwKit

@RwatitFahsa

一块不到 2 美元的 ESP32-S3,居然能跑实时计算机视觉。 这篇文章做的事情很硬核:给 ESP32-S3 的 FAST 特征点检测器加上 128 位 SIMD 指令,让芯片一次处理 16 个 8 位像素。 结果很夸张: 吞吐量从 5.1MP/s 提升到 11.2MP/s,提升约 220%;处理一张 320×240 的图像,大约只要 6ms。按这个速度,跑 30fps 的 VGA 视频流也够用。 但真正有意思的地方,不是“加了 SIMD 就变快”这么简单。 ESP32-S3 不支持直接读取未对齐数据,东西方向的像素块只能从两个寄存器里拼出来;它的比较指令只支持有符号 8 位整数,可图像像素通常是 0 到 255 的无符号数;更麻烦的是,SIMD 算术还是饱和运算,不能直接减 128。 最后作者用了一个很漂亮的小技巧: `x - 128 = x ^ 0x80` 不用减法,直接翻转最高位,就把像素值映射到了适合比较的范围。 我很喜欢这种优化。不是堆更贵的硬件,也不是换一个更大的模型,而是把芯片的限制摸透,再想办法绕过去。 很多时候,性能提升就藏在这些“不方便”的细节里。 https://shraiwi.com/blog/simd-fast-esp32s3/

曝光 50 · 评论 1 · 点赞 1 · 书签 0

查看原帖