smart digital housekeeper system...

39
1 崑山科技大學 資訊工程系 專題製作報告 以車牌辨識為主之車庫控制系統 Garage Control System of License Plate Recognition 生: 4980E060 許樹達 4980E013 王宇炫 4970E043 許文政 指導教授: 黃慶祥 教授 中華民國 102 年 5 月

Upload: others

Post on 08-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

1

崑山科技大學

資訊工程系

專題製作報告

以車牌辨識為主之車庫控制系統

Garage Control System of License Plate

Recognition

學 生: 4980E060 許樹達

4980E013 王宇炫

4970E043 許文政

指導教授: 黃慶祥 教授

中華民國 102年 5月

Page 2: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

2

以車牌辨識為主之車庫控制系統

Garage Control System of License Plate

Recognition

學 生: 4980E060 許樹達

4980E013 王宇炫

4970E043 許文政

指導教授: 黃慶祥 教授

崑山科技大學

資訊工程系

專題報告

A Report

Submitted to Department of Information Engineering

Kun Shan University

in Partial Fulfillment of the Requirements

for the Degree of Bachelor

in

Information Engineering

June 2013

Tainan, Taiwan, Republic of China

中華民國 102年 5月

Page 3: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

II

專題製作報告授權同意書

Page 4: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

I

以車牌辨識為主之車庫控制系統

學 生: 4980E060 許樹達 指導教授:黃慶祥 教授

4980E013 王宇炫

4970E043 許文政

崑山科技大學資訊工程系

摘 要:

為了給公寓大廈住戶在車庫方面有更加方便的進出管制,由於大部分車庫內

的車輛在外出時都使用紅外線或重量感應,只需靠近柵欄便會開啟,常常使得住

戶到外面才發現忘記攜帶遙控器。本系統將車庫改用攝像機截取車牌圖樣以進行

車輛身分辨識來開啟柵門進出,一方面可以免除忘記攜帶遙控器的麻煩,一方面

可以避免其他車輛隨意進入車庫佔用住戶車位。

關鍵字:車牌, 辨識

Page 5: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

II

Garage Control System of License

Recognition

Student: Shu-Da, Syu Advisor: Ching-Shine, Hwang

Wun-Cheng, Syu

Vu-Syuan Wang

Department of Information Engineering

Kun Shan University

Abstract

For the people who live in the apartment to get convenient pass in and out

by garage.Because of most car in garage when they need to get to outside

with infrared ray and weight induction.Only need to get close to the fence

it will open .Let the people forget or lost the remote when they get

outside.The system is using the camera to interception plate pattern for

license recognition to open the gates.It can excuse the trouble by forget

to bring the remote.On the other hand can avoid to the other car who

occupancy the parking spaces.

Keywords: License plate, Recognition

Page 6: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

III

誌 謝 這次的專題上首先最重要的就是要感謝我們各自的家庭成員,感謝他們讓我有書

讀,還有支持我們無成學業,再來要感謝的是專題指導教授,黃慶祥教授由於他的

教導以及在我們遇到瓶頸時,仍舊持續不懈的指點我們,才能讓我們的專題才能

在預定時間表內完成,再來就是要感謝我的同班同學與學長學弟們的幫忙,他們在

我們遇到問題時對我們伸出了援手幫助了我們解決了這些問題,最後感謝跟我同

組的隊友們與的奉獻,如果沒有他們犧牲了各自的時間的話單靠我一個人真的沒

辦法完成這樣有難度的專題,感謝你們。

Page 7: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

IV

目錄 (Contents)

誌 謝 .......................................... III

目錄 (Contents) ................................... IV

表目錄 ............................................. V

圖目錄 ............................................ VI

第一章緒論 ......................................... 1

1.1研究動機與目的 .............................................................................................................................. 1 1.1.1 研究動機 .............................................................................................................................. 1 1.1.2 研究目的 ................................................................................................................................. 1

1.2 研究方法與系統概述 ................................................................................................................... 1 1.3 論文內容概述 ............................................................................................................................... 2

第二章相關研究 ..................................... 3

2.1硬體套件 .......................................................................................................................................... 3 2.1.1 硬體攝影機 ............................................................................................................................. 3 2.1.2arduino uno 藍芽模組 ............................................................................................................ 4

2.2套件及技術 .................................................................................................................................... 12 2.2.1 關於 EmguCV .......................................................................................................................... 12 2.2.2 關於 Microsoft Visual Studio 2010 開發環境 .............................................................. 12 2.2.3 Microsoft C#....................................................................................................................... 13 2.2.4 關於 Microsoft Access 資料庫 .......................................................................................... 13 2.2.5 關於 Arduino 藍芽模組 ........................................................................................................ 14

第三章系統架構 .................................... 15

3.1系統名稱 ........................................................................................................................................ 15 3.2系統功能 ........................................................................................................................................ 15 3.3子系統功能 .................................................................................................................................... 16

3.3.1 車牌辨識子系統 (License Recognition Subsystem, LRS) .......................................... 16 3.3.2 硬體控制子系統 (Hardware Control System, HCS) ...................................................... 17

3.4系統流程圖 .................................................................................................................................... 17 3.5使用者特性 .................................................................................................................................... 18 3.6介面需求 (Interface Requirement) ......................................................................................... 18

3.6.1 內部介面需求 (Internal Interface Requirement) ...................................................... 18 3.6.2 外部介面需求 (External Interface Requirement) ...................................................... 18 3.6.3 設計限制 (Design and Implementation Constrains) .................................................. 18

第四章系統實現 .................................... 19

4-1.系統實現 ....................................................................................................................................... 19 4.1.1 車牌辨識系統........................................................................................................................ 19 4.1.2 車牌辨識系統程式碼講解 .................................................................................................... 25 4.1.3 資料庫的修改與查詢 ............................................................................................................ 26 4.1.3 資料庫的修改與查詢程式碼講解 ........................................................................................ 29

參考資料 .......................................... 30

Page 8: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

V

表目錄

表 2- 1攝影機比對表 ...................................................................................................... 4

Page 9: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

VI

圖目錄 圖 2- 1 ............................................................................................................................... 4

圖 2- 2 ............................................................................................................................... 4

圖 2- 3 ............................................................................................................................... 5

圖 2- 4 ............................................................................................................................... 5

圖 2- 5 ............................................................................................................................... 6

圖 2- 6 ............................................................................................................................... 6

圖 2- 7 ............................................................................................................................... 7

圖 2- 8 ............................................................................................................................... 7

圖 2- 9 ............................................................................................................................... 8

圖 2- 10 ............................................................................................................................. 8

圖 2- 11 ............................................................................................................................. 9

圖 2- 12 ............................................................................................................................. 9

圖 2- 13 ........................................................................................................................... 10

圖 2- 14 ........................................................................................................................... 10

圖 2- 15 ............................................................................................................................ 11

圖 2- 16 ............................................................................................................................ 11

圖 2- 17 ........................................................................................................................... 12

圖 3- 1 ............................................................................................................................. 15

圖 3- 2 ............................................................................................................................. 17

圖 4- 1 ............................................................................................................................. 19

圖 4- 2 ............................................................................................................................. 19

圖 4- 3 ............................................................................................................................. 20

圖 4- 4 ............................................................................................................................. 20

圖 4- 5 ............................................................................................................................. 21

圖 4- 6 ............................................................................................................................. 26

圖 4- 7 ............................................................................................................................. 26

Page 10: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

1

第一章緒論 1.1研究動機與目的

1.1.1 研究動機

為了給公寓大廈住戶在車庫方面有更加方便的進出管制,由於大部分車庫內

的車輛在外出時都使用紅外線或重量感應,只需靠近柵欄便會開啟,常常使得住

戶到外面才發現忘記攜帶遙控器,或在出遊時遺失了搖控器等狀況。

而不得不在返回自家的公寓時,需要請管理員來開啟閘門,才得以進入自家

公寓的車庫,這樣不只會照成財物的損失,也可能會發生一些對自身有害的事情。

1.1.2研究目的

以車牌辨識為主之車庫控制系統 (Garage Control System of License

Recognition ,GCS)專案的主要目的為將現行的公寓車庫或停車場的出入方式進行

改良,並且達到:

(1)減少住戶忘記攜帶遙控器或失竊等。

(2)避免外人任意進出公寓。

(3)使公寓車庫或停車場能更快的進出。

1.2 研究方法與系統概述

由於圖像辨識是我們這一組第一次碰到的題目,所以我們上網找到了一些影

像處理的方法,再由這些方法中找出一些可行的方式,並與專題指導教授討論出最

佳的方法,而再逐步的完成專題。

本專案範圍包含建置下面主系統與各項子系統,主系統為:

以車牌辨識為主之車庫控制系統

(Garage Control System of License Recognition ,GCS)

各子系統分別為:

車牌辨識子系統 (License Recognition Subsystem, LRS)

硬體控制子系統 (Hardware Control System, HCS)

在第三章的系統架構中會逐一的介紹

Page 11: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

2

1.3 論文內容概述

本論文在第一章中會先講解一些關於本專案的研究動機與研究方法,

並在第二章中介紹一些關於本專案所使用的系統軟體的用途與使用方法,

而第三章中會針對專案中的系統,逐一的講解系統中的功能與目的,

第四章中會將完成的系統與製作過程中的瓶頸逐一的解說。

Page 12: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

3

第二章相關研究

2.1硬體套件

2.1.1硬體攝影機

網路攝影機

(Ipcam)

USB攝影機

(Webcam)

說明

百萬畫素影像 O O

連接電腦 X O IPcam只需連接網路即可使用。

Webcam必須與電腦連接才能完成設

定正常運作。

軟體 X O IPcam用標準瀏覽器即可使用。

Webcam需額外安裝軟體。

高解析度 O X IPcam解析度可到 800萬畫素。

Webcam動態影像一般支援到 130萬

畫素。

鏡頭可更換 O X IPcam使用標準孔徑,可使用市售各

種鏡頭。

Webcam無法依環境需求或汰舊更換

鏡頭。

低照度 O X IPcam在低光源下仍可辨物體,有些

更具紅外線夜視功能。

Webcam在光源不足環境,即無法辨

識影像。

移動偵測 O X IPcam內建移動偵測功能。

Webcam還需搭配軟體才能啟動這項

功能。

驅動程試 X O IPcam不需驅動程式即可使用。

Webcam需額外安裝驅動程式方能正

常運作。

獨立式運作 O X IPcam可獨立運作。

Webcam連接電腦運作。

作業系統 O X IPcam支援 Windows、Ma c、Linux

等各種作業系統。

Webcam通常僅支援 Windows平台。

長時間運作 O X IPca m適 合每天 24小 時 不 間

斷 的 長 時 間運 作之專業用途。

Webcam為家用電腦或即時通訊用途

為主。

強大擴充性 O X IPcam可無限制擴充。

Webcam卻會 受限於 主機硬體規

格,有擴充 數目的限制。

Page 13: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

4

表 2- 1攝影機比對表

由於本系統為在 pc上運作,故選擇了 webcam作為硬體攝影機,以方便程式做測試

2.1.2arduino uno藍芽模組

Arduino Uno板子正面照。

圖 2- 1

背面照,這塊 Uno是 Rev 3,板子背面上印有"R3"字樣。

圖 2- 2

接下來就是要安裝設定了,首先到 Arduino官方網站的下載頁面,下載 Arduino的軟體部分(開

發環境)。 有Windows版、Mac OS X版、Linux版。

我的電腦是Windows 7,所以下載的是Windows版、1.0版(arduino-1.0-windows.zip)。

Arduino的軟體開發環境不用安裝,zip解壓縮後即可。

然後,需要一條 USB連接線,一頭是 A型插頭(右),一頭是 B型插頭(左)。

Page 14: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

5

圖 2- 3

連接板子與電腦後,Windows會跳出新增硬體精靈視窗。

因為我們將要自行指定驅動程式,所以選「不,現在不要」。

圖 2- 4

然後選「從清單或特定位置安裝(進階)」。

Page 15: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

6

圖 2- 5

只勾選「搜尋時包含這個位置」,按下「瀏覽」,指向 Arduino軟體解壓縮後的目錄下的 drivers目

錄。

圖 2- 6

然後就會開始安裝了。

Page 16: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

7

圖 2- 7

安裝時,你可能要按下「繼續安裝」。

圖 2- 8

哇,驅動程式的部份安裝完成囉。

Page 17: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

8

圖 2- 9

接下來,要找出 Arduino板子被接到哪一個序列埠上。雖然用的是 USB連接線,但其實是把 USB

模擬成序列埠。(以前 Arduino板子使用序列傳輸埠,就是在很久很久以前,通常用來連接滑鼠的

那種 9 pin RS-232連接埠,因為新電腦都沒有序列埠了,所以現在改成使用 USB連接埠。)

到「控制台」的「系統」。

圖 2- 10

選「硬體」,選「裝置管理員」。

Page 18: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

9

圖 2- 11

當有連接 Arduino板子時,在「連接埠(COM和 LPT)」下就會出現。

我的是 COM3。

圖 2- 12

找出連接埠的埠號後,就可以寫程式測試看看了。

Page 19: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

10

執行解壓縮目錄下的 arduino.exe,出現歡迎畫面。

圖 2- 13

首先到「Tools」-「Board」設定你用的是哪塊板子。

圖 2- 14

然後到「Tools」-「Serial Port」設定剛剛查出來的埠號。

Page 20: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

11

圖 2- 15

Arduino軟體裡有提供一些寫好的程式範例,我們可以拿來測試看看。

請選「File」-「Examples」-「1.Basics」-「Blink」。

圖 2- 16

按下左上角的 Verify按鈕,進行編譯、驗證看看程式有沒有問題。

沒問題後,按下 Upload按鈕進行上傳,所謂 Upload上傳,是指從電腦把程式傳到 Arduino

板子裡。

在傳輸的過程中,軟體開發環境的左下方狀態列會出現「Uploading...」,而且板子上有兩個標示著

Page 21: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

12

TX、RX的 LED會不停閃爍,表示正在傳輸中。

若傳輸成功,軟體開發環境的左下方狀態列會出現「Done uploading.」

傳輸成功後,你就可以到看板子上那顆小小的 LED(標示著 L、腳位 13的旁邊)在閃爍,亮一秒、

滅一秒、亮一秒、滅一秒、不斷地交替。

下圖的 1是電源指示燈,2就是標示著 L的 LED,3是我自己插上去的 LED,長腳插在 13、短腳

插在 GND。

圖 2- 17

安裝設定成功囉。接下來可看看我寫的其他 Arduino文章,玩玩呼吸燈、霹靂車燈、蜂鳴器唱青

花瓷、溫度感測、等等。

2.2套件及技術

2.2.1關於 EmguCV

EmguCV簡單說就是將 OpenCV包成.net可以使用的模組最新版提供 win32平

台自動安裝的安裝檔安裝完就可以直接在 Visual Studio中使用 OpenCV的程式

但卻不提供win64的平台自動安裝檔首先到EmguCV下載頁面下載win64的zip

檔下載完後將其解壓縮會產生一個資料夾:libemgucv-2.2.0.1010-win64若是

VS2010的版本可直接執行在資料夾裡面的vcredist_x64.exe檔還須下載一個檔案

Build_Binary_x86-64.bat並放到 libemgucv-2.2.0.1010-win64資料夾裡去執行

開啟 VS2010 選擇開啟專案

->libemgucv-2.2.0.1010-win64->Solution->VS2010->Emgu.CV.Example.sln

此時應該會出現一個警告視窗<無法連結資料庫>直接按確定

然後會經過一段時間的讀取會發現裡面提供了 21個小專案

分別對著專案按滑鼠右鍵選擇->偵錯->開始執行個體就能順利執行

使用 EmguCV可以與 OpenCV做溝通,而 OpenCV的語法全都可以在 EmguCV中執

行,並且 EmguCV 為自由軟體,可上網蒐詢範本,這對初學者而言可以更快速的了解

圖形辨識系統的用處。

而在本專題中 EmguCV的功能為以讀取車牌影像,灰階處理,邊緣偵測,二值

化,一次中值濾波,二次中值濾波,擷取車牌切割字元,字元正規化,樣本比對

來進行圖形辨識

2.2.2關於 Microsoft Visual Studio 2010 開發環境

Page 22: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

13

Microsoft Visual Studio(簡稱 VS)是美國微軟公司的開發工具套件系列

產品。VS 是一個基本完整的開發工具集,它包括了整個軟體生命周期中所需

要的大部分工具,如 UML 工具、代碼管控工具、整合式開發環境(IDE)等等。

所寫的目的碼適用於微軟支援的所有平台,包括 Microsoft Windows、Windows

Mobile、Windows CE、.NET Framework、.NET Compact Framework 和 Microsoft

Silverlight。

而 Visual Studio .NET 是用於快速生成企業級 ASP.NET Web 應用程式和高 6

效能桌面應用程式的工具。Visual Studio 包含基於元件的開發工具(如 Visual

C#、Visual J#、Visual Basic 和 Visual C++),以及許多用於簡化基於小組的

解決方案的設計、開發和部署的其他技術。

Microsoft Visual Studio 2010 是本專題所使用的主要程式平台,從辨識系統到

資料庫的修改與查詢系統或與 Arduino 藍芽模組的連結等,都是以 Microsoft

Visual Studio 2010 所開發

2.2.3 Microsoft C#

C#是微軟推出的一種基於.NET 框架的、物件導向的高階程式語言。C#

由 C 語言和 C++衍生而來,繼承了其強大的效能,同時又以.NET 框架類別庫

作為基礎,擁有類似 Visual Basic 的快速開發能力。C#由安德斯·海爾斯伯格

主持開發,微軟在 2000 年發行了這種語言。

ECMA 標準列出的 C#設計標的:

C#旨在設計成為一種「簡單、現代、通用」,以及物件導向的程式語言

此種語言的實作,應提供對於以下軟體工程要素的支援:Strongly type 的 7

檢查、陣列維度檢查、未初始化的變數參照檢測、自動垃圾收集(Garbage

Collection,指一種記憶體自動釋放技術)。軟體必須做到強大、持久,並

具有較強程式開發的生產力。

此種語言為在分散式環境中的開發提供適用的元件開發應用。

為使程式設計師容易遷移到這種語言,原始碼的可移植性十分重要,尤

其是對於那些已熟悉 C 和 C++的程式設計師而言。

對國際化的支援非常重要。

C#適合為獨立和嵌入式的系統編寫程式,從使用複雜作業系統的大型系

統到特定應用的小型系統均適用。

雖然 C#程式在儲存和操作能力需求方面具備經濟性,但此種語言並不能

在效能和程式大小方面與 C 語言或組合語言相抗衡。

2.2.4關於 Microsoft Access資料庫

每一個 ACCESS 資料庫由六個物件所組成(並非都必要)

(1)資料表:資料庫中存放原始資料之處

(2)表單:是一個使用者操作介面設計,用來提供使用者輸入編輯資料或瀏覽資料

的內容

(3)報表:作為資料列印輸出之用,係根據設計的規格格式化及資訊的組織建立輸

出介面

(4)查詢:利用查詢技術或語法由原始資料中找出符合條件的資料,或對於資料執

行處理動作的要求

Page 23: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

14

(5)巨集:由一個或多個指令所形成的集合,每個指令均是要求系統做特定動作與

處理

(6)模組:透過功能強大的 VBA程式語言,可設計及撰寫程式來強化資料庫之自動

化處理

本專題所使用的住戶資料表皆是以此 Access資料庫

2.2.5關於 Arduino藍芽模組

open source:硬體(Arduino I/O board),軟體(Arduino IDE)

能快速製作電子電路原型(electronics prototyping)有彈性、易使用

目標對象:設計師、任何對互動裝置有興趣的人

藉由感應器(sensor)能感知周遭環境變化 (如:紅外線感應器)

並且能控制周遭裝置 (如:燈)Arduino 電路可獨自運作 Arduino 電路也可以搭配

電腦運作, 跟電腦溝通

此專題中為與 PC連接以傳輸訊號用之裝置並以此裝置連接硬體電路

Page 24: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

15

第三章系統架構

3.1系統名稱

本專案範圍包含建置下面主系統與各項子系統,主系統為:

以車牌辨識為主之車庫控制系統

(Garage Control System of License Recognition ,GCS)

各子系統分別為:

車牌辨識子系統 (License Recognition Subsystem, LRS)

硬體控制子系統 (Hardware Control System, HCS)

3.2系統功能

本系統主要分為二個部份,分別為車牌辨識系統 (License Recognition

Subsystem, LRS)、硬體控制系統 (Hardware Control System, HCS)等,

子系統間的介面及互動圖如圖 3-1所示。

圖 3- 1

以車牌辨識為主之車庫控制系統架構圖

LRS系統首先我們在車輛進入時,我們需要求車主將車輛停在事先預訂好

的位子上,以方便辨識系統進行辨識,而在車輛進入時,我們需要求車主

將車輛停在事先預訂好的位子上,以方便辨識系統進行辨識 但當車主們

有失竊或更換車輛時 ,我們需要求車主與管理者登記車牌或報失,而由

於一般的攝影機不太能夠在黑暗的環境中攝影,所以我們將在事先預訂

好的位子上方加裝一個感應式得探照燈讓攝影機可以清楚的解取正確得

Page 25: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

16

車牌

3.3子系統功能

3.3.1車牌辨識子系統 (License Recognition Subsystem, LRS)

本子系統是以讀取車牌影像,灰階處理,邊緣偵測,二值化,一次

中值濾波,二次中值濾波,擷取車牌切割字元,字元正規化,樣本比對

等步驟來訓練系統對偵測車牌的準去性

邊緣偵測:進行邊緣偵測運算的目的是找出影像內明顯的垂直邊緣

點,所謂的邊緣指的是灰階值落差極大的兩點,而車牌區塊內的字元部

份,會形成許多密集的邊緣,這個特性讓我們能夠對車牌區域進行尋找

二值化:先得到影像中最大跟最小的像素值,其總合的一半即為初始

的門檻值 T,接著將影像裡大於此門檻值的像素值加總起來取其平均值

Osum,小於此門檻值的像素也同樣加總起來取得其平均值 sum,再把

Osum跟 Bsum加起來除以二得到 Tn,若 Tn不等於 T, 則將門檻值 Tn

設為新的門檻值 T, 直到 Tn等於 T 為止, 這樣取得的 T 即是當作二

值化依據的門檻值。

中值濾波:影像處理到現在,畫面裡還有許多小的雜點,可能會影響

到後面的辨識,於是需要使用消除雜訊的方法來去除畫面中的小雜點,

常見的消除雜訊方法如移動平均法,由於使用移動平均法易使影像變得

模糊,於是本專題使用較不會使影像變得模糊的中值濾波,使用兩次中

值濾波來去除畫面中的的雜點。

擷取車牌:將挑選出的車牌區塊擷取出來,就可以得到車牌部份的影

像。

切割字元:切割字元是依照前一步驟標記的方向往另一邊逐次切割

出字元,每次找出字元切割的起點跟終點再進行切割,每次切割完的終

點即為下一個字元切割的起點,而切割的終點為起點加上一個字元的寬

度,在起點跟終點附近找到黑白像素差距最大的垂直線,即為字元的切

割線,重複此步驟直到切出六個字元。

字元正規化: 為了後續與樣本字元比對,必須將切割出來的字元正

規化,本專題採用線性正規化,將字元正規化成 15*45 的大小,正規化

的方法是以 15*45 的座標推斷欲正規化字元在此大小裡的座標是黑點

Page 26: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

17

或白點

樣本比對: 經過正規化以後的字元跟樣本字元逐一比對,選出最相

似的字元,即是字元的比對結果。另外,針對幾組較容易辨識錯誤的字

元如『0』跟『D』、『B』跟『8』以及『S』跟『9』,判斷比對的相似個數,

如果最相似以及第二相似的字元,兩者的差距小於一定範圍,則再進入

二次比對。二次比對只比較重點區域,如『0』跟『D』的左上角及左下

角,累計這些區域跟樣本字元裡面的白點,相似的數量多寡判斷這個字

元是『0』或者是『D』,經過此項處理更能增加字元辨識的正確率。

經過了這些處理後,將辨識完的字元資料,透過匯入在辨識系統中的

資料庫,將字元資料跟 Access資料庫裡的資料表做比對,再將比對的結果

呈現出來

3.3.2硬體控制子系統 (Hardware Control System, HCS)

這是使用了由黃慶祥教授所提供的 PC藍芽接收器和 Arduino藍芽模組,

與我們組員所自製的硬體燈號所組成

在程式方面則是在辨識系統中加入了與 Arduino 藍芽模組溝通的參數與

函數,透過這些函數,會將以跟資料庫比對完的資料透過 PC藍芽接收器傳送資

料至 Arduino 藍芽模組再透過接腳輸出至 LED燈號已顯試結果

3.4系統流程圖

圖 3- 2

Page 27: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

18

圖 3-2. 以車牌辨識為主之車庫控制系統流程圖

首先我們在車輛進入時,我們需要求車主將車輛停在事先預訂好的

位子上,以方便辨識系統進行辨識,而由於一般的攝影機不太能夠在黑暗

的環境中攝影,所以我們將在事先預訂好的位子上方加裝一個感應式得

探照燈讓攝影機可以清楚的解取正確得車牌

但當車主們有失竊或更換車輛時 ,我們需要求車主與管理者登記車牌

或報失,以便管理者進行資料的更改或調閱

3.5使用者特性

有這幾種 GCS 的使用者:

管理員

(1) 修改與查詢住戶的車牌

(2) 在辨識錯誤時前去了解情況

住戶

(1) 須將車輛停在原先規定好的位置上

3.6介面需求 (Interface Requirement)

3.6.1內部介面需求 (Internal Interface Requirement)

伺服端的資料庫使用 Microsoft Office Access 2007 中文標準版。

子系統 LRS需提供 GCS對於修改與查詢的功能介面。

3.6.2外部介面需求 (External Interface Requirement)

在車輛進入時,HCS需要求車主將車輛停在事先預訂好的位子上,以方便

LRS進行辨識

3.6.3設計限制 (Design and Implementation Constrains)

管理作業的子系統採用 Microsoft Visual Studio 2010 的開發環境。

Page 28: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

19

第四章系統實現

4-1.系統實現

4.1.1車牌辨識系統

步驟一:匯入圖檔

圖 4- 1

步驟二:輸入車牌資料並比對(正確時)

圖 4- 2

Page 29: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

20

步驟二:輸入車牌資料並比對(錯誤時)

圖 4- 3

為了使其顯示結果更加明顯,所以以 Arduino藍芽模組傳送訊號置硬體燈號

LED做為顯示的功能

步驟三:通過 Arduino 藍芽模組傳送訊息

圖 4- 4

Page 30: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

21

步驟四:接收 Arduino 藍芽模組並以 LED 顯示

圖 4- 5

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Data.OleDb;

using System.Data.SqlClient;

using System.Diagnostics;

using System.Drawing;

using System.Text;

using System.Threading;

using System.Timers;

using System.Windows.Forms;

using Emgu.CV;

using Emgu.CV.Structure;

using Emgu.CV.UI;

namespace LicensePlateRecognition

{

public partial class LicensePlateRecognitionForm : Form

{

string shw = "資料比對正確\n開啟柵欄";

//String zxcv= "";

public int i = 0;

// int b = 0;

private LicensePlateDetector _licensePlateDetector;

public LicensePlateRecognitionForm()

Page 31: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

22

{

InitializeComponent();

_licensePlateDetector = new LicensePlateDetector();

ProcessImage(new Image<Bgr, byte>("license-plate.jpg"));

}

private void ProcessImage(Image<Bgr, byte> image)

{

Stopwatch watch = Stopwatch.StartNew(); // time the detection process

List<Image<Gray, Byte>> licensePlateImagesList = new List<Image<Gray,

byte>>();

List<Image<Gray, Byte>> filteredLicensePlateImagesList = new

List<Image<Gray, byte>>();

List<MCvBox2D> licenseBoxList = new List<MCvBox2D>();

List<string> words = _licensePlateDetector.DetectLicensePlate(

image,

licensePlateImagesList,

filteredLicensePlateImagesList,

licenseBoxList);

watch.Stop(); //stop the timer

processTimeLabel.Text = String.Format("License Plate Recognition time: {0}

milli-seconds", watch.Elapsed.TotalMilliseconds);

panel1.Controls.Clear();

Point startPoint = new Point(10, 10);

for (int i = 0; i < words.Count; i++)

{

AddLabelAndImage(

ref startPoint,

String.Format("License: {0}", words[i]),

licensePlateImagesList[i].ConcateVertical(filteredLicensePlateImagesList[i]));

image.Draw(licenseBoxList[i], new Bgr(Color.Red), 2);

}

imageBox1.Image = image;

}

private void AddLabelAndImage(ref Point startPoint, String labelText, IImage

image)

{

Label label = new Label();

panel1.Controls.Add(label);

label.Text = labelText;

label.Width = 100;

label.Height = 30;

label.Location = startPoint;

Page 32: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

23

startPoint.Y += label.Height;

ImageBox box = new ImageBox();

panel1.Controls.Add(box);

box.ClientSize = image.Size;

box.Image = image;

box.Location = startPoint;

startPoint.Y += box.Height + 10;

}

private void button1_Click(object sender, EventArgs e)

{

DialogResult result = openFileDialog1.ShowDialog();

if (result == DialogResult.OK)

{

Image<Bgr, Byte> img;

try

{

img = new Image<Bgr, byte>(openFileDialog1.FileName);

}

catch

{

MessageBox.Show(String.Format("Invalide File: {0}",

openFileDialog1.FileName));

{

}

return;

}

ProcessImage(img);

}

}

private void imageBox1_Click(object sender, EventArgs e)

{

}

private void panel1_Paint(object sender, PaintEventArgs e)

{

}

private void textBox2_TextChanged(object sender, EventArgs e)

{

}

Page 33: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

24

private void button2_Click(object sender, EventArgs e)

{

InitializeComponent();

// b = 1;

// print_data();

string co = @"Provider=Microsoft.ACE.OLEDB.12.0 ; Data Source

=C:\Users\Administrator\Desktop\資料庫 0.0\SQLtest.accdb";

//string brw = textBox2.Text;

string sqlselect_like = "select License,Name from test where License = '"

+ textBox2.Text + "'";

OleDbConnection conn = new OleDbConnection(co);//1.引用

SqlConnection物件連接資料庫

conn.Open();//2.開啟資料庫

OleDbCommand cmd = new OleDbCommand(sqlselect_like, conn);//3.引

用 SqlCommand物?E

cmd.ExecuteNonQuery();//4.執行 SQL語法 ;

OleDbDataReader read = cmd.ExecuteReader();

read.Read();

if (read.Read() == true)

{

// zxcv = "資料比對正確";

MessageBox.Show(shw);

button3.Visible = true;

shw = "資料比對錯誤";

}

else //if (read.Read() == false)

{

// zxcv = "資料對錯誤";

MessageBox.Show("資料比對錯誤");

}

}

private void textBox2_TextChanged_1(object sender, EventArgs e)

{

}

private void panel2_Paint(object sender, PaintEventArgs e)

Page 34: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

25

{

}

private void button3_Click(object sender, EventArgs e)

{

MessageBox.Show("資料比對錯誤");

button3.Visible = false;

}

}

}

4.1.2車牌辨識系統程式碼講解

以上的程式碼為在車牌辨識系統裡加入資料庫比對的主要程式碼,剛開始匯

入資料庫時因為忘了加入的宣告函數而導致了許多的錯誤參數,在黃慶祥教授的

指導下這問題獲得了改善,

為我們這組同學自己宣告的變數 ZXCV目的是為了以此變數取代原先的辨識結

果的變數

並且在是為了將辨識結果與資料庫做比對而設計的,而止段程式碼中

必須要將路徑跟改成使用者電腦裡的路徑相同,這樣這段程式碼才得以執行,而下

面的將比對結果顯示出來的程式碼原先是有 BUG,而在收詢了一些網路上的資料後

才發現是 IF…ELSE 函數的問題

將 PC藍芽棒連接到 Arduino藍芽模組的操作步驟,對從來沒有碰過 Arduino

藍芽模組的我們這一組同學來說,多謝了黃慶祥教授的指導,才得以成功

我們這組為了以 LED燈號代替硬體閘們而寫的程式碼,以 A1接腳代表資料比

對成功,而 A3接腳為表示資料比對錯誤,這方面要感謝蔡政融同學的指導

我們這組自製的硬體電路板以紅燈代表資料比對正確,而黃燈則代表了資料

比對錯誤

Page 35: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

26

4.1.3資料庫的修改與查詢

如有住戶因跟換了車輛或丟失了車輛則可以透過資料庫系統來做查詢與更改,

這樣可以更進一步的確人住戶資料與其車量的安全

步驟五:查詢資料庫資料

圖 4- 6

步驟五:更改資料庫資料

圖 4- 7

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Navigation;

using System.Windows.Shapes;

using System.Data;

Page 36: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

27

using System.Data.OleDb;

using System.Data.SqlClient;

using System.Timers;

using System.Windows.Forms;

using System.Threading;

namespace SQLtest

{

/// <summary>

/// MainWindow.xaml 的互動邏輯

/// </summary>

public partial class MainWindow : Window

{

//System.Windows.Forms.Timer timer;

public int i = 0;

int b = 0;

//private void timer1_Tick(object sender, EventArgs e)

//{

// print_data();

//}

public MainWindow()

{

InitializeComponent();

}

private void button1_Click(object sender, RoutedEventArgs e)

{

InitializeComponent();

b = 1;

print_data();

}

private void button2_Click(object sender, RoutedEventArgs e)

{

InitializeComponent();

b = 2;

print_data();

}

private void print_data()

{

string co = @"Provider=Microsoft.ACE.OLEDB.12.0 ; Data Source =

C:\Users\Administrator\Desktop\資料庫 0.0\SQLtest.accdb";

Page 37: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

28

//=============================================================

============================================================

//SQL語法

string sqlselect_like = "select License,Name from test where License = '"

+ textBox1.Text + "'";

string sqlselect_update = "update test set License = '" + textBox2.Text +

"' where Name ='" + TextBlock1.Text + "'";

//=============================================================

============================================================

OleDbConnection conn = new OleDbConnection(co);//1.引用

SqlConnection物件連接資料庫

conn.Open();//2.開啟資料庫

if (b == 1)

{

if (textBox1.Text != "")

{

OleDbCommand cmd = new OleDbCommand(sqlselect_like,

conn);//3.引用 SqlCommand物件

cmd.ExecuteNonQuery();//4.執行 SQL語法 ;

OleDbDataReader read = cmd.ExecuteReader();

read.Read();

TextBlock1.Text = read.GetString(1);

}

// else

// {

// TextBlock1.Text = "查無資料";

// }

//TextBlock1.Text = read.GetString(1);

}

if (b == 2)

{

if (textBox2.Text != "")

{

Page 38: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

29

OleDbCommand cmd = new

OleDbCommand(sqlselect_update, conn);//3.引用 SqlCommand物件

cmd.ExecuteNonQuery();//4.執行 SQL語法 ;

//OleDbDataReader read = cmd.ExecuteReader();

//read.Read();

TextBlock1.Text = "修改成功,請使用新的車牌再查詢一次";

}

}

}

}

}

4.1.3資料庫的修改與查詢程式碼講解

以上為我們的資料庫修改與查詢的程式碼,這方面感謝陳庭瑋學弟的幫忙,讓

原本對資料庫一竅不通的我們了解了資料庫的基本語法

在我們完成了程式之後發現了顯示不出來的 BUG,這方面感謝陳敬諺與薛佳明同學的

幫助改善了這個 BUG

Page 39: Smart Digital Housekeeper System (SDH)ir.lib.ksu.edu.tw/bitstream/987654321/19158/2/專題製作.pdf為了給公寓大廈住戶在車庫方面有更加方便的進出管制,於大部分車庫內

30

參考資料 [1]http://yy-blogger.blogspot.tw/2011/01/emgu-cv.html

(關於 EmguCV)

[2]http://140.134.131.145/upload/paper_uni/982pdf/%E8%BB%8A%E7%89%8C%E

8%BE%A8%E8%AD%98%E7%B3%BB%E7%B5%B1.pdf

(逢甲大學資訊工程學系專題研究報告車牌辨識系統)

[3]http://www.csie.ntnu.edu.tw/~violet/indexdemounder.files/983project

.pdf

(智慧型停車場的車牌辨識系統)

[4]http://www.csie.nhu.edu.tw/2008/wp-content/uploads/2009/07/16.pdf

(車牌辨識系統之實作)

[5]http://www.rotasun.com.tw/page03-1-car-recognizer-features.html

(眾陽機械工業有限公司之車牌辨識系統)

[6]http://elesson.tc.edu.tw/md221/pluginfile.php/4151/mod_resource/con

tent/1/arduino.pdf

(Arduino藍芽模組介紹)