赞
踩
非常荣幸受官方邀请体验OrangePi AIpro,本文介绍OrangePi AIpro测评Yolov5目标检测模型整个过程。
经过数天的等待,终于到货啦~~~~,打开快递,实物如下图(包含一个电源线、电源插头以及OrangePi AIpro开发板):
因为是裸板,所以接上了鼠标、键盘、网线、显示器、电源,先通电看下效果:
开机的一瞬间,风扇呜呜呜的转了起来(一开始转的很猛,进入系统就好了),27寸显示器成功亮了起来,进入系统(系统发来的时候是ubuntu22.04):
进入系统,打开终端,输入命令ip a,查看ip地址是192.168.1.177,然后记下ip地址,把显示器接回我的电脑,后续操作远程进行。
因为习惯用vscode开发,所以在自己电脑上用vscode远程连接OrangePi AIpro进行测试,使用vscode的ssh连接OrangePi AIpro:
输入密码连接成功:
连接成功之后,输入以下命令查看npu信息:
npu-smi info
如下图所示,显示了版本、内存等信息:
切换到HwHiAiUser用户,打开目录/home/HwHiAiUser/samples:
cd /home/HwHiAiUser/samples
可以看到notebooks里面有很多示例,这是官方已经做好的,下面我们来体验一下。参考教程:官方文档
进入notebooks目录:
cd notebooks/
运行start_notebook.sh脚本:
bash start_notebook.sh
打开这个连接:
进来了,左边是官方的示例代码:
进入相关目录,并打开jupyter文件:
依次运行代码块,注意,最后一个代码块修改了代码,因为我的OrangePi AIpro没有摄像头:
先看下要检测的图片长什么样:
回去main.ipynb,运行推理代码块:
可以看到代码成功跑通了。
可以看到代码里面还有个视频,改下代码,用视频试试:
运行代码块,视频检测跑起来了(竟然没有保存视频的代码,那必须手动给它加上):
在上面的代码块下面新开一个代码块,把以下内容加上去:
- def infer_and_save_video(video_path, model, labels_dict, cfg, output_video='output.avi'):
- """视频推理"""
- image_widget = widgets.Image(format='jpeg', width=800, height=600)
- display(image_widget)
-
- # 读入视频
- cap = cv2.VideoCapture(video_path)
- fourcc = cv2.VideoWriter_fourcc(*'XVID')
- width = int(cap.get(3))
- height = int(cap.get(4))
- fps = cap.get(cv2.CAP_PROP_FPS)
- export_cap = cv2.VideoWriter(output_video, fourcc, fps, (width, height), True)
- while True:
- ret, img_frame = cap.read()
- if not ret:
- break
- # 对视频帧进行推理
- image_pred = infer_frame_with_vis(img_frame, model, labels_dict, cfg, bgr2rgb=True)
- export_cap.write(image_pred) # 写入视频
- image_widget.value = img2bytes(image_pred)
- export_cap.release()
-
- video_path = 'racing.mp4'
- infer_and_save_video(video_path, model, labels_dict, cfg)
如下图:
运行新加入的代码块,即可在推理结束后得到output.avi:
视频如下:
OrangePi AIpro测试视频
1、从官方提供的示例代码中的检测结果来看,视频非常流畅,从onnx模型可以看到图片分辨率是640x640,这个分辨率下能有这个表现,很惊艳;
2、OrangePi AIpro给了我很惊艳的感觉,可能以前都没怎么接触过边缘部署的原因,总是主观认为没有GPU很难在工业场景下达到实时检测的同时保持好的检测效果,但是OrangePi AIpro给我的感觉是可以,个人觉得OrangePi AIpro会在工业场景下有非常亮眼的表现。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。