龙芯2K1000+AI,实现自主边缘计算实例开发

 技术方案     |      2021-08-19 09:00:23    |      小(xiǎo)编
边缘计算、人工智能(néng)是電(diàn)子信息领域的研究和应用(yòng)热点,使用(yòng)龙芯2K1000配合松科(kē)智能(néng)國(guó)产神经网络加速棒,可(kě)以实现在嵌入式边缘计算领域的AI算力支撑。

开发教程

▶ 环境搭建

1. 设备准备
龙芯2K1000设备采用(yòng)了龙芯教育派作為(wèi)主控硬件平台,实现用(yòng)户端配置功能(néng)龙芯教育派是基于龙芯2K1000处理(lǐ)器的软硬件全开源教育产品。

详情可(kě)访问 http://www.loongnix.cn/index.php/%E9%BE%99%E8%8A%AF%E6%95%99%E8%82%B2%E6%B4%BE


图片



功能(néng)

描述

CPU

龙芯2K1000处理(lǐ)器

内存

板载2GB DDR3,主频400Mhz

BIOS

32Mb SPI FLASH

GPIO

2.54mm间距22路GPIO双排插针

网络

1个千兆自协商(shāng)网口(标准RJ45)

USB

2路USB2.0,2路USB3.0

EJTAG

1个EJTAG调试接口(预留)

接口

2路CAN接口,4路串口(LVTTL*3,RS232*1),4路PWM,2路I2C,1路SPI(2个片选)

显示和音频接口

1路HDMI(TYPE A接口) br 1路3.5mm國(guó)际的音频输入/输出接口

外存

M.2接口 16GB SSD硬盘

電(diàn)源

5V,至少2A,TYPE C接口

按键

一个硬件复位按键

尺寸

100mm*100mm



SKTPU1000 1V0 TPU,是一款自主的、高性能(néng)的、通用(yòng)神经网络加速棒。同时支持 X86 平台、ARM 平台、龙芯平台等主流平台的运行。其内置 CNN 网络加速引擎,可(kě)以实现高性能(néng)、低功耗的 CNN 网络模型的加速。TPU 架构设计先进,可(kě)以高效完成多(duō)路动态视频流的人脸检测、跟踪、特征提取和识别,高效支持墨镜、口罩、性别、年龄等属性检测,提供强大的可(kě)编程运算能(néng)力,满足 CNN 算法实时性处理(lǐ)的运算要求。其内置芯片有(yǒu)自定义指令集和编程框架,除可(kě)运行人脸识别算法外,还支持其他(tā)主流的CNN 算法移植,包括服装识别、表情识别、背包识别等。同时也支持其他(tā)计算机视觉 CNN 算法移植和应用(yòng)。

图片
2. 電(diàn)源要求
龙芯教育派可(kě)以為(wèi)加速棒供電(diàn),教育派功耗在8W左右,加速棒功耗在3W左右,電(diàn)源可(kě)以使用(yòng)5V 3A的快充Type-C電(diàn)源供電(diàn),这次使用(yòng)的是小(xiǎo)米的快充。

龙芯教育派和松科(kē)智能(néng)TPU已完成兼容适配认证并上線(xiàn)電(diàn)商(shāng)平台ICeasy,可(kě)以直接访问www.iceasy.com購(gòu)买。




3. 硬件连接


图片



先连接 HDMI 显示接口,再接入 USB 摄像头和加速棒,尽量避免热插拔,接入完后再上電(diàn)操作。




4.软件部署
本次部署预设的人脸识别SDK,用(yòng)户也可(kě)以自行训练模型后进行部署。
参考资料可(kě)以访问
http://community.gdsoke.com/#/?index=0



(1)加速棒人脸识别SDK DEFaceR 目录结构如下



图片


├── 3rdparty:三方库源码和安装文(wén)件

├── include:SDK 头文(wén)件

├── lib:SDK 库和依赖库

├── bin:SDK 工具

├── dp1000:dp1000 芯片侧组件

├── build:demo 应用(yòng)

├── src:demo 源码

├── deploy.sh:部署芯片侧组件脚本

├── run.sh:运行 demo 程序脚本

└── ReadMe.txt:本文(wén)件



(2)环境设置
由于 host 与 device 之间通讯需要操作权限,所以首先需要切换到 root 用(yòng)户 把 DEFaceR 固件包拷贝在教育派上,cd DEFaceR 目录输入 su 进入 root 权限
需要先声明环境变量 HOST_CPU,HOST_CPU 取决于 host 侧 CPU 类型,例如 CPU 為(wèi) loongson,则可(kě)以执行:# export HOST_CPU=loongson

(3)编译 demo
在根目录执行 make 直接编译,应用(yòng)程序安装在 build/$(HOST_CPU)目录下
如果需要重新(xīn)编译三方库,可(kě)在 3rdparty 目录下通过 build 脚本编译

(4)部署芯片侧组件
将芯片板接到主控上,根据芯片硬件模块类型烧写芯片固件版本 。短接電(diàn)路板上跳帽,重启,执行 # sh burn_nand.sh mini-pcie等待到提示 download dp1000 -> OK 时,拔掉短接跳帽,重启,等待 1 分(fēn)钟后, lsusb 能(néng)看到 Linux-USB "Gadget Zero"设备 。

(**此步骤在TPU出厂前已经完成,正常情况下用(yòng)户不需执行以上操作)

执行部署脚本,将芯片侧组件传输到芯片侧 # sh deploy.sh。
DEFaceR 目录下使用(yòng) sh deploy.sh 命令部署模型:

图片

5.运行Demo
配置参数,打开 build/$(HOST_CPU)目录下有(yǒu)个 setting.ini,根据提示修改需要的配置 参数 部署完,运行命令 sh run.sh 启动 Demo 等待加载。

图片
為(wèi)便于展示识别功能(néng),demo 程序提供了人员入库途径,用(yòng)户可(kě)以将照片拷贝至 build/$(HOST_CPU)/face_image 目录下,当 demo 程序启动时,会遍历 build/$(HOST_CPU)/face_image 目录 如果存在照片,则以文(wén)件名(不包含后缀,程序内部会自动去掉后缀)為(wèi)人员姓名入 库, 入库成功的照片会被拷贝至 build/$(HOST_CPU)/face_image/ok 目录,否则拷贝至 build/$(HOST_CPU)/face_image/error 目录。如果入库失败,则说明照片不符合要求。

常见的照片问题如下:
A.无法检测到人脸 
B.人脸太小(xiǎo),小(xiǎo)于 100 个像素
C.人脸模糊不清

入库成功的人员信息保存在 build/$(HOST_CPU)/facedb.db 数据库文(wén)件中,下次启动就不用(yòng)重新(xīn)入库,同时也可(kě)以通过删除 build/$(HOST_CPU)/facedb.db 文(wén)件来清库。





Tag: AI 2K1000 人脸识别 人工智能(néng) 机器视觉

分(fēn)享上面的二维码给朋友,即可(kě)直达此页!