跳到主要内容

第三步:构建你的第一个相机应用

一、生成示例应用(含示例源码)

为了帮助开发者快速学习上手,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

二、应用源码说明

文件结构如下:

├── README.md
├── config #配置文件
│ ├── camera.config #相机参数配置文件(需要补上相机参数配置的说明)
│ ├── algorithm.config #算法参数配置文件(需要补上算法参数配置的说明)
│ ├── model.config #模型相关配置文件
├── imgs #静态图片目录
├── lib #三方库目录
├── manager.sh #应用启动脚本
├── model #模型文件目录
│ ├── Segment_V41_0
│ │ └── det_bestModelIoU_0.77_v_t_0.81_epoch_019_int8.serialized.bin #模型bin文件
│ ├── det.txt
│ └── modelInfo.json #模型配置文件
├── release.txt #应用说明文件
├── src #应用主程序目录
│ ├── CMakeLists.txt #cmake编译文件
│ ├── main.cpp #应用主代码
│ ├── main.hpp #应用主代码头文件
│ └── model.cpp #模型加载主代码
├── svapp #可执行程序文件
.

三、源码编译并打包部署到相机


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命令出现帮助信息即为安装成功,如图所示:

img

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

img

3. 应用打包并部署

Camera上执行:

# 执行应用打包命令
aidlux@aidlux:~$ appc package -p ~/demoApp

打包完成后,会在应用目录下生成可直接部署的应用包:

img

至此,整个应用打包完成,接下来进行应用部署流程,可以将应用部署在本相机直接预览效果,也可以将应用部署到其他的相机设备上

场景 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) 打开相机管理网页,进入【任务管理】,查看部署的应用:

task running
图 - 查看部署的应用

若应用列表中显示出示例应用,则表示已经部署成功

场景 2:若需要将应用部署到其他相机上,需要先将应用包拷贝到 PC 上

PC上执行: (1) 将应用包拷贝到 PC 本地

# 将相机上打包后的应用包拷贝到 PC 本地
scp aidlux@[camera IP]:/home/aidlux/demoApp.zip ./

(2) 打开其他相机管理网页,进入【任务管理】,点击【导入应用包】,选择 PC 上的应用包

task running
图 - 导入应用包

导入后,若应用列表中显示出示例应用,则表示已经部署成功

task running
图 - 部署成功