164、轻量化超分网络:MobileSR与FSRCNN在边缘设备上的部署与优化

📅 2026/7/16 15:45:34
164、轻量化超分网络:MobileSR与FSRCNN在边缘设备上的部署与优化
164、轻量化超分网络:MobileSR与FSRCNN在边缘设备上的部署与优化上周帮客户调试一个安防摄像头的实时超分模块,RK3588板子上跑FSRCNN,帧率死活上不去。盯着profiling结果看了半天,发现数据搬运占了60%的时间——这还是在用了NCNN的情况下。后来换成MobileSR,精度掉了0.3dB,但帧率从12fps飙到了45fps。客户说够了,但我知道这里面还有一堆坑没填。今天就把这两个轻量化网络的部署优化经验掰开揉碎讲清楚,全是实际调板子踩过的坑。FSRCNN:老将的倔强与局限FSRCNN是2016年的东西了,结构简单到令人发指:特征提取、收缩、映射、扩张、反卷积。没有残差连接,没有注意力机制,就是纯卷积堆叠。但恰恰因为简单,它在边缘设备上反而有独特的优势——内存访问模式极其规整。部署时第一个坑:反卷积层的实现。很多框架把反卷积转成卷积来做,但FSRCNN的反卷积核大小是9x9,stride=4。在NCNN里直接跑反卷积,内存碎片化严重。我试过把反卷积拆成“最近邻插值+3x3卷积”,效果几乎一样,但速度提升了30%。代码长这样:// 别直接用ncnn::Deconvolution,踩过坑// 改成interp + conv