Insightface项目爬坑指南+使用本地数据集训练流程(MXNET版)

本文介绍了使用Insightface进行人脸识别的训练过程,重点在于解决MXNET版本中遇到的问题,包括数据格式转换、错误修复、训练脚本的选择以及如何制作本地数据的验证集。在训练过程中,提到了由于facenet模块的属性错误导致的故障,并给出了相应的解决方案。此外,还分享了训练过程中的观察,如模型在预训练权重基础上的快速收敛和内存管理策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时隔半年的更新

其实半年多前就已经把insightface训练等一系列环节弄熟了,不得不说IBUG组的这个模型确实是开源界的翘楚,但是还是存在一些问题在某些程度上和商汤云从等大厂存在一点差距,这不妨碍大部分人日常人脸识别的使用。给大佬点烟
xxx.bin的制作这次也不更新截图了,等下次要用的时候一起截图更新吧~

前言

公司希望使用新的人脸识别算法去升级老的算法,于是有了此次爬坑之旅
使用的是Mxnet的版本,直接从git上lclone一份代码,目前我拉下来的代码里是有问题的,我会在后续里写出。
ps,第一次使用MXNET,如果有说的不对的地方请指出谢谢~

安装准备

按照git地址上先将Mxnet安装成功,地址如下
https://github.com/deepinsight/insightface
因为要求使用的是python2.x,我这边直接在py27这个环境下配置的程序,大家也可以单独新建一个环境,都ok~然后按照要求安装好各种包。

更新
当初使用的是src文件下的train.py,这个训练脚本应该是支持py27的。后续再recognition文件下的train.py是是支持py36的,后续的训练其实可以使用这个脚本,并且这个脚本可以显示loss。建议使用这个,使用方式非常像。
很久没训练这个模型了,就不截图,如果能src下的跑通另外的训练脚本应该问题不大。
哪天闲了考虑更新。

本地数据准备

Mxnet要求的数据格式是与tensoflow不同的,这里需要的是:

    /
       train.lst
       train.idx
       train.rec
       property
       lfw.bin
       cfp_fp.bin
       agedb_30.bin
       xxx.bin

其中train.idx 和 train.rec分别是数据偏移索引和数据本身的文件. property代表数据集属性
.idx和.rec可以理解为TF里的Tf.record,是mxnet的数据形势,proprty是一个文件,里面记录里有多少个种类,图像的shape的信息。剩下的。bin文件是在Validation部分用的,就是验证集的部分。

更新这里的xxx.bin当时不太会生成,其实这个就是用自己数据做成的验证集。.idx和.rec是本地数据的训练集。

直接运行时会遇到 AttributeError: module ‘facenet’ has no attribute ‘store_revision_info’, AttributeError: module ‘facenet’ has no attribute ‘get_dataset’,的错误, 这是导入时的错误,部分版本应该会遇到。
直接修改导入

使用下载facenet的工程,使用代替

import facenet.src.facenet as facenet

将文件复制到上一级目录下使用,因为align.face_detect和矫正代码在同一目录下。

insightface的代码face2rec2.py代码有些问题,猜测时作者更新以后忘记里。
使用Github的incubator-mxnet工程里的im2rec.py脚本。

生成.lst文件,最新的mxnet代码里,直接使用–list和–recursive,不用添加ture。地址最好选择绝对地址,不用相对地址
生成rec和idx文件时,使用同一个.py。–num-thread为多线程操作
生成的.lst .rec .idx 都在Mxtest

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值