CognitiveJ 是一个开源的,支持 Java 8 API 的库,用于管理和编排 Java 应用和微软的Cognitive(Project Oxford)机器学习和图像处理库的项目,可以让你查询以及分析图像。

一:人脸识别

1.人脸检测– 捕获脸部、性别、年龄等相关脸部特征以及图像的标志

2.表情检测 – 根据图像中的脸部信息推断出表情状态

3.验证 – 验证同一个人的两张不同表情的差异

4.识别 – 根据已知的人里识别出某个人

5.查找相似 —— 对人脸检测、分组以及排名以找出类似的人脸

6.分组 – 基于脸部特征进行人的分组

7.Person Group/Person/Face Lists; 创建、管理和训练分组、脸部和人列表用于识别、分组和查找相似的脸部特征

二:视觉

1.图像描述 —— 描述图像的可视化内容并返回真实世界中的表述方式

2.图像分析 —— 抽取图像中的关键信息,例如可判断图片是否包含色情性质

3.OCR – 检测和提取图像中的文字

4.缩略图 – 根据图像的关键点来创建缩略图

三:图层 (体验阶段)

1.应用图像层到多个图像上,将发现的特征进行可视化展现

2.在人脸和图像上使用字幕

3.形象的描述脸部和视觉特征集

4.对图像中的人脸进行像素化

四:其他特性

1.支持本地和远程图像

2.参数校验

五:代码示例

1.Gradle

repositories {

jcenter()

}

dependencies {

compile "cognitivej:cognitivej:0.6.2"

}

2.Maven支持

cognitivej

cognitivej

0.6.2

pom

3.链式构建器 - 该构建器是 MS Cognitive REST 服务的简单轻量级封装,用来管理参数和响应、HTTP 通讯和重试策略的编排。构建器使用链式设计模式允许方便的在资源处理过程中进行操作。

封装器 简单的关于请求、响应和参数对象的封装,例如 Face, FaceAttributes,Person 等等

4.脸部检测 可以检测图片中的人脸,并返回一组脸部结果集合。

public static void main(String[] args) {

FaceScenarios faceScenarios = new FaceScenarios(getProperty("azure.cognitive.subscriptionKey"),

getProperty("azure.cognitive.emotion.subscriptionKey"));

ImageOverlayBuilder imageOverlayBuilder = ImageOverlayBuilder.builder(IMAGE_URL);

imageOverlayBuilder.outlineFacesOnImage(faceScenarios.findFaces(IMAGE_URL), RectangleType.FULL,

CognitiveJColourPalette.STRAWBERRY).launchViewer();

}

5.脸部特征 用来检测图片中人脸的特征标志信息

public static void main(String[] args) throws IOException {

FaceScenarios faceScenarios = new FaceScenarios(getProperty("azure.cognitive.subscriptionKey"),

getProperty("azure.cognitive.emotion.subscriptionKey"));

Face faces = faceScenarios.findSingleFace(IMAGE_URL);

ImageOverlayBuilder.builder(IMAGE_URL).outFaceLandmarksOnImage(faces).launchViewer();

}

6.脸部属性检测 显示所检测到的脸部的属性,例如性别、年龄、是否佩戴眼镜等

public static void main(String[] args) {

FaceScenarios faceScenarios = new FaceScenarios(getProperty("azure.cognitive.subscriptionKey"),

getProperty("azure.cognitive.emotion.subscriptionKey"));

List faces = faceScenarios.findFaces(IMAGE_URL);

ImageOverlayBuilder.builder(IMAGE_URL).outlineFacesOnImage(faces, RectangleType.CORNERED,

CognitiveJColourPalette.MEADOW).writeFaceAttributesToTheSide(faces, CognitiveJColourPalette.MEADOW).launchViewer();

}

7.脸部验证 用来验证两个不同的脸部是否属于一个人,包含一个检测的可靠指数。

public static void main(String[] args) {

FaceScenarios faceScenarios = new FaceScenarios(getProperty("azure.cognitive.subscriptionKey"),

getProperty("azure.cognitive.emotion.subscriptionKey"));

ImageOverlayBuilder.builder(CANDIDATE_1);

imageOverlayBuilder.verify(CANDIDATE_2, faceScenarios.verifyFaces(CANDIDATE_1, CANDIDATE_2)).launchViewer();

}

8.脸部标识 标识出图像中的人。在标识之前,我们需要提供一组候选样本,当前最多支持 1000 个候选样本。

public static void main(String[] args) {

FaceScenarios faceScenarios = new FaceScenarios(getProperty("azure.cognitive.subscriptionKey"),

getProperty("azure.cognitive.emotion.subscriptionKey"));

ImageOverlayBuilder imageOverlayBuilder = ImageOverlayBuilder.builder(IMAGE);

List candidates = candidates();

People people = ScenarioHelper.createPeopleFromHoldingImages(candidates, ImageNamingStrategy.DEFAULT);

String groupId = faceScenarios.createGroupWithPeople(randomAlphabetic(6).toLowerCase(), people);

}

9.脸部像素化 将图像中所有的脸部信息标识出来并进行像素化。

public static void main(String[] args) {

FaceScenarios faceScenarios = new FaceScenarios(getProperty("azure.cognitive.subscriptionKey"),

getProperty("azure.cognitive.emotion.subscriptionKey"));

ImageOverlayBuilder imageOverlayBuilder = ImageOverlayBuilder.builder(IMAGE);

faceScenarios.findFaces(IMAGE).stream().forEach(imageOverlayBuilder:: pixelateFaceOnImage);

imageOverlayBuilder.launchViewer();

}

public static void main(String[] args) {

FaceScenarios faceScenarios = new FaceScenarios(getProperty("azure.cognitive.subscriptionKey"),

getProperty("azure.cognitive.emotion.subscriptionKey"));

ImageOverlayBuilder.builder(IMAGE_URL).outlineEmotionsOnImage(faceScenarios.findEmotionFaces(IMAGE_URL)).launchViewer();

}

10.视觉描述 使用人类可读的方式来分析和描述图像中的内容。

public static void main(String[] args) {

ComputerVisionScenario computerVisionScenario = new ComputerVisionScenario(getProperty("azure.cognitive.vision.subscriptionKey"));

ImageDescription imageDescription = computerVisionScenario.describeImage(IMAGE_URL);

ImageOverlayBuilder.builder(IMAGE_URL).describeImage(imageDescription).launchViewer();

}

11.OCR 用来分析和提取图像中包含的文字信息。

public static void main(String[] args) {

ComputerVisionScenario computerVisionScenario = new ComputerVisionScenario(getProperty("azure.cognitive.vision.subscriptionKey"));

OCRResult ocrResult = computerVisionScenario.ocrImage(IMAGE_URL);

ImageOverlayBuilder.builder(IMAGE_URL).ocrImage(ocrResult).launchViewer();

}

java图像识别库_CognitiveJ一个Java的人脸图像识别开源分析库相关推荐

  1. (一)初识java ---我的第一个java程序

    初识java ---我的第一个java程序 课程目录 l  準備 l  開発環境的準備 l  環境変数Path設定 l  第一个程序 目标 «  实现自己的HelloWorld并运行看到结果 一.準備 ...

  2. CognitiveJ一个Java的人脸图像识别开源分析库

    CognitiveJ 是一个开源的,支持 Java 8 API 的库,用于管理和编排 Java 应用和微软的Cognitive(Project Oxford)机器学习和图像处理库的项目,可以让你查询以 ...

  3. 揭秘java虚拟机 kindle_Kindle有一个java虚拟机

    Kindle有一个java虚拟机 从网上已经出现的资料看,kindle严重依赖java.所有的应用都象是用java开发的.好象kindle是用的CDC和CVM.如果Amazon开放kindle,jav ...

  4. java图片缩放工具类,一个JAVA图形缩放处置工具类

    一个JAVA图形缩放处理工具类 调用的例子 import java.io.FileOutputStream; import java.io.IOException; import javax.imag ...

  5. 一个java源文件允许_一个Java源文件中最多只能有一个class定义

    一个Java源文件中最多只能有一个class定义 答:× 确诊甲状腺功能紊乱的常规指标是 答:FT3和FT4 I will not let my children in that way. 答:be ...

  6. java gui 打开另一个,java – 从另一个JFrame Gui访问vars

    好的,我已根据您的说法对我的代码进行了一些更改.我有3个班: 第二类(和第一个GUI):我有4个JButton – Simulare,CazParticular,Start和HandSelection ...

  7. java多状态机_一个java状态机样例的代码

    在UML当中有状态机视图,这个状态机可以用于自动售货机,自动售票机等等场景,下面是用java代码模拟的一个状态机: 1.状态机接口 package stateMachine; /** * 状态机接口 ...

  8. java 级数_编写一个Java程序实现级数运算。

    编写一个Java程序实现级数运算.其中:定义级数求和类,以及级数求积(阶乘)类,在项目主类中声明一个级数求和对象和求阶乘对象,由键盘输入级数的n值,并打印出1+2+...+n的和,以及... 编写一个 ...

  9. java类库geotools_Geotools是一个java类库

    Geotools是一个java类库,它提供了很多的标准类和方法来处理空间数据,同时这个类库是构建在OGC标准之上的,是OGC思想的一种实现.而OGC是国际标准,所以geotools将来必定会成为开源空 ...

最新文章

  1. 谈IE的浏览器模式和文档模式
  2. Python函数中的变量作用域
  3. POJ 2942 Knights of the Round Table ★(点双连通分量+二分图判定)
  4. 腾讯的老照片修复算法,我把它搬到网上,随便玩
  5. vue部署到服务器_利用Gulp实现代码自动化部署
  6. Ubuntu 安装 chrome
  7. ad中那个快捷键是重复上一部_Excel中的F4快捷键用的好,告别加班没烦恼!
  8. mkdir() mkdirs() createNewFile
  9. 对登录验证功能进行GUI设计
  10. 开发一款APP需要多少钱?
  11. 记事本字符编码没有Unicode选项
  12. Office 365导出PDF带备注页
  13. 苹果开发者账号(公司级)和邓白氏编码(D-U-N-S)申请记录(2015.06)
  14. [深入理解Android卷二 全文-第五章]深入理解PowerManagerService
  15. 【Android】精通Android UI设计
  16. 【性能测试】获取性能系统指标之示例Python代码
  17. Spark On YARN 环境搭建
  18. ImageNet准确率超过90%!谷歌大脑开源V-MoE,用稀疏条件计算来训练目前最大的视觉模型!(NeurIPS 2021)...
  19. 【QML】C++访问QML函数获取返回值时报:Unable to invoke methods with return values in queued connections
  20. 【❗划重点!C语言函数参数传递只有两种方式(值传递,地址传递),不支持“引用传递”!❗】

热门文章

  1. 程序包无效:“CRX_HEADER_INVALID“的解决方法(最全最细)
  2. 云原生时代下的容器镜像安全(上)
  3. 读书百客:《五美吟·红拂》赏析
  4. 作为一个编程新手如何学好Java编程?
  5. 机器学习中的核函数与核方法(好!)
  6. 漏洞扫描--需要整改的
  7. sql数据类型转换(cast() and convent())函数)(转)
  8. 会声会影导入视频是黑色的 会声会影导入视频只有声音
  9. 互联网医疗美容平台新氧域名—soyoung.com
  10. Python Turtle绘图基础(三)——Turtle色彩和画笔设置