Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

hongithub/face

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

2 Commits

Repository files navigation

face

人脸识别BMFv4的文档使用 1.BRFManager 2.BRFFace

一:控制流程; control flow: 1.初始化init(Rectangle,imageDateSize,Rectangle imageRoi,String appld): void; 数据类型rectangle==矩形: string==字符串 参数设置: imageDate:图像数据大小==>格式(0,0,640,480)对于640x480分辨率的照相机 imageRoi:在imageDataSize 中你要分析的区域 对于640x480分辨率的相机,您需要将roi设置为与imageDataSize:Rectangle(0,0,640,480)相同的尺寸。但也许你想限制它的中心,例如。矩形(80,0,480,480),这将限制分析区域从xStart = 80到xEnd = 80 + 480 = 560。

2.更新位图:update(Bitmap imageData):void; 功能:做跟踪工作;在三个BRFMode中的任何一个中运行; 需要在更新之前自行更新imageData 可以检索结果: getAllDetectedFaces():Vector; getMergedDetectedFaces()Vector; getFaces():Vector;

3.重置:reset() :void; 所有面部追踪器重置并通过执行面部检测重新开始。所有的点跟踪点都被删除。 4.获取模型:getMode(): String; 返回当前设置的BRFMode。 5.设置模型:setMode(String mode):void 设置BRFMode的三种模式之一: 模式: a.BRFMode.FACE_DETECTION:此模式只会执行人脸检测的部分,并跳过详细分析; b.BMFMode.FACE_TRACKING:这是人脸跟踪的常用模式,他执行人脸检测以查找人脸,然后详细跟踪人脸特征 c.BMFMode.POINT_TRACKING:此模式将跳过人脸检测和跟踪,只执行点跟踪。你可以通过选择FACE_TRACKING作为模式同时执行面部跟踪和点跟踪; 二:面部检测: 1.设置面部检测的参数项: setFaceDetectionParams(minWidth,maxWidth,stepSize,minMergeNeighbors); 参数基准参考480px; minWidth:查找起始或最小面部大小;以像素为单位; maxWidth:查找结束或最大面部大小; stepSize:最小步长是12,必须为12的倍数,通过这个的增加可以跳过检测图层,达到脸部检测不太准确,但执行速度更快; minMergeNeighbors:蓝色数量,把它们全部合并成一个检测到的脸(显示黄色) 2.setFaceDetectionRoi(roi);设置感兴趣的区域:roi(长方形) 图像中的矩形区域。 3.getAllDetectedFaces():Vector 返回上次更新期间检测到的所有候选人脸(蓝色)。 4.getMergedDetectedFaces():Vector 返回上次更新调用的所有实际合并/检测到的面孔(黄色)。

三,面部跟踪: 1.setNumFacesToTrack(int numFaces):void 设置追踪的面数(面孔数);默认单面追踪为1 2.setFaceTrackingStartParams(double minWidth,double maxWidth,double rx,double ry,double rz):void 控制拾取脸部的条件参数设置: 注:保持minWidth和maxWidth值与面部检测setFaceDetectionParams()中设置的参数大致相同。 minWidth:必须拾起面部的最小尺寸; maxWidth:可以拾取一张脸的最大尺寸; rx:围绕x轴旋转的角度;(俯仰==向上、向下翻转头) ry:围绕y轴旋转的角度;(偏航-==头部向左向右转动) rz:围绕z轴转动(滚动、倾斜头向左向右) 3.面部跟踪的重置条件设置: setFaceTrackingResetParams(double minWidth,double maxWidth,double rx,double ry,double rz):void 通过设置这些参数,您可以控制重置人脸跟踪的条件。如果脸部比minWidth小或大于maxWidth,或者头部比rx,ry或rz多,跟踪将重置。 4.getFaces():Vector 返回当前跟踪的面的列表。

四:点跟踪; 1.setOpticalFlowParams(patchSize,numLevels,numIterations,double error):void 光流是一种点跟踪算法。它被用于BRFv4来稳定快速运动。您可以通过设置BRFMode.POINT_TRACKING来独立执行此点跟踪,或者通过设置其他两种模式中的任何一种来并行执行此跟踪。 patchSize;奇数,用来比较新图像的点周围的区域,较大的值会降低性能。较低的值会降低准确性,21是一个很好的默认值; numLevels:等级数量设置;1,2,3,或4这几个值; numlterations:执行搜索的最大迭代次数; error:通常小于0.0001;

2.addOpticalFlowPoints(Vector pointArray); 添加新点以跟踪:应该在调用update()之前同步完成 pointArray(vector):要添加到光流跟踪的点列表; 3.返回BRF是否会检查点的有效性: getOpticalFlowCheckPointsValidBeforeTracking(); 布尔值; 4.setOpticalFlowCheckPointsValidBeforeTracking(布尔值):void 设置BRF是否检查点的有效性。在连续的点跟踪中,会有点不能被跟踪 5.返回当前跟踪的点:getOpticalFlowPoints() 6.getOpticalFlowPointStates() 返回所有当前跟踪点的状态

第二章:BMFFace BMFFace:拥有关于被跟踪的脸部的所有信息; 属性: lastState:string: 在调用update之前,此面孔的最后一个状态 state:此面目前的状态,任何一个BRF状态 对应的四种状态: a.BRFState.RESET 由于调用重置或因为它超过重置参数,此面被重置。 b. BRFState.FACE_DETECTION BRFv4正在寻找一张脸,仍然没有发现。 c.BRFState.FACE_TRACKING_START BRFv4找到了一张脸,并尝试将脸部跟踪与所识别的脸部对齐。在这种状态下,Candide3模型和3D位置可能不正确。 d.BRFState.FACE_TRACKING BRFv4对齐脸部,现在正在追踪它。 nextState: vertices:顶点 的【x,y,x,y,......x,y】表示的顶点列表:共有68个顶点,68对xy坐标 获取某个顶点的位置: var vx = vertices[index*2]//index是例如27的鼻子; var vy =vy = vertices [index * 2 + 1];

triangles:三角形的连接形成; 顶点可以连接,三角形可以形成。 这是三角形的顶点索引列表,其形式如下:[i0,i1,i2,i0,i1,i2,...,i0,i1,i2]其中3个指标跨越一个三角形。 points:点形式列表为 但是以[{x,y},{x,y},...,{x,y}]形式表示的点的列表,因此长度为:68 获取某个点的位置如: var px = points [index] .x; //索引是例如 27的鼻子。 var py = points [index] .y; bounds:边界 所有顶点的轮廓矩形 refRect: 这是人脸跟踪算法用于执行跟踪的参考矩形。 candideVertices: Candide 3模型顶点。可以用来可视化3D位置,缩放和旋转。 candideTriangles: 三角列表可以绘制Candide 3模型。 scale:全脸的规模。缩放因子 translationX:人脸的起始位置。起点恰好在顶点索引27(鼻子顶部)的后面。 translationY: 图像上脸部起源的y位置。起点恰好在顶点索引27(鼻子顶部)的后面。 rotationX:一个弧度角。围绕X轴旋转(俯仰,向上/向下翻转头) rotationY:一个弧度角。围绕Y轴旋转(偏航,将头部向左/向右转动) rotationZ:一个弧度角。围绕Z轴旋转(滚动,倾斜头向左/右)

第三章: BRFMode: BRFv4可以在以下任何一种模式下运行: 1.FACE_DETECTION:检测人脸矩形 如果您想跳过人脸跟踪部分并仅检测人脸矩形,请设置此模式。点跟踪也可以同步完成;

2.FACE_TRACKING:全脸检测和面部跟踪 如果您想要全脸检测和脸部追踪,请设置此模式。点跟踪也可以同步完成。

3.POINT_TRACKING:追踪人脸的点追踪; 如果您想跳过人脸检测和脸部追踪并仅追踪点,请设置此模式。

第四章: BRFFace可以处于以下状态之一。 1.FACE_DETECTION(字符串) BRFFace试图最初在图像数据中检测到一张脸。 2.FACE_TRACKING_START(字符串) BRFFace在图像数据中找到了一张脸,并尝试对齐人脸跟踪。 3.FACE_TRACKING(字符串) BRFFace正在跟踪图像数据中的人脸。 4.RESET(字符串) 由于BRFManager.reset()调用或超过了BRFManager.setFaceTrackingResetParams() 中设置的重置参数,BRFFace触发了重置。

About

人脸识别

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /