零基础边缘端智能安防训练营 | Lesson 2

5个课时,落地AI应用!

欢迎大家来到AidLux零基础边缘端智慧安防训练营~

零基础边缘端智能安防训练营 | Lesson 2_第1张图片

本节课为训练营的第二节,内容框架如下:

1 AI项目开发及AidLux的特点

2 手机版本AidLux软件安装

3 电脑版AidLux投影测试

4 AidLux系统AI案例测试

5 AidLux软件设置默认后台运行

6 AidLux&VScode编程调试方式

7 安装本地版的Python和Opencv

8 PC端读取图片&视频操作

9 PC端远程调试AidLux

10 PC端调试AidLux读取图片&视频

1. AI项目开发及AidLux的特点

先来梳理一下AI项目开发的整体流程:

零基础边缘端智能安防训练营 | Lesson 2_第2张图片

​由上图可知,在实际项目中,一般先由数据工程师对于数据标注,再由算法工程师进行算法训练。

比如对于人体框进行标注,由算法工程师训练人体检测模型。

要用到不同的算法设备上,再由嵌入式工程师进行算法适配和视频结构化平台的开发。

针对不同的图像进行算法处理,得到结构化的数据信息。

比如在Nvidia边缘设备使用,将人体检测模型在设备上适配,并开发视频结构化平台,对视频流进行检测处理,得到人体检测框的Box信息。

再将算法处理后的数据,对接到系统软件工程师,进行业务平台业务功能的处理。

比如将人体检测的检测框信息,对接给数据中台上,设置一些业务功能,例如越界识别等。

最后对接到客户系统中,并交给运维工程师进行现场落地部署。

比如将越界人员的信息,对接到客户大屏上,进行展示。

很多算法岗的同学会比较了解这里的数据处理和算法开发,因为平时工作中都是使用Python来进行开发的。

而在模型移植、视频结构化部分,目前市面上采用的基本都是C++方式。

不过本次训练营使用AidLux平台,让模型移植也采用Python的方式。

各位开发者可以基于一台安卓手机、平板,或AidBox边缘设备进行开发,并且实现开发落地无缝衔接。

目前可以先学习使用AidLux软件,后期有机会可以尝试使用边缘设备进行开发。

那么为什么AidLux可以进行Python版本的AI模型开发和移植呢?

1.1 跨平台应用的系统

AidLux是基于ARM架构的跨生态(Android/鸿蒙+Linux)一站式AIoT应用开发平台。

用比较简单的方式理解:我们平时编写训练模型,测试模型时常用的是Linux/window系统。

而实际应用到现场的时候,通常会以几种形态:GPU服务器、嵌入式设备(比如Android手机、人脸识别闸机等)、边缘设备。

GPU服务器好理解,而Android嵌入式设备的底层芯片,通常是ARM架构。

Linux底层也是ARM架构,并且Android又是基于Linux内核开发的操作系统,两者可以共享Linux内核。

这就产生了从底层开发一套应用系统的方式,在此基础上同时带来原生Android和原生Linux使用体验。

零基础边缘端智能安防训练营 | Lesson 2_第3张图片

​因此基于ARM芯片,开发了具备融合架构属性的AidLux平台。

基于ARM芯片,比如高通骁龙的855芯片和865芯片,也开发出了具备7TOPS和15TOPS算力的AidBox边缘设备。

零基础边缘端智能安防训练营 | Lesson 2_第4张图片

​使用这些设备平台开发和在Linux上开发都是通用的,即Linux上开发的Python代码,可以在安卓手机AidLux平台、AidBox边缘设备上无缝使用。

为什么能够做到无缝使用呢?

1.2 安卓&Linux移植开发流程

常规方式下,应用在手机Android时,需要将PC上编写的代码,封装成Android SO库(C++);

经过测试后,封装JNI调用SO库,最终在Android上使用Java调用JNI,最终再进行测试发布。

这样的流程需要一系列的工作人员参与,比如C++、Java、Python的工程师,但是大多数算法人员可能会更偏向于使用Python。

而AidLux将其中的整个开发流程全部打通,通过该平台,可以将PC端编写的代码快速应用到Android系统上。

零基础边缘端智能安防训练营 | Lesson 2_第5张图片

1.3 AidLux算法优化

有了Android和Linux双系统开发的基础,就可以做很多的事情了,AI算法应用就是比较典型的一种。

不过这里就涉及到了芯片对于AI算法的优化加速的能力。

AidLux一方面内置了多种深度学习框架,便于快速开发,另一方面对于多种算子也进行了优化加速,很多算法的性能,也都能达到实时使用。

零基础边缘端智能安防训练营 | Lesson 2_第6张图片

2. 手机版本AidLux软件安装

目前使用AidLux主要有两种方式:

(1)边缘设备的方式:

阿加犀用高通芯片的S855和S865制作了两款搭载AidLux的边缘设备,一款提供7T算力,一款提供15T算力。

(2)手机/平板设备的方式

没有边缘设备的情况下,也可以使用App版本的AidLux,尝试边缘设备的所有功能。

目前AidLux基本已对市面上所有的芯片都进行了适配,在手机上运行算法模型,也可以体验优化的效果。

可以安卓手机搜索AidLux安装,也可以在官网down。

零基础边缘端智能安防训练营 | Lesson 2_第7张图片

3. 电脑版AidLux投影测试

打开手机或平板上的AidLux APP,第一次进入的时候,APP自带的系统会进行初始化。

零基础边缘端智能安防训练营 | Lesson 2_第8张图片

​初始化完成后,进入系统登录页面。

这一步最好可以用手机注册一下,也可以直接点击“我已阅读并同意”,跳过登录。

零基础边缘端智能安防训练营 | Lesson 2_第9张图片

​进入主页面后,可以点击左上角的红色圆点,将说明页面关闭。

​在统一局域网下,可以通过IP的方式,直接映射到电脑上操作。

点击页面最上方的Cloud_ip,会出现远程映射的地址。

零基础边缘端智能安防训练营 | Lesson 2_第10张图片

​打开电脑浏览器地址,输入相应ip后,会出现登录页面。

默认密码:aidlux。

零基础边缘端智能安防训练营 | Lesson 2_第11张图片

​输入后即可进入主页面,可以看到内容和手机端是一样的。

4. AidLux内置AI案例测试

为了让大家在手机上尝试AI方面的应用,AidLux中有很多的AI案例可以直接运行,点击桌面下方菜单栏的examples。

零基础边缘端智能安防训练营 | Lesson 2_第12张图片

​里面有很多应用,可以随意点击运行,比如点击第一个人脸关键点的应用。

此时电脑桌面上AidLux的操作和手机版本AidLux的操作同步,从电脑端下载源代码后,手机上也同步下载了。

零基础边缘端智能安防训练营 | Lesson 2_第13张图片

​下载达到100%,人脸关键点的源码即下载成功。

零基础边缘端智能安防训练营 | Lesson 2_第14张图片

​当界面出现“Installed successfully”时,表示所有的代码已经下载成功。

零基础边缘端智能安防训练营 | Lesson 2_第15张图片

​回到刚刚的examples的页面,再点击“FaceMesh”人脸关键点的应用,可以看到代码的编辑页面,在页面中可以直接编辑代码。

如果想要运行代码,直接点击图片中Run的按钮,再点击Run Now。

零基础边缘端智能安防训练营 | Lesson 2_第16张图片

​启动运行会发现,电脑上AidLux运行的画面和手机版本的画面同步。

大家可以运行多个AI应用案例进行参考,本次训练营后面的越界识别功能也是基于Aidlux的系统来运行的,可以直接使用Python运行很多AI案例。

5. AidLux软件设置默认后台运行

如果在手机上运行AidLux时将其缩小切换到微信,会发现PC端AidLux桌面上的操作也被终止了。

主要原因在于,手机上默认AidLux软件缩小时终止一切连接。为了便于后面的编程操作,需要将AidLux设置成后台可运行的操作。

tips:这里列举了多款手机设置的方式,大家可以点击进入参照相应教程进行设置:

(1)小米手机和平板设置教程:

小米手机和平板 后台运行AidLux- AidLux开发者社区

(2)OPPO手机与平板设置教程:

OPPO手机与平板 后台运行Aidlux- AidLux开发者社区

(3)vivo手机与平板设置教程:

vivo手机与平板 后台运行AidLux- AidLux开发者社区

(4)华为鸿蒙/HarmonyOS 2.0设置教程:

鸿蒙/HarmonyOS 2.0 后台运行AidLux- AidLux开发者社区

(5)华为鸿蒙/HarmonyOS 3.0设置教程:

https://community.aidlux.com/postDetail/827

如果其中遇到任何的问题,也可以交流反馈,AidLux的工作人员会帮忙查看。

6. AidLux&VScode编程调试方式

我们通常在编写代码时,会对着代码进行一步步调试,解决其中可能存在的Bug。

但是在examples的编程环境AidCode中,下面的信息窗口显示报错时,针对每一行代码不太好用Debug的方式一步步调试。

零基础边缘端智能安防训练营 | Lesson 2_第17张图片

​因此需要下载一个编程软件,便于后面的代码调试。

通常工作中我们常用Pycharm和Vscode两款编程软件,此处先演示VScode方式。

6.1 下载VScode

点击官网https://code.visualstudio.com/,选择Download按钮进行下载,演示用的是Window电脑,跳到了匹配的默认项。

零基础边缘端智能安防训练营 | Lesson 2_第18张图片

6.2 安装VScode

打开Vscode的压缩包,按照指引进行安装。

打开编程页面,即可看到Vscoe的主页面。

零基础边缘端智能安防训练营 | Lesson 2_第19张图片

7. 安装本地版本的Python和Opencv

有了编程软件,我们还需安装Python。

选择左面菜单栏的Extensions,输入python,选择Install下载,当“Installing”变成“Installed”时,表示Python下载成功。

零基础边缘端智能安防训练营 | Lesson 2_第20张图片

​点击Vscode左上角的“File->Open Folder”,打开第二节课的Lesson2_codes文件夹。

Lesson2的课程中还会用到Opencv,所以我们先安装一下Opencv库。

选择“Terminal”中的“New Terminal”。

零基础边缘端智能安防训练营 | Lesson 2_第21张图片

​在终端页面输入:

pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple,

即可快速下载安装成功。

零基础边缘端智能安防训练营 | Lesson 2_第22张图片

8. PC端读取图片&视频操作

有了编程工具、Python和Opencv,我们先来测试一下在PC端读取图片和视频的操作。

选择read_image_PC.py文件,选择菜单栏上的Run,“Start Debugging”是可以按照断点一步步调试的模式,而"Run Without Debugging"则是直接运行代码的模式。

零基础边缘端智能安防训练营 | Lesson 2_第23张图片

随便选择哪一种模式运行后,可以看到显示的美女图片。

零基础边缘端智能安防训练营 | Lesson 2_第24张图片

再来测试一下读取视频的操作,那么为什么要测试读取图片和读取视频呢?

因为在AidLux中的操作,和在PC端上的代码操作有所不同,大家后面也可以对比下。

选择video_capture_PC.py,代码里面采用了跳帧读取的操作,即这里的参

数,每隔5帧,再显示一帧。

零基础边缘端智能安防训练营 | Lesson 2_第25张图片

因为在实际的项目落地中,视频每秒一般有25帧,但并不需要每一帧都进行处理,所以可以执行跳帧操作,数字越大, 跳帧越快。

9. PC端远程调试AidLux

当PC端的python和Opencv测试成功了,我们再使用VScode远程连接安卓版本的AidLux,尝试在AidLux环境下实时调试代码。

9.1 上传lesson_code文件夹

首先将代码上传到AidLux系统中,通过Cloud_ip的IP地址,在电脑上打开AidLux桌面版。并打开文件浏览器,进入Home文件夹。

零基础边缘端智能安防训练营 | Lesson 2_第26张图片

​选择右上角的“Upload”,将lesson2_code文件夹中的代码上传到Home文件夹下。

零基础边缘端智能安防训练营 | Lesson 2_第27张图片

在Home文件夹下就有了一个lesson2_code的文件夹,我们再通过远程连接的方式,使用VScode调试其代码。

零基础边缘端智能安防训练营 | Lesson 2_第28张图片

9.2 安装Remote SSH

点击VScode左侧的“Extensions”,输入“Remote”,针对跳出的Remote SSH,点击安装。

零基础边缘端智能安防训练营 | Lesson 2_第29张图片

安装好后,在左侧栏可以看到一个电脑连接的图标,即Remote Explorer。

零基础边缘端智能安防训练营 | Lesson 2_第30张图片

9.3 远程连接调试

点击"Remote Explorer",进行远程连接的页面,点击左下角的“Open a Remote Window”,再选择“Open SSH Configuration file”。

零基础边缘端智能安防训练营 | Lesson 2_第31张图片

针对跳出的弹窗,再选择第一个config。

零基础边缘端智能安防训练营 | Lesson 2_第32张图片

输入连接信息,需要注意的是,这里的HostName填写你自己的AidLux里面Cloud_ip的地址。

零基础边缘端智能安防训练营 | Lesson 2_第33张图片

Host AidLux # 服务器别名

HostName 192.168.0.4 # 填写远程服务器的IP或者Host

Port 9022 # 填写访问远程服务器的端口号

User root # 填写登陆远程服务器的用户的名字

保存后,在左侧会生成一个SSH服务器,鼠标放上后,会跳出一个“Connect to Host in New Window”。

零基础边缘端智能安防训练营 | Lesson 2_第34张图片

然后会跳转到连接的页面,选择“Linux”。

零基础边缘端智能安防训练营 | Lesson 2_第35张图片

选择“Continue”,再输入密码,aidlux。

零基础边缘端智能安防训练营 | Lesson 2_第36张图片

当左下角跳出SSH AidLux时,表示已经连接成功。

零基础边缘端智能安防训练营 | Lesson 2_第37张图片

选择左上角的File,点击Open Filer,即可跳出AidLux里面的路径。

零基础边缘端智能安防训练营 | Lesson 2_第38张图片

将路径输入的信息,修改成”/home/lesson2_codes“,点击OK。

零基础边缘端智能安防训练营 | Lesson 2_第39张图片

跳出的窗口中,再输入密码”aidlux“,即可打开我们已经上传的lesson2_code文件夹。

零基础边缘端智能安防训练营 | Lesson 2_第40张图片

10. PC端调试AidLux读取图片&视频

10.1 读取图片测试

AidLux中读取图片,在显示图片的地方,不能采用cv2.imshow的方式,需要修改成cvs图形控件模块。

比如打开read_image_Aidlux.py文件,运行后,在手机端的AidLux上可以看到读取的显示图片。

零基础边缘端智能安防训练营 | Lesson 2_第41张图片

10.2 读取视频测试

打开video_capture_Aidlux.py,在读取视频和显示图像的地方,采用cvs的方式,读取运行后,就可以在手机上看到显示的视频效果。

零基础边缘端智能安防训练营 | Lesson 2_第42张图片

​到了这里,第二节课的内容就结束了。

本节课我们使用了AidLux,并通过PC端和VScode的方式,进行了最基础的读取图片和读取视频的测试。

下节课我们会采用Yolov5的方式,训练一个目标检测检测模型,并且移植部署到AidLux端。

大家可以进行AidLux AI开发者交流,有AidLux工程师和江大白等众多AI行业专家给予技术指导以及进行交流互动。

训练营所需的数据集、资料包,都可以在里面获取呦~

零基础边缘端智能安防训练营 | Lesson 2_第43张图片

你可能感兴趣的:(AidLux,python,人工智能)