版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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è)的安防檢測(cè)實(shí)驗(yàn)任務(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è)的安防檢測(cè)實(shí)驗(yàn)理解通過人臉識(shí)別完成安防檢測(cè)的實(shí)驗(yàn)流程。能夠利用人臉識(shí)別算法,使用數(shù)據(jù)庫完成用戶注冊(cè);能夠調(diào)用算法識(shí)別的特征數(shù)據(jù)與數(shù)據(jù)庫中的數(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è)的安防檢測(cè)實(shí)驗(yàn)
本實(shí)驗(yàn)將實(shí)現(xiàn)通過調(diào)用opencv模塊、人臉檢測(cè)算法庫、sqlite3模塊、serial模塊對(duì)采集的圖像進(jìn)行人臉檢測(cè),如果不是注冊(cè)用戶,則打開紅燈。任務(wù)描述任務(wù)要求使用人臉檢測(cè)算法提取人臉特征并注冊(cè)到數(shù)據(jù)庫;使用人臉檢測(cè)算法將新采集的人臉圖像與數(shù)據(jù)庫中的數(shù)據(jù)計(jì)算相似度;如果識(shí)別未注冊(cè)人員,則開啟紅燈預(yù)警。任務(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è)的安防檢測(cè)實(shí)驗(yàn)任務(wù)分析安防系統(tǒng)構(gòu)建可能會(huì)涉及到哪些步驟?根據(jù)自己的了解說說安防系統(tǒng)原理?任務(wù)分析與計(jì)劃03任務(wù)計(jì)劃表項(xiàng)目名稱基于人臉檢測(cè)算法實(shí)現(xiàn)家用設(shè)備的控制任務(wù)名稱基于人臉檢測(cè)的安防檢測(cè)實(shí)驗(yàn)計(jì)劃方式自主設(shè)計(jì)計(jì)劃要求請(qǐng)用5個(gè)計(jì)劃步驟來完整描述出如何完成本次任務(wù)序號(hào)任務(wù)計(jì)劃1
2
3
4
5
通過上面的思考,你是否對(duì)本任務(wù)要完成的工作有所了解?讓我們一起來制訂完成本次任務(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è)的安防檢測(cè)實(shí)驗(yàn)04知識(shí)儲(chǔ)備智能安防1數(shù)據(jù)庫2智能安防04智能安防指的是服務(wù)的信息化、圖像的傳輸和存儲(chǔ)技術(shù)。智能安防04物聯(lián)網(wǎng)技術(shù)的普及應(yīng)用,使得城市的安防從過去簡(jiǎn)單的安全防護(hù)系統(tǒng)向城市綜合化體系演變,城市的安防項(xiàng)目涵蓋眾多的領(lǐng)域,有街道社區(qū)、樓宇建筑、銀行郵局、道路監(jiān)控、機(jī)動(dòng)車輛、警務(wù)人員、移動(dòng)物體、船只等。智能安防04(1)視頻監(jiān)控管理
智能視頻監(jiān)控系統(tǒng)是采用圖像處理、模式識(shí)別和計(jì)算機(jī)視覺技術(shù),通過在監(jiān)控系統(tǒng)中增加智能視頻分析模塊,借助計(jì)算機(jī)強(qiáng)大的數(shù)據(jù)處理能力過濾掉視頻畫面無用的或干擾信息、自動(dòng)識(shí)別不同物體,分析抽取視頻源中關(guān)鍵有用信息,快速準(zhǔn)確的定位事故現(xiàn)場(chǎng),判斷監(jiān)控畫面中的異常情況。智能安防應(yīng)用場(chǎng)景智能安防04(2)門禁、智能報(bào)警
智能安防報(bào)警系統(tǒng)是同家庭的各種傳感器、功能鍵、探測(cè)器及執(zhí)行器共同構(gòu)成家庭的安防體系,是家庭安防體系的"大腦"。報(bào)警功能包括防火、防盜、煤氣泄露報(bào)警及緊急求助等功能。智能安防應(yīng)用場(chǎng)景智能安防04(3)消防
常見的就是生活中最常見的煙霧探測(cè)器。一旦煙霧達(dá)到煙感探測(cè)器的值,就會(huì)啟動(dòng)自動(dòng)噴水裝置并發(fā)出警報(bào),管理人員可以根據(jù)終端的反饋及時(shí)趕到現(xiàn)場(chǎng),采取相應(yīng)措施,降低損失。智能安防應(yīng)用場(chǎng)景智能安防04(4)公安行業(yè)
在公安行業(yè)主要用于篩選和跟蹤嫌疑犯人的線索,人工智能可以快速的從錄像選出犯罪嫌疑人的信息并且快速的傳達(dá)到前端,智能機(jī)器只需要幾分鐘就可以完成。智能安防應(yīng)用場(chǎng)景智能安防04(5)大廈、公共場(chǎng)所
人工智能相當(dāng)于人的大腦,處理每天進(jìn)進(jìn)出出的人和車的運(yùn)動(dòng)信息以及實(shí)時(shí)跟蹤定位,還可以區(qū)分是內(nèi)部人還是外來人員,計(jì)算逗留時(shí)間來確保安全。智能安防應(yīng)用場(chǎng)景智能安防04(6)工廠、園區(qū)
人工智能機(jī)器人可以在園區(qū)進(jìn)行巡視,自動(dòng)抓取信息分析并存儲(chǔ),還可以對(duì)是收集到的信息進(jìn)行預(yù)判,一旦遇到緊急情況可以開啟自動(dòng)預(yù)警。智能安防應(yīng)用場(chǎng)景智能安防04(7)在交通方面
人工智能的切入,可實(shí)時(shí)知道各條路的情況是怎樣的,如果哪條路出現(xiàn)險(xiǎn)情,人工智能可快速篩選出最近的最通暢的路線讓大家更好的出行,節(jié)省時(shí)間。智能安防應(yīng)用場(chǎng)景智能安防04(8)民用安防
民用安防現(xiàn)在使用最多,近年來入室盜竊案越來越多,家居安全成了大家關(guān)注的焦點(diǎn),人工智能現(xiàn)在可以做到家里沒人的情況下自動(dòng)布防,如果有人闖入就會(huì)自動(dòng)報(bào)警并且通知家人,等家庭成員回來時(shí)可以撤防確保隱私安全。智能安防應(yīng)用場(chǎng)景04知識(shí)儲(chǔ)備智能安防1數(shù)據(jù)庫2數(shù)據(jù)庫04數(shù)據(jù)庫是“按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲(chǔ)和管理數(shù)據(jù)的倉庫”。是一個(gè)長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、有組織的、可共享的、統(tǒng)一管理的大量數(shù)據(jù)的集合。數(shù)據(jù)庫04數(shù)據(jù)庫是一個(gè)按數(shù)據(jù)結(jié)構(gòu)來存儲(chǔ)和管理數(shù)據(jù)的計(jì)算機(jī)軟件系統(tǒng)。數(shù)據(jù)庫的概念實(shí)際包括兩層意思:(1)數(shù)據(jù)庫是一個(gè)實(shí)體,它是能夠合理保管數(shù)據(jù)的“倉庫”,用戶在該“倉庫”中存放要管理的事務(wù)數(shù)據(jù),“數(shù)據(jù)”和“庫”兩個(gè)概念結(jié)合成為數(shù)據(jù)庫。(2)數(shù)據(jù)庫是數(shù)據(jù)管理的新方法和技術(shù),它能更合適的組織數(shù)據(jù)、更方便的維護(hù)數(shù)據(jù)、更嚴(yán)密的控制數(shù)據(jù)和更有效的利用數(shù)據(jù)。數(shù)據(jù)庫04DB:數(shù)據(jù)庫(Database)即存儲(chǔ)數(shù)據(jù)的“倉庫”。它保存了一系列有組織的數(shù)據(jù)。DBMS:數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem):是一種操縱和管理數(shù)據(jù)庫的大型軟件,例如建立、使用和維護(hù)數(shù)據(jù)庫。數(shù)據(jù)庫04目前互聯(lián)網(wǎng)上常見的數(shù)據(jù)庫管理軟件有Sybase、DB2、Oracle、MySQL、Access、VisualFoxpro(面向?qū)ο笮停SSQLServer、Informix、PostgreSQL(對(duì)象-關(guān)系型)這幾種。以下是2017年StackOverflow對(duì)各數(shù)據(jù)庫受歡迎程度進(jìn)行調(diào)查后的統(tǒng)計(jì)結(jié)果:數(shù)據(jù)庫04SELECT-從數(shù)據(jù)庫中提取數(shù)據(jù)UPDATE-更新數(shù)據(jù)庫中的數(shù)據(jù)DELETE-從數(shù)據(jù)庫中刪除數(shù)據(jù)INSERTINTO-向數(shù)據(jù)庫中插入新數(shù)據(jù)CREATEDATABASE-創(chuàng)建新數(shù)據(jù)庫ALTERDATABASE-修改數(shù)據(jù)庫CREATETABLE-創(chuàng)建新表ALTERTABLE-變更(改變)數(shù)據(jù)庫表DROPTABLE-刪除表CREATEINDEX-創(chuàng)建索引(搜索鍵)DROPINDEX-刪除索引SQL命令數(shù)據(jù)庫04
SQLite是一種C語言庫,實(shí)現(xiàn)了自給自足的、無服務(wù)器的、零配置的、事務(wù)性的SQL數(shù)據(jù)庫引擎。SQLite是世界上最常用的數(shù)據(jù)庫引擎。SQLite內(nèi)置于所有手機(jī)和大多數(shù)計(jì)算機(jī)中,并捆綁在人們每天使用的無數(shù)其他應(yīng)用程序中。SQLite源碼是開源的,任何人在不同的應(yīng)用場(chǎng)景中都可以免費(fèi)的使用SQLite。數(shù)據(jù)庫04DDL-數(shù)據(jù)定義語言命令描述CREATE創(chuàng)建一個(gè)新的表,一個(gè)表的視圖,或者數(shù)據(jù)庫中的其他對(duì)象。ALTER修改數(shù)據(jù)庫中的某個(gè)已有的數(shù)據(jù)庫對(duì)象,比如一個(gè)表。DROP刪除整個(gè)表,或者表的視圖,或者數(shù)據(jù)庫中的其他對(duì)象。DML-數(shù)據(jù)操作語言命令描述INSERT創(chuàng)建一條記錄。UPDATE修改記錄。DELETE刪除記錄。DQL-數(shù)據(jù)查詢語言命令描述SELECT從一個(gè)或多個(gè)表中檢索某些記錄。數(shù)據(jù)庫04不需要一個(gè)單獨(dú)的服務(wù)器進(jìn)程或操作的系統(tǒng)(無服務(wù)器的)。SQLite不需要配置,這意味著不需要安裝或管理。一個(gè)完整的SQLite數(shù)據(jù)庫是存儲(chǔ)在一個(gè)單一的跨平臺(tái)的磁盤文件。SQLite是非常小的,是輕量級(jí)的,完全配置時(shí)小于400KiB,省略可選功能配置時(shí)小于250KiB。SQLite是自給自足的,這意味著不需要任何外部的依賴。SQLite事務(wù)是完全兼容ACID的,允許從多個(gè)進(jìn)程或線程安全訪問。SQLite支持SQL92(SQL2)標(biāo)準(zhǔn)的大多數(shù)查詢語言的功能。SQLite使用ANSI-C編寫的,并提供了簡(jiǎn)單和易于使用的API。SQLite可在UNIX(Linux,MacOS-X,Android,iOS)和Windows(Win32,WinCE,WinRT)中運(yùn)行。SQLite數(shù)據(jù)庫優(yōu)點(diǎn)職業(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è)的安防檢測(cè)實(shí)驗(yàn)05實(shí)驗(yàn)流程圖05任務(wù)實(shí)施提取人臉特征寫入數(shù)據(jù)庫2利用opencv采集圖片1人臉識(shí)別比對(duì)3安防報(bào)警4利用opencv采集圖片05importcv2dWindow('image_win',flags=cv2.WINDOW_NORMAL|cv2.WINDOW_KEEPRATIO|cv2.WINDOW_GUI_EXPANDED)cv2.setWindowProperty('image_win',cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)#全屏展示cap=cv2.VideoCapture(0)time.sleep(2)#2秒后拍照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()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ù)庫2利用opencv采集圖片1人臉識(shí)別比對(duì)3安防報(bào)警43注冊(cè)用戶1提取人臉特征2sqlite3數(shù)據(jù)庫的使用提取人臉特征寫入數(shù)據(jù)庫05提取人臉特征寫入數(shù)據(jù)庫調(diào)用人臉識(shí)別的算法,提取特征,寫入數(shù)據(jù)庫。提取人臉特征寫入數(shù)據(jù)庫051.提取人臉特征人臉識(shí)別算法包含了特征提取的接口。將獲取到的特征值,轉(zhuǎn)化為python可讀的數(shù)據(jù)數(shù)組類型。fromlib.faceDetectimportNLFaceDetect導(dǎo)入人臉識(shí)別算法接口類;nlFaceDetect=NLFaceDetect(libNamePath)實(shí)例化算法接口對(duì)象,執(zhí)行沒有報(bào)錯(cuò),表示實(shí)例化成功;nlFaceDetect.NL_FD_ComInit(configPath)加載模型和配置,并初始化,執(zhí)行沒有報(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ù)庫051.提取人臉特征(1)人臉對(duì)齊:人臉對(duì)齊任務(wù)即根據(jù)輸入的人臉圖像,自動(dòng)定位出面部關(guān)鍵特征點(diǎn),如左眼,右眼,鼻子,左嘴角,右嘴角等;(2)人臉特征提?。喝四樚卣魈崛?,即獲取人臉關(guān)鍵點(diǎn)的特征值,該算法,人臉特征是長(zhǎng)度為512的數(shù)組。提取人臉特征寫入數(shù)據(jù)庫052.
sqlite3數(shù)據(jù)庫的使用
SQLite是一個(gè)軟件庫,實(shí)現(xiàn)了自給自足的、無服務(wù)器的、零配置的、事務(wù)性的SQL數(shù)據(jù)庫引擎。SQLite是在世界上最廣泛部署的SQL數(shù)據(jù)庫引擎。SQLite源代碼不受版權(quán)限制。(1)注冊(cè)函數(shù)conn=sqlite3.connect("face.db")創(chuàng)建或連接一個(gè)數(shù)據(jù)庫;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ù)庫importtimedefregister_user(user_name,feature):conn=sqlite3.connect("face.db")#連接數(shù)據(jù)庫
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語句
cursor.execute(insert_user_table)#執(zhí)行插入數(shù)據(jù)sql語句
exceptExceptionase:#數(shù)據(jù)表已存在
cursor.execute(insert_user_table)#執(zhí)行插入數(shù)據(jù)sql語句
mit()#提交執(zhí)行結(jié)果
cursor.close()#關(guān)閉游標(biāo)
conn.close()#關(guān)閉對(duì)數(shù)據(jù)庫的連接提取人臉特征寫入數(shù)據(jù)庫052.
sqlite3數(shù)據(jù)庫的使用提取人臉特征寫入數(shù)據(jù)庫052.
sqlite3數(shù)據(jù)庫的使用(2)讀取函數(shù)read_cmd="select*fromuserORDERBYidDESC;"讀取所有用戶信息,按id值的倒敘排列,也就是最新插入的在最前面。defread_user():read_cmd="select*fromuserORDERBYidDESC;"#查詢數(shù)據(jù)sql語句
res_list=[]#存儲(chǔ)查詢結(jié)果列表
try:conn=sqlite3.connect("face.db")#連接數(shù)據(jù)庫
cursor=conn.cursor()#創(chuàng)建一個(gè)游標(biāo)cursonres=cursor.execute(read_cmd)#執(zhí)行查詢數(shù)據(jù)sql語句
forrinres:res_list.append(r)#將查詢結(jié)果存入列表
mit()#提交執(zhí)行結(jié)果
cursor.close()#關(guān)閉游標(biāo)
conn.close()#關(guān)閉對(duì)數(shù)據(jù)庫的連接
exceptExceptionase:print('sqlerror:'+str(e))returnres_list提取人臉特征寫入數(shù)據(jù)庫053.注冊(cè)用戶
判斷是否有人臉數(shù)據(jù)特征,將獲取到的特征注冊(cè)到數(shù)據(jù)庫中,并使用讀取函數(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ù)庫2利用opencv采集圖片1人臉識(shí)別比對(duì)3安防報(bào)警41采集新圖片2人臉識(shí)別比對(duì)人臉識(shí)別比對(duì)05人臉識(shí)別比對(duì)調(diào)用算法,識(shí)別一張新的圖片,然后和數(shù)據(jù)庫的數(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ù)庫2利用opencv采集圖片1人臉識(shí)別比對(duì)3安防報(bào)警43實(shí)現(xiàn)燈光預(yù)警1實(shí)例化串口對(duì)象2控制燈光安防報(bào)警05安防報(bào)警安防報(bào)警05importtimeimportserialser=serial.Serial("/dev/ttyS0",baudrate=9600,timeout=0.5)1.實(shí)例化一個(gè)串口對(duì)象串口通信是指外設(shè)和計(jì)算機(jī)間,通過數(shù)據(jù)信號(hào)線、地線、控制線等,按位進(jìn)行傳輸數(shù)據(jù)的一種通訊方式。這種通信方式使用的數(shù)據(jù)線少,在遠(yuǎn)距離通信中可以節(jié)約通信成本,但其傳輸速度比并行傳輸?shù)汀4谑怯?jì)算機(jī)上一種非常通用的設(shè)備通信協(xié)議。serial.Serial(name,baudrate,timeout,bytesize,writeTimeout,port)參數(shù)說明:name:串口在板上的端口號(hào)baudrate:串口波特率timeout:讀超時(shí)時(shí)長(zhǎng)bytesize:字節(jié)大小writeTimeout:寫超時(shí)port:讀或者寫端口安防報(bào)警05打開紅燈ser.flushInput()#清除串口寫入緩存ser.flushOutput()#清除串口輸出緩存command='FE050002FF0039F5'#打開紅燈命令cmd=bytes.fromhex(command)ser.write(cmd)#對(duì)串口寫入指令2.控制燈光三色燈的控制,采用的RS485串口控制,RS485采用的通信協(xié)議是Modbus。而Modbus協(xié)議傳輸數(shù)據(jù)使用的是HEX形式的字符。若要獲得傳感器DI值,就要將command轉(zhuǎn)換成HEX形式。也就是將16進(jìn)制轉(zhuǎn)換成字符串。使用formhex()函數(shù),對(duì)command進(jìn)行轉(zhuǎn)換。三色燈有經(jīng)過繼電器,和4150數(shù)據(jù)模塊DO口。開發(fā)板通過串口控制數(shù)字量模塊的DO口,來控制繼電器的開關(guān),進(jìn)而控制燈光。關(guān)閉紅燈ser.flushInput()#清除串口寫入緩存ser.flushOutput()#清除串口輸出緩存command='FE05000200007805'#關(guān)閉紅燈命令cmd=bytes.fromhex(command)ser.write(cmd)#對(duì)串口寫入指令安防報(bào)警05importcv2importserialdWindow('image_win',flags=cv2.WINDOW_NORMAL|cv2.WINDOW_KEEPRATIO|cv2.WINDOW_GUI_EXPANDED)cv2.setWindowProperty('image_win',cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)#全屏展示cap=cv2.VideoCapture(0)#實(shí)例化攝像頭cap.set(cv2.CAP_PROP_FRAME_WIDTH,640)#設(shè)置采集圖片的分辨率寬為640cap.set(cv2.CAP_PROP_FRAME_HEIGHT,480)#設(shè)置采集圖片的分辨率高為480time.sleep(2)#2秒后拍照ret,image=cap.read()#采集一幀圖片,并將返回的狀態(tài)賦給變量ret,圖片數(shù)據(jù)賦給變量imagecv2.imshow('image_win',image)#顯示采集的圖片cv2.waitKey(5000)#等待5000毫秒cap.release()#釋放攝像頭cv2.destroyAllWindows()#關(guān)閉所有窗口print(ret)3.實(shí)現(xiàn)燈光預(yù)警步驟1:采集人臉照片。采集一張沒有注冊(cè)過的人臉。安防報(bào)警053.實(shí)現(xiàn)燈光預(yù)警步驟2:人臉對(duì)比。利用前面注冊(cè)的數(shù)據(jù),調(diào)用人臉識(shí)別算法,實(shí)現(xiàn)人臉識(shí)別比對(duì)。安防報(bào)警05importtimeimportserialser=serial.Serial("/dev/ttyS0",baudrate=9600,timeout=0.5)#實(shí)例化串口對(duì)象ifnotresult_state:#如果人臉驗(yàn)證失敗
i=0whilei<2:#打開紅燈
ser.flushInput()#清楚串口寫入緩存
ser.flushOutput()#清楚串口輸出緩存
command='FE050002FF0039F5'#打開紅燈
cmd=bytes.fromhex(command)ser.write(cmd)#指令寫入串口
time.sleep(1)#休眠1秒防止代碼運(yùn)行過快導(dǎo)致開關(guān)燈的操作跟不上
#關(guān)閉紅燈
ser.flushInput()#清楚串口寫入緩存
ser.flushOutput()#清楚串口輸出緩存
command='FE05000200007805'#關(guān)閉紅燈
cmd=bytes.fromhex(command)ser.write(cmd)#指令寫入串口
time.sleep(1)#休眠1秒防止代碼運(yùn)行過快導(dǎo)致開關(guān)燈的操作跟不上
i+=1ser.close()3.實(shí)現(xiàn)燈光預(yù)警步驟3:紅
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度能源項(xiàng)目合同財(cái)產(chǎn)保全擔(dān)保書范本3篇
- 2025年度個(gè)人裝修貸款協(xié)議書3篇
- 二零二五年度60歲以上人員社區(qū)教育輔導(dǎo)勞動(dòng)合同模板3篇
- 2024-2025學(xué)年新教材高中政治第3單元就業(yè)與創(chuàng)業(yè)單元綜合提升教案新人教版選擇性必修2
- 2025版智能交通管理系統(tǒng)建設(shè)運(yùn)營履約擔(dān)保合同4篇
- 2025年度噴灌系統(tǒng)節(jié)能改造技術(shù)合同4篇
- 2025年度在線教育平臺(tái)兼職外教遠(yuǎn)程教學(xué)合同4篇
- 2025年度宿舍管理員職業(yè)發(fā)展規(guī)劃聘用合同
- 二零二五年度駕校教練員職業(yè)發(fā)展承包合同3篇
- 2025年度馬賽克材料研發(fā)與應(yīng)用采購合同4篇
- C及C++程序設(shè)計(jì)課件
- 帶狀皰疹護(hù)理查房
- 公路路基路面現(xiàn)場(chǎng)測(cè)試隨機(jī)選點(diǎn)記錄
- 平衡計(jì)分卡-化戰(zhàn)略為行動(dòng)
- 國家自然科學(xué)基金(NSFC)申請(qǐng)書樣本
- 幼兒教師干預(yù)幼兒同伴沖突的行為研究 論文
- 湖南省省級(jí)溫室氣體排放清單土地利用變化和林業(yè)部分
- 材料設(shè)備驗(yàn)收管理流程圖
- 培訓(xùn)機(jī)構(gòu)消防安全承諾書范文(通用5篇)
- (完整版)建筑業(yè)10項(xiàng)新技術(shù)(2017年最新版)
- 第8期監(jiān)理月報(bào)(江蘇版)
評(píng)論
0/150
提交評(píng)論