真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

raspberrypi代碼如何實(shí)現(xiàn)人臉識(shí)別開鎖應(yīng)用

這篇文章將為大家詳細(xì)講解有關(guān)raspberry pi代碼如何實(shí)現(xiàn)人臉識(shí)別開鎖應(yīng)用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)望城免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

一、案例概述

1. 背景

幫朋友實(shí)現(xiàn)了一個(gè)人臉識(shí)別進(jìn)行開鎖的功能,用在他的真人實(shí)景游戲業(yè)務(wù)中。幾個(gè)月來運(yùn)行穩(wěn)定,體驗(yàn)良好,借著此次宅家的時(shí)間,整理一下這個(gè)應(yīng)用的實(shí)現(xiàn)過程。

總的來說需求描述簡單,但由于約束比較多,在架構(gòu)與選型上還是花了些心思。2. 部署效果由于該游戲還在線上服務(wù)中,此處就不放出具體操作的視頻了。部署效果如下圖所示:

raspberry pi代碼如何實(shí)現(xiàn)人臉識(shí)別開鎖應(yīng)用

  • 玩家發(fā)現(xiàn)并進(jìn)入空間后,在顯示屏看到自己在當(dāng)前場景出鏡的實(shí)時(shí)畫面。

  • 玩家靠近觀察時(shí),捕獲當(dāng)前幀進(jìn)行人臉識(shí)別,實(shí)時(shí)畫面中出現(xiàn)水印字幕“認(rèn)證中”

  • 人臉認(rèn)證失敗時(shí),實(shí)時(shí)畫面水印字幕變更為“認(rèn)證失敗”,字幕維持2秒后消失,恢復(fù)初始狀態(tài)。玩家繼續(xù)尋找游戲線索,重新進(jìn)行認(rèn)證。

  • 人臉認(rèn)證成功時(shí),實(shí)時(shí)畫面水印字幕變更為“認(rèn)證成功”,并彈開保險(xiǎn)箱門。進(jìn)入后續(xù)游戲環(huán)節(jié)。

二、產(chǎn)品要求

1. 需求說明

需求提出時(shí)比較明確,核心邏輯不復(fù)雜。

  • 人臉識(shí)別:通過人臉識(shí)別進(jìn)行鑒權(quán)。

  • 開鎖管理:通過鑒權(quán)則打開箱門,未通過則保持鎖定。

  • 反饋提示:需要有實(shí)時(shí)視頻反饋,指引明確,便于優(yōu)化玩家體驗(yàn)。

2. 約束說明

畢竟是生意,所以在商言商,對(duì)實(shí)用性和成本要求很高,關(guān)鍵是不要影響游戲過程,同時(shí)保證玩家體驗(yàn)。

  • 低成本:需要低建設(shè)成本,低維護(hù)成本。

  • 易維護(hù):對(duì)維護(hù)人員技術(shù)水平要求低,出現(xiàn)軟硬件故障時(shí),任意店員可以快速恢復(fù)。

  • 高可靠:識(shí)別準(zhǔn)確率高,容錯(cuò)能力強(qiáng),系統(tǒng)持續(xù)運(yùn)行中故障率低。

  • 有限空間:整套系統(tǒng)在去除顯示屏、電磁鎖、保險(xiǎn)箱后,其它結(jié)構(gòu)實(shí)施空間不能超過20cm*15cm*15cm 體積。

  • 采光不足:實(shí)景空間小,有頂光無側(cè)光,曝光時(shí)間較長。

  • 通用供電:只提供5V、12V兩種直流電接口。

  • 并行處理:鑒權(quán)流程與反饋流程并行,鑒權(quán)過程中,反饋系統(tǒng)不能出現(xiàn)中斷、阻塞等情況,使玩家有明顯的中斷、卡死體驗(yàn)。

  • 弱網(wǎng)絡(luò)環(huán)境:由于房間隔斷多,網(wǎng)絡(luò)共用,所以網(wǎng)速有限,有突發(fā)延遲情況。

3. 功能設(shè)計(jì)

可能的架構(gòu)方案有多種(不同方案間的比較,在文末進(jìn)行),下面展開說明一下最終上線的方案。

(1) 設(shè)定流程

流程與效果,請(qǐng)參考前文“玩家體驗(yàn)” 部分內(nèi)容。

(2)可配置內(nèi)容

a. 騰訊云密鑰對(duì)

修改配置文件,用于適配騰訊云賬號(hào)切換功能(測(cè)試賬號(hào)/正式賬號(hào))。

b. 人員庫ID

修改配置文件,用于指定不同人員庫(測(cè)試庫/正式庫)。

c. 水印提示

更換對(duì)應(yīng)圖片,實(shí)現(xiàn)更換水印。使用圖片管理,而不是文字配置的原因,是由于圖片配置模式無需字庫支持,無需配置顯示大小,易于圖案嵌入。由于所見即所得,對(duì)維護(hù)人員要求低。

d. 關(guān)機(jī)選項(xiàng)

可配置任務(wù)完成后,是否自動(dòng)關(guān)機(jī)。用于游戲環(huán)境復(fù)位準(zhǔn)備,減少復(fù)位工作量。

(3) 運(yùn)營與維護(hù)

a. 系統(tǒng)運(yùn)營管理

場景啟動(dòng)時(shí),統(tǒng)一上電。認(rèn)證通過后,自動(dòng)關(guān)機(jī),完成復(fù)位。

b. 故障處理

軟硬件故障:無法開機(jī)、可開機(jī)無顯示、可開機(jī)顯示系統(tǒng)異常,可開機(jī)未知異常等等,更換樹莓派或其它硬件。網(wǎng)絡(luò)故障:正常運(yùn)行,無法認(rèn)證,可查網(wǎng)絡(luò)+查云日志,解決網(wǎng)絡(luò)問題;云產(chǎn)品異常:運(yùn)行4個(gè)月,未發(fā)生過,可以忽略,如發(fā)生則聯(lián)系云售后;

(4) 成本分析

硬件成本:500~600元。

備件成本:按1:1備件,500~600元。

運(yùn)行成本:云端0元,使用免費(fèi)額度;電費(fèi)網(wǎng)費(fèi),忽略不計(jì)。

二、技術(shù)實(shí)現(xiàn)

1. 系統(tǒng)架構(gòu)

raspberry pi代碼如何實(shí)現(xiàn)人臉識(shí)別開鎖應(yīng)用

(1)硬件組成

raspberry pi代碼如何實(shí)現(xiàn)人臉識(shí)別開鎖應(yīng)用

樹莓派:終端主控?cái)z像頭:視頻輸入傳感器:超聲波測(cè)距顯示屏:視頻輸出繼電器:控制電磁鎖電磁鎖:控制保險(xiǎn)箱門

(2)關(guān)鍵特性

圖片識(shí)別:使用圖片識(shí)別,而非視頻流,減少對(duì)網(wǎng)絡(luò)帶寬要求。識(shí)別要求低:欠曝光照片也有高識(shí)別率。觸發(fā)識(shí)別:玩家在場景內(nèi)活動(dòng)時(shí)間長,觸發(fā)模式避免了高頻認(rèn)證、誤開鎖情況,同時(shí)降低認(rèn)證成本。測(cè)距選型:超聲波傳感器技術(shù)成熟,成本低(3元);激光傳感器成本高(30元)多進(jìn)程:視頻處理與監(jiān)測(cè)鑒權(quán)由兩個(gè)進(jìn)程實(shí)現(xiàn),避免了阻塞等情況,同時(shí)使用進(jìn)程間通信,實(shí)現(xiàn)可靠交互。

2. 系統(tǒng)搭建

(1) 騰訊云配置

a. 注冊(cè)賬號(hào)

按文檔指引,獲取API密鑰

b. 配置人臉識(shí)別

訪問官網(wǎng)控制臺(tái),通過“新建人員庫->創(chuàng)建人員->上傳照片”,建立認(rèn)證基礎(chǔ)。其中所使用的“人員庫ID”是關(guān)鍵信息,用于后續(xù)API調(diào)用識(shí)別時(shí),指定認(rèn)證動(dòng)作匹配的人員庫。注:由于此案例只識(shí)別一個(gè)人員,無需對(duì)人員ID進(jìn)行匹配,故不用指定人員ID。

(2)樹莓派配置

a. 安裝系統(tǒng)訪問 http://www.raspberrypi.org 獲取鏡像,并進(jìn)行安裝。注意必須安裝桌面版,否則需要單獨(dú)管理HDMI輸出。

b. 配置網(wǎng)絡(luò)進(jìn)入命令行,執(zhí)行 "raspi-config",選擇"Network Options",配置WiFi接入點(diǎn)。為了固定IP,編輯 /etc/dhcpcd.conf 文件,添加配置信息。

# 具體內(nèi)容請(qǐng)參考你的本地網(wǎng)絡(luò)規(guī)劃
interface wlan0
static ip_address=192.168.0.xx/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1 192.168.0.2

c. 安裝騰訊云SDK

參考指引文檔,安裝調(diào)用騰訊云API的依賴庫。

sudo apt-get install python-pip -y
pip install tencentcloud-sdk-python

d. 安裝圖像處理庫系統(tǒng)默認(rèn)安裝python2.7,但沒有 opencv 庫,需要安裝。(下載包體積較大,默認(rèn)源為國外站,比較慢。樹莓派改國內(nèi)源方法,請(qǐng)自行百度,并挑選離自己近的源站)

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

e. 部署代碼

訪問github獲取源碼,將src文件夾內(nèi)容,復(fù)制到 /home/pi/faceid 下。更改 /home/pi/faceid/config.json 中的配置信息,必須改為你的 云API密鑰(sid/skey)、人員庫ID(facegroupid),其它配置按需調(diào)整。

f. 配置自啟動(dòng)需要配置圖形界面自啟動(dòng),保證視頻輸出由HDMI接口輸出至顯示屏,編輯 /home/pi/.config/autostart/faceid.desktop 寫入如下內(nèi)容

Type=Application
Exec=python /home/pi/faceid/main.py

(3)硬件接線

樹莓派GPIO圖示:

raspberry pi代碼如何實(shí)現(xiàn)人臉識(shí)別開鎖應(yīng)用

  • CSI接口

raspberry pi代碼如何實(shí)現(xiàn)人臉識(shí)別開鎖應(yīng)用

b. 超聲波傳感器

  • TrigPin:BCM-24 / GPIO24

  • EchoPin:BCM-23 / GPIO23

  • VCC :接5V

  • GND :接GND

c. 繼電器4引腳側(cè) 接 樹莓派GPIO引腳

  • VCC :接5V

  • GND/RGND :接GND

  • CH1 : BCM-12 / GPIO12

3端口側(cè) 接 電磁鎖

  • 初始狀態(tài)為電磁鎖接常閉端。

  • 繼電器原理請(qǐng)參考 3.3.4 硬件相關(guān) 部分。

(3) 測(cè)試運(yùn)行

完成上述工作后,接電啟動(dòng)系統(tǒng),本地反饋查看顯示屏,云端識(shí)別結(jié)果可查看系統(tǒng)日志。

3. 代碼邏輯與涉及技術(shù)

(1) 流程偽代碼

# 監(jiān)測(cè)鑒權(quán)進(jìn)程-主進(jìn)程
獲取應(yīng)用配置(API ID/Key 等)
初始化GPIO引腳(準(zhǔn)備控制 傳感器、繼電器)
啟動(dòng)視頻管理進(jìn)程(輔進(jìn)程)
循環(huán)開始:
  if not 測(cè)距達(dá)到觸發(fā)標(biāo)準(zhǔn):
    continue
  與輔進(jìn)程通信(捕獲當(dāng)前幀,并存入指定路徑,并添加“認(rèn)證中”水?。?
  調(diào)用云API,使用該幀圖片人臉識(shí)別
  if 識(shí)別成功:
    與輔進(jìn)程通信(變更水印為“認(rèn)證成功”)
    等待5秒
    關(guān)機(jī) 或 繼續(xù)運(yùn)行(由config.json中 su2halt 字段指定)
  else:
    與輔進(jìn)程通信(變更水印為“認(rèn)證失敗”)
    等待2秒
  與輔進(jìn)程通信(清除水?。?

# 視頻管理進(jìn)程-輔進(jìn)程
初始化攝像頭
循環(huán)開始:
  取幀
  取進(jìn)程間共享隊(duì)列
    按消息進(jìn)行不同操作(幀圖像保存/加不同水印/不處理)
  輸出幀

(2)視頻與識(shí)別

a. 實(shí)時(shí)視頻如上文偽代碼所示,通過逐幀處理,并連續(xù)輸出,顯示實(shí)時(shí)視頻。

b. 觸發(fā)識(shí)別

測(cè)距傳感器確認(rèn)物體靠近,且0.3秒內(nèi)距離變化小于2cm,確認(rèn)為待認(rèn)證狀態(tài)。再延時(shí)0.3秒,進(jìn)行圖像幀捕獲。再次延時(shí)的原因是物體停止時(shí),會(huì)有扭轉(zhuǎn)、微調(diào)等動(dòng)作,若直接取幀,會(huì)由于采光不足(上文提到的約束)出現(xiàn)模糊情況,所以再次延時(shí),確保捕獲穩(wěn)定圖像。

c. 人臉識(shí)別

請(qǐng)參考文檔介紹。

(3) 圖像水印

a. 水印原理

opencv中,提供了多種圖像處理函數(shù),如:圖文處理(圖加字)、圖圖處理(圖間加/減/乘/除/位運(yùn)算)等等。通過不同的處理方式,可以實(shí)現(xiàn) 底圖加字、底圖加圖、掩膜處理等等多種效果。本案例中使用的是基于位運(yùn)算的掩膜處理方式。

b. 水印圖片

為了便于維護(hù)和更新,本案例中使用圖片做為水印來源,避免字庫約束,也增大了靈活性,易于在水印中增加圖形,并以分辨率直接定義水印大小,所見即所得。默認(rèn)水印圖片為白底黑字。

c. 水印處理邏輯

為突出水印的浮動(dòng)效果,將水印圖片中的黑色區(qū)域透明化后,疊加到原始圖片中。由于字體透明效果,水印字體顏色隨基礎(chǔ)視頻變化,效果比較明顯。源碼說明

# img1為當(dāng)前視頻幀(底圖),img2為已讀取水印圖
def addpic(img1,img2):
    # 關(guān)注區(qū)域ROI-取底圖中將被水印圖編輯的圖像
    rows, cols = img2.shape[:2]
    roi = img1[:rows, :cols]

    # 圖片灰化-避免水印圖非純黑純白情況
    img2gray = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
    # 生成掩膜-過濾淺色,位運(yùn)算取非
    ret, mask = cv2.threshold(img2gray, 220, 255, 3) #cv2.THRESH_BINARY
    mask_inv = cv2.bitwise_not(mask)

    # 生成水印區(qū)圖像-底圖裁出字體部分,生成水印區(qū)最終圖像,替換原圖水印區(qū)
    img1_bg = cv2.bitwise_and(roi, roi, mask=mask_inv)
    dst = cv2.add(img1_bg, img2)
    img1[:rows, :cols] = dst
    return img1

(4)硬件相關(guān)

a. 超聲波測(cè)距

超聲波傳感器(4引腳:VCC、Trig、Echo、GND),Trig端輸出一個(gè)大于10μs的高電平,激活發(fā)出超聲波,并在收到反射波后,Echo端會(huì)輸出一個(gè)持續(xù)高電平,持續(xù)時(shí)間就是“發(fā)波至收波”的時(shí)間。即:測(cè)距結(jié)果(米)=Echo端高電平時(shí)長*340米/2

b. 繼電器

使用的5V繼電器模塊有雙側(cè)接線,一側(cè)為供電與信號(hào)(4引腳,兼容3.3V信號(hào)),一側(cè)為通路開閉管理(3端口)。繼電器在“通路管理側(cè)”實(shí)現(xiàn)了一個(gè)“單刀雙開關(guān)”的模式,通過“供電與信號(hào)”側(cè)“CH1引腳”的高低電平,控制單刀的方向。在安裝過程中,電磁鎖供電默認(rèn)接繼電器常閉端,對(duì)繼電器給出信號(hào)后,繼電器切換到常開端,則電磁鎖斷電開鎖.

c. GPIO

GPIO(General-purpose input/output 通用輸入輸出),以引腳方式提供硬件間的聯(lián)系能力。樹莓派 3B+,有40個(gè)GPIO引腳(請(qǐng)參考 3.2.3 硬件接線 中的參考圖示),樹莓派官方操作系統(tǒng) Raspbian 下,可以使用系統(tǒng)默認(rèn)安裝的 python 中 RPi.GPIO 庫,進(jìn)行操作。

關(guān)于raspberry pi代碼如何實(shí)現(xiàn)人臉識(shí)別開鎖應(yīng)用就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


分享題目:raspberrypi代碼如何實(shí)現(xiàn)人臉識(shí)別開鎖應(yīng)用
網(wǎng)站地址:http://weahome.cn/article/giedhh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部