版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第一章前言局部課程工程背景與意義課程工程背景視覺是各個應用領域,如制造業(yè)、檢驗、文檔分析、醫(yī)療診斷,和軍事等領域中各種智能/例如美國把對計算機視覺的爭論列為對經(jīng)濟和科學有廣泛影響的科學和工程中嚴密地集成在一起。作為一門學科,計算機視覺開頭于60年月初,但在計算機親熱相關,對人類視覺有一個正確的生疏將對計算機視覺的爭論格外有益。Shannon的科學??茖W技術的進展是推動人類社會進步的主要緣由之一,將來社會進一步地朝著科技化、信息化、智能化的方向前進。在信息大爆炸的今日,充分利用這些信息將有助于社會的現(xiàn)代化建設,這其中圖像信息是目前人們生活中最常見的信息。識別系統(tǒng)包括圖像分割、目標關鍵特征提取、目標類別分類三個步驟。Hinton2023Lecun目以提高訓練性能。YOLO課程工程爭論的意義眾所周知,當前是信息時代,信息的獲得、加工、處理以及應用都有了飛躍上,據(jù)一些國外學者所做的統(tǒng)計,人類所獲得外界信息有80%左右是來自眼睛攝為特征的圖像數(shù)據(jù)處理廣泛應用于醫(yī)學、交通、工業(yè)自動化等領域?!怖纭怖?,人臉識別或面部表情識別〕。深度學習的好處是用非監(jiān)視式神經(jīng)網(wǎng)絡,它仿照人腦的機制來解釋數(shù)據(jù),例如圖像,聲音和文本。是一些值為0~255目標檢測并不是一個簡潔解決的任務。生物制藥經(jīng)濟調控等多領域有很大的作用。國內外爭論現(xiàn)狀能否像人類一樣能具有學習力量呢?1959年美國的塞繆爾(Samuel)設計了一個下棋程序,這個程序具有學習力量,它可以在不斷的對弈中改善自己的棋藝。43時也推動了目標識別技術的進展,技術的革總是相互影響的。成了機器視覺領域的爭論熱點,被國內外學者廣泛關注。目標檢測的爭論主要包括了基于視頻圖像的目標檢測和基于靜態(tài)圖片的目標特征的檢測方法?!舶▽陀^世界三維環(huán)境的感知、IBM、Microsoft、麻省理工學院等近幾品投入了市場。VIEWS的車輛交通監(jiān)控原型系統(tǒng)的爭論閱歷,在之前的理論爭論的根底上,自行設計并初步實現(xiàn)了一個擁有完全自主學問產(chǎn)權的交通監(jiān)控原型系統(tǒng)star)。國內其他高校如上海交通大學、北京航空航天大學也對這方面進展了爭論。間互遮擋和人體自遮擋問題,尤其是在擁擠狀態(tài)下,多人的檢測更是難處理。本論文構造本文是基于回歸方法的深度學習目標識別算法YOLO的爭論。的構造。CentOSOpenCVCUDA環(huán)境的搭建。第三章:YOLOYOLOYOLO的創(chuàng)。第四章:訓練數(shù)據(jù)采集與制作。包括訓練數(shù)據(jù)的采集、訓練數(shù)據(jù)的制作。試訓練效果。其次章使用工具介紹及安裝CentOSEnterpriseLinux譯而成。由于出自同樣的源代碼,因此有些要求高度穩(wěn)定性的效勞器以CentOSRedHatEnterpriseLinuxCentOS包含封閉源代碼軟件。的一個發(fā)行版本。CentOSlinuxRedHat版的產(chǎn)品,它是RedHatEnterpriseLinux,CentOSRHELRHELRedHatCentOSREHL術支持和升級效勞。REDHAT;CentOSREDHATAS4CentOSyumREDHATCentOSREDHATASBUG?;陂_源的特性,LinuxLinuxPCUnixLinuxCentOS7.0OpenCVOpenCV:OpenSourceComputerVisionLibrary。OpenCV基于(開源)發(fā)行的跨平臺計算機視覺庫,可以運行在Linux、WindowsMacOSCC++的很多通用算法。CIntelIPP更快的處理速度。OpenCV是一個用于圖像處理分析機器視覺方面的開源函數(shù)庫無論是做它完全是免費的。該庫承受C及C++語言編寫,該庫的全部代碼都經(jīng)過優(yōu)化,計算效率很高由于它更專注于設計成為一種用于實時系統(tǒng)的開源庫OpenCV承受器上面,其運行速度會更快。它的一個目標友好的機器視覺接口函數(shù),從而使得簡單的機器視覺產(chǎn)品可以加速面世。含了橫跨工業(yè)產(chǎn)品檢測、醫(yī)學圖像處理、安防、用戶界面、攝像頭標定、三維成像、機器視覺等領域的超過500個接口函數(shù)。 同時,由于計算機視覺與機器學習密不行分該庫也包含了比較常用的一些機器學習算法圖像機器視覺在安防領域有所應用。并且在航拍圖片、街道圖片中,也要依靠視覺的攝像頭標定、圖像融合等技術。近年來,在入侵檢測、特定目標跟蹤目標檢測人臉檢測人臉識別人臉跟蹤等領域的應用及其廣泛,而這些,僅僅是其應用的冰山一角。(1)數(shù)據(jù)獵取〔OpenCV〕;(2)預處理;(6)分類判別;OpenCVAPI。CUDA隨著顯卡的進展,GPUGPUCPU。如此強大的芯片假設只是作為顯卡就太鋪張了,因此CUDAComputeUnifiedDeviceArchitecture,NVidiaGPUGPUCUDAGPUCOpenCLFortranc++CUDACUDACUDA〔SPA〕和存儲器系統(tǒng)。流處理陣列線程處理器群〕和器〕。GPU的巨大計算力量來自于SPA中的大量計算單元。存儲器系統(tǒng)由幾個局部組成:存儲器掌握器〔MMC〕、固定功能的光柵操作單元〔ROP〕以及二級紋理操作。CUDA將CPU〔Host,而GPU〔CoprocessorGPU,CPUGPUCUDAkernel串行處理步驟共同組成的。CUDA執(zhí)行模型如以下圖:Grid〔網(wǎng)格〕SPAThread〔線程〕SPKernel一個網(wǎng)格〔Grid〕的形式執(zhí)行,每個網(wǎng)格由假設干個線程塊〔block〕組成,每一個線程塊又由假設干個線程〔thread〕組成。在CUDA的架構下,一個程序分為兩個部份:Host端和Device端。Host端是指在CPU上執(zhí)行的部份,而Device端則是在顯示芯片〔GPU〕上執(zhí)行的部份。Device端的程序又稱為“kernel“。通常Host端程序會將數(shù)據(jù)預備好后,復制到顯卡的內存中再由顯示芯片執(zhí)行Device端程序完成后再由Host端程序將結果從顯卡的內存中取回。由于 CPU存取顯卡內存時只能透過 PCIExpress接口,因此速度較慢,因此不能常常進展這類動作,以免降低效率。CPU是不同的。主要的特點包括:latency(等待時間)的問題:CPUcache來削減存取主內存的次數(shù),以避開內存latency影響到執(zhí)行效率。顯示芯片則多半沒有cache〔或很小〕,而利用并行化執(zhí)行的方式來隱蔽內存的latency〔即當?shù)谝环种е噶畹膯栴}:CPU通常利用分支推測等方式來削減分支指令造成的流latency的方式。不過,通常顯示芯片處理分支的效率會比較差。CUDAlatency,并有效利用顯示芯片上的大量執(zhí)行單元。使用CUDA時,thread在執(zhí)行是很正常的。因此,假設不能大量并行化的問題,GPU都交給GPU實現(xiàn)。另外需要留意的是,由于CPU存取顯存時只能通過PCI-Express開頭時將數(shù)據(jù)復制進GPUGPU再將其復制到系統(tǒng)內存中。環(huán)境的搭建一、工程源代碼下載與安裝使用git把工程源代碼下載到本地gitclones://github/pjreddie/darknetgitclones://github/pjreddie/darknet進入工程名目,編譯cddarknetcddarknetmake二、工程名目構造darknet├─cfgdarknet├─cfg├─data工程名目數(shù)據(jù)存放名目./darknetdetectcfg/yolo.cfgyolo.weightsdata/dog.jpg在上述命令中,detect./darknetdetectcfg/yolo.cfgyolo.weightsdata/dog.jpg在上述命令中,detect表示調用darknet的對象識別功能,cfg/yolo.cfg是配yolo.weights步下載的權重數(shù)據(jù),data/dog.jpg圖:├─examples├─include├─python├─scripts├─src├─darknet│ ├─config.php│ ├─common.phpC工程源代碼模塊配置文件模塊函數(shù)文件三、測試對象識別下載官方供給的訓練好的權重數(shù)據(jù)wgets://pjreddie/media/files/yolo.weightswgets://pjreddie/media/files/yolo.weights測試識別對象:執(zhí)行命令:CPU8predictions.jpg,翻開圖片如以下圖所示:四、訓練環(huán)境安裝YUMOpenCVsudoyuminstallopencvsudoyuminstallopencvs://developer.nvidia/cuda-downloads安裝顯卡驅動及其開發(fā)工具包CUDACUDANvidiaGTX860M。CUDAs://developer.nvidia/cuda-downloadslspci|grep-invidia官方還供給了CUDApdfNvidialspci|grep-invidia有任何輸出說明本機有Nvidia顯卡,本機輸出結果如下:01:00.03Dcontroller:NVIDIACorporationGM107M[GeForceGTX860M](reva2)01:00.03Dcontroller:NVIDIACorporationGM107M[GeForceGTX860M](reva2)接下來查看系統(tǒng)內核版本:unameuname-m&&cat/etc/*release該命令會顯示系統(tǒng)架構以及內核版本信息,本機主要的輸出信息如下:x86_64x86_64CentOSCentOSLinuxrelease7.3.1611(Core)gcc--versiongccgcc--versionsudoyuminstallsudoyuminstallkernel-devel-$(uname-r) kernel-headers-$(uname-r)blacklistnouveauoptionsnouveaumodeset=0runfileNouveau3Dblacklistnouveauoptionsnouveaumodeset=0initramfs:sudodracut--forcesudodracut--force./cuda_8.0.61_375.26_linux-run不要登錄,按下ALT+F2進入命令提示符模式,使用root用戶登錄,然后使用 init3命令進入多用戶模式開頭安裝Naidia驅動。執(zhí)行以下命令開頭安裝CUDA:./cuda_8.0.61_375.26_linux-runexportPATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}exportLD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64\${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}CUDACUDAexportPATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}exportLD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64\${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}YOLOMakefileOPENCV=1GPU=0GPU=1,并執(zhí)行make第三章YOLOYOLO與識別方法〔FastR-CNN〕將目標識別任務分類目標區(qū)域推測和類別推測實現(xiàn)在準確率較高的狀況下快速目標檢測與識別,更加適合現(xiàn)場應用環(huán)境。YOLO為一種的目標檢測方法,該方法的特點是實現(xiàn)快速檢測的同時還達45/s155/s。與當前最好系統(tǒng)相比,YOLO推測的假陽性優(yōu)于當前最好的方法。人類視覺系統(tǒng)快速且精準,只需看一眼即可識別圖像中物品及其位置。方法提出目標區(qū)域,然后承受分類器來實現(xiàn)識別。近期的R-CNN類方法承受識別這些boundingboxespost-processingboundingboxesboundingboxes類別概率的單個回歸問題,只需一眼即可檢測目標類別和位置。YOLOYOLOboundingboxes:本方法相對于傳統(tǒng)方法有如下優(yōu)點:速度格外快。YOLOTitanXGPU45150/sregionproposal-FastR-CNNFastR-CNNFastR-CNN,YOLO準確率高很多。本方法有如下缺點:YOLO由于一個網(wǎng)格中只推測了兩個框,并且只屬于一類。泛化力量偏弱。由于損失函數(shù)的問題,定位誤差是影響檢測效果的主要緣由。尤其是大小物體的處理上,還有待加強。YOLO的核心思想和實現(xiàn)方法1.YOLOYOLO的核心思想就是利用整張圖作為網(wǎng)絡的輸入,直接在輸出層回歸boundingboxboundingbox2.YOLOYOLO格中,則這個網(wǎng)格就負責推測這個目標。box,boundingboxconfidenceconfidencebox的:Pr目標〕IOUtruth〔其中假設有目標落在一個gridcell1,pred0boundingboxgroundtruthIOU值〕。(x,y,w,h)confidence5格還要推測一個類別信息,記為CSxS個網(wǎng)格,每個網(wǎng)格要推測BboundingboxCcategoriesSxSx(5*B+C)tensor?!擦粢猓篶lass信息是針對每個網(wǎng)格的,confidence信息是針對每個boundingbox〕。448x448,S=7,B=2,一共有(C=20)7x7x30tensor。整個網(wǎng)絡構造如以下圖所示:在測試的時候,每個網(wǎng)格推測的class信息和boundingbox推測的confidenceboundingboxclass-specificconfidencescore:Pr(class|object)Pr(object)IOUtruthPr(class)IOUtruthpred i pred等式左邊第一項就是每個網(wǎng)格推測的類別信息,其次三項就是每個confidenceencodeboxboxconfidencescoreboxes,boxesNMSYOLO的實現(xiàn)細節(jié)1.預訓練:20全連接層。2.推測:448*448,并且增加了四boundingbox,01。3.激活函數(shù):leakyReLU函數(shù):誤差傳播:0。它們的奉獻過大,會使得網(wǎng)絡無法收斂。boundingboxboxboxw,h,x,yx此外,一個網(wǎng)格可能會推測多個box,期望每個boxbox。公式為:其中其中iboundingboxj負責這個物體的推測。i使用隨機梯度下降法,以及dropout的方法。YOLOYOLO將物體檢測作為回歸問題求解?;谝粋€單獨的端到端網(wǎng)絡,完成從YOLORCNN、FastRCNNFasterRCNNYOLOYOLOregionproposalRCNN/FastRCNN〔獨立于網(wǎng)絡之selectivesearch〕求取候選框〔可能會包含物體的矩形區(qū)域〕,訓練過程因此也是分成多個模塊進展。FasterRCNNRPN〔regionproposalnetwork〕卷積網(wǎng)絡替代RCNN/FastRNNselectivesearchRPNFastRCNNRPNFastRCNNRPNFastRCNNYOLO將物體檢測作為一個回歸問題進展求解,輸入圖像經(jīng)過一次inference,便能得到圖像中全部物體的位置和其所屬類別及相應的置信概率。RCNNA〔分類問題〕,boundingbox〔回歸問題〕。第四章訓練數(shù)據(jù)采集與制作訓練數(shù)據(jù)的采集預備需要訓練的圖片:本次試驗訓練的是水果的識別,種類一共5種,分別是WaterMelon、張圖片。圖片全部從百度圖片中下載,圖片區(qū)分率一般在400*300像素左右。500000中。訓練數(shù)據(jù)的制作171名稱。xmlxml,xmldarknet├─cfg├─......├─srcdarknet├─cfg├─......├─src├─VOCdevkit工程名目配置文件存放名目│ ├─VOC2023工程源代碼數(shù)據(jù)標記年份││├─Annitations xml│││ ├─00000.xml xml│││ ├─00001.xml xml│││ ├─......│││ ├─00171.xml xml││├─ImageSets 圖片相關信息│││ ├─Main 文件位置信息│││ │├─train.txt 保存了全部圖片位置的文件││├─JPEGImages 需要訓練的圖片│││ ├─00000.jpg 水果圖片│││ ├─00001.jpg 水果圖片│││ ├─......│││ ├─00171.jpg 水果圖片││├─labels labels│││├─00000.txtlabels│││├─00001.txtlabels│││├─.....│││├─00170.txtlabelsYOLO不能識別xml文件,需要將其轉化成其識別的格式。使用工程自帶的voc_label.py腳本可以將xml格式轉換成YOLO所需的label文件。翻開xml置等信息。文件內容如以下圖所示。該腳本同時會生成上面名目構造中的labels0”代表的是代表西瓜等,后面4圖片中的位置的比例。第五章訓練配置、訓練及測試訓練效果訓練配置strawberrywatermelonapple第四章是預備訓練數(shù)據(jù)的全部過程,接下來要修改配置文件。創(chuàng)立5pythonstrawberrywatermelonappleorangeorangepineapplepineappleclasses=5train=/home/myd/new/darknet/VOCdevkit/VOC2023/ImageSets/Main/train.txtnames= /home/myd/new/darknet/cfg/sbackupclasses=5train=/home/myd/new/darknet/VOCdevkit/VOC2023/ImageSets/Main/train.txtnames= /home/myd/new/darknet/cfg/sbackup=backup_mydcfg/yolo.cfgyolo-myd.cfg,并編輯這個文件,主要修regionclasses5.region層上一層convolution層,把其中的filters值修改成50,依據(jù)網(wǎng)上教程,計(classes+coords+1)*(NUM)(5+4+1)*5=50。[myd@localhost[myd@localhostdarknet]$./darknetdetectortrain./cfg/myd.data./cfg/yolo-myd.cfgyolo-mydlayer filters size0conv 32 3x3/11max 2x2/2input416x416x416x416xoutput332->->416x416x 32208x208x32reorgrouteconvconv/226x 26x 64->13x 13x25627241024503x3/11x1/113x13x13x128013x1024-> 13x-> 13x13x102413x5031detectionLearningRate:0.01,Momentum:0.9,Decay:0.0005Resizing....執(zhí)行以下命令開頭訓練:./darknet./darknetdetectortrain./cfg/myd.datacfg/yolo-myd.cfg執(zhí)行命令后的輸出如下:2conv643x3/1208x208x 32->208x208x 643max2x2/2208x208x 64->104x104x 644conv1283x3/1104x104x 64->104x104x1285conv641x1/1104x104x128->104x104x 646conv1283x3/1104x104x 64->104x104x1287max2x2/2104x104x128->52x 52x1288conv2563x3/152x 52x128->52x 52x2569conv1281x1/152x 52x256->52x 52x12810conv2563x3/152x 52x128->52x 52x25611max2x2/252x 52x256->26x 26x25612conv5123x3/126x 26x256->26x 26x51213conv2561x1/126x 26x512->26x 26x25614conv5123x3/126x 26x256->26x 26x51215conv2561x1/126x 26x512->26x 26x25616conv5123x3/126x 26x256->26x 26x51217max2x2/226x 26x512->13x 13x51218conv10243x3/113x13x512->13x13x102419conv5121x1/113x13x1024->13x13x51220conv10243x3/113x13x512->13x13x102421conv5121x1/113x13x1024->13x13x51222conv10243x3/113x13x512->13x13x102423conv10243x3/113x13x1024->13x13x102424conv10243x3/113x13x1024->13x13x102425route1626conv641x1/126x26x512->26x26x 64訓練過程中會打印訓練進度的信息,如下所示:Loaded:0.000000secondsRegionAvgIOU:0.160720,Class:0.231168,Obj:0.521430,NoObj:0.413074,AvgRecall:0.000000, count:2RegionAvgIOU:0.180606,Class:0.679878,Obj:0.386150,NoObj:0.408220,AvgRecall:0.000000, count:11:186.851959,186.851959avg,0.000000rate,0.950000seconds,2imagesLoaded:0.000000secondsRegionAvgIOU:0.254033,Class:0.317158,Obj:0.520234,NoObj:0.409462,AvgRecall:0.202300, count:5RegionAvgIOU:0.241384,Class:0.085939,Obj:0.527829,NoObj:0.407437,AvgRecall:0.000000, count:12:216.814362,189.848206avg,0.000000rate,0.550000seconds,4imagesLoaded:0.000000secondsRegionAvgIOU:0.226418,Class:0.028838,Obj:0.529031,NoObj:0.421976,AvgRecall:0.000000, count:2RegionAvgIOU:0.001094,Class:0.286836,Obj:0.057044,NoObj:0.412083,AvgRecall:0.000000, count:13:279.181519,198.781540avg,0.000000rate,0.550000seconds,6imagesLoaded:0.000000secondsRegionAvgIOU:0.161439,Class:0.111352,Obj:0.491796,NoObj:0.411375,AvgRecall:0.000000, count:5RegionAvgIOU:0.245507,Class:0.220506,Obj:0.330526,NoObj:0.407965,AvgRecall:0.000000, count:54:250.851227,203.988510avg,0.000000rate,0.580000seconds,8
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 海南省東方市八所中學2025屆高三下學期一??荚嚁?shù)學試題含解析
- 寧夏銀川市興慶區(qū)長慶高中2025屆高三二診模擬考試英語試卷含解析
- 2025屆江蘇省南通市如皋中學高三下學期第六次檢測數(shù)學試卷含解析
- 南昌市2025屆高三下學期聯(lián)考語文試題含解析
- GB/T 44984-2024肉與肉制品中L-(+)-谷氨酸含量的測定
- 2025屆云南省曲靖市富源縣二中高考語文四模試卷含解析
- 河南省洛陽市偃師高級中學2025屆高考數(shù)學四模試卷含解析
- 廣東省韶關市十校2025屆高三下學期第六次檢測數(shù)學試卷含解析
- 撫順市重點中學2025屆高考仿真卷數(shù)學試卷含解析
- 安徽省黃山市“八校聯(lián)盟”2025屆高考臨考沖刺數(shù)學試卷含解析
- 生產(chǎn)技術崗位一專(主崗)多能(兼崗)實施細則
- 高端醫(yī)療器械招商方案
- 神經(jīng)內分泌腫瘤教學演示課件
- 多發(fā)傷和復合傷的護理查房課件
- 幼兒園公開課:中班語言《怎么才能不吃掉我的朋友》課件
- 《高中化學新課程標準課件》
- 高中生物 選擇性必修一 綜合練習卷3 含詳細答案解析
- 近代中國金融業(yè)的演變
- pcnl護理查房課件
- 肝衰竭病人的護理
- 微生物學課件:流感嗜血桿菌
評論
0/150
提交評論