目标检测在功能上一直是涵盖了图像分类的,其包含目标切片检测,目标切片分类。由于某些原因,需要将目标检测的功能退化为检测,忽略其切片分类,使用外部的分类模型。然而这样操作会使得其与原始的部署代码不兼容,为此博主实现将图像分类模型嵌入到目标检测中,并实现端到端的部署。
这里以ppyoloe模型为改造案例,关于图像分类模型可以使用任意PaddleClas支持的模型。关于构造PaddleClas模型可以查阅 paddle 54 从PaddleClas2.5初始化模型用于迁移学习(LeViT、ReXNet、EfficientNet等)
这里是因为图像分类模型只能嵌入到PPYOLOEHead中,然而在PPYOLOEHead中只能获取到neck输入的特征图,缺失原始输入的图像。而图像分类模型需要使用原始的图像数据,故而需要将输入图像构造为全局变量。如不关心理论部分可以跳过本章节。
在通常情况下通过使用关键字 global
来声明全局变量,具体如下所示。通过以下方式实现的全局变量,只能在同一个文件内使用,不支持跨模块使用。
myVar = 'hello python - global'
def myFunction