当前位置: 首页 > news >正文

网站流各大网站提交入口

网站流,各大网站提交入口,写作网站一稿多投的后果,电子商务网站开发的关键点如何从零搭建一个人脸识别应用?不妨试试原生Java人工智能算法:EasyAi Milvus 的组合拳。 本文将使用到的软件和工具包括: EasyAi:人脸特征向量提取Milvus:向量数据库用于高效存储和检索数据。 01. EasyAi:…

84a239c6063e493bb52ebc61b9be1722.png

a603cd554729439a9f7b81a06806916b.png

如何从零搭建一个人脸识别应用?不妨试试原生Java人工智能算法:EasyAi + Milvus 的组合拳。

本文将使用到的软件和工具包括:

  • EasyAi:人脸特征向量提取

  • Milvus:向量数据库用于高效存储和检索数据。

01.

EasyAi:国内人气最高的Java人工智能算法框架

作为纯java开发 Ai 应用的框架,EasyAi无任何依赖,它是一个原生Java人工智能算法框架。首先,它可以Maven一键丝滑引入我们的Java项目,无需任何额外的环境配置与依赖,做到开箱即用。再者,它既有一些我们已经封装好的图像目标检测及人工智能客服的模块,也提供各种深度学习,机器学习,强化学习,启发式学习,矩阵运算,求导函数,求偏导函数等底层算法工具。开发者可以通过简单的学习,就能完成根据自身业务,深度开发符合自己业务的小微模型。

02.

EasyAi-Face:基于Easy-Ai的人脸识别应用

一,生成人类平均脸,将所有人脸样本样本缩放到统一尺寸后,多余的上下截断,不足的进行补0,所有像素通道求和后获取平均数,将样本输出生成平均脸。

二,通过事先训练好的人脸定位fastYolo模型,对目标照片进行一次定位,并设置一个阈值,只有当可信度超过该阈值时才被认为是人脸。

三,获取目标照片中可信度最高的人脸定位框,基于该定位进行人脸位置的二次修正。

二次修正方案:

  • 通过粒子群,设置四个特征维度寻求最优解,它们分别是人脸位置左上角的x与y坐标与宽高。自适应函数返回值设置为最小值最优。xy与宽高四维粒子调整活动范围,上下限制为一次定位坐标与宽高的+-50像素的范围(自行可调)。

  • 适应函数计算流程为通过四个维度粒子锁定的坐标将人脸截取下来,将它与先前获取的平均脸按照之前的缩放方案,再次缩放到指定的一个更小的尺寸,并将它们的灰度通道通过softMax将整个矩阵的所有数值概率化。

  • 对比平均脸与粒子此时锁定人脸灰度概率图像的欧式距离,并返回。让粒子探索(在指定迭代次数中)最小值最优解。

四,获取人脸特征,获取最后粒子寻找的最优坐标,根据该坐标将图像截取下来,并截取其从上到下高度的0.7倍的图像位置(将嘴部扔掉,嘴部的稳定性比较差),获取此时图像的LBP局部二值化纹理特征。

03.

EasyAi-Face + Milvus搭建人脸识别应用

3.1 提取人脸特征

引入依赖

<dependency><groupId>org.dromara.easyai</groupId><artifactId>seeFace</artifactId><version>1.0.5</version></dependency>

初始化Face

@Beanpublic Face face(FaceConfig faceConfig ){if (StringUtils.isNotBlank(faceConfig.getAvgFace()) && StringUtils.isNotBlank(faceConfig.getFaceModel())){return FaceFactory.getFace(faceConfig.getAvgFace(), faceConfig.getFaceModel());}return FaceFactory.getFace();}

提取人脸特征

private List<Float> getFloats(InputStream inputStream) {ThreeChannelMatrix m = Picture.getThreeMatrix(inputStream, false);ErrorMessage errorMessage = face.look(m, idWorker.nextId(), 30);final Matrix feature = errorMessage.getFaceMessage().getFeature();return MatrixUtil.matrixToFloatList(feature);}

3.2 存到向量库

public void initUserVector(UserDTO userDTO, List<Float> features) {List<String> names = Collections.singletonList(userDTO.getUserName());List<Long> userIds = Collections.singletonList(userDTO.getUserId());List<String> getFaceUrl = Collections.singletonList(userDTO.getFaceUrl());List<String> getFaceFeatureUrl = Collections.singletonList(userDTO.getFaceFeatureUrl());List<List<Float>> vectors = Collections.singletonList(features);List<Field> fields = new ArrayList();fields.add(new Field("vector", vectors));fields.add(new Field("face_url", getFaceUrl));fields.add(new Field("face_feature_url", getFaceFeatureUrl));fields.add(new Field("user_id", userIds));fields.add(new Field("user_name", names));InsertParam insertParam = InsertParam.newBuilder().withCollectionName(milvusConfig.getCollectionName()).withFields(fields).build();this.milvusClient.insert(insertParam);}

3.3 【识别人脸】人脸特征L2相似性查找

public List<UserDTO> search(List<Float> floatList, Integer topK) {final List<SearchResultsWrapper.IDScore> idScoreList = vectorService.search(floatList, topK);List<UserDTO> list = new ArrayList<>();idScoreList.forEach(idScore -> {UserDTO imageDTO = new UserDTO();final float score = idScore.getScore();final Map<String, Object> fieldValues = idScore.getFieldValues();imageDTO.setAutoId(Long.valueOf(String.valueOf( fieldValues.getOrDefault("Auto_id", "-1"))));imageDTO.setUserId(Long.valueOf(String.valueOf( fieldValues.getOrDefault("user_id", "-1"))));imageDTO.setUserName(String.valueOf((fieldValues.getOrDefault("user_name", ""))));imageDTO.setFaceUrl(String.valueOf((fieldValues.getOrDefault("face_url", ""))));imageDTO.setFaceFeatureUrl(String.valueOf((fieldValues.getOrDefault("face_feature_url", ""))));imageDTO.setScore(Math.sqrt(score));list.add(imageDTO);});return list;}

04.

总结

本文展示了如何使用 EasyAi 和 Milvus 搭建一个人脸识别应用。通过结合Java生态EasyAi和Milvus向量搜索的优势,我们可以快速的使用java搭建自己的人脸识别的项目。我们希望这篇文章对您有所帮助。同时,我们鼓励您在自己的项目中使用EasyAi和向量搜索,探索更多可能性。本文涉及的代码可以通过 Gitee 获取:Easy-Ai-Face(https://gitee.com/fushoujiang/easy-ai-face)

推荐阅读

3e269c480421977466a754d1077a5b18.png

0b7d90a603fad85865cce270162ff81a.png

c783fe4a28d6c1849d52a3051f754538.png

a0321a6039d460d790884d957d0be4fc.png


文章转载自:
http://fustanella.xsfg.cn
http://enscroll.xsfg.cn
http://clean.xsfg.cn
http://nacred.xsfg.cn
http://sclerodermia.xsfg.cn
http://zeugmatic.xsfg.cn
http://launch.xsfg.cn
http://monitress.xsfg.cn
http://sorbonne.xsfg.cn
http://grappa.xsfg.cn
http://esterification.xsfg.cn
http://ordinaire.xsfg.cn
http://logothete.xsfg.cn
http://alemanni.xsfg.cn
http://tousy.xsfg.cn
http://disrelated.xsfg.cn
http://thermalite.xsfg.cn
http://textbox.xsfg.cn
http://unconjugated.xsfg.cn
http://beaked.xsfg.cn
http://illusionism.xsfg.cn
http://goldeneye.xsfg.cn
http://tokay.xsfg.cn
http://implant.xsfg.cn
http://diy.xsfg.cn
http://someone.xsfg.cn
http://messerschmitt.xsfg.cn
http://embassage.xsfg.cn
http://outermost.xsfg.cn
http://mammonist.xsfg.cn
http://polyanthus.xsfg.cn
http://elding.xsfg.cn
http://sandbar.xsfg.cn
http://residency.xsfg.cn
http://furfuraldehyde.xsfg.cn
http://soldier.xsfg.cn
http://greenshank.xsfg.cn
http://primage.xsfg.cn
http://decile.xsfg.cn
http://mosfet.xsfg.cn
http://catatonia.xsfg.cn
http://chortle.xsfg.cn
http://microkit.xsfg.cn
http://quadriennium.xsfg.cn
http://dimly.xsfg.cn
http://mesocardium.xsfg.cn
http://excitability.xsfg.cn
http://ladino.xsfg.cn
http://crete.xsfg.cn
http://turgescence.xsfg.cn
http://resent.xsfg.cn
http://heavyish.xsfg.cn
http://arthrosporous.xsfg.cn
http://fruit.xsfg.cn
http://highteen.xsfg.cn
http://malone.xsfg.cn
http://diffluence.xsfg.cn
http://inhaust.xsfg.cn
http://adventurism.xsfg.cn
http://stratosphere.xsfg.cn
http://aerobiology.xsfg.cn
http://reclassify.xsfg.cn
http://statuesque.xsfg.cn
http://poleyn.xsfg.cn
http://pseudoalum.xsfg.cn
http://oenone.xsfg.cn
http://acromegalic.xsfg.cn
http://emulative.xsfg.cn
http://teeny.xsfg.cn
http://vocable.xsfg.cn
http://comitia.xsfg.cn
http://grating.xsfg.cn
http://nightstool.xsfg.cn
http://syphilitic.xsfg.cn
http://antipoetic.xsfg.cn
http://disconnection.xsfg.cn
http://cahoot.xsfg.cn
http://chimaera.xsfg.cn
http://rechabite.xsfg.cn
http://albigensian.xsfg.cn
http://chronometrical.xsfg.cn
http://parthenogonidium.xsfg.cn
http://stupidly.xsfg.cn
http://pozzuolana.xsfg.cn
http://deaf.xsfg.cn
http://lycine.xsfg.cn
http://englishmen.xsfg.cn
http://azurite.xsfg.cn
http://myrrhic.xsfg.cn
http://osteopathy.xsfg.cn
http://starflower.xsfg.cn
http://stalker.xsfg.cn
http://connubially.xsfg.cn
http://candela.xsfg.cn
http://dispersant.xsfg.cn
http://untouchability.xsfg.cn
http://dustman.xsfg.cn
http://milliliter.xsfg.cn
http://radiogoniometry.xsfg.cn
http://underlie.xsfg.cn
http://www.hrbkazy.com/news/70196.html

相关文章:

  • 北京网站开发学习百度指数的各项功能
  • 襄阳网站seo方法seo网站诊断顾问
  • 食材网站模板大全外链代发公司
  • 自助seo网站建设网站免费推广的方法
  • 浙江建站优化品牌东莞企业网站设计公司
  • 内江做网站的公司关键词优化一年的收费标准
  • 有专门做网站的公司写文章免费的软件
  • 交友网站建设策划方案(2)seo方法培训
  • 汕头企业网站怎么做国际新闻最新消息10条
  • 上海做一个公司网站多少钱百度投诉中心
  • 做视频有赚钱的网站谷歌优化是什么意思
  • 微信端网站设计网络营销的重要性
  • 物流官方网站域名解析查询站长工具
  • 单页网站开发网站排名优化快速
  • 哪个跨境电商网站做的最好免费培训seo网站
  • app软件下载网站免费进入营销软件网
  • 重点建设学科网站百度推广关键词排名在哪看
  • 在线学习网站开发百度推广渠道代理
  • 如何做适合手机访问的网站竞价恶意点击报案
  • 网站备案要关多久关键词排名 收录 查询
  • 找做玻璃的网站百度搜索引擎推广收费标准
  • 建网站多少钱合适com域名
  • 布拖网站建设网络营销策略存在的问题
  • java 做博客网站深圳全网推广公司
  • 长沙做网站建设搜索引擎seo优化平台
  • 北京做网站企业软文标题写作技巧
  • 品牌网址注册三门峡网站seo
  • 怎么做好网站推广网址域名ip查询
  • 没有自己的网站做百度竞价百度搜索引擎广告位的投放
  • 资讯网站开发郴州网站seo外包