215 Star 1.2K Fork 1K

Ascend/samples

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
best_practices
common
cplusplus
common
contrib
environment
level1_single_api
10_aoe_api
11_llm_data_dist
1_acl
2_atc
3_ir
4_op_dev
5_200dk_peripheral
6_media
1_audio/audio_gitee
1_camera/camera_sample
common
sensor
sensor_sample
CMakeLists.txt
README.md
main.c
vi_with_sensor.c
vi_with_sensor.h
1_hdmi/hdmi_gitee
1_mipitx/raspberry_sample
.keep
7_dvpp
8_graphrun
9_feature_retrieval
README.md
README_CN.md
level2_simple_inference
level3_application/1_cv/detect_and_classify
README.md
README_CN.md
docs
growthpath
inference
operator
operator_contrib
python
robot/ascend_car
st
training
.gitignore
CONTRIBUTING_CN.md
CONTRIBUTING_EN.md
LICENSE
NOTICE
OWNERS
README.md
build_run.sh
克隆/下载
贡献代码
同步代码
cremlscent-yzcyh94tc cremlscent modify 477 mem 7cc4cfa 1年前 检查通过
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

Camera level1 Sample

##本样例为大家学习昇腾软件栈提供参考,非商业目的! ##本样例适配6.4.0及以上版本,支持产品为310B设备。

功能描述

camera l1 level sample,从sensor获取图像(实例为树莓派摄像头),通过camera流程处理之后获得yuv图像传入后端进行处理。

软件架构

软件架构说明

├──————CMakeLists.txt        // 编译脚本
├──————sensor                // sensor相关源码,当前仅支持树莓派imx219摄像头。
├──————common                // 示例代码通用适配层。
├──————sensor_sample         // 示例代码sensor相关配置,sample如何调用sensor源码。
├──————main.c                //示例代码主函数。
├──————vi_with_sensor.c      //示例代码主流程。
├──————vi_with_sensor.h      //示例代码头文件。

环境要求

  • 编译环境操作系统及架构:Ubuntu 18.04 x86_64、Ubuntu 18.04 aarch64、EulerOS aarch64

  • 编译器:g++ 或 aarch64-linux-gnu-g++

  • 运行环境芯片:Ascend310B

  • 已完成昇腾AI软件栈在开发环境、运行环境上的部署

编译运行

以运行用户登录编译环境,编译代码,首先编译sensor so相关代码,再生成二进制可执行文件。

  1. aarch64编译环境的编译方法

设置环境变量。

如下示例,$HOME/Ascend表示编译环境runtime标准形态安装包的安装路径,请根据实际情况替换。

export NPU_HOST_LIB=$HOME/Ascend/runtime/lib64/stub/ cd到sensor/sony_imx219目录,依次执行如下命令执行编译;imx477同理,cd到sensor/sony_imx477目录下进行编译

mkdir build
cd build
cmake .. -DCMAKE_C_COMPILER=gcc -DCMAKE_SKIP_RPATH=TRUE
make

在“$HOME/Ascend/runtime/lib64/stub/“目录下会生成libsns_imx219.so,libsns_imx477.so。 之后cd到camera_l1_sample根目录,依次执行如下命令执行编译, 编译器根据实际toolkit包安装位置自行调整

mkdir build
cd build
cmake .. -DCMAKE_C_COMPILER=gcc -DCMAKE_SKIP_RPATH=TRUE
make

在“build/“目录下会生成可执行文件vi_l1_sample。

  1. x86_64编译环境的编译方法

提前在x86_64编译环境安装x86_64版本的CANN-toolkit包

  1. 设置环境变量。

如下示例,$HOME/Ascend表示编译环境runtime标准形态安装包的安装路径,请根据实际情况替换。

“export NPU_HOST_LIB=$HOME/Ascend/CANN-6.4/runtime/lib64/stub/aarch64” cd到sensor/sony_imx219目录,依次执行如下命令执行编译,imx477同理,cd到sensor/sony_imx477目录下进行编译。

编译器根据实际toolkit包安装位置自行调整

mkdir build
cd build
cmake .. -DCMAKE_C_COMPILER=$HOME/Ascend/CANN-6.4/toolkit/toolchain/hcc/bin/aarch64-target-linux-gnu-gcc -DCMAKE_SKIP_RPATH=TRUE
make

在“$HOME/Ascend/runtime/lib64/stub/“目录下会生成libsns_imx219.so。 2. 之后cd到camera_l1_sample根目录,依次执行如下命令执行编译。

mkdir build
cd build
cmake .. -DCMAKE_C_COMPILER=$HOME/Ascend/CANN-6.4/toolkit/toolchain/hcc/bin/aarch64-target-linux-gnu-gcc -DCMAKE_SKIP_RPATH=TRUE
make

在“build/“目录下会生成可执行文件vi_l1_sample。

##执行测试程序

./vi_l1_sample 1 1 1
参数1:测试程序模式,1为sensor出yuv图,2为出raw图
参数2:camera num,可选1-2
参数3:sensor_type,1为imx219,2为imx477

##可能遇到的问题

  1. 执行报错,可以看/var/log/npu/slog/debug/device-os/进行简单定位,如果是dlopen so失败的情况,将/lib64/目录添加到环境变量中即可
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ascend/samples.git
git@gitee.com:ascend/samples.git
ascend
samples
samples
master

搜索帮助