PyTorch版的YOLOv5是一个当前非常流行的目标检测器,本课程对YOLOv5进行知识蒸馏实战,来提升其性能。
知识蒸馏(Knowledge Distillation)是模型压缩的一种常用的方法。它利用性能更好的大模型的监督信息,来训练一个轻量化小模型,使小模型达到更好的性能和精度。 最早是由Hinton首次提出并应用在分类任务上,这个大模型称之为教师模型,小模型称之为学生模型。来自教师模型输出的监督信息称之为Knowledge(知识),而学生网络学习迁移来自教师网络的监督信息的过程称之为Distillation(蒸馏)。
本课程在YOLOv5 v6.1版本代码的基础上增加知识蒸馏方法,并实际演示针对自己的数据集训练和进行知识蒸馏过程,并讲解原代码针对知识蒸馏的修改部分。
本课程分为原理篇、实战篇、代码讲解篇。
原理篇包括:知识蒸馏的基础知识、目标检测中知识蒸馏的方法。
实战篇包括:PyTorch环境安装、YOLOv5项目安装、准备自己的数据集、修改配置文件、训练学生网络(Yolov5s)、训练教师网络(训练YOLOv5m)、知识蒸馏训练。
代码讲解篇包括:知识蒸馏具体修改代码的讲解。