




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
摘要中國視障群體約有1731萬人,平均不到100個人里就有一個視障人士。隨著社會的發(fā)展進步,中國對特殊群體的公共保障越來越完善。在現(xiàn)實生活中,盲人最主要的需求就是出行,但是在室外的環(huán)境下盲人想獨立出行還是一件難事,很多時候都需要人陪同,公共設(shè)施還是有待提升。深度學習的原理是利用明眼人標注的已知樣本來學習一種規(guī)則進行預(yù)測未知的樣本,這種理念和需要人陪同很相似。Flutter是跨平臺的開發(fā)框架,可以利用它快速開發(fā)移動應(yīng)用。本文實現(xiàn)的是一款結(jié)合深度學習、跨屏臺開發(fā)框架的手機應(yīng)用程序,能夠幫助盲人在室外環(huán)境下出行。關(guān)鍵詞:視障群體軟件、深度學習、目標檢測、跨平臺開發(fā)AbstractThereareapproximately17.31millionvisuallyimpairedgroupsinChina,andthereisanaverageofonevisuallyimpairedpersonper100people.Withthedevelopmentofsociety,China'spublicsecurityforspecialgroupsisbecomingmoreandmoreperfect.Inreallife,themainneedoftheblindistotravel,butintheoutdoorenvironment,itisstilldifficultforblindpeopletotravelindependently.Manytimestheyneedtobeaccompanied,andpublicfacilitiesstillneedtobeimproved.Theprincipleofdeeplearningistouseaknownsamplemarkedbyabrighteyetolearnaruletopredictanunknownsample.Thisconceptisverysimilartotheneedforsomeonetoaccompany.Flutterisacross-platformdevelopmentframeworkthatcanbeusedtoquicklydevelopmobileapplications.Thisarticleimplementsamobileapplicationthatcombinesdeeplearningandacross-screenplatformdevelopmentframeworktohelpblindpeopletravelinoutdoorenvironments.Keywords: visuallyimpairedgroupsoftware,deeplearning,targetdetection,cross-platformdevelopment目錄TOC\o"1-3"\h\u25609第一章研究背景與意義 研究背景與意義研究背景中國視障群體是全世界人口是最大的視障群體。據(jù)衛(wèi)生部統(tǒng)計,中國有1731萬的視障人士,數(shù)量是世界之首。其中視障人士也是占有障礙人士的很大一部分比例,受社會的廣泛關(guān)注,但現(xiàn)有市場上對與視障群體的軟硬件開發(fā)還沒有得到人們的關(guān)注,與視障群體有關(guān)的產(chǎn)品少之又少。正因如此,視障群體更應(yīng)該受到大家的廣泛重視與關(guān)注、,需要社會給予關(guān)愛和幫助。使其提高生活質(zhì)量。據(jù)2015年《中國互聯(lián)網(wǎng)視障用戶基本情況報告》中調(diào)查,一周出行1-6次不需要人陪伴的比率占到總調(diào)查人數(shù)的24%,需要人陪伴的46%,其中一周基本不出行的占比高達30%。盲人的出行障礙主要有無法辨別方向、出行過程中被障礙物遮擋等困難。盲道是現(xiàn)在盲人出行的一個輔助工具,但是現(xiàn)在的盲道占有率很高,視障群體實際使用過程并不友好,會出現(xiàn)前方有物體占用盲道,這些物體例如消防栓、垃圾桶等等。研究意義目標檢測任務(wù)是人工智能圖像處理方面的一個重要任務(wù),目標檢測的數(shù)據(jù)集一般為一張圖片里物體的坐標以及物體的類別,通過神經(jīng)網(wǎng)絡(luò)的權(quán)重最后可以達到輸入任意一張圖片返回物體信息的效果。深度學習領(lǐng)域近年來隨著硬件的升級更新,算力有了極大的提升,許多目標檢測網(wǎng)絡(luò)也在工業(yè)界發(fā)揮著至關(guān)重要的作用。Flutter是一個跨平臺開發(fā)框架,它是非常新的平臺,它的主要開發(fā)語言是Dart,dart和Java很相似。開發(fā)者可以用一套代碼可以同時編譯在安卓和蘋果兩個平臺上。Flutter還提供了很多小插件、接口、小部件供開發(fā)者使用。Flutter開發(fā)的應(yīng)用性能上并可以與原生的應(yīng)用媲美,這為用戶提供了友好的體驗。本系統(tǒng)采用深度學習中的目標檢測及跨平臺開發(fā)框架Flutter為視障者們開發(fā)一個有好的、高效的視障輔助APP,讓每一個人都能享受AI技術(shù)帶來的便利。
研究現(xiàn)狀與分析跨平臺開發(fā)框架研究現(xiàn)狀及分析近年來,消費者們已經(jīng)從PC轉(zhuǎn)向移動端來進行上網(wǎng)的操作,跨平臺開發(fā)框架大多數(shù)應(yīng)用在移動設(shè)備上,所以顯得至關(guān)重要??缙脚_開發(fā)技術(shù)可以增加代碼的復(fù)用,降低開發(fā)時間于成本,實現(xiàn)一套代碼,多個平臺部署,在移動終端設(shè)備上也有許多框架大展身手例如Futter、ReactNative等,這些跨平臺的開技術(shù)有的時候甚至超過了平臺的原生語言ReactNative是Facebook開發(fā)的框架如圖2.1.1,是使用JavaScript開發(fā)IOS和Android的前端樣式,最初ReactNatives是用來開發(fā)IOS系統(tǒng)的,最近也支持了Android系統(tǒng)。該庫現(xiàn)在可以為兩個平臺呈現(xiàn)移動UI。每當使用Swift/Objective-C或Java編寫的應(yīng)用程序有更新時,都需要重新編譯整個應(yīng)用程序,并且必須將新版本再次分發(fā)到AppStore。根據(jù)AppStore的審查程序,所有這一切可能需要幾個星期。為了避免這種麻煩,ReactNative應(yīng)用程序以不同的方式工作,本機應(yīng)用程序能夠找到特定的JavaScript代碼,然后在實際設(shè)備上啟動該應(yīng)用程序時下載并編譯該JavaScript代碼。這樣,可以立即完成應(yīng)用程序更新,而無需一次又一次地向AppStore提交新版本。圖2.1.1RN框架圖Flutter是一個非常新的平臺,該平臺框架如圖2.1.2所示但是它是一個很有發(fā)展的平臺,已經(jīng)吸引了已經(jīng)發(fā)布了應(yīng)用程序的大公司的關(guān)注。例如阿里巴巴開發(fā)的閑魚,騰訊開發(fā)的Now直播等。與開發(fā)Web應(yīng)用程序相比,它比較簡單,并且與本地的應(yīng)用程序相比,它具有開發(fā)快部署快的特點。Flutter的高性能和高生產(chǎn)率是通過以下幾種技術(shù)實現(xiàn)的。與許多其他流行的移動平臺不同,F(xiàn)lutter完全不使用JavaScript。Dart是編程語言。它可以編譯為二進制代碼,這就是為什么它以O(shè)bjective-C,Swift,Java或Kotlin的本機性能運行的原因。Flutter不使用本機UI組件。起初聽起來很尷尬。但是,由于組件是在Flutter本身中實現(xiàn)的,因此視圖和的代碼之間沒有通信層。因此,游戲在智能手機中以最快的速度獲得其圖形效果。因此,按鈕,文本,媒體元素,背景都由Flutter的圖形引擎繪制。順便說一句,F(xiàn)lutter的“Hello,World”應(yīng)用程序的捆綁包非常?。篿OS≈2.5Mb和Android≈4Mb。Flutter在ReactWeb框架的啟發(fā)下使用了一種聲明式方法,基于小部件(在網(wǎng)絡(luò)世界中稱為“組件”)構(gòu)建其UI。為了從小部件中獲取更多信息,通常僅在必要時才渲染它們,通常是當它們的狀態(tài)已更改時。該框架還集成了Hot-reload,這對于Web來說很典型,但在本機平臺上仍然缺少。這使Flutter框架可以自動重建窗口小部件樹,從而可以快速查看更改的效果。圖2.1.1Flutter框架圖目標檢測研究現(xiàn)狀及分析卷積網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)是一種特殊的神經(jīng)網(wǎng)絡(luò),用于處理具有已知網(wǎng)格狀拓撲的數(shù)據(jù)。包括時間序列數(shù)據(jù)(可以認為是以規(guī)則的時間間隔采樣的1D網(wǎng)格)和圖像數(shù)據(jù)(可以認為是像素的2D網(wǎng)格)。卷積網(wǎng)絡(luò)在實際應(yīng)用中已經(jīng)取得了巨大的成功?!熬矸e神經(jīng)網(wǎng)絡(luò)”表示該網(wǎng)絡(luò)采用稱為卷積的數(shù)學運算。卷積是一種特殊的線性運算。卷積與普通的神經(jīng)網(wǎng)絡(luò)非常相似-它們由具有可學習的權(quán)重和偏見的神經(jīng)元組成。每個神經(jīng)元接收一些輸入,執(zhí)行點積,并可選地跟隨其非線性。卷積神經(jīng)網(wǎng)絡(luò)的起源是根據(jù)哺乳動物使用大腦中神經(jīng)元的分層結(jié)構(gòu)在視覺上感知周圍世界的方式,這反過來又激發(fā)了工程師嘗試在計算機視覺中開發(fā)類似的模式識別機制。在他們的假設(shè)中,在視覺皮層中,“復(fù)雜細胞”產(chǎn)生的復(fù)雜功能反應(yīng)是由“簡單細胞”產(chǎn)生的更為簡單的反應(yīng)構(gòu)建而成的。例如,簡單單元將對定向邊緣等做出響應(yīng),而復(fù)雜單元也將對定向邊緣做出響應(yīng),但具有一定程度的空間不變性。卷積神經(jīng)網(wǎng)絡(luò)可以描述人類如何識別物體和場景的圖像、人類如何看待和識別物體,類似神經(jīng)元的的感受野,其中一個細胞對來自其他局部細胞的輸入總和做出響應(yīng),深度卷積神經(jīng)網(wǎng)絡(luò)的架構(gòu)受到上述思想的啟發(fā)。卷及網(wǎng)絡(luò)還有空間不變性,我們大多數(shù)人可以在各種條件下識別特定的面孔,因為我們學習了抽象。因此,這些抽象對于大小,對比度,旋轉(zhuǎn),方向都是不變的。以汽車為例。人們?nèi)绾巫R別它是汽車?我們基本上是在尋找汽車特有的特征。我們尋找車輪,前大燈,門,后行李箱,玻璃窗,引擎蓋和其他與其他運輸方式不同的功能。同樣,在識別車輪的同時,我們尋找位于汽車主體下方的圓形物體,其顏色相對較暗,且質(zhì)地粗糙。我們考慮了所有的小細節(jié),它們共同構(gòu)成了一些基本信息。這些小信息聚集在一起,形成了我們正在識別的對象所特有的特定特征。卷積網(wǎng)絡(luò)分為三個結(jié)構(gòu):卷積層、連接層、池化層。卷積層:該卷積層與特征提取。這是使用一個矩陣(通常是濾波器矩陣)應(yīng)用于特定矩陣(通常是圖像矩陣)的特殊操作。該操作涉及將對應(yīng)于圖像矩陣的特定行和列的單元格的值與濾波器矩陣中相應(yīng)單元格的值相乘。我們對濾波器矩陣范圍內(nèi)的所有單元格的值執(zhí)行此操作,并將它們加在一起以形成輸出。池化層:該層包括執(zhí)行從一組值中提取特定值的過程,通常是所有值的最大值或平均值。這減小了輸出矩陣的大小。例如,對于MAX-POOLING,我們?nèi)【仃嚨?X2部分的所有值中的最大值。因此,我們實際上是采用表示該圖像的該部分中存在特征的值。通過這種方式,我們擺脫了關(guān)于圖像特定部分中特征存在的不想要的信息,而僅考慮需要知道的內(nèi)容。通常在CNN體系結(jié)構(gòu)中的連續(xù)卷積塊之間定期插入池化層。它的功能是逐漸減小表示的空間大小,以減少網(wǎng)絡(luò)中的參數(shù)和計算量。全連接層:該層構(gòu)成卷積神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)的最后一塊,與分類任務(wù)有關(guān)。這實際上是一個完全連接的簡單神經(jīng)網(wǎng)絡(luò),由兩個或三個隱藏層以及一個通常使用“Softmax回歸”實現(xiàn)的輸出層組成,該輸出層可在眾多類別中執(zhí)行分類工作。目標檢測目標檢測是一種與計算機視覺和圖像處理相關(guān)的計算機技術(shù),用于檢測數(shù)字圖像和視頻中某一類語義對象(如人、建筑物或汽車)的實例。早期工作是基于模板匹配技術(shù)和簡單的基于零件的模型。后來,基于統(tǒng)計分類器的方法,例如神經(jīng)網(wǎng)絡(luò),SVM,Adaboost,貝葉斯等。最初成功的目標檢測器系列(均基于統(tǒng)計分類器)為以下大多數(shù)研究奠定了基礎(chǔ),這些研究在訓練和評估以及分類技術(shù)方面均得到了發(fā)展。大多數(shù)對象檢測系統(tǒng)都考慮相同的基本方案,通常稱為滑動窗口,這是一種為了檢測圖像中不同比例和位置出現(xiàn)的窗口,它會進行詳盡的搜索。該搜索利用了分類器(檢測器的核心部分),該分類器指示給定的圖像斑塊是否與對象相對應(yīng)。假設(shè)分類器基本上在給定的比例和補丁大小下工作,則輸入圖像的多個版本將以不同的比例生成,并且分類器用于對圖像的每個縮小版本對給定大小的所有可能的補丁進行分類。目標檢測在計算機視覺的許多領(lǐng)域都有應(yīng)用,包括圖像檢索和視頻監(jiān)控。它廣泛應(yīng)用于圖像標注、活動識別、人臉檢測、人臉識別、視頻對象共分割等計算機視覺任務(wù)中。它還用于跟蹤對象,例如在足球比賽中跟蹤球、或在視頻中跟蹤人等任務(wù)。SSD-MobileNet介紹SSD-Mobilenet是一種目標檢測的神經(jīng)網(wǎng)絡(luò)。如圖2.3.1中從上到下分別是MobileNetv1模型(統(tǒng)一輸入大小為300x300)、chuanqi305的Mobilenet-SSD網(wǎng)絡(luò)、VGG16-SSD網(wǎng)絡(luò)。且默認都是用3x3大小的卷積核,除了MobileNet-SSD的Conv14_1、Conv15_1、Conv16_1、Conv17_1和VGG16-SSD的Conv8_1、Conv9_1、Conv10_1、Conv11_1用的是1x1大小的卷積核。圖2.3.1同類產(chǎn)品研究現(xiàn)狀及分析盲人出行途徑有四個,分別是盲道、盲杖、明眼人的陪伴、導盲犬,下面我將分別介紹這四種。盲道是屬于公共設(shè)施,他是靠地上的花紋提示盲人能不能行走,屬于盲人主要的出行工具,盲道是非常重要的。但是設(shè)計時、使用時、會出現(xiàn)有固定或者非固定的東西被隨意占用,各種電動車、私家車、雜物隨意堆放,這種情況在現(xiàn)實生活中很常見。盲杖,盲杖就是盲人前行的第三只眼,可探索前方是否有障礙物,是否被物體阻擋。這種只能判斷很近的物體,前方有無障礙物。明眼人的陪伴,對于有明眼人的陪伴,自然不需以上的輔助工具。導盲犬,導盲犬在當下必定還屬奢侈存在,不是每一個盲人都能申請到導盲犬,申請導盲犬有著種種條件的限制。以上總結(jié),各種設(shè)施有利有弊,但是當下互聯(lián)網(wǎng)時代的盲人出行工具還沒有。
實驗環(huán)境搭建安裝CUDA和CudnnCUDA是Nvidia創(chuàng)建的并行計算平臺和應(yīng)用程序編程接口(API)模型。它允許軟件開發(fā)人員和軟件工程師使用具有CUDA功能的圖形處理單元進行通用處理—一種稱為GPGPU(圖形處理單元上的通用計算)的方法。在NVIDIACUDA深層神經(jīng)網(wǎng)絡(luò)庫(cuDNN)是深層神經(jīng)網(wǎng)絡(luò)的GPU加速的庫。cuDNN為標準例程提供了高度優(yōu)化的實現(xiàn),例如向前和向后卷積,池化,規(guī)范化和激活層。cuDNN是NVIDIADeepLearningSDK的一部分。下載安裝文件。首先去英偉達官網(wǎng)下載cuda安裝包(圖3.1.1):圖3.1.1cuda下載runfile(后綴為.run)文件來安裝。安裝cuda,cuda中含有nvidia的顯卡驅(qū)動一般為專用的驅(qū)動非消費者級別的驅(qū)動,下載后點擊安裝即可。根據(jù)顯卡的配置來進行下載安裝AnacondaConda是一個在windows等系統(tǒng)上運行的包管理系統(tǒng)和環(huán)境管理系統(tǒng),利用他可以進行多個環(huán)境之間的切換。Conda的安裝也很簡單只需要執(zhí)行官網(wǎng)的腳本即可,他可以在不同環(huán)境之間進行包的預(yù)下載等操作,其中python是conda包管理系統(tǒng)的主要語言。從其官方網(wǎng)站下載最新版本的Anaconda安裝程序bash腳本(如圖3.2.1)圖3.2.1Anaconda安裝完成后輸入condainfo-e查看有無安裝成功新建一個環(huán)境condacreate-ncs_tf_py36python=3.6安裝TensorflowTensorFlow是一個開源軟件庫。他是由谷歌公司中的谷歌大腦團隊進行主要開發(fā)的,用于進行機器學習、深度學習等神經(jīng)網(wǎng)絡(luò)的研究、Tensorflow適用于生產(chǎn)環(huán)境下的部署、并且在很多工業(yè)設(shè)備上有著成功的案例。Tensorflow也是一個用于計算的開源庫TensorFlow根據(jù)Apache2.0開源許可證發(fā)行。盡管可以訪問基礎(chǔ)C++API,但該API主要用于Python編程語言。與旨在深度學習的其他數(shù)值庫(例如Theano)不同,TensorFlow則用于開發(fā)和生產(chǎn)系統(tǒng)。它可以在移動設(shè)備和數(shù)百臺機器上的單個CPU系統(tǒng),GPU和大規(guī)模分布式系統(tǒng)上運行。TensorFlow基本上是一個使用數(shù)據(jù)流程圖進行數(shù)值計算的軟件庫,其中包括表示圖中數(shù)學運算的節(jié)點和圖中邊緣表示的多維數(shù)據(jù)數(shù)組(稱為張量在它們之間傳遞)。請注意,張量是TensorFlow中數(shù)據(jù)的中心單元。TensorFlow提供了多個API(應(yīng)用程序編程接口)。它們可以分為兩個主要類別:低級API:完整的編程控制,推薦給機器學習研究人員,提供對模型的精細控制,而TensorFlowCore是TensorFlow的低級API。進階API:與TensorFlowCore相比,在TensorFlowCore上構(gòu)建更容易學習和使用,從而使重復(fù)任務(wù)更容易且在不同用戶之間更加一致。Tf.contrib是高級API的示例。TensorFlowLite,它運行在許多不同的硬件類型,包括移動電話,嵌入式Linux設(shè)備,以及微控制器經(jīng)過專門優(yōu)化過的模式。它變換TensorFlow模型轉(zhuǎn)換成一個有效的形式解釋使用,可引入優(yōu)化提高二進制文件的大小和性能。TensorFlow精簡版的設(shè)計,可以很容易地在設(shè)備上的網(wǎng)絡(luò)“邊緣”的執(zhí)行機器學習,而不是將數(shù)據(jù)從服務(wù)器來回。對于開發(fā)商來說,在設(shè)備上進行機器學習可以用下面的改進有助于:潛伏期(無往返于服務(wù)器),隱私(沒有數(shù)據(jù)離開設(shè)備),連接(無互聯(lián)網(wǎng)連接)和電源(網(wǎng)絡(luò)連接消耗功率)。使用模型優(yōu)化工具包來減少模型的大小并提高其效率,同時將對精度的影響降到最低。使用TensorFlowLite的工作流程要完成以下步驟:1.選擇一個模型,可以是自己的TensorFlow模型,在線查找模型,或從預(yù)訓練模型中選擇一個模型進行遷移學習或重新訓練。2.轉(zhuǎn)換模型。使用TensorFlowLite轉(zhuǎn)換器和幾行Python將其轉(zhuǎn)換為TensorFlowLite格式。3.使用TensorFlowLite解釋器,使用多種語言的api,部署到設(shè)備并在設(shè)備上運行模型。4.優(yōu)化模型。使用我們的模型優(yōu)化工具包來減小模型的大小并提高其效率,同時最大程度地減少對準確性的影響。在終端輸入Pipinstalltensorflow-gpu安裝AndroidStudioAndroidStudio是一個集成開發(fā)環(huán)境,用于編寫適用于移動終端設(shè)備的程序,基于JetBrains的IntelliJIDEA軟件構(gòu)建,并專門為Android開發(fā)而設(shè)計。它可以在基于Windows,macOS和Linux的操作系統(tǒng)上下載。它替代了EclipseAndroid開發(fā)工具(ADT),作為本機Android應(yīng)用程序開發(fā)的主要IDE。AndroidStudio是用于編寫安卓程序的一個集成開發(fā)環(huán)境,可以用來編寫手機、手表、電視等等使用安卓系統(tǒng)終端設(shè)備上的程序,他是從JetBrains的IntelliJIDEA來開發(fā)的可以軟件,且專用于Android的開發(fā),可以在Windows、Mac、Linux環(huán)境下來進行開發(fā),同時也他也取代了早起安卓開發(fā)使用的Eclipse的環(huán)境,作為安卓開發(fā)者主要的集成開發(fā)環(huán)境下載AndroidStudio在此網(wǎng)址上/studio/install?hl=zh-cn啟動AndroidStudioDMG文件。將AndroidStudio拖放到“Applications”文件夾中,然后啟動AndroidStudio。選擇是否想要導入之前的AndroidStudio設(shè)置,然后點擊OK。AndroidStudio設(shè)置向?qū)⒁龑б恍┑脑O(shè)置步驟,包括下載開發(fā)所需的AndroidSDK組件等等。安裝Flutter環(huán)境下載FlutterSDK在網(wǎng)址上https://flutter.io/sdk-archive/#macos,選擇Stablechannel。解壓zip安裝包添加flutter到環(huán)境變量中exportPATH=`pwd`/flutter/bin:$PATH運行flutterdoctor所有檢查都成功時,安裝完成。
詳細設(shè)計與實現(xiàn)訓練神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)集COCO數(shù)據(jù)集是微軟構(gòu)建的一個數(shù)據(jù)集,其包含detection,segmentation,keypoints等任務(wù)。MSCOCO總共包含91個類別,每個類別的圖片數(shù)量如下:COCO數(shù)據(jù)集和包括了很多任務(wù)、例如目標檢測、目標分割、關(guān)鍵點等任務(wù),COCO數(shù)據(jù)集是微軟提供的一個大型數(shù)據(jù)集,其中目標檢測任務(wù)共包含了91類、每個類別的情況如圖4.1.1圖4.1.1相比于ImageNet數(shù)據(jù)集COCO的總數(shù)還是比較少,但是每個類別的數(shù)量要多很多,這樣也帶來了很多好處沒有長尾數(shù)據(jù)的情況。標注例子如圖4.1.2圖4.1.2訓練模型這里我使用了tf版本ObjectdetectionAPI,這個庫包含了時下比較熱門的一些網(wǎng)絡(luò)框架,例如FasterR-CNN、R-FCN和SSD等,這個庫因為在經(jīng)典的沙灘圖片上進行測試,以及眾多模型的結(jié)果,使得目標檢測技術(shù)在計算機視覺領(lǐng)域收到極大的關(guān)注,也帶動了各種目標檢測框架開始流行。TensorFlowObjectdetectionAPI是在TensorFlow之上構(gòu)建的開源框架,可輕松構(gòu)建,訓練和部署對象檢測模型,此代碼庫可滿足我們的計算機視覺需求,經(jīng)典的沙灘圖片一般作為示例(圖4.1.2)。圖4.1.2ObjectDetection也包括了許多最新的目標檢測任務(wù)的網(wǎng)絡(luò)框架:帶有MobileNets的SSD(SingleShotMultiboxDetector)。帶有IceptionV2的SSD.帶有Resnet101的R-FCN(Region-BasedFullyConvolutionalNetworks)。帶有Resnet101的FasterRCNN。帶有Inception-Resenetv2的FasterRCNN。等等選用的是第一個MobileNets的SSD首先我們需要下載完整的tensorflowObjectDetectionAPI,使用git命令下載并編譯好所需環(huán)境gitclone/tensorflow/models.gitmvmodelsgoogle_obj_detectioncdgoogle_obj_detection/researchpythonsetup.pybuildpythonsetup.pyinstallcdslimpipinstall-e.新建一個linux腳本文件以.sh為結(jié)尾vimenv_obj_detection.sh添加以下內(nèi)容(設(shè)置顯卡以及protoc)cd~/works/google_obj_detection/research/protocobject_detection/protos/*.proto--python_out=.exportPYTHONPATH=$PYTHONPATH:pwd:pwd/slimexportCUDA_VISIBLE_DEVICES=0準備訓練數(shù)據(jù)訓練自己的model,下載預(yù)訓練的模型權(quán)重和配置做遷移學習模型權(quán)重地址:/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md配置文件地址:/tensorflow/models/tree/master/research/object_detection/samples/configs將模型解壓后放到research文件夾內(nèi)將模型配置文件放到任意位置(需要記住路徑)修改模型配置文件num_classes:2class的數(shù)量batch_size:8幾組數(shù)據(jù)組成一個序列(根據(jù)GPUram設(shè)定)fine_tune_checkpoint:../../模型文件路徑train_input_reader:{tf_record_input_reader{input_path:../../}}路徑填訓練集路徑eval_input_reader:{tf_record_input_reader{input_path:../../}}路徑填訓練集路徑label_map_path:.../../標簽路徑修改config后就可訓練了cdresearchpythontrain.py--logtostderr--train_dir=training/--pipeline_config_path=paint_on_air_mobilenet/ssd_mobilenet_v2_coco.config訓練過程如圖4.1.3圖4.1.3訓練過程訓練結(jié)果會保存在train_dir指定的路徑下模型轉(zhuǎn)換TensorFlowLite轉(zhuǎn)換器用于將TensorFlow模型轉(zhuǎn)換為優(yōu)化的FlatBuffer格式,以便TensorFlowLite解釋器可以使用它們。FlatBuffer是高效的開源跨平臺序列化庫。它類似于協(xié)議緩沖區(qū),區(qū)別在于FlatBuffer在訪問數(shù)據(jù)之前不需要對輔助表示進行解析/解包步驟,從而避免了按對象分配內(nèi)存。FlatBuffers的代碼占用空間比協(xié)議緩沖區(qū)小一個數(shù)量級。TensorFlowLite轉(zhuǎn)換器從TensorFlow模型生成TensorFlowLiteFlatBuffer文件(.tflite)。TensorFlowLite是一個可以提供將tf模型到flatbuffer格式的轉(zhuǎn)換工具,轉(zhuǎn)換成flatbuffer格式,tflite就可以使用他們,flatbuffer是一個跨平臺搞笑的序列化庫,類似于協(xié)議緩沖期,但是和協(xié)議緩沖期還有缺別,他不會在訪問數(shù)據(jù)之前對其進行解包的操作,從而避免了按對象分配內(nèi)存,flatbuffers占用的空間也小了一個量級。從而可以節(jié)省安卓或ios的本地資產(chǎn)空間,使應(yīng)用程序更小,總的來說TnsorFlowLite轉(zhuǎn)換器就是從從TensorFlow模型生成TensorFlowLiteFlatBuffer文件(.tflite)的一個轉(zhuǎn)換工具。主要轉(zhuǎn)化過程為圖4.3.1圖4.3.1主要轉(zhuǎn)化過程通過以下代碼進行轉(zhuǎn)換(圖4.3.2)圖4.3.2Flutter開發(fā)語音播放數(shù)據(jù)準備這里我使用了訊飛語音的api進行tts(根據(jù)文字生成語音)。訊飛TTS的聲音更接近真實人聲,它們也是使用了一些深度學習的技術(shù)是語音更真實。訊飛也是一些大型企業(yè)的合作提供商??梢宰屨Z音技術(shù)結(jié)合AI變得更完善(如圖)。注冊訊飛語音開發(fā)平臺用戶獲取API如圖安裝python的包環(huán)境cffi==1.12.3gevent==1.4.0greenlet==0.4.1pycparser==2.19six==1.12.0websocket==0.2.1websocket-client==0.56.0運行pythontts_ws_python3_demo.py這個文件的流程主要是上傳文字,接受返回的pcm語音數(shù)據(jù),轉(zhuǎn)換成wav格式,其中訊飛提供的案例是語音生成文字,為了達到播報的目的,我做了改寫,新增了兩個功能,根據(jù)列表生成語音文件;將pcm格式語音轉(zhuǎn)換成wav格式音頻。會在tts_ws_python3_demo.py同級目錄下產(chǎn)生文件(如圖)圖應(yīng)用搭建Flutter開發(fā)深度學習應(yīng)用應(yīng)該使用很多插件以達到目的應(yīng)該在pubspec.yaml中添加以下插件camera:^0.5.7+4tflite:^1.0.5audiofileplayer:^1.1.1assets_audio_player:^1.2.3關(guān)于camera這是一個適用于ios和Android的插件,他可以使flutter訪問設(shè)備的相機。有三個特性:1、在手機上可以實現(xiàn)幾乎實時的攝像。2、可以拍照保存到本地設(shè)備中3、錄視頻。4、從Dart添加對圖像流的訪問。需要的正是第四點功能從Dart添加對圖像流的訪問安裝過程首先,將camera作為依賴項添加到pubspec.yaml文件中。在IOS中在ios/Runner/Info.plist中添加兩行:<key>NSCameraUsageDescription</key><string>我可以使用相機嗎?</string><key>NSMicrophoneUsageDescription</key><string>我可以使用麥克風嗎?</string>在安卓中:在的android/app/build.gradle文件中將最低的Androidsdk版本更改為21(或更高版本)。關(guān)于tflite這是一個Flutter插件,他可以提供一個移動終端與tf模型的使用接口,用于在移動設(shè)備上進行模型的前向推導,以便之后的前端顯示、對象檢測等任務(wù)。在ios中在Xcode中打開ios/Runner.xcworkspace,單擊Runner>Tagets>Runner>構(gòu)建設(shè)置,搜索“將源編譯為”,將值更改為Objective-C++在Android中在android/app/build.gradle添加以下設(shè)置aaptOptions{noCompress'tflite'noCompress'lite'}將模型文件、語音文件放到flutter的asset文件夾中作為本地資產(chǎn),在pubspec.yaml中添加本地資產(chǎn)位置assets:-assets/ssd_mobilenet.tflite-assets/ssd_mobilenet.txt-assets/dingding.wav-assets/person.wav-assets/bicycle.wav-assets/car.wav-assets/motorcycle.wav-assets/airplane.wav-assets/bus.wav-assets/train.wav-assets/truck.wav-assets/boat.wav以下部分省略該軟件是由4個lib文件組成,main是程序的入口,home是程序的界面第一屏也是一個stack的結(jié)構(gòu),camera是獲取視頻流用戶預(yù)測返回信息的文件,bnd是在camera層上進行繪圖的文件,接下來逐一介紹每個文件的內(nèi)容與作用(如圖)。圖Main.dart這是一個入口文件,flutter會找到這個文件作為啟動首要文件,這個文件會調(diào)用home.dart作為主頁的顯示Home.dart這是整個項目的集合文件,其中有一個按鈕,點擊之后會彈出一個Stack,上層是畫框的顯示,下層是視頻流(如圖)圖camera.dart與bnd.dartcamera負責視頻流處理,通過camera插件獲取視頻流。輸出的CameraImage類具有4個成員:圖像格式,高度,寬度以及最后一個由圖像字節(jié)組成的平面。classCameraImage{finalImageFormatformat;finalintheight;finalintwidth;finalList<Plane>planes;}由于格式不同,iOS和Android上的輸出CameraImage也不同:Android:planes是圖像的Y,U和V平面的字節(jié)數(shù)組的列表。iOS:僅包含一個數(shù)組,其中包含圖像的RGBA字節(jié)。知道格式對于正確解碼圖像并將其饋送到TensorFlowLite很重要。有了原始位圖后,我們可以調(diào)整其大小以所需的輸入大小,并將RGB值輸入到輸入張量中。使用tflite進行目標檢測任務(wù)輸入視頻流處理過的張量返回,返回的信息下處理音頻視頻異步其中對視頻流的操作如圖,其中涉及到異步等操作,視頻幀和音頻幀存在著異步與等待的關(guān)系:圖視頻流的幀是跟手機的相機有關(guān)系的,一直是有輸入的,一般來說是每秒25幀,但是其中很多幀都是相同的所以不必幀都進行檢測,可以預(yù)先設(shè)定一個狀態(tài)(是否在檢測),如果是這正在檢測就跳過這幀,如果沒有在檢測就跳過這個幀的處理。在檢測中的時候會進行記錄上一幀的物體,會對比上一幀與現(xiàn)在的幀的區(qū)別,然后通過語音播放出來,播放是異步的操作,其中異步的操作是等待音頻播放后才會播放下一個音頻內(nèi)容,視頻流處理的幀返回的信息有物體的名稱,物體的長寬,位置信息,以及物體的置信度,其中會設(shè)定一個置信度的過濾器進行過濾一些置信度比較低的物體信息,還會涉設(shè)定一個小目標過濾器,負責過濾小目標,其原理是根據(jù)物體長寬處理成面積進行對整個屏幕的面積對比進行過濾。接近警報:為了提示物體的移動目標,還設(shè)定了一個根據(jù)物體面積對比整個屏幕面積的占比進行框的顏色的變化。測試我對常用物體進行了測試(如圖4.3.1),大部分物體都可以識別,可以用到生活中進行一般性輔助。但是還有一些識別不是很準確或者識別有問題的,需要更新迭代模型部分。圖4.3.1
總結(jié)與不足總結(jié)通過本次實驗總結(jié)了大學四年的基本所學,涵蓋了java語言、系統(tǒng)分析語設(shè)計、機器學習等課程的一些基本知識。整個軟件從需求分析到實現(xiàn)經(jīng)歷了幾個月的時間,完成了模型的訓練、flutter的開發(fā)以及論文的撰寫,從深度學習工程化的應(yīng)用的角度完成了整個軟件的設(shè)計、整片論文分析了這個軟件的必要性、模型的訓練過程、軟件的編碼、實現(xiàn)過程等。通過調(diào)研資料了解了視障群體的日常生活是怎樣的,日常生活中是如何是用手機的、如何外出等等。本系統(tǒng)也只能為它們提供一個微小的功能,對于實際環(huán)境中所提供的幫助也是僅僅有限的。本文的主要工作有以下內(nèi)容:(1)使用tensorflowobjectapi進行了訓練,完成了一般性深度學習的訓練流程(2)將模型進行固定、轉(zhuǎn)換到tensorflow-lite進行嵌入式設(shè)備部署(3)生成一些本地語音資源,給應(yīng)用開發(fā)提供資源(4)開發(fā)flutter應(yīng)用并進行模型的部署不足通過這次實驗,加深學習了目標檢測以及flutter開發(fā),但是也存在了很多不足,具體如下:(1)使用了tensorflowobjectapi,SSD-mobiilenet在深度學習領(lǐng)域?qū)儆诒容^老的模型但是比較穩(wěn)定,沒有自己搭建模型結(jié)構(gòu)(2)Flutter應(yīng)用開發(fā)較為粗略,僅僅是實現(xiàn)了模型的推理以及語音播報。有一些功能做的還不夠完善。一個功能只能為視障人士提供有限的功能。(3)專業(yè)知識不足,導致有些開發(fā)流程重復(fù)做了。
參考文獻[1]RedmonJ,FarhadiA.Yolov3:Anincrementalimprovement[J].arXivpreprintarXiv:1804.02767,2018.[2]LiY,HuangH,XieQ,etal.ResearchonasurfacedefectdetectionalgorithmbasedonMobileNet-SSD[J].AppliedSciences,2018,8(9):1678.[3]胡國興,李清水,方志剛.聽覺界面與盲人用戶手機界面[J].人類工效學,2003,9(2):7-10.[4]LiuW,AnguelovD,ErhanD,etal.Ssd:Singleshotmultiboxdetector[C]//Europeanconferenceoncomputervision.Springer,Cham,2016:21-37.[5]AlsingO.MobileObjectDetectionusingTensorFlowLiteandTransferLearning[J].2018.[6]CampoverdeA,BarrosG.DetectionandClassificationofUrbanActorsThroughTensorFlowwithanAndroidDevice[C]//ConferenceonInformationTechnologiesandCommunicationofEcuador.Springer,Cham,2019:167-181.致謝即將翻開新的人生篇章?;厥走@大學四年的校園生活,從迷茫的大一到奔波于實習的大四,這大學四年的生活歷歷在目,讓人倍感懷念,倍感珍貴。這四年將成為我人生道路上的一段重要旅程。一直以來,導師、同學帶給我的關(guān)心和幫忙,使我受益終生,在此,我真心地感謝他們。在完成畢業(yè)設(shè)計項目的過程中,葛艷娜老師作為我的指導老師,給予了我很多方面的支持與幫助,如果沒有她的不厭其煩的指導和幫助,我想我的畢設(shè)進展不會進行地如此順利。正是因為她給予我細心的指導和不勝其煩的支持,才使得系統(tǒng)能夠及時開發(fā)完成,在此謹向葛老師致以誠摯的謝意和崇高的敬意。我也要感謝那些致力于開源事業(yè)的開發(fā)者們,正是因為有你們的開源,讓我少走了很多彎路,避免了重復(fù)造輪子,用更高效、優(yōu)雅的代碼和解決方案幫助我及時的完成項目的開發(fā)。在這里,向你們表示萬分的感謝。在開發(fā)畢設(shè)項目的過程中,離不開朋友們的支持和幫助,正是得益于他們的幫助,讓我在項目的開發(fā)過程中避免了走很多彎路,在這里也要向他們表示感謝。感謝所有支持、關(guān)心和鼓勵我的家人、朋友和老師。
電腦故障檢測卡代碼表
1、特殊代碼"00"和"ff"及其它起始碼有三種情況出現(xiàn):
①已由一系列其它代碼之后再出現(xiàn):"00"或"ff",則主板ok。
②如果將cmos中設(shè)置無錯誤,則不嚴重的故障不會影響bios自檢的繼續(xù),而最終出現(xiàn)"00"或"ff"。
③一開機就出現(xiàn)"00"或"ff"或其它起始代碼并且不變化則為主板沒有運行起來。
2、本表是按代碼值從小到大排序,卡中出碼順序不定。
3、未定義的代碼表中未列出。
4、對于不同bios(常用ami、award、phoenix)用同一代碼代表的意義不同,因此應(yīng)弄清您所檢測的電腦是屬于哪一種類型的bios,您可查閱您的電腦使用手冊,或從主板上的bios芯片上直接查看,也可以在啟動屏幕時直接看到。
5、有少數(shù)主板的pci槽只有一部分代碼出現(xiàn),但isa槽有完整自檢代碼輸出。且目前已發(fā)現(xiàn)有極個別原裝機主板的isa槽無代碼輸出,而pci槽則有完整代碼輸出,故建議您在查看代碼不成功時,將本雙槽卡換到另一種插槽試一下。另外,同一塊主板的不同pci槽,有的槽有完整代碼送出,如dell810主板只有靠近cpu的一個pci槽有完整代碼顯示,一直變化到"00"或"ff",而其它pci槽走到"38"后則不繼續(xù)變化。
6、復(fù)位信號所需時間isa與pci不一定同步,故有可能isa開始出代碼,但pci的復(fù)位燈還不熄,故pci代碼停要起始代碼上。
代碼對照表
00.已顯示系統(tǒng)的配置;即將控制INI19引導裝入。
01處理器測試1,處理器狀態(tài)核實,如果測試失敗,循環(huán)是無限的。處理器寄存器的測試即將開始,不可屏蔽中斷即將停用。CPU寄存器測試正在進行或者失敗。
02確定診斷的類型(正常或者制造)。如果鍵盤緩沖器含有數(shù)據(jù)就會失效。停用不可屏蔽中斷;通過延遲開始。CMOS寫入/讀出正在進行或者失靈。
03清除8042鍵盤控制器,發(fā)出TESTKBRD命令(AAH)通電延遲已完成。ROMBIOS檢查部件正在進行或失靈。
04使8042鍵盤控制器復(fù)位,核實TESTKBRD。鍵盤控制器軟復(fù)位/通電測試。可編程間隔計時器的測試正在進行或失靈。
05如果不斷重復(fù)制造測試1至5,可獲得8042控制狀態(tài)。已確定軟復(fù)位/通電;即將啟動ROM。DMA初如準備正在進行或者失靈。
06使電路片作初始準備,停用視頻、奇偶性、DMA電路片,以及清除DMA電路片,所有頁面寄存器和CMOS停機字節(jié)。已啟動ROM計算ROMBIOS檢查總和,以及檢查鍵盤緩沖器是否清除。DMA初始頁面寄存器讀/寫測試正在進行或失靈。
07處理器測試2,核實CPU寄存器的工作。ROMBIOS檢查總和正常,鍵盤緩沖器已清除,向鍵盤發(fā)出BAT(基本保證測試)命令。.
08使CMOS計時器作初始準備,正常的更新計時器的循環(huán)。已向鍵盤發(fā)出BAT命令,即將寫入BAT命令。RAM更新檢驗正在進行或失靈。
09EPROM檢查總和且必須等于零才通過。核實鍵盤的基本保證測試,接著核實鍵盤命令字節(jié)。第一個64KRAM測試正在進行。
0A使視頻接口作初始準備。發(fā)出鍵盤命令字節(jié)代碼,即將寫入命令字節(jié)數(shù)據(jù)。第一個64KRAM芯片或數(shù)據(jù)線失靈,移位。
0B測試8254通道0。寫入鍵盤控制器命令字節(jié),即將發(fā)出引腳23和24的封鎖/解鎖命令。第一個64KRAM奇/偶邏輯失靈。
0C測試8254通道1。鍵盤控制器引腳23、24已封鎖/解鎖;已發(fā)出NOP命令。第一個64KRAN的地址線故障。
0D1、檢查CPU速度是否與系統(tǒng)時鐘相匹配。2、檢查控制芯片已編程值是否符合初設(shè)置。3、視頻通道測試,如果失敗,則鳴喇叭。已處理NOP命令;接著測試CMOS停開寄存器。第一個64KRAM的奇偶性失靈
0E測試CMOS停機字節(jié)。CMOS停開寄存器讀/寫測試;將計算CMOS檢查總和。初始化輸入/輸出端口地址。
0F測試擴展的CMOS。已計算CMOS檢查總和寫入診斷字節(jié);CMOS開始初始準備。.
10測試DMA通道0。CMOS已作初始準備,CMOS狀態(tài)寄存器即將為日期和時間作初始準備。第一個64KRAM第0位故障。
11測試DMA通道1。CMOS狀態(tài)寄存器已作初始準備,即將停用DMA和中斷控制器。第一個64DKRAM第1位故障。
12測試DMA頁面寄存器。停用DMA控制器1以及中斷控制器1和2;即將視頻顯示器并使端口B作初始準備。第一個64DKRAM第2位故障。
13測試8741鍵盤控制器接口。視頻顯示器已停用,端口B已作初始準備;即將開始電路片初始化/存儲器自動檢測。第一個64DKRAM第3位故障。
14測試存儲器更新觸發(fā)電路。電路片初始化/存儲器處自動檢測結(jié)束;8254計時器測試即將開始。第一個64DKRAM第4位故障。
15測試開頭64K的系統(tǒng)存儲器。第2通道計時器測試了一半;8254第2通道計時器即將完成測試。第一個64DKRAM第5位故障。
16建立8259所用的中斷矢量表。第2通道計時器測試結(jié)束;8254第1通道計時器即將完成測試。第一個64DKRAM第6位故障。
17調(diào)準視頻輸入/輸出工作,若裝有視頻BIOS則啟用。第1通道計時器測試結(jié)束;8254第0通道計時器即將完成測試。第一個64DKRAM第7位故障。
18測試視頻存儲器,如果安裝選用的視頻BIOS通過,由可繞過。第0通道計時器測試結(jié)束;即將開始更新存儲器。第一個64DKRAM第8位故障。
19測試第1通道的中斷控制器(8259)屏蔽位。已開始更新存儲器,接著將完成存儲器的更新。第一個64DKRAM第9位故障。
1A測試第2通道的中斷控制器(8259)屏蔽位。正在觸發(fā)存儲器更新線路,即將檢查15微秒通/斷時間。第一個64DKRAM第10位故障。
1B測試CMOS電池電平。完成存儲器更新時間30微秒測試;即將開始基本的64K存儲器測試。第一個64DKRAM第11位故障。
1C測試CMOS檢查總和。.第一個64DKRAM第12位故障。
1D調(diào)定CMOS配置。.第一個64DKRAM第13位故障。
1E測定系統(tǒng)存儲器的大小,并且把它和CMOS值比較。.第一個64DKRAM第14位故障。
1F測試64K存儲器至最高640K。.第一個64DKRAM第15位故障。
20測量固定的8259中斷位。開始基本的64K存儲器測試;即將測試地址線。從屬DMA寄存器測試正在進行或失靈。
21維持不可屏蔽中斷(NMI)位(奇偶性或輸入/輸出通道的檢查)。通過地址線測試;即將觸發(fā)奇偶性。主DMA寄存器測試正在進行或失靈。
22測試8259的中斷功能。結(jié)束觸發(fā)奇偶性;將開始串行數(shù)據(jù)讀/寫測試。主中斷屏蔽寄存器測試正在進行或失靈。
23測試保護方式8086虛擬方式和8086頁面方式?;镜?4K串行數(shù)據(jù)讀/寫測試正常;即將開始中斷矢量初始化之前的任何調(diào)節(jié)。從屬中斷屏蔽存器測試正在進行或失靈。
24測定1MB以上的擴展存儲器。矢量初始化之前的任何調(diào)節(jié)完成,即將開始中斷矢量的初始準備。設(shè)置ES段地址寄存器注冊表到內(nèi)存高端。
25測試除頭一個64K之后的所有存儲器。完成中斷矢量初始準備;將為旋轉(zhuǎn)式斷續(xù)開始讀出8042的輸入/輸出端口。裝入中斷矢量正在進行或失靈。
26測試保護方式的例外情況。讀出8042的輸入/輸出端口;即將為旋轉(zhuǎn)式斷續(xù)開始使全局數(shù)據(jù)作初始準備。開啟A20地址線;使之參入尋址。
27確定超高速緩沖存儲器的控制或屏蔽RAM。全1數(shù)據(jù)初始準備結(jié)束;接著將進行中斷矢量之后的任何初始準備。鍵盤控制器測試正在進行或失靈。
28確定超高速緩沖存儲器的控制或者特別的8042鍵盤控制器。完成中斷矢量之后的初始準備;即將調(diào)定單色方式。CMOS電源故障/檢查總和計算正在進行。
29.已調(diào)定單色方式,即將調(diào)定彩色方式。CMOS配置有效性的檢查正在進行。
2A使鍵盤控制器作初始準備。已調(diào)定彩色方式,即將進行ROM測試前的觸發(fā)奇偶性。置空64K基本內(nèi)存。
2B使磁碟驅(qū)動器和控制器作初始準備。觸發(fā)奇偶性結(jié)束;即將控制任選的視頻ROM檢查前所需的任何調(diào)節(jié)。屏幕存儲器測試正在進行或失靈。
2C檢查串行端口,并使之作初始準備。完成視頻ROM控制之前的處理;即將查看任選的視頻ROM并加以控制。屏幕初始準備正在進行或失靈。
2D檢測并行端口,并使之作初始準備。已完成任選的視頻ROM控制,即將進行視頻ROM回復(fù)控制之后任何其他處理的控制。屏幕回掃測試正在進行或失靈。
2E使硬磁盤驅(qū)動器和控制器作初始準備。從視頻ROM控制之后的處理復(fù)原;如果沒有發(fā)現(xiàn)EGA/VGA就要進行顯示器存儲器讀/寫測試。檢測視頻ROM正在進行。
2F檢測數(shù)學協(xié)處理器,并使之作初始準備。沒發(fā)現(xiàn)EGA/VGA;即將開始顯示器存儲器讀/寫測試。.
30建立基本內(nèi)存和擴展內(nèi)存。通過顯示器存儲器讀/寫測試;即將進行掃描檢查。認為屏幕是可以工作的。
31檢測從C800:0至EFFF:0的選用ROM,并使之作初始準備。顯示器存儲器讀/寫測試或掃描檢查失敗,即將進行另一種顯示器存儲器讀/寫測試。單色監(jiān)視器是可以工作的。
32對主板上COM/LTP/FDD/聲音設(shè)備等I/O芯片編程使之適合設(shè)置值。通過另一種顯示器存儲器讀/寫測試;卻將進行另一種顯示器掃描檢查。彩色監(jiān)視器(40列)是可以工作的。
33.視頻顯示器檢查結(jié)束;將開始利用調(diào)節(jié)開關(guān)和實際插卡檢驗顯示器的關(guān)型。彩色監(jiān)視器(80列)是可以工作的。
34.已檢驗顯示器適配器;接著將調(diào)定顯示方式。計時器滴答聲中斷測試正在進行或失靈。35.完成調(diào)定顯示方式;即將檢查BIOSROM的數(shù)據(jù)區(qū)。停機測試正在進行或失靈。
36.已檢查BIOSROM數(shù)據(jù)區(qū);即將調(diào)定通電信息的游標。門電路中A-20失靈。
37.識別通電信息的游標調(diào)定已完成;即將顯示通電信息。保護方式中的意外中斷。
38.完成顯示通電信息;即將讀出新的游標位置。RAM測試正在進行或者地址故障>FFFFH。
39.已讀出保存游標位置,即將顯示引用信息串。.
3A.引用信息串顯示結(jié)束;即將顯示發(fā)現(xiàn)信息。間隔計時器通道2測試或失靈。
3B用OPTI電路片(只是486)使輔助超高速緩沖存儲器作初始準備。已顯示發(fā)現(xiàn)<ESC>信息;虛擬方式,存儲器測試即將開始。按日計算的日歷時鐘測試正在進行或失靈。
3C建立允許進入CMOS設(shè)置的標志。.串行端口測試正在進行或失靈。
3D初始化鍵盤/PS2鼠標/PNP設(shè)備及總內(nèi)存節(jié)點。.并行端口測試正在進行或失靈。
3E嘗試打開L2高速緩存。.數(shù)學協(xié)處理器測試正在進行或失靈。
40.已開始準備虛擬方式的測試;即將從視頻存儲器來檢驗。調(diào)整CPU速度,使之與外圍時鐘精確匹配。
41中斷已打開,將初始化數(shù)據(jù)以便于0:0檢測內(nèi)存變換(中斷控制器或內(nèi)存不良)從視頻存儲器檢驗之后復(fù)原;即將準備描述符表。系統(tǒng)插件板選擇失靈。
42顯示窗口進入SETUP。描述符表已準備好;即將進行虛擬方式作存儲器測試。擴展CMOSRAM故障。
43若是即插即用BIOS,則串口、并口初始化。進入虛擬方式;即將為診斷方式實現(xiàn)中斷。.44.已實現(xiàn)中斷(如已接通診斷開關(guān);即將使數(shù)據(jù)作初始準備以檢查存儲器在0:0返轉(zhuǎn)。)BIOS中斷進行初始化。
45初始化數(shù)學協(xié)處理器。數(shù)據(jù)已作初始準備;即將檢查存儲器在0:0返轉(zhuǎn)以及找出系統(tǒng)存儲器的規(guī)模。.
46.測試存儲器已返回;存儲器大小計算完畢,即將寫入頁面來測試存儲器。檢查只讀存儲器ROM版本。
47.即將在擴展的存儲器試寫頁面;即將基本640K存儲器寫入頁面。
48.已將基本存儲器寫入頁面;即將確定1MB以上的存儲器。視頻檢查,CMOS重新配置。
49.找出1BM以下的存儲器并檢驗;即將確定1MB以上的存儲器。.
4A.找出1MB以上的存儲器并檢驗;即將檢查BIOSROM數(shù)據(jù)區(qū)。進行視頻的初始化。
4B.BIOSROM數(shù)據(jù)區(qū)的檢驗結(jié)束,即將檢查<ESC>和為軟復(fù)位清除1MB以上的存儲器。.4C.清除1MB以上的存儲器(軟復(fù)位)即將清除1MB以上的存儲器.屏蔽視頻BIOSROM。.4D。已清除1MB以上的存儲器(軟復(fù)位);將保存存儲器的大小。.
4E若檢測到有錯誤;在顯示器上顯示錯誤信息,并等待客戶按<F1>鍵繼續(xù)。開始存儲器的測試:(無軟復(fù)位);即將顯示第一個64K存儲器的測試。顯示版權(quán)信息。
4F讀寫軟、硬盤數(shù)據(jù),進行DOS引導。開始顯示存儲器的大小,正在測試存儲器將使之更新;將進行串行和隨機的存儲器測試。.
50將當前BIOS監(jiān)時區(qū)內(nèi)的CMOS值存到CMOS中。完成1MB以下的存儲器測試;即將高速存儲器的大小以便再定位和掩蔽。將CPU類型和速度送到屏幕。
51.測試1MB以上的存儲器。.
52所有ISA只讀存儲器ROM進行初始化,最終給PCI分配IRQ號等初始化工作。已完成1MB以上的存儲器測試;即將準備回到實址方式。進入鍵盤檢測。
53如果不是即插即用BIOS,則初始化串口、并口和設(shè)置時種值。保存CPU寄存器和存儲器的大小,將進入實址方式。.
54.成功地開啟實址方式;即將復(fù)原準備停機時保存的寄存器。掃描“打擊鍵”
55.寄存器已復(fù)原,將停用門電路A-20的地址線。.
56.成功地停用A-20的地址線;即將檢查BIOSROM數(shù)據(jù)區(qū)。鍵盤測試結(jié)束。
57.BIOSROM數(shù)據(jù)區(qū)檢查了一半;繼續(xù)進行。.
58.BIOSROM的數(shù)據(jù)區(qū)檢查結(jié)束;將清除發(fā)現(xiàn)<ESC>信息。非設(shè)置中斷測試。
59.已清除<ESC>信息;信息已顯示;即將開始DMA和中斷控制器的測試。.
5A..顯示按“F2”鍵進行設(shè)置。
5B..測試基本內(nèi)存地址。
5C..測試640K基本內(nèi)存。
60設(shè)置硬盤引導扇區(qū)病毒保護功能。通過DMA頁面寄存器的測試;即將檢驗視頻存儲器。測試擴展內(nèi)存。
61顯示系統(tǒng)配置表。視頻存儲器檢驗結(jié)束;即將進行DMA#1基本寄存器的測試。.
62開始用中斷19H進行系統(tǒng)引導。通過DMA#1基本寄存器的測試;即將進行DMA#2寄存器的測試。測試擴展內(nèi)存地址線。
63.通過DMA#2基本寄存器的測試;即將檢查BIOSROM數(shù)據(jù)區(qū)。.
64.BIOSROM數(shù)據(jù)區(qū)檢查了一半,繼續(xù)進行。.
65.BIOSROM數(shù)據(jù)區(qū)檢查結(jié)束;將把DMA裝置1和2編程。.
66.DMA裝置1和2編程結(jié)束;即將使用59號中斷控制器作初始準備。Cache注冊表進行優(yōu)化配置。
67.8259初始準備已結(jié)束;即將開始鍵盤測試。.
68..使外部Cache和CPU內(nèi)部Cache都工作。
6A..測試并顯示外部Cache值。
6C..顯示
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Assessment I 第一課時 表格式(教學設(shè)計)-2024-2025學年湘少版(三起)英語六年級上冊
- 數(shù)據(jù)通信協(xié)議及設(shè)備操作手冊
- 售樓裝修設(shè)計合同
- 2023一年級數(shù)學下冊 一 加與減(一)第1課時 買鉛筆教學實錄 北師大版
- 2024-2025學年高中歷史 專題三 中國社會主義建設(shè)道路的探索 一 社會主義建設(shè)在探索中曲折發(fā)展(1)教學教學實錄 人民版必修2
- 互聯(lián)網(wǎng)行業(yè)創(chuàng)新與發(fā)展研究協(xié)議
- DB3715-T 16-2022 魯西鮮食甜玉米生產(chǎn)技術(shù)規(guī)程
- 3古詩三首《寒食》教學設(shè)計-2023-2024學年統(tǒng)編版語文六年級下冊
- 2024-2025學年高中歷史 學習與探究之二“個人在歷史上的作用”討論會(2)教學教學實錄 人民版選修4
- 股份制企業(yè)合同與文書指南
- 人教版六年級數(shù)學下冊《全冊完整》教案
- 《《中央企業(yè)合規(guī)管理辦法》解讀》課件
- 橋式起重機作業(yè)安全培訓
- 2021醫(yī)師定期考核題庫(人文2000題)
- 2025年中考語文專題復(fù)習:寫作技巧 課件
- (2024)云南省公務(wù)員考試《行測》真題及答案解析
- 60歲以上務(wù)工免責協(xié)議書
- 靶向治療患者的護理常規(guī)
- 二年級心理健康教育課:你的感受我知道
- 2024年社區(qū)工作者考試必考1000題【歷年真題】
- 信息化戰(zhàn)爭課件
評論
0/150
提交評論