基于思元智能加速卡的OpenPose姿态识别网络模型移植和优化
作者单位:东南大学
学位级别:硕士
导师姓名:刘志昊;张昊翀
授予年度:2022年
学科分类:08[工学] 080203[工学-机械设计及理论] 0835[工学-软件工程] 0802[工学-机械工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)]
主 题:OpenPose 深度学习处理器 量化 流水线 离线模型
摘 要:近年来,人机交互的应用场景越来越广泛,人体姿态识别作为相关研究的基础学科,其中基于卷积的OpenPose姿态识别神经网络能够以较高的精度捕捉人体姿态。但由于其网络结构复杂、层数多、计算量大,受制于传统处理器的算力而存在运行速度慢、功耗高等问题,导致无法较好地部署于高实时性应用中。而随着处理器技术的发展,深度学习处理器的诞生为神经网络模型的训练和推理提供了强大的算力支持,这一特性也正是提升姿态识别网络模型运行性能的关键。所以本文提出将OpenPose模型与某深度学习处理器结合,在其上完成模型的移植和优化工作。最终在保证了模型识别精度的同时,以更低的功耗获得了更高的推理速度,并实现了OpenPose在深度学习处理器上的应用。主要贡献如下:(1)在模型移植中,使用智能编程语言初步重构了OpenPose网络中的算子,以适应深度学习处理器的硬件架构,然后将新算子添加到Py Torch框架中。最终OpenPose模型可通过框架调用算子进行正确的推理。(2)在模型性能优化中,首先将传统量化方法改良为基于KL散度的量化方法,并使用该方法对OpenPose模型进行存储上的优化,实现了FP32模型向INT8模型的转换,在尽可能减少精度损失的基础上提高了推理速度。然后针对初步重构的OpenPose网络算子,根据深度学习处理器的架构特点,优化为以多核流水线为整体结构的向量化指令计算形式,提高了算子并行度和运算速度。最后对OpenPose的运行方式进行了优化,将调用的多个算子进行了融合处理以减少数据的IO次数,并序列化保存了融合算子指令,从而最终生成了可脱离框架运行且能实时检测人体姿态的OpenPose离线模型。(3)在OpenPose离线模型的具体应用中,将其与按键控制跑酷游戏结合,改进成了人体姿态实时控制的跑酷游戏。在正确性上,人体姿态控制的动作响应结果能够与按键控制保持一致;在速度上,离线模型推理速度可达32.04fps,且在游戏中的整体延迟不高于40ms。结果表明,OpenPose离线模型在识别精度和运行延迟方面均满足实时应用系统部署的要求。