freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)論文-基于android平臺(tái)的車輛信息查詢系統(tǒng)的開發(fā)設(shè)計(jì)-資料下載頁

2025-06-06 10:42本頁面
  

【正文】 引用。項(xiàng)目目錄結(jié)構(gòu)如圖 3。具體請(qǐng)參照項(xiàng)目主頁的介紹。 圖 3 AndroidVIQ 項(xiàng)目目錄結(jié)構(gòu) 車牌 探測(cè) 在圖像處理技術(shù)中, Haar 特征提取技術(shù)常用于從圖像中提取物體 [22]。 該技術(shù)涉及神經(jīng)網(wǎng)絡(luò)等算法, 限于知識(shí)水平,暫不研究。邊緣檢測(cè)作為一種簡(jiǎn)單的物體檢測(cè)方法,特別適合于矩形外框的車牌。本課題采用基于邊緣檢測(cè)的車牌探測(cè)技術(shù)。原始車輛圖像如圖 4。 華南 理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 16 圖 4 原始車輛圖像 將原始圖像轉(zhuǎn)化為 灰階 圖像 cvCvtColor(mVehicleImage, vehicleImageGray, CV_BGR2GRAY)。 圖 5 灰階圖像 灰階圖像的平滑與增強(qiáng)處理 cvSmooth(vehicleImageGray, vehicleImageGray, CV_GAUSSIAN, 3)。 cvEqualizeHist(vehicleImageGray, vehicleImageGray)。 圖 6 平滑與增強(qiáng)過后的灰階圖像 灰階圖像轉(zhuǎn)化為二值圖像 cvThreshold(vehicleImageGray, vehicleImageBinary, 128, 255, CV_THRESH_BINARY)。 華南 理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 17 圖 7 二值圖像 從二值圖像中提取輪廓 CvSeq contours = new CvSeq()。 int objects = cvFindContours(vehicleImageBinary, cvCreateMemStorage(0), contours, (), CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE)。 圖 8 輪廓圖像(黑色背景上的白色輪廓線,不易觀察) 基于邊緣檢測(cè)的車牌探測(cè) 經(jīng)檢測(cè),提取的圖像輪廓中有約 1800 個(gè)獨(dú)立輪廓區(qū)域。我們這樣來找到車牌輪廓區(qū)域:用指定精度逼近曲線輪廓,形成一個(gè)多邊形輪廓;如果多邊形為四邊形,面積足夠大,且寬高比介于 到 之間(普通車牌 外廓尺寸為 440mm 140mm,寬高比為 ),則可初步判斷它為車牌輪廓,接下來的工作將圍繞該區(qū)域展開。示例代碼如下: //獲得多邊形輪廓 CvSeq polyContours = cvApproxPoly(contours, (), cvCreateMemStorage(0), CV_POLY_APPROX_DP, cvContourPerimeter(contours) * , 0)。 //檢查輪廓邊數(shù)和面積 華南 理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 18 if (() == 4 amp。amp。 cvContourArea(polyContours, CV_WHOLE_SEQ, 0) 600) { //獲得輪廓外框 CvRect boundingRect = cvBoundingRect(polyContours, 0)。 //檢查輪廓寬高比 double plate_HWratio = ((double) ()) / ((double) ())。 if (plate_HWratio amp。amp。 plate_HWratio ) { //設(shè)置原來備份的車輛灰度圖像的 ROI(感興趣區(qū)域) cvSetImageROI(vehicleImageGrayClone, boundingRect)。 //接下來:進(jìn)行車牌字符的分割 //TODO: character segmentation on the licence image } } 檢測(cè)出的車牌圖像如圖 9。于是,接下來將進(jìn)行車牌字符的分割。(車牌的偏斜矯正一般情況下沒有必要,本文不討論。) 圖 9 檢測(cè)出的車牌圖像 車牌 字符分割 對(duì)于原來備份的車輛灰度圖像,在設(shè)置好 ROI—— 車牌區(qū)域之后,進(jìn)行 Canny 邊緣檢測(cè),獲得車牌圖像的輪廓,如圖 10。 圖 10 車牌圖像的輪廓 //對(duì)車牌圖像進(jìn)行邊緣檢測(cè) cvCanny(licenceImage, plateImageCanny, 128, 255, 3)。 同樣通過 cvFindContours()函數(shù)找到連續(xù)的輪廓,逐一判斷是否為車牌字符。判斷方法為:輪廓的外框,高度大于車牌高度的二分之一,且寬度小于車牌寬度的四分之一者,即為車牌字符。以此,車牌中的點(diǎn)號(hào)、孔隙和小范圍的污點(diǎn)均已被自動(dòng)去除。所得的單個(gè)的字符如圖 11。 華南 理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 19 圖 11 分割后的車牌字符 分割后的字符,可以單獨(dú)識(shí)別,也可以拼接后一起識(shí)別,如圖 12。為了提高識(shí)別率,還可以增加字符與背景的對(duì)比度,并應(yīng)準(zhǔn)偱 OCR 引擎對(duì)前景背景色的要求。 圖 12 分割后再合并的車牌字符 車牌字符 識(shí)別 Tesseract OCR 引擎 Tesseract OCR 引擎是 1995 年 UNLV Accuracy 大賽中的排名前三的引擎。 1995 年到2021 年間,它沒有大的改進(jìn);之后,它被谷歌大幅改進(jìn),很可能是識(shí)別率最高的可用開源 OCR 引擎之一了。結(jié)合 Leptonica 圖像處理庫,它能讀取各種各樣格式的圖像文件,識(shí)別出超過 40 多種語言的文本 [23]。 目前該引擎已經(jīng)對(duì)中文識(shí)別有了一定的支持。然而對(duì)于大陸車牌文字,它的識(shí)別率并不高。原因在于,國家車牌字符使用的是一種特殊的字符,以便于區(qū)分。它不同于標(biāo)準(zhǔn)印刷符。因此須為 Tesseract OCR 引擎訓(xùn)練出專供車牌識(shí)別的語言包。 車牌語言的訓(xùn)練 車牌語言訓(xùn)練的過程,就是提供給計(jì)算機(jī)目標(biāo)文字圖像及相應(yīng)的文字,讓計(jì)算機(jī)自動(dòng)分析并存儲(chǔ)這一對(duì)應(yīng)關(guān)系的過程。 Tesseract 為訓(xùn)練過程提供了一定的支持。 首先,取得帶標(biāo)準(zhǔn)車牌文字的圖像文件。 GA 362021 中華人民共和國機(jī)動(dòng)車號(hào)牌 外廓尺寸為 440mm 140mm的號(hào)牌 [1],是最佳的材料。 然后,將它們上下拼接成一幅圖像,保存成 TIFF 格式。圖像寬高建議為 1056*2021(單位像素),圖像分辨率 96dpi,命名為“ ”。之所以將三類圖像拼接成一幅圖像,一方面是應(yīng)官方文檔要求,一類字體一幅圖片,三類字符同屬一種字符(這里命名為“ lf”);另一方面是為了簡(jiǎn)化訓(xùn)練過程。如圖 13(由于警車車牌不在本課題討論范圍之內(nèi),為簡(jiǎn)化操作,未 將其包含進(jìn)來)。 華南 理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 20 圖 13 車牌字符訓(xùn)練圖片 圖 14 連通多部首漢字以簡(jiǎn)化盒子文件的修改 接下來開始生成中間文件。首先在計(jì)算機(jī)上安裝 Tesseract 引擎(目前是 )。然后,在命令行執(zhí)行以下命令: tesseract makebox 該命令將使用默認(rèn)的語言(英文)對(duì) 進(jìn)行識(shí)別。識(shí)別結(jié)果將生成盒子文件文件 ,文件中每一行均為所識(shí)別出的字符、其在訓(xùn)練圖片中的坐標(biāo)(四列分別是左、下、右、下,坐標(biāo)原點(diǎn)為圖片左下角)以及頁號(hào)(單頁訓(xùn)練圖片頁號(hào)恒為 0)。 對(duì)使用默 認(rèn)語言自動(dòng)生成的盒子文件進(jìn)行一定的修改,再輸入計(jì)算機(jī),即完成了新語言學(xué)習(xí)中的重要一步。如果自動(dòng)生成的盒子文件中的字符能與正確字符良好對(duì)應(yīng)(如本訓(xùn)練圖片中的數(shù)字 1 在盒子文件中被識(shí)別成了“ |”),修改例子文件將非??旖?,改正字符即可;如果一個(gè)字符被 tesseract 解釋成了多個(gè)字符(如“蘇”被解析成了“艸”和“辦”),在盒子文件中得到了多行記錄,則需要采取一定的手段找到所識(shí)別行與目標(biāo)字符的對(duì)應(yīng)關(guān)系,并合并錯(cuò)誤的行。具體參考官方文檔 訓(xùn)練 Tesseract3[24]。 其實(shí),針對(duì)上述問題,有一個(gè)簡(jiǎn)單的辦法。問題的原因在于漢字字符多偏旁部首,容易被 tesseract 當(dāng)作多個(gè)字符對(duì)待;生成盒子文件的目的,只是用文本文件表示出目標(biāo)字符及其在訓(xùn)練圖片中的區(qū)域。因此,我們可以為不連通的字符添上筆畫,使之完全連通。在識(shí)別出盒子后,再換回原圖,用于接下來的特征記錄。圖 14 便能完好地生成 72 行字符數(shù)據(jù)。 接下來的工作要簡(jiǎn)單得多。按 訓(xùn)練 Tesseract3 中的步驟: //訓(xùn)練 Tesseract: tesseract nobatch //計(jì)算字符集: 華南 理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 21 unicharset_extractor //讀取字體屬性:(新建字體屬性文件 font_properties,內(nèi)容為“ lpft 0 0 1 0 0”) mftraining F font_properties U unicharset //分類歸并: mftraining F font_properties U unicharset O training //其他文件(數(shù)據(jù)字典、 unicharambigs)均不必提供。 //匯集所有中間文件,生成語言包:(先須為 normproto、 Microfeat、 inttemp、 pffmtable 和 unicharset等文件加上語言名前綴,這里用“ l.”;語言名建議遵循 ISO 6392 標(biāo)準(zhǔn)) bine_tessdata l. 不出意外,專用車牌語言包 即生成成功! 同樣可在參考文獻(xiàn) [25]中下載得到。 重要提醒 :訓(xùn)練語言包的過程中,可能會(huì)有這樣或那樣的問題。多嘗試,多分析,查閱 Tessearct 項(xiàng)目的問題列表,并勇于提問,最終一定能成功。關(guān)于上述過程的討論,詳見 Tessearct 項(xiàng)目第 557 號(hào)問題討論 [25]。 Tesseract 庫在 Android 中 的使用 Tesseract庫在 Android 中的使用,同樣由 JNI實(shí)現(xiàn)。開源項(xiàng)目 tesseractandroidtools[26]是一個(gè) Android 庫項(xiàng)目 [27],提供了用于使用 Tesseract OCR 和 Leptonica 圖像處理庫的一系列 Android API 和構(gòu)建文件。該項(xiàng)目的目錄結(jié)構(gòu)如圖 15。 圖 15 項(xiàng)目 tesseractandroidtools 的目錄結(jié)構(gòu) 共享庫 和 可 以直接通過 NDK 編譯生成;目錄 jin下存放的是這兩華南 理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 22 個(gè)庫的 C/C++源文件和編譯指令。有關(guān) NDK 的相關(guān)知識(shí),請(qǐng)參考 Android 官方文檔 [28]。 包 下的類 TessBaseAPI 即為 Tesseract OCR 引擎的Java 接口。它并沒有實(shí)現(xiàn)所有可用的 JNI 方法,不過實(shí)現(xiàn)的方法已經(jīng)夠用。它們主要包括: ? () 構(gòu)造 TessBaseAPI 實(shí)例。 ? boolean (String datapath, String language) 使用指定語言初始化 Tesseract 引擎。 ? void (int mode) 設(shè)置頁面分割模式,決定 OCR 引擎在識(shí)別文字之前要作多少處理。 ? void (Pix image) 設(shè)置待識(shí)別圖像。 ? String () 返回 UTF8 格式的識(shí)別出的文本。 ? int () 返回對(duì)文本識(shí)別結(jié)果的確定度。 庫項(xiàng)目 tesseractandroidtools 為本項(xiàng)目使用,有兩種方式: 1)本項(xiàng)目直接引用打開的庫項(xiàng)目(具體見 Android 官方文檔 [27]); 2)將庫項(xiàng)目生成的 jar 文件和 so 文件包含至本項(xiàng)目中。兩種做法本質(zhì)是一樣的。但在實(shí)踐過程中發(fā)現(xiàn),在包含 JavaCV項(xiàng)目(使用方式 2)的同時(shí)引用 tesseractandroidtools 項(xiàng)目(使用方式 1),本項(xiàng)目將在運(yùn)行時(shí)報(bào)錯(cuò),找不到 JavaCV中的 so 文件。問題可能出自同時(shí)使用 JNI 和 JavaCV調(diào)用本地代碼時(shí)的沖突。解決辦法是兩個(gè)項(xiàng) 目均使用方式 2 引用。關(guān)于本問題折討論,詳見 tesseractandroidtools項(xiàng)目第 119 號(hào)問題 [29]。 華南 理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 23 4 需求 分析與 設(shè)計(jì) 從本章開始,我們將回到緒論中所描述的問題,應(yīng)用前面兩章所 提供的技術(shù)手段,分析、設(shè)計(jì)并實(shí)現(xiàn)一個(gè)基于 Android 平臺(tái)的車輛信息查詢系統(tǒng)。 需求分析是系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的前提 ,也是軟件開發(fā)生命 周期 中最重要的一步 。 在面向?qū)ο蟮男枨蠓治龇椒ㄖ校?UML 模型圖起到了十分關(guān)鍵的作用。本章 通過用例圖來提取與靜態(tài)地描述需求,通過交互圖來 動(dòng)態(tài)地描述需求,以 供 總體設(shè)計(jì)中 類 與 實(shí)體 的 提取 、類圖 和實(shí)體關(guān)系圖 的生成 。 功能需求 我們將通過建立用例模型 來逐步描述、抽象、 細(xì) 化功能需求。 用例模型 根據(jù) “問題描述與項(xiàng)目動(dòng)因”一 節(jié)所描述的幾種典型場(chǎng)景,分析出本車輛查詢系統(tǒng)的 直接 用例 模型。直接用例模型表征最原始的角色與場(chǎng)景,沒有作抽象與細(xì)化。 用例圖 如圖 16。 華南 理工大學(xué)畢業(yè)設(shè)計(jì)(論文) 24 小 區(qū) 保 安問 題 車 輛 識(shí) 別 與 登 記 u s e s 小 區(qū) 、 校 園 、 停 車 場(chǎng) 門 衛(wèi)身 份 認(rèn) 證 , 出 入 登 記 u s e s 巡 邏 警 察黑 的 鑒 別 與 登 記 u s e s 服 務(wù) 機(jī) 構(gòu) 保 安來 客 車 輛 識(shí) 別 , 個(gè) 性 化 服 務(wù) u s e s 圖 16 本
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1