香橙派AIpro快速上线——纯小白体验版本!!!

2024-05-29 19:04

本文主要是介绍香橙派AIpro快速上线——纯小白体验版本!!!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

前言

一、快速上线

官网的样例测试

​编辑解决模型转换问题的步骤

如果系统卡死

二、usb摄像头测试

三、总结

模型转换

小结


前言

香橙派AIpro+ubuntu系统+32G sd卡

香橙派AIpro开发板采用昇腾AI技术路线,接口丰富且具有强大的可扩展性,提供8/20TOPS澎湃算力,可广泛使用于AI边缘计算、深度视觉学习及视频流AI分析、视频图像分析、自然语言处理等AI领域。通过昇腾CANN软件栈的AI编程接口,可满足大多数AI算法原型验证、推理应用开发的需求。

AscendCL(Ascend Computing Language,昇腾计算语言)是昇腾计算开放编程框架,是对底层昇腾计算服务接口的封装,提供Device管理、Context管理、Stream管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理等API,支持C&C++、Python编程语言,能够实现深度学习推理计算、图形图像预处理、单算子加速计算等能力。

掌握了AscendCL的编程方法,就意味着可以在香橙派AIpro开发板上充分利用昇腾的算力资源,能够基于深度学习算法开发图片分类、目标检测等一系列深度学习推理计算程序。

一、快速上线

wifi或者网线连接网络

官网的样例测试

在服务器任意目录下获取sample仓代码(以/home目录为例)

apt-get install gitgit config --global http.sslVerify "false"git clone https://gitee.com/ascend/samples.git

进入“样例目录”,下文中的“样例目录”均指“samples/cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification”目录

cd samples/cplusplus/level2_simple_inference/1_classification/resnet50_imagenet_classification

获取ResNet-50原始模型

pip3 install Pillowmkdir -p caffe_model

将获取的模型文件和权重文件上传至创建的“caffe_model”目录

在“样例目录”下执行如下命令,将ResNet-50原始模型转换为适配昇腾AI处理器的离线模型(*.om文件)

atc --model=caffe_model/resnet50.prototxt --weight=caffe_model/resnet50.caffemodel --framework=0 --output=model/resnet50 --soc_version=Ascend310P3 --input_format=NCHW --input_fp16_nodes=data --output_type=FP32 --out_nodes=prob:0

解决模型转换问题的步骤

使用的是香橙派AI Pro开发板,运行的是Ubuntu 22.04.3 LTS操作系统,并且正在尝试使用昇腾AI技术和CANN(Compute Architecture for Neural Networks)软件栈进行模型转换。

模型转换过程中系统卡死可能有多种原因。以下是一些解决问题的方法:

1. 检查系统资源:
   
   - 确保系统有足够的资源(CPU、内存、存储)来处理转换过程。显示我的系统有7.4 GiB的内存,通常应该足够,但可能存在有其他占用资源较多的进程在同时运行。

2. ATC命令参数:
   
   - 确认提供给`atc`命令的所有参数是否正确并适合您的硬件和模型。
   - 例如,确保`--soc_version=Ascend310P3`适用于自己的设备。如果不适用,请根据实际情况进行调整。

3. CANN和Ascend工具包安装:
   
   - 确保正确安装了CANN和Ascend工具包,并正确设置了所有环境变量。
   - 检查安装的软件版本,确保兼容性。

4. 模型文件:
   
   - 验证`resnet50.prototxt`和`resnet50.caffemodel`文件的完整性和兼容性。
   - 确保这些文件正确放置在`caffe_model`目录中,并且转换工具可以访问这些文件。

5. 日志和调试:
   
   - 查看ATC工具生成的日志(如果有),以识别具体的错误或警告。
   - 可以通过在`atc`命令中添加`--log=debug`来启用详细日志记录,以获取更详细的输出。

6. 依赖项:
   
   - 确保所有必要的依赖项已安装并且是最新的。这包括Python包如Pillow以及ATC工具所需的系统库。

如果系统卡死

- 监控资源使用情况:使用系统监控工具在转换过程中检查CPU和内存的使用情况。
- 在Screen/Tmux会话中运行:如果系统容易卡死,可以在分离会话中运行命令,这样即使主终端无响应,也可以监控日志。

在“样例目录/data”目录下准备样例图片,如果data目录不存在,可在“样例目录”下执行mkdir -p data命令创建。

cd datawget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dog1_1024_683.jpg --no-check-certificatewget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dog2_1024_683.jpg --no-check-certificate

执行下列代码,将jpg转换成bin文件

python3 ../script/transferPic.py

在“样例目录”下执行如下命令配置环境变量

export DDK_PATH=/usr/local/Ascend/ascend-toolkit/latestexport NPU_HOST_LIB=$DDK_PATH/runtime/lib64/stub

在“样例目录”下执行如下命令编译可执行文件。

mkdir -p build/intermediates/hostcd build/intermediates/hostcmake ../../../src -DCMAKE_CXX_COMPILER=g++ -DCMAKE_SKIP_RPATH=TRUEmake

/out目录下,执行如下命令运行编译的文件

./main

模型转换失败的话,就会出现上图所示情况!!!

成功的话就是这样的!!!这部分是在

二、usb摄像头测试

gitclone源码

git clone https://gitee.com/ascend/EdgeAndRobotics.git

安装FFmpeg。

sudo apt-get install ffmpeg libavcodec-dev libswscale-dev libavdevice-dev

装OpenCV。

sudo apt-get install libopencv-dev

进入样例目录

/home/HwHiAiUser/EdgeAndRobotics/Peripherals/Camera/USBCamera/

编译样例源码。 执行编译命令

注意!!!需要将main.cpp文件中摄像头的具体参数改成你的实际的摄像头参数!!不然无法正常采集数据!原始的分辨率是1280*720,我的是640*480

g++ main.cpp -o main -lavutil -lavformat -lavcodec -lavdevice

编译命令执行成功后,在USBCamera样例目录下生成可执行文件main。

运行样例,从Camera获取图像。

 运行可执行文件,其中/dev/video0表示Camera设备,需根据实际情况填写:

./main /dev/video0

 运行成功后,在USBCamera样例目录下生成yuyv422格式、640*480分辨率的out.yuv文件。

当把一个摄像头插入开发板后,执行ls /dev/vi*命令可看到摄像头的vedio节点。这里出现了两个设备节点:/dev/video0、/dev/video1,是因为一个是图像/视频采集,一个是metadata采集,因此本样例中在运行可执行文件时,选择图像/视频采集的设备节点/dev/video0。

检查从Camera获取的图像。

执行如下命令,使用FFmpeg软件查看图像:

ffplay -pix_fmt yuyv422 -video_size 640*480 out.yuv

​图片看上去不太清晰是因为我的摄像头的问题

三、总结

模型转换

昇腾张量编译器(Ascend Tensor Compiler,简称 ATC)是昇腾 CANN 架构体系下的模型转换工具
ATC工具可将开源框架的网络模型(如TensorFlow等)转换为昇腾Al处理器支持的离线模型。支持原始框架类型为Caffe、TensorFlow、MindSpore、ONNX的模型转换,其中ONNX可以看做是一个中间模型,如果其他模型可以转换为ONNX模型那么也可以在使用ATC进行模型转换,例如pytorch模型转换为ONNX模型,ONNX模型再转换为.om文件。
这个部分是我本人特别喜欢的功能!

小结

因为本人基本上属于完全小白,之前只玩过X3板卡,所以本次我也只测试了两张板卡的相同的功能部分!进入系统界面后,空白处滑动鼠标滚轮可以实现切屏,非常丝滑。我目前就试了两个基本的功能,模型转换因为整体系统完全卡死了无法成功转换后续也没有再去跟进了,不过我有把大致的问题解决思路列出来,大家有兴趣的可以看看。usb相机的测试拍摄图片完全ok,不过这种基础功能的实现基本上都差不多。关于散热,相比于X3板卡,加上官网的散热器的香橙派的散热性能更佳!
 

有个小问题,关于USB接口,一共两个,接上鼠标键盘后,其实再接一个usb相机真的不方便!大家如果要试的话,还是蓝牙连接鼠标or键盘会方便些。

这篇关于香橙派AIpro快速上线——纯小白体验版本!!!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1014376

相关文章

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级

Python多线程实现大文件快速下载的代码实现

《Python多线程实现大文件快速下载的代码实现》在互联网时代,文件下载是日常操作之一,尤其是大文件,然而,网络条件不稳定或带宽有限时,下载速度会变得很慢,本文将介绍如何使用Python实现多线程下载... 目录引言一、多线程下载原理二、python实现多线程下载代码说明:三、实战案例四、注意事项五、总结引

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

C#使用Spire.XLS快速生成多表格Excel文件

《C#使用Spire.XLS快速生成多表格Excel文件》在日常开发中,我们经常需要将业务数据导出为结构清晰的Excel文件,本文将手把手教你使用Spire.XLS这个强大的.NET组件,只需几行C#... 目录一、Spire.XLS核心优势清单1.1 性能碾压:从3秒到0.5秒的质变1.2 批量操作的优雅

Mybatis-Plus 3.5.12 分页拦截器消失的问题及快速解决方法

《Mybatis-Plus3.5.12分页拦截器消失的问题及快速解决方法》作为Java开发者,我们都爱用Mybatis-Plus简化CRUD操作,尤其是它的分页功能,几行代码就能搞定复杂的分页查询... 目录一、问题场景:分页拦截器突然 “失踪”二、问题根源:依赖拆分惹的祸三、解决办法:添加扩展依赖四、分页

c++日志库log4cplus快速入门小结

《c++日志库log4cplus快速入门小结》文章浏览阅读1.1w次,点赞9次,收藏44次。本文介绍Log4cplus,一种适用于C++的线程安全日志记录API,提供灵活的日志管理和配置控制。文章涵盖... 目录简介日志等级配置文件使用关于初始化使用示例总结参考资料简介log4j 用于Java,log4c

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

Linux升级或者切换python版本实现方式

《Linux升级或者切换python版本实现方式》本文介绍在Ubuntu/Debian系统升级Python至3.11或更高版本的方法,通过查看版本列表并选择新版本进行全局修改,需注意自动与手动模式的选... 目录升级系统python版本 (适用于全局修改)对于Ubuntu/Debian系统安装后,验证Pyt

MySQL 升级到8.4版本的完整流程及操作方法

《MySQL升级到8.4版本的完整流程及操作方法》本文详细说明了MySQL升级至8.4的完整流程,涵盖升级前准备(备份、兼容性检查)、支持路径(原地、逻辑导出、复制)、关键变更(空间索引、保留关键字... 目录一、升级前准备 (3.1 Before You Begin)二、升级路径 (3.2 Upgrade

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R