如何基于webRTC实现人脸识别功能

前言

首先我们需要先了解一下什么是webRTC 他能做什么

webRTC主要是帮我们处理多媒体应用,如音视频通话,屏幕共享都可以实现,主要基于浏览器API调用,其底层浏览器会调用native C++ 等一些库帮我们实现的,而我们在应用层掉API 即可。

桌面程序我们选择 tauri 而不是 electron

  • 体积更小 electron 的 架构是 将 Node.js 集成到 Chromium 中 因此啥也不写打包完之后体积也有40-50MB 而 tauri 不在嵌入 nodejs + Chromium 前端使用 webview2 渲染,后端和操作系统集成这块使用rust实现,打包只有3MB。
  • 安全方面,tauri 最终在打包之后会生成二进制文件,会增加破解难度,而electron 打包 会把node_modules打进去,增加了体积,而且没有加密。
  • 自动更新 electron 和 tauir 都内置了自动更新 但是electron还是使用electron-updater 多一些,tauri 相比electron 就简单了tauri.app/zh-cn/v1/gu…

详细对比

如何基于webRTC实现人脸识别功能_第1张图片

安装rust

tauri 是基于 rust 的 我们需要先安装rust

下载rust www.rust-lang.org/learn/get-s…

根据自己的操作系统选择下载方式即可

如何基于webRTC实现人脸识别功能_第2张图片

安装完成之后会有 cargo 和 rustc 两个命令

如何基于webRTC实现人脸识别功能_第3张图片

cargo 就是 rust 的包管理工具 类似于npm

cargo build 可以构建项目

cargo run 可以运行项目

cargo test 可以测试项目

cargo doc 可以为项目构建文档

cargo publish 可以将库发布到 crates.io。

构建tauri应用

pnpm create tauri-app |  

选择对应的模板即可

如何基于webRTC实现人脸识别功能_第4张图片

构建完成之后 执行

pnpm tauri dev

如何基于webRTC实现人脸识别功能_第5张图片

App.vue





tips:如果读不到 mediaDevices 需要增加plist 文件

info.plist 跟 tauri.conf.json 平级即可




	
		NSCameraUsageDescription
		请允许本程序访问您的摄像头
	

如何基于webRTC实现人脸识别功能_第6张图片

添加人脸识别API

模型下载地址 github.com/justadudewh…

face-api 下载地址

npm i face-api.js 




如何基于webRTC实现人脸识别功能_第7张图片

总结

到此这篇关于如何基于webRTC实现人脸识别的文章就介绍到这了,更多相关webRTC人脸识别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

你可能感兴趣的:(如何基于webRTC实现人脸识别功能)