074、NPU的超分辨率模型加速:ESPCN与SRGAN 074、NPU的超分辨率模型加速:ESPCN与SRGAN去年做智能安防项目时,客户要求在IPC(网络摄像头)端实现1080p到4K的实时超分。当时选了SRGAN,结果在RK3588的NPU上跑,单帧处理时间飙到800ms,完全没法用。后来换成ESPCN,优化后压到15ms,虽然画质不如SRGAN,但至少能跑了。这个坑让我意识到:NPU上跑超分模型,选型和优化比算法本身更重要。超分辨率在NPU上的核心矛盾超分模型本质上是“从低分辨率生成高分辨率”的逆问题。传统插值算法(双三次、Lanczos)在NPU上几乎没有计算量,但画质糊。深度学习超分模型效果好,但计算量爆炸——尤其是生成高分辨率特征图时,内存带宽和计算单元双双吃紧。NPU的架构特点决定了它不适合处理“大尺度特征图上的密集计算”。大多数NPU的MAC阵列(乘累加单元)对3x3卷积优化最好,但对转置卷积(反卷积)支持很差。而超分模型偏偏大量使用转置卷积来上采样,这就成了性能瓶颈。ESPCN:为效率而生的超分架构ESPCN(Efficient Sub-Pixel Convolutional Neural Network)的核心思想是:不在高分辨率空间做卷积,而是在低分辨率空间提取特征,最后通过亚像素卷积(Sub-Pixel Convolution)一步完成上采样。亚像素卷积的实现细节亚像素卷积本质上是一个“重排操作”(Pixel Shuffle)。假设你想把H