博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CognitiveJ一个Java的人脸图像识别开源分析库
阅读量:6907 次
发布时间:2019-06-27

本文共 4962 字,大约阅读时间需要 16 分钟。

hot3.png

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();}

转载于:https://my.oschina.net/u/2391658/blog/1507239

你可能感兴趣的文章
redis 与 memcached
查看>>
直接编译caffe出现的两个问题
查看>>
Python编程笔记(第三篇)【补充】三元运算、文件处理、检测文件编码、递归、斐波那契数列、名称空间、作用域、生成器...
查看>>
win7 设置docker加速器
查看>>
centos ibus erro resolve
查看>>
Jedis存取对象和对象列表
查看>>
什么是区块链?
查看>>
PHP-Phalcon框架中的数据库操作
查看>>
第16届电源技术专题研讨会
查看>>
Python web前端 05 JavaScript
查看>>
Hibernate(1) 阻抗不匹配
查看>>
如何才能留住员工
查看>>
Pascal常用函数
查看>>
LeetCode - 12. Integer to Roman
查看>>
Python——hashlib
查看>>
关于DB2 ORACLE MYSQL 数据库 where字句执行顺序问题
查看>>
Java+Selenium3.3.1环境搭建
查看>>
@responseBody注解的使用
查看>>
为什么in_array(0, ['a', 'b', 'c'])返回true
查看>>
CISCO 7204路由器SDH线路配置
查看>>