Hệ thống CSDL

Một phần của tài liệu Luận văn tốt nghiệp XÂY DỰNG HỆ THỐNG BÃI GIỮ XE THÔNG MINH (Trang 72)

CHƢƠNG IV : THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM

4.2 Hệ thống CSDL

4.2.1 Tạo CSDL

Tạo dữ liệu “QUANLYGIUXE.mdf” và nhật ký lưu trữ “QUANLYGIUXE.ldf” lưu trữ trong ổ đĩa D với kích thước lần lượt là 50MB và 10MB

create database QUANLYGIUXE on primary ( name=QUANLYGIUXE_mdf, Filename='D:\QUANLYGIUXE\QUANLYGIUXE.mdf', Size=50MB, MaxSize=Unlimited, FileGrowth=10% ) Log on ( Name=QUANLYGIUXE_Log, FileName='D:\QUANLYGIUXE\QUANLYGIUXE.ldf', Size=10MB, MaxSize=Unlimited, FileGrowth=5% )

56 Xây dựng bảng dữ liệu “ThongTinXe” với khóa chính la “MaPhieu” và kiểu dữ liệu được khia báo như sau:

Create Table ThongTinXe

(

MaPhieu varchar(50) Not Null, SoXe varchar(50) Not Null, BienSoRa varchar(50), NgayVao Datetime Not Null, NgayRa Datetime,

TienGui int,

HinhAnhVao Nvarchar(50) Not Null, HinhAnhRa Nvarchar(50),

AnhBienSoVao Nvarchar(50) Not Null, AnhBienSoRa Nvarchar(50),

TinhTrang Smallint Not Null

Constraint PK_ThongTinXe Primary Key(MaPhieu)

)

Bảng dữ liệu được tạo

Chương IV: Thiết kế và thực hiện phần mềm

57

4.2.2 Sơ đồ tổng quát hệ thống

Khi xe vào

Hình 4.19: Sơ đồ tổng quát hệ thống khi xe vào.

Khi xe ra

58 Tìm kiếm thơng tin xe

Hình 4.21: Sơ đồ tổng qt hệ thống khi tìm kiếm thơng tin xe.

4.2.3 Lập trình CSDL với C#

- Kết nối đến CSDL

SqlConnection con = new SqlConnection();

con.ConnectionString= "Data Source= Tên_PC\\SQLEXPRESS;Initial Catalog= QUANLYGIUXE;

Integrated Security=True";

SqlCommand cmd = new SqlCommand();

cmd.Connection = con; con.Open();

SqlDataAdapter ad = new SqlDataAdapter(cmd.CommandText, con); DataTable tb = new DataTable();

ad.Fill(tb);

- Đưa dữ liệu vào bảng “ThongTinXe” khi xe vào

cmd.CommandText ="INSERT INTO ThongTinXe values ('Mã_phiếu', 'Biển_số_xe_vào', NULL,

'Ngày_xe_vào', NULL, NULL, 'Đường_dẫn_hình_ảnh_xe_vào', 'Đường_dẫn_hình_ảnh_xe_ra', 'Đường_dẫn_ảnh_biển_số_xe_vào',NULL) ";

+ Dữ liệu lúc xe ra ta đặt giá trị NULL.

- Cập nhật dữ liệu vào bảng “ThongTinXe” khi xe ra

cmd.CommandText = "UPDATE ThongTinXe SET NgayRa='Ngày_giờ_ra' ,BienSoRa='Biển_số_xe_ra', AnhbienSoRa='Đường_dẫn_ảnh_biển_số_xe_ra',HinhAnhRa='Đường_dẫn_hình_ảnh_xe_ra'where

MaPhieu= ' " + textbox.txt + " ' ";

+ Mã_phiếu: lưu vào database dạng NgayThangNam-GioPhutGiay lúc chụp hình xe vào. + Biển_số: nhận từ ngõ ra của chương trình nhận diện biển số. Nếu kết quả nhận diện không đúng khi đối chiếu với ảnh ta có thể nhập bằng tay vào textBox1

Chương IV: Thiết kế và thực hiện phần mềm

59

cmd.CommandText = "UPDATE ThongTinXe SET SoXe ='" + textBox1.Text +"'where MaPhieu ='" + textBox2.Text + "'";

+ Ngày_xe_vào và ngày_xe_ra : lấy ngày giờ hệ thống bằng hàm getdate( ). + Đường_dẫn_hình_ảnh _xe_ vào: „E:\Hinh anh xe vao\Name1.jpg‟.

„Name1‟: tên hình ảnh xe vào được đặt cùng với mã phiếu.

+ Đường_dẫn_hình_ảnh _xe_ ra: „E:\Hinh anh xe ra\Name2.jpg‟.

„Name2‟: tên hình ảnh xe ra được đặt theo „NgayThangNam-GioPhutGiay‟ khi xe ra.

+ Đường_dẫn_ảnh_biển_số _xe_ vào: „E:\Hinh anh xe vao\Name3.jpg‟.

„Name3‟: tên ảnh biển số xe vào được đặt theo „NgayThangNamGioPhutGiay‟ khi xe vào.

+ Đường_dẫn_ảnh _biển_số_xe_ ra: „E:\Hinh anh xe ra\Name4.jpg‟.

„Name4‟: ảnh biển số xe ra được đặt theo‟ NgayThangNamGioPhutGiay‟ khi xe ra.

- Hiển thị dữ liệu lên giao diện

cmd.CommandText = "Select * from ThongTinXe where MaPhieu ='" + textBox.Text + "'";

if (tb.Rows.Count > 0)

{

textBox.Text = tb.Rows[0][n].ToString(); // n: số thứ tự trường chứa dữ liệu }

- Hiển thị hình ảnh lên giao diện

cmd.CommandText = "Select * from ThongTinXe where MaPhieu ='" + textBox.Text + "'";

if (tb.Rows.Count > 0)

{

String path = (String)tb.Rows[0][n]; // n: số thứ tự trường chứa dữ liệu pictureBox.Image = Image.FromFile(path);

60 - Tính tiền gửi xe

Hình 4.22: Lưu đồ giải thuật tính tiền gửi xe theo ngày.

DateTime NgayXeRa = (DateTime)tb.Rows[0][m]; // m: số thứ tự trường chứa dữ liệu Ngayra

DateTime NgayXeVao = (DateTime)tb.Rows[0][n]; // n: số thứ tự trường chứa dữ liệu Ngayvao TimeSpan Ngay = NgayXeRa - NgayXeVao;

int SoNgay = 0;

SoNgay = Convert.ToInt32(Ngay.TotalDays); if (SoNgay == 0)

{

cmd.CommandText="UPDATE ThongTinXe SET TienGui ='2000' where MaPhieu ='"+textBox.Text+"'"; }

else

{

int t = 2000 * (1 + SoNgay);

cmd.CommandText="UPDATE ThongTinXe SET TienGui ='"+t+"'where MaPhieu='" +textBox.Text+"'"; }

Chương IV: Thiết kế và thực hiện phần mềm

61 - Thiết lập 2 chế độ tìm kiếm thơng tin xe : tìm theo mã phiếu và tìm theo biển số xe

if (radioButton1.Checked == true) {

cmd.CommandText = "Select * from ThongTinXe where MaPhieu ='" + textBox.Text + "'"; }

else

{

cmd.CommandText = "Select * from ThongTinXe where SoXe = '" + textBox.Text + "'"; }

4.3 Giao diện ngƣời dùng

Giao diện chính của chương trình quản lý

62

CHƢƠNG V: KẾT QUẢ CHẠY HỆ THỐNG

Qua quá trình nghiên cứu đề tài, đã xây dựng được chương trình cơ bản để có thể ứng dụng vào hệ thống bãi giữ xe thơng minh. Chương trình được thực hiện bằng ngôn ngữ C# với sự hỗ trợ của thư viện xử lý ảnh EmguCV v2.3, chương trình quản lý CSDL Microsoft SQL Server 2008.

Chƣơng trình đã thực hiện đƣợc tính năng sau

- Mỗi xe khi vào bãi gửi sẽ được sở hữu một thẻ gửi xe tương ứng với một bản ghi cơ sở dữ liệu với đầy đủ các thơng tin: Mã số thẻ, hình ảnh chứa biển số xe, dữ liệu biển số xe dạng text (do phần mềm nhận dạng từ hình ảnh chụp biển số xe), thời gian…

- Nếu có sai sót khi nhận dạng biển số xe, chương trình có thể nhập tay để điều chỉnh lại thông tin.

- Khi xe ra khỏi bãi gửi, hệ thống làm công việc tương tự như lúc xe vào (nhận về mã số thẻ, nhận dạng biển số xe đang ra…), đồng thời thông qua mã số thẻ gửi xe, thông tin về xe gửi sẽ được tham chiếu và hiển thị, phần mềm hệ thống sẽ tự động so sánh biển số xe vào và ra để kết luận tính hợp lệ của lượt xe ra.

- Nếu hợp lệ, chương trình sẽ phát tiếng hiệu cho phép xe ra, nếu khơng thì sẽ báo hiệu cho bảo vệ kiểm tra lại thông tin của người lấy xe.

- Tất cả các thơng tin xe vào/ra (đặc biệt là hình ảnh biển số xe lúc vào/ra) đều được hiển thị tức thời lên màn hình.

- Hệ thống quản trị cơ sở dữ liệu có thể giải quyết các yêu cầu đặt ra đối với bãi giữ xe như tra cứu thông tin ra vào (theo mã số thẻ, theo biển số xe) , tính tiền gửi xe theo ngày tháng, giải quyết tình trạng mất thẻ, mất xe, thống kê và báo cáo doanh thu theo từng khoảng thời gian được chọn dưới dạng PDF file…

Kết quả chạy chƣơng trình trên Windows đã đáp ứng đƣợc các yêu cầu sau

- Độ chính xác: Chương trình có thể nhận diện được các biển số nghiêng ở các góc độ cho phép như đã nói ở trên. Thử nghiệm chương trình với 82 tấm hình mẫu chụp ở nhiều góc cạnh khác nhau với độ phân giải 640x480, ánh sáng tốt cho kết quả như sau:

Chương V: Kết quả chạy hệ thống

63

Thuật toán Số lƣợng mẫu Số lƣợng thành công Tỉ lệ thành công Tỉ lệ thất bại Nhận dạng biển số xe 82 81 99% 1% Tách ký tự 81 73 90% 10% Đọc ký tự 73 56 76% 24% Kết quả chung 82 56 68% 32%

Bảng 5.1: Tổng kết kết quả chương trình nhận diện.

- Thời gian xử lý: Với hệ thống này thời gian dừng cho mỗi xe vào, ra trung bình của một lượt xe chỉ mất từ 1-2 giây. Do đó, hệ thống giải quyết được vấn đề ùn tắc thường hay xảy ra ở các bãi gửi xe thơng thường.

- Tính ổn định: Hệ thống CSDL ổn định, khơng bị trùng lặp, mất dữ liệu khi hoạt động trong thời gian dài, có thể cập nhật sửa đổi dữ liệu bị sai dễ dàng. Hình ảnh vào/ra được lưu trữ ở thư mục trong máy và được đặt tên theo ngày giờ vào/ra để dễ quản lý.

- Quản lý tiền: Hệ thống cho phép quản lý cơng đoạn tính tiền một cách tự động, chính xác và báo cáo doanh thu theo từng tháng.

Ƣu điểm

- Chương trình có thể nhận dạng được biển số xe ở các độ nghiêng, độ lệch cho phép không quá 45°.

- Là phần mềm dựa trên các chương trình mã nguồn mở nên tiết kiệm được nhiều chi phí cho việc xây dựng chương trình phần mềm, đồng thời giảm thiểu chi phí thi công và thiết kế phần cứng.

- Dễ dàng triển khai tại nhiều nơi do tính gọn nhẹ, cơ động và thích ứng tốt của chương trình. - Đáp ứng được một số yêu cầu của thực tế như thời gian xử lý, quản lý tiền tệ, tính ổn định.

Nhƣợc điểm

64 - Chương trình nhận dạng biển số xe cịn q phụ thuộc vào các điều kiện ngoại cảnh như ánh sáng và chất lượng camera do thuật toán xử lý ảnh chưa được tối ưu.

- Chương trình OCR có độ chính xác cịn thấp, đọc khơng chính xác ký tự khi có nhiễu xung quanh và ký tự sai khác ít qua q trình xử lý ảnh.

- Chưa thể tự động hóa hồn tồn hệ thống bãi giữ xe thông minh, vẫn cần sự trợ giúp của con người.

Hƣớng khắc phục

Tăng tỉ lệ thành công bằng cách:

- Sử dụng camera hồng ngoại chất lượng tốt.

- Nghiên cứu các giải pháp để tối ưu thuật tốn xử lý ảnh cho chương trình nhận dạng và tách ký tự trên biển số.

- Xây dựng chương trình OCR bằng giải pháp mạng nơron nhân tạo để thích ứng tốt hơn với các ký tự trên biển số xe ở Việt Nam.

Hình ảnh chạy chƣơng trình

Giao diện khi xe vào

Chương V: Kết quả chạy hệ thống

65 Nếu nhận diện ký tự sai, có thể cập nhập biển số bằng tay

Hình 5.2: Giao diện nhập biển số bằng tay khi xe vào.

Giao diện khi xe ra

66 Nếu nhận diện ký tự sai, có thể cập nhập biển số bằng tay

Hình 5.4: Giao diện nhập biển số bằng tay khi xe ra.

Giao diện tìm kiếm thơng tin xe

Chương V: Kết quả chạy hệ thống

67 Tìm thơng tin xe theo mã phiếu

Hình 5.6: Giao diện tìm thơng tin xe theo mã phiếu.

Tìm thơng tin xe theo biển số

68 Báo cáo – thống kê dữ liệu thông tin xe trong một khoảng thời gian

Hình 5.8: Giao diện báo cáo – thống kê.

Nhập khoảng thời gian cần xem thống kê

Chương V: Kết quả chạy hệ thống

69 Xem báo cáo dữ liệu thơng tin xe cụ thể

Hình 5.10: Giao diện xem báo cáo dữ liệu thông tin xe cụ thể.

Dữ liệu trong database “ThongTinXe”

70 Xuất báo cáo ra file dạng PDF

Kết luận và hướng phát triển đề tài

71

KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ĐỀ TÀI

Kết luận

Hệ thống bãi giữ xe thông minh cùng với những ứng dụng hiệu quả đã mang lại nhiều lợi ích cho khách hàng, giúp tiết kiệm thời gian và chi phí nhân cơng, phần lớn các thao tác kiểm soát phương tiện vào/ra bãi gửi xe được tự động hóa, tốc độ lưu thơng luồng xe vào/ra được tăng lên một cách tối đa với mức độ an ninh xe gửi gần như tuyệt đối. Hệ thống bãi giữ xe thông minh cần được ứng dụng rộng khắp để tạo ra nét văn minh hiện đại ngang tầm với một xã hội Việt Nam đang đi lên cơng nghiệp hóa, hiện đại hóa.

Hệ thống được xây dựng trong đề tài này đã đáp ứng được các hầu hết cách tính năng quan trọng và cơ bản của một hệ thống bãi giữ xe thông minh với mức chi phí thấp để có thể triển khai rộng khắp. Quá trình nghiên cứu và thực hiện đã nắm bắt được cách thức làm việc của các hệ thống giữ xe thơng minh hiện có trên thị trường và có thể phát triển thành sản phẩm cá nhân trong tương lai.

Tuy nhiên, để áp dụng vào thực tế, hệ thống được xây dựng hiện tại còn tồn tại nhiều vấn đề, đặc biệt là độ chính xác của chương trình nhận dạng biển số xe, là phần lõi chính của hệ thống. Tỉ lệ thành cơng 68% cịn thấp so với 90% của các chương trình thương mại. Chương trình có thể khắc phục tạm thời bằng cách cập nhật lại bằng tay khi nhận diện sai. Do đó cần có nhiều thời gian, cơng sức và kinh phí nghiên cứu để làm tăng độ chính xác này.

So sánh về tính năng, độ chính xác và tốc độ xử lý với các chương trình thương mại thì chương trình trong đề tài khơng thể bằng được nhưng nếu kết hợp so sánh về chi phí thực hiện thì chương trình cũng đạt được một số thành cơng nhất định.

Hƣớng phát triển

Phát triển chương trình với nhiều tính năng nổi bật có thể ứng dụng thực tế:

- Rút ngắn thời gian thao tác trên máy bằng cách sử dụng thẻ từ dùng công nghệ RFID. Mặt khác thẻ xe khi sử dụng bền hơn thẻ thủ công thông thường: không bị ảnh hưởng bởi môi trường

72 bên ngồi, khơng bị nhàu nát hoặc mất số…và đặc biệt tăng tính an tồn khi kẻ gian lấy được thẻ nhưng khơng thể biết chính xác xe tương ứng với thẻ từ đó.

Quét thẻ

Chụp ảnh Nhận diện

biển số

Lưu dữ liệu lúc vào vào database Xe vào Xe ra X e v à o b ã i Quét thẻ Chụp ảnh Nhận diện biển số Lưu dữ liệu lúc ra Vào database So sánh với dữ liệu lúc vào

Hệ thống giữ xe thông minh dùng thẻ từ

- Ảnh trước khi lưu vào bộ nhớ được nén với độ nén cao hơn để dung lượng ảnh giảm giúp tiết kiệm bộ nhớ, giá thành cho hệ thống vừa phải và giúp giảm chi phí cho doanh nghiệp.

- Kết hợp nhiều giải thuật xử lý ảnh đồng thời để tăng độ chính xác và tốc độ nhận diện biển số, tránh xảy ra ùn tắc khi lượt xe vào quá đông. Việc nhận diện biển số sẽ khơng cịn phụ thuộc

Kết luận và hướng phát triển đề tài

73 vào điều kiện ngoại cảnh. Ví dụ như khi biển số xe bị chói ánh sáng, biển số xe kém chất lượng khơng rõ số hoặc biển số có các ký tự dính nhau do đinh ốc…

- Thiết lập mềm thành luồng vào hoặc luồng ra để tăng tính linh hoạt khi mỗi luồng hoạt động nhiều. Điều này phù hợp cho những nơi có luồng vào hoặc luồng ra nhiều tại một thời điểm cố định, chẳng hạn, đầu giờ sáng sẽ thiết lập luồng vào hơn trong khi cuối buổi chiều sẽ thiết lập luồng ra nhiều hơn.

- Tích hợp thêm tính năng tự động đóng/mở barrier khi xe ra vào bằng cách tự tra cứu thông tin xe lúc ra với lúc vào nhằm thực hiện một hệ thống tự động hồn tồn mà khơng cần nhân viên kiểm soát. Hệ thống này chỉ áp dụng được cho các cơng ty hoặc chung cư có khách hàng sử dụng vé tháng. Khi ra/vào bãi giữ xe, khách hàng chỉ cần quẹt thẻ vào máy, hệ thống nhận diện sẽ lưu lại thông tin vào bộ nhớ để quản lý. Hệ thống này địi hỏi phải tích hợp thêm tính năng “Hộp đen” ghi lại dưới dạng video mọi hình ảnh hoạt động của các luồng gửi vào/ra một cách độc lập, giúp dễ quản lý kiểm sốt hơn, đề phịng kẻ gian đột nhập.

74

TÀI LIỆU THAM KHẢO

[1] Bruno Linhares.(2011) Microsoft Visual Studio.[Online]. www.en.wikipedia.org/wiki/Microsoft_Visual_Studio

[2] Microsoft.(2010) Microsoft Visual Studio 2010. [Online].www.microsoft.com/visualstudio/ [3] Microsoft.(2008) Microsoft SQL Server 2008. [Online].

www.microsoft.com/vietnam/sqlserver2008 [4] B. L.Jones, C# in 21 Days. SAMS., 2003.

[5] (2011) EmguCV. [Online]. www.emgu.com/wiki/index.php/Main_Page [6] (2011) OpenCV. [Online]. www.opencv.willowgarage.com/wiki/ [7] Wikipedia.(2011)Nhận dạng ký tự quang học.[Online]

http://www.vi.wikipedia.org/wiki/Nhận_dạng_ký_tự_quang_học [8] G. B. a. A. Kaebler, Learning OpenCV, 1st ed. O‟REILLY, 2008.

[9] (2009) OCR và các phần mềm nhận dạng ký tự[Online]. http://www.congdongso.com [10] Microsoft. (2011) MSND Library. [Online]. http://msdn.microsoft.com/en-us/library/ [11] J. Sharp, Microsoft Visual C# 2008 Step by Step. USA: Microsoft Press, 2007.

[12] Abhik Mitra. (2011) Using Abhik.Mitra.myThoughts. [Online]. http://iamabhik.wordpress.com/category/opencv/

[13] Phạm Gia Tiến, Phạm Thế Phi, "Hệ quản trị cơ sở dữ liệu," Trường Đại học Cần Thơ, 2007. [14] U. Sinha. AI Shack. [Online]. http://www.aishack.in/topics/tutorials/vision/

[15] (2006) ANPR tutorial. [Online]. http://www.anpr-tutorial.com/ [16] (2011) Code Project. [Online]. http://www.codeproject.com/

[17] O. Martinsky, "Algorithmic and mathematical principles of automatic number plate recognition systems," BRNO University of technology ,B.SC Thesis, 2007.

[18] Mahvish. (2011) Emgu CV with C#. [Online]. http://fewtutorials.bravesites.com/tutorials [19] K. M. Sajjad, "Automatic License Plate Recognition using Python," M.E.S. College of

Engineering, ,, 2009.

[20] D.D.Phuoc, Ng.D.Hai Phuong and T.T.Anh Au, "Tự động nhận dạng biển số đăng ký xe trong ảnh chụp từ camera," Bach Khoa University of Technology, 2008.

[21] David Dawson, Leo Cetinski , "A License Plate Recognition and Speed Detection System," Master Thesis, Britain, 2008.

[22] Jason Price, "Mastering C# database programming," USA, 2003.

[23] Trần Nguyên Phong, Giáo trình SQL. Khoa Cơng nghệ thơng tin - Trường Đại học Khoa

Một phần của tài liệu Luận văn tốt nghiệp XÂY DỰNG HỆ THỐNG BÃI GIỮ XE THÔNG MINH (Trang 72)