快速开始
第一步:准备设备及开发环境
设备配件清单
配件名称 | 数量 | 说明 |
---|---|---|
智能相机整机 | 1 | 出厂已配 |
相机固定支架 | 1 | 出厂已配,可拆卸 |
千兆网线 | 1 | 出厂未配 |
网口转接线 | 1 | 出厂已配 |
12V DC电源适配器 | 1 | 出厂未配,需单独采购(建议使用12V~3A电源适配器) |
设备安装
将设备使用4颗M4 * 8的螺钉安装到固定支架上,再通过4颗M4 * 8的螺钉将固定支架安装到其他机构件上,共有两种安装方式,可根据实际需求选择安装方式。
如图-侧面安装 和图-背面安装 所示:
设备连接
安装设备后,将设备与其他外设进行连接,以便接下来进行设备的初始化配置,连接拓扑图参考:
方式一(推荐),通过网线连接相机:
相机设备和 PC 通过网线直接连接,将 PC 的 IP 地址设置为 192.168.1.254,相机设备上电启动后,从 PC 浏览器输入网址:http:// 192.168.1.123:58200/ ,即可访问相机管理系统,管理系统默认用户名 sve,密码 sve
※相机出厂默认 IP 为 192.168.1.123
※Windows、MacOS、Ubuntu操作系统的 PC 均OK
方式二,直接操作相机:
将相机设备启动上电后,连接 HDMI 显示器,USB 键盘和鼠标,上电。待设备启动后,进入 AidLux 桌面系统后,可见如下界面:
点击桌面的【SV Engine】快捷方式,输入用户名 sve,密码 sve,登录相机管理界面
第二步:配置设备信息
一、初始化登录
操作步骤
将智能相机连上电源后,设备自动启动,电源指示灯变为红色常亮,表示设备正常启动
完成设备连接和通电启动后,在PC上通过浏览器输入链接登录相机管理界面:http://[相机IP]:58200/
例如:相机默认出厂时IP为 192.168.1.123,则浏览器输入网址 http://192.168.1.123:58200/
Web界面输入用户名和密码登录设备管理界面
默认用户名:sve 默认密码:sve
二、网络配置
登录相机后,在左侧菜单栏选择【网络配置】,可以对相机有线网络的IP信息进行配置
三、任务管理
应用列表
SmartVision Engine应用在安装后,默认内置【应用示例(采图)】、【应用示例(分割)】两个示例应用。【应用示例(采图)】不包括任何推理,可用于系统和物理相机采集图像调试用。应用列表中,会展示该系统目前所有的AI应用包的信息,包括应用名称、版本、状态,以及上传时间信息。以【应用示例(采图)】为例,对智能相机各功能进行说明。
进入运行预览界面:跳转到“运行预览”界面,实时查看AI应用包进行AI推理过程中产生的原图和结果图。
启动 ▪
停止应用:操作AI应用包的启动与停止。
进入成像设置界面:对相机参数,算法阈值参数以及结果数据集成的配置修改。
查看应用运行日志:查看应用运行中产生的打印信息。
删除应用:删除不需要的AI应用包。
点击【导入应用包】按钮,实现对用户的AI应用包(应用包格式,应用包内容及如何构建详见【第三步:构建你的第一个相机应用】章节)的上传。
运行预览
实时查看AI推理的原图与结果图数据,以及采样的数量统计,其中采样数在每次启动后,采样数将重新从零开始。
点击【启动】和【停止】按钮,实现对AI应用包的启动与停止操作,并根据当前应用包的状态,对相应按钮进行动态启用。AI应用实际运行后,进行目标检测并推理产生结果,左侧为原图,右侧为推理后对应的结果图,下图为内置算法应用运行效果。
点击【设置】按钮,跳转到【成像设置】界面,对涉及到参数进行修改。注:算法应用在运行状态下,该按钮不可点击。
点击【历史记录】按钮,右侧打开弹框,展示推理后的原图和结果图的历史记录。点击其中任意一张图片,可对该图进行独立查看,并支持对图片进行【全屏】、【放大】、【缩小】、【旋转】操作。
点击【返回】按钮,跳转至【应用列表】界面。
成像设置
通过对相机参数的设置调整,达到最优的成像效果。如下图所示:
【触发方式】分为“连续触发”与“IO触发”两种方式。
当选择【连续触发】的触发方式,配置自动保存,操作成功后,自动打开相机,另会同时实时展示相机所拍画面。此方式支持在相机打开状态下,更新相机参数。
点击【抓取快照】按钮,会对当前可见的实时图像进行拍照存图,并展示在下方。开启【自动】按钮,会根据所设置间隔时间,自动进行拍照存图,并展示在下方。
当选择【IO触发】的触发方式,配置自动保存,操作成功后,将自动打开相机。此方式下,需接入外部触发信号,一旦接收到外部信号,将会对相机画面进行拍照,对应图片及采样数都会一并展示在下方。
图像获取界面栏中,可对相机的参数进行设置,包括触发设置、成像参数调节。
基本参数设置
- 触发方式:当选择“IO触发”时,须对“边沿设置”和“触发延时(us)”进行配置,“边沿设置”包括“上升沿”和“下降沿”两种方式;须对“输入通道”进行配置,“输入通道”分为1和2两个通道;须设置“触发延时”、“防抖”时长,“触发延时”参数默认0ms,“防抖”参数默认5ms。
- 曝光设置:当“自动曝光”启用时,仅可编辑“曝光补偿”;当“自定义”启用时,可编辑“曝光时长”、“曝光度”参数。
- 白平衡设置:仅当“自定义白平衡”启用时,不可编辑。包含“白炽灯”、“荧光灯”、“暖荧光灯”、“日光”、“阴天”、“黄昏”、“阴影”7种白平衡模式。
高级参数设置
- 饱和度:调整图像中颜色的纯度或鲜艳程度。饱和度越高,图像中的颜色就越鲜艳、纯正;饱和度越低,图像中的颜色就越接近灰色。
- 对比度:调整图像中最亮部分与最暗部分之间的差异。
- 锐度:调整图像中边缘清晰度的程度。锐度高的图像边缘更加清晰、锐利;锐度低的图像边缘则较为模糊。
- 自定义白平衡:仅当“自定义白平衡”启用时,可编辑“色彩设置模式”,“色彩设置模式”包括“色温”和“RGB增益”2种模式,当色彩设置模式选择“RGB增益”时,可编辑“R增益”、“G增益”、“B增益”。
【应用参数】按钮可对相机参数进行修改,当调整修改后所呈现的画面,不如上一次的效果后,可通过点击【恢复参数】按钮进行恢复。
快照图片,支持【一键导出zip包】,【一键删除】,【单个文件删除】功能,目前支持最大存储200张快照图片,当超过后如果有一张新的快照产生时,会同时删除最早的一张图片。
点击其中一张快照图片,可对当时快照对应的相机参数进行独立查看,并支持对图片进行【全屏】、【放大】、【缩小】、【旋转】操作。
点击【返回运行预览】按钮,可跳转至【运行预览】界面。
算法设置
- 该界面展示出对应的AI应用所涉及的阈值相关参数,不同应用涉及阈值参数各不相同,支持进行动态化的不同展示。
- 点击【保存配置】按钮对修改后的参数进行存储。
- 点击【重置】按钮,可恢复至上一次保存后的参数。
- 点击【导出配置至本地】按钮,可将当前页面显示的相关参数以json文件格式导出至本地。
- 点击【返回运行预览】按钮,切换至【运行预览】界面。
结果处理设置
AI应用推理后的结果,可对集成的外部系统进行配置。如下图所示:
1. 输出信号设置,与外部控制系统集成。支持三种方式OFF、IO信号和TCP。
- OFF: 指明不产生外部信号。
- IO信号:配置1号和2号引脚信号类型,及NG信号持续时间。根据表2-2的管脚信号定义。【DO#1】对应【20-9】,【DO#2】对应【20-10】。
- TCP信号:配置IP地址及端口。
2. 数据集成设置,与外部业务系统集成。
- 图片传输类型:AI推理结果会包括“原图”、“结果图”、“Mask图”。用户根据实际需要,选择哪些图片需要传输。
- FTP集成:仅当启用FTP集成功能时,其下方的IP地址、端口、用户名、密码和根路径,可进行编辑配置。
- HTTP集成:仅当启用HTTP集成功能时,REST API可进行编辑配置。系统将会HTTP方式进行传输,其content-type为multipart/form-data,参数名为files。
点击【返回运行预览】按钮,切换至【运行预览】界面。
点击【完成】按钮,对设置保存的同时自动跳转至【运行预览】界面。
四、设备维护
1. 登录信息
点击,编辑登录信息,修改用户名、密码。修改后点击【保存】,弹出更新成功弹框,点击【确认】后跳转登录页面,重新进入sve即可。
2. 本地缓存设置
- 缓存路径:将默认的保存路径进行显示,不可编辑。点击【查看文件】按钮,将会触发浏览器新开一个页面,查看环境上对应的AI推理结果文件。
- 保存周期:对推理结果文件保存时间进行设置,最短为1天,最长为7天。
- 系统保留空间:指需要给操作系统本身预留的磁盘空间。系统容量根据不同硬件环境而变化,其设置的保留空间数不可大于该系统容量。
- 超限处理方式:包括“覆盖最旧数据”和“停止缓存最新数据”两种方式。
- 覆盖最旧数据:最新产生的结果数据,会保存的同时,会删除当前最旧的数据。
- 停止缓存最新数据:最新产生的结果数据,不再保存,但可通过FTP或者HTTP方式(需要启用对应方式)进行外部集成
3. 调试操作
点击【IO信号调试】,跳转至【IO信号调试】界面。在相机使用【IO采图】进行推理前环境调试。
第三步:运行并预览内置分割应用
以【应用示例(分割)】为例,运行并预览推理效果
预览运行效果
- 点击列表中的【启动/停止应用】按钮,运行应用示例。
- 点击进入【运行预览】按钮,查看运行效果。
算法设置
- 该界面展示出对应的AI应用所涉及的阈值相关参数,不同应用涉及阈值参数各不相同,支持进行动态化的不同展示。
- 点击【保存配置】按钮对修改后的参数进行存储。
- 点击【重置】按钮,可恢复至上一次保存后的参数。
- 点击【导出配置至本地】按钮,可将当前页面显示的相关参数以json文件格式导出至本地。
- 点击【返回运行预览】按钮,切换至【运行预览】界面。
- 脏污: 脏污缺陷。
- 最小面积:脏污检测的最小面积
- 最小长度:脏污检测的最小长度
- 划伤: 划伤缺陷。
- 最小面积:划伤检测的最小面积
- 最小长度:划伤检测的最小长度
- 配置:
- 相机/静态图: 是否开启相机;0-关闭相机,1-开启相机
- 图片处理间隔时间(秒): 图片处理间隔时间;单位(秒)
- 线程数: 应用实际处理图片的所用的线程数,默认1
第四步:从AI Creator一键生成并部署应用
AI应用生成
- 打开浏览器,登录到AI Creator。点击【项目中心】进入项目列表。找到已经训练完成的【芯片分割】项目(AICreator模型如何训练请参考AICreator用户使用说明文档),点击【进入项目】可查看模型详情。如下图所示:
注: 由于模型是在 x86 平台下训练的,如果希望在智能相机或边缘端运行,还需要对模型进行优化。AICreator 内置了 AIMO 模型优化功能,支持一键优化和高级优化。针对运行模型的设备芯片型号,一键优化预设了一系列参数,用户只需选择运行模型的设备芯片型号即可。我们实验使用的智能相机芯片型号为 QCS6490,并推荐将模型转换为 QNN 格式以进行运行。
- 点击左侧【 模型优化 】标签,在优化发布界面,点击【一键优化】,选择 QNN 格式和 QCS6490 芯片型号,即可完成模型优化。
- 点击左侧【部署】标签,点击【生成智能相机应用】,填写应用ID、应用版本、应用名称等应用信息,并选择图片数据后点击确定,即可生成AI应用。
AI应用部署到相机
- 在节点管理页面,点击【集成节点】按钮,在弹出的表单中输入节点名称和智能相机的IP地址(关于如何查看智能相机IP,请参考《第二步:配置设备信息》)。输入完成后,点击确定。
- 智能相机集成成功后,返回项目的应用生成界面,选择上一小节中生成的智能相机应用并点击【部署】,然后选择已集成的智能相机节点,点击【开始部署】
- 点击后将会跳转到【部署记录界面】,当【部署状态】为成功后,表示该应用已部署完成。
- 返回智能相机界面查看应用列表,已新增一条数据,即表示部署成功。运行即可查看推理效果。
预览运行效果
- 点击列表中的【启动/停止应用】按钮,运行应用示例。
- 点击进入【运行预览】按钮,查看运行效果。
第五步:构建你的第一个相机应用
一、生成示例应用(含示例源码)
为了帮助开发者快速学习上手,Aidlux系统默认提供appc的命令行工具,可以直接生成基于SmartVision SDK的示例应用
示例代码分为C++和Python两种语言版本
appc使用说明
进入aidlux命令行终端,输入"appc -h"即可获取使用帮助。
(1)创建项目
可通过命令:appc init外加指定参数来创建不同的项目类型。
具体操作信息可通过appc init --help命令来获取更多帮助。
(2)打包项目
当开发完成之后,可通过命令appc package来打包具体项目。
命令格式:appc package -p <项目路径>
Camera上执行以下命令:
# 在本地目录生成C++的示例代码
aidlux@aidlux:~$ appc init -t "cpp" -n demoApp
aidlux@aidlux:~$ cd demoApp
# 在本地目录生成python的示例代码
aidlux@aidlux:~$ appc init -t "py" -n demoApp
aidlux@aidlux:~$ cd demoApp
二、应用源码说明
文件结构如下:
├── README.md
├── config #配置文件
│ ├── camera.config #相机参数配置文件(需要补上相机参数配置的说明)
│ ├── algorithm.config #算法参数配置文件(需要补上算法参数配置的说明)
│ ├── model.config #模型相关配置文件
├── imgs #静态图片目录
├── lib #三方库目录
├── manager.sh #应用启动脚本
├── model #模型文件目录
│ ├── Segment_V41_0
│ │ └── det_bestModelIoU_xxx_int8.serialized.bin #模型文件
│ ├── det.txt
│ └── modelInfo.json #模型配置文件
├── release.txt #应用说明文件
├── src #应用主程序目录
│ ├── CMakeLists.txt #cmake编译文件
│ ├── main.cpp #应用主代码
│ ├── main.hpp #应用主代码头文件
│ └── model.cpp #模型加载主代码
├── svapp #可执行程序文件
├── config #配置文件
│ ├── camera.config #相机参数配置文件(需要补上相机参数配置的说明)
│ ├── algorithm.config #算法参数配置文件(需要补上算法参数配置的说明)
│ ├── model.config #模型相关配置文件
├── lib #三方库目录
├── manager.sh #应用启动脚本
├── model #模型文件目录
│ ├── Segment_V41_0
│ │ └── det_bestModelIoU_xxx_int8.serialized.bin #模型文件
│ ├── det.txt
│ └── modelInfo.json #模型配置文件
├── release.txt #应用说明文件
├── svapp.py #应用主代码
三、源码编译并打包部署到相机
C++ 示例
1. 确认相机cmake编译环境
执行cmake判断是否安装cmake命令。
# 未安装cmake
aidlux@aidlux:~$ cmake
bash: cmake: command not found
如果没有安装,执行以下命令安装cmake。
aidlux@aidlux:~$ sudo apt-get update
aidlux@aidlux:~$ sudo apt-get install cmake
安装完成后,执行cmake命令出现帮助信息即为安装成功,如图所示:
2. 编译源代码
Camera上执行:
# 进入示例应用目录
aidlux@aidlux:~$ cd ~/demoApp
# 执行编译命令
aidlux@aidlux:~/demoApp$ cd src/
aidlux@aidlux:~/demoApp/src$ mkdir build
aidlux@aidlux:~/demoApp/src$ cd build/
aidlux@aidlux:~/demoApp/src/build$ cmake ..
aidlux@aidlux:~/demoApp/src/build$ make
编译完成后,会在应用根目录下生成可执行文件 svapp
3. 应用打包并部署
Camera上执行:
# 执行应用打包命令
aidlux@aidlux:~$ appc package -p ~/demoApp
打包完成后,会在应用目录下生成可直接部署的应用包:
至此,整个应用打包完成,接下来进行应用部署流程,可以将应用部署在本相机直接预览效果,也可以将应用部署到其他的相机设备上
场景 1:若需要将应用部署到本相机设备上:
Camera上执行: (1) 执行sve应用安装命令
# 执行sve应用安装命令
aidlux@aidlux:~$ appc install ~/demoApp.zip
💡注意:
若安装过程提示应用已存在,可以通过加入“-f”参数进行强制覆盖安装:
appc install -f ~/demoApp.zip
(2) 重启智能相机应用运行框架
💡注意:
需要重启相机应用运行框架服务后,智能相机应用列表才能重新加载,并展示解压后的应用
# 进入智能相机应用框架目录
cd /opt/aidlux/cpf/aid-sve/
# 重启相机应用运行框架
sudo ./manager.sh restart
(3) 打开相机管理网页,进入【任务管理】,查看部署的应用:
若应用列表中显示出示例应用,则表示已经部署成功
场景 2:若需要将应用部署到其他相机上,需要先将应用包拷贝到 PC 上
PC上执行: (1) 将应用包拷贝到 PC 本地
# 将相机上打包后的应用包拷贝到 PC 本地
scp aidlux@[camera IP]:/home/aidlux/demoApp.zip ./
(2) 打开其他相机管理网页,进入【任务管理】,点击【导入应用包】,选择 PC 上的应用包
导入后,若应用列表中显示出示例应用,则表示已经部署成功
四、预览运行效果
- 点击列表中的【启动/停止应用】按钮,运行应用示例。
- 点击进入【运行预览】按钮,查看运行效果。