《嵌入式人工智能技術(shù)應(yīng)用》課件 1.1-使用OpenCV實(shí)現(xiàn)人臉檢測(cè)_第1頁(yè)
《嵌入式人工智能技術(shù)應(yīng)用》課件 1.1-使用OpenCV實(shí)現(xiàn)人臉檢測(cè)_第2頁(yè)
《嵌入式人工智能技術(shù)應(yīng)用》課件 1.1-使用OpenCV實(shí)現(xiàn)人臉檢測(cè)_第3頁(yè)
《嵌入式人工智能技術(shù)應(yīng)用》課件 1.1-使用OpenCV實(shí)現(xiàn)人臉檢測(cè)_第4頁(yè)
《嵌入式人工智能技術(shù)應(yīng)用》課件 1.1-使用OpenCV實(shí)現(xiàn)人臉檢測(cè)_第5頁(yè)
已閱讀5頁(yè),還剩40頁(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)介

項(xiàng)目一使用OpenCV實(shí)現(xiàn)人臉檢測(cè)嵌入式人工智能技術(shù)應(yīng)用項(xiàng)目引導(dǎo)案例隨著電子商務(wù)等應(yīng)用的發(fā)展,人臉識(shí)別成為最有潛力的生物身份驗(yàn)證手段,這種應(yīng)用背景要求自動(dòng)人臉識(shí)別系統(tǒng)能夠?qū)σ话銏D像具有一定的識(shí)別能力,由此所面臨的一系列問(wèn)題使得人臉檢測(cè)開(kāi)始作為一個(gè)獨(dú)立的課題受到研究者的重視。今天,人臉檢測(cè)的應(yīng)用背景已經(jīng)遠(yuǎn)遠(yuǎn)超出了人臉識(shí)別系統(tǒng)的范疇,在基于內(nèi)容的檢索、視頻目標(biāo)檢測(cè)等方面有著重要的應(yīng)用價(jià)值。思考一下,大家見(jiàn)過(guò)哪些場(chǎng)合用到人臉檢測(cè)?項(xiàng)目引導(dǎo)案例OpenCV實(shí)現(xià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ù)一OpenCV實(shí)現(xiàn)圖像的讀取與保存了解opencv的使安裝方法;掌握opencv讀取圖像方式;掌握opencv存儲(chǔ)圖像方式。能使用VideoCapture方法實(shí)例化攝像頭對(duì)象;能使用set方法設(shè)置采集圖像的像素;能使用namedWindow方法構(gòu)建圖像窗口;能使用read方法讀取圖像;能使用imshow方法展示圖像;能使用imwrite方法保存圖像。職業(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ù)一OpenCV實(shí)現(xiàn)圖像的讀取與保存

本實(shí)驗(yàn)將實(shí)現(xiàn)使用USB攝像頭完成圖像采集、圖像顯示以及圖像保存。任務(wù)描述任務(wù)要求使用VideoCapture方法實(shí)例化攝像頭對(duì)象;使用set方法設(shè)置采集圖像的像素;使用namedWindow方法構(gòu)建圖像窗口;使用read方法讀取圖像;使用imshow方法展示圖像;使用imwrite方法保存圖像。任務(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ù)一OpenCV實(shí)現(xiàn)圖像的讀取與保存任務(wù)分析實(shí)現(xiàn)opencv采集圖像可能會(huì)涉及到哪些步驟?根據(jù)自己的了解可能會(huì)用到哪些硬件和軟件?任務(wù)分析與計(jì)劃03任務(wù)計(jì)劃表項(xiàng)目名稱使用OpenCV實(shí)現(xiàn)人臉檢測(cè)任務(wù)名稱OpenCV實(shí)現(xiàn)圖像的讀取與保存計(jì)劃方式自主設(shè)計(jì)計(jì)劃要求請(qǐng)用9個(gè)計(jì)劃步驟來(lái)完整描述出如何完成本次任務(wù)序號(hào)任務(wù)計(jì)劃1

2

3

4

5

6

789通過(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ù)一OpenCV實(shí)現(xiàn)圖像的讀取與保存OpenCV204知識(shí)儲(chǔ)備JupyterLab1Linux硬件設(shè)備3組成部分04菜單欄啟動(dòng)項(xiàng)文件欄插件欄交互模式Python交互式模式可以直接輸入代碼,然后執(zhí)行,并立刻得到結(jié)果模塊化界面可以在同一個(gè)窗口同時(shí)打開(kāi)好幾個(gè)notebook或文件同一文檔多視圖使你能夠?qū)崟r(shí)同步編輯文檔并查看結(jié)果

支持多種數(shù)據(jù)格式你可以查看并處理多種數(shù)據(jù)格式主要特點(diǎn)04菜單功能文件文件和目錄有關(guān)的操作編輯編輯文檔和其他活動(dòng)有關(guān)的動(dòng)作。查看更改JupyterLab外觀的動(dòng)作運(yùn)行用于在不同活動(dòng)(例如筆記本和代碼控制臺(tái))中運(yùn)行代碼的動(dòng)作內(nèi)核用于管理內(nèi)核的操作,內(nèi)核是運(yùn)行代碼的獨(dú)立過(guò)程標(biāo)簽??棵姘逯写蜷_(kāi)的文檔和活動(dòng)的列表設(shè)置常用設(shè)置和高級(jí)設(shè)置編輯器編輯JupyterLab和內(nèi)核幫助鏈接的列表JupyterLab菜單欄菜單欄04操作按鈕功能

保存內(nèi)容,并創(chuàng)建檢查點(diǎn)下方插入單元格剪切選中的單元格復(fù)制選中的單元格從剪切板粘貼單元格運(yùn)行選定的單元格并向前移動(dòng)終端內(nèi)核JupyterLab和內(nèi)核幫助鏈接的列表重啟內(nèi)核,并重新運(yùn)行整個(gè)notebook單元格狀態(tài)JupyterLab用戶界面操作欄用戶界面操作欄04快捷鍵功能Enter

轉(zhuǎn)入編輯模式Shift-Enter運(yùn)行本單元,選中下個(gè)單元Ctrl-Enter運(yùn)行本單元Alt-Enter運(yùn)行本單元,在其下插入新單元Y單元轉(zhuǎn)入代碼狀態(tài)M單元轉(zhuǎn)入markdown狀態(tài)R單元轉(zhuǎn)入raw狀態(tài)A在上方插入新單元B在下方插入新單元DD刪除選中單元格JupyterLab常用快捷鍵常用快捷鍵04OpenCV04知識(shí)儲(chǔ)備JupyterLab21Linux硬件設(shè)備3

Opencv簡(jiǎn)介04

OpenCV是一個(gè)基于Apache2.0許可(開(kāi)源)發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù),可以運(yùn)行在Linux、Windows、Android和MacOS操作系統(tǒng)上。它輕量級(jí)而且高效——由一系列C函數(shù)和少量C++類構(gòu)成,同時(shí)提供了Python、Ruby、MATLAB等語(yǔ)言的接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法。GaryBradsky于1999年在英特爾創(chuàng)立OpenCV,并于2000年發(fā)布第一個(gè)版本。OpenCV現(xiàn)在支持與計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)相關(guān)的眾多算法,并且正在日益擴(kuò)展。OpenCV支持各種編程語(yǔ)言,如C++、Python、Java等,可在不同的操作系統(tǒng)上使用。04OpenCV概述思考一下,OpenCV可在哪些操作系統(tǒng)上使用?

OpenCV致力于真實(shí)世界的實(shí)時(shí)應(yīng)用,通過(guò)優(yōu)化的C代碼的編寫(xiě)對(duì)其執(zhí)行速度帶來(lái)了可觀的提升,并且可以通過(guò)購(gòu)買Intel的IPP高性能多媒體函數(shù)庫(kù)(IntegratedPerformancePrimitives)得到更快的處理速度。圖1為OpenCV與當(dāng)前其他主流視覺(jué)函數(shù)庫(kù)的性能比較。04OpenCV優(yōu)勢(shì)優(yōu)勢(shì):

Opencv-python簡(jiǎn)介04

opencv-python是由opencvC++實(shí)現(xiàn)并封裝的Python庫(kù)旨在解決計(jì)算機(jī)視覺(jué)問(wèn)題。opencv-python使用numpy,這是一個(gè)高度優(yōu)化的數(shù)據(jù)操作庫(kù),具有Matlab風(fēng)格的語(yǔ)法。所有OpenCV數(shù)組結(jié)構(gòu)都轉(zhuǎn)換為numpy數(shù)組。這也使得與使用numpy的其他庫(kù)(如scipy和matplotlib)集成更容易。

與C/C++等語(yǔ)言相比,Python速度較慢。也就是說(shuō),Python可以使用C/C++輕松擴(kuò)展,這使我們可以在C/C++中編寫(xiě)計(jì)算密集型代碼,并創(chuàng)建可用作Python模塊的Python包裝器。這給我們帶來(lái)了兩個(gè)好處:①

代碼與原始C/C++代碼一樣快(因?yàn)樗窃诤笈_(tái)工作的實(shí)際C++代碼),②

在Python中編寫(xiě)代碼比使用C/C++更容易。OpenCV-Python是原始OpenCVC++實(shí)現(xiàn)的Python包裝器。04OpenCV-python優(yōu)勢(shì)優(yōu)勢(shì):VideoCapture()05創(chuàng)建VideoCapture對(duì)象的時(shí)候,我們需要傳入一個(gè)合適的攝像頭編號(hào)。cv2.VideoCapture(0)VideoCapture()05參數(shù)說(shuō)明:VideCapture接受的參數(shù)為序號(hào)0:默認(rèn)為開(kāi)發(fā)板上的攝像頭(如果有的話)/USB攝像頭webcam1:USB攝像頭22:USB攝像頭3以此類推-1:代表最新插入的USB設(shè)備cap=cv2.VideoCapture(0)實(shí)例化一個(gè)對(duì)象賦值給captime.sleep(2)設(shè)置睡眠2秒,為了給攝像頭有打開(kāi)的時(shí)間OpenCV04知識(shí)儲(chǔ)備JupyterLab21Linux硬件設(shè)備32Linux硬件設(shè)備05linux是以什么方式訪問(wèn)設(shè)備?

linux中是以訪問(wèn)文件的方式訪問(wèn)設(shè)備。就是將設(shè)備當(dāng)做一個(gè)特殊的文件來(lái)進(jìn)行讀寫(xiě)等操作。因?yàn)長(zhǎng)inux系統(tǒng)將所有的硬件設(shè)備都當(dāng)做文件來(lái)處理,當(dāng)使用光驅(qū)等硬件設(shè)備時(shí),就必須將其掛載到系統(tǒng)中,只有這樣Linux才能識(shí)別。當(dāng)在Linux系統(tǒng)中使用這些硬件設(shè)備時(shí),只有將Linux本身的文件目錄與硬件設(shè)備的文件目錄合二為一,硬件設(shè)備才能為我們所用。合二為一的過(guò)程稱為“掛載”。如果不掛載,通過(guò)Linux系統(tǒng)中的圖形界面系統(tǒng)可以查看找到硬件設(shè)備,但命令行方式無(wú)法找到。Linux硬件設(shè)備05在linux中任何對(duì)象都是文件,查看當(dāng)前是否有攝像頭掛載到Ubuntu上,可以執(zhí)行下面的命令行:-l:列出文件的詳細(xì)信息。-t:以時(shí)間排序。-r:對(duì)目錄反向排序。-h:顯示出了文件的大小ls參數(shù):/dev/video*:表示/dev/目錄下所有以video為開(kāi)頭的文件!ls-ltrh/dev/video*職業(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ù)一OpenCV實(shí)現(xiàn)圖像的讀取與保存05任務(wù)實(shí)施圖像的讀取與顯示2Linux下查看USB攝像頭設(shè)備1利用opencv采集圖像05!ls-ltrh/dev/video*查看video設(shè)備在linux中任何對(duì)象都是文件,查看當(dāng)前是否有攝像頭掛載到Ubuntu上,可以執(zhí)行下面的命令行:!ls-ltrh/dev/video*ls參數(shù):-l:列出文件的詳細(xì)信息;-t:以時(shí)間排序;-r:對(duì)目錄反向排序;-h:顯示出了文件的大小。/dev/video*:表示/dev/目錄下所有以video為開(kāi)頭的文件。05任務(wù)實(shí)施圖像的讀取與顯示2Linux下查看USB攝像頭設(shè)備142設(shè)置與創(chuàng)建顯示畫(huà)面1創(chuàng)建攝像頭實(shí)例3圖像讀取與顯示圖像保存與釋放資源圖像的讀取與顯示05圖像的讀取與顯示已經(jīng)查看到攝像頭信息,接下來(lái)使用opencv從USB攝像頭讀取圖像,并在開(kāi)發(fā)板中顯示出來(lái)。圖像的讀取與顯示05importcv21.創(chuàng)建攝像頭實(shí)例(1)導(dǎo)入cv2python-opencv在python中的包名稱叫做cv2。cv2實(shí)現(xiàn)圖像處理和計(jì)算機(jī)視覺(jué)方面的很多通用算法。cap=cv2.VideoCapture(0)(2)創(chuàng)建攝像頭實(shí)例opencv讀取usb攝像頭的圖像,需要用到VideoCapture類,創(chuàng)建VideoCapture對(duì)象的時(shí)候,我們需要傳入一個(gè)合適的攝像頭編號(hào)。cv2.VideoCapture(0)參數(shù)說(shuō)明:VideCapture接受的參數(shù)為序號(hào);0:默認(rèn)為開(kāi)發(fā)板上的攝像頭(如果有的話)/USB攝像頭webcam;1:USB攝像頭2;2:USB攝像頭3以此類推;-1:代表最新插入的USB設(shè)備。05cap.set(cv2.CAP_PROP_FRAME_WIDTH,1920)#畫(huà)面寬度設(shè)定為1920cap.set(cv2.CAP_PROP_FRAME_HEIGHT,1080)#畫(huà)面高度度設(shè)定為10802.設(shè)置與創(chuàng)建顯示畫(huà)面(1)設(shè)置顯示畫(huà)面接下來(lái)利用cap.set方法對(duì)窗口像素進(jìn)行設(shè)置

cap.set(propId,value)參數(shù)說(shuō)明:propId表示VideoCaptureProperties中的屬性標(biāo)識(shí)符。cv2.CAP_PROP_FRAME_WIDTH表示設(shè)置攝像頭采集畫(huà)面寬的像素大??;cv2.CAP_PROP_FRAME_HEIGHT表示設(shè)置攝像頭采集畫(huà)面高的像素大小。value表示屬性標(biāo)識(shí)符的值,下面代碼中,把采集畫(huà)面像素寬度設(shè)置為1920,高度設(shè)置為1080。dWindow('image_win',flags=cv2.WINDOW_NORMAL|cv2.WINDOW_KEEPRATIO|cv2.WINDOW_GUI_EXPANDED)cv2.setWindowProperty('image_win',cv2.WND_PROP_FULLSCREEN,cv2.WINDOW_FULLSCREEN)#全屏展示(2)創(chuàng)建顯示窗口dWindow(winname,flags):構(gòu)建視頻的窗口,用于放置圖片。參數(shù)說(shuō)明:winname:表示窗口的名字,可用作窗口標(biāo)識(shí)符的窗口名稱。flags:用于設(shè)置窗口的屬性,常用屬性如下:WINDOW_NORMAL:可以調(diào)整大小窗口;WINDOW_KEEPRATIO:保持圖像比例;WINDOW_GUI_EXPANDED:繪制一個(gè)新的增強(qiáng)GUI窗口。圖像的讀取與顯示圖像的讀取與顯示05ret,frame=<1>3.圖像讀取與顯示(1)讀取圖像使用cap.read()獲取一幀圖片,cap.read()返回值有兩個(gè),分別賦值給ret,frame。ret:若畫(huà)面讀取成功,則返回True,反之返回False;frame:是讀取到的圖片對(duì)象(numpy的ndarray格式)。cv2.imshow('image_win',frame)cv2.waitKey(100)(2)顯示圖片cv2.imshow(winname,mat)函數(shù)可以在窗口中顯示圖像。參數(shù)說(shuō)明:winname:窗口名稱(也就是我們對(duì)話框的名稱),它是一個(gè)字符串類型;mat:是一幀的畫(huà)面圖像??梢詣?chuàng)建任意數(shù)量的窗口,但必須使用不同的窗口名稱;cv2.waitKey:waitkey控制著imshow的持續(xù)時(shí)間;當(dāng)imshow之后不跟waitkey時(shí),相當(dāng)于沒(méi)有給imshow提供時(shí)間展示圖像,只會(huì)有一個(gè)空窗口一閃而過(guò);cv2.waitKey(100)表示窗口中顯示圖像時(shí)間為100毫秒;cv2.imshow之后一定要跟cv2.waitKey函數(shù)。圖像的讀取與顯示05cv2.imwrite('圖像保存.png',frame)4.圖像保存與釋放資源(1)保存圖片cv2.imwrite(filename,img)。參數(shù)說(shuō)明:filename:要保存的文件名;img:要保存的圖像。cap.release()#釋放VideoCapturecv2.destroyAllWindows()#銷毀所有的窗口(2)釋放資源cap.release():停止捕獲視頻,用cv2.VideoCapture(0)創(chuàng)建對(duì)象,操作結(jié)束后要用cap.release()來(lái)釋放資源,否則會(huì)占用攝像頭導(dǎo)致攝像頭無(wú)法被其他程序使用;cv2.destroyAllWindows():用來(lái)刪除所有窗口。職業(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ù)一OpenCV實(shí)現(xiàn)圖像的讀取與保存任務(wù)檢查與評(píng)價(jià)06序號(hào)評(píng)價(jià)內(nèi)容評(píng)價(jià)標(biāo)準(zhǔn)分值得分1知識(shí)運(yùn)用(20%)掌握相關(guān)理論知識(shí),理解本次任務(wù)要求,制定詳細(xì)計(jì)劃,計(jì)劃條理清晰,邏輯正確(20分)20分

理解相關(guān)理論知識(shí),能根據(jù)本次任務(wù)要求、制定合理計(jì)劃(15分)了解相關(guān)理論知識(shí),有制定計(jì)劃(10分)無(wú)制定計(jì)劃(0分)2專業(yè)技能(40%)完成創(chuàng)建攝像頭實(shí)例、設(shè)置與創(chuàng)建顯示畫(huà)面、圖像讀取與顯示、圖像保存與釋放資源。(40分)40分

溫馨提示

  • 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)論