我需要开发一个用于人脸检测的移动应用(主要针对Android、iOS和Windows Mobile)。显然,OpenCV是最著名的。然而,我对不同操作系统之间的兼容性不太确定。除了OpenCV,还有其他选择吗?有两个关键要求:
-开源/商业库,但必须在设备上本地/原生运行,不需要互联网连接,因此Player Service API不适用
-能够跟踪多个运动中的人脸
有谁能分享在这方面的经验/知识吗?任何指导都非常感激!
回答:
你真的是在挑战极限啊。
人脸检测通常包括三个不同的领域。1)识别一个面孔(有嘴巴、鼻子、眼睛),这对于聚焦快照很有用。
2)识别面部特征,寻找情感(如微笑的嘴巴)或眼球追踪。
3)人脸识别。使用系统通过将名字附加到面孔上进行身份识别。
你想使用人脸识别工具来进行跟踪,并计算进入特定场所的人数,使用手机。
首先,跟踪是非常困难的。进行单帧快照的简单人脸识别是一回事,这很容易。问题是,你可能会发现帧率非常低,以至于每三秒甚至每五秒只能处理一帧。这将几乎不可能跟踪和计数面孔。计数面孔很容易,但难的是确定屏幕上的那个面孔是否之前已经计数过,或者是一个新进入屏幕的人。
OpenCV有许多关于人脸识别、图像跟踪等的工具和示例。我强烈推荐你尝试使用OpenCV并测试其功能。我推荐使用C/C++版本(除非你已经是Python程序员)这里是一个开始的地方,我几个月前写的一个博客文章。
我非常喜欢Kyle Hounslow的教程…在YouTube上查找他的视频。他的视频构思精巧,内容有趣,并且为他所有的工作提供了示例代码。继续观看所有这些视频,并重复所有这些示例。了解使用笔记本电脑时可用的帧率是什么样的。
你的任务的下一步是从OpenCV移植到Android/iOS。这不是一件容易的事。我相信有人已经尝试过,我相信那里有有用的提示。
我并不是要阻止你进行一次很棒的探索,但请注意你想做的事情非常困难。你将不得不投入一些时间来确定所有困难的领域在哪里。不幸的是,直到你构建了一些东西并尝试过,你才知道有效的帧率和性能。
祝你旅途好运。