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*2
	coords = 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 coords

def visualize_facial_landmarks(image, shape, colors=None, alpha=0.75):
	# 创建两个copy
	# overlay and one for the final output image
	overlay = 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):
	# 对人脸框进行关键点定位
	# 转换成ndarray
	shape = 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=250
		r = 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 multiprocessing

def 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_time

def 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 系统的应用,在打开应用后,应用软件没有放大窗口按钮,测试代码案例中,容易出现核转储问题,生态社区、兼容性还需要加强;

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

闲话 .NET(3):.NET Framework 的缺点

前言 2016 年,微软正式推出 .NET Core 1.0,并在 2019 年全面停止 .NET Framework 的更新。 .NET Core 并不是 .NET Framework 的升级版,而是一个从头开始开发的全新平台,一个跟 .NET Framework 截然不同的开源技术框架。 微软为…

计算属性与监听属性

【 1 】计算属性 计算属性大致就是这样 # 1 计算属性是基于它们的依赖进行缓存的# 2 计算属性只有在它的相关依赖发生改变时才会重新求值# 3 计算属性就像Python中的property,可以把方法/函数伪装成属性 # 计算属性本质上是一个函数,它们可以通过 get…

UML 在 vs-code上的快速使用

UML 在 vs-code上的快速使用 1.软件准备工作2.创建第一张甘特图2.1 创建 UML文件: xxxx. puml2.2 输入甘特图代码2.3 VS code 生成甘特图 结束 。 1.软件准备工作 使用的软件为:VS CODE使用插件 : PluntUML2.创建第一张甘特图 2.1 创建 UML文件: xxxx. …

基于python flask的疾病数据采集与可视化大屏,实现关联规则算法的治疗方法分析

背景 基于Python Flask的疾病数据采集与可视化大屏,旨在实现对疾病数据的采集、分析和可视化展示,为医疗领域提供决策支持和治疗方法分析。其中,关联规则算法被应用于治疗方法分析,旨在发现不同治疗方式之间的关联性和规律性&…

容器监控方案

1、docker部署prometheus Prometheus是一套开源的系统监控报警框架,它基于时序数据库,并通过HTTP协议周期性地从被监控的组件中抓取指标数据。以下是一些关于Prometheus的详细介绍: 基本概念:Prometheus所有采集的监控数据均以指…

阿里开源React应用动效解决方案:ant-motion

ant-motion:简化动效开发,提升用户体验 - 精选真开源,释放新价值。 概览 Ant Motion是由Ant Design团队精心打造,专为React应用设计的动画规范和组件库。它不仅仅是一套动画规范,更是一个完整的解决方案,旨…

[SCTF2019]Who is he

unity 游戏,直接输入字符串 直接修改 if 判断,看能不能直接输出flag 修改了程序逻辑,但还是输出了 明明已经把这个 if 删了 不知道为什么还会输出这串字符 应该程序还有什么引入吧,看 wp 应该先查一下程序的动态链接库 DLL 是…

探讨大米自动化生产线包装设备的智能化发展趋势

随着科技的飞速发展,智能化已经成为各行各业转型升级的重要方向。在大米生产领域,自动化生产线包装设备的智能化发展更是引领着粮食产业的未来潮流。星派将从智能化技术、市场需求、发展趋势等方面,探讨大米自动化生产线包装设备的智能化发展…

22.Volatile原理

文章目录 Volatile原理1.Volatile语义中的内存屏障1.1.volatile写操作的内存屏障1.1.1.StoreStore 屏障1.1.2.StoreLoad 屏障 1.2.volatile读操作的内存屏障1.2.1.LoadStore屏障1.2.2.LoadLoad屏障 2.volatile不具备原子性2.1.原理 Volatile原理 1.Volatile语义中的内存屏障 在…

多模态大模型:系统、趋势与问题

引言 多模态大模型是当今人工智能领域的热门方向之一。它不仅能处理文本,还能理解和生成图像、视频、语音等多种模态的数据。这种能力使得多模态大模型在自然语言处理、计算机视觉等多个领域展示出巨大的潜力和应用价值。那么,多模态大模型是如何训练出…

web自动化-数据驱动与失败用例截图、失败重新运行

因为只有失败的用例需要截图,那么问题就是: 什么时候用例会失败? 数据驱动测试 我们前面覆盖到的用例都是正常的用例,如果要测试异常的用例呢? 我们来写一下登录的异常 场景:【login_page】 # 用户输入框…

vivado设置Vscode为默认编辑器

D:\vscode\Microsoft VS Code\Code.exe -g [file name]:[line number]

开源大模型与闭源大模型:谁将引领AI的未来?

前言 在AI领域,开源大模型和闭源大模型一直并存,各自有其独特的优势和挑战。下面,我们将从数据隐私、商业应用和社区参与三个方向,对这两种模型进行深入探讨。 一、数据隐私 开源大模型: 1. 透明度高: …

YoloV8实战:各种图绘制汇总(mAP50、mAP50-95、loss、PR_curve、F1_curve)|科研必备|绘图神器

摘要 本文的内容是告诉大家如何绘制mAP50、mAP50-95、loss、PR_curve、F1_curve等图像,方便大家写论文。 绘制mAP50、mAP50-95、loss等图。 先上效果,如下图: 首先将,训练的result.csv汇总到一个文件夹下面(这样方便寻找),要不然找起来太麻烦。如下图: 我都放到re…

The Sandbox 和 Bitkub 联手增强东南亚元宇宙中心

作为去中心化游戏虚拟世界和区块链平台的先驱,The Sandbox 正与泰国领先的区块链网络 Bitkub Blockchain Technology Co., Ltd. 展开创新合作。双方合作的目的是将Bitkub元宇宙的影响力扩展到The Sandbox,建立一个元宇宙中心,向用户承诺从 Bi…

5.28学习总结

java复习总结 hashcode()和equals() hashcode():在Object里这个方法是通过返回地址的整数值来生成哈希值。 equals():在Object里这个方法是通过比较他们的内存地址来确定两个对象是否相同。 运行效率:hashcode的时间复杂度为O(1)(因为只要计算一次哈…

搜维尔科技:【系统集成案例】三面CAVE系统案例

用户名称:成都东软学院 主要产品:工业激光投影机、光学跟踪系统、主动立体眼镜、主动式立体眼镜发生器 在4米x9米的空间内,通过三通道立体成像,对立体模型进行数字化验证,辅助unity课程设计。 立体投影大屏方案采用的…

颈源性头痛症状及表

颈源性头痛一般表现为,就是说从枕后一直颞侧,到太阳穴附近,这个是枕小的一个疼痛,还有一部分人从枕后,沿着一个弧线(如下图)的轨迹到了前额,到我们前额,这样一个疼痛&…

Aleth-NeRF: Illumination Adaptive NeRF with Concealing Field Assumption

Abstract Aleth-NeRF: 带有隐蔽场假设的照明自适应 NeRF 照明照明标准的神经辐射场(NeRF)范例采用了一种以观察者为中心的方法,将光照和材料反射的各个方面仅仅从3D 点发射纠缠在一起。这种简化的渲染方法在准确建模在不利光照条件下捕获的图像方面提出了挑战,如弱光或过度曝…

MFC 发起 HTTP Post 请求 发送MES消息

文章目录 获取Token将获取的Token写入JSON文件 将测试参数发送到http首先将测试参数写入到TestData.JSON文件rapidjson 库需要将CString 进行类型转换才能使用,将CString 转换为const char* 发送JSON 参数到http中,并且获取返回结果写入TestFinish.JSON文…