找回密码
 立即注册
首页 业界区 业界 物联网浏览器(IoTBrowser)-js开发人脸识别

物联网浏览器(IoTBrowser)-js开发人脸识别

计海龄 3 小时前
最近在研究将人脸识别应用到农产品实名收购系统,以防止他人仿冒申领合格证。经过选型找了2种方案,第一种基于.net原生开发,第二种基于js开发,目前两种都可以集成到物联网浏览器中。
第一种使用.net开发插件
.net下使用ViewFaceCore包,ViewFaceCore 是一个开源的、人脸识别 SDK,支持 .NET/.NET Core/.NET Framework 平台。它提供了高效且准确的人脸检测和特征提取功能,可以用于各种与人脸识别相关的应用场景中。
后端代码:
  1. FaceDetector faceDetector = new FaceDetector();
  2. var faceImage0 = new Bitmap(dirPath).ToFaceImage();
  3. var infos0 = faceDetector.Detect(faceImage0);
  4. FaceLandmarker faceMark = new FaceLandmarker();
  5. var points0 = faceMark.Mark(faceImage0, infos0[0]);
  6. FaceRecognizer faceRecognizer = new FaceRecognizer();
  7. float[] fromData = faceRecognizer.Extract(faceImage0, points0);
  8. float[] faceData = model.FaceVector;
  9. return faceRecognizer.Compare(fromData, faceData);
复制代码
前端代码:
  1. async getSingleFace(s) {
  2.     var data = this.faceImgPath;
  3.     ar = await dds.dynamic.api.exectuce({ method: "post", pluginName: "Face", actionName: "GetSingleFace", actionData: (data) })
  4.     console.log('人脸信息', ar)
  5.     this.faceKeys = ar.Data;
  6. },
  7. async compareFace(cb) {
  8.     var data = { fileName: this.faceImgPath, targetKeys: this.faceKeys };
  9.     ar = await dds.dynamic.api.exectuce({ method: "post", pluginName: "Face", actionName: "Compare", actionData: JSON.stringify(data) })
  10.     console.log('人脸比较', ar)
  11.     this.resultInfo = "相似度:" + ar.Data + ""
  12.     if (ar.Data < 0.8) {
  13.         cb && cb()
  14.     } else {
  15.         this.startVideo = false;
  16.     }
  17. },
复制代码
  
 物联网浏览器(IoTBrowser)-人脸快速搜索就是基于这个开发
第二种使用基于face-api.js 
 face-api.js 是一个强大的 JavaScript 人脸识别库,它基于 TensorFlow.js 核心(tensorflow/tfjs-core)实现,能够在浏览器和 Node.js 环境中无缝运行。该 API 为开发者提供了丰富的人脸检测与识别功能,使得在 Web 应用中集成高级计算机视觉能力变得前所未有的简单。
 
1.gif

 
2.jpeg

主要功能与亮点

face-api.js 不仅支持核心的人脸识别任务,还提供了一系列开箱即用的高级特性:

  • 实时人脸追踪与识别:利用 MTCNN 面部检测器,实现高效的实时 JavaScript 人脸追踪。
  • 摄像头实时检测:支持从实时摄像头流中检测人脸并进行情绪识别,可应用于视频场景。
  • 流行框架集成:提供了与 Vue.js 和 Electron 等框架结合使用的示例,方便开发者快速上手。
  • 趣味应用案例:例如“给人戴口罩”——Gant Laborde 谈与 Jason 一起学习,展示了库的灵活性和趣味性。
此外,官方还提供了详细的视频教程,帮助开发者从零开始轻松掌握人脸识别技术。
  1.     async function updateResults() {
  2.       if (!isFaceDetectionModelLoaded()) {
  3.         return
  4.       }
  5.       const inputImgEl = $('#inputImg').get(0)
  6.       const options = getFaceDetectorOptions()
  7.       const results = await faceapi.detectAllFaces(inputImgEl, options)
  8.       const canvas = $('#overlay').get(0)
  9.       faceapi.matchDimensions(canvas, inputImgEl)
  10.       faceapi.draw.drawDetections(canvas, faceapi.resizeResults(results, inputImgEl))
  11.     }
  12.     async function run() {
  13.       // 加载人脸检测模型
  14.       await changeFaceDetector(SSD_MOBILENETV1)
  15.       // 开始处理图片
  16.       updateResults()
  17.     }
复制代码
  
face-api-static开源项目

face-api.js需要运行在nodejs服务端,不方便移植,为了本地在物联网浏览器中使用,改造了face-api-static开源项目。支持部署在物联网浏览器环境,同时也支持部署在tomcat、nginx、iis、webapi等web容器。
3.png

 
gitee开源地址:人脸识别js库
 

联系方式:微信 billy_yi  QQ: 909501683出处:http://yizhuqing.cnblogs.com/    多年.NET平台开发经验,擅长物联网各类设备(地磅、轨道秤、RFID等)集成开发。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册