1.3.1 机器视觉与人工智能开发平台
1.3.1.1 系统框架
AiCam平台的界面如图1.1所示,该平台可以实现数字图像处理、机器视觉、边缘计算等应用,内置的AiCam核心引擎集成了算法、模型、硬件、应用轻量级开发框架,能够快速集成和开发更多的项目案例。
图1.1 AiCam平台的界面
1)运行环境
AiCam平台采用BS架构,其组成如图1.2所示,用户通过浏览器即可运行项目。人工智能算法模型和算法通过边缘本地云服务的方式为应用提供交互接口,软件平台可部署到各种边缘端设备运行,包括GPU服务器、CPU服务器、ARM开发板、百度EdgeBorad开发板(FZ3/FZ5/FZ9)、英伟达Jetson开发板等。
图1.2 AiCam平台的组成
2)主要特性
AiCam平台的主要特性如下:
(1)可实现多平台边缘端部署:AiCam平台支持x86、ARM、GPU、FPGA、MLU等异构计算环境的部署和离线计算的推理,可满足多样化的边缘项目应用需求。
(2)实时视频推送分析:支持本地摄像头、网络摄像头的接入,提供实时的视频推流服务,通过Web HTTP接口可实现快速的预览和访问。
(3)统一模型调用接口:不同算法框架采用统一的模型调用接口,开发者可以轻松切换不同的算法模型,进行模型验证。
(4)统一硬件控制接口:AiCam平台接入了物联网云平台,不同的硬件资源采用统一的硬件控制接口,屏蔽了底层硬件的差异,方便开发者接入不同的控制设备。
(5)清晰简明应用接口:采用了基于Web的RESTful调用接口,可快速地进行模型的调用,并实时返回视频分析的结果和数据。
3)开发架构和功能架构
AiCam平台集成了算法、模型、硬件、应用轻量级开发框架,其开发架构如图1.3所示。
图1.3 AiCam平台的开发架构
AiCam平台的功能架构如图1.4所示。
图1.4 AiCam平台的功能架构
4)主程序aicam.py
AiCam的主程序aicam.py的核心代码如下:
5)启动脚本
启动脚本start_aicam.sh主要用于构建运行环境、启动主程序aicam.py,代码如下:
1.3.1.2 开发资源
1)AiCam平台的构成
利用AiCam平台,用户能够方便快捷地开展深度学习的教学、竞赛和科研等工作。从最基础的OpenCV、模型训练到边缘设备的部署,AiCam平台进行了全栈式的封装,降低了开发难度。AiCam平台的构成如图1.5所示。
图1.5 AiCam平台的构成
AiCam平台支持以下应用:
➲图像处理:基于OpenCV开发的数字图像处理算法。
➲图像应用:基于OpenCV开发的图像应用。
➲深度学习:基于深度学习技术开发的图像识别、图像检测等应用。
➲视觉云应用:基于百度云接口开发的图像识别、图像检测、语音识别、语音合成等应用。
➲边缘智能:结合硬件场景的边缘计算应用。
➲综合案例:结合行业软/硬件应用场景的边缘计算。
2)AiCam平台的算法列表
通过实验例程的方式,AiCam平台为机器视觉算法提供了单元测试,并开放了代码。图像基础算法、图像基础应用、深度学习应用和百度AI应用的接口及其描述如表1.1到表1.4所示。
表1.1 图像基础算法
表1.2 图像基础应用
表1.3 深度学习应用
表1.4 百度AI应用
3)AiCam平台的部分案例截图
AiCam平台的部分案例截图如图1.6到图1.10所示。
图1.6 基础算法案例截图
图1.7 基础应用案例截图
图1.8 深度学习案例截图
图1.9 云边应用案例截图
图1.10 边缘智能案例截图
4)AiCam平台的开发效果演示
AiCam平台能够完成基于边缘计算应用的算法实验、模型实验、硬件实验、应用实验,每个实验可在客户端上通过浏览器运行。
(1)对于边缘计算网关实验,首先在Linux环境中运行PyCharm开发环境(见图1.11),导入实验工程后可在编辑窗口可以查看算法源码,并进行算法理解和优化,然后在浏览器终端运行实验。
图1.11 PyCharm开发环境
(2)通过浏览器访问实验的应用页面,可以看到算法实时处理视频流的结果返回到前端页面中。读者可在实验页面中查看原理分析、开发设计、实验功能、实验识别区、实验截图和实验结果等案例信息,如图1.12所示。
图1.12 案例信息