Reactjs 如何使用react native camera facedetector检测人脸?

Reactjs 如何使用react native camera facedetector检测人脸?,reactjs,react-native,face-detection,firebase-mlkit,react-native-camera,Reactjs,React Native,Face Detection,Firebase Mlkit,React Native Camera,我正在尝试使用react native camera检测人脸,我想知道如何检测个人的人脸,没有关于mlkit的适当文档 wait FaceDetector.detectFacesAsync(data.uri)这条语句只是像这样返回face对象face[0]={bounds:{origin:{x:739,y:987},size:{x:806,y:789},faceID:0,rollAngle:10.533509254455566,yawAngle:0.7682874798774719} 这只是对象

我正在尝试使用
react native camera
检测人脸,我想知道如何检测个人的人脸,没有关于
mlkit
的适当文档

wait FaceDetector.detectFacesAsync(data.uri)
这条语句只是像这样返回face对象
face[0]={bounds:{origin:{x:739,y:987},size:{x:806,y:789},faceID:0,rollAngle:10.533509254455566,yawAngle:0.7682874798774719}


这只是对象的位置,我不知道如何使用人脸检测器识别个人的面部特征,如眼睛、鼻子,假设我将保存A个人的面部数据,然后如何在以后使用react native camera将数据与A的面部匹配?

ML套件不支持面部识别。另外,React Native还没有得到官方的支持,但您可以查看一下哪种轮廓线可以获得133点的面部轮廓。但是,这不是用于面部识别,而是用于覆盖(例如,遮罩、过滤器)。

React native camera有一个可用于面部检测的面部检测道具


[

此方法是您将在react本机相机的人脸检测道具中使用的方法

从“反应本机启动屏幕”导入启动屏幕
从“React”导入React,{useffect,createRef,useState};
从“react native”导入{SafeAreaView,View,Image,StyleSheet,Text,Modal,TouchableOpacity};
从“react native camera”导入{RNCamera};
常量测试=(道具)=>{
useffect(()=>{
SplashScreen.hide();
});
const[faces,setFace]=useState([]);
const[faceavl,setFaceavl]=useState(false);
const[takeTimeFaceAvl,setTakeTimeFaceAvl]=useState(false);
常量[searchWaiting,setsearchWaiting]=useState(null)
const[modalVisible,setModalVisible]=使用状态(false);
const[image,setImage]=useState(null);
常量mycamera=createRef()
const PendingView=()=>(
等待
);
常量渲染面=()=>(
{faces.map(renderFace)}
);
const renderFace=({bounds,faceID,rollAngle,yawAngle})=>(
);
返回(
{
setFace(data.faces)
setFaceavl(真);
clearTimeout(搜索等待)
const avc=setTimeout(()=>{
console.log()
setFaceavl(假);
setFace([])
}, 500)
设置搜索等待(avc)
}}
onFaceDetectionError={(错误)=>{
log('face--detact-->',错误)
}}
>
{({摄像头,状态,recordAudioPermissionStatus})=>{
如果(状态!=“准备就绪”)返回;
返回(
{
const options={quality:0.5,base64:true};
const data=wait camera.takePictureAsync(选项)
if(faceavl){
setTakeTimeFaceAvl(真)
}否则{
setTakeTimeFaceAvl(错误)
}
log(data.uri)
设置图像(数据)
setModalVisible(!modalVisible)
}}style={style.capture}>
断裂
);
}}
{faces?renderFaces():null}
{
警报。警报(“模式已关闭”);
setModalVisible(!modalVisible);
}}
>
{takeTimeFaceAvl?图像?:空:未找到面}
setModalVisible(!modalVisible)}
>
隐藏模态
);
}
const styles=StyleSheet.create({
容器:{
弹性:1,
flexDirection:'列',
背景颜色:“黑色”,
},
项目:{
背景颜色:“#FFF”,
},
视图一:{
flexDirection:“行”
},
视图二:{
对齐项目:“柔性端”,边距:9
},
标题:{
fontSize:16,//Semibold#000000
颜色:'#000000',
},
中午:{
颜色:“#D65D35”,
fontSize:20,//半黑体
},产品:{
颜色:“#A6”,
fontSize:16,//常规
},标题视图:{
弹性:1,
对齐自我:“中心”,
玛格丽特:14,
玛吉宁:14岁,
},
centeredView:{
弹性:1,
辩护内容:“中心”,
对齐项目:“中心”,
玛金托普:22
},
莫达尔维:{
差额:20,
背景颜色:“白色”,
边界半径:20,
填充:10,
对齐项目:“中心”,
阴影颜色:“000”,
阴影偏移:{
宽度:0,
身高:2
},
阴影不透明度:0.25,
阴影半径:4,
立面图:5
},
按钮:{
边界半径:20,
填充:10,
标高:2
},
按钮按钮:{
背景颜色:“F194FF”,
},
纽扣:{
背景色:“2196F3”,
},
文本样式:{
颜色:“白色”,
fontWeight:“粗体”,
textAlign:“居中”
},
modalText:{
marginBottom:15,
textAlign:“居中”
},
预览:{
弹性:1,
justifyContent:“柔性端”,
对齐项目:“居中”,
},
捕获:{
弹性:0,
背景颜色:“#fff”,
边界半径:5,
填充:15,
水平方向:20,
对齐自我:“中心”,
差额:20,
},
});