opencv - OpenCV中的“增量”人脸训练
问题描述
我一直在使用 OpenCV 中的一些人脸检测。我已经完成了几个项目 - 一个使用预先构建的模型进行人脸检测。其他一些人做不同的事情,我收集自己的图像并训练自己的模型。当我做后者时,通常使用的数据集比你用于面部训练的数据集小得多。
在我的面部识别器上 - 我使用的许多常见面部都没有被正确检测到(由于面具、帽子、护目镜、眼镜等奇怪的属性)。所以我想重新训练我自己的模型——但是抓住巨大的“股票”数据集,将我的图像添加到其中可能需要很长时间。
所以问题是:有没有办法从现有模型(XML 文件)开始,并以一种只添加我的图像的方式运行训练器?
解决方案
这被称为“迁移学习”。Tenserflow (Keras) 对此有很多支持。它基本上包括采用具有预先存在的权重的预先存在的模型,在某些层上“冻结”权重,在现有层中或下方添加新层,然后仅重新训练未冻结的层。
它不能用来轻易地“继续”学习,但可以用来在训练中添加额外的东西——对于更新的方面(比如可能,将蒙面人添加到已经训练的未蒙面人模型中,如我原来的问题)
推荐阅读
- javascript - 如何使用平衡括号算法替换 javascript 字符串中的单词?
- python - 从python中的文本文件中提取和组织数据
- performance - getValue 今天早上突然非常慢(昨晚快)
- flutter - 获取列表中的一个元素
- wordpress - 为什么我的网站 ssl 在 WordPress 面板中没有激活但处于激活状态?
- vuetify.js - 如何在带有列表项的卡片上获得相同的左右边距
- ios - 在swift中使用数字数组和算术运算符数组进行数学计算
- c# - Asp.net core web api 显示页面
- html - 当我当前在子目录中时如何在根目录中引用 index.html
- vue.js - 如何更新 vuetify mdi 图标?(Nuxt.js)