• Home
  • Annotate
  • current directory
Name Date Size #Lines LOC

..29-Oct-2021-

example/29-Oct-2021-

include/29-Oct-2021-

src/29-Oct-2021-

README.md A D29-Oct-202115.9 KiB520431

cp_resources.py A D29-Oct-2021584 2915

package.yaml A D29-Oct-20216.9 KiB

README.md

1@page ucloud_ai ucloud_ai
2
3**[更正文档](https://gitee.com/alios-things/ucloud_ai/edit/master/README.md)**      **[贡献说明](https://help.aliyun.com/document_detail/302301.html)**
4
5# 概述
6ucloud ai是基于alicloud OpenAPI实现的云端AI推理引擎,对接的阿里云视觉智能开放平台AI能力,目前支持15种AI模型:人脸识别、表情识别、人物动漫化、物体检测、主体检测、通用分割、人脸分割、身份证识别、银行卡识别、文字识别、垃圾分类、水果识别、图像人体擦除、风格迁移,未来将加入更多AI能力。
7
8## 版权信息
9> Apache license v2.0
10
11## 目录结构
12```tree
13├── include
14│   ├── model
15│   │   ├── common.h                 # model通用函数内部头文件
16│   │   ├── facebody.h               # 云端人脸人体识别函数内部头文件
17│   │   ├── imageenhan.h             # 云端图像增强处理函数内部头文件
18│   │   ├── imagerecog.h             # 云端图像识别处理函数内部头文件
19│   │   ├── imageseg.h               # 云端图像分割处理函数内部头文件
20│   │   ├── internal.h               # 云端节点配置内部头文件
21│   │   ├── objectdet.h              # 云端目标检测处理函数内部头文件
22│   │   └── ocr.h                    # 云端OCR识别处理函数内部头文件
23│   ├── ucloud_ai_common.h           # 云端AI模型配置对外头文件
24│   ├── ucloud_ai_facebody.h         # 云端人脸人体识别函数接口对外头文件
25│   ├── ucloud_ai_imageenhan.h       # 云端图像增强处理函数接口对外头文件
26│   ├── ucloud_ai_imagerecog.h       # 云端图像识别处理函数接口对外头文件
27│   ├── ucloud_ai_imageseg.h         # 云端图像分割处理函数接口对外头文件
28│   ├── ucloud_ai_objectdet.h        # 云端目标检测处理函数接口对外头文件
29│   └── ucloud_ai_ocr.h              # 云端OCR识别处理函数接口对外头头文件
30├── package.yaml                     # 编译配置文件
31├── src
32│   ├── model
33│   │   ├── common.cc                # model通用函数代码
34│   │   ├── facebody.cc              # 云端人脸人体识别函数接口代码
35│   │   ├── imageenhan.cc            # 云端图像增强函数接口代码
36│   │   ├── imagerecog.cc            # 云端图像识别函数接口代码
37│   │   ├── imageseg.cc              # 云端图像分割函数接口代码
38│   │   ├── objectdet.cc             # 云端目标检测函数接口代码
39│   │   ├── ocr.cc                   # 云端OCR识别函数接口代码
40│   │   └── aliyun-openapi           # 阿里云视觉智能开放平台OpenAPI接口
41│   ├── ucloud_ai_common.c           # 云端文件上传及配置函数接口代码
42│   ├── ucloud_ai_facebody.c         # 云端人脸识别对外函数接口代码
43│   ├── ucloud_ai_imageenhan.c       # 云端图像增强对外函数接口代码
44│   ├── ucloud_ai_imagerecog.c       # 云端图像识别对外函数接口代码
45│   ├── ucloud_ai_imageseg.c         # 云端图像分割对外函数接口代码
46│   ├── ucloud_ai_objectdet.c        # 云端目标检测对外函数接口代码
47│   └── ucloud_ai_ocr.c              # 云端OCR识别对外函数接口代码
48└── example
49      ├── image                      # 测试用例中使用到的图片资源文件
50      └── ucloud_ai_example.c        # 测试用例
51```
52
53## 依赖组件
54
55* http
56
57# 常用配置
58```yaml
59def_config:                              # 组件的可配置项
60  CONFIG_ALICLOUD_FACEBODY_ENABLE: 1
61  CONFIG_ALICLOUD_IMAGERECOG_ENABLE: 1
62  CONFIG_ALICLOUD_IMAGEENHAN_ENABLE: 1
63  CONFIG_ALICLOUD_OBJECTDET_ENABLE: 1
64  CONFIG_ALICLOUD_IMAGESEG_ENABLE: 1
65  CONFIG_ALICLOUD_OCR_ENABLE: 1
66  CONFIG_ALICLOUD_OSS_ENABLE: 1
67  CONFIG_ALICLOUD_CHATBOT_ENABLE: 1
68```
69> 配置支持的云端AI模型
70
71# API说明
72- 参考 [ucloud_ai_aos_api](https://g.alicdn.com/alios-things-3.3/doc/group__ucloud__ai__aos__api.html)
73
74# 使用示例
75
76组件使用示例相关的代码下载、编译和固件烧录均依赖AliOS Things配套的开发工具,所以首先需要参考[《AliOS Things集成开发环境使用说明之搭建开发环境》](https://help.aliyun.com/document_detail/302378.html),下载安装。
77待开发环境搭建完成后,可以按照以下步骤进行示例的测试。
78
79## 步骤1 创建或打开工程
80
81**打开已有工程**
82
83如果用于测试的案例工程已存在,可参考[《AliOS Things集成开发环境使用说明之打开工程》](https://help.aliyun.com/document_detail/302381.html)打开已有工程。
84
85**创建新的工程**
86
87组件的示例代码可以通过编译链接到AliOS Things的任意案例(solution)来运行,这里选择helloworld_demo案例。helloworld_demo案例相关的源代码下载可参考[《AliOS Things集成开发环境使用说明之创建工程》](https://help.aliyun.com/document_detail/302379.html)88
89## 步骤2 添加组件
90
91案例下载完成后,需要在helloworld_demo组件的package.yaml中添加对组件的依赖:
92
93```yaml
94
95depends:
96  - ucloud_ai: master  # helloworld_demo中引入ucloud_ai组件
97  - netmgr: master     # helloworld_demo中引入netmgr组件
98  - littlefs: master   # helloworld_demo中引入littlefs组件
99
100def_config:
101    CLI_IOBOX_ENABLE: 1        # 可选:使能文件系统测试命令,例如ls, ll, mkdir, touch, echo等
102
103```
104
105## 步骤3 下载组件
106
107在已安装了  的开发环境工具栏中,选择Terminal -> New Terminal启动终端,并且默认工作路径为当前工程的workspace,此时在终端命令行中输入:
108
109```shell
110
111aos install ucloud_ai
112
113```
114
115上述命令执行成功后,组件源码则被下载到了./components/ucloud_ai路径中。
116
117## 步骤4 添加示例
118
119在ucloud_ai组件的package.yaml中添加[example示例代码](https://gitee.com/alios-things/ucloud_ai/tree/master/example)120
121```yaml
122source_file:
123  - "example/ucloud_ai_example.c" # add ucloud_ai_example.c
124
125build_config:
126 prebuild_script: cp_resources.py  #编译时cp_resources.py会对资源文件进行拷贝,系统自动打包资源文件到littlefs文件系统中
127
128```
129
130### 云端功能开通
1311. 如没有阿里云账号,请登陆[阿里云官网](http://www.aliyun.com)开通。
1322. 登陆[视觉智能开放平台](https://vision.aliyun.com)免费开通如下功能:
133
134    **[人脸人体](https://vision.aliyun.com/facebody)**
135 **[文字识别](https://vision.aliyun.com/ocr)**
136 **[分割抠图](https://vision.aliyun.com/imageseg)**
137 **[目标检测](https://vision.aliyun.com/objectdet)**
138
1393. 登陆[OSS平台](oss.console.aliyun.com)创建bucket:
140```sh
141a. 创建Bucket时地域选择“上海”
142b. 读写权限选择“公共读”
143c. Bucket名称全小写
144```
145### 配置OSS信息
146components/ucloud_ai/package.yaml中替换你的OSS信息
147
148```yaml
149OSS_ACCESS_KEY: "Your-Access-Key"
150OSS_ACCESS_SECRET: "Your-Access-Secret"
151OSS_ENDPOINT: "Your-OSS-Endpoint"    #例如: "oss-cn-shanghai-internal.aliyuncs.com"
152OSS_BUCKET: "Your-OSS-Bucket"        #例如: "cloud-ai-dev"
153
154OSS_ACCESS_KEY以及OSS_ACCESS_SECRET获取链接: https://usercenter.console.aliyun.com/#/accesskey
155ENDPOINT默认使用“oss-cn-shanghai-internal.aliyuncs.com”,BUCKET请使用你创建好的Bucket名称。
156```
157
158## 步骤5 编译固件
159
160在示例代码已经添加至组件的配置文件,并且helloworld_demo已添加了对该组件的依赖后,就可以编译helloworld_demo案例来生成固件了,具体编译方法可参考[《AliOS Things集成开发环境使用说明之编译固件》](https://help.aliyun.com/document_detail/302384.html)161
162## 步骤6 烧录固件
163
164### 文件系统烧录
165本组件例子中使用到到图片存放在代码中hardware/chip/haas1000/prebuild/data/目录下ucloud_ai_image目录,除烧录helloworld_demo image外,需烧录littlefs文件系统,请将hardware/chip/haas1000/package.yaml文件中以下代码段的注释打开:
166
167```yaml
168  program_data_files:
169    - filename: release/write_flash_tool/ota_bin/littlefs.bin
170      address: 0xB32000
171```
172
173上述步骤执行后,可参考[《AliOS Things集成开发环境使用说明之烧录固件》](https://help.aliyun.com/document_detail/302383.html)来烧录固件。
174
175## 步骤7 打开串口
176
177固件烧录完成后,可以通过串口查看示例的运行结果,打开串口的具体方法可参考[《AliOS Things集成开发环境使用说明之查看日志》](https://help.aliyun.com/document_detail/302382.html)178
179当串口终端打开成功后,可在串口中输入help来查看已添加的测试命令。
180
181## 步骤8 测试示例
182
183测试步骤:
184```shell
185$ ucloud_ai init # 初始化ucloud_ai组件
186$ netmgr -t wifi -c {ssid} {password}  # 请将ssid修改为您路由器的WiFi名称,paasword填入路由器的WiFi密码
187$ ucloud_ai -m {0 ~ 15} # 测试AI用例
188```
189
190**CLI命令行输入:**
191```shell
192ucloud_ai init # 在执行下面的测试命令前,该命令需要优先执行,仅需执行一次即可
193```
194
195> CLI关键日志:
196```shell
197ucloud_ai comp init successfully!
198```
199
200**CLI命令行输入:**
201```shell
202ucloud_ai -m 0  # 人脸比对
203```
204
205> CLI关键日志:
206```shell
207confidence:84.5607
208x:159
209y:76
210w:143
211h194
212```
213
214**CLI命令行输入:**
215```shell
216ucloud_ai -m 1  # 人物动漫化
217```
218
219> CLI关键日志:
220```shell
221image url:http://vibktprfx-prod-prod-aic-gd-cn-shanghai.oss-cn-shanghai.aliyuncs.com/person-image-cartoonizer/5BE7565D-59CE-43EE-8169-09ED2821CE21_b301_20210331-093707.jpg?Expires=1617185228&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRpDvh1&Signature=8zhYdqxKgz9eDz970l1BXmpPAiQ%3D
222```
223
224**CLI命令行输入:**
225```shell
226ucloud_ai -m 2  # 表情识别
227```
228
229> CLI关键日志:
230```shell
231face probablility:0.997393
232x:872835160
233y:873405208
234w:4
235h:872835304
236```
237
238**CLI命令行输入:**
239```shell
240ucloud_ai -m 3  # 目标检测
241```
242
243> CLI关键日志:
244```shell
245object num:6
246object height:533
247object width:948
248object score:0.437
249object type:potted plant
250object boxes.x:35
251object boxes.y:274
252object boxes.w:185
253object boxes.h:443
254object score:0.487
255object type:potted plant
256object boxes.x:663
257object boxes.y:121
258object boxes.w:847
259object boxes.h:457
260object score:0.583
261object type:monitor
262object boxes.x:250
263object boxes.y:43
264object boxes.w:670
265object boxes.h:439
266object score:0.482
267object type:keyboard
268object boxes.x:239
269object boxes.y:435
270object boxes.w:489
271object boxes.h:485
272object score:0.261
273object type:keyboard
274object boxes.x:241
275object boxes.y:428
276object boxes.w:639
277object boxes.h:506
278object score:0.217
279object type:mouse
280object boxes.x:660
281object boxes.y:479
282object boxes.w:750
283object boxes.h:528
284```
285
286**CLI命令行输入:**
287```shell
288ucloud_ai -m 4  # 主体检测
289```
290
291> CLI关键日志:
292```shell
293object x:56
294object y:177
295object width:661
296object height:209
297```
298
299**CLI命令行输入:**
300```shell
301ucloud_ai -m 5  # 通用分割
302```
303
304> CLI关键日志:
305```shell
3060image url: http://viapi-cn-shanghai-dha-segmenter.oss-cn-shanghai.aliyuncs.com/upload/result_HeadSegmenter/2021-3-31/invi_HeadSegmenter_016171837626454285967296_L925gE.png?Expires=1617185562&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRpDvh1&Signature=bvMITW5gJQPlHBiP3Aa%2BO6fCdvQ%3D
3070width: 160
3080height: 209
3090x: 153
3100y: 66
311```
312
313**CLI命令行输入:**
314```shell
315ucloud_ai -m 6  # 面部分割
316```
317
318> CLI关键日志:
319```shell
320image url: http://viapi-cn-shanghai-dha-segmenter.oss-cn-shanghai.aliyuncs.com/upload/result_humansegmenter/2021-3-31/invi_humansegmenter_016171860047301086642_0V057V.jpg?Expires=1617187804&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRpDvh1&Signature=TiqmpoQqCon9KHPXEF8W6sf2vuY%3D
321```
322
323**CLI命令行输入:**
324```shell
325ucloud_ai -m 7  # 身份证正面识别
326```
327
328> CLI关键日志:
329```shell
330Address: 江苏省南京市浦口区天天小区1栋11号
331BirthDate:
332gender:
333nationality: 汉
334iDNumber:
335faceRectangle.x: 663.147
336faceRectangle.y: 249.947
337faceRectangle.width: 115.432
338faceRectangle.height: 96.2586
339faceRectangle.angle: -87.3476
3400cardAreas.x: 166
3410cardAreas.y: 97
3420faceRectVertices.x: 708.554
3430faceRectVertices.y: 309.828
3441cardAreas.x: 775
3451cardAreas.y: 97
3461faceRectVertices.x: 612.398
3471faceRectVertices.y: 305.374
3482cardAreas.x: 775
3492cardAreas.y: 460
3502faceRectVertices.x: 617.74
3512faceRectVertices.y: 190.065
3523cardAreas.x: 166
3533cardAreas.y: 460
3543faceRectVertices.x: 713.895
3553faceRectVertices.y: 194.52
356```
357
358**CLI命令行输入:**
359```shell
360ucloud_ai -m 8  # 身份证反面识别
361```
362
363> CLI关键日志:
364```shell
365startDate: 20131010
366issue: 杭州市公安局余杭分局
367endDate: 20231010
368```
369
370**CLI命令行输入:**
371```shell
372ucloud_ai -m 9  # 银行卡识别
373```
374
375> CLI关键日志:
376```shell
377bankName: 中国工商银行
378cardNumber: 6212262315007683105
379validDate: 07/26
380```
381
382**CLI命令行输入:**
383```shell
384ucloud_ai -m 10  # 文本识别
385```
386
387> CLI关键日志:
388```shell
389results size: 7
3900text: 《爆炸新闻》
3910probability: 0.987366
3920text left: 442
3930text angle: -9
3940text top: 141
3950text height: 20
3960text: width:89
3971text: 19
3981probability: 0.993373
3991text left: 173
4001text angle: -10
4011text top: 115
4021text height: 109
4031text: width:100
4042text: 豆瓣评分7.1
4052probability: 0.896118
4062text left: 447
4072text angle: -9
4082text top: 168
4092text height: 18
4102text: width:98
4113text: 2019||美国|加拿大|剧情|传记
4123probability: 0.494584
4133text left: 450
4143text angle: -9
4153text top: 181
4163text height: 17
4173text: width:241
4184text: 杰伊·罗奇 导演
4194probability: 0.894469
4204text left: 454
4214text angle: -9
4224text top: 216
4234text height: 18
4244text: width:112
4255text: 2021年2月星期五
4265probability: 0.991614
4275text left: 187
4285text angle: -9
4295text top: 231
4305text height: 18
4315text: width:150
4326text: 农历正月初八
4336probability: 0.984329
4346text left: 193
4356text angle: -9
4366text top: 261
4376text height: 18
4386text: width:104
439```
440
441**CLI命令行输入:**
442```shell
443ucloud_ai -m 11  # 垃圾分类
444```
445
446> CLI关键日志:
447```shell
448sensitive: 0
4490rubbish: 塑料饮料瓶
4500category: 可回收垃圾
4510categoryScore: 1
4520rubbishScore: 1
453```
454
455**CLI命令行输入:**
456```shell
457ucloud_ai -m 12  # 水果检测
458```
459
460> CLI关键日志:
461```shell
4620score: 0.822785
4630name: 橙子
464box.xmin: 214.05966186523438
465box.ymin: 44.830513000488281
466box.xmax: 723.5120849609375
467box.ymax: 482.88070678710938
468```
469
470**CLI命令行输入:**
471```shell
472ucloud_ai -m 13  # 图像人体擦除
473```
474
475> CLI关键日志:
476```shell
477imageUrl: http://algo-app-isr-lab-cn-shanghai-prod.oss-cn-shanghai.aliyuncs.com/remove-person/2021-03-31_10%3A20%3A46.011134_person_org.jpg?Expires=1617187846&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRpDvh1&Signature=OwLEg5pWNVDwXrvAbGsUU7q5Dbs%3D
478```
479
480**CLI命令行输入:**
481```shell
482ucloud_ai -m 14  # 风格迁移
483```
484
485**CLI命令行输入:**
486```shell
487ucloud_ai -m 15  # 智能对话
488```
489
490> CLI关键日志:
491```shell
492outMajorURL:
493outImageURL: http://viapi-cn-shanghai-dha-filter.oss-cn-shanghai.aliyuncs.com/upload/result_/2021-3-31/invi__016171860565631021659_XIqH26.jpg?Expires=1617187856&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRpDvh1&Signature=tqJqHHoPSvga6LyET31TZsvOXFs%3D
494```
495
496# 注意事项
497使用过程中如果想要验证自己的图片是否可以正常识别可通过http://vision.aliyun.com进入能力中心中对应的体验页面进行验证。
498
499# FAQ
500如果遇到:
501> error code: InvalidAction.NotFound
502请确认Endpoint是否设置正确
503
504> error code: InvalidApi.NotPurchase
505
506请确认是否在vision.aliyun.com开通相应功能
507
508> tlefs_vfs.c:677:error: lfs_vfs_open /data/ucloud_ai_image/object.jpg failed, ret - -2
509
510请确认是否有拷贝图片到hardware/chip/haas1000/prebuild/data/ucloud_ai_image目录。
511```yaml
5121. 在cli/package.yaml中设置CLI_IOBOX_ENABLE: 1
5132. ls /data/ucloud_ai_image查看
514```
515
516如果有,可能是文件系统存储空间不够,此时请执行:
5171. 在ucloud_ai/package.yaml中屏蔽prebuild_script: cp_resources.py5182. 删除ucloud_ai_image中其他文件,仅保留测试case使用的图片文件;
5193. 再重新编译烧录。
520