OpenCV中的“增量”面部训练

问题描述

我一直在OpenCV中进行一些面部检测。我已经完成了几个项目-一个使用预制模型进行人脸检测。其他一些人则做不同的事情,在那里我收集自己的图像并训练自己的模型。当我进行后者训练时,通常使用的面部训练数据集要小得多。

在我的面部识别器上-我使用的许多常见面孔 not 都无法正确检测到(由于口罩,帽子,护目镜,眼镜等奇怪的属性)。因此,我想重新训练自己的模型-但是获取巨大的“库存”数据集,然后将图像添加到其中可能会花费很长时间。

所以问题是:是否有一种方法可以从一个现有的模型(XML文件)开始,并以一种将添加我的图像到它吗?

解决方法

这称为“迁移学习”。 Tenserflow (Keras) 对此有很多支持。它基本上包括采用具有预先存在的权重的预先存在的模型,“冻结”某些层的权重,在现有层中或下方添加新层,然后仅重新训练未冻结的层。

它不能用来轻易地“继续”学习,但可以用来在训练中添加额外的东西 - 对于更新的方面(比如可能,将蒙面人添加到已经训练好的未蒙面人模型中,如我原来的问题)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...