《嵌入式人工智能技術(shù)應(yīng)用》課件 4.3-基于人臉檢測(cè)的門禁控制教學(xué)_第1頁(yè)
《嵌入式人工智能技術(shù)應(yīng)用》課件 4.3-基于人臉檢測(cè)的門禁控制教學(xué)_第2頁(yè)
《嵌入式人工智能技術(shù)應(yīng)用》課件 4.3-基于人臉檢測(cè)的門禁控制教學(xué)_第3頁(yè)
《嵌入式人工智能技術(shù)應(yīng)用》課件 4.3-基于人臉檢測(cè)的門禁控制教學(xué)_第4頁(yè)
《嵌入式人工智能技術(shù)應(yīng)用》課件 4.3-基于人臉檢測(cè)的門禁控制教學(xué)_第5頁(yè)
已閱讀5頁(yè),還剩56頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

嵌入式人工智能技術(shù)應(yīng)用項(xiàng)目四基于人臉檢測(cè)算法實(shí)現(xiàn)家用設(shè)備的控制基于人臉檢測(cè)的門禁控制教學(xué)任務(wù)三職業(yè)能力目標(biāo)01任務(wù)描述與要求02任務(wù)分析與計(jì)劃03知識(shí)儲(chǔ)備04任務(wù)實(shí)施05任務(wù)檢查與評(píng)價(jià)06任務(wù)小結(jié)07任務(wù)拓展08任務(wù)三基于人臉檢測(cè)的門禁控制教學(xué)理解通過(guò)人臉識(shí)別完成門禁控制的實(shí)驗(yàn)流程。能夠利用人臉識(shí)別算法,使用數(shù)據(jù)庫(kù)完成用戶注冊(cè);能夠調(diào)用算法識(shí)別的特征數(shù)據(jù)與數(shù)據(jù)庫(kù)中的數(shù)據(jù)做比對(duì);能夠結(jié)合人臉檢測(cè)算法和門禁控制方法完成實(shí)驗(yàn)。職業(yè)能力目標(biāo)01知識(shí)目標(biāo)技能目標(biāo)職業(yè)能力目標(biāo)01任務(wù)描述與要求02任務(wù)分析與計(jì)劃03知識(shí)儲(chǔ)備04任務(wù)實(shí)施05任務(wù)檢查與評(píng)價(jià)06任務(wù)小結(jié)07任務(wù)拓展08任務(wù)三基于人臉檢測(cè)的門禁控制教學(xué)

本實(shí)驗(yàn)將實(shí)現(xiàn)通過(guò)調(diào)用opencv模塊、人臉檢測(cè)算法庫(kù)、sqlite3模塊、serial模塊對(duì)采集的圖像進(jìn)行人臉檢測(cè),如果是已注冊(cè)用戶,則打開(kāi)電子鎖。任務(wù)描述任務(wù)要求使用人臉檢測(cè)算法提取人臉特征并注冊(cè)到數(shù)據(jù)庫(kù);使用人臉檢測(cè)算法將新采集的人臉圖像與數(shù)據(jù)庫(kù)中的數(shù)據(jù)計(jì)算相似度;如果識(shí)別成功,則通過(guò)串口模塊開(kāi)啟門鎖。任務(wù)描述與要求02職業(yè)能力目標(biāo)01任務(wù)描述與要求02任務(wù)分析與計(jì)劃03知識(shí)儲(chǔ)備04任務(wù)實(shí)施05任務(wù)檢查與評(píng)價(jià)06任務(wù)小結(jié)07任務(wù)拓展08任務(wù)三基于人臉檢測(cè)的門禁控制教學(xué)任務(wù)分析門禁系統(tǒng)構(gòu)建可能會(huì)涉及到哪些步驟?根據(jù)自己的了解說(shuō)說(shuō)智能電子鎖原理?任務(wù)分析與計(jì)劃03任務(wù)計(jì)劃表項(xiàng)目名稱基于人臉檢測(cè)算法實(shí)現(xiàn)家用設(shè)備的控制任務(wù)名稱基于人臉檢測(cè)的門禁控制教學(xué)計(jì)劃方式自主設(shè)計(jì)計(jì)劃要求請(qǐng)用5個(gè)計(jì)劃步驟來(lái)完整描述出如何完成本次任務(wù)序號(hào)任務(wù)計(jì)劃1

2

3

4

5

通過(guò)上面的思考,你是否對(duì)本任務(wù)要完成的工作有所了解?讓我們一起來(lái)制訂完成本次任務(wù)的實(shí)施計(jì)劃吧!任務(wù)分析與計(jì)劃03職業(yè)能力目標(biāo)01任務(wù)描述與要求02任務(wù)分析與計(jì)劃03知識(shí)儲(chǔ)備04任務(wù)實(shí)施05任務(wù)檢查與評(píng)價(jià)06任務(wù)小結(jié)07任務(wù)拓展08任務(wù)三基于人臉檢測(cè)的門禁控制教學(xué)智能門鎖204知識(shí)儲(chǔ)備電子門鎖1SQLite-python433SQL語(yǔ)句電子門鎖04電子鎖是一種通過(guò)密碼輸入來(lái)控制電路或是芯片工作(訪問(wèn)控制系統(tǒng)),從而控制機(jī)械開(kāi)關(guān)的閉合,完成開(kāi)鎖、閉鎖任務(wù)的電子產(chǎn)品。它的種類很多,有簡(jiǎn)易的電路產(chǎn)品,也有基于芯片的性價(jià)比較高的產(chǎn)品?,F(xiàn)在應(yīng)用較廣的電子密碼鎖是以芯片為核心,通過(guò)編程來(lái)實(shí)現(xiàn)的。電子門鎖04電子鎖對(duì)機(jī)械鎖不構(gòu)成威脅一是復(fù)雜化,因?yàn)殒i具本身是一種機(jī)械卡阻機(jī)構(gòu),最終還要靠機(jī)械動(dòng)作來(lái)完成。而電子鎖必須完成機(jī)械動(dòng)作(操作)—電子轉(zhuǎn)換和電子控制—機(jī)械執(zhí)行這一系列過(guò)程,顯然是復(fù)雜一些。二是故障概率相對(duì)較高,電子器件一多,一復(fù)雜,必然增加故障機(jī)率,加上電子器件怕潮濕,怕強(qiáng)磁電,怕強(qiáng)震動(dòng),使它對(duì)使用環(huán)境有一定要求。三是電子鎖必須用電,早期的電子鎖耗電較多。電子門鎖的優(yōu)勢(shì)智能門鎖204知識(shí)儲(chǔ)備電子門鎖1SQLite-python433SQL語(yǔ)句智能門鎖04智能門鎖是指區(qū)別于傳統(tǒng)機(jī)械鎖的基礎(chǔ)上改進(jìn)的,在用戶安全性、識(shí)別、管理性方面更加智能化簡(jiǎn)便化的鎖具。智能門鎖是門禁系統(tǒng)中鎖門的執(zhí)行部件。智能門鎖區(qū)別于傳統(tǒng)機(jī)械鎖,是具有安全性,便利性,先進(jìn)技術(shù)的復(fù)合型鎖具。智能門鎖04(1)安全性。安裝指紋鎖后,應(yīng)當(dāng)不影響用防盜門的功用。鎖具不存在明顯的安全隱患。(2)穩(wěn)定性。是指紋鎖最重要的指標(biāo),一般需一年以上的實(shí)際使用后才會(huì)慢慢穩(wěn)定下來(lái),定型。(3)通用性。應(yīng)當(dāng)適用國(guó)內(nèi)大部分的防盜門(符合2008版防盜門國(guó)家標(biāo)準(zhǔn)),改裝量少。好的指紋鎖安裝時(shí)間應(yīng)不高于30分鐘。否則用戶一般難以自己完成安裝與維護(hù)。通用性設(shè)計(jì)得好,也可有效降低經(jīng)銷商庫(kù)存。(4)智能性。進(jìn)行增加,刪除等操作,應(yīng)當(dāng)非常簡(jiǎn)單,用戶不用記憶過(guò)多的口令與代碼。高性能指紋鎖還配有視頻顯示系統(tǒng),用戶操作比較方便。智能門鎖外觀特點(diǎn)智能門鎖04(1)指紋鎖,全稱是電子指紋鎖,常見(jiàn)功能通為指紋、密碼、刷卡、機(jī)械鑰匙四合一開(kāi)鎖方式。它普通機(jī)械鎖升級(jí)為電子鎖的替代品。防盜級(jí)別為A級(jí)。(2)智能鎖,全稱電子智能鎖,它包含電子指紋鎖的基本功能,增加上聯(lián)網(wǎng)功能,可實(shí)現(xiàn)遠(yuǎn)程操控,是電子指紋鎖的升級(jí)版,防盜級(jí)別為B級(jí)。(3)安防指紋鎖,包含電子指紋鎖的全部功能,是按照國(guó)家防盜鎖具技術(shù)標(biāo)準(zhǔn)設(shè)計(jì),是家庭防盜門鎖的實(shí)用性產(chǎn)品,防盜級(jí)別為C級(jí)。(4)安防智能鎖,包含電子指紋鎖,電子智能鎖,安防指紋鎖的全部功能,是鎖具行業(yè)技術(shù)含金量最高的產(chǎn)品,防盜級(jí)別為超C級(jí)智能門鎖級(jí)別分類智能門鎖204知識(shí)儲(chǔ)備電子門鎖1SQLite-python433SQL語(yǔ)句SQL語(yǔ)句04SQLSELECT語(yǔ)句SELECT語(yǔ)句用于從數(shù)據(jù)庫(kù)中選取數(shù)據(jù)。結(jié)果被存儲(chǔ)在一個(gè)結(jié)果表中,稱為結(jié)果集。SQLSELECT語(yǔ)法:SELECTcolumn_name,column_nameFROMtable_name;與SELECT*FROMtable_name;SQL語(yǔ)句04SQLORDERBY關(guān)鍵字ORDERBY關(guān)鍵字用于對(duì)結(jié)果集進(jìn)行排序。ORDERBY關(guān)鍵字用于對(duì)結(jié)果集按照一個(gè)列或者多個(gè)列進(jìn)行排序。ORDERBY關(guān)鍵字默認(rèn)按照升序?qū)τ涗涍M(jìn)行排序。如果需要按照降序?qū)τ涗涍M(jìn)行排序,您可以使用DESC關(guān)鍵字。SQLORDERBY語(yǔ)法:SELECTcolumn_name,column_nameFROMtable_nameORDERBYcolumn_name,column_nameASC|DESC;SQL語(yǔ)句04SQLINSERTINTO語(yǔ)句INSERTINTO語(yǔ)句用于向表中插入新記錄。INSERTINTO語(yǔ)句用于向表中插入新記錄。INSERTINTO語(yǔ)句可以有兩種編寫形式。第一種形式無(wú)需指定要插入數(shù)據(jù)的列名,只需提供被插入的值即可:INSERTINTOtable_nameVALUES(value1,value2,value3,...);第二種形式需要指定列名及被插入的值:INSERTINTOtable_name(column1,column2,column3,...)VALUES(value1,value2,value3,...);SQL語(yǔ)句04SQLUPDATE語(yǔ)句UPDATE語(yǔ)句用于更新表中的記錄。UPDATE語(yǔ)句用于更新表中已存在的記錄。SQLUPDATE語(yǔ)法:UPDATEtable_nameSETcolumn1=value1,column2=value2,...WHEREsome_column=some_value;注意:SQLUPDATE語(yǔ)句中的WHERE子句,WHERE子句規(guī)定哪條記錄或者哪些記錄需要更新。如果您省略了WHERE子句,所有的記錄都將被更新!SQL語(yǔ)句04SQLDELETE語(yǔ)句DELETE語(yǔ)句用于刪除表中的記錄。DELETE語(yǔ)句用于刪除表中的行。SQLDELETE語(yǔ)法:DELETEFROMtable_nameWHEREsome_column=some_value;注意:SQLDELETE語(yǔ)句中的WHERE子句,WHERE子句規(guī)定哪條記錄或者哪些記錄需要?jiǎng)h除。如果省略了WHERE子句,所有的記錄都將被刪除!智能門鎖204知識(shí)儲(chǔ)備電子門鎖1SQLite-python433SQL語(yǔ)句SQLite-python04SQLite3可使用sqlite3模塊與Python進(jìn)行集成。sqlite3模塊是由GerhardHaring編寫的。它提供了一個(gè)與PEP249描述的DB-API2.0規(guī)范兼容的SQL接口。您不需要單獨(dú)安裝該模塊,因?yàn)镻ython2.5.x以上版本默認(rèn)自帶了該模塊。安裝04在這里,您也可以把數(shù)據(jù)庫(kù)名稱復(fù)制為特定的名稱:memory:,這樣就會(huì)在RAM中創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)。在當(dāng)前目錄中創(chuàng)建我們的數(shù)據(jù)庫(kù)test.db??梢愿鶕?jù)需要改變路徑。保存上面代碼到sqlite.py文件中,并按如下所示執(zhí)行。如果數(shù)據(jù)庫(kù)成功創(chuàng)建,那么會(huì)顯示下面所示的消息:連接數(shù)據(jù)庫(kù)實(shí)例04上述程序執(zhí)行時(shí),它會(huì)在test.db中創(chuàng)建COMPANY表,并顯示下面所示的消息:創(chuàng)建表實(shí)例04上述程序執(zhí)行時(shí),它會(huì)在COMPANY表中創(chuàng)建給定記錄,并會(huì)顯示以下兩行:數(shù)據(jù)庫(kù)打開(kāi)成功數(shù)據(jù)插入成功INSERT操作實(shí)例04上述程序執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果:SELECT操作實(shí)例04上述程序執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果:UPDATE操作實(shí)例04上述程序執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果:DELETE操作實(shí)例職業(yè)能力目標(biāo)01任務(wù)描述與要求02任務(wù)分析與計(jì)劃03知識(shí)儲(chǔ)備04任務(wù)實(shí)施05任務(wù)檢查與評(píng)價(jià)06任務(wù)小結(jié)07任務(wù)拓展08任務(wù)三基于人臉檢測(cè)的門禁控制教學(xué)05實(shí)驗(yàn)流程圖05任務(wù)實(shí)施提取人臉特征寫入數(shù)據(jù)庫(kù)2利用opencv采集圖片1人臉識(shí)別比對(duì)3門鎖控制4利用opencv采集圖片05importcv2dWindow('image',flags=cv2.WINDOW_NORMAL|cv2.WINDOW_KEEPRATIO|cv2.WINDOW_GUI_EXPANDED)cv2.resizeWindow("image",1920,1080)cap=cv2.VideoCapture(0)cap.set(cv2.CAP_PROP_FRAME_WIDTH,640)cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)ret,image=cap.read()print(ret)cv2.imshow('image',image)cv2.waitKey(5000)cap.release()cv2.destroyAllWindows()opencv采集圖片的詳細(xì)內(nèi)容,參考前面章節(jié)項(xiàng)目1:使用OpenCV實(shí)現(xiàn)人臉檢測(cè)中的1_opencv實(shí)現(xiàn)圖像的讀取與保存。cap=cv2.VideoCapture(0)實(shí)例化一個(gè)對(duì)象賦值給capcap.set(cv2.CAP_PROP_FRAME_WIDTH,640),cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)設(shè)置采集的分辨率寬高ret,image=cap.read()讀取一幀圖片,返回圖片內(nèi)容和狀態(tài)值cv2.imshow('image',image)顯示圖片cv2.waitKey(100)等待100毫秒cap.release()釋放攝像頭,以免攝像頭占用;cv2.destroyAllWindows()關(guān)閉所有窗口。05任務(wù)實(shí)施提取人臉特征寫入數(shù)據(jù)庫(kù)2利用opencv采集圖片1人臉識(shí)別比對(duì)34門鎖控制3注冊(cè)用戶1提取人臉特征2sqlite3數(shù)據(jù)庫(kù)的使用提取人臉特征寫入數(shù)據(jù)庫(kù)05提取人臉特征寫入數(shù)據(jù)庫(kù)調(diào)用人臉識(shí)別的算法,提取特征,寫入數(shù)據(jù)庫(kù)。提取人臉特征寫入數(shù)據(jù)庫(kù)051.提取人臉特征人臉識(shí)別算法包含了特征提取的接口。將獲取到的特征值,轉(zhuǎn)化為python可讀的數(shù)據(jù)數(shù)組類型。fromlib.faceDetectimportNLFaceDetect導(dǎo)入人臉識(shí)別算法接口類;nlFaceDetect=NLFaceDetect(libNamePath)實(shí)例化算法接口對(duì)象,執(zhí)行沒(méi)有報(bào)錯(cuò),表示實(shí)例化成功;nlFaceDetect.NL_FD_ComInit(configPath)加載模型和配置,并初始化,執(zhí)行沒(méi)有報(bào)錯(cuò),表示加載成功;nlFaceDetect.NL_FD_InitVarIn(image)加載采集的圖片數(shù)據(jù),返回0表示加載成功;nlFaceDetect.NL_FD_Process_C()調(diào)用人臉檢測(cè)主函數(shù)處理圖像,返回人臉個(gè)數(shù);nlFaceDetect.NL_FD_Exit()釋放模型和內(nèi)存;face_area=(outObject.x2-outObject.x1)*(outObject.y2-outObject.y1)計(jì)算每個(gè)人臉框的大小,目的是在注冊(cè)是的時(shí)候,只取站在最前面的人臉;face_area_max=max(face_areas)取最大的人臉框;max_index=face_areas.index(face_area_max)取最大人臉框的的下標(biāo),也就是第幾個(gè)人臉;face_info=nlFaceDetect.djEDVarOut.faceInfos[max_index]獲取最大人臉的人臉信息,作為單個(gè)人臉對(duì)齊的輸入值;nlFaceDetect.NL_EA_Process_C_2(face_info)把人臉檢測(cè)的結(jié)果信息,進(jìn)行人臉對(duì)齊處理;faceNum,faceInfos=nlFaceDetect.NL_ER_Process_C()獲取人臉特征,人臉特征是長(zhǎng)度為512的數(shù)組。提取人臉特征寫入數(shù)據(jù)庫(kù)051.提取人臉特征(1)人臉對(duì)齊:人臉對(duì)齊任務(wù)即根據(jù)輸入的人臉圖像,自動(dòng)定位出面部關(guān)鍵特征點(diǎn),如左眼,右眼,鼻子,左嘴角,右嘴角等;(2)人臉特征提?。喝四樚卣魈崛?,即獲取人臉關(guān)鍵點(diǎn)的特征值,該算法,人臉特征是長(zhǎng)度為512的數(shù)組。提取人臉特征寫入數(shù)據(jù)庫(kù)052.

sqlite3數(shù)據(jù)庫(kù)的使用

SQLite是一個(gè)軟件庫(kù),實(shí)現(xiàn)了自給自足的、無(wú)服務(wù)器的、零配置的、事務(wù)性的SQL數(shù)據(jù)庫(kù)引擎。SQLite是在世界上最廣泛部署的SQL數(shù)據(jù)庫(kù)引擎。SQLite源代碼不受版權(quán)限制。(1)注冊(cè)函數(shù)conn=sqlite3.connect("face.db")創(chuàng)建或連接一個(gè)數(shù)據(jù)庫(kù);cursor=conn.cursor()創(chuàng)建一個(gè)游標(biāo);create_user_table=''是創(chuàng)建用戶表的命令,這里字段采用id,用戶名,創(chuàng)建時(shí)間,特征;insert_user_table=''是插入用戶表的命令,給每個(gè)字段插入相對(duì)應(yīng)的數(shù)據(jù);cursor.execute(create_tb_cmd)執(zhí)行命令;mit()提交執(zhí)行結(jié)果。importsqlite3#引入sqlite3數(shù)據(jù)庫(kù)importtimedefregister_user(user_name,feature):conn=sqlite3.connect("face.db")#連接數(shù)據(jù)庫(kù)

cursor=conn.cursor()#創(chuàng)建一個(gè)游標(biāo)cursoncreate_user_table='createtableuser(idintegerprimarykey,user_nameTEXT,ctimeTEXT,featuresTEXT)'user_create_time=time.strftime("%Y-%m-%d%H:%M:%S",time.localtime())#數(shù)據(jù)創(chuàng)建時(shí)間

insert_user_table='insertintouser(user_name,ctime,features)values("{}","{}","{}")'.format(user_name,user_create_time,feature)try:#數(shù)據(jù)表不存在

cursor.execute(create_user_table)#執(zhí)行創(chuàng)建數(shù)據(jù)表sql語(yǔ)句

cursor.execute(insert_user_table)#執(zhí)行插入數(shù)據(jù)sql語(yǔ)句

exceptExceptionase:#數(shù)據(jù)表已存在

cursor.execute(insert_user_table)#執(zhí)行插入數(shù)據(jù)sql語(yǔ)句

mit()#提交執(zhí)行結(jié)果

cursor.close()#關(guān)閉游標(biāo)

conn.close()#關(guān)閉對(duì)數(shù)據(jù)庫(kù)的連接提取人臉特征寫入數(shù)據(jù)庫(kù)052.

sqlite3數(shù)據(jù)庫(kù)的使用提取人臉特征寫入數(shù)據(jù)庫(kù)052.

sqlite3數(shù)據(jù)庫(kù)的使用(2)讀取函數(shù)read_cmd="select*fromuserORDERBYidDESC;"讀取所有用戶信息,按id值的倒敘排列,也就是最新插入的在最前面。defread_user():read_cmd="select*fromuserORDERBYidDESC;"#查詢數(shù)據(jù)sql語(yǔ)句

res_list=[]#存儲(chǔ)查詢結(jié)果列表

try:conn=sqlite3.connect("face.db")#連接數(shù)據(jù)庫(kù)

cursor=conn.cursor()#創(chuàng)建一個(gè)游標(biāo)cursonres=cursor.execute(read_cmd)#執(zhí)行查詢數(shù)據(jù)sql語(yǔ)句

forrinres:res_list.append(r)#將查詢結(jié)果存入列表

mit()#提交執(zhí)行結(jié)果

cursor.close()#關(guān)閉游標(biāo)

conn.close()#關(guān)閉對(duì)數(shù)據(jù)庫(kù)的連接

exceptExceptionase:print('sqlerror:'+str(e))returnres_list提取人臉特征寫入數(shù)據(jù)庫(kù)053.注冊(cè)用戶

判斷是否有人臉數(shù)據(jù)特征,將獲取到的特征注冊(cè)到數(shù)據(jù)庫(kù)中,并使用讀取函數(shù),驗(yàn)證是否已寫入。iffts_list:register_user('張三',fts_list)#注冊(cè)人臉信息

res=read_user()#讀取所有人臉注冊(cè)數(shù)據(jù)

print(res[0])#打印第一條人臉注冊(cè)數(shù)據(jù)05任務(wù)實(shí)施提取人臉特征寫入數(shù)據(jù)庫(kù)2利用opencv采集圖片1人臉識(shí)別比對(duì)34門鎖控制1采集新圖片2人臉識(shí)別比對(duì)人臉識(shí)別比對(duì)05人臉識(shí)別比對(duì)調(diào)用算法,識(shí)別一張新的圖片,然后和數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行比對(duì)。人臉識(shí)別比對(duì)051.采集新圖片importcv2dWindow('image_win',flags=cv2.WINDOW_NORMAL|cv2.WINDOW_KEEPRATIO|cv2.WINDOW_GUI_EXPANDED)cv2.setWindowProperty('image_win',cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)#全屏展示time.sleep(2)#2秒后拍照cap=cv2.VideoCapture(0)cap.set(cv2.CAP_PROP_FRAME_WIDTH,640)cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)ret,image=cap.read()print(ret)cv2.imshow('image_win',image)cv2.waitKey(5000)cap.release()cv2.destroyAllWindows()人臉識(shí)別比對(duì)052.人臉識(shí)別比對(duì)05任務(wù)實(shí)施提取人臉特征寫入數(shù)據(jù)庫(kù)2利用opencv采集圖片1人臉識(shí)別比對(duì)3門鎖控制43實(shí)現(xiàn)門鎖開(kāi)關(guān)1實(shí)例化串口對(duì)象2控制門鎖門鎖控制05門鎖控制門鎖控制05importtimeimportserialser=serial.Serial("/dev/ttyS0",baudrate=9600,timeout=0.5)1.實(shí)例化一個(gè)串口對(duì)象串口通信是指外設(shè)和計(jì)算機(jī)間,通過(guò)數(shù)據(jù)信號(hào)線、地線、控制線等,按位進(jìn)行傳輸數(shù)據(jù)的一種通訊方式。這種通信方式使用的數(shù)據(jù)線少,在遠(yuǎn)距離通信中可以節(jié)約通信成本,但其傳輸速度比并行傳輸?shù)?。串口是?jì)算機(jī)上一種非常通用的設(shè)備通信協(xié)議。serial.Serial(name,baudrate,timeout,bytesize,writeTimeout,port)參數(shù)說(shuō)明:name:串口在板上的端口號(hào)baudrate:串口波特率timeout:讀超時(shí)時(shí)長(zhǎng)bytesize:字節(jié)大小writeTimeout:寫超時(shí)port:讀或者寫端口05打開(kāi)門鎖ser.flushInput()#清除串口寫入緩存ser.flushOutput()#清除串口輸出緩存command='01050013FF007DFF'#打開(kāi)門鎖指令cmd=bytes.fromhex(command)ser.write(cmd)#對(duì)串口寫入指令2.控制燈光門鎖的控制,采用的也是RS485串口控制,門鎖有經(jīng)過(guò)繼電器,和4150數(shù)據(jù)模塊DO口。開(kāi)發(fā)板通過(guò)串口控制數(shù)字量模塊的DO口,來(lái)控制繼電器的開(kāi)關(guān),進(jìn)而控制門鎖。RS485采用的通信協(xié)議是Modbus。而Modbus協(xié)議傳輸數(shù)據(jù)使用的是HEX形式的字符。若要獲得傳感器DI值,就要將command轉(zhuǎn)換成HEX形式,也就是將16進(jìn)制轉(zhuǎn)換成字符串。關(guān)閉門鎖ser.flushInput()#清除串口寫入緩存ser.flushOutput()#清除串口輸出緩存command='0105001300003C0F'#關(guān)閉門鎖指令cmd=bytes.fromhex(command)ser.write(cmd)#對(duì)串口寫入指令門鎖控制05importcv2importserialdWindow('image',flags=cv2.WINDOW_NORMAL|cv2.WINDOW_KEEPRATIO|cv2.WINDOW_GUI_EXPANDED)cv2.resizeWindow("image",1920,1080)#全屏化開(kāi)發(fā)板窗口cap=cv2.VideoCapture(0)#實(shí)例化攝像頭cap.set(cv2.CAP_PROP_FRAME_WIDTH,640)#設(shè)置采集圖片的分辨率寬為640cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)#設(shè)置采集圖片的分辨率高為480ret,image=cap.read()#采集一幀圖片,并將返回的狀態(tài)賦給變量ret,圖片數(shù)據(jù)賦給變量imageprint(ret)cv2.imshow('image',image)#顯示采集的圖片cv2.waitKey(5000)#等待500毫秒cap.release()#釋放攝像頭cv2.destroyAllWindows()#關(guān)閉所有窗口3.實(shí)現(xiàn)燈光預(yù)警步驟1:采集人臉照片。采集一張有注冊(cè)過(guò)的人臉。門鎖控制053.實(shí)現(xiàn)燈光預(yù)警步驟2:人臉對(duì)比。利用前面注冊(cè)的數(shù)據(jù),調(diào)用人臉識(shí)別算法,實(shí)現(xiàn)人臉識(shí)別比對(duì)。門鎖控制05importtimeser=serial.Serial("/dev/ttyS0",baudrate=9600,timeout=0.5)#實(shí)例化串口對(duì)象ifresult_state:#如果人臉匹配成功

ser.flushInput()#清除串口寫入緩存

ser.flushOutput()#清除串口輸出緩存

command='01050013FF007DFF'#打開(kāi)門鎖指令

cmd=bytes.fromhex(command)ser.write(cmd)#對(duì)串口寫入指令

time.sleep(2)#休眠2秒防止代碼運(yùn)行過(guò)快導(dǎo)致開(kāi)關(guān)鎖的操作跟不上

ser.flushInput()#清除串口寫入緩存

ser.flushOutput()#清除串口輸出緩存

command='0105001300003C0F'#關(guān)閉門鎖指令

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論