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 活跃…

如何优化大文件读取时的性能

1、分块读取 1、不要一次性将整个文件加载到内存中,而是将其分割成多个较小的块(例如,每块1MB或更大),然后逐块读取和处理。 2、使用FileInputStream和BufferedInputStream来分块读取文件。 2、使用缓冲区 1、使用…

代码随想录——合并二叉树(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) …

多线程知识04

新建 T1、T2、T3 三个线程,如何保证它们按顺序执行 在Java中,可以使用线程的join()方法来保证线程的顺序执行。join()方法会将线程暂停,直到调用该方法的线程结束执行为止。 以下是创建T1、T2、T3三个线程,并按顺序执行的示例代码…

python项目的数据库迁移工具,类似于Flyway的数据库迁移工具有那些?

Python项目中常用的数据库迁移工具主要有以下几种: Alembic: 这是一个轻量级的数据库迁移工具,主要用于SQLAlchemy项目。它通过版本控制来跟踪和管理数据库模式的变更。 Django Migrations: Django框架自带的迁移工具,用于创建和应用数据库模式变更。 Flask-Migrate: 基于Ale…

《探索 IT 行业的无限可能》

你眼中的IT行业现状与未来趋势 随着技术的不断进步,IT行业已成为推动全球经济和社会发展的关键力量。从云计算、大数据、人工智能到物联网、5G通信和区块链,这些技术正在重塑我们的生活和工作方式。你眼中IT行业的现状及未来发展趋势是怎么样的&#xf…

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

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

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

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

spring boot 之 接口参数校验

引入pom依赖 <!--参数校验--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId> </dependency>统一返回结果封装 import lombok.Data;import java.io.Serializa…

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

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

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

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

可变参数函数

可变参数函数指的是函数的参数个数可变&#xff0c;参数类型不定的函数。 C提供了两种主要的方法&#xff1a; &#xff08;1&#xff09;如果所有的实参类型相同&#xff0c;可以传递一个名为initializer_list的标准库类型。 &#xff08;2&#xff09;如果所有的实参类型不完…

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

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

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

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

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

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

武大深度学习期末复习-常见神经网络概念

深度学习经典神经网络概念、优缺点及应用场景 文章目录 一、多层感知机&#xff08;MLP&#xff09;1.1 结构和原理1.2 优缺点1.3 应用场景 二、卷积神经网络&#xff08;CNN&#xff09;2.1 结构和原理2.2 优缺点2.3 应用场景 三、循环神经网络&#xff08;RNN&#xff09;3.1…

15.微信小程序之async-validator 基本使用

async-validator是一个基于 JavaScript 的表单验证库&#xff0c;支持异步验证规则和自定义验证规则 主流的 UI 组件库 Ant-design 和 Element中的表单验证都是基于 async-validator 使用 async-validator 可以方便地构建表单验证逻辑&#xff0c;使得错误提示信息更加友好和…

#笔记#笔记#其他

大鱼论文是一款非常靠谱、方便、值得推荐的论文写作工具。无论是在学术研究中还是在日常写作中&#xff0c;大鱼论文都能够帮助用户轻松完成论文的写作工作。 首先&#xff0c;大鱼论文提供了强大的查重降重功能&#xff0c;能够帮助用户快速定位论文中可能存在的抄袭问题&…

Xcode 15 libarclite 缺失问题

升级到Xcode 15运行项目报错&#xff0c;报错信息如下&#xff1a; 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…