人脸识别 ArcFace 的那些坑

     AI 正在如火如荼的进行着,忽然想弄个人脸识别来玩玩,网上找了很多资料,看了下顿时就懵逼了,不知道从何下手,怪不得别人,只能怪自己太low了......  于是乎就找到了这个第三方 ArcFace,其中遇到的一些问题,总结一下:

 1. 官网下载下来SDK,有三个文件夹各自解压开来 FT:人脸追踪      FD: 人脸检测      FC: 人脸识别。

 2. 运行demo 文件,但是悲催的是各种包都是空的,于是乎将下载下来的包(三个文件夹中的.a包)都导入进来,不要漏了,此处是关键,把包都导入了应该是可以正常运行demo 的,试了一下效果还行。

 3. 好东西当然要移到自己的项目中试试,准备就绪,各种复制粘贴,运行,傻眼,报错,xxxxx文件重复定义了,一顿好找,怎么也没找到重复的地方,看了看文件,是个 coredata 的分类,好家伙,是xcode8 改东西了,改下这个文件的配置就 ok 了。

     

           人脸识别 ArcFace 的那些坑



4. 继续运行,不报错了,惊喜,可是.....  说好的摄像头呢,神马都没有,就自己添加的一堆log在跑着,肿么没有摄像头啊,不科学呀,demo上明明好好的,只不过demo上用的storyBoard ,我也只是把它的视图翻译过来呀,肿么就不行呢,怎么折腾都不行,好吧,无奈呀,我就把它的控制器整个copy过来吧,先跑起来再说,各种折腾,copy过来了,作为根控制器运行ok

5. 可是,诡异的事情来了,当我把它作为一个push 的一个控制器的时候,诡异的事情就发生了,crash,什么情况,刚才还明明好好的,做为一个push 出来的控制器就不行了,而且还不是每次不行,还就有那么一两次是行的人脸识别 ArcFace 的那些坑,哭了吧真是要,僵尸模式也不出log,就是 BAD_ADDRESS,这可咋整,还好机智,经验告诉我,延时试试,果不其然,在crash的地方延时0.1s就ok了,至今也没找到是什么原因造成的,但是能肯定的是使用了不存在的变量,至于是哪个变量还没搞清楚,贴上代码


 

人脸识别 ArcFace 的那些坑


        终于没有 crash 了,真是找的好辛苦啊,啦啦啦。。。。。


 6. 可是...... 悲催的事情又来了,又来了,crash,人脸识别 ArcFace 的那些坑,当我返回的上个页面的时候程序又崩溃了,我也要崩溃了,又是这个,让我情何以堪呐


    人脸识别 ArcFace 的那些坑

 

     应该是控制器销毁的时候delloc 的时候,开启子线程销毁对象的时候 crash 了,好吧,没有好的办法,就先不释放吧,终于总算是跑起来了,后续的问题后续再解决,加个登录里面去,哈哈,可以刷脸登录了,一个真正刷脸的时代开始了,啦啦啦。。。。。。