【 香橙派 AIpro评测】烧系统运行部署LLMS大模型跑开源yolov5物体检测并体验Jupyter Lab AI 应用样例(新手入门)
文章目录
- 一、引言
- ⭐1.1下载镜像烧系统
- ⭐1.2开发板初始化系统配置远程登陆
- 💖 远程ssh
- 💖查看ubuntu桌面
- 💖 远程向日葵
- 二、部署LLMS大模型&yolov5物体检测
- ⭐2.1 快速启动LLMS大模型
- 💖拉取代码
- 💖下载mode数据
- 💖启动模型对话
- ⭐2.2yolov5图片物体检测
- 三、体验 内置AI 应用样例
- ⭐3.1运行 jupyterLab
- 💖进入sample 启动jupyterLab
- ⭐3.2打开Jupyter Lab页面
- 💖界面操作
- ⭐3.3 释放内存
- 💖 关闭样例
- ⭐3.4运行目标检测样例
- ⭐3.5运行图像曝光增强样例
- 四、总结
一、引言
大家好,我是yma16,在收到香橙派 AIpro 开发版之后开始动手实操,本期分享 【 香橙派 AIpro评测】烧系统运行部署LLMS大模型跑开源yolov5物体检测并体验Jupyter Lab AI 应用样例(新手入门)
香橙派 AIpro
Orange Pi AI Pro 开发板是香橙派联合华为精心打造的高性能 AI 开发板,其搭载了昇腾 AI 处理器,可提供 8TOPS INT8 的计算能力,内存提供了 8GB 和 16GB两种版本。可以实现图像、视频等多种数据分析与推理计算,可广泛用于教育、机器人、无人机等场景。
开发版图解
前期的准备工作如下
⭐1.1下载镜像烧系统
官方下载镜像:
http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-AIpro.html
下载unbuntu系统
官方的下载烧录镜像软件
https://etcher.balena.io/#download-etcher
下载昇腾开发一键制卡工具
点击下载
选择镜像、选择挂载的内存卡,等待约10分钟(3.0接口)
⭐1.2开发板初始化系统配置远程登陆
将烧好的unbuntu卡放入sd card槽
正面
反面
输入密码 (操作手册有密码:Mind@123)
远程ssh配置
sudo vi /etc/ssh/sshd_config
#增加以下配置允许通过ssh登录#PermitRootLogin prohibit-password
PermitRootLogin yes#修改完成后需要重启ssh服务命令如下
sudo service ssh restart
修改root密码
sudo passwd root
验证看root密码
💖 远程ssh
通过热点查看连接设备名称是 orangepi ai的ip
输入指令 查看ip地址
ip addr
切换网络会更改ip
ssh 用户名@ip
输入密码
连接 香橙派 AIpro,连接成功!
💖查看ubuntu桌面
安装的是ubuntu桌面的系统,进入ubuntu 桌面
查看磁盘
df -h
目录 | 空间 |
---|---|
dev/root | 29G |
tempfs | 3.7G+1.5G |
💖 远程向日葵
下载umo的版本即可
二、部署LLMS大模型&yolov5物体检测
使用开源项目ChatGLM3 ManualReset
在gitee查找32G以内的开源大模型
项目地址:https://gitee.com/wan-zutao/chatglm3-manual-reset
可以gitee搜索,找到ChatGLM3 ManualReset该项目,基于香橙派AIpro部署ChatGLM3-6B大语言模型
⭐2.1 快速启动LLMS大模型
💖拉取代码
创建chatglm/inference目录拉取该仓库的所有代码
cd /
mkdir -p /chatglm/inference
git clone https://gitee.com/wan-zutao/chatglm3-manual-reset.git chatglm
cd chatglm/inference
💖下载mode数据
运行 脚本下载model数据,中途网络中断可以删除 mode 和 token 目录 重新下载
bash download.sh
拉取仓库过程运行的过程,下载内容超过6G数据量,过程比较慢长
💖启动模型对话
python 运行main脚本启动
main脚本调用chatglm.om(6.3G),响应有点慢
python3 main.py
打印出项目的可以访问地址
访问即可和大模型对话
⭐2.2yolov5图片物体检测
YOLOv5是一种高效的目标检测算法,具有快速、准确、轻量级的特点。
yolov5项目地址:https://github.com/ultralytics/yolov5
拉取开源项目并安装依赖
脚本运行的数据:(运行大约4.7ms,两张图片)
Fusing layers…
YOLOv5s summary: 213 layers, 7225885 parameters, 0 gradients, 16.4 GFLOPs
image 1/2 /root/yolov5_demo/yolov5/data/images/bus.jpg: 640x480 4 persons, 1 bus, 657.6ms
image 2/2 /root/yolov5_demo/yolov5/data/images/zidane.jpg: 384x640 2 persons, 2 ties, 511.0ms
Speed: 4.7ms pre-process, 584.3ms inference, 14.8ms NMS per image at shape (1, 3, 640, 640)
Results saved to runs/detect/exp
运行截图:
识别图片结果,生成目录位置为 runs/detect/exp
三、体验 内置AI 应用样例
香橙派 AIpro中预装了 Jupyter Lab 软件。Jupyter Lab 软件是一个基于 web
的交互式开发环境,集成了代码编辑器、终端、文件管理器等功能,使得开发者可以在一个界面中完成各种任务。并且我们在镜像中也预置了一些可以在Jupyter Lab 软件中运行的 AI 应用样例。这些样例都是使用 Python 编写的,并调用了 Python 版本的AscendCL 编程接口
⭐3.1运行 jupyterLab
💖进入sample 启动jupyterLab
进入目录运行sh
cd ~
cd samples
./start_nontebook.sh
⭐3.2打开Jupyter Lab页面
💖界面操作
左侧是ai体验的实例,点击进入目录下的ipynb后缀文件会执行python实例,markdown是可执行的,酷
⭐3.3 释放内存
💖 关闭样例
选择kernel下的shut down allkernets,即可关闭所有运行的样例,避免空间不足
⭐3.4运行目标检测样例
运动目标检测样例
样例代码
import osimport time
import argparseimport matplotlib.pyplot as plt
from PIL import Image
import numpy as npfrom acllite_model import AclLiteModel as Model
from acllite_resource import AclLiteResource as AclResource
# om模型和图片的位置
MODEL_PATH = './cnnctc.om'
IMAGE_PATH = './predict.png'# 初始化acl资源
acl_resource = AclResource()
acl_resource.init()#导入本地om模型
print('load model....')
model = Model(MODEL_PATH)
print('load model finished....')# 文本与数据编码
class CTCLabelConverter():def __init__(self, character):dict_character = list(character)self.dict = {}for i, char in enumerate(dict_character):self.dict[char] = i + 1self.character = ['[blank]'] + dict_characterself.dict['[blank]'] = 0#将文本转换为数字编码def encode(self, text):length = [len(s) for s in text]text = ''.join(text)text = [self.dict[char] for char in text]return np.array(text), np.array(length)# 将数字编码转换为文本def decode(self, text_index, length):texts = []index = 0for l in length:t = text_index[index:index + l]char_list = []for i in range(l):if t[i] != self.dict['[blank]'] and (not (i > 0 and t[i - 1] == t[i])):char_list.append(self.character[t[i]])text = ''.join(char_list)texts.append(text)index += lreturn texts
运行时间8ms左右:输出parking文字和图片内容一致,符合预期
⭐3.5运行图像曝光增强样例
选择04-HDR 的demo样例
定义资源管理类
import sys
import cv2
import numpy as np
import os
import time
import matplotlib.pyplot as plt
import aclimport acllite_utils as utils
import constants as constants
from acllite_model import AclLiteModel
from acllite_resource import resource_list
class AclLiteResource:"""AclLiteResource类"""def __init__(self, device_id=0):self.device_id = device_idself.context = Noneself.stream = Noneself.run_mode = Nonedef init(self):"""初始化资源"""print("init resource stage:")ret = acl.init() # acl初始化ret = acl.rt.set_device(self.device_id) # 指定运算的deviceutils.check_ret("acl.rt.set_device", ret)self.context, ret = acl.rt.create_context(self.device_id) # 创建contextutils.check_ret("acl.rt.create_context", ret)self.stream, ret = acl.rt.create_stream() # 创建streamutils.check_ret("acl.rt.create_stream", ret)self.run_mode, ret = acl.rt.get_run_mode() # 获取运行模式utils.check_ret("acl.rt.get_run_mode", ret)print("Init resource success")def __del__(self):print("acl resource release all resource")resource_list.destroy()if self.stream:print("acl resource release stream")acl.rt.destroy_stream(self.stream) # 销毁streamif self.context:print("acl resource release context")acl.rt.destroy_context(self.context) # 释放contextprint("Reset acl device ", self.device_id)acl.rt.reset_device(self.device_id) # 释放deviceprint("Release acl resource success")
推理功能
path = os.getcwd()
input_w = 512 # 推理输入width
input_h = 512 # 推理输入height
INPUT_DIR = os.path.join(path, 'data/') # 输入路径
OUTPUT_DIR = os.path.join(path, 'out/') # 输出路径def pre_process(dir_name, input_h, input_w):"""预处理"""BGR = cv2.imread(dir_name).astype(np.float32)h = BGR.shape[0]w = BGR.shape[1]# 进行归一化、缩放、颜色转换BGR = BGR / 255.0BGR = cv2.resize(BGR, (input_h, input_w))RGB = cv2.cvtColor(BGR, cv2.COLOR_BGR2RGB)return RGB, h, wdef post_process(input_img, result_list, pic, input_h, input_w):"""后处理"""o_w, o_h = input_img.shape[:2]# 获取推理结果,进行形状变换data = result_list[0].reshape(input_h, input_w, 3)# 进行缩放、颜色转换output = (cv2.resize(data, (o_w, o_h)) * 255.0).astype(np.uint8)output_img = cv2.cvtColor(output, cv2.COLOR_RGB2BGR)# 保存增强后图像file_name = os.path.join(OUTPUT_DIR, pic)cv2.imwrite(file_name, output_img)# 拼接输入图像和增强后图像,返回进行显示BGR_U8 = np.concatenate([input_img, output_img], axis=1)return BGR_U8def main():# 创建推理结果存放路径if not os.path.exists(OUTPUT_DIR):os.mkdir(OUTPUT_DIR)# acl初始化acl_resource = AclLiteResource()acl_resource.init()# 加载模型model_path = os.path.join(path, "model/image_HDR_enhance.om")model = AclLiteModel(model_path)# 遍历数据集进行推理src_dir = os.listdir(INPUT_DIR)for pic in src_dir:if not pic.lower().endswith(('.bmp', '.dib', '.png', '.jpg', '.jpeg', '.pbm', '.pgm', '.ppm', '.tif', '.tiff')):print('it is not a picture, %s, ignore this file and continue,' % pic)continuepic_path = os.path.join(INPUT_DIR, pic)input_img = cv2.imread(pic_path)# 进行预处理RGB_image, o_h, o_w = pre_process(pic_path, input_h, input_w)# 计算推理耗时start_time = time.time()# 执行推理result_list = model.execute([RGB_image, ])end_time = time.time()# 打印推理的图片信息和耗时print('pic:{}'.format(pic))print('pic_size:{}x{}'.format(o_h, o_w))print('time:{}ms'.format(int((end_time - start_time) * 1000)))print('\n')# 进行后处理img_result = post_process(input_img, result_list, pic, input_h, input_w) # 显示输入图像和增强后图像img_RGB = img_result[:, :, [2, 1, 0]] # RGBplt.axis('off')plt.xticks([])plt.yticks([])plt.imshow(img_RGB)plt.show()
结果
acl resource release all resource
AclLiteModel release source success
acl resource release stream
acl resource release context
Reset acl device 0
Release acl resource success
生成的图像增强效果如下:
消耗时间316ms,响应极快。
查看生成的out目录下的结果图片,十分清晰
cd out
四、总结
香橙派 AIpro有良好的生态和入门的技术文档,网上也有相关的视频教程,对新人很友好。
http://www.orangepi.cn
应用场景
香橙派 AIpro 开发板因为比较小巧轻量,内部集合Jupyter Lab 页面,非常方便,对于入门人工智能的开发者非常友好。
试用场景也不仅仅局限于本文的操作,还有以下的多个方向等:
-
原型开发:开发板是原型开发的理想工具。通过连接传感器、执行器和其他外设,开发人员可以快速验证和迭代他们的想法,并评估其可行性。
-
学习和教育:开发板可以作为学生和初学者学习编程和电子技术的工具。它们提供了一个实践的平台,让学习者通过实际操作来理解电子原理和编程概念。
-
项目演示:开发板可以用于演示和展示技术项目。无论是在学术会议上还是在公司内部会议上,通过展示实际的硬件和软件成果,可以增强演示和沟通的效果。
-
物联网应用:开发板是物联网应用开发的重要工具。它们可以用于构建和测试各种物联网设备和传感器网络。
-
自动化控制:开发板可以用于构建自动化控制系统。通过连接和控制传感器和执行器,可以实现各种自动化任务,如智能家居控制、工业自动化等。
香橙派 AIpro的性能体验:
散热:开发板的散热性能良好,持续运行8个小时整个板子的温度都比较低。
噪音:开发板的噪音产生主要来自于风扇,开机过程中存在一点噪音,开机之后噪音就降下来了,影响不大。
负载:开发板的内存和cpu的使用情况状态处于健康状态,能够同时处理的任务或数据量。
烧录系统部署项目过程体验
香橙派AIpro是一款简化了硬件开发过程的智能开发板。它的优势在于用户无需复杂的安装步骤,只需要通过SD卡加载预配置好的镜像系统,插入设备后就能直接登录并开始使用。这种预先装好的系统大大节省了新手入门的时间,尤其是对于网络配置这类细节,不再需要手动设置。
此外,它配备了内置的Jupyter Lab环境,这使得开发者可以直接在界面上编写、运行和测试人工智能应用程序,极大地提高了开发效率。由于其设计简洁易用,即使是不熟悉底层操作的开发者也能快速上手,无论是调试还是比较数据集结果都变得更加直观和高效。
相比传统的开发板,香橙派AIpro凭借其智能化的特点,为开发者提供了一站式解决方案,不仅减少了繁琐的工作环节,而且在性能稳定性以及交互体验上都有着显著提升。这对于那些寻求快速原型制作和便捷开发环境的工程师来说,无疑是一个理想的选择。
相关文章:

【 香橙派 AIpro评测】烧系统运行部署LLMS大模型跑开源yolov5物体检测并体验Jupyter Lab AI 应用样例(新手入门)
文章目录 一、引言⭐1.1下载镜像烧系统⭐1.2开发板初始化系统配置远程登陆💖 远程ssh💖查看ubuntu桌面💖 远程向日葵 二、部署LLMS大模型&yolov5物体检测⭐2.1 快速启动LLMS大模型💖拉取代码💖下载mode数据&#x…...

Azure Repos 仓库管理
从远端仓库克隆到本地 前提:本地要安装git,并且登录了账户 1.在要放这个远程仓库的路径下,打git 然后 git clone https://.. 如果要登录验证,那就验证下,点 generate git credentials,复制password 克隆完后,cd 到克隆的路径, 可以用 git branch -a //查看分…...

Day71 代码随想录打卡|回溯算法篇---全排列
题目(leecode T46): 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 方法:全排列是数学中的基础问题,也是回溯算法能解决的经典问题。全排列因为每个元素都会…...

开源科学工程技术软件
目录 0 参考链接 1 Silx 2 Klampt 3 参数化三维3D软件Dune 3D 4 GPS日志文件查看器GPXSee 5 三维3D软件Chili3D 6 集成电路设计软件XicTools 7 天文学软件Cosmonium 8 计算流体力学软件FluidX3D 9 点云处理软件CloudCompare 10 野外火灾建模软件WindNinja 11 电子设…...

甄选范文“论软件维护方法及其应用”软考高级论文,系统架构设计师论文
论文真题 软件维护是指在软件交付使用后,直至软件被淘汰的整个时间范围内,为了改正错误或满足 新的需求而修改软件的活动。在软件系统运行过程中,软件需要维护的原因是多种多样的, 根据维护的原因不同,可以将软件维护分为改正性维护、适应性维护、完善性维护和预防性 维护…...

【服务器】端口映射
文章目录 1.端口映射的概念1.1 端口映射的类型1.2 端口映射的应用场景1.3 示例 2.为什么要进行端口映射呢?3.原理3.1【大白话】原理解释3.2 原理图 4.代码 1.端口映射的概念 端口映射(Port Mapping),也称为端口转发(P…...

HTC 10 刷系统 LineageOS 19.1 Android 12
解锁手机 解锁或导致数据全部清除,注意保存 Bootloader解锁,S-ON可以不用解锁(好像可以绕过解锁安装twrp,暂时没尝试) HTC 官方 Unlock Bootloader HTC Desire 20 pro 可以不通过官方网站解锁 adb reboot bootload…...

访问者模式(Visitor Pattern)
访问者模式(Visitor Pattern) 定义 访问者模式(Visitor Pattern) 表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。 该模式的主要思想是将作用于某种数据结构中的各…...

mac如何查看cpu和显卡温度
在Mac上查看CPU和显卡温度,你可以使用以下几种方法: 方法1:使用内建工具“活动监视器” 虽然“活动监视器”不能直接显示温度信息,但它可以显示CPU使用情况等信息。 打开“活动监视器”,可以通过以下路径找到&#…...

MongoDB教程(六):mongoDB复制副本集
💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 文章目录 引言一、MongoD…...

牛客小白月赛98 (个人题解)(补全)
前言: 昨天晚上自己一个人打的小白月赛(因为准备数学期末已经写烦了),题目难度感觉越来越简单了(不在像以前一样根本写不了一点,现在看题解已经能看懂一点了),能感受到自己在不断进步…...

Ubuntu压缩解压各类型文件
在Ubuntu系统中,解压不同格式的压缩文件可能需要安装不同的工具。以下是一些常见的压缩格式和相应的安装命令: ZIP文件: 工具:unzip 安装命令: sudo apt install unzip 解压命令 unzip filename.zip 如果需要保留目录…...

昇思学习打卡-20-生成式/GAN图像生成
文章目录 网络介绍生成器和判别器的博弈过程数据集可视化模型细节训练过程网络优缺点优点缺点 网络介绍 GAN通过设计生成模型和判别模型这两个模块,使其互相博弈学习产生了相当好的输出。 GAN模型的核心在于提出了通过对抗过程来估计生成模型这一全新框架。在这个…...

javafx、node js、socket、OpenGL多线程
机器学习、算法、人工智能、汇编(mips、arm、8086)、操作系统、数据挖掘、编译原理、计算机网络、Arena软件、linux xv6、racket、shell、Linux、PHP、Haskell、Scala、spark、UML、mathematica、GUI、javafx、node js、socket、OpenGL、多线程、qt、数据…...

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(七)-通过无人机实现无线接入的独立部署
引言 本文是3GPP TR 22.829 V17.1.0技术报告,专注于无人机(UAV)在3GPP系统中的增强支持。文章提出了多个无人机应用场景,分析了相应的能力要求,并建议了新的服务级别要求和关键性能指标(KPIs)。…...

模糊综合评价
对多因素影响的事务的评价(如人才,方案,成果),有时难以给出影响的确切表达,此时可以采取模糊综合评价的方法。 该方法可以对人,事,物进行比较全面而又定量化的评价。 实例1ÿ…...

系统测试-白盒测试学习
目录 1、语句覆盖法: 2、判定覆盖法: 3、条件覆盖法: 4、判定条件覆盖: 5、条件组合的覆盖: 6、路径覆盖: 黑盒:需求 白盒:主要用于单元测试 1、语句覆盖法: 程序…...

UI设计工具选择指南:Sketch、XD、Figma、即时设计
在数字产品设计产业链中,UI设计师往往起着连接前后的作用。产品经理从一个“需求”开始,制定一个抽象的产品概念原型。UI设计师通过视觉呈现将抽象概念具体化,完成线框图交互逻辑视觉用户体验,最终输出高保真原型,并将…...

Pycharm 导入 conda 环境
使用时经常在此处卡壳,在此做个记录。 这个位置选择 conda 安装路径下的 python.exe 文件即可...

Vue封装Tooltip(提示工具)
<template> <div class"tooltip" mouseover"showTooltip" mouseleave"hideTooltip"> <slot></slot> <!-- 使用slot来接收传入的内容 --> <span class"tooltiptext" v-if"visible">{…...

Go 1.19.4 函数-Day 08
1. 函数概念和调用原理 1.1 基本介绍 函数是基本的代码块,用于执行一个任务。 Go 语言最少有个 main() 函数。 你可以通过函数来划分不同功能,逻辑上每个函数执行的是指定的任务。 函数声明告诉了编译器函数的名称,返回类型,和参…...

Docker-Nvidia(NVIDIA Container Toolkit)
安装NVIDIA Container Toolkit工具,支持docker使用GPU 目录 1.NVIDIA Container Toolkit 安装1.1 nvidia-docker安装1.2 验证1.2.1 验证安装1.2.2 额外补充 1.NVIDIA Container Toolkit 安装 1.1 nvidia-docker安装 NVIDIA/nvidia-docker Installing the NVIDIA …...

Mongodb 3.6 数据恢复操作
一、安装MongoDB 忽略 二、创建账号和授权 在新的MongoDB上创建用户管理员。先切换到admin库,然后通过命令创建数据库管理员账号和密码。最后再验证账号密码是否创建成功! use admin db.createUser({user:"root",pwd:"123456Ab",…...

C++ | Leetcode C++题解之第238题除自身以外数组的乘积
题目: 题解: class Solution { public:vector<int> productExceptSelf(vector<int>& nums) {int length nums.size();// L 和 R 分别表示左右两侧的乘积列表vector<int> L(length, 0), R(length, 0);vector<int> answer(l…...

挂耳式蓝牙耳机什么牌子好?这五款综合表现遥遥领先
为什么这几年开放式耳机受到了越来越多消费者的喜爱?我想是因为它全方位的弥补了入耳式耳机堵塞耳朵、不够安全健康的缺陷,真正做到了安全性与舒适性兼得。那么刚入坑开放式耳机的小白该如何挑选一款品质较高的开放式耳机呢?挂耳式蓝牙耳机什…...

防火墙-NAT策略和智能选路
一、背景技术 在日常网络环境,内部网络想要访问外网无法直接进行通信,这时候就需要进行NAT地址转换,而在防火墙上配置NAT和路由器上有点小区别,思路基本一致,这次主要就以防火防火墙配置NAT策略为例,防火墙…...

一键优雅为Ubuntu20.04服务器挂载新磁盘
itopen组织1、提供OpenHarmony优雅实用的小工具2、手把手适配riscv qemu linux的三方库移植3、未来计划riscv qemu ohos的三方库移植 小程序开发4、一切拥抱开源,拥抱国产化 一、小于2T磁盘挂载方式 1.1 安装磁盘到电脑后启动系统 1.2 查找未分区的磁盘 打…...

踩坑日记 | 记一次流程图问题排查
踩坑日记:记一次流程图问题排查 标签: activiti | 流程 引言 今天排查了一个流程图问题,耗时2个小时终于解决,记录下来 现象 流程审批驳回报错:Unknown property used in expression: ${xxxx} 使用的是 activiti …...

数据建设实践之大数据平台(四)安装mysql
安装mysql 卸载mysql [bigdatanode101 ~]$ sudo rpm -qa | grep mariadb | xargs sudo rpm -e --nodeps 上传安装包到/opt/software目录并解压 [bigdatanode101 software]$ tar -xf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar -C mysql_lib/ 到mysql_lib目录下顺序安装 …...

MongoDB常用命令大全,概述、备份恢复
文章目录 一、MongoDB简介二、服务启动停止、连接三、数据库相关四、集合操作五、文档操作六、数据备份与恢复/导入导出数据6.1 mongodump备份数据库6.2 mongorestore还原数据库6.3 mongoexport导出表 或 表中部分字段6.4 mongoimport导入表 或 表中部分字段 七、其他常用命令八…...