5个课时,落地AI应用!

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

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

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项目开发的整体流程:

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

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

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

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

比如在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使用体验。

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

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

​使用这些设备平台开发和在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系统上。

1.3 AidLux算法优化

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

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

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

2. 手机版本AidLux软件安装

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

(1)边缘设备的方式:

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

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

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

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

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

3. 电脑版AidLux投影测试

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

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

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

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

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

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

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

默认密码:aidlux。

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

4. AidLux内置AI案例测试

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

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

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

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

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

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

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

​启动运行会发现,电脑上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的方式一步步调试。

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

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

6.1 下载VScode

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

6.2 安装VScode

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

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

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

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

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

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

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

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

​在终端页面输入:

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

即可快速下载安装成功。

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

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

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

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

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

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

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

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

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

9. PC端远程调试AidLux

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

9.1 上传lesson_code文件夹

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

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

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

9.2 安装Remote SSH

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

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

9.3 远程连接调试

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

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

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

Host AidLux # 服务器别名

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

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

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

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

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

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

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

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

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

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

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

10.1 读取图片测试

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

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

10.2 读取视频测试

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

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

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

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

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

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

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

  1. 零基础边缘端智慧交通训练营 | Lesson 4

    5个课时实现车辆检测+安全算法,玩转智慧交通AI应用! 欢迎大家来到AidLux零基础边缘端智慧交通训练营~ 在第三节课中,我们学习了在云服务器上使用Yolov5算法,训练了一个车辆检测模型并进行优化 ...

  2. 首届“十大最具价值”智能安防创业项目遴选榜单丨Xtecher联合中投协权威发布...

    编者按:近年来,围绕人工智能.大数据的创新创业层出不穷,整个科技行业呈迅猛发展态势.为进一步推动科技行业健康发展,Xtecher与国家发改委中国投资协会投资咨询专业委员会共同举办"十大最具价 ...

  3. 多卡聚合设备为5G智能安防保驾护航

    随着平安城市.智慧城市等项目的不断推进,目前,我国一个二线以上城市的监控摄像头数量就可能达到百万量级.若将这些摄像头产生的原始视频传送到云端进行分析,耗费的资源可想而知. 5G带给安防4K/8K等超高 ...

  4. 智能安防“无芯片不AI”时代来临

    去年云栖大会,"平头哥"横空出世:今年云栖大会,"平头哥"发布正式流片的芯片.据悉,这款名为含光800的芯片推理性能达到78563 IPS,在杭州城市大脑的业务 ...

  5. 图像处理中ct图的通道是多少_新一代安检CT机,智能安防领域又一明星产品

    全面复工复产后,中国航天科工三院239厂博士孙翠丽每天都在加班加点测试,甚至周末都要忙到晚上九十点.办公楼北楼三层办公室.安检设备实验室晚上灯火通明成为一道特殊的风景. 在去年底完成样机研发后,孙翠丽 ...

  6. 总结下2018年,我们归纳了几种将对智能安防产生影响的技术发展趋势

    总结下2018年,我们归纳了几种将对智能安防产生影响的技术发展趋势 现今技术日趋成熟,创新科技的未来发展无远弗届,使得消费应用不断往商业应用前进,企业必须竭力寻求能为客户增值的各种技术.总结下2018 ...

  7. AI、大数据时代,智能安防在智慧城市建设中的发展与应用趋势

    佳都新太科技股份有限公司 袁名人 AI.大数据时代,智能安防在智慧城市建设中的发展现状 智慧城市是充分运用信息通信技术(ICT)感知.分析.整合和处理城市核心系统中的各类信息,对城市规划.建设和运营管 ...

  8. Hi3861鸿蒙物联网项目实战:智能安防报警

    华清远见FS-Hi3861开发套件,支持HarmonyOS 3.0系统.开发板主控Hi3861芯片内置WiFi功能,开发板板载资源丰富,包括传感器.执行器.NFC.显示屏等,同时还配套丰富的拓展模块. ...

  9. 【观察】智能安防的新时代,华为的重构和创新

    申耀的科技观察 读懂科技,赢取未来! 毫无疑问,如今的世界正在以加速度进入到智能化时代,特别是各项业务的云化深入以及万物互联,数据处理能力的进一步提升,智能算法一次又一次的突破,以及未来5G在行业中更 ...

最新文章

  1. Python网络爬虫与信息提取(三)(正则表达式的基础语法)
  2. Spring in Action 4 读书笔记之使用标签创建 AOP
  3. 获取JTextPane光标的位置
  4. lamber表达式sql_lambda表达式转换sql
  5. 面试题—Mysql篇
  6. PlentyOfFish.com .NET网站的又一传奇
  7. filezilla 设置服务器_树莓派 LAMP服务器搭建
  8. SAP UI5 应用开发教程之二十七 - SAP UI5 应用的单元测试工具 QUnit 介绍
  9. 【转】ABP源码分析十六:DTO的设计
  10. leetcode94 二叉树的中序遍历
  11. php hmac sha256签名,HMAC-SHA256签名错误?
  12. java cpu 内存使用情况_java高cpu占用和高内存占用问题排查 (转)
  13. PHP中extract()函数的定义和用法
  14. 股票历史信息怎么看?
  15. 2.设计模式-桥接模式
  16. PCD Lesson3:PCD文件的读取
  17. 【UVA213】Message Decoding(读入技巧+二进制十进制转换)
  18. Google 翻译插件不能用了怎么办
  19. java sci论文,SCI论文中那些容易被混淆的部分!你写错过吗?
  20. FFmpeg音频处理——音频混合、拼接、剪切、转码

热门文章

  1. 秒表 程序_使用在线秒表作为桌面应用程序
  2. 产能过剩蔓延到光伏产业 结构性改革下如何去产能?
  3. 毕业生自传(浴血奋战)
  4. 第二届2011年国信蓝点杯软件设计大赛预赛的试题6
  5. 人生终其一生的意义和目的是什么?
  6. heritrix java_爬虫技术框架——Heritrix
  7. GPGPU-Sim学习(一)-GPGPU-Sim介绍
  8. “点击欺诈”恶意软件藏有更大的威胁?
  9. 谁是最近三年全球服务器市场最大的赢家? 你想不到
  10. 牛客客似云来(大数算法)