| 基于easyAi 100% java代码 本地人脸识别项目 基于easyAi 100% java代码 本地人脸识别内核算法模块
 maven地址
 在pom文件中引入以下JAR包即可(若最新版本中央库还没更新,则直接下载发行版,自行安装到本地库)
 部署须知复制代码        <dependency>
            <groupId>org.dromara.easyai</groupId>
            <artifactId>seeFace</artifactId>
            <version>1.0.7</version>           
        </dependency>
快速开始API初始化模型在项目resources文件夹内,初始化方法需载入对应照片和json文件初始化方法在App.java中使用face.look()方法获取特征向量,特征向量为二维数组请保存识别人脸时,获取图像的特征向量,并与库内其他人脸入向量数据库的特征向量做欧氏距离比较,距离最近的就是要找人的人。可以设置距离阈值,当距离大于设定阈值,则认为库内不存在该人脸(该阈值通常为9000)本项目输入图片必须为竖向图片(既高大于宽),且宽高比大致符合3:4的手机拍摄照片比例(越接近3:4越好),若宽高比差异过大,可能会导致识别失败当识别返回结果FaceMessage为null时说明无检出人脸图片(人脸在图像中比例过小,或者光照过暗过曝,或者无人脸)。人脸在图像中占比宽与高至少要超过图像宽高的四分之一,光照过高过低也都会导致失败。本项目依赖easyAi (附件中包含此源码)Face face识别类在服务启动时进行初始化FaceFactory获取且会加载resources下预训练模型信息,类会初始化为单例,直接使用内存中加载模型后单例化的该类获取特征矩阵。
 public ErrorMessage look(ThreeChannelMatrix face, long eventID, int secondExplore)获取该图像的特征向量 参数ThreeChannelMatrix face为解析图像的三通道矩阵
 参数long eventID线程安全唯一ID
 参数int secondExplore迭代强度,识别时建议使用30,入库时提高到60,该数值越大对人脸抓取就越稳,但速度越慢。所以人脸入库获取向量时 提高该数值,求最稳。识别获取特征时降低到30,可以在兼顾一定稳定的同时求快。
 返回实体ErrorMessage private int errorCode = 0为错误码,当错误码为0时才是正常获取了结果
 private String errorMessage错误原因
 FaceMessage faceMessage人脸信息结果,当错误码不为0时,该返回实体为null 参数private Matrix feature为特征矩阵,内置二维数组保存特征值,可通过getMatrix()方法将二维数组提取出来用来特征值保存入库,以方便使用向量数据库对比。
 参数private ThreeChannelMatrix channel定位到的人脸特征的图像三通道矩阵,可以使用ImageTools中的imageTools.writeImage(faceMessage.getChannel(), "/Users/lidapeng/job/faceData/test/b1.jpg"); 方法将人脸输出出来,观察人脸定位结果,如果抓取位置异常,说明本次识别结果不理想,可进行重新拍摄再次获取。 
 
  
 链接:https://pan.quark.cn/s/e975490fe0a5
 提取码下载:
 
 
 
 
 |