# face **Repository Path**: gdty/face ## Basic Information - **Project Name**: face - **Description**: 兼容所有客户端的人脸检测,包括微信小程,QQ,uniapp,谷歌浏览器,safari浏览器等,截取第一张照片传到后台做人脸识别,uniapp安卓需要用x5 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 2 - **Created**: 2021-03-26 - **Last Updated**: 2025-09-27 ## Categories & Tags **Categories**: cv **Tags**: 原创 ## README # 前端人脸检测 #### 介绍 兼容所有客户端的人脸检测,包括微信小程序,QQ,uniapp,谷歌浏览器,safari浏览器等,截取第一张照片传到后台做人脸识别,uniapp安卓需要用x5 #### 问题 1. TinyYolov2 - load model before inference 出现该问题是因为某个模型没加载,但是使用了该模型的功能 例如:faceExpressionNet模型.withFaceExpressions()功能。 2. loadFromUri可能加载不了uniapp的本地模型,需要使用已下方式: ```javascript //axios const res = await axios.get('/models/face_detection_model.weights', { responseType: 'arraybuffer' }) const weights = new Float32Array(res.data) net.load(weights) //XMLHttpRequest load1: function(){ return new Promise((resolve,reject)=>{ let net = faceapi.nets.tinyFaceDetector let oReq = new XMLHttpRequest(); oReq.open("GET", "../models/tiny_face_detector_model.weights", true); // 加载模型,传入路径 oReq.responseType = "arraybuffer"; // 设置加载的文件返回类型 oReq.onload = function () { console.log('加载成功') let arrayBuffer = oReq.response; // 加载完模型文件后获取到对应buffer let weights = new Float32Array(arrayBuffer) net.load(weights).then(()=>{ console.log('加载成功') resolve(); }) } oReq.send(null); }) }, ``` 3. 如果是uniapp,需要在webview中内嵌本项目。 4. 例子中的模型可能用不上的可以去掉,防止加载慢。 5. macos h5中需要授权hbuild摄像头权限,不然会闪退。