Nhằm giải quyết những khó khăn trong việc điểm danh sinh viên – chấm công nhân viên hiện nay, nhóm nghiên cứu đã đề ra giải pháp là xây dựng một hệ thống phần mềm điểm danh sinh viên dựa
Trang 1Thuộc nhóm ngành khoa học: Công nghệ thông tin
Thành phố Hồ Chí Minh, tháng 4 năm 2014
Trang 2Thuộc nhóm ngành khoa học: Công nghệ thông tin
Sinh viên thực hiện: TRẦN THANH LONG Nam, Nữ: Nam
Dân tộc: Hoa
Lớp, khoa: lớp TH10A3, khoa Công Nghệ Thông Tin
Năm thứ: 4 /Số năm đào tạo: 4
Ngành học: Khoa học máy tính
Người hướng dẫn: TS LÊ XUÂN TRƯỜNG
Thành phố Hồ Chí Minh, tháng 4 năm 2014
Trang 3TÓM TẮT
Để phát triển nền kinh tế bền vững thì nhân tố con người luôn đóng vai trò quyết định Vì vậy, không chỉ Việt Nam mà tất cả các nước trên thế giới đều xem giáo dục là quốc sách hàng đầu của quốc gia Giáo dục quan trọng là vậy, tuy nhiên, bỏ học, trốn tiết
từ lâu đã trở thành một thực trạng khá phổ biến ở sinh viên, do việc đến giảng đường của sinh viên là không bắt buộc như các cấp trung học cơ sở và phổ thông Do đó, để khắc phục tình trạng trên, hầu hết các trường Đại học đã và đang áp dụng việc điểm danh sinh viên như một hình thức thúc đẩy việc đến giảng đường của sinh viên Tuy nhiên, hầu hết các trường lại áp dụng những hình thức điểm danh truyền thống với hiệu quả mang lại không cao, từ đó dẫn đến một số bất cập khác như điểm danh hộ, học hộ…
Bên cạnh đó, với sự phát triển về kinh tế và sự chuyên nghiệp hoá trong quản lý nhân sự thì hệ thống chấm công là một phần không thể thiếu được trong mỗi doanh nghiệp Hiện nay, hệ thống chấm công bằng thẻ được sử dụng rất phổ biến tại các doanh nghiệp, công ty để đảm bảo công nhân viên đi làm đầy đủ, năng cao hiệu quả công việc Tuy nhiên, đối với những doanh nghiệp đòi hỏi sự quản lý một cách chặt chẽ việc đến công ty làm việc của nhân viên thì hệ thống chấm công bằng thẻ cũng chưa đáp ứng được hoàn toàn Vấn đề quẹt thẻ hộ vẫn có thể xảy ra nếu cơ chế quản lý của doanh nghiệp và ý thức lao động của nhân viên không tốt Mặt khác, hầu hết các hệ thống chấm công bằng thẻ chỉ sử dụng cho một địa điểm cố định, cơ sở dữ liệu được lưu trữ cục bộ, không thích hợp để chấm công cho những nhân viên có đặc tính công việc phải làm việc tại nhiều địa điểm, chi nhánh khác nhau, điều này đòi hỏi một phương pháp quản lý chấm công tối ưu hơn để có thể quản lý những nhân viên này, đồng thời cũng có thể áp dụng cho tất cả nhân viên khác
Ngày nay, các công nghệ sinh trắc học đã và đang phát triển một cách rộng rãi, chúng được sử dụng ngày càng nhiều trong các ứng dụng thực tế và phát huy hiệu quả cao Công nghệ sinh trắc học dựa vào các đặc điểm sinh học riêng của mỗi cá nhân như vân tay, mống mắt, khuôn mặt,… để nhận diện một người nào đó Trong đó, vân tay là đặc trưng sinh trắc được sử dụng phổ biến nhất trong các hệ thống bảo mật bởi tính ổn định và dễ sử dụng Nhận dạng vân tay được xem là một trong những kỹ thuật nhận dạng hoàn thiện và đáng tin cậy nhất
Nhằm giải quyết những khó khăn trong việc điểm danh sinh viên – chấm công nhân viên hiện nay, nhóm nghiên cứu đã đề ra giải pháp là xây dựng một hệ thống phần mềm điểm danh sinh viên dựa trên phương pháp nhận diện vân tay Hệ thống được xây dựng dựa trên chức năng cụ thể là điểm danh sinh viên, đối với việc chấm công nhân viên, ta cũng có thể triển khai hệ thống tương tự Hệ thống này bao gồm gói phần mềm trên máy chủ (Server) có chức năng truy xuất cơ sở dữ liệu và thực hiện xử lý điểm danh sinh viên dựa trên các lớp đã được xây dựng sẵn để xử lý đối sánh ảnh vân tay; gói phần mềm trên máy con (Client) gồm ứng dụng trên điện thoại di động của sinh viên, giúp sinh viên chủ động điểm danh khi đến lớp, và một website quản trị thông tin của cơ sở dữ liệu
Ứng dụng trên điện thoại di động cũng được tích hợp các lớp hỗ trợ xử lý ảnh vân tay, khi thực hiện điểm danh, ứng dụng xác định vị trí hiện tại của sinh viên bằng hệ thống định vị toàn cầu và gọi server cung cấp thông tin các lớp học tại cơ sở tương ứng
Trang 4với vị trí đó Sau khi sinh viên chọn lớp học, server sẽ tiếp tục cung cấp danh sách những sinh viên có đăng kí học lớp học đó để sinh viên chọn mã sinh viên tương ứng của mình Sau khi đã xác định được sinh viên nào cần điểm danh tại lớp học nào, ứng dụng sẽ yêu cầu sinh viên cung cấp dấu vân tay để thực hiện điểm danh Khi dấu vân tay được cung cấp, ứng dụng sẽ tự động xử lý trích xuất các đặc trưng của vân tay và gửi danh sách đặc trưng cùng với mã sinh viên cũng như mã lớp học và ngày giờ thực hiện điểm danh về cho server Server sau khi nhận được những thông tin từ client sẽ thực hiện đối sánh vân tay dựa trên danh sách các đặc trưng nhận được với danh sách đặc trưng được lưu trữ trong cơ sở dữ liệu Nếu kết quả là trùng khớp, server sẽ ghi nhận thông tin điểm danh của sinh viên
Website quản trị thông tin dữ liệu cho phép người truy cập có thể tham khảo danh sách sinh viên, giảng viên, lớp học cũng như thông kê tình hình điểm danh của sinh viên, đồng thời cũng cung cấp chức năng thêm mới, chỉnh sửa hoặc xóa một sinh viên Tuy nhiên, website yêu cầu người truy cập phải được cấp những quyền nhất định mới có thể thực hiện những chức năng tương ứng với quyền được cấp
Ứng dụng trên điện thoại di động dành cho người dùng được viết trên hệ điều hành Windows Phone, một hệ điều hành với nhiều ưu điểm về hiệu năng xử lý Phần giao diện được thiết kế bằng Expression Blend dễ sử dụng, sinh động, thân thiện với người dùng
Nhóm tác giả nghiên cứu đề tài đã thành công trong việc ứng dụng các thuật toán
xử lý ảnh vân tay vào thực tế, đồng thời nhóm tác giả đã cải tiến thành công công thức tính trường định hướng làm tăng tốc độ thực thi của chương trình; phát triển kỹ thuật dò theo ảnh đã làm mảnh của vân tay để loại bỏ những đường vân thừa; phát triển kỹ thuật phát hiện biên của ảnh vân tay; cải tiến thuật toán đối sánh dựa trên việc xây dựng phương trình đường thẳng kết hợp cùng việc xác định góc được tạo thành bởi đường thẳng đi qua điểm đặc trưng Pointcare và Minutiae với trục hoành trong hệ tọa độ Oxy của ảnh
Trang 5MỤC LỤC
DANH MỤC HÌNH ẢNH 1
DANH MỤC BẢNG 4
DANH MỤC CHỮ VIẾT TẮT 5
THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI 6
THÔNG TIN VỀ SINH VIÊN 9
MỞ ĐẦU 11
1 TỔNGQUAN 11
2 LÝDOCHỌNĐỀTÀI: 13
3 MỤCTIÊUNGHIÊNCỨU 13
4 PHƯƠNGPHÁPNGHIÊNCỨU 14
5 PHẠMVINGHIÊNCỨU 14
6 ĐÓNGGÓPCỦAĐỀTÀI 15
a) Đóng góp về mặt kinh tế - xã hội 15
b) Đóng góp về mặt khoa học 15
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 17
1.1 GIỚITHIỆUVỀNỀNTẢNGLẬPTRÌNHWINDOWSPHONE 17
a Giới thiệu về hệ điều hành Windows Phone 17
b Những yếu tố cơ bản trên Windows Phone 17
1.2 XÂYDỰNGỨNGDỤNGTHEOMÔHÌNH3LỚP 18
1.2.1 Lớp giao tiếp 18
1.2.1 Lớp xử lý 19
1.2.2 Lớp dữ liệu 19
1.3 TỔNGQUANVỀXỬLÝẢNH 19
1.4 TỔNGQUANVỀVÂNTAY 20
1.4.1 Vân tay là gì? 20
1.4.2 Lịch sử nhận dạng vân tay 20
1.4.3 Các phương pháp phân loại vân tay 22
1.4.3.1 Các điểm đặc trưng trên ảnh vân tay 22
a Singularity 22
b Minutiae 23
1.4.3.2 Trích xuất các điểm đặc trưng 23
a Trích xuất các điểm Singularity 23
b Trích xuất các điểm Minutiae 25
1.5 MÔHÌNHCLIENT–SERVER 28
1.6 NGÔNNGỮTRUYVẤNDỮLIỆULINQ 31
Trang 6CHƯƠNG 2: XÂY DỰNG HỆ THỐNG PHẦN MỀM 32
2.1 THIẾTKẾ HOẠTĐỘNG 32
2.2 PHÂNTÍCHTHIẾTKẾCƠSỞDỮLIỆUQUẢNLÝTHÔNGTIN 33
2.2.1 Mô hình ý niệm truyền thông 33
2.2.1.1 Quy trình tra cứu thông tin 33
2.2.1.2 Quy trình cập nhật thông tin 34
2.2.1.3 Quy trình thêm mới sinh viên 35
2.2.1.4 Quy trình thêm mới giảng viên 35
2.2.1.5 Quy trình điểm danh sinh viên 36
2.2.2 Mô hình vật lý dữ liệu 37
2.3 XÂYDỰNGCHỨCNĂNGQUẢNTRỊTRÊNWEBSITE 41
2.3.1 Chức năng đăng nhập 41
2.3.2 Chức năng đăng ký 41
2.3.3 Chức năng tra cứu thông tin sinh viên 42
2.3.4 Chức năng cập nhật thông tin sinh viên 42
2.3.5 Chức năng thêm mới sinh viên 43
2.3.6 Chức năng tra cứu thông tin giảng viên 44
2.3.7 Chức năng cập nhật thông tin giảng viên 44
2.3.8 Chức năng thêm mới giảng viên 45
2.3.9 Chức năng tra cứu lịch giảng dạy của giảng viên 45
2.3.10 Chức năng tra cứu thời khóa biểu của sinh viên 45
2.3.11 Chức năng tra cứu thông tin điểm danh của sinh viên 46
2.3.12 Chức năng xem thông tin tài khoản 46
2.3.13 Chức năng cập nhật quyền truy cập tài khoản 46
2.4 XÂYDỰNGVÀPHÁTTRIỂNCÁCTHUẬTTOÁNXỬLÝ,ĐỐISÁNHẢNH VÂNTAY 47
2.4.1 XỬ LÝ ẢNH ĐẦU VÀO 47
2.4.1.1 Chuyển ảnh màu sang ảnh mức xám 47
2.4.1.2 Cân bằng lược đồ xám 48
2.4.1.3 Phân ngưỡng Threshold 50
2.4.1.4 Chuẩn hóa kích thước ảnh 51
2.4.1.5 Phát hiện biên 51
a Phát hiện biên trực tiếp 51
b Phát hiện biên gián tiếp 52
c Phát hiện biên của ảnh vân tay 53
2.4.1.6 Nhị phân hóa ảnh 54
2.4.1.7 Xác định Trường định hướng 54
2.4.1.8 Tăng cường chất lượng ảnh 57
2.4.1.9 Tìm xương ảnh 59
2.4.1.10 Trích xuất các đặc trưng trên ảnh vân tay 65
a Trích xuất các đặc trưng Minutiae 65
b Trích xuất các đặc trưng Pointcare 67
Trang 72.4.2.1 Đối sánh các đặc trưng Minutiae có độ tương đồng về hướng 69
2.4.2.2 Vị trí tương đối của các đặc trưng Minutiae 70
2.4.2.3 Tìm các cặp đặc trưng Pointcare có độ tương đồng về hướng và khoảng cách 71
2.4.2.4 Khoảng cách từ các Pointcare đến các Minutiae 71
2.4.2.5 Góc hợp bởi đường thẳng đi qua Pointcare và Minutiae với trục Ox 72
2.4.2.6 Rút trích các cặp Minutiae trùng nhau giữa 2 ảnh 74
2.4.2.7 Tổng hợp kết quả 74
2.4.3 XÂY DỰNG CÁC LỚP XỬ LÝ ẢNH 76
2.4.3.1 Lớp xử lý trung tâm – MyImage 76
2.4.3.2 Lớp hỗ trợ xử lý kỹ thuật phát hiện biên 77
2.4.3.3 Lớp hỗ trợ xử lý tăng cường chất lượng ảnh 78
2.4.3.4 Lớp hỗ trợ trích xuất đặc trưng Minutiae và Pointcare 79
2.4.3.5 Lớp đối sánh vân tay 80
2.4.3.6 Lớp phương trình đường thẳng hỗ trợ đối sánh vân tay 82
2.4.3.7 Lớp các giá trị hằng số 83
2.5 XÂYDỰNGSERVER-WCFSERVICE 85
2.5.1 Ưu điểm của WCF 86
2.5.2 WCF Service Contract - Interface 86
2.5.3 Lớp Service 87
2.5.4 Kết nối cơ sở dữ liệu bằng LinQ 88
2.6 XÂYDỰNGỨNGDỤNGCLIENTCHẠYTRÊNSMARTPHONE 91
2.6.1 Xây dựng giao diện màn hình chính 91
2.6.2 Xây dựng chức năng điểm danh sinh viên 92
2.6.3 Xây dựng chức năng định vị vị trí và hiển thị bản đồ 94
2.6.4 Xây dựng chức năng Kiểm nghiệm thuật toán 96
CHƯƠNG 3 : KẾT QUẢ THỰC HIỆN 99
3.1 WEBSITEDÀNHCHONGƯỜIQUẢNTRỊ 99
3.2 ỨNGDỤNGDIĐỘNGDÀNHCHOSINHVIÊN 106
3.3 KẾTQUẢTHỰCNGHIỆMCỦAHỆTHỐNG 127
CHƯƠNG 4: KẾT LUẬN 129
TÀI LIỆU THAM KHẢO 131
Trang 8DANH MỤC HÌNH ẢNH
Hình 1.1: Kiến trúc mô hình ba lớp 18
Hình 1.2: Giao dịch kinh doanh sử dụng dấu vân tay làm tín 20
Hình 1.3: Tiến sĩ Henry Faulds 21
Hình 1.4: Vân tay được sử dụng trên chứng minh thư 22
Hình 1.5: Core và Delta trên vân tay 22
Hình 1.6: Các loại Core vân tay 22
Hình 1.7: Cấu trúc của Minutiae 23
Hình 1.8: Ảnh vân tay và trường định hướng của nó 23
Hình 1.9: Cách tính chỉ số poincare tại điểm (i,j) với n = 8 25
Hình 1.10: Sơ đồ thuật toán trích các điểm Minutiae từ ảnh xám 25
Hình 1.11: Phân loại đặc trưng Minutiae 26
Hình 1.12: Thiết diện của đườngng vân (is , js) 26
Hình 1.13: Điểm cực đại (ic , jc) gần (is , js) nhất 27
Hình 1.14: Dịch chuyển theo đường vân từng đoạn μ 27
Hình 1.15: Mô hình Client – Server với một loại Client 28
Hình 1.16: Mô hình Client – Server với nhiều loại Client 28
Hình 1.17: Kiến trúc của WCF 30
Hình 1.18: Các kênh trao đổi bản tin trong WCF 30
Hình 1.19: Mô hình kiến trúc LINQ 31
Hình 2.1: Mô hình hoạt động hệ thống 33
Hình 2.2: Quy trình tra cứu thông tin 34
Hình 2.3: Quy trình cập nhật thông tin 34
Hình 2.4: Quy trình thêm mới sinh viên 35
Hình 2.5: Quy trình thêm mới giảng viên 35
Hình 2.6: Quy trình điểm danh sinh viên 36
Hình 2.7: Mô hình vật lý dữ liệu 37
Hình 2.8: Lưu đồ tổ chức website 41
Hình 2.9: Chức năng đăng nhập 41
Hình 2.10: Chức năng đăng kí 42
Hình 2.11: Điều kiện tra cứu thông tin sinh viên 42
Hình 2.12: Hiển thị thông tin sinh viên 42
Hình 2.13: Cập nhật thông tin sinh viên 43
Hình 2.14: Chức năng thêm sinh viên 44
Hình 2.15: Điều kiện tra cứu thông tin 44
Hình 2.16: Cập nhật thông tin giảng viên 45
Hình 2.17: Thêm mới giảng viên 45
Hình 2.18: Tra cứu lịch giảng dạy 45
Hình 2.19: Tra cứu thời khóa biểu sinh viên 46
Hình 2.20: Tra cứu thông tin điểm danh của sinh viên 46
Hình 2.21: Thông tin tài khoản đăng nhập 46
Hình 2.22: Cấp quyền truy cập cho tài khoản 47
Hình 2.23: Ảnh vân tay và ảnh mức xám 48
Trang 9Hình 2.24: Lược đồ xám của một ảnh 48
Hình 2.25: Lược đồ xám trước và sau khi cân bằng 49
Hình 2.26: Ảnh vân tay trước và sau khi cân bằng lược đồ xám 49
Hình 2.27: Ảnh vân tay trước và sau khi chuẩn hóa kích thước 51
Hình 2.28: Ảnh vân tay và biên của nó 53
Hình 2.29: Xác định hướng của điểm ảnh (x, y) 55
Hình 2.30: Xác định Trường định hướng của 2 điểm ảnh kế cận 56
Hình 2.31: Hình vân tay trước và sau tăng cường 59
Hình 2.32: Xác định điểm biên 60
Hình 2.33: Một số trường hợp điểm đang xét cần xóa trắng 60
Hình 2.34: Lưu đồ quá trình tìm xương ảnh 61
Hình 2.35: Ảnh vân tay trước và sau khi tìm xương 61
Hình 2.36: Hình ảnh thể hiện một phần cấu trúc xương của vân tay 62
Hình 2.37: Lưu đồ giải thuật xóa chi tiết thừa của xương 63
Hình 2.38: Ảnh xương của vân tay (chưa hiệu chỉnh) 63
Hình 2.39: Ảnh xương của vân tay sau khi đã xóa các chi tiết thừa 63
Hình 2.40: Ảnh xương vân tay trước và sau khi xóa xương thừa bằng kỹ thuật dò theo đường vân 65
Hình 2.41: Phân loại đặc trưng Minutiae của vân tay 66
Hình 2.42: Loại bỏ Minutiae nằm ngoài biên 66
Hình 2.43: Loại bỏ Minutie nhầm lẫn là điểm kết thúc 67
Hình 2.44: Loại bỏ Minutie nhầm lẫn là điểm rẽ nhánh 67
Hình 2.45: Cách tính chỉ số poincare tại điểm (i , j) với n = 8 68
Hình 2.46: Hướng của các đặc trưng Minutiae 69
Hình 2.47a: Vị trí tương đối của đặc trưng Minutiae 70
Hình 2.47b: Vị trí tương đối của đặc trưng Pointcare 71
Hình 2.48: Khoảng cách từ Pointcare đến các Minutiae 72
Hình 2.49: Góc giữa đường thẳng đi qua Pointcare và Minutiae với trục Ox 73
Hình 2.50: Lưu đồ giải thuật đối sánh vân tay 75
Hình 2.51: Lớp xử lý ảnh trung tâm 76
Hình 2.52: Lớp hỗ trợ xử lý kỹ thuật phát hiện biên 77
Hình 2.53: Lớp hỗ trợ xử lý tăng cường chất lượng ảnh 78
Hình 2.54: Lớp hỗ trợ trích xuất đặc trưng Minutiae và PointCare 79
Hình 2.55: Lớp đối sánh vân tay 80
Hình 2.56: Lớp phương trình đường thẳng hỗ trợ đối sánh vân tay 82
Hình 2.57: Lớp các giá trị hằng số 83
Hình 2.58: Sơ đồ giao tiếp giữa Client và Server 85
Hình 2.59: WCF Service Contract 87
Hình 2.60: Lớp Service 88
Hình 2.61: Cơ sở dữ liệu trên Server được kết nối thông qua LinQ 89
Hình 2.62: Các lớp xử lý được hình thành từ LinQ 90
Hình 2.63: Lưu đồ tổ chức ứng dụng client trên smartphone 91
Hình 2.64: Giao diện chính của chương trình Client 92
Hình 2.65: ListBox chứa danh sách lớp học 93
Trang 10Hình 2.66: ListBox chứa danh sách sinh viên 93
Hình 2.67: Lưu đồ quá trình điểm danh sinh viên 94
Hình 2.68: Bản đồ Google map 96
Hình 2.69: Hiển thị địa chỉ ở vị trí hiện tại 96
Hình 2.70: Quá trình xử lý ảnh vân tay 97
Hình 2.71: Lưu đồ kiểm nghiệm kết quả đối sánh 2 vân tay 98
Hình 3.1: Trang đăng nhập 99
Hình 3.2: Trang đăng kí 99
Hình 3.3: Trang thông tin sinh viên 100
Hình 3.4: Trang cập nhật thông tin sinh viên 100
Hình 3.5: Trang thêm mới sinh viên 101
Hình 3.6: Trang thông tin giảng viên 101
Hình 3.7: Trang cập nhật thông tin giảng viên 102
Hình 3.8: Trang thêm mới giảng viên 102
Hình 3.9: Trang tra cứu lịch giảng dạy 103
Hình 3.10: Trang tra cứu thời khóa biểu của giảng viên 103
Hình 3.11: Trang tra cứu thông tin điểm danh của sinh viên 104
Hình 3.12: Trang tạo mới tài khoản người dùng 104
Hình 3.13: Trang thông tin các tài khoản 105
Hình 3.14: Trang thay đổi quyền truy cập của tài khoản 105
Hình 3.15: Xuất các danh sách ra file Excel 106
Hình 3.16: Giao diện chính của chương trình 107
Hình 3.17: Vị trí sinh viên không ở cơ sở học, không hiển thị danh sách lớp 108
Hình 3.18: Vị trí sinh viên đang ở cơ sở học, hiển thị danh sách các lớp học 119
Hình 3.19: Danh sách sinh viên thuộc lớp học đã chọn 110
Hình 3.20: Bản đồ hiển thị vị trí hiện tại của sinh viên 111
Hình 3.21: Giao diện điểm danh 112
Hình 3.22: Chọn ảnh từ album 113
Hình 3.23: Chọn vân tay thành công 114
Hình 3.24: Thông báo điểm danh thất bại 115
Hình 3.25: Đối sánh vân tay trùng khớp Điểm danh sinh viên thành công 116
Hình 3.26: Giao diện trang kiểm nghiệm thuật toán 117
Hình 3.27: Kiểm nghiệm các thuật toán xử lý ảnh 118
Hình 3.28: Chuẩn hóa mức xám 119
Hình 3.29: Tăng cường ảnh bằng bộ lọc Gabor 120
Hình 3.30: Nhị phân hóa ảnh 121
Hình 3.31: Tìm xương ảnh 122
Hình 3.32: Xác định đặc trưng Pointcare và Minutiae 123
Hinh 3.33: Kiểm nghiệm thuật toán đối sánh vân tay 124
Hình 3.34: Kết quả đối sánh vân tay 124
Hình 3.35: Các điểm đặc trưng vân tay 125
Hình 3.36: Các điểm đặc trưng trùng nhau của 2 ảnh vân tay 125
Hình 3.37: Thông tin đề tài và tác giả 126
Trang 11DANH MỤC BẢNG
Bảng 2.1: Bảng Khoa 37
Bảng 2.2: Bảng Lớp 37
Bảng 2.3: Bảng Sinh Viên 38
Bảng 2.4: Bảng Giảng Viên 38
Bảng 2.5: Bảng Phòng Học 39
Bảng 2.6: Bảng Môn Học 39
Bảng 2.7: Bảng Thời Khóa Biểu Sinh Viên 39
Bảng 2.8: Bảng Lịch Giảng Dạy của Giảng Viên 40
Bảng 2.9: Bảng Điểm Danh Sinh Viên 40
Bảng 2.10: Ý nghĩa các thuộc tính của lớp xử lý trung tâm 76
Bảng 2.11: Ý nghĩa các phương thức (public) của lớp xử lý trung tâm 77
Bảng 2.12: Ý nghĩa các thuộc tính lớp hỗ trợ xử lý kỹ thuật phát hiện biên 78
Bảng 2.13: Ý nghĩa các phương thức của lớp hỗ trợ xử lý kỹ thuật phát hiện biên 78
Bảng 2.14: Ý nghĩa các thuộc tính lớp hỗ trợ xử lý tăng cường chất lượng ảnh 78
Bảng 2.15: Ý nghĩa các phương thức lớp hỗ trợ xử lý tăng cường chất lượng ảnh 79
Bảng 2.16: Ý nghĩa các thuộc tính của lớp hỗ trợ trích xuất đặc trưng Minutiae và PointCare 79
Bảng 2.17: Ý nghĩa các phương thức của lớp hỗ trợ trích xuất đặc trưng Minutiae và PointCare 80 Bảng 2.18: Ý nghĩa các thuộc tính của lớp đối sánh vân tay 81
Bảng 2.19: Ý nghĩa các phương thức (public) của lớp đối sánh vân tay 81
Bảng 2.20: Ý nghĩa các thuộc tính của lớp phương trình đường thẳng 82
Bảng 2.21: Ý nghĩa các phương thức của lớp phương trình đường thẳng 83
Bảng 2.22: Ý nghĩa các thuộc tính của lớp các giá trị hằng số 84
Bảng 2.23: Ý nghĩa các thuộc tính của WCF Service Contract 87
Bảng 2.24: Ý nghĩa các thuộc tính của lớp Service 88
Bảng 3.1: Kết quả chạy thực tế 127
Trang 12DANH MỤC CHỮ VIẾT TẮT
A-GPS Assisted - Global Positioning
System
Hệ thống trợ giúp định vị toàn cầu
CLR Common Language Runtime Thành phần kết nối giữa các phần khác
trong.NET Framework GPRS General Packet Radio Service Dịch vụ vô tuyến gói tổng hợp
GPS Global Positioning System Hệ thống định vị toàn cầu
IIS Internet Information service Dịch vụ dành cho máy chủ chạy trên
nền hệ điều hành Window LINQ Language Intergrated Query Ngôn ngữ tích hợp truy vấn
PDA Persional Digital Assistant Máy kỹ thuật số hỗ trợ cá nhân
SOAP Simple Object Access
XML Extensible Markup Language Ngôn ngữ đánh dấu mở rộng
Microsoft XSD XML Schema Definition Tài liệu XML được viết dưới dạng
thức thuần văn bản
Link: http://www.ddth.com/showthread.php/320733-xml-Schema-là-gì-để-làm-gì#ixzz2xnrvuyHN
lập trình có thể được cài thêm hoặc đã
có sẵn trong các hệ điều hành Windows
Trang 13BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC MỞ TP.HCM
THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI
1 Thông tin chung:
- Tên đề tài:
HỆ THỐNG ĐIỂM DANH SINH VIÊN / NHÂN VIÊN BẰNG PHƯƠNG PHÁP NHẬN DIỆN DẤU VÂN TAY TRÊN THIẾT BỊ DI
ĐỘNG KẾT HỢP GPS 1) Sinh viên thực hiện: TRẦN THANH LONG
Lớp: TH10A3 Khoa: Công Nghệ Thông Tin Năm thứ: 4 Số năm đào tạo: 4
2) Sinh viên thực hiện: ĐOÀN NGUYỄN ĐĂNG KHOA
Lớp: TH10A3 Khoa: Công Nghệ Thông Tin Năm thứ: 4 Số năm đào tạo: 4
- Người hướng dẫn: TS LÊ XUÂN TRƯỜNG
2 Mục tiêu đề tài:
Xây dựng hệ thống phần mềm điểm danh sinh viên dạng client – server giúp nhà trường quản lý hiệu quả việc điểm danh sinh viên Hệ thống có thể áp dụng vào việc chấm công nhân viên, người lao động tại các doanh nghiệp, công ty
Ứng dụng công nghệ nhận diện vân tay vào việc xử lý ảnh và đối sánh vân tay sinh viên, nhân viên
Xây dựng ứng dụng client trên smartphone để điểm danh sinh viên, nhân viên dựa trên công nghệ nhận diện vân tay, giúp cho việc điểm danh được chủ động thực hiện khi snh viên vào lớp học, cũng như khi nhân viên vào cơ quan, công ty
Ứng dụng trên smartphone thực hiện điểm danh sinh viên, nhân viên dựa trên việc đối sánh giữa vị trí mà sinh viên, nhân viên đang đứng với địa chỉ của phòng học, công ty; giữa vân tay lấy được từ điện thoại với vân tay mẫu của đã được lưu trữ trong cơ sở dữ liệu
Sử dụng công nghệ GPS để xác định vị trí của sinh viên, nhân viên đang đứng với độ chính xác cao
Xây dựng hệ thống server có nhiệm vụ nhận những thông tin sinh viên, nhân viên được gửi từ client bao gồm danh sách các đặc trưng vân tay đã được xử lý Sau đó, thực hiện đối sánh với vân tay của sinh viên, nhân viên mà đã được lưu trữ trong cơ
sở dữ liệu, rồi thông báo kết quả và ghi nhận thao tác điểm danh
Trang 14 Xây dựng trang web quản lý cơ sở dữ liệu lưu trữ thông tin sinh viên, giảng viên, lịch giảng dạy của giảng viên, thời khóa biểu và thông tin điểm danh của sinh viên
Ứng dụng các thuật toán xử lý ảnh vân tay để lưu trữ các đặc trưng vân tay
Ứng dụng thuật toán đối sánh vân tay dựa trên các điểm đặc trưng vân tay để điểm danh sinh viên, nhân viên
Áp dụng và cải tiến công thức tính Trường định hướng cho ảnh làm giảm bớt thời gian tính toán cho máy tính
Nghiên cứu các phương pháp phát hiện biên để phát triển kỹ thuật phát hiện biên dành riêng cho ảnh vân tay
Cải tiến phương pháp đối sánh vân tay dựa trên việc tổng hợp những ưu điểm của các phương pháp trước đó
3 Tính mới và sáng tạo:
Xây dựng hệ thống dạng client-server để điểm danh sinh viên, nhân viên bằng phương pháp nhận diện dấu vân tay
Xây dựng ứng dụng điểm danh sinh viên, nhân viên tích hợp các thuật toán xử lý ảnh
và đối sánh vân tay chạy trên điện thoại di động
Website quản lý thông tin tích hợp các thuật toán xử lý ảnh để lưu trữ các đặc trưng vân tay của sinh viên, nhân viên vào cơ sở dữ liệu
Tối ưu hóa thuật toán tính Trường định hướng cho ảnh vân tay, giúp làm giảm bớt các thao tác dư thừa cho máy tính và làm tăng tốc độ thực thi
Phát triển kỹ thuật dò theo đường vân trên ảnh vân tay đã làm mảnh để loại bỏ các đường vân dư thừa dựa trên ý tưởng của thuật toán dò theo đường vân trên ảnh xám
Phát triển kỹ thuật đối sánh vân tay dựa trên việc xây dựng phương trình đường thẳng kết hợp cùng việc xác định góc được tạo thành bởi đường thẳng đi qua điểm đặc trưng Pointcare và Minutiae với trục hoành trong hệ tọa độ Oxy của ảnh
4 Kết quả nghiên cứu:
Xây dựng thành công hệ thống client-server cung cấp cho sinh viên, nhân viên chức năng điểm danh bằng phương pháp nhận diện dấu vân tay
Xây dựng thành công Server thực hiện truy xuất dữ liệu và đối sánh vân tay để gửi kết quả cho ứng dụng phía client
Xây dựng thành công Website quản trị thông tin dựa trên nền tảng ASP.NET cung cấp những chức năng tra cứu và cập nhật thông tin sinh viên, giảng viên, tra cứu lịch giảng dạy của giảng viên, thời khóa biểu và thông tin điểm danh của sinh viên
Ứng dụng thành công các thuật toán xử lý ảnh và đối sánh vân tay trên nền tảng ASP.NET và Windows Phone
Cải tiến thành công thuật toán tính Trường định hướng của ảnh
Trang 15 Phát triển thành công kỹ thuật dò theo đường vân trên ảnh đã làm mảnh
Phát triển thành công kỹ thuật đối sánh vân tay dựa trên việc xây dựng phương trình đường thẳng kết hợp với việc xác định góc giữa các đường thẳng trong hệ trục Oxy
Nhóm nghiên cứu đã thực nghiệm trên 3000 trường hợp đối sánh giữa các cặp ảnh vân tay khác nhau để kiểm nghiệm tính đúng đắn của thuật toán, qua đó xác định ngưỡng Hamming distance – ngưỡng mức độ giống nhau giữa hai vân tay
5 Đóng góp về mặt kinh tế - xã hội, giáo dục và đào tạo, an ninh, quốc phòng
và khả năng áp dụng của đề tài:
Góp phần làm giảm tình trạng bỏ học, trốn tiết thường xuyên của sinh viên
Hạn chế tình trạng học hộ, điểm danh hộ của sinh viên ở giảng đường đại học, cũng như hạn chế tình trạng điểm danh hộ của nhân viên ở cơ quan, công ty
Giảm bớt thời gian, công sức của giảng viên và sinh viên so với phương pháp điểm danh truyền thống
Giúp nhà trường quản lý tình hình đi học của sinh viên dễ dàng hơn, cũng như giúp
cơ quan, doanh nghiệp quản lý tình hình đi làm của nhân viên hiệu quả hơn
Góp phần nâng cao chất lượng dạy và học ở nhà trường cũng như nâng cao chất lượng sinh viên đầu ra Góp phần nâng cao ý thức, trách nhiệm của nhân viên để có thể hoàn thành tốt công việc được giao, đem lại lợi nhuận cho công ty, từ đó phát triển nền kinh tế đất nước
Ngày tháng năm
Sinh viên chịu trách nhiệm chính
thực hiện đề tài
(ký, họ và tên)
Nhận xét của người hướng dẫn về những đóng góp khoa học của sinh viên
thực hiện đề tài (phần này do người hướng dẫn ghi):
Trang 16BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC MỞ TP.HCM
THÔNG TIN VỀ SINH VIÊN CHỊU TRÁCH NHIỆM CHÍNH THỰC HIỆN ĐỀ TÀI
I SƠ LƯỢC VỀ SINH VIÊN:
Họ và tên: TRẦN THANH LONG
Sinh ngày: 21 tháng 8 năm 1992
Nơi sinh: Thành phố Hồ Chí Minh
Lớp: TH10A3 Khóa: 2010-2014
Khoa: Công nghệ thông tin
Địa chỉ liên hệ: 141 Nguyễn Duy Trinh, phường Bình Trưng Tây, Quận 2
Điện thoại: 01264027425 Email: longtran.218@gmail.com
II QUÁ TRÌNH HỌC TẬP (kê khai thành tích của sinh viên từ năm thứ 1 đến năm đang học):
Trang 18MỞ ĐẦU
1 TỔNG QUAN
Để phát triển nền kinh tế bền vững thì nhân tố con người luôn đóng vai trò quyết định Vì vậy, không chỉ Việt Nam mà tất cả các nước trên thế giới đều xem giáo dục là quốc sách hàng đầu Cùng với xu hướng trên, Việt Nam luôn tạo mọi điều kiện để nâng cao dân trí, đào tạo nhân lực, bồi dưỡng nhân tài cho đất nước và nâng cao trình độ chuyên môn kỹ thuật cho người lao động, nhằm đáp ứng tốt hơn cho nhu cầu công nghiệp hóa – hiện đại hóa đất nước
Giáo dục quan trọng là vậy, tuy nhiên, bỏ học, trốn tiết từ lâu đã trở thành một thực trạng khá phổ biến ở sinh viên, do việc đến giảng đường của sinh viên là không bắt buộc như các cấp trung học cơ sở và phổ thông Một bộ phận sinh viên chưa xem trọng việc đến giảng đường để tiếp thu kiến thức bởi điều này tùy thuộc vào ý thức của mỗi người Thực tế cho thấy, việc không đến giảng đường gây ra rất nhiều lỗ hổng trong kiến thức của sinh viên, ảnh hưởng không nhỏ đến quá trình học tập và kết quả đạt được, quan trọng hơn là kiến thức nền tảng cần có cho công việc sau này
Nhận thức được tính nghiêm trọng của vấn đề trên, một số trường áp dụng hình thức điểm danh gọi tên sinh viên tại lớp học để phần nào nâng cao ý thức của sinh viên trong việc có mặt tại giảng đường Mặc dù vậy, hình thức điểm danh này không mang lại hiệu quả cao do nhiều nguyên nhân: giảng viên chưa thực hiện triệt để, nhất là ở hệ tại chức do giảng viên thường châm chước cho các cán bộ công chức đã đi làm; sinh viên điểm danh hộ cho nhiều người khác do số lượng sinh viên ở giảng đường thường khá đông, giảng viên khó có thể kiểm soát hết… Đa phần những sinh viên bỏ học, trốn tiết đều đưa ra lý luận vẫn đủ kiến thức vì vẫn qua được kỳ thi Tuy nhiên, với cách đánh giá bằng một bài thi, nghiên cứu và thực tiễn cho thấy những sinh viên ấy đều có khuynh hướng lạc mục tiêu – nghĩa là thay vì mục tiêu chính là tích lũy kiến thức liên tục thì lại chuyển qua mục tiêu vượt qua các kỳ thi Những bất cập trên đã được đề cập nhiều trên báo chí, nhưng đến hiện tại tình hình bỏ học, trốn tiết của sinh viên vẫn chưa suy giảm
Ở một khía cạnh khác trong lĩnh vực sản xuất-lao động, trước đây hầu hết các doanh nghiệp, công ty chủ yếu chấm công theo hình thức thủ công, toàn bộ giờ công của nhân viên đều được theo dõi và ghi chép bằng sổ sách với một đội ngũ nhân viên chấm công Chính vì vậy sẽ rất khó khăn nếu một công ty có một số lượng lớn nhân viên, khả năng lưu trữ bị hạn chế, khả năng truy vấn thông tin liên quan đến vấn đề chấm công là không hiệu quả, tốn nhiều công sức, tiền bạc và nhiều điều bất cập khác Để khắc phục những hạn chế đó, hiện nay, hệ thống chấm công bằng thẻ được sử dụng rất phổ biến tại các doanh nghiệp, công ty để đảm bảo công nhân viên đi làm đầy đủ, năng cao hiệu quả công việc Nhưng đối với một doanh nghiệp đòi hỏi sự quản lý chặt chẽ thì hệ thống chấm công bằng thẻ cũng chưa đáp ứng được hoàn toàn Vấn đề quẹt thẻ hộ vẫn có thể xảy ra nếu cơ chế quản lý của doanh nghiệp không chặt chẽ và ý thức lao động của nhân viên không tốt Mặt khác, hầu hết các hệ thống chấm công bằng thẻ chỉ sử dụng cho một địa điểm cố định, cơ sở dữ liệu được lưu cục bộ, không thích hợp chấm công cho những nhân viên có đặc tính công việc phải làm việc tại nhiều địa điểm, chi nhánh khác nhau, điều
Trang 19này đòi hỏi một phương pháp quản lý chấm công tối ưu hơn để có thể quản lý những nhân viên này, đồng thời cũng có thể áp dụng cho tất cả nhân viên khác
Ngày nay, các công nghệ sinh trắc học đã và đang phát triển một cách rộng rãi Một số công nghệ sinh trắc học đang được sử dụng trong các ứng dụng thực tế và phát huy hiệu quả cao Công nghệ sinh trắc học dựa vào các đặc điểm sinh học riêng của mỗi
cá nhân như vân tay, mống mắt, khuôn mặt,… để nhận diện một người nào đó Các đặc trưng sinh trắc thường đáp ứng được nhu cầu bảo mật do tính độc nhất - mỗi người chỉ
có duy nhất một đặc điểm riêng, và tính bất biến – các đặc trưng sinh trắc không thay đổi theo thời gian
Vân tay là đặc trưng sinh trắc được sử dụng phổ biến nhất trong các hệ thống bảo mật bởi tính ổn định và sử dụng dễ dàng Nhận dạng vân tay được xem là một trong những kỹ thuật nhận dạng hoàn thiện và đáng tin cậy nhất
Dấu vân tay từ lâu đã được các nước trên thế giới xem là một phương tiện hữu hiệu
để quản lý công dân thông qua chứng minh thư để xác định một cách nhanh chóng các đặc điểm của cá nhân, hồ sơ của một công dân được lưu trong cơ sở dữ liệu Hiện nay, người ta đã lợi dụng các đặc điểm riêng biệt của vân tây để xây dựng các hệ thống bảo mật các thông tin riêng tư cho người sử dụng Phương pháp nhận dạng vân tay đang được
áp dụng trong lĩnh vực quản lý nhân sự, hỗ trợ đắc lực cho việc quản lý và chấm công tại các nhà máy, xí nghiệp, công ty bằng máy các máy chấm công vân tay Tuy nhiên, hầu hết các hệ thống chấm công vân tay ở doanh nghiệp, công ty vẫn gặp phải những hạn chế giống như hình thức chấm công bằng thẻ, do cơ sở dữ liệu được lưu trữ cục bộ, không thích hợp cho việc chấm công ở một công ty mà nhân viên phải thực hiện công việc ở nhiều nơi khác nhau
Theo tìm hiểu của nhóm nghiên cứu, hiện nay đã có ba trường đại học triển khai hệ thống nhận diện vân tay để điểm danh sinh viên gồm: Học viện Chính trị - Hành chính khu vực 3 (Đà Nẵng), Trường Đại học Tài chính - Ngân hàng Hà Nội và Trường ĐH Võ Trường Toản (Hậu Giang) Khi bước đến giảng đường, sinh viên chỉ việc quét dấu vân tay vào các thiết bị được bố trí sẵn, máy sẽ ghi nhận lại thông tin ngày giờ của sinh viên đến lớp Dù vậy, sinh viên ba trường đại học trên đều đi học tập trung tại một hoặc hai cơ
sở, nên việc thiết lập hệ thống máy quét dấu vân tay tương đối không quá khó Tuy nhiên,
do hầu hết các trường đại học hiện nay đều đã chuyển sang hình thức đào tạo tín chỉ, sinh viên có thể đi học tại nhiều cơ sở khác nhau, nếu một trường đại học có nhiều cơ sở học khác nhau, việc thiết lập hệ thống điểm danh sinh viên bằng máy quét vân tay như trên gặp nhiều khó khăn do dữ liệu vân tay sinh viên được lưu trữ cục bộ, đòi hỏi phải có một
hệ thống dạng client-server để đảm bảo dữ liệu có thể được truy xuất từ nhiều địa điểm khác nhau
Smartphone là một thiết bị công nghệ được sử dụng rất phổ biến trong vài năm qua Với sự tăng trưởng nhanh chóng, nó đang dần thay thế cho những chiếc điện thoại với tính năng thông thường (feature phone) bởi những tiện ích mà nó mang lại Cho đến gần đây, xu hướng tích hợp công nghệ nhận dạng và bảo mật vân tay vào smartphone bắt đầu được chú ý đến từ khi hãng Apple ra mắt Iphone 5S Dù vậy, công nghệ nhận dạng vân tay hiện vẫn còn hạn chế về mặt ứng dụng thực tế: bảo mật trên điện thoại, thanh toán
Trang 20di động… Nhưng không thể phủ nhận rằng đây chính là xu hướng phát triển tiếp theo của smartphone, mà việc các hãng điện thoại như: Samsung, HTC, Sky… dần tích hợp công nghệ này vào điện thoại chính là minh chứng rõ rệt nhất
2 LÝ DO CHỌN ĐỀ TÀI
Tình trạng trên đặt ra một vấn đề mang tính cấp thiết là cần phải có một hệ thống phần mềm quản lý việc điểm danh sinh viên hoặc chấm công nhân viên có hiệu quả tốt hơn Công nghệ nhận diện vân tay được nhóm nghiên cứu lựa chọn để thực hiện điều này Bên cạnh đó, smartphone ngày càng phổ biến với người dùng là cơ sở để nhóm quyết định xây dựng ứng dụng trên smartphone Công nghệ định vị toàn cầu GPS cũng được sử dụng để xác định vị trí hiện tại của người dùng, nhằm đảm bảo người dùng phải có mặt tại nơi cần điểm danh
Dựa trên mục tiêu cụ thể là quản lý điểm danh sinh viên, hệ thống điểm danh sinh viên bằng phương pháp nhận diện vân tay với ứng dụng điểm danh được thực hiện ngay trên smartphone được ra đời với mong muốn ứng dụng công nghệ nhận diện vân tay vào thực tiễn của cuộc sống, góp phần làm tăng ý thức đi học của sinh viên, giảm bớt tình trạng trốn học, bỏ tiết; tăng hiệu quả, tiết kiệm thời gian trong việc quản lý điểm danh sinh viên; nâng cao chất lượng nguồn nhân lực của xã hội, từ đó góp phần phát triển đất nước
3 MỤC TIÊU NGHIÊN CỨU
Xây dựng hệ thống phần mềm điểm danh sinh viên dạng client – server giúp nhà trường quản lý hiệu quả việc điểm danh sinh viên Hệ thống có thể áp dụng vào việc chấm công nhân viên, người lao động tại các doanh nghiệp, công ty
Ứng dụng công nghệ nhận diện vân tay vào việc xử lý ảnh và đối sánh vân tay sinh viên
Xây dựng ứng dụng client trên smartphone điểm danh sinh viên dựa trên công nghệ nhận diện vân tay, giúp sinh viên chủ động điểm danh khi vào lớp học
Ứng dụng trên smartphone thực hiện điểm danh sinh viên dựa trên việc đối sánh giữa
vị trí của sinh viên đang đứng với địa chỉ của phòng học, giữa vân tay lấy được từ điện thoại với vân tay mẫu của sinh viên được lưu trữ trong cơ sở dữ liệu, giữa môn học sinh viên chọn với thời khóa biểu của sinh viên
Sử dụng công nghệ định vị toàn cầu GPS để xác định vị trí của sinh viên đang đứng với độ chính xác cao
Xây dựng hệ thống server có nhiệm vụ nhận những thông tin sinh viên được gửi từ client bao gồm danh sách các đặc trưng vân tay đã được xử lý Sau đó, thực hiện đối sánh với vân tay của sinh viên được lưu trữ trong cơ sở dữ liệu, thông báo kết quả và ghi nhận việc điểm danh của sinh viên
Xây dựng trang web quản lý cơ sở dữ liệu lưu trữ thông tin sinh viên, giảng viên, lịch giảng dạy của giảng viên, thời khóa biểu và thông tin điểm danh của sinh viên
Trang 21 Ứng dụng các thuật toán xử lý ảnh vân tay để lưu trữ các đặc trưng vân tay sinh viên
Ứng dụng thuật toán đối sánh vân tay dựa trên các điểm đặc trưng vân tay để điểm danh sinh viên
Áp dụng và cải tiến công thức tính Trường định hướng của ảnh làm giảm bớt thời gian tính toán cho máy tính
Nghiên cứu các phương pháp phát hiện hiện biên để phát triển một kỹ thuật phát hiện biên dành riêng cho ảnh vân tay
Cải tiến phương pháp đối sánh vân tay dựa trên việc tổng hợp những ưu điểm của các phương pháp trước đó
4 PHƯƠNG PHÁP NGHIÊN CỨU
Tìm hiểu và nghiên cứu cách thực xây dựng ứng dụng trên hệ điều hành Windows Phone
Tìm hiểu phương pháp lập trình sử dụng công nghệ GPS để xác định vị trí trên phạm
Tìm hiểu công nghệ sinh trắc học trong nhận dạng dấu vân tay, tìm hiểu cấu trúc và đặc điểm của dấu vân tay, nhằm phục vụ cho việc xử lý ảnh và rút trích đặc trưng trên ảnh vân tay
Tìm hiểu và nghiên cứu các thuật toán xử lý ảnh trên vân tay như: chuẩn hóa mức xám, tăng cường ảnh, nhị phân hóa, tìm xương ảnh, trích xuất các đặc trưng Minutiae
và Singularity của vân tay
Nghiên cứu phương pháp đối sánh vân tay dựa trên các đặc trưng của vân tay
Phát triển thuật toán xử lý ảnh vân tay dựa trên quá trình tìm xương ảnh, làm mượt đường vân, tăng độ chính xác của quá trình đối sánh
Phân tích thiết kế cơ sở dữ liệu và lưu trữ trong hệ quản trị cơ sở dữ liệu SQL Server
Tìm hiểu lập trình Web trên nền tảng ASP.NET Framework 4.5
5 PHẠM VI NGHIÊN CỨU
Hệ thống phần mềm gồm ba mô-đun chính: server thực hiện xử lý đối sánh vân tay, client trên ứng dụng điện thoại di động và web quản lý thông tin điểm danh của sinh viên
Hệ thống phần mềm có phạm vi sử dụng ở các trường đại học, cao đẳng
Trang 22 Server có nhiệm vụ truy xuất dữ liệu và gửi thông tin môn học về cho client khi có yêu cầu Ứng dụng client thực hiện xử lý ảnh vân tay thu nhận được từ smartphone, xác định vị trí hiện tại của sinh viên và gửi thông tin về cho server Server xử lý việc điểm danh sinh viên có hợp lệ không, nếu có, server ghi nhận thông tin điểm danh của sinh viên vào cơ sở dữ liệu và trả về kết quả cho client
Trang web cung cấp các chức năng tra cứu thông tin của sinh viên, giảng viên, lịch giảng dạy của giảng viên, thời khóa biểu và thông tin điểm danh của sinh viên danh cho người có thẩm quyền truy cập Bên cạnh đó, trang web cũng cung cấp các chức năng thêm, xóa, sửa các đối tượng
Tìm hiểu và nghiên cứu cách thức sử dụng công nghệ GPS trên hệ điều hành Windows Phone
Tìm hiểu các thuật toán xử lý ảnh trên vân tay và các phương pháp đối sánh vân tay
Góp phần làm giảm thực trạng bỏ học, trốn tiết của sinh viên
Hạn chế tình trạng học hộ, điểm danh hộ ở giảng đường, cũng như hạn chế tình trạng điểm danh hộ của nhân viên ở cơ quan, doanh nghiệp
Giảm thời gian, công sức của giảng viên và sinh viên so với phương pháp điểm danh truyền thống
Giúp cho nhà trường dễ dàng quản lý tình hình đi học của sinh viên, cũng như giúp
cơ quan, doanh nghiệp quản lý tình hình đi làm của nhân viên một cách hiệu quả hơn
Góp phần làm nâng cao chất lượng dạy và học ở nhà trường cùng chất lượng sinh viên đầu ra Góp phần nâng cao nhận thức, trách nhiệm của nhân viên để có thể hoàn thành tốt công việc được giao, đem lại lợi nhuận cho công ty, từ đó phát triển nền kinh tế đất nước
Trang 23 Nghiên cứu, tìm hiểu và ứng dụng các thuật toán xử lý ảnh vân tay vào việc điểm danh sinh viên, góp phần đưa công nghệ nhận diện dấu vân tay áp dụng vào thực tiễn của cuộc sống
Cải tiến thành công công thức tính Trường định hướng của ảnh giúp giảm bớt các lệnh dư thừa cho máy tính và làm tăng tốc độ thực thi
Phát triển thành công kỹ thuật phát hiện biên dành riêng cho ảnh vân tay
Phát triển thành công kỹ thuật dò theo đường vân trên ảnh vân tay sau khi làm mảnh
để loại bỏ những đường vân dư thừa dựa trên ý tưởng của thuật toán “Dò theo đường vân” trên ảnh xám
Cải tiến thành công phương pháp đối sánh vân tay dựa trên việc tổng hợp những ưu điểm của những phương pháp đi trước
Phát triển thành công phương pháp đối sánh vân tay lấy các chỉ số PointCare làm gốc
Cải tiến thành công phương pháp đối sánh vân tay thông qua độ lệch góc giữa đường thẳng nối các đặc trưng với trục hoành trong hệ tọa độ Oxy dựa trên phương trình đường thẳng của chúng
Nhóm nghiên cứu cũng đã thực nghiệm trên 3000 trường hợp đối sánh giữa các cặp ảnh vân tay khác nhau để qua đó kiểm nghiệm tính đúng đắn của thuật toán, đồng thời xác định ngưỡng Hamming distance – ngưỡng mức độ giống nhau giữa hai vân tay
Trang 24CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 GIỚI THIỆU VỀ NỀN TẢNG LẬP TRÌNH WINDOWS PHONE
a Giới thiệu về hệ điều hành Windows Phone
Windows Phone là hệ điều hành dành cho Smartphone được sản xuất bởi một trong những công ty phần mềm hàng đầu thế giới – Microsoft Windows Phone được phát triển từ hệ điều hành Windows Mobile vốn đã đạt được một số thành công trước đó Tuy nhiên, nó không phải là một sự thay thế cho Windows Mobile, mà là một đứa con cưng được kế thừa tất cả những cái hay, cái đẹp của Windows Mobile nhưng với một nền tảng mạnh mẽ hơn cho một loạt các thiết bị và các kịch bản ứng dụng chạy trên nó Bên cạnh
đó, Windows Phone là một thương hiệu thiết bị di động mới, tích hợp một loạt các tính năng cần thiết để xây dựng các ứng dụng đáp ứng các nhu cầu của doanh nghiệp và người tiêu dùng, cho phép các nhà phát triển dễ dàng tạo ra các ứng dụng tương tác mạnh mẽ, hấp dẫn, và được sử dụng lại những kỹ năng cũng như kiến thức của họ môi trường phát triển hiện đại Chẳng hạn như Silverlight của Microsoft® và XNAMicrosoft®
Hệ điều hành Windows Phone 7 được giới chuyên môn đánh giá cao về khả năng thực thi ổn định và mượt Với Windows Phone, Microsoft có lý do để tin tưởng rằng hãng
sẽ giành được một khối lượng lớn thị phần trên thị trường smartphone bởi sự tăng trưởng mạnh mẽ về thị phần của Windows Phone trong thời gian gần đây Hệ điều hành mới của Microsoft được đánh giá hoàn hảo với nhiều tính năng hiện đại Những ứng dụng phát triển của Windows Phone sẽ thiên về giải trí, mang những tính năng kết nối mạng xã hội Những ứng dụng này do các nhà phát triển bên ngoài phát triển
b Những yếu tố cơ bản trên Windows Phone
Tất cả các ứng dụng Windows Phone được viết trên nền tảng NET, ngôn ngữ lập trình được sử dụng là C# Bộ công cụ lập trình Windows Phone là Microsoft Visual Studio từ 2010 trở lên, bao gồm XNA Game Studio và một trình giả lập điện thoại Microsoft cũng cung cấp khả năng chỉnh sửa giao diện và tạo các hiệu ứng động cho các ứng dụng Silverlight bằng cách sử dụng Microsoft Expression Blend.[8]
Các nền tảng Silverlight và XNA cho Windows Phone chia sẻ một số thư viện sử dụng chung, nhưng không thể lập trình một ứng dụng dựa trên cả hai
Silverlight cung cấp khả năng viết các chương trình có thể phân loại như các ứng dụng hoặc tiện ích Các chương trình này được xây dựng từ sự kết hợp của XAML và các đoạn mã XAML bao gồm các thẻ định nghĩa giao diện, bố trí các điều khiển trên giao diện của ứng dụng Các đoạn mã trong XAML cũng có thể thực hiện một số khởi tạo và
xử lý logic, nhưng thường được chuyển xuống xử lý các sự kiện từ các điều khiển Silverlight cho Windows Phone là một phiên bản phát triển từ Silverlight 3 bao gồm một
số tính năng và cái tiến sử dụng trên điện thoại
XNA được sử dụng để viết các trò chơi với hiệu suất cao Với các trò chơi 2D, ta
có thể định nghĩa các mảng đồ họa, hình nền dựa trên bitmap xuất hiện trong trò chơi 3D, XNA cung cấp khả năng định nghĩa các mô hình trong không gian 3D Các hành động
Trang 25của trò chơi, trong đó bao gồm di chuyển các đối tượng đồ họa trên màn hình và thao tác bởi người sử dụng, được đồng bộ bởi các vòng lặp XNA tích hợp trong game
1.2 XÂY DỰNG ỨNG DỤNG THEO MÔ HÌNH 3 LỚP
Trong phát triển ứng dụng, để dễ quản lý các thành phần của hệ thống, cũng như không bị ảnh hưởng bởi các thay đổi, người ta hay nhóm các thành phần có cùng chức năng lại với nhau và phân chia trách nhiệm cho từng nhóm để công việc không bị chồng chéo và ảnh hưởng lẫn nhau Trong phát triển phần mềm, người ta cũng áp dụng cách phân chia chức năng này, trong đó mô hình 3 lớp phổ biến nhất Việc xây dựng ứng dụng theo mô hình 3 lớp mang đến lợi ích tái sử dụng lại các thành phần có sẵn và dễ dàng cập nhật Một ứng dụng được xây dựng theo mô hình trên sẽ bao gồm 3 lớp:
Có nhiệm vụ xử lý, kiểm tra các dữ liệu nhập
Tiếp nhận các sự kiện của người dùng, kiểm tra dữ liệu được nhập vào, gửi yêu cầu xử lý xuống tầng kế tiếp
Trang 261.2.1 Lớp xử lý
Đây là lớp xử lý chính các dữ liệu trước khi được đưa lên hiển thị trên màn hình hoặc xử lý các dữ liệu trước khi lưu dữ liệu xuống cơ sở dữ liệu
Đây là nơi để kiểm tra các yêu cầu nghiệp vụ, tính toán các yêu cầu nghiệp vụ
Tại đây các tính năng tính toán trong chương trình sẽ được thực thi
Năm 1568, một người Ý tên Danielo Barbaro phát minh ra một chiếc máy thô sơ cho phép in ra giấy những hình ảnh ghi nhận được Những năm sau đó, chiếc máy trên được cải tiến với hình ảnh ngày càng sắc nét và ngày càng nhanh hơn ban đầu Mãi đến năm 1975, Steven Sasson cho ra đời một chiếc máy ảnh lưu được hình ảnh dạng trắng đen Qua nhiều thập kỉ, máy ảnh kỹ thuật số ra đời đáp ứng mọi nhu cầu lưu trữ hình ảnh màu với độ sắc nét cao, tốc độ xử lý nhanh và dung lượng ảnh thấp
Càng ngày con người càng đề cao việc lưu trữ hình ảnh ở những mức độ tối ưu hơn
và cũng chính vì vậy việc xử lý các hình ảnh được lưu trữ là một trong những vần đề đang được nhắc đến nhiều nhất
Xử lý ảnh là thực hiện một loạt các thao tác xử lý sao cho từ ảnh đầu vào sẽ cho ra được các kết quả đầu ra như mong muốn Kết quả đầu ra có thể là một ảnh tốt hơn ảnh đầu vào hay chỉ đơn giản là một kết luận về hình ảnh đó
Ảnh có thể được xem là một tập hợp các điểm ảnh, mỗi điểm ảnh được đặc trưng bởi một giá trị màu tương ứng Tùy vào các loại ảnh, các điểm ảnh sẽ có các khoảng giá trị màu khác nhau Có ba loại ảnh phổ biến hiện nay: ảnh màu, ảnh mức xám (hay còn gọi
là ảnh xám) và ảnh nhị phân (hay còn gọi là ảnh trắng đen)
Khoảng giá trị màu của ảnh trắng đen là 2, bao gồm 2 màu trắng và đen Khoảng giá trị màu của ảnh xám là một số 8 bit, bao gồm 28
= 256 giá trị màu từ tối đến sáng Khoảng giá trị màu của ảnh màu là sự kết hợp giữa 3 màu cơ bản – đỏ, lục và lam, mỗi màu là một số 8 bit Như vậy, khoảng giá trị màu của ảnh màu là 2563
= 16 777 216 giá trị.[1]
Thông thường, việc xử lý ảnh không được thực hiện trên ảnh màu vì khoảng giá trị của nó quá lớn, gây lãng phí thời gian, hao hụt tài nguyên và tổn hại bộ nhớ Tuy nhiên,
đa số các thiết bị lưu trữ ảnh hiện nay đều chỉ cho phép lưu hình ảnh dưới dạng ảnh màu
Do đó, để cho việc xử lý ảnh được thực hiện một cách nhanh chóng, dễ dàng và chính xác
Trang 27đòi hỏi phải chuyển ảnh màu sang các loại ảnh có khoảng giá trị màu thấp hơn chẳng hạn như ảnh xám hoặc ảnh nhị phân
Việc chuyển ảnh màu sang ảnh xám hay ảnh nhị phân tùy thuộc vào mục đích của quá trình xử lý ảnh Nếu quá trình xử lý ảnh đòi hỏi mức độ chính xác nhất định thì ảnh xám là lựa chọn thích hợp, nhưng nếu mục đích chính của quá trình xử lý chỉ là thời gian thì ảnh nhị phân lại là lựa chọn tối ưu hơn Tuy nhiên, với tốc độ xử lý của máy tính, thì khoảng thời gian chênh lệch giữa việc xử lý trên ảnh xám và ảnh nhị phân là không đang
kể đối với con người Chính vì vậy, việc lựa chọn xử ý trên ảnh xám sẽ cho kết quả có độ chính xác tương đối cao trong khoảng thời gian có thể chấp nhận được là lựa chọn tối ưu nhất
1.4 TỔNG QUAN VỀ VÂN TAY
có chung một hệ thống gen di truyền nhưng vân tay ở mười đầu ngón tay của mỗi cá nhân khác nhau.[1]
Vân tay có tính phân biệt, vì thế mỗi người chỉ có một vân tay duy nhất Bên cạnh
đó, vân tay còn có tính bất biến, ngoại trừ chấn thương hoặc phẫu thuật gây ra sẹo sâu, hoặc các bệnh như bệnh phong làm tổn hại đến lớp da hình thành của đường vân tay, dấu vân tay sẽ không di chuyển hoặc thay kết cấu trong suốt cuộc đời của một người
1.4.2 Lịch sử nhận dạng vân tay
Tuy công nghệ nhận dạng vân tay được ứng dụng trong 1 thế kỷ gần đây, nhưng theo các nhà sử học, ngay từ thời tiền sử ở triều đại Babylon cổ đại, con người đã sử dụng vân tay in trên bảng đất sét cho các hoạt động giao dịch kinh doanh.[11]
Sách sử học của Trung Quốc cho thấy từ 221-206 trước Công nguyên đã viết chi tiết việc nhà Tần sử dụng dấu vân tay làm bằng chứng trong quá trình điều tra vụ trộm
Hình 1.2: Giao dịch kinh doanh sử dụng dấu vân tay làm tín
Trang 28Đến thế kỷ 16, các kỹ thuật vân tay khoa học hiện đại mới xuất hiện và từ đó các lí thuyết và chương trình mô tả, nhận dạng vân tay mới phát triển mau chóng Năm 1684, Tiến sĩ Nehemiah, là người châu Âu đầu tiên công bố về việc nhận dạng cá nhân thông qua các đường vân da
Năm 1788, Mayer đã mô tả chi tiết thông tin giải phẫu của vân tay để đặc tính hóa, nhận dạng các đặc tính vân tay.1870, Tiến sĩ Henry Faulds, Bác sĩ phẫu thuật người Anh-Giám Đốc Bệnh viện Tsukiji ở Tokyo, Nhật Bản, đã lên nghiên cứu về "rãnh da" sau khi nhận thấy dấu tay trên mẫu vật gốm của "thời tiền sử” Tiến sĩ Faulds không chỉ được công nhận tầm quan trọng của dấu vân tay như một phương tiện nhận dạng, đồng thời còn
là một phương pháp phân loại là tốt Năm 1880, Tiến sĩ Henry Faulds xuất bản một bài báo trên tạp chí khoa học, "thiên nhiên" (Nature) Ông đã thảo luận dấu vân tay như một phương tiện nhận dạng cá nhân, và việc sử dụng máy in mực như một phương pháp cho việc thu thập dấu vân tay Ông cũng được ghi nhận với nhận dạng vân tay đầu tiên của một dấu vân tay nhờn để lại trên một chai rượu
Hình 1.3: Tiến sĩ Henry Faulds
Năm 1926 Tiến sĩ Harold Cummins được xem là cha đẻ của ngành nghiên cứu khoa học dấu vân tay đưa ra lí luận chỉ số cường độ vân tay PI (Pattern Intensity) Giá trị
RC, số lượng tam giác điểm, hình dạng vân tay, vị trí hình dạng vân tay ở những ngón tay khác nhau có liên quan đến tiềm năng và trí tuệ của con người.Ông nghiên cứu ra rằng dấu vân tay được hình thành đồng thời với sự hoàn thiện các cấu trúc của não bộ
Đầu thế kỉ 20, cấu trúc của vân tay mới được mô tả một cách khá đầy đủ, đã tạo nền tảng cho việc phát triển công nghệ nhận dạng vân tay và các lĩnh vực khoa học liên quan đến sinh trắc học, nghiên cứu về tính cách và sức khỏe con người Cũng từ đầu thế
kỉ 20, nhận dạng vân tay chính thức được chấp nhận như một phương pháp nhận dạng cá nhân có giá trị và trở thành chuẩn trong pháp luật
Trang 29Hình 1.4: Vân tay được sử dụng trên chứng minh thư
1.4.3 Các phương pháp phân loại vân tay
Vân tay có 2 đặc trưng chính: tâm (core) và tam phân điểm (delta) Các phương pháp phân loại vân tay đều dựa trên 2 đặc điểm này Dựa vào số lượng tâm và tam phân điểm, ta có thể xác định được loại vân tay.[2]
1.4.3.1 Các điểm đặc trưng trên ảnh vân tay
Hình 1.5 : Core và Delta trên vân tay
Một vài loại core :
Hình 1.6 : Các loại Core vân tay
Trang 30a Trích xuất các điểm Singularity
a.1 Trường định hướng (orientation field)
Ảnh vân tay là ảnh định hướng, các đường vân là các đường cong theo các hướng xác định Góc hợp bởi phương của một điểm trên đường vân với phương ngang được gọi
là hướng của điểm đó Tập hợp các hướng của các điểm trên ảnh vân tay gọi là trường định hướng của ảnh vân tay đó
Hình 1.8: ảnh vân tay (a) và trường định hướng của nó (b)
Trang 31Phương pháp xác định trường định hướng như sau:
Chia ảnh vân tay thành các khối nhỏ hơn kích thước WxW
Tính Gradient theo hai hướng x, y là Gx, Gy tại mỗi điểm (pixel) trong khối Khi đó hướng của điểm chính giữa của khối được xác định theo công thức:
(
∑ ∑
∑ ∑
)
Trong đó:
: là hướng của khối (radian)
: là Gradient theo hướng x của điểm ảnh [i,j]
: là Gradient theo hướng y của điểm ảnh [i,j]
: là kích thước của khối
a.2 Xác định các điểm singularity bằng chỉ số Poincare
Giả sử (i,j) là một điểm bất kỳ trên ảnh vân tay, C là một đường cong khép kín xung quanh (i,j) thì chỉ số Poincare tại (i,j) là tổng đại số các độ sai lệch hướng của các điểm liền kề nhau trên đường cong C
; với
Trong đó:
n : là tổng số điểm trên đường cong “số” C
: là hướng tại điểm (x,y)
Dựa vào chỉ số Poincare ta có thể xác định các điểm singularity như sau:
{
Trang 32
Hình 1.9: Cách tính chỉ số Poincare tại điểm (i,j) với n = 8
b Trích xuất các điểm Minutiae
Có hai phương pháp chính để tìm các điểm minutiae: trích các điểm minutiae từ ảnh nhị phân và trích các điểm minutiae trực tiếp từ ảnh xám
b.1 Trích các điểm minutiae từ ảnh binary
Hình 1.10: Sơ đồ thuật toán trích các điểm Minutiae từ ảnh xám
Để trích xuất các điểm minutae từ ảnh vân tay đầu vào, việc đầu tiên cần làm là chuyển hóa thành ảnh mức xám, sau đó sử dụng bộ lọc thích hợp để nâng cao chất lượng ảnh, cải thiện các chi tiết bị mất và làm nổi đường vân, biến đổi ảnh xám ban đầu thành ảnh binary (có giá trị là 0 hoặc 1) tương ứng.[2]
Sau đó, các điểm minutiae sẽ được trích như sau: giả sử (x,y) là một điểm trên đường vân đã được làm mảnh và N0, N1, …, N7 là 8 điểm xung quanh nó thì:
(x,y) là một điểm kết thúc nếu
7
0
1
i i
N
(x,y) là một điểm rẽ nhánh nếu
7
0
2
i i
N
Trang 33Hình 1.11 :Phân loại đặc trưng Minutiae
a) một phần điểm của vân tay; b) điểm kết thúc; c) điểm rẽ nhánh
b.2 Trích các điểm minutiae từ ảnh xám
Giả sử I là một ảnh xám có kích thước m x n, coi chiều thứ ba z là mức xám tại điểm (i,j) Theo quan điểm toán học, đường vân là tập hợp các điểm cực đại dọc theo một hướng xác định Việc xác định các điểm Minutiae trực tiếp từ ảnh xám dựa vào thuật toán
dò theo đường vân Thuật toán này dựa vào việc xác định các điểm cực đại dọc theo đường vân Điểm cực đại có thể được xác định bằng cách so sánh mức xám giữa các điểm trong thiết diện Ω.[2]
Xác định điểm cực đại
Giả sử (i t, j t), , là thiết diện của đường vân có điểm chính giữa là (i t ,j t ),
hướng của thiết diện /2, t là hướng của đường vân tại (i t , j t ) và bề rộng
của thiết diện m = 2σ + 1 pixel Khi đó, Ω được xác định như sau:
))sin
*(
),cos
*(
()(
))sin
*(
),cos
*(
()(
))(
),((
),(,),(
|),(
, ,
, ,
end end
t t
start start
end end start start
i round i
round j
i
i round i
round j
i
j i j
i segment j
i I j i j i
{
Điểm cực đại có thể được xác định bằng cách so sánh mức xám giữa các điểm trong Ω
Hình 1.12: Thiết diện của đườngng vân (i s , j s )
Trang 34Thuật toán tìm các điểm Minutiae bằng cách dò theo đường vân được thực hiện như sau:
Lấy một điểm bất kỳ (is , js) trên ảnh I
Tìm hướng φs tại điểm (is , js)
Tìm điểm cực đại (ic , jc) gần (is , js) nhất
Hình 1.13: Điểm cực đại (i c , j c ) gần (i s , j s ) nhất
Tìm hướng φc tại điểm (ic , jc)
Dịch chuyển theo hướng φc một đoạn μ
Tiếp tục quá trình này để dò theo theo đường vân cho đến khi không phát hiện được điểm cực đại (ic , jc) thì đó là điểm Ridge Ending hoặc chạm vào một đường vân khác thì đó là điểm Bifurcation (mỗi đường vân sau khi được dò theo được gán nhãn)
Tiếp theo chọn một điểm (is , js) khác và thực hiện lại quá trình trên cho đến khi
dò hết tất cả các đường vân
Hình 1.14: Dịch chuyển theo đường vân từng đoạn μ
Trang 351.5 MÔ HÌNH CLIENT – SERVER
Mô hình Client-Server là một mô hình khá nổi tiếng và được áp dụng một cách rộng rãi trong mạng máy tính Mô hình bao gồm một hoặc nhiều máy con (Client - đóng vai trò là máy khách) và một máy chủ (Server đóng vai trò là máy cung cấp dịch vụ) Khi một máy con (Client) cần một thông tin nào đó, nó sẽ gửi một yêu cầu (request) đến máy chủ (Server), máy chủ sẽ tiếp nhận yêu cầu để xử lý à trả kêt quả về cho máy con.[12]
Hình 1.15: Mô hình Client – Server với một loại client
Server cũng có thể là những chương trình hoặc những ứng dụng mà có chức năng hoạt động như một nhà cung cấp dịch vụ trên mạng Các chương trình hoặc ứng dụng Server này chấp nhận tất cả các yêu cầu hợp lệ được gửi đến từ bất kì nơi nào trên mạng, sau đó chúng thi hành dịch vụ và trả kết quả về cho máy tính đã gửi yêu cầu
Client có thể là những chương trình, ứng dụng hay bất kì thiết bị điện tử nào có kết nối mạng internet chứ không chỉ riêng máy tính Một chiếc điện thoại thông minh hay một chiếc máy tính bảng đều có thể là một Client Một cách tổng quát, một chương trình hoặc một thiết bị được xem là Client khi nó thực hiện việc gửi một hoặc nhiều yêu cầu tới một máy tính hoặc một chương trình Server có chức năng tiếp nhận yêu cầu, và sau đó nó
sẽ chờ câu trả lời từ phía Server
Hình 1.16 Mô hình Client – Server với nhiều loại client
Trang 36Server và Client giao tiếp với nhau bằng các thông điệp thông qua một cổng truyền thông tương tác Server và Client chỉ có thể tương tác nhau khi giữa chúng có một chuẩn
để giao tiếp, chuẩn này được gọi là giao thức Khi một Client muốn yêu cầu một Server cung cấp một thông tin nào đó, Client đó phải tuân theo giao thức mà Server đưa ra
Với sự phát triển một cách mạnh mẽ của mạng máy tính như hiện nay, rất nhiều giao thức chuẩn khác nhau ra đời nhằm đáp ứng mọi yêu cầu khắt khe nhất Các giao thức chuẩn được sử dụng rộng rãi nhất hiện nay như: giao thức TCP/IP, giao thức SNA của IBM, OSI, ISDN, X.25 hoặc giao thức LAN-to-LAN NetBIOS
Ưu điểm của mô hình client-server:
Quản lý tập trung dữ liệu: dữ liệu được lưu trữ tập trung trên server thay vì nằm rải rác ở nhiều nơi khác nhau, điều này giúp đơn giản hóa việc truy xuất và cập nhật dữ liệu đồng thời quản lý dữ liệu một cách hiệu quả
Dễ dàng bảo trì: nhờ khả năng quản lý tập trung mà công việc bảo trì, bảo dưỡng cũng trở nên nhẹ nhàng và dễ dàng hơn Phần lớn các thao tác bảo trì chỉ cần thực hiện trên Server
Bảo mật: dữ liệu được lưu trữ tập trung trên Server đồng nghĩa với việc kiểm soát chúng dễ dàng hơn
Mô hình Client-Server phù hợp cho các chương trình, ứng dụng phải phục
vụ nhiều Client (chẳng hạn như các ứng dụng website) Mô hình cũng đặc biệt thích hợp khi cần tập trung hóa dữ liệu và công tác quản lý, hoặc khi ứng dụng cần phải hỗ trợ nhiều loại Client là nhiều thiết bị khác nhau
WINDOWS COMMUNICATION FOUNDATION (WCF)
Windows Communication Foundation (WCF) là một công nghệ mới của hãng Microsoft Nó cho phép phát triển các ứng dụng trong môi trường phân tán gồm nhiều client giao tiếp với service [3]
WCF là mô hình lập trình hợp nhất của Microsoft để xây dựng các ứng dụng hướng dịch vụ, cho phép các nhà phát triển xây dựng các ứng dụng với các giải pháp an toàn, đáng tin cậy và các giao dịch Nó tích hợp được trên nhiều nền tảng và tương thích với cả ứng dụng đã được xây dựng trước đó
WCF được xây dựng trên NET Framework của chính Microsoft và làm đơn giản hóa sự phát triển của các hệ thống kết nối Nó giúp thống nhất các hệ thống phân tán liên kết với nhau Kiến trúc mở rộng của nó là hỗ trợ nhiều transport, các mẫu tin nhắn (messagsing), các mã hóa (encodings), các phương thức tuyền tải trên mạng và các mô hình lưu trữ
Mục đích của WCF là cung cấp một mô hình lập trình duy nhất có thể được sử dụng để tạo ra các dịch vụ trên nền tảng NET cho các tổ chức
Trang 37tự như vậy Contract định nghĩa các đặc tả trong hệ thống bản tin
RUNTIME SERVICE
Lớp Runtime service (dịch vụ thực thi) chứa các hành xử sẽ xảy ra trong quá trình thực thi của dịch vụ
MESSAGE
Hình 1.18: Các kênh trao đổi bản tin trong WCF
Lớp Message là tập hợp các kênh Mỗi kênh là một thành phần xử lý bản tin theo một cách nào đó Mỗi tập các kênh thường được gọi là ngăn xếp kênh Các kênh làm việc trên bản tin và trên đầu đề của bản tin Lớp này khác với lớp Runtime service chủ yếu bởi
sự khác sự khác nhau trong việc xử lý nội dung bản tin
Trang 38HOST AND ACTIVATION
Nhìn một cách tổng thể thì một dịch vụ thực chất là một chương trình Cũng giống như các chương trình khác, một dịch vụ cần phải chạy trong một tệp thực thi Dịch vụ này thường được gọi là dịch vụ lưu trữ
Các dịch vụ còn có thể được lưu trữ, hoặc chạy trong một tệp thực thi được quản lý bởi một agent bên ngoài như IIS hay Windows Activation Services (WAS) WAS cho phép WCF được kích hoạt một cách động khi phân phối tới một máy tính có chạy WAS
1.6 NGÔN NGỮ TRUY VẤN DỮ LIỆU LINQ
1.6.1 Giới thiệu chung
LINQ (Language Intergrated Query) là một công nghệ trên nền tảng NET 3.5, cung cấp một giải pháp hợp nhất cho việc truy vấn dữ liệu, tích hợp cách truy vấn theo cú pháp SQL vào ngôn ngữ lập trình (cụ thể như C# hay VB.NET), áp dụng cho tất cả các dạng dữ liệu từ Object (đối tượng) cho đến CSDL quan hệ và cả XML [4]
LINQ có kiến trúc như sau :
Hình 1.19: Mô hình kiến trúc LINQ
LINQ cung cấp 3 phần chính gồm: LINQ to Objects, LINQ to XML và LINQ to ADO.NET (bao gồm: LINQ to SQL và LINQ to DataSets)
1.6.2 Vai trò
LINQ to Entities cho phép người lập trình mô hình hóa một cơ sở dữ liệu dùng các lớp NET Sau đó, người lập trình có thể truy vấn cơ sở dữ liệu dùng LINQ cũng như cập nhật/ thêm/ xóa dữ liệu từ đó
LINQ to Entities hỗ trợ đầy đủ transaction, view và các stored procedure, function
Nó cũng cung cấp một cách dễ dàng để thêm khả năng kiểm tra tính hợp lệ của dữ liệu và các quy tắc vào trong mô hình dữ liệu của người lập trình
Trang 39CHƯƠNG 2: XÂY DỰNG HỆ THỐNG PHẦN MỀM
2.1 THIẾT KẾ HOẠT ĐỘNG
Hiện nay, hầu hết các trường học đều thực hiện điểm danh theo phương pháp truyền thống: giảng viên sử dụng danh sách sinh viên của lớp học, gọi tên điểm danh từng sinh viên Giả sử số lượng sinh viên của một lớp học một buổi trung bình là 100 người, mất khoảng 10 giây điểm danh một người thì một lần điểm danh lớp học phải mất tới 1000 giây, tức hơn 16 phút Có thể nhận thấy rõ ràng hình thức điểm danh này đang làm lãng phí lớn công sức và thời gian giảng dạy của giảng viên, cùng với những bất cập của nó mang lại, đã ảnh hưởng không nhỏ đến việc truyền dạy kiến thức cho sinh viên trong buổi học
Để giải quyết những thách thức của quy trình điểm danh trong thực tế bằng giải pháp tin học hóa, hệ thống phần mềm được xây dựng gồm ba thành phần chính: server xử
lý điểm danh, client bao gồm ứng dụng trên smartphone và ứng dụng website quản trị thông tin trên điện thoại di động của người dùng
Server làm nhiệm vụ chính là xử lý việc thực hiện điểm danh sinh viên giữa ứng dụng client trên điện thoại di động và cơ sở dữ liệu Khi có yêu cầu thực hiện điểm danh
từ client, server nhận được thông tin sinh viên cần điểm danh và danh sách những đặc trưng vân tay đã được xử lý từ client, server sẽ dựa vào những thông tin đã được cung cấp, truy xuất cơ sở dữ liệu để lấy được những thông tin tương ứng trong cơ sở dữ liệu của sinh viên đó và thực hiện đối sánh chúng Nếu kết quả trả về là phù hợp, server sẽ ghi nhận lần điểm danh của sinh viên, và thông báo kết quả về ứng dụng
Website được cung cấp cho các đối tượng là phòng quản lý đào tạo nhằm mục đích theo dõi thông tin sinh viên, giảng viên, quản lý lịch giảng dạy của giảng viên, thời khóa biểu môn học và quan trọng nhất là thông tin điểm danh của sinh viên Dựa vào website, các thầy, cô có thể dễ dàng theo dõi, quan tâm tình hình đi học của sinh viên, từ đó nhà trường có thể lên kế hoạch nâng cao chất lượng đào tạo
Ứng dụng Client trên điện thoại di động cung cấp chức năng chính cho sinh viên là thực hiện điểm danh Thông tin điểm danh về lớp học, môn học, danh sách sinh viên môn
đó được nhận bằng cách xác định vị trí hiện tại và gửi về cho server xử lý, nếu phù hợp với vị trí của phòng học thì server trả về kết quả Ứng dụng client được tích hợp các thuật toán xử lý ảnh vân tay, sau khi thu được danh sách các đặc trưng vân tay sẽ gửi đến server
để thực hiện điểm danh Bên cạnh đó, ứng dụng client còn tích hợp phần kiểm nghiệm thuật toán đối sánh vân tay, giúp cho người dùng hiểu rõ quá trình xử lý và kiểm tra tính chính xác của thuật toán
Cơ sở dữ liệu quản lý thông tin được xây dựng sau khi phân tích những thông tin cần thiết để quản lý việc điểm danh sinh viên và những chức năng phụ như quản lý thông tin sinh viên, giảng viên
Trang 40Mô hình hoạt động chung:
Hình 2.1: Mô hình hoạt động hệ thống
2.2 PHÂN TÍCH THIẾT KẾ CƠ SỞ DỮ LIỆU QUẢN LÝ
THÔNG TIN
Các chức năng chính của cơ sở dữ liệu:
Quản lý thông tin sinh viên
Quản lý thông tin giảng viên
Quản lý lịch giảng dạy của giảng viên
Quản lý thời khóa biểu của sinh viên
Quản lý thông tin điểm danh của sinh viên
Quản lý đặc trƣng vân tay của từng sinh viên
2.2.1 Mô hình ý niệm truyền thông
2.2.1.1 Quy trình tra cứu thông tin: