logo资料库

K210_Sipeed Maix Dock教程文档pro.pdf

第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
资料共11页,剩余部分请下载后查看
K210 实现人脸关键点检测教程 第一章:K210 芯片介绍 K210 是嘉楠科技 2018 年 9 月开始商用基于 RISC—V 架构和神经网络加速器 KPU 的双核 64 位 CPU,采用台积电 28nm 制程实现运行频率在 400MHz,算力达到 1TOPS。 K210 芯片主要是基于 SiFive 和 UCBerkeley 开源的 Rocket Core 实现 ARM Cortex-A5 性能。该芯片下一代 K510 芯片会支持 Linux、GCC、Glibc。K510 同 样采用 28nm 工艺但在芯片架构方面使用 RSIC-V 的多核异构处理架构。同时改良 KPU 加入全新设计计算模块 GNNE。第三代芯片计划采用 12nm 工艺实现 5G 云计算 与边缘计算。目前该芯片用在计算机视觉边缘计算、语音识别、STEAM 教育方面。 同时 A1166 是嘉楠科技在 2013 年基于 ASIC 研发 16nm、7nm 的区块链和比特 币矿机芯片。 该芯片的主要开发板厂家有常见的 Sipeed 和 PyAi-K210 及 BPI-K210。
Sipeed maix dock k210 操作教程: 第一步:下载烧录工具 Kflash_gui https://dl.sipeed.com/MAIX/tools/kflash_gui/kflash_gui_v1.6.5 https://github.com/sipeed/kflash_gui/releases/tag/v1.5.3 第二步:下载烧录驱动更新文件 ken_gen.bin 第三步:连接好板卡使用烧录工具烧录驱动文件
第四步:安装 COM 端口访问工具获取端口机器码 在此处就是获取的机器码 如图无法获取按住板卡上蓝色的灯(复位键)后还没法获取时候重新烧录一下 ken_en.bin
文件,该文件类似一个 key 验证码然后获取机器码原理是加密狗原理。 第五步:获取官方测试模型 https://www.maixhub.com/index.php/index/user/download/id/22 输出机器码验证或者在 MaixHub 网站找到自己想测试的模型文件夹 kfpkg 文件解压后如下: 根据以上文件的文件名称可以看出本次下载的为三个权重文件一个配置文件 json,一个简化 版的 maixpy 的 bin 文件。 第六步:使用烧录工具烧录模型驱动程序 kfpkg 包
第七步:安装程序 IDE 开始测试 https://dl.sipeed.com/MAIX/MaixPy/ide/v0.2.5 这里还可以下载一个模型 https://github.com/sipeed/MaixPy/releases 本教程使用的模型和代码是通过注册登录获取 https://www.maixhub.com/index.php/index/user/download/id/22
程序运行代码下载: https://github.com/sipeed/MaixPy_scripts/blob/master/machine_vision/demo_face_recogniti on.py 按 boot 键可以录入人脸,录入人脸后会按顺序分配名字,识别到后会显示出来 第八步:安装板卡 IDE 运行代码 将下载好的代码读入 IDE 然后选择 : 2020/8/28 16:02 # -*- coding: utf-8 -*- # @Time # @Author : Jungang An! # @FileName: facepoint.py # @Software: PyCharm import sensor,image,lcd # import 相关库 import KPU as kpu import time from Maix import FPIOA,GPIO task_fd = kpu.load(0x200000) # 从 flash 0x200000 加载人脸检测模型 task_ld = kpu.load(0x300000) # 从 flash 0x300000 加载人脸五点关键点检测模型 task_fe = kpu.load(0x400000) # 从 flash 0x400000 加载人脸 196 维特征值模型 clock = time.clock() # 初始化系统时钟,计算帧率
key_pin=16 # 设置按键引脚 FPIO16 fpioa = FPIOA() fpioa.set_function(key_pin,FPIOA.GPIO7) key_gpio=GPIO(GPIO.GPIO7,GPIO.IN) last_key_state=1 key_pressed=0 # 初始化按键引脚 分配 GPIO7 到 FPIO16 def check_key(): # 按键检测函数,用于在循环中检测按键是否按下,下降沿有效 global last_key_state global key_pressed val=key_gpio.value() if last_key_state == 1 and val == 0: key_pressed=1 else: key_pressed=0 last_key_state = val lcd.init() # 初始化 lcd sensor.reset() #初始化 sensor 摄像头 sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.set_hmirror(1) #设置摄像头镜像 sensor.set_vflip(1) #设置摄像头翻转 sensor.run(1) #使能摄像头 anchor = (1.889, 2.5245, 2.9465, 3.94056, 3.99987, 5.3658, 5.155437, 6.92275, 6.718375, 9.01025) #anchor for face detect 用于人脸检测的 Anchor dst_point = [(44,59),(84,59),(64,82),(47,105),(81,105)] #standard face key point position 标准正脸的 5 关键点坐标 分别为 左眼 右眼 鼻子 左嘴角 右嘴角 a = kpu.init_yolo2(task_fd, 0.5, 0.3, 5, anchor) #初始化人脸检测模型 img_lcd=image.Image() # 设置显示 buf img_face=image.Image(size=(128,128)) #设置 128 * 128 人脸图片 buf a=img_face.pix_to_ai() # 将图片转为 kpu 接受的格式 record_ftr=[] #空列表 用于存储当前 196 维特征 record_ftrs=[] #空列表 用于存储按键记录下人脸特征, 可以将特征以 txt 等文件形式保 存到 sd 卡后,读取到此列表,即可实现人脸断电存储。 names = ['Mr.1', 'Mr.2', 'Mr.3', 'Mr.4', 'Mr.5', 'Mr.6', 'Mr.7', 'Mr.8', 'Mr.9' , 'Mr.10'] # 人名标签,与上面列表特征值一一对应。 while(1): # 主循环 check_key() #按键检测 img = sensor.snapshot() #从摄像头获取一张图片 clock.tick() #记录时刻,用于计算帧率 code = kpu.run_yolo2(task_fd, img) # 运行人脸检测模型,获取人脸坐标位置 if code: # 如果检测到人脸 for i in code: # 迭代坐标框 # Cut face and resize to 128x128
分享到:
收藏