HaaS AI应用实践之 老板来了

简介: ucloud_ai_demo是基于云端AI能力实现的AI识别案例
  1. 案例简介

ucloud_ai_demo是基于云端AI能力实现的AI识别案例,主要有三个部分组成:

通过采集WiFi摄像头(ESP32)的数据后得到jpeg图像;
上传至云端OSS,再通过ucloud_ai组件实现视觉智能开放平台对图片识别处理;
通过LCD屏进行画面显示及识别结果显示。
该案例中支持了15种AI能力,通过在aiconfig.h中配置AI_MODEL选择对应的AI模型,所有的AI模型类型在aiagent_common.h中定义说明,修改后重新编译即可看到相应的效果。

  1. 基础知识

2.1 基础目录结构

├── k_app_config.h # 内核组件的配置开关,优先级低于**k_config.h**
├── maintask.c     # 系统主任务入口处理,入口**aos_maintask**
├── Makefile       # aos make编译时入口
├── package.yaml   # 编译系统配置文件
└── SConstruct     # Makefile => Scon => aostools

├── linkkit_event.c     # 连接物联网平台时使用的接口
├── main.c              # demo应用主程序入口,入口**application_start**
├── maintask.c          # 系统主任务入口处理,入口**aos_maintask**
├── Makefile            # aos make编译时入口
├── package.yaml        # 编译系统配置文件
├── SConstruct          # Makefile => Scon => aostools
└── ucloud_ai_demo.c    # AI识别处理主程序

  1. 方案组成

整个方案由HaaS100、WiFi摄像头、LCD组成。LCD与HaaS100通过SPI连接,HaaS100通过Http请求获取到JPEG数据最终显示到LCD上。
image.png

3.1 WiFi摄像头安装

3.1.1 WiFi摄像头选型

市面上的WiFi摄像头比较多,在本例中WiFi摄像头采用ESP官方的ESP32-EYE进行适配,ESP32-CAM是ESP32第三方厂商开发的一款低成本方案,应用也比较广泛,开发者也可以选择它作为方案之一,万能的淘宝上有很多卖家,商家也会提供相应的资料,开发者可以根据自己需要进行调试,购买链接如下:
ESP32-EYE: https://detail.tmall.com/item.htm?spm=a230r.1.14.1.150d6a6ftZ6h4K&id=611790371635&ns=1&abbucket=3

ESP32-CAM: https://detail.tmall.com/item.htm?spm=a230r.1.14.1.3f543b21XaGDay&id=581256720864&ns=1&abbucket=3

https://item.taobao.com/item.htm?spm=a230r.1.14.33.150d6a6ftZ6h4K&id=586201030146&ns=1&abbucket=3#detail

3.1.2 ESP32-EYE开发配置

3.1.2.1 代码下载

3.1.2.2 ESP-IDF安装

不同的操作系统安装的步骤也有所差异,请参考官网文档进行安装:
https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/get-started/index.html#get-started-set-up-env

3.1.2.3 环境变量设置

这里以Macbook为例进行环境变量设置:
`$cd ~/esp/esp-idf
$./install.sh
$. ./export.sh

注意:
每次重启终端后都需要执行该步骤,否则找不到idf.py命令,或者可以加入到根目录.bashrc中不用每次再输入该命令。
3.1.2.4 ESP32 EYE网络设置
SoftAP模式
默认启动后ESP32 EYE已经开启了SSID为ESP32-Camera的AP,可以使用电脑连接该AP。
![image.png](https://ucc.alicdn.com/pic/developer-ecology/113160b9b23c4497849f4fb61c6c72f7.png)
也可以通过修改sdkconfig来改变ssid/password、station连接数量、AP信道、服务器IP等,然后重新进行编译:
![image.png](https://ucc.alicdn.com/pic/developer-ecology/c83e5c4e66b0413b8681140f003a0dd3.png)
Station模式
ESP32也支持station与SoftAP模式共存,比如想让ESP32 EYE接入到SSID为haas_test的局域网中,修改sdkconfig中的ssid/password即可。
![image.png](https://ucc.alicdn.com/pic/developer-ecology/61046f4cf76a45779e82487190d2dbe3.png)
3.1.2.5 分辨率配置

因为本案例中使用的LCD是320x240的,摄像头采集的画面也相应的设置为QVGA(320x240)减少传输带宽占用,esp-who/examples/single_chip/camera_web_server/main/app_httpd.c中添加代码:

{

camera_fb_t *fb = NULL;
esp_err_t res = ESP_OK;
int64_t fr_start = esp_timer_get_time();

/*set resolution*/
sensor_t *sensor = esp_camera_sensor_get();
sensor->set_framesize(sensor, (framesize_t)5);/*QVGA: 320 x 240*/
if (res == 0) {
    app_mdns_update_framesize(5);/*QVGA*/
}
......

}

3.1.2.6 代码编译

ESP32-EYE的代码中提供了多个Demo,使用camera_web_server来建立一个web服务器,该Demo中摄像头采集的数据以jpeg格式提供,并且提供了以http请求的方式获取jpeg图像数据。编译需要进入到Demo的目录中:

$ idf.py build

3.1.2.7 代码烧录
例如:
idf.py -p /dev/cu.SLAB_USBtoUART flash

3.1.2.8 Log监视器

查看串口log,进入到camera_web_server所在目录执行。
例如:
idf.py -p /dev/cu.SLAB_USBtoUART monitor
![image.png](https://ucc.alicdn.com/pic/developer-ecology/b8da4d05dbd6443796c6e6739ce1cde1.png)
所以camera wifi的IP就是192.168.3.135。

3.1.2.9 检查摄像头画面采集

为了确认ESP32-EYE摄像头是否正常,电脑连接ESP32-EYE的WiFi网络ESP32-Camera,先通过电脑方式查看web界面http://192.168.4.1:80/capture:
抓取当前画面http://192.168.4.1:80/capture:
![image.png](https://ucc.alicdn.com/pic/developer-ecology/2dd2ffb290334fa38c32657c9a807586.png)
3.2 LCD连线

使用本测试示例时,需要先连接SPI LCD屏幕。

LCD购买链接https://item.taobao.com/item.htm?spm=a1z09.2.0.0.768d2e8d9D3S7s&id=38842179442&_u=m1tg6s6048c2

请选择购买2.4寸屏。

HaaS100开发板请务必使用V1.1以上的版本,HaaS100扩展口:
![image.png](https://ucc.alicdn.com/pic/developer-ecology/8e1e4a31dcad4e0b801b18465f83b909.png)
LCD与HaaS100接线对应pin脚:
![image.png](https://ucc.alicdn.com/pic/developer-ecology/659c9bb25dc64311926098a539e95c69.png)
4. Demo体验

4.1 云端功能开通

如没有阿里云账号,请登陆阿里云官网开通。
登陆视觉智能开放平台免费开通如下功能:
    人脸人体
 文字识别
 分割抠图
 目标检测

登陆OSS平台创建bucket:

b. 读写权限选择“公共读”
c. Bucket名称全小写

4.2 配置OSS信息

在solutions/ucloud_ai_demo/package.yaml中替换你的OSS信息

OSS_ACCESS_SECRET: "Your-Access-Secret"
OSS_ENDPOINT: "Your-OSS-Endpoint" #例如: "oss-cn-shanghai-internal.aliyuncs.com"
OSS_BUCKET: "Your-OSS-Bucket" #例如: "cloud-ai-dev"

OSS_ACCESS_KEY以及OSS_ACCESS_SECRET获取链接: https://usercenter.console.aliyun.com/#/accesskey
ENDPOINT默认使用“oss-cn-shanghai-internal.aliyuncs.com”,BUCKET请使用你创建好的Bucket名称。

4.3 AI模型配置

在components/ai_agent/include/aiconfig.h中配置:

define AI_MODEL AI_MODEL_COMPARING_FACEBODY

4.4 配置人脸原始对比图像

登陆http://oss.console.aliyun.com 上传你的人脸到4.1中创建的bucket中,并替换路径到solutions/ucloud_ai_demo/package.yaml:
4.5 WiFi摄像头IP配置

wifi camera的http访问地址,用户根据自己摄像头的IP地址进行替换:
在components/ucamera/package.yaml中配置:
4.6 AliOS Things开发环境搭建

案例相关的代码下载、编译和固件烧录均依赖AliOS Things配套的开发工具 alios-studio ,所以首先需要参考《aos-studio使用说明之搭建开发环境》,下载安装 alios-studio 。
待开发环境搭建完成后,可以按照以下步骤进行示例的测试。

4.7 案例代码下载

该案例相关的源代码下载可参考《aos-studio使用说明之创建工程》。
其中:

选择解决方案: “云端AI案例”或者“ucloud_ai_demo”
选择开发板: HaaS100
4.8 代码编译、烧录

– 固件编译方法可参考《aos-studio使用说明之编译固件》。

4.8.1 文件件系统烧录

本组件例子中使用到到图片及字体分别存放在代码中hardware/chip/haas1000/prebuild/data/目录下ai_demo_image及font目录,除烧录ucloud_ai_demo image外,需烧录littlefs文件系统,请将hardware/chip/haas1000/package.yaml文件中以下代码段的注释打开:
- filename: release/write_flash_tool/ota_bin/littlefs.bin
  address: 0xB32000

– 固件烧录方法可参考《aos-studio使用说明之烧录固件》。

4.9 打开串口

固件烧录完成后,可以通过串口查看示例的运行结果,打开串口的具体方法可参考《aos-studio使用说明之查看日志》。

4.10 网络连接

当串口终端打开成功后,可在串口中输入联网命令。因为HaaS100开发板需要连接到云端,因此需要连接到一个可以上外网的路由器,WiFi摄像头(ESP32-EYE)也只能使用Station模式连接到同一台路由器。

netmgr -t wifi -c {ssid} {password}

4.11 识别结果响应

网络设置后,HaaS100将从摄像头获取图像并通过云端识别后输出置信度的值,人脸位置以及“boss is coming”字样:
![image.png](https://ucc.alicdn.com/pic/developer-ecology/e7b99a51337c4ea397dded470ddce93b.png)
4.11.1 字幕提醒
相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
相关文章
|
1月前
|
人工智能 IDE Java
AI Coding实践:CodeFuse + prompt 从系分到代码
在蚂蚁国际信贷业务系统建设过程中,技术团队始终面临双重考验:一方面需应对日益加速的需求迭代周期,满足严苛的代码质量规范与金融安全合规要求;另一方面,跨地域研发团队的协同效率与代码标准统一性,在传统开发模式下逐渐显现瓶颈。为突破效率制约、提升交付质量,我们积极探索人工智能辅助代码生成技术(AI Coding)的应用实践。本文基于蚂蚁国际信贷技术团队近期的实际项目经验,梳理AI辅助开发在金融级系统快速迭代场景中的实施要点并分享阶段性实践心得。
376 25
AI Coding实践:CodeFuse + prompt 从系分到代码
|
1月前
|
人工智能 运维 Kubernetes
Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速
在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、稳定与低成本,成了所有技术团队的共同挑战。阿里云 Serverless 应用引擎(SAE)正是为应对这一时代挑战而生的破局者,SAE 以“免运维、强稳定、极致降本”为核心,通过一站式的应用级托管能力,同时支撑传统应用与 AI 应用,让企业把更多精力投入到业务创新。
413 29
|
1月前
|
人工智能 自然语言处理 测试技术
从人工到AI驱动:天猫测试全流程自动化变革实践
天猫技术质量团队探索AI在测试全流程的落地应用,覆盖需求解析、用例生成、数据构造、执行验证等核心环节。通过AI+自然语言驱动,实现测试自动化、可溯化与可管理化,在用例生成、数据构造和执行校验中显著提效,推动测试体系从人工迈向AI全流程自动化,提升效率40%以上,用例覆盖超70%,并构建行业级知识资产沉淀平台。
从人工到AI驱动:天猫测试全流程自动化变革实践
|
1月前
|
数据采集 存储 人工智能
从0到1:天猫AI测试用例生成的实践与突破
本文系统阐述了天猫技术团队在AI赋能测试领域的深度实践与探索,讲述了智能测试用例生成的落地路径。
从0到1:天猫AI测试用例生成的实践与突破
|
1月前
|
人工智能 新制造
TsingtaoAI受邀参加宁波AI海曙科创训练营并分享技术落地实践
10月12日至15日,由宁波市海曙区组织部主办的AI海曙科创训练营在宁波成功举办。作为受邀企业代表,TsingtaoAI团队深入参与了多项活动,与政府领导、行业专家及科创企业代表围绕AI技术在制造业、成果转化等领域的实际应用展开交流,用真实案例诠释了“技术扎根产业”的价值逻辑。
86 2
|
1月前
|
设计模式 人工智能 自然语言处理
3个月圈粉百万,这个AI应用在海外火了
不知道大家还记不记得,我之前推荐过一个叫 Agnes 的 AI 应用,也是当时在 WAIC 了解到的。
326 1
|
1月前
|
人工智能 运维 关系型数据库
云栖大会|AI时代的数据库变革升级与实践:Data+AI驱动企业智能新范式
2025云栖大会“AI时代的数据库变革”专场,阿里云瑶池联合B站、小鹏、NVIDIA等分享Data+AI融合实践,发布PolarDB湖库一体化、ApsaraDB Agent等创新成果,全面展现数据库在多模态、智能体、具身智能等场景的技术演进与落地。
|
人工智能 自然语言处理 前端开发
产品经理也能“开发”需求?淘宝信息流从需求到上线的AI端到端实践
淘宝推荐信息流业务,常年被“需求多、技术栈杂、协作慢”困扰,需求上线周期动辄一周。WaterFlow——一套 AI 驱动的端到端开发新实践,让部分需求两天内上线,甚至产品经理也能“自产自销”需求。短短数月,已落地 30+ 需求、自动生成 5.4 万行代码,大幅提升研发效率。接下来,我们将揭秘它是如何落地并改变协作模式的。
351 37
产品经理也能“开发”需求?淘宝信息流从需求到上线的AI端到端实践
|
1月前
|
人工智能 缓存 运维
【智造】AI应用实战:6个agent搞定复杂指令和工具膨胀
本文介绍联调造数场景下的AI应用演进:从单Agent模式到多Agent协同的架构升级。针对复杂指令执行不准、响应慢等问题,通过意图识别、工具引擎、推理执行等多Agent分工协作,结合工程化手段提升准确性与效率,并分享了关键设计思路与实践心得。
412 20
【智造】AI应用实战:6个agent搞定复杂指令和工具膨胀
|
1月前
|
人工智能 安全 开发工具
C3仓库AI代码门禁通用实践:基于Qwen3-Coder+RAG的代码评审
本文介绍基于Qwen3-Coder、RAG与Iflow在C3级代码仓库落地LLM代码评审的实践,实现AI辅助人工评审。通过CI流水线自动触发,结合私域知识库与生产代码同仓管理,已成功拦截数十次高危缺陷,显著提升评审效率与质量,具备向各类代码门禁平台复用推广的价值。(239字)
390 24