当前位置:   article > 正文

树莓派+arduino+串口屏+百度api人脸识别_arduino人脸识别

arduino人脸识别

树莓派+arduino+串口屏+百度api人脸识别

升级版本

人脸识别升级版


人脸识别升级版


这次对上一次的代码进行了优化,并且完成了树莓派与arduino的串口通信(包括USB串口通信)和GPIO的串口通信。最近比较忙再一个原因就是…懒,本来还录制了调试的视频,总之效果还是可以的。

其实树莓派的语音识别也已经做好了,知识没时间总结,准备做一个语音对讲,语音控制硬件。。。


百度云后台
不行,今天不适合写博客,内心极度不稳定,可能最近太忙了,就这样吧,把代码拷贝进来,等哪天好好总结总结!


代码都存储在我的GitHub里
我的树莓派也只能通过它和外机通讯…我的远程连接一直失败,暂且只能用显示屏来调试。
GitHub地址


from picamera import PiCamera
import time
import RPi.GPIO
import requests
import base64
import sys
import serial
import os

def getaccess_token():
## 获取access_token

    host='https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=4fVKa7AqDYNApi6Lz8Z2ZeMv&client_secret=gRVy9GcRRGCMiU2GgT20IbbaMu7QfA8P'

    header_1 = {'Content-Type':'application/json; charset=UTF-8'}

    request=requests.post(host,headers =header_1)

    access_token=request.json()['access_token']
    print(access_token)
    return access_token


def take_picture():
 #拍摄当前图片   
    camera.start_preview()

    time.sleep(0.5)

    camera.capture('image.jpg')

    camera.stop_preview()
def open_pic():
#打开工程拍摄的图片并转换成字符串
    f = open('image.jpg', 'rb')

    img = base64.b64encode(f.read())

    return img

def search (img,access_token):
##    人脸搜索白度api_v3以后就叫做“人脸搜索”了
    request_url = "https://aip.baidubce.com/rest/2.0/face/v3/search"
    params = {"image":img,"image_type":"BASE64","group_id_list":"wenzheng","quality_control":"LOW","liveness_control":"NORMAL"}
    request_url = request_url + "?access_token=" + access_token
    ##发送数据利用requests.post()的方法--比较简单
    response = requests.post(request_url, data=params)
    ##输出json数据
    output = response.json()
    return output
def chuli (output):
    print(output)
    print(type(output)) ##输出数据类型为-字典
    if output['error_msg'] == 'SUCCESS':
        ##判断是否成功
        ##找到字典里的result-以及内层字典里的user_list
        user_list= output['result']['user_list']
        print(user_list)
        ##输出数据类型,发现其为列表
        print(type(user_list))
        ##利用列表的检索方式找到列表里的人脸检测分数-score
        score = user_list[0]['score']
        print(score)
        ##串口发送
        ser.write(str(score).encode()) 
        #panduan(score)
        user = user_list[0]['user_info']
        time.sleep(1)
        print(user)
        ser.write(user.encode())
    else:
        print(output['error_msg'])
        print(type(output['error_msg']))
        ser.write(output['error_msg'].encode())
"""
反馈的数据:利用他来解析
可知此次的人脸对比分数为:93分
{'error_code': 0, 'error_msg': 'SUCCESS', 'timestamp': 1528009295, 'log_id': 3173075542, 'cached': 0,
'result': {'face_token': '7fd111f61fb07e034577b277c7caca3f',
'user_list': [{'user_id': 'wenzheng', 'user_info': 'pengwenzheng', 'score': 93.49373626709, 'group_id': 'wenzheng'}]}}
"""
def panduan(score): 
    if score > 80:
        #print(type(score))
        ser.write(str(score).encode())          
    else :
        ser.write(b'2')
def led():
## led
    RPi.GPIO.output(18, True)
if __name__ == '__main__':
    ser = serial.Serial('/dev/ttyS0',115200,timeout=1)
    ser.close()
    ser.open()
    print("串口已开启")
    camera = PiCamera()
    count=0
    access_token=getaccess_token()
    while True :
        take_picture()
        img=open_pic()
        output = search(img,access_token)
        chuli(output)
        count=count+1
        print(count)
        #加入自动重启命令,防止程序运行时间过长死机
        if count == 2000 :
            os.system('sudo reboot')
            count = 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/484492
推荐阅读
相关标签
  

闽ICP备14008679号