日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

使用百度云智能SDK和树莓派搭建简易的人脸识别系统 Python语言版

發布時間:2025/3/8 windows 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用百度云智能SDK和树莓派搭建简易的人脸识别系统 Python语言版 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

硬件

  • 樹莓派4B一個
  • CSI攝像頭一個
  • 筆者使用的是樹莓派4B和CSI攝像頭,但是樹莓派3和USB攝像頭等相似設備均可。

    百度云智能設置

    Step 1 登錄

    百度云智能 網址https://cloud.baidu.com/

    首先登錄百度賬號,與百度云、百度貼吧等互通,可直接掃碼登錄。如果沒有百度賬號請先自行注冊。

    Step 2 實名認證

    百度的產品用了這么多年了,想必大家都已經認證過了,沒有認證的讀者現在認證即可,很快。

    Step 3 領取免費資源

    實名認證之后可以領取免費的智能云資源,一定要領取,否則之后我們測試程序時會報qps不足,不知道在哪領取的話先往后看,后面也會有鏈接。

    Step 4 創建應用

    鼠標放到右上角的三道橫杠,依次選擇產品服務、人工智能、人臉識別。

    進來以后創建應用:

    沒有什么特別好說的,都無關乎我們的程序,按自己想的填寫即可:(注意前面沒有領取免費資源的話,可以在這里點擊去領取)

    Step 5 下載SDK

    創建好應用后回到這個界面,點擊下載SDK,一會兒要用。

    本文采用Python語言實現,后續可能會出C++版本的教程,這里先直接選擇Python的SDK:

    Step 6 保存關鍵信息、創建組、新建用戶并上傳圖片

    下載好后我們進入到應用詳情,首先保存好AppID、API Key、Secret Key三個字段的值,一會兒程序中要用。

    保存好后我們點擊左側的“可視化人臉庫”,然后根據頁面提示創建組、創建用戶、并上傳用戶的人臉圖片,這里筆者只上傳了一張自拍照,經測試在正常條件下也是可以識別出本人的。

    到這里百度云智能的配置就告一段落了。

    樹莓派攝像頭設置及必要視覺庫的安裝

    Step 1 樹莓派及攝像頭的硬件安裝及開啟

    首先我們將樹莓派和攝像頭安裝好,并通過raspi-config開啟攝像頭權限,不熟悉的同學可以參考博客:樹莓派攝像頭基礎配置及測試

    Step 2 安裝必要的視覺庫

    安裝picamera,這是樹莓派原生的圖像和攝像頭庫。

    pip install picamera

    這里假設大家已經安裝好python3。

    安裝opencv,筆者的程序中使用opencv庫來做的圖像采集。

    sudo apt-get install -y libopencv-dev python3-opencv

    如果要使用Python來使用GPIO信號,需要使用RPi.GPIO模塊。如果你使用的是Python2版本,樹莓派默認安裝了RPi.GPIO模塊(python-rpi.gpio)。

    目前大多數的人都是使用Python3了,所以我們要手動安裝Python 3版本的模塊。

    GPIO在本文中暫時不需要,但是還是安裝一下,以后可以通過GPIO傳輸控制信號玩法有很多,筆者私以為樹莓派最有魅力的一個點就在與除了可以看作一臺電腦,它還帶有豐富的GPIO接口。

    sudo apt-get install python3-rpi.gpio

    Step 3 安裝百度云智能相關模塊

    安裝百度AI模塊

    sudo pip install baidu-aip

    安裝SDK,將下載好的人臉識別SDK解壓并安裝:

    sudo python3 setup.py install

    測試

    首先創建一個客戶端來訪問百度云智能,這里傳入的參數就是剛才讓大家保存的幾個字段APP_ID, API_KEY, SECRET_KEY

    client = AipFace(APP_ID, API_KEY, SECRET_KEY)

    以下是核心測試函數,筆者在代碼中做了比較詳細的注釋。

    def check():stranger_count = 0while True:img_np = get_image() # opencv讀取圖像img_base64 = image_to_base64(img_np) # 將opencv讀取到的圖像轉base64編碼result = client.search(str(img_base64), 'base64', 'admin'); #在百度云人臉庫中尋找匹配的人臉if result['error_msg'] == 'SUCCESS': # 如果成功了,說明檢測到人,但不一定是成員name = result['result']['user_list'][0]['user_id'] # 獲取名字score = result['result']['user_list'][0]['score'] # 獲取相似度分數# print(name, score)if score > 80: #如果相似度大于80print('檢測到成員:{}, 匹配度:{}'.format(name, score))with open('Log.txt','a') as f:f.write('Person: {},\t score: {:.4f}\t, time: {}\n'.format(name, score, get_curr_time()))time.sleep(2)else:print("檢測到非成員,")name = 'stranger'stranger_count += 1stranger_path = os.path.join(STRANGER_DIR, str(stranger_count)+'.jpg')with open('Log.txt','a') as f:f.write('Person: {},\t saved as: {},\t time: {}\n'.format(name, stranger_path, get_curr_time()))cv2.imwrite(stranger_path, img_np)time.sleep(2)elif result['error_msg'] == 'pic not has face':print('未檢測到人臉')time.sleep(2)else:print(result['error_code']+' ' + result['error_code'])time.sleep(2)

    Log.txt文件的部分輸出:

    Person: stranger, saved as: strangers/16.jpg, time: Thu Aug 5 19:07:31 2021 Person: stranger, saved as: strangers/17.jpg, time: Thu Aug 5 19:07:34 2021 Person: Song, score: 95.0842 , time: Thu Aug 5 19:07:37 2021 Person: stranger, saved as: strangers/18.jpg, time: Thu Aug 5 19:07:43 2021

    stranger是筆者請師哥露臉時的輸出。Song是筆者本人露臉的識別結果及分數。識別的精度還是可以滿足一般日常場景的需要的。

    除了與百度之間的接口之外就是一些簡單控制邏輯,大家也可以自行設計一些控制邏輯,根據是否檢測到人臉、檢測到的人臉能否被識別為用戶組里的人臉來配合GPIO做一些控制邏輯,比如開關門、開關燈之類等智能家居,或者人臉識別打卡等。

    后續筆者可能會做一個C++語言版的分享。

    源碼地址:https://github.com/Adenialzz/Rpi-BaiduSDK/tree/main

    有其他報錯或者困惑的朋友歡迎留言交流,有其他有趣的樹莓派或計算機視覺想法的朋友也歡迎留言討論。

    總結

    以上是生活随笔為你收集整理的使用百度云智能SDK和树莓派搭建简易的人脸识别系统 Python语言版的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。