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

最近在研究将人脸识别应用到农产品实名收购系统,以防止他人仿冒申领合格证。经过选型找了2种方案,第一种基于.net原生开发,第二种基于js开发,目前两种都可以集成到物联网浏览器中。

第一种使用.net开发插件

.net下使用ViewFaceCore包,ViewFaceCore 是一个开源的、人脸识别 SDK,支持 .NET/.NET Core/.NET Framework 平台。它提供了高效且准确的人脸检测和特征提取功能,可以用于各种与人脸识别相关的应用场景中。

后端代码:

|-------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 | FaceDetector faceDetector = ``new FaceDetector(); var faceImage0 = ``new Bitmap(dirPath).ToFaceImage(); var infos0 = faceDetector.Detect(faceImage0); FaceLandmarker faceMark = ``new FaceLandmarker(); var points0 = faceMark.Mark(faceImage0, infos0[0]); FaceRecognizer faceRecognizer = ``new FaceRecognizer(); float``[] fromData = faceRecognizer.Extract(faceImage0, points0); float``[] faceData = model.FaceVector; return faceRecognizer.Compare(fromData, faceData); |

前端代码:

|-------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | async getSingleFace(s) { ``var data = ``this``.faceImgPath; ``ar = await dds.dynamic.api.exectuce({ method: ``"post"``, pluginName: ``"Face"``, actionName: ``"GetSingleFace"``, actionData: (data) }) ``console.log(``'人脸信息'``, ar) ``this``.faceKeys = ar.Data; }, async compareFace(cb) { ``var data = { fileName: ``this``.faceImgPath, targetKeys: ``this``.faceKeys }; ``ar = await dds.dynamic.api.exectuce({ method: ``"post"``, pluginName: ``"Face"``, actionName: ``"Compare"``, actionData: JSON.stringify(data) }) ``console.log(``'人脸比较'``, ar) ``this``.resultInfo = ``"相似度:" + ar.Data + ``"" ``if (ar.Data < 0.8) { ``cb && cb() ``} ``else { ``this``.startVideo = ``false``; ``} }, |

  

物联网浏览器(IoTBrowser)-人脸快速搜索就是基于这个开发

第二种使用基于face-api.js

face-api.js 是一个强大的 JavaScript 人脸识别库,它基于 TensorFlow.js 核心(tensorflow/tfjs-core)实现,能够在浏览器和 Node.js 环境中无缝运行。该 API 为开发者提供了丰富的人脸检测与识别功能,使得在 Web 应用中集成高级计算机视觉能力变得前所未有的简单。

主要功能与亮点

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

  • 实时人脸追踪与识别:利用 MTCNN 面部检测器,实现高效的实时 JavaScript 人脸追踪。

  • 摄像头实时检测:支持从实时摄像头流中检测人脸并进行情绪识别,可应用于视频场景。

  • 流行框架集成:提供了与 Vue.js 和 Electron 等框架结合使用的示例,方便开发者快速上手。

  • 趣味应用案例:例如"给人戴口罩"------Gant Laborde 谈与 Jason 一起学习,展示了库的灵活性和趣味性。

此外,官方还提供了详细的视频教程,帮助开发者从零开始轻松掌握人脸识别技术。

|----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | async ``function updateResults() { ``if (!isFaceDetectionModelLoaded()) { ``return ``} ``const inputImgEl = $(``'#inputImg'``).get(0) ``const options = getFaceDetectorOptions() ``const results = await faceapi.detectAllFaces(inputImgEl, options) ``const canvas = $(``'#overlay'``).get(0) ``faceapi.matchDimensions(canvas, inputImgEl) ``faceapi.draw.drawDetections(canvas, faceapi.resizeResults(results, inputImgEl)) } async ``function run() { ``// 加载人脸检测模型 ``await changeFaceDetector(SSD_MOBILENETV1) ``// 开始处理图片 ``updateResults() } |

  

face-api-static开源项目

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

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

相关推荐
张小姐的猫2 分钟前
【AI大模型接入SDK】 —— SQLite上手
linux·开发语言·c++·人工智能·python·log4j
知孤云出岫12 分钟前
深扒:DolphinDB,为什么它正在成为工业物联网实时计算的新底座?
物联网·数据·工业·dolphindb·计算
溪语流沙18 分钟前
【Python项目实战】部署上线:把博客发布到云服务器
服务器·开发语言·python
做萤石二次开发的哈哈19 分钟前
路由器管理应用不用逐个啃协议了:海康无线路由器接入萤石蓝海AIoT,五类技能组合生成多端网管系统
人工智能·物联网·低代码·萤石开放平台·蓝海aiot一站式工作台·aiot开发
岁岁种桃花儿26 分钟前
Vue组件第六篇:Vue单文件组件
开发语言·前端·javascript·vue.js
yivifu29 分钟前
创建支持交叉链接且鼠标悬停显示注释框的HTML文件
前端·javascript·html
朽棘不雕33 分钟前
Qt项目代码解释
开发语言·qt
计算机毕设定制辅导-无忧学长42 分钟前
《基于Java的旧物回收管理系统设计与实现》
java·开发语言
“AI国潮设计-小江”42 分钟前
【Python/SDXL实战】潮汕国潮IP视觉落地:普宁美食猫IP & 创意甜品设计(附ComfyUI工作流与商用授权思路)
开发语言·人工智能·python·prompt·aigc
sdm0704271 小时前
仿muduo库实现高并发服务器-下
开发语言·网络·c++·多路转接