项目理念 |让我通过
项目名称:让我通过
为什么取这个名字?
在当今广泛传播自动化技术的世界中,该项目的名称只是一个感叹号,以引导单调的工作。
概述:
一个免费、离线、实时、开源(MIT 许可)的网络应用程序,可帮助任何活动的组织者只允许授权/受邀人员使用人脸识别技术或二维码。
它可以自动完成验证人员的任务,不再需要检查邀请卡、检查已安装的所需应用程序(如大多数大学节)等。
该项目使用基于 Google Material Design Guidelines 的 MaterializeCSS 框架。
该项目是真正离线的,使用预训练的 dlib 模型构建,该模型在 Wild Dataset 中的 Label Faces 中具有 99.38% 的准确率(成人)。
该人需要一个领先的浏览器(最好是 Chrome)来使用网络应用程序和基于 UNIX 的系统 MacOS 或 Linux 来交互/使用项目。
在 Google Chrome 上打开 Web 应用程序的用户界面。
要求
- 节点.js
- MongoDB
- Python3
- C++11
用法
该人必须在应用程序中提供受邀人员的图像,将信息存储在数据库中,并在使用这些图像之前训练模型。
用户可以选择跟踪传入/传出的人。首先,如果他/她的信息保存在服务器上,则使用相机识别人脸并显示姓名。名称以红色显示。然后将此人的信息与在 MongoDB 数据库中搜索的记录进行比较。如果信息匹配并且该人被允许,则姓名以绿色显示。
如果上述方法由于任何原因未能成功完成,则可以使用其他方法或备用方法,即 QR 码。该人可以显示他的 QR 码,其中存储了他的唯一 ID,然后在 MongoDB 数据库中进行搜索以进行身份验证。
有 3 层安全性。
- 人脸识别
- MongoDB数据库信息交叉验证
- 物理交叉核对信息
该应用程序的前端还显示了存储在数据库中的人员的所有信息。可以要求此人确认存储在数据库中的机密信息,以防出现歧义。
Barack Obama 已通过面部识别,他的数据与存储在 MongoDB 数据库中的信息进行了交叉核对,因此以绿色显示。
Shubham Malik(我)的脸经过验证,因此显示了姓名,但信息无法与数据库进行交叉核对,因为没有保存此类记录,因此呈红色。
有一个蓝色的小图标显示 QR 码,用于读取 QR 码,以防无法识别或可能被错误识别(如果是儿童)姓名将显示为未知(如果未识别) .用户必须停止应用程序,以便存储的信息不会根据实时数据进行更新。点击二维码按钮扫描二维码。如果 QR 码是合法的以及该人是否经过身份验证,则会通知用户。然后用户必须在完成二维码扫描后恢复应用程序,以便可以再次实时更新数据。
当该人离开时,请检查“外出”按钮以记录他的外出时间。向用户显示有用的通知,例如身份验证时,发生一些错误等。
以这种方式对人员进行身份验证,免费,没有互联网,没有 API 限制,所以应该轻而易举。
未来将添加数据洞察功能,用于使用图表、图形等进行数据分析。
图表
这是应用程序如何运行的高级模型。 JavaScript 和Python的强大功能结合在一个应用程序中。该命令可以是train或run 。
所有这些都发生在计算机内部,因此不需要互联网。
数据结构和算法
目前,只有人脸识别使用算法检测人脸,找到编码,使用欧几里德距离将编码与已知编码进行匹配(face_recogntion Python包用于编写这些函数)。使用的 Dlib 模型是预先训练的,因此目前没有应用外部算法。就数据结构而言,Numpy 数组用于存储人脸的多维编码信息。
目前,它使用线性搜索在 O(N) 时间内在允许的错误限制内找到所需的编码。将来,我会尝试使用二分搜索将其降低到 O(logN)。但是数据是多维的(大约 150 维),所以需要时间。
使用的工具
- 视觉工作室代码
- 谷歌 Chrome 网络浏览器
- MongoDB数据库
- RoboMongo
应用
这些是我可以看到的一些用例,尽管我自己并没有在现实世界的条件下使用它们。
验证
该项目将在需要身份验证并且仍然手动完成的每个地方找到它的用途。它包括大学节日、活动、聚会、公司职能、派对等。
社区机会
该项目在单个应用程序中利用了 Node.js 和Python的强大功能。它也可以用于其他目的。用于Python的流行库(如 Tensorflow、PyTorch)可在 Node.js Web 应用程序中使用,通过为您的用例创建模型并在不使用 API 向第三方公司发送数据的情况下使用它,从而在应用程序中利用机器学习的力量限制。它可用于在线学习/离线学习模型与您的数据,以提高准确性和完全隐私。语言不应再成为应用中包含 ML 的障碍。您无需了解完整的Python开发堆栈即可在 Node.js Web 应用程序中使用Python ML 库。节点在这里生活:)。
教育倡议
教育机构可以使用它来教学生看到/体验机器学习的力量,通过交互式图形用户界面 (GUI) 进行深度学习。这将鼓励他们利用这个项目来构建一些东西来帮助其他人。
项目链接
项目
通过在您的机器上运行它来体验它,并与我联系以获得拥抱或错误!
为什么不同?
- 一种项目,也许只有它的一种。如果出现问题,互联网上没有备用代码可以咨询。开放式项目。
- Stackoverflow 社区关闭/否决了类似类型的问题“Node.js 中的面部识别”。它是所有这些人的火炬手。
- 在此项目之前:this(可能使用 3rd 方 API),this(由社区关闭)。
- 在这个项目之后:这个(相关解决方案,我的第一个赞成票),这个(编辑答案以包含这个项目)。
研究
我用谷歌搜索了很多。我使用 StackOverflow 大约 50 多次,谷歌搜索大约 100 多次。我在初始阶段阅读了这篇文章以了解。在那之后,我独自一人使用 Google 搜索。还有更多正在筹备中。提示:语音支持,让你的想象力飞起来。
成就
- 从4 个在线出版物获得发布我的帖子的邀请(我在其中分享了我构建这个项目的经验,谈论它是如何工作的,我为什么这样做,我是如何做到的,它对我意味着什么,它是给谁的……)。
- 发表于Hacker Noon 。链接到文章
- 75+星, 10+ GitHub 上的分叉
- 几周后建成。 2017 年 7 月 23 日开源。MIT 许可。
- 一个很棒的学习体验,我无法通过已经完成的项目获得。
我是在 ProGeek 推出时才知道它的。在暑假里,我发生了一些导致这个项目的事件。我认为拥有该项目的工作原型以及这个想法可能是一个好主意。