OrangePi Kunpeng Pro ——信创再接力

文章目录

  • OrangePi Kunpeng Pro ——信创再接力
    • 1. 绪论
      • 1.1 开箱
    • 2. 硬件介绍
      • 2.1 硬件配置
      • 2.2 硬件清单
    • 3. 网络测试
      • 3.1 有线连接
      • 3.2 WIFI连接
    • 4.查看系统配置
    • 5. 安装常用软件
      • 5.1 安装python
        • 5.1.1 更换pip源为国内清华源
      • 5.2 安装docker
      • 5.3 安装opencv
      • 5.4 安装dlib
    • 6.CPU多进程能力测试
    • 7. 测评总结

OrangePi Kunpeng Pro ——信创再接力

1. 绪论

​ 最近收到CSDN邀请,对OrangePi Kunpeng Pro 进入深入测评体验,感谢CSDN送来的OrangePi Kunpeng Pro开发板。作为AI开发者,我之前主要从事信创支持工作,曾经使用过寒武纪、昇腾、瑞芯微等厂商的开发板。这次收到新款的OrangePi Kunpeng Pro开发板,我感到非常兴奋,并决定展开一系列详细的测评。通过这次试用,我希望能够深入了解这款开发板的性能和应用潜力,并与大家分享我的开发经验和心得体会。

1.1 开箱

开机示例图,配置充电线:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

系统打开界面图,采用开源OpenEuler系统,连接WIFI:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2. 硬件介绍

2.1 硬件配置

OrangePi Kunpeng Pro是一款基于ARM架构的高性能开发板,配备了强大的处理器和丰富的接口,适用于物联网、智能家居、机器人等多种应用场景。其主要特点包括:

  • 高性能处理器:采用4核64位处理器+AI处理器,集成图形处理器,支持8TOPS AI算力,拥有8GB/16GB LPDDR4X,可以外接32GB/64GB/128GB/256GB eMMC模块,支持双4K高清输出。本次收到OrangePi Kunpeng Pro为8GB+32GB.
  • 丰富接口,包括两个HDMI输出、GPIO接口、Type-C电源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB(串口打印调试功能)、两个MIPI摄像头、一个MIPI屏等,预留电池接口等。
  • 支持信创:支持openEuler操作系统,开箱默认安装;
  • AI推理能力:满足大多数AI算法原型验证、推理应用开发的需求,同时可以为各种应用场景提供更高效的算力,如云计算、大数据、分布式存储、高性能计算等。

2.2 硬件清单

名称类型
处理器4 核 64 位 Arm 处理器(鲲鹏)
内存类型: LPDDR4X
容量: 8 G B 8 G B 8GB 16 G B 16 G B 16GB
存储板载 32MB 的 SPI Flash
Micro SD 卡插槽
eMMC 插座: 可外接 eMMC 模块
M. 2 M-Key 接口: 可接 2280 规格的 NVMe SSD 或 SATA SSD
以太网支持 10 / 100 / 1000 M b p s 10 / 100 / 1000 \mathrm{Mbps} 10/100/1000Mbps
・板载 PHY 芯片: RTL8211F
Wi-Fi+蓝牙支持 2.4 G 2.4 \mathrm{G} 2.4G 5 G 5 \mathrm{G} 5G 双频 WIFI
- BT4. 2
模组: 欧智通 6221 B U U C 6221 \mathrm{BUUC} 6221BUUC
USB2 个 USB3. 0 Host 接口
1 个 Type-C 接口 (只支持 USB3.0, 不支持 USB2.0)
摄像头2 个 MIPI CSI 2 Lane 接口
显示2 个 HDMI 接口
1 个 MIPI DSI 2 Lane 接口
音频1 个 3.5 m m 3.5 \mathrm{~mm} 3.5 mm 耳机孔, 支持音频输入输出

img

3. 网络测试

3.1 有线连接

连接本地网线,通过ssh登录

ssh openEuler@192.168.x.x

登录成功后,通过ifconfig查看分配的网络地址

ifconfig

image-20240528203610592

3.2 WIFI连接

查看周围热点信息;

nmcli dev wifi

image-20240528204339071

4.查看系统配置

lacpu

image-20240528205252932

# 查看内存信息
free -h 

image-20240528210506619

## 查看
lsblk 

image-20240528210609155

## 查看npu
npu-smi info
### 发现这里初始化的时候npu驱动出现问题,后续更新;

image-20240528210814422

5. 安装常用软件

5.1 安装python

5.1.1 更换pip源为国内清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.trusted-host https://pypi.tuna.tsinghua.edu.cn

image-20240528213631935

5.2 安装docker

​ 开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的操作系统上,也可以实现虚拟化部署。

sudo yum install docker -y

image-20240528213610689

# 查看docker -v 版本
docker -v 

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

5.3 安装opencv

​ OpenCV是开源计算机视觉库的简称,是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

pip install opencv-python

image-20240528215753485

import cv2
print(cv2.__version__)

image-20240528232519316

5.4 安装dlib

​ Dlib,包含用于在C ++中创建复杂软件以解决实际问题的机器学习算法和工具。广泛应用于工业界和学术界,包括机器人,嵌入式设备,移动电话和大型高性能计算环境。

pip3 install  dlib

image-20240528221540071

运行一下程序,基于opencv和dlib库实现人脸嘴、眉毛 等部位;

#导入工具包
from collections import OrderedDict
import numpy as np
import argparse
import dlib
import cv2#https://ibug.doc.ic.ac.uk/resources/facial-point-annotations/
#http://dlib.net/files/# 参数
ap = argparse.ArgumentParser()
ap.add_argument("-p", "--shape-predictor", default="shape_predictor_68_face_landmarks.dat",help="path to facial landmark predictor")
ap.add_argument("-i", "--image", default="images/liudehua2.jpg",help="path to input image")
args = vars(ap.parse_args())FACIAL_LANDMARKS_68_IDXS = OrderedDict([("mouth", (48, 68)),("right_eyebrow", (17, 22)),("left_eyebrow", (22, 27)),("right_eye", (36, 42)),("left_eye", (42, 48)),("nose", (27, 36)),("jaw", (0, 17))
])FACIAL_LANDMARKS_5_IDXS = OrderedDict([("right_eye", (2, 3)),("left_eye", (0, 1)),("nose", (4))
])def shape_to_np(shape, dtype="int"):# 创建68*2coords = np.zeros((shape.num_parts, 2), dtype=dtype)# 遍历每一个关键点# 得到坐标for i in range(0, shape.num_parts):coords[i] = (shape.part(i).x, shape.part(i).y)return coordsdef visualize_facial_landmarks(image, shape, colors=None, alpha=0.75):# 创建两个copy# overlay and one for the final output imageoverlay = image.copy()output = image.copy()# 设置一些颜色区域if colors is None:colors = [(19, 199, 109), (79, 76, 240), (230, 159, 23),(168, 100, 168), (158, 163, 32),(163, 38, 32), (180, 42, 220)]# 遍历每一个区域for (i, name) in enumerate(FACIAL_LANDMARKS_68_IDXS.keys()):# 得到每一个点的坐标(j, k) = FACIAL_LANDMARKS_68_IDXS[name]pts = shape[j:k]# 检查位置if name == "jaw":# 用线条连起来for l in range(1, len(pts)):ptA = tuple(pts[l - 1])ptB = tuple(pts[l])cv2.line(overlay, ptA, ptB, colors[i], 2)# 计算凸包else:hull = cv2.convexHull(pts)cv2.drawContours(overlay, [hull], -1, colors[i], -1)# 叠加在原图上,可以指定比例cv2.addWeighted(overlay, alpha, output, 1 - alpha, 0, output)return output# 加载人脸检测与关键点定位
detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor(args["shape_predictor"])# 读取输入数据,预处理
image = cv2.imread(args["image"])
(h, w) = image.shape[:2]
width=500
r = width / float(w)
dim = (width, int(h * r))
image = cv2.resize(image, dim, interpolation=cv2.INTER_AREA)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 人脸检测
rects = detector(gray, 1)# 遍历检测到的框
for (i, rect) in enumerate(rects):# 对人脸框进行关键点定位# 转换成ndarrayshape = predictor(gray, rect)shape = shape_to_np(shape)# 遍历每一个部分for (name, (i, j)) in FACIAL_LANDMARKS_68_IDXS.items():clone = image.copy()cv2.putText(clone, name, (10, 30), cv2.FONT_HERSHEY_SIMPLEX,0.7, (0, 0, 255), 2)# 根据位置画点for (x, y) in shape[i:j]:cv2.circle(clone, (x, y), 3, (0, 0, 255), -1)# 提取ROI区域(x, y, w, h) = cv2.boundingRect(np.array([shape[i:j]]))roi = image[y:y + h, x:x + w](h, w) = roi.shape[:2]width=250r = width / float(w)dim = (width, int(h * r))roi = cv2.resize(roi, dim, interpolation=cv2.INTER_AREA)# 显示每一部分cv2.imshow("ROI", roi)cv2.imshow("Image", clone)cv2.waitKey(0)# 展示所有区域output = visualize_facial_landmarks(image, shape)cv2.imshow("Image", output)cv2.waitKey(0)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

6.CPU多进程能力测试

基于python 脚本执行OrangePi Kunpeng Pro CPU ;创建3个进程分别执行冒泡排序算法并测量执行时间进行测试。

import time
import random
import multiprocessingdef bubble_sort(arr):n = len(arr)for i in range(n):for j in range(0, n-i-1):if arr[j] > arr[j+1]:arr[j], arr[j+1] = arr[j+1], arr[j]def measure_performance():arr = [random.randint(0, 10000) for _ in range(10000)]start_time = time.time()bubble_sort(arr)end_time = time.time()return end_time - start_timedef process_task(process_id):execution_time = measure_performance()print(f"进程 {process_id} 冒泡排序算法执行时间: {execution_time:.5f} 秒")if __name__ == "__main__":processes = []for i in range(3):process = multiprocessing.Process(target=process_task, args=(i,))processes.append(process)process.start()for process in processes:process.join()
  1. bubble_sort函数执行冒泡排序算法。
  2. measure_performance函数生成一个随机数组并测量冒泡排序的执行时间。
  3. process_task函数是每个进程要执行的任务,它调用measure_performance并打印执行时间。
  4. 主程序创建并启动3个进程,每个进程执行一次冒泡排序算法,并等待所有进程完成。

image-20240528230658257

7. 测评总结

​ 编译和运行环境编译工具,支持 cmake、c++ 编译环境,运行环境,可以运行Python;扩展性接口丰富;OrangePi Kunpeng Pro配备了多种接口和扩展槽,提供了灵活的扩展性,能够满足不同的应用需求。从开发板到小型服务器都可以胜任。系统表现稳定性上,在实际应用中,OrangePi Kunpeng Pro测试冒泡排序,CPU执行稳定,多进程能力执行稳定;

​ 本来这次想测试AI能力的,官方文档上面没找到该板子的AI推理相关内容,希望后续补充吧,能够测试推理AI模型;openEuler 系统的应用,在打开应用后,应用软件没有放大窗口按钮,测试代码案例中,容易出现核转储问题,生态社区、兼容性还需要加强;

总体来说,还是一款性能非常强劲且功能齐全的板子,期待有更多的使用案例及生态输出;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode //C - 143. Reorder List

143. Reorder List You are given the head of a singly linked-list. The list can be represented as: L0 → L1 → … → Ln - 1 → Ln Reorder the list to be on the following form: L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → … You may not modify the values i…

MVCC机制

个人理解篇,不一定对,应付面试的时候看的 MVCC(Multi-Version Concurrency Control)全称多版本并发控制,主要用在隔离模式下的提交读、可重复读模式下,依赖于readview和undolog链 一、readview 1、结构 字段 备注 m_ids 活跃…

代码随想录——合并二叉树(Leetcode617)

题目链接 层序遍历 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) …

工业制造企业为什么要进行数字化转型

人人都在谈数字化转型,政府谈数字化策略方针,企业谈数字化转型方案,员工谈数字化提效工具。互联网企业在谈,工业企业也在谈。 在这种大趋势下,作为一个从事TOB行业十年的老兵,今天就来给大家讲讲&#xff…

【C/C++基础实战】:用C++实现通讯录管理系统——含完整源码

文章目录 通讯录管理系统一、系统需求以及成品演示二、代码实现三、完整代码 通讯录管理系统 一、系统需求以及成品演示 1.1 系统需求 通讯录是一个可以记录亲人、好友信息的工具。这里利用C来实现一个通讯录管理系统 系统中需要实现的功能如下: 添加联系人&am…

申请的商标名称相同或近似,如何解决!

最近遇到一些首次申请注册商标的主体,基本想的名称都是两个字或或者两个字加通用词,还有用的行业描述词或缺乏显著特征词,这样去申请注册商标,普推知产老杨分析这样去直接申请注册大概率驳回。 两个字基本上注册的差不多了&#…

Ubuntu 20.04中用scrapy爬取博客园新闻首页的简单示例

一、梳理scrapy项目目录创建: 1、命令行终端定位到pycharm主目录:cd PycharmProjects 2、建立项目名称:scrapy startproject searchArticle 3、定位到项目目录下:cd searchArticle 4、设置爬虫名称与欲爬取的域名地址&#xf…

为什么c语言不对0和NULL做严格的区分?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「c语言的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!这个答案很简单:c语言不区分…

上海亚商投顾:沪指冲高回落 电力、电网产业链持续爆发

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指昨日震荡调整,深成指、创业板指均跌超1%。电力、电网股再度爆发,众智科技、郴电国…

展望跨境智慧银行在全球化金融服务中的发展趋势和机遇

一、引言 随着全球经济的不断融合和金融科技的迅猛发展,跨境智慧银行作为连接不同国家和地区金融市场的桥梁,正逐渐展现出其独特的魅力和潜力。跨境支付与结算作为跨境智慧银行的核心业务之一,随着全球化的深入发展和国际贸易的日益频繁,其业务场景也愈发丰富和复杂。本文…

Xcode 15 libarclite 缺失问题

升级到Xcode 15运行项目报错,报错信息如下: SDK does not contain libarclite at the path /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a; try increasing the minimum d…

基于PHP+MySQL组合开发的720VR全景小程序源码系统 一键生成三维实景 前后端分离带网站的安装代码包以及搭建教程

系统概述 这款源码系统是专门为实现 720VR 全景展示而设计的。它结合了先进的技术和创新的理念,能够将真实场景以全景的形式呈现给用户,让用户仿佛身临其境。该系统采用 PHP 进行后端开发,MySQL 作为数据库管理系统,确保了系统的…

G60-M60F-ZQ手动抓取快速接头,专用于吊装设备的重物快速抓取

客户需求概述: 客户需要将重达将近400公斤的产品从一个工作台移动至另一个工作台,目前的方法是通过人工将吊环的螺纹与产品的螺纹相互拧紧,然后利用装备吊起移动,但这种方式效率低下,且因为工人的操作有时难以达到理想…

使用vanna实现Text2SQL

这节一起用vanna来实现自然语言转SQL,之前的大模型一直停留在问答阶段,答案基本都是大模型提供的,至多是加点本地知识库,tet,pdf等文档,丰富大模型的内容,但是想要大模型与一些管理系统对接还是…

XDebug配置极简教程,phpstorm实现http请求断点调试

写这篇的文章的初衷:网络上配置XDebug的文章有很多,XDebug也有官方的文档, PhpStorm也有官方的文档,为什么还要写那? 相信不少人,都有一种感觉,虽然教程很多,但是按教程走一遍,自己的确不能正常调试。 问题出在下面几个方面: 1. 对调试过程中,没有一定的认识,因此…

使用ETL读取文件数据并快速写入mysql中

本文介绍使用国产的ETL工具ETLCloud平台来读取文件文件中的数据到mysql数据库中,首先需要安装ETLCloud的社区版本,然后在示例应用中创建一个文件读取流程如下: 点击“流程设计”后打开流程图如下 打开文本文件读取节点配置要读取的文件目录和…

刷代码随想录有感(82):贪心算法——摆动序列

题干&#xff1a; 代码&#xff1a; class Solution { public:int wiggleMaxLength(vector<int>& nums) {if(nums.size() < 1)return nums.size();int prediff 0;int curdiff 0;int res 1;for(int i 0; i < nums.size() - 1; i){curdiff nums[i 1] - nu…

【美羊羊拿金币问题】

问题&#xff1a; 有一天美羊羊正在草地上玩耍&#xff0c;突然天上开始落金币&#xff0c;这些金币掉落的范围在一个固定的水平区域内&#xff0c;但这些金币一旦掉落到地上就消失了&#xff0c;因此美羊羊只有不断地移动并从空中接住这些金币才能得到它们。假设金币掉落的位…

【OCPP】ocpp1.6协议第3.13章节SmartCharging介绍及翻译

目录 3.13 SmartCharging智能充电-概述 智能充电的目标 关键功能 消息类型 负载管理 动态电量配置 总结 3.13 SmartCharging智能充电-译文 3.13.1 Charging Profile Purpose充电配置的目的 3.13.2 Stacking charging profile堆叠充电配置 3.13.3 Combining charging profile pu…

OrangePi AIpro开发板,使用了310B,昇腾310B较于昇腾310有何性能提升?

OrangePi AIpro开发板 他们对应的模组分别是&#xff1a;Atlas 200 AI和Atlas 200I A2 310&#xff1a;基本规格 - Atlas 200 AI加速模块 用户指南 14 - 华为 (huawei.com) 310B&#xff1a;基本规格 - Atlas 200I A2 加速模块 用户指南 04 - 华为 (huawei.com)