【二哈识图人工智能视觉传感器】测评之四人脸算法
<p> <span style="font-size:16px;"> 二哈HuskyLens识图目前硬件原理图和源代码不开源, 这个套件面向青少年创客。主控为勘智K210是嘉楠科技自主研发的一款边缘侧AI芯片,基于RISC-V架构,内置卷积神经网络加速器KPU。KPU可以实现人脸检测、人脸识别、图像识别、图像分类等机器视觉任务K210 的 KPU。简单来说就是 KPU 能加载和运行各种现成的 AI 算法模型,实现各种机器视 觉等功能。主要通过在 K210 的 KPU 上跑 YOLO(You Only Look Once)目标检测算法来实现。人脸识别采用基于YOLO的人脸检测算法和特征提取算法。 K210的KPU算力有0.8TOPS 。小小的芯片这个算力很厉害了。主要参数:</span></p><p></p>
<p><span style="font-size:16px;"> 人脸识别、特征学习 KPU 在 MaixPy 关键代码,二哈HuskyLens识图是不涉及复杂的AI算法,AI算法已经封装好了,创客拿来用就可以了。</span></p>
<pre>
<code>def face_recognize():
global flag_enter
global task_mask,task_ld,task_fe
global sum_3
global sum_4
global now_mode
img = sensor.snapshot()
code = kpu.run_yolo2(task_fd, img)
if code:
for i in code:
# Cut face and resize to 128x128
a = img.draw_rectangle(i.rect())
face_cut = img.cut(i.x(), i.y(), i.w(), i.h())
face_cut_128 = face_cut.resize(128, 128)
a = face_cut_128.pix_to_ai()
# a = img.draw_image(face_cut_128, (0,0))
# Landmark for face 5 points
fmap = kpu.forward(task_ld, face_cut_128)
plist = fmap[:]
le = (i.x() + int(plist * i.w() - 10), i.y() + int(plist * i.h()))
re = (i.x() + int(plist * i.w()), i.y() + int(plist * i.h()))
nose = (i.x() + int(plist * i.w()), i.y() + int(plist * i.h()))
lm = (i.x() + int(plist * i.w()), i.y() + int(plist * i.h()))
rm = (i.x() + int(plist * i.w()), i.y() + int(plist * i.h()))
a = img.draw_circle(le, le, 4)
a = img.draw_circle(re, re, 4)
a = img.draw_circle(nose, nose, 4)
a = img.draw_circle(lm, lm, 4)
a = img.draw_circle(rm, rm, 4)
# align face to standard position
src_point =
T = image.get_affine_transform(src_point, dst_point)
a = image.warp_affine_ai(img, img_face, T)
a = img_face.ai_to_pix()
# a = img.draw_image(img_face, (128,0))
del (face_cut_128)
# calculate face feature vector
fmap = kpu.forward(task_fe, img_face)
feature = kpu.face_encode(fmap[:])
reg_flag = False
scores = []
for j in range(len(record_ftrs)):
score = kpu.face_compare(record_ftrs, feature)
scores.append(score)
max_score = 0
index = 0
for k in range(len(scores)):
if max_score < scores:
max_score = scores
index = k
if max_score > 85:
a = img.draw_string(i.x(), i.y(), ("%s :%2.1f" % (
names, max_score)), color=(0, 255, 0), scale=2)
sum_3+=1
if sum_3 == 10:
uart_A.write(b'i')
print(sum_3)
sum_3=0
sum_4=0
now_mode = 0
else:
a = img.draw_string(i.x(), i.y(), ("X :%2.1f" % (
max_score)), color=(255, 0, 0), scale=2)#串口数据预留
sum_4+=1
if sum_4 == 10:
uart_A.write(b'j')
print(sum_4)
sum_3=0
sum_4=0
now_mode = 0
#特征值学习
if flag_enter==1 :
print('feature study')
#features_data = uart_A.read()
#if features_data:
#stu_name = features_data.decode('utf-8')
#print("stu_name=",stu_name)
with open("/sd/features.txt", "a") as f:
f.write(str(feature))#信息写入SD卡
record_ftrs.append(feature) #人脸特征追加到record_ftrs列表
#names.append(stu_name) #追加到姓名列表
f.write("\n")
f.close()
flag_enter=0
uart_A.write(b'i')
now_mode = 0
sum_3=0
sum_4=0
#写入sd卡
break
</code></pre>
<p><strong> <span style="font-size:16px;"> 下面进行</span></strong><span style="font-size:16px;">二哈HuskyLens识图<strong>测试:</strong></span></p>
<p><span style="font-size:16px;"><strong> 放一张女神刘亦菲:</strong></span></p>
<p><span style="font-size:16px;"> 将HuskyLenser二哈屏幕中央的“+”字对准需要学习的人脸,长按“学习按键”完成第一个人脸的学习(各个角度)。松开”学习按键“后,屏幕上会提示:”再按一次按键继续!按其他按键结束“。如要继续学习下一个人脸,则在倒计时结束前短按“学习按键”,可以继续学习下一个人脸。如果不再需要学习其他人脸了,则在倒计时结束前短按”功能按键”即可,或者不操作任何按键,等待倒计时结束。套件可以进行360不同角度深度学习记忆,大大提高准确度。</span></p>
<p></p>
<p><span style="font-size:20px;">识别OK,测试:</span></p>
<p><span style="font-size:20px;">来一张古装测试看看:识别!</span></p>
<p><span style="font-size:20px;">看看二哈能不能从多人中认识神仙姐姐:OK,识别准确度很高的,可以用来做门禁识别</span></p>
<p> <br />
</p>
<p>感觉这AI芯片确实不错!</p>
页:
[1]