(简单调用篇 01) 通用物体和场景识别高级版 - C++ 简单调用
目前通用物体和场景识别支持超过 10 万类常见物体和场景识别,接口返回图片内 1 个或多个物体的名称,并可获取百科信息。适用于图像或视频内容分析、拍照识图等业务场景。
功能介绍1. 识别物体或场景名称支持识别动物、植物、商品、建筑、风景、动漫、食材、公众人物等 10 万个常见物体及场景,接口返回大类及细分类的名称结果。
2. 获取百科信息支持获取图片识别结果对应的百科信息,接口返回百科词条 URL、图片和摘要描述,可选择是否需要返回百科信息。
应用场景
图片内容分析与推荐:对用户浏览的图片或观看的视频内容进行识别,根据识别结果给出相关内容推荐或广告展示。广泛应用于新闻资讯类、视频类 app 等内容平台中
拍照识图:根据用户拍摄照片,识别图片中物体名称及百科信息,提高用户交互体验,广泛应用于智能手机厂商、拍照识图及科普类 app 中
拍照闯关趣味营销:设计线上营销活动,根据用户拍摄照片,自动识别图片中物体信息是否符合活动要求,提升用户交互体验,减少人工审核成本
接口描述该请求用于通用物体及场景识别,即对于输入的一张图片(可正常解码,且长宽比适宜),输出图片中的多个物体及场景标签。
请求 ...
(基础篇 04) C++ base64 编解码原理及实现
Base64原理Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法。由于 2^6 = 64,所以每 6 个比特为一个单元,对应某个可打印字符。3 个字节有 24 个比特,对应于 4 个 Base64 单元,即 3 个字节可由 4 个可打印字符来表示。它可用来作为电子邮件的传输编码。在 Base64 中的可打印字符包括字母 A-Z、a-z、数字 0-9 和 +, /。
Base64 常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据,包括 MIME 的电子邮件及XML的一些复杂数据。
Base64 的索引表如下:
数值
字符
数值
字符
数值
字符
数值
字符
0
A
16
Q
32
g
48
w
1
B
17
R
33
h
49
x
2
C
18
S
34
i
50
y
3
D
19
T
35
j
51
z
4
E
20
U
36
k
52
0
5
F
21
V
37
l
53
1
6
G
22
W
38
m
54
2
7
H
23
X
39
n
55
3
8
I
24
Y
40
o
56
4
9
J
...
(基础篇 03)C++ 获取 access token
百度 AIP 开放平台使用 OAuth2.0 授权调用开放 API,调用 API 时必须在 URL 中带上 access_token 参数。
请求 URL 数据格式授权服务地址:https://aip.baidubce.com/oauth/2.0/token
请求参数如下:
grant_type: 必须参数,固定为 client_credentials;
client_id: 必须参数,应用的 API Key;
client_secret: 必须参数,应用的 Secret Key;
获取结果服务器返回的JSON文本参数如下:
access_token: 要获取的 Access Token;
expires_in: Access Token 的有效期(秒为单位,一般为 1 个月);
其他参数忽略,暂时不用;
以下代码为示例:
{ "refresh_token": "25.b55fe1d287227ca97aab219bb249b8ab.315360000.1798284651.282335-8574074", "ex ...
(基础篇 02)Windows 下使用 Vcpkg 配置百度 AI 图像识别 C++开发环境(VS2017)
本机环境
Windows 10 专业版
Visual Studio Community 2017 (版本 15.9.7)
Windows 下配置 VcpkgVcpkg 是适用于 Windows,Linux 和 MacOS 的 C++ 库管理器,使用它可以方便地管理 C++ 的依赖库。
Vcpkg 的下载地址和使用说明: https://github.com/microsoft/vcpkg
如果想要了解 Vcpkg,可以参考一下 这篇原创博客
To get started:
> git clone https://github.com/Microsoft/vcpkg.git> cd vcpkgPS> .\bootstrap-vcpkg.batLinux:~/$ ./bootstrap-vcpkg.sh
Then, to hook up user-wide integration, run (note: requires admin on first use)
PS> .\vcpkg integrate installLinux:~/$ ./vcpkg inte ...
(基础篇 01)在控制台创建对应的应用
要使用百度 AI 的各种接口,需要先在控制台中创建对应的应用。接下来,本文将说明如何在控制台中创建应用。
1. 注册或登录控制台控制台链接:https://console.bce.baidu.com/?fromai=1#/aip/overview
首先在浏览器中打开上面的链接,然后进行注册,注册完之后登录进入控制台主页。
2. 进入服务概览登录进入到百度智能云控制台之后,可以看到这里提供了特别多的服务,你可以根据具体的需求做不同的应用。我们在这里以及以后的文章中会使用到的主要是人工智能这一块。
这里以“图像识别”来进行说明,通过左侧的导航页面找到“图像识别”这个服务,然后点击进入到概览。
3. 创建应用在概览页可以看到许多相关的信息,包括应用、用量、可用服务列表。应用框中有两个按钮,一个是“管理应用”,一个是“创建应用”。如果你以前没有创建过应用,那么就新创建一个。
在创建新应用时,带有红色 * 的是必填的信息,应用类型可以选择游戏娱乐、工具应用、交通出行、学习办公、智能硬件、聊天社交和其他。接口选择中默认将图像识别的所有接口给勾选上了,如果还需要和其他的各种接口进行合并使用, ...
百度 AI 人工智能服务 C++ 调用使用记录
基础篇
在控制台创建对应的应用
Windows 下开发环境配置
C++ 获取 access token
C++ base64 编解码原理及实现
调用篇图像识别
通用物体和场景识别高级版 - C++ 简单调用
图像主体检测 - C++ 简单调用
动物识别 - C++ 简单调用
植物识别 - C++ 简单调用
logo 识别 - C++ 简单调用
果蔬识别 - C++ 简单调用
菜品识别 - C++ 简单调用
红酒识别 - C++ 简单调用
货币识别 - C++ 简单调用
地表识别 - C++ 简单调用
车辆分析
车型识别 - C++ 简单调用
车辆检测 - C++ 简单调用
车辆外观损伤识别 - C++ 简单调用
图像效果增强
图像去雾 - C++ 简单调用
图像对比度增强 - C++ 简单调用
图像无损放大 - C++ 简单调用
黑白图像上色 - C++ 简单调用
Python notes
Python notesString
当字符串里面的字符不需要进行转义时,可以使用r" ";
对于多行字符串可以使用""" """或者''' ''';
可以使用+进行级联,*进行重复;
多个相邻的字符串会自动拼接; eg:"py" "thon" = "python"
可以通过索引取字符,通过切片取子字符串;
python字符串是不可改变的,不能改变其中一个字符的值,如果需要不同的字符串,则必须创建新字符串;
List
list 可以有不同类型的项目(items);
list 可以使用索引和切片,切片操作会返回一个新的 list;
list 可以使用+进行级联;
list 值是可改变的,可以通过索引或者切片来改变对应的值;
list 可以使用 append() 在 list 末尾添加元素;
print(a, end=',) 可以指定结束字符;
Function
函数传参时,*name 代表 ...
math — Mathematical functions
math — Mathematical functions该模块始终可用。它提供对由C标准定义的数学函数的访问。
这些功能不能用于复数;如果您需要支持复数,请使用 cmath 模块中的同名功能。支持复数的功能和不支持的功能之间的区别是由于大多数用户不想学习理解复数所需的太多数学。接收一个异常而不是一个复数的结果,可以更早地检测出用作参数的异常复数,这样程序员就可以确定首先产生的方式和原因。
以下功能由该模块提供。除非另外明确指出,否则所有返回值都是浮点数。
Number-theoretic and representation functions(数论和表示函数)
Function
Description
math.ceil(x)
Return the ceiling of x as a float, the smallest integer value greater than or equal to x.
math.copysign(x, y)
Return x with the sign of y. On a platform that supports si ...
Logging HowTO
Logging function
debug()
info()
warning()
error()
critical()
When to use logging
Task you want to perform
The best tool for task
Display console output for ordinary usage of a command line script or program
print()
Report events that occur during normal operation of a program (e.g. for status monitoring or fault investigation)
logging.info() (or logging.debug() for very detailed output for diagnostic purposes)
Issue a warning regarding a particular runtime event
warnings.warn() in l ...
argparse - 用于命令行选项,参数和子命令的解析器
argparse模块可以轻松编写用户友好的命令行界面。该程序定义了它需要的参数,argparse将找出如何解析sys.argv中的那些参数。argparse模块还会自动生成 help (帮助)和 usage(用法) 消息,并在用户给出程序无效参数时发出错误。
Example以下代码是一个Python程序,它接受一个整数列表并求出总和或最大值
import argparseparser = argparse.ArgumentParser(description='Process some integers.')parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator')parser.add_argument('--sum', dest='accumulate', ac ...