在 Node.js 中使用 Python 在 99.38%准确率模型上进行离线实时人脸识别

在 Node.js 中使用 Python 在 99.38%准确率模型上进行离线实时人脸识别

原文:https://medium.com/hackernoon/offline-real-time-face-recognition-in-node-js-using-python-atop-99-38-accuracy-model-9f0f46d6a88d

如果你是这种人,你可以直接写代码:

https://github.com/malikshubham827/get-me-through

注:关于精确度,请参见这个

这是关于我在建设上述项目的经验:

一个免费、离线、实时、开源(麻省理工学院许可)的网络应用程序,帮助任何活动的组织者只允许授权/邀请的人使用面部识别技术或二维码。

所以是的人脸识别只是一个 app 的一部分,也是项目的关键。喝杯咖啡,享受一下(我尽力了)。我放了很多 gif 让它变得有趣(灵感来自安装说明后接受这个。

我搜索了很多包,一个一个地尝试,让它们工作,但有时会放弃并再次搜索。一件事是如何集成二维码作为人脸识别失败时的后备选项。有很多生成二维码但不用于二维码扫描的包。我试了几个终于找到了由同时也帮助了其他人

  • 阅读一些 Instascan,了解它如何与 camera 配合工作,以及如何在 web 应用程序中使用 camera。我用 MaterializeCSS 的 Modal 来展示 QR 扫描仪。有很多情况需要处理:如果用户通过其他方式停止相机,比如在模态之外点击或者关闭它。我修改了代码,运行了很多次,每次都发现了一些错误。有一次,我用完了 mac 电脑的内存(接近满),然后它就死机了一会儿。经过多次尝试终于成功,但同时发现了另一个 bug。* 这次的 bug 是在物化框架的模态上。回调不起作用。谷歌一下,github 问题,stackoverflow 没啥帮助。我找到了相关的代码,试图理解它,尝试用 console.log()语句运行几次,了解发生了什么,并最终通过塑造代码绕过了 bug(感觉像一个黑客,绕过了代码😅).我还听说它的形式也不是很好,会在路线图的另一个网络应用中摆弄它们。

事件++

这是一只神奇的虫子。这要归功于 jQuery。每次点击事件的数量都会增加。1,2,3,4,5,6,7,8…我的实时通知从上到下占据了整个右栏。我了解到我必须在()上使用 jQuery 而不是 click(),并在事件处理程序之外使用 socket.on()事件。

经过一番努力之后,后端终于在前端上表现得相当不错了:

所以这个时候我想,就是这样。但是我想到了一个主意,如果我给它添加一个数据库支持,这样机器的用户就可以进行 CRUD 操作。我想让用户(如果有的话)使用他们想要的 SQL,NoSQL。我想着自己加一个,如果能赚钱呢🤑有了这个(你可以带着获得小成功的大愿景过早地开始飞翔😄).只需点击几下鼠标,即可为组织提供完整的设置,自动实现访客的到达/离开(人脸识别、QR 码、无需互联网、无 API 限制、三步认证)。但是:

  1. 我从开源社区学到了一切。
  2. 我不认为我能挨家挨户地推销它。我懒得做那件事。我更喜欢多开发几个这种的。
  3. 我想起了社交网络中的一个场景,马克开发了一个应用程序并免费发布,尽管他有很好的报价(我想是来自微软),而我现在有了一个我甚至没有从头开始创建的小网络应用程序。

所以我试着把它和 MongoDB 整合起来,因为我对它有点熟悉。另一个原因是我在大学里没有被教过 SQL。那将是在我即将到来的第五个学期。所以我会把它留给另一个项目,也许是这个项目的一个分支或端口。所以我开发了它,整合了它,花了几天时间,学习,应用,调试等等。

最后我看到了这个:

前端、后端和数据库协同工作。中间的当然是后端(Python 和 Node.js 的威力)。你也可以在 Node.js 中完成其他 ML 任务,如使用 Python 训练模型,因为我可以将 OpenCV3(需要安装二进制文件)、face_recognition、numpy、pandas 与 dataset 集成,并将结果存储在。我的 python 程序中的 csv 格式。因此,只要你需要硬件,你也可以利用它来完成一些事情,建立一些可能改变游戏规则的想法。

我将让读者选择前端和数据库中的哪一个😇。

签名。off();

项目链接:【https://github.com/malikshubham827/get-me-through

尽管我的代码库不是很长,但我为什么要写这篇文章呢?有什么好激动的?对你们中的许多人来说,这可能只是几百行代码,但对我来说,整合所有的部分,肩并肩地学习,由于反对警告而更新以前的知识,在这个开放的项目中(根据我的说法),在我的 on 上逐个粉碎每个 bug,这是以前从未做过的(在 Node.js 中用 Python 实现 ML,可能是这样,但我没有为此搜索过很多)。对我来说,这是一件大事。我希望它能帮助某个地方的人。我写它也是为了重温那些在一件事成功而另一件事失败时的沮丧和短暂的快乐。这就是生活方式。

如果你喜欢我的帖子,请推荐并分享,以帮助其他人找到它!欢迎在下面留下评论,批评我的一些错误,以避免他们在未来出现。请务必访问我的回购!😃

编辑:感谢所有人的支持,感谢 Sahil Dua 发现错别字。

特别感谢 icons8 的牛逼家伙们给我提供了一张图片作为本帖的专题图片。检查他们的其他图标。


本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除