⭐前言
大家好,我是yma16,本文分享接入阿里视觉智能平台免费体验—人脸人体识别。
ocr概念
OCR是Optical Character Recognition的缩写,即光学字符识别,是一种将图像中的文字或符号识别并转换为可编辑文本的技术。OCR的原理是通过扫描和识别图像中的字符,然后将其转换为计算机可读的文本,以便进行编辑、处理、存储和共享。OCR可以应用于各种场景,如文档数字化、自动化数据输入、身份证、护照、车牌等证件信息识别等。近年来,随着技术的不断发展,OCR的识别精度和应用场景也在不断拓展。
⭐阿里视觉智能平台
平台链接:
https://developer.aliyun.com/group/viapi/?spm=a2c6h.12873639.article-detail.4.759c55ae61KKkB
⭐开通服务
选择人脸识别
进入人类人体识别功能控制台
⭐代码接入(node)
接入文档
https://help.aliyun.com/document_detail/188840.html
创建AccessKey
链接直达:
https://ram.console.aliyun.com/manage/ak
依赖安装
sdk接入渲染node
npm install @alicloud/facebody20191230
npm install @alicloud/ocr20191230
npm install @alicloud/ocr20191230
官方接入:
注意:
process.env对应电脑的环境变量
⭐ocr 文字识别
sdk接入ocr
// 引入SDK
// 1、这里只是以ocr为例,其他能力请引入相应类目的包。包名可参考本文档上方的SDK包名称,能力名可参考对应API文档中的Action参数。例如您想使用通用分割,其文档为https://help.aliyun.com/document_detail/151960.html,可以知道该能力属于分割抠图类目,能力名称为SegmentCommonImage,那么您需要将代码中ocr20191230改为imageseg20191230,将RecognizeBankCard改为SegmentCommonImage。
const OcrClient = require('@alicloud/ocr20191230');
const OpenapiClient = require('@alicloud/openapi-client');
const TeaUtil = require('@alicloud/tea-util');
const fs = require('fs');
const http = require('http');
const https = require('https');
let config = new OpenapiClient.Config({
// 2、创建AccessKey ID和AccessKey Secret,请参考https://help.aliyun.com/document_detail/175144.html。
// 如果您用的是RAM用户AccessKey,还需要为RAM用户授予权限AliyunVIAPIFullAccess,请参考https://help.aliyun.com/document_detail/145025.html。
// 从环境变量读取配置的AccessKey ID和AccessKey Secret。运行示例前必须先配置环境变量。
accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET
});
// 3、访问的域名。注意:这个地方需要求改为相应类目的域名,参考:https://help.aliyun.com/document_detail/143103.html
config.endpoint = `ocr.cn-shanghai.aliyuncs.com`;
// 4、这里只是以ocr为例,其他能力请引入相应类目的包下面的Client类
const client = new OcrClient.default(config);
const getResponse = function (httpClient, url) {
return new Promise((resolve, reject) => {
httpClient.get(url, function (response) {
resolve(response);
})
})
}
const request = async function () {
try {
// 5、这里只是以ocr下的RecognizeBankCard为例,其他能力请使用相应类目的包和类,具体入参设置需要参考具体能力的文档
let recognizeBankCardAdvanceRequest = new OcrClient.RecognizeBankCardAdvanceRequest();
// 场景一,使用本地文件
// const fileStream = fs.createReadStream('/tmp/bankCard.png');
// recognizeBankCardAdvanceRequest.imageURLObject = fileStream;
// 场景二,使用任意可访问的url
const url = new URL("https://viapi-test-bj.oss-cn-beijing.aliyuncs.com/viapi-3.0domepic/ocr/RecognizeBankCard/yhk1.jpg");
const httpClient = (url.protocol == "https:") ? https : http;
recognizeBankCardAdvanceRequest.imageURLObject = await getResponse(httpClient, url);
let runtime = new TeaUtil.RuntimeOptions({
});
// 6、这里只是以ocr下的RecognizeBankCard为例,其他能力请使用相应类目的包和类,注意,recognizeBankCardAdvance方法名也需要改成对应能力的方法名。方法名是根据能力名称按照一定规范形成的,如能力名称为SegmentCommonImage,对应方法名应该为segmentCommonImageAdvance。
client.recognizeBankCardAdvance(recognizeBankCardAdvanceRequest, runtime)
.then(function(recognizeBankCardResponse) {
// 获取整体结果
console.log(recognizeBankCardResponse);
// 获取单个字段
console.log(recognizeBankCardResponse.body.data);
}, function(error) {
// 获取整体报错信息
console.log(error);
// 获取单个字段
console.log(error.data.Code);
})
} catch (error) {
console.log(error);
}
}();
使用一张银行卡识别测试:
ocr银行卡号码识别运行结果
RecognizeBankCardResponseBodyData {
bankName: '',
cardNumber: '*****',
validDate: '***'
}
原图,图片已经过脱敏处理
获取的信息,图片已经过脱敏处理
⭐二次元风格转换
sdk接入二次元风格
//npm install @alicloud/facebody20191230
// 最低SDK版本要求:facebody20191230的SDK版本需大于等于4.0.7
// 可以在此仓库地址中引用最新版本SDK:https://npmjs.com/package/@alicloud/facebody20191230
const FacebodyClient = require('@alicloud/facebody20191230');
const OpenapiClient = require('@alicloud/openapi-client');
const TeaUtil = require('@alicloud/tea-util');
const fs = require('fs');
const http = require('http');
const https = require('https');let config = new OpenapiClient.Config({
// 创建AccessKey ID和AccessKey Secret,请参考https://help.aliyun.com/document_detail/175144.html。
// 如果您用的是RAM用户AccessKey,还需要为RAM用户授予权限AliyunVIAPIFullAccess,请参考https://help.aliyun.com/document_detail/145025.html。
// 从环境变量读取配置的AccessKey ID和AccessKey Secret。运行示例前必须先配置环境变量。
accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET
});
// 访问的域名
config.endpoint = `facebody.cn-shanghai.aliyuncs.com`;
const client = new FacebodyClient.default(config);
const getResponse = function (httpClient, url) {
return new Promise((resolve, reject) => {
httpClient.get(url, function (response) {
resolve(response);
})
})
}
const request = async function () {
try {
let generateHumanAnimeStyleAdvanceRequest = new FacebodyClient.GenerateHumanAnimeStyleAdvanceRequest();
// 场景一,使用本地文件
const fileStream = fs.createReadStream('./img/OIP-C.jpg');
generateHumanAnimeStyleAdvanceRequest.imageURLObject = fileStream;
// 场景二,使用任意可访问的url
// const url = new URL('https://viapi-test-bj.oss-cn-beijing.aliyuncs.com/viapi-3.0domepic/facebody/GenerateHumanAnimeStyle/GenerateHumanAnimeStyle8.png');
// const httpClient = (url.protocol == "https:") ? https : http;
// generateHumanAnimeStyleAdvanceRequest.imageURLObject = await getResponse(httpClient, url);
let runtime = new TeaUtil.RuntimeOptions({
});
client.generateHumanAnimeStyleAdvance(generateHumanAnimeStyleAdvanceRequest, runtime)
.then(function (generateHumanAnimeStyleResponse) {
// 获取整体结果
console.log(generateHumanAnimeStyleResponse);
// 获取单个字段
console.log(generateHumanAnimeStyleResponse.body.data);
}, function (error) {
// 获取整体报错信息
console.log(error);
// 获取单个字段
console.log(error.data.Code);
})
} catch (error) {
console.log(error);
}
}();
运行结果:
原图
二次元
前后对比
切换人物图片测试
⭐在线体验
二次元结果图
原图
二次元图
⭐总结
阿里云的视觉智能平台为用户提供了快捷高效的智能接入服务,解决用户时间算力和服务器消耗的痛点,接入sdk的文档也很全面,视觉体验效果很棒。
产品人员调研指引:
- 先在体验官网体验接入效果
- 对比各种语言使用复杂程度差异
技术人员接入指引:
- 开通能力
- 创建AccessKey
- 在线调试
- 根据语言接入sdk
⭐结束
本文分享到这结束,如有错误或者不足之处欢迎指出!
👍 点赞,是我创作的动力!
⭐️ 收藏,是我努力的方向!
✏️ 评论,是我进步的财富!
💖 感谢你的阅读!