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

正文內(nèi)容

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

2025-06-06 10:42本頁面
  

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