Nguyên lý hoạt động của công nghệ sinh trắc học dấu vân tayNguyên lý hoạt động của công nghệ nhận dạng sinh trắc vân tay là khi đặt ngón tay lên trên một thiết bị nhận dạng dấu vân tay,
Các khái niệm, định nghĩa chung
Định nghĩa dấu vân tay
Dấu vân tay là đặc điểm phân biệt cá nhân độc đáo, và công nghệ nhận dạng vân tay đang phát triển mạnh mẽ, cho phép thu thập và lưu trữ hàng triệu mẫu vân tay dưới dạng số hóa Kỹ thuật này được coi là một bước đột phá trong cuộc cách mạng công nghệ mới, khi các thiết bị nhận dạng vân tay ngày càng được ứng dụng rộng rãi để bảo vệ dữ liệu.
Nguyên lý hoạt động của công nghệ sinh trắc học dấu vân tay
Công nghệ nhận dạng sinh trắc vân tay hoạt động bằng cách quét hình ảnh vân tay khi người dùng đặt ngón tay lên thiết bị Thiết bị sẽ so sánh các đặc điểm của vân tay với dữ liệu đã lưu trữ trong hệ thống Quá trình này chuyển đổi dữ liệu sang dạng số và thông báo xem dấu vân tay là hợp lệ hay không, từ đó cho phép hệ thống thực hiện các chức năng tiếp theo.
Công nghệ sinh trắc học là gì?
Công nghệ sinh trắc học (Biometric) sử dụng các thuộc tính hành vi và đặc điểm sinh học như dấu vân tay, giọng nói, dáng đi, khuôn mặt và mẫu mống mắt để nhận diện con người Đây là công cụ xác thực nhân thân hiệu quả, với nhận dạng vân tay được ưa chuộng nhất nhờ tính ổn định và độc nhất Đến nay, nhận dạng dấu vân tay vẫn được coi là một trong những phương pháp sinh trắc đáng tin cậy nhất.
Cảm biến vân tay đã trở thành một phần quen thuộc trong cuộc sống hiện đại, được tích hợp trên nhiều thiết bị như điện thoại và khóa cửa Trên điện thoại, cảm biến này có thể nằm trên phím home, như ở iPhone và Samsung, hoặc được đặt ở mặt sau, như ở Xiaomi.
Khi người dùng đặt ngón tay lên cảm biến vân tay, thiết bị sẽ quét và chuyển đổi hình ảnh ngón tay thành dữ liệu số Hệ thống sẽ so sánh đặc điểm vân tay với dữ liệu đã lưu trữ Nếu khớp, lớp bảo mật sẽ được mở, cho phép loại bỏ hoàn toàn mật khẩu mà vẫn đảm bảo tính bảo mật khi đăng nhập vào thiết bị.
Máy quét tĩnh mạch lòng bàn tay – Palm Vein Reader
Máy quét tĩnh mạch lòng bàn tay đang nổi lên như một xu hướng mới trong công nghệ sinh trắc, mặc dù máy quét vân tay đã rất phổ biến Thiết bị này có tiềm năng ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau.
Mô hình quét tĩnh mạch FingoPay cho phép người dùng thực hiện thanh toán dễ dàng chỉ bằng cách đặt ngón tay vào máy quét nhỏ gọn, kết nối trực tiếp với thẻ tín dụng hoặc tài khoản ngân hàng, mà không cần dùng đến tiền mặt hay thẻ tín dụng.
Thiết bị FingoPay sử dụng công nghệ tia hồng ngoại để chụp ảnh cấu trúc tĩnh mạch ngón tay của từng cá nhân, sau đó kiểm tra qua máy quét với mô hình đã được đăng ký Theo các chuyên gia, xác suất hai người có cùng cấu trúc tĩnh mạch là 3,4 tỷ trên 1, điều này gần như loại trừ khả năng gian lận khi sử dụng FingoPay.
Hệ thống nhận dạng khuôn mặt đƣợc sử dụng trong các hệ thống an ninh và có thể đƣợc so sánh với các dạng sinh trắc học khác nhƣ
Tính năng nhận diện khuôn mặt trên Facebook cho phép người dùng tự động gợi ý gắn thẻ bạn bè khi họ đăng hình ảnh Công nghệ này sử dụng hình ảnh cũ của bạn bè đã được đăng tải hoặc những lần gắn thẻ trước đó để nhận diện và đề xuất gắn thẻ, giúp tăng tính tương tác và kết nối giữa người dùng.
Công nghệ nhận diện khuôn mặt được Samsung tích hợp vào điện thoại S8 và S8+, nhưng không được đánh giá cao về tính bảo mật Chỉ với một số mẹo đơn giản, công nghệ này dễ dàng bị lừa.
Hoạt động và tín hiệu điện của trái tim là những đặc điểm độc nhất của mỗi người, khó có thể sao chép Công nghệ đọc tín hiệu điện tâm đồ (ECG) đã tồn tại từ lâu và gần đây đã có sự phát triển mạnh mẽ.
Vòng tay Nymi là một sản phẩm độc đáo, có hình dáng giống như vòng tập thể dục nhưng thay vì đếm bước chân, nó sử dụng nhịp tim để xác nhận danh tính người dùng Sản phẩm này không chỉ mở khóa thiết bị mà còn thay thế các phím bấm và mật khẩu vật lý, cho phép xác thực danh tính không dây trên smartphone, máy tính, cửa nhà, xe hơi và tại các cửa hàng Đặc biệt, vòng tay Nymi còn có khả năng nhận diện cử chỉ, giúp người dùng mở khóa nhà chỉ bằng một cái vẫy tay.
Nhận diện qua mắt – Eye Scan
Cơ chế nhận diện mống mắt sử dụng máy chiếu bước sóng nhìn thấy hoặc camera hồng ngoại tầm gần (NIR) để chiếu vào mắt người Mục đích của việc chiếu tia
Dữ liệu thu thập từ thiết bị sẽ được chuyển về phần mềm chủ, như phần mềm nhận diện và phân tích mống mắt trên điện thoại Samsung Galaxy S8, để tìm kiếm các tham số như tần số và biên độ Sau đó, dữ liệu này sẽ được mã hóa bằng các thuật toán đặc biệt và phép thống kê nhằm đưa ra kết quả nhận diện chính xác chủ nhân của thiết bị Nếu nhận diện thành công, khóa sẽ được mở.
Một số ứng dụng sử dụng sinh trắc học vân tay phổ biến hiện nay
Vân tay là phương pháp nhận dạng đáng tin cậy vì chúng là duy nhất cho từng cá nhân và không thay đổi theo thời gian, khác với dáng đi, gương mặt hay chữ viết có thể bị giả mạo hoặc biến đổi Đường vân trên da ở đầu ngón tay và lòng bàn tay được giữ nguyên từ khi sinh ra đến khi chết, cho phép dễ dàng in hình lên các bề mặt nhẵn bóng Tính chất riêng biệt này chứng tỏ rằng nhận dạng vân tay là chính xác và hiệu quả hơn so với các phương pháp sinh trắc học khác.
Hình 1.3: Một số hình ảnh vân tay người
Từ xưa, con người đã lợi dụng dấu vân tay - đặc trưng duy nhất của mỗi người - trong nhiều lĩnh vực khác nhau Nhận dạng vân tay là một phương pháp phức tạp, phổ biến và hiệu quả, được sử dụng lâu dài trong cuộc sống Công nghệ này đã chứng minh tính hiệu quả cao, đặc biệt trong ngành điều tra tội phạm, an ninh và quân sự, và ngày càng được đề cao hơn nữa.
Công nghệ nhận dạng vân tay đã đƣợc ứng dụng rộng rãi trong nhiều lĩnh vực nhƣ:
Trong lĩnh vực an ninh: xác định nhân thân của một người qua dấu vân tay
Xác nhận nhân thân của cá nhân khi truy cập mạng hoặc mở khóa
Trong một số ngân hàng đã bắt đầu thanh toán thẻ ATM sử dụng máy đọc vân tay
Ngày nay, vân tay được sử dụng như một giải pháp bảo mật hiệu quả cho thông tin cá nhân, thay thế cho các ổ khóa truyền thống và mật khẩu Việc quét dấu vân tay qua các thiết bị chức năng cho phép người dùng mở cửa, đăng nhập vào hệ thống máy tính và truy cập vào các khu vực bảo mật Đây là biện pháp an ninh tối ưu cho nhiều lĩnh vực như kiểm soát an ninh tại các cơ quan Chính phủ, quân đội, ngân hàng, và trung tâm lưu trữ dữ liệu, cũng như quản lý ra vào nhân viên tại trung tâm thương mại, tập đoàn và đại sứ quán.
Nhận dạng vân tay đã trở thành một công nghệ phổ biến trong các điện thoại thông minh hiện nay Nhiều thương hiệu lớn như Samsung, Apple và Xiaomi đã tích hợp tính năng này vào sản phẩm của mình, mang lại sự tiện lợi và bảo mật cho người dùng.
Ngày nay, việc quản lý nhân sự đã được cải thiện đáng kể nhờ vào phương pháp nhận dạng vân tay, hỗ trợ hiệu quả cho việc quản lý và chấm công tại các nhà máy, xí nghiệp, và công ty thông qua máy chấm công vân tay Dấu vân tay, đặc biệt là trên mặt sau của chứng minh thư, giúp xác định nhanh chóng các đặc điểm và hồ sơ của công dân đã được lưu trữ trong cơ sở dữ liệu.
Hình 1.4: Ứng dụng nhận dạng vân tay trong lĩnh vực ngân hàng
Hình 1.5: Nhận dạng vân tay trên iPhone u
Từ đó ta thấy rằng nhu cầu xác thực dấ vân tay là rất lớn.
Thẻ thông minh là gì?
Thẻ thông minh, hay còn gọi là thẻ gắn chip hoặc thẻ mạch tích hợp (ICC), là loại thẻ có kích thước nhỏ gọn, tương tự như thẻ tín dụng, được trang bị một bộ mạch tích hợp có khả năng lưu trữ và xử lý thông tin Thẻ này có thể nhận và xử lý dữ liệu thông qua các ứng dụng của thẻ mạch tích hợp, từ đó đưa ra kết quả chính xác.
Có hai loại thẻ thông minh chính: thẻ nhớ và thẻ vi xử lý Thẻ nhớ chỉ chứa các thành phần bộ nhớ không bay hơi và có thể có chức năng bảo mật nhất định, trong khi thẻ vi xử lý bao gồm bộ nhớ bay hơi và các thành phần vi xử lý Các thẻ này thường được làm bằng nhựa như PVC hoặc đôi khi là ABS, và có thể có hình ảnh ba chiều (hologram) để ngăn chặn gian lận.
Thẻ gắn chip tự động, được phát minh bởi nhà khoa học người Đức Helmut Grüttrup và đồng nghiệp Jürgen Dethloff vào năm 1968, đã nhận được bằng sáng chế vào năm 1982 Việc sử dụng thẻ này với số lượng lớn lần đầu tiên diễn ra tại Pháp, bắt đầu từ năm 1983, phục vụ cho việc thanh toán điện thoại công cộng bằng thẻ hoặc xu.
Có rất nhiều rất loại thẻ thông minh nhưng người ta thường chia thành thành các nhóm nhƣ sau:
Phân loại theo phương thức đọc dữ liệu thì có 3 loại thẻ:
Thẻ thông minh tiếp xúc là loại thẻ có diện tích khoảng 1 cm vuông với các tiếp điểm mạ vàng Khi được đưa vào đầu đọc, chip trên thẻ sẽ kết nối với các tiếp điểm điện tử tương ứng, cho phép máy đọc thông tin từ chip và ghi dữ liệu lên thẻ.
Hình 1.7: Thẻ thông minh và đầu đọc
Thẻ thông minh không tiếp xúc sử dụng công nghệ RFID để giao tiếp với đầu đọc mà không cần tiếp xúc vật lý Điều này cho phép việc đọc và ghi dữ liệu từ thẻ diễn ra dễ dàng, ngay cả khi thẻ cách máy đọc vài chục centimet.
Hình 1.8: Thẻ thông minh không tiếp xúc
Thẻ lưỡng tính là loại thẻ tích hợp cả tính năng của thẻ tiếp xúc và thẻ không tiếp xúc, cho phép dữ liệu được truyền tải qua cả hai phương thức này.
Phân loại theo chip nhớ trên thẻ thì có 2 loại thẻ:
Thẻ nhớ thường chỉ gồm một bộ nhớ chỉ đọc (EEPROM) có thể lập : trình, xóa đƣợc bằng tín hiệu điện
Thẻ vi xử lý là một thiết bị nhỏ gọn, tích hợp bộ vi xử lý cùng các thành phần như bộ nhớ EEPROM, bộ nhớ chỉ đọc (ROM), bộ nhớ truy cập ngẫu nhiên (RAM) và CPU Các chi tiết này thực hiện các chức năng tương tự như các bộ phận trong một máy tính, giúp tối ưu hóa hiệu suất và khả năng xử lý dữ liệu.
Hình 1.9: Chip xử lý trên thẻ.
Các ứng dụng của thẻ thông minh
Thẻ thông minh đƣợc ứng dụng rất nhiều trong nhiều lĩnh vực của cuộc sống Ta có thể kể ra một số lĩnh vực đã đƣợc ứng dụng nhƣ:
Trình duyệt web Mozilla Firefox hỗ trợ thẻ thông minh để lưu trữ chứng nhận, giúp duyệt web an toàn hơn Ngoài ra, các hệ thống mã hóa đĩa như FreeOTFE cũng có thể sử dụng thẻ thông minh để bảo vệ các khóa mã, cung cấp thêm một lớp bảo mật cho các dữ liệu quan trọng trên đĩa.
Thẻ thông minh đóng vai trò quan trọng trong lĩnh vực tài chính với nhiều ứng dụng như thẻ tín dụng, thẻ ATM, thẻ đổ xăng, SIM điện thoại di động, thẻ truyền hình trả phí, và thẻ cho dịch vụ công cộng Ngoài ra, thẻ thông minh còn được sử dụng như ví điện tử, cho phép người dùng nạp sẵn tiền vào chip trên thẻ để thanh toán tại các trạm đỗ xe và máy bán hàng tự động.
Hệ thống thu phí tự động sử dụng thẻ kiểm soát RFID đã được triển khai trên các đường cao tốc mới của Việt Nam, cho phép nhận dạng và mã hóa dữ liệu của tất cả các phương tiện khi vào đường cao tốc, bao gồm thời gian, tên trạm, biển kiểm soát và loại xe Thẻ kiểm soát RFID sẽ lưu trữ thông tin này và được phát cho chủ phương tiện Khi ra khỏi đường cao tốc, lái xe trả thẻ cho nhân viên thu phí, thiết bị đọc sẽ quét dữ liệu trên thẻ và máy tính tự động tính toán mức phí dựa trên loại xe và số kilômet đã sử dụng Sau khi nhận tiền, máy tính in hóa đơn và mở barie cho phương tiện đi qua.
Hệ thống nhận dạng vân tay
Tổng quan
Hệ thống nhận dạng là công nghệ xác thực danh tính cá nhân thông qua việc so sánh các đặc điểm sinh trắc học của người dùng với các mẫu đã được lưu trữ trong cơ sở dữ liệu.
Xác thực dấu vân tay đã được áp dụng rộng rãi trong nhiều lĩnh vực nhằm nâng cao tính bảo mật và an ninh cho người dùng Mỗi dấu vân tay là duy nhất, đại diện cho từng cá nhân, giúp bảo vệ thông tin và tài sản một cách hiệu quả.
Công nghệ xác thực dấu vân tay đang ngày càng trở nên phổ biến trong việc bảo mật giao dịch và công việc, nhờ vào tính năng tích hợp trên nhiều thiết bị như máy tính và điện thoại thông minh Hệ thống nhận dạng vân tay được áp dụng rộng rãi trong các lĩnh vực như quản lý nhân sự, quản lý công nhân và kiểm soát ra vào Sự kết hợp giữa thẻ thông minh và công nghệ xác thực vân tay là phương pháp hiệu quả nhất hiện nay để xác minh danh tính chủ thẻ, đặc biệt trong các lĩnh vực ngân hàng, thẻ căn cước và xuất nhập cảnh Ví dụ, tại sân bay, khi làm thủ tục hải quan, chủ thẻ chỉ cần đặt ngón tay đã đăng ký lên máy quét, và thông tin sẽ được phân tích trong vài giây, đảm bảo an toàn và bảo mật thông tin cá nhân hơn so với việc sử dụng mật khẩu hay chữ ký.
Hệ thống xác thực dấu vân tay hoạt động qua hai bước chính Đầu tiên, dấu vân tay của người dùng được quét và các đặc trưng của nó được trích xuất và lưu trữ trong cơ sở dữ liệu Khi cần xác thực, dấu vân tay của người dùng sẽ được so sánh với dữ liệu đã lưu, quá trình này tương tự như bước lấy mẫu ban đầu, đảm bảo độ chính xác và an toàn trong việc nhận diện người dùng.
Việc so sánh dấu vân tay hiện nay chủ yếu được thực hiện trực tuyến, với các mẫu vân tay được lưu trữ trên máy chủ Khi cần so sánh, dữ liệu vân tay sẽ được gửi lên máy chủ để tiến hành quá trình so sánh Cách thức triển khai cơ sở dữ liệu ảnh hưởng đến hiệu quả của việc so sánh này.
Hệ thống nhận dạng vân tay trực tuyến
Hệ thống xác nhận dấu vân tay trực tuyến (client/server) cho phép người sử dụng nhập vân tay thông qua đầu quét kết nối với máy tính Sau khi nhận dạng và mã hóa vân tay, dữ liệu sẽ được gửi đến máy chủ qua Internet/Intranet/Wan để so sánh với các mẫu vân tay đã lưu trữ.
Hình 1.11: Mô hình hệ thống xác thực dấu vân tay trực tuyến
Một số hạn chế khi triển khai hệ thống xác thực dấu vân tay tập trung :
Vấn đề tốc độ trong xác thực dấu vân tay là một thách thức lớn, đặc biệt khi hệ thống phải so sánh một dấu vân tay cần xác thực với hàng triệu mẫu khác (so sánh 1-n) Quá trình này yêu cầu thực hiện nhiều lần xác thực để định danh người sử dụng Đối với các hệ thống quy mô lớn, danh sách mẫu dấu vân tay trở nên rất lớn, dẫn đến thời gian so sánh kéo dài và làm giảm tốc độ hoạt động của hệ thống.
Khi thực hiện qua máy chủ, tính bảo mật trở nên quan trọng, yêu cầu đường truyền thời gian thực và môi trường mạng an toàn Điều này có nghĩa là thông tin người sử dụng có thể bị ảnh hưởng bởi các yếu tố từ môi trường mạng, đòi hỏi các biện pháp bảo vệ hiệu quả.
Hình 1.12: Mô hình minh họa hệ thống máy chấm công
Hình 1.12 là mô hình vé xe buýt sử dụng vé điện tử, thông tin người sử dụng lưu trữ trên hệ thống máy chủ
Tính cá nhân hóa là yếu tố quan trọng trong trải nghiệm người dùng, nhưng việc lưu trữ dấu vân tay của người sử dụng trên máy chủ tập trung dẫn đến việc dữ liệu không được cá nhân hóa.
Việc triển khai hệ thống đòi hỏi phải đảm bảo các yêu cầu về hạ tầng phần cứng, bao gồm hệ thống máy chủ và các đường truyền ổn định Do đó, quá trình này không chỉ khó khăn mà còn có thể tốn kém, đặc biệt khi quy mô của hệ thống lớn.
Việc bảo trì thường xuyên máy chủ và đường truyền thời gian thực là cần thiết để đảm bảo tính ổn định của hệ thống Tuy nhiên, điều này cũng tạo ra nhiều khó khăn và làm tăng chi phí trong quá trình phát triển hệ thống xác thực dấu vân tay online.
Để giải quyết các vấn đề liên quan đến lưu trữ và so sánh dấu vân tay, cần tìm ra những giải pháp hiệu quả nhằm loại bỏ và giảm thiểu rủi ro cũng như khó khăn hiện tại.
Hệ thống nhận dạng dấu vân tay trực tiếp trên thẻ thông minh
Để khắc phục những hạn chế và rủi ro trong việc triển khai hệ thống xác thực dấu vân tay trên máy chủ, giải pháp hiệu quả được đề xuất là hệ thống nhận dạng dấu vân tay trực tiếp trên thẻ, hay còn gọi là Match on Card (MoC).
Hình 1.13: Mô hình xác định dấu vân tay trên thẻ
Thẻ thông minh được trang bị chương trình lưu trữ và so sánh dấu vân tay, cho phép xác thực ngay trên thẻ thông minh thông qua hệ thống Match On Card (MoC) Mô hình này giúp khắc phục nhiều vấn đề tồn tại trong phương pháp xác thực dấu vân tay trực tuyến.
1.2.3.2 So sánh giữa hệ thống xác nhận dâu vân tay trên thẻ với hệ thống xác nhận dấu vân tay trực tuyến
Hệ thống xác nhận dấu vân tay online và trên thẻ đều có điểm tương đồng trong quy trình lấy mẫu và so sánh dữ liệu Cả hai hệ thống đều yêu cầu trích xuất dữ liệu dấu vân tay mẫu và dấu vân tay cần xác thực để lấy ra các đặc trưng trước khi lưu trữ Thuật toán so sánh giữa hai dấu vân tay cũng giống nhau, vì chúng đều thực hiện việc so sánh các đặc trưng đã được trích xuất từ dữ liệu dấu vân tay ban đầu.
Sự khác nhau cơ bản giữa hai hệ thống đƣợc đƣa ra trong bảng 1.1. Đặc điểm Hệ thống xác nhận dấu vân tay trực tuyến
Hệ thống xác nhận dấu vân tay trên thẻ
Lưu trữ dữ liệu Lưu tập trung trên máy chủ, kích thước dữ liệu lưu trữ lớn
Lưu trên thẻ, kích thước lưu trữ nhỏ
Thực hiện so sánh So sánh 1-n So sánh 1-1 Đường truyền, kết nối internet
Cần có đường truyền và kết nối internet để kiểm tra Không cần
Bảng 1.1: Sự khác nhau giữa hai hệ thống
1.2.3.3 Ưu nhược điểm của hệ thống xác nhận dấu vân tay trên thẻ
Hệ thống xác nhận dấu vân tay trên thẻ là giải pháp hiệu quả nhằm khắc phục những khó khăn và rủi ro khi sử dụng hệ thống xác nhận dấu vân tay trực tuyến trên máy chủ Sự khác biệt giữa hai hệ thống đã chỉ ra rằng nhiều vấn đề liên quan đến xác nhận dấu vân tay trực tuyến đã được giải quyết triệt để.
Việc xác thực dữ liệu vân tay chỉ cần so sánh với một mẫu vân tay đã được lưu trữ trên thẻ thông minh của chủ thẻ, giúp tăng tốc độ hệ thống đáng kể Quá trình này không chỉ rút ngắn thời gian xác thực mà còn giảm tải cho hệ thống, nâng cao hiệu quả hoạt động.
Hệ thống không yêu cầu máy chủ, đường truyền hay kết nối Internet, giúp giảm chi phí và dễ dàng triển khai quy mô lớn Số lượng người sử dụng là không giới hạn.
Vân tay của chủ thẻ được lưu trữ trực tiếp trên thẻ, không tập trung trên máy chủ, giúp tăng cường tính cá nhân hóa và bảo mật thông tin Điều này đảm bảo rằng thông tin luôn bên cạnh chủ thẻ, tôn trọng quyền riêng tư và nâng cao niềm tin của khách hàng.
Hệ thống này đảm bảo an toàn gần như tuyệt đối cho chủ thẻ, khi mà dữ liệu cá nhân được giữ lại bởi chính chủ thẻ Tính bảo mật thông tin người sử dụng được nâng cao rõ rệt so với việc lưu trữ trên máy chủ Việc so sánh và xác nhận dấu vân tay diễn ra độc lập, không thông qua máy chủ hay đường truyền nào khác, mà thực hiện trực tiếp trên thẻ.
Hệ thống này mang lại tính tiện lợi vượt trội, giúp chủ thẻ không cần phải nhớ mã PIN hay lo lắng về việc bị hack mật khẩu, vì dấu vân tay là đặc trưng duy nhất và an toàn.
Hệ thống lưu trữ dấu vân tay trên thẻ mang lại nhiều ưu điểm, nhưng cũng tồn tại một số nhược điểm như kích thước lưu trữ hạn chế và chỉ khả thi với thẻ vi xử lý.
THIẾT KẾ THUẬT TOÁN VÀ KIẾN TRÚC
Khái niệm cơ sở
2.1.1 Khối xử lý kít phát triển Raspberry Pi
Raspberry Pi là một máy tính nhỏ gọn, kích thước tương đương một thẻ ATM, được phát triển bởi Quỹ Raspberry Pi nhằm khuyến khích học tập khoa học máy tính trong các trường học.
Raspberry Pi được trang bị bộ xử lý SoC Broadcom BCM2835, một chip di động mạnh mẽ với kích thước nhỏ gọn, thường được sử dụng trong điện thoại di động Chip này tích hợp nhiều thành phần, bao gồm CPU, GPU, bộ xử lý âm thanh và video, cùng với các tính năng khác, tất cả đều hoạt động với mức tiêu thụ điện năng thấp.
Kít phát triển Raspberry Pi là một thiết bị đa năng với phần cứng giá rẻ, lý tưởng cho các hệ thống điện tử và dự án DIY Nó cung cấp giải pháp tuyệt vời cho việc thiết lập hệ thống tính toán tiết kiệm, phục vụ cho việc học lập trình trải nghiệm.
Hình 2.2: Phần cứng của kít phát triển Raspberry Pi[9]
CPU: 900MHz quad-core ARM Cortex-A7
Khe cắm Micro SD Card
Vì những lý do trên mà sự lựa chọn kit phát triển Raspberry Pi là phù hợp nhất cho bộ xử lý trung tâm.
2.1.2 Giao tiếp cảm biến vân tay với xử lý trung tâm Raspberry Pi
Cảm biến vân tay NEXT Biometrics NB-1010-S là sản phẩm chất lượng cao, được thiết kế để tích hợp vào các ứng dụng tùy chỉnh như thiết bị đầu cuối thời gian và điểm tham quan hoặc đầu đọc thẻ Sản phẩm này sử dụng chipset cảm biến trên mạch in nhỏ gọn và giao tiếp với kit phát triển thông qua giao thức giao tiếp tiên tiến.
Hình 2.3: Cảm biến vân tay NB-1010-S NB-1010-S sensor module đƣợc kết nối thông qua kết nối FFC (hình 2.4) và đƣợc các chân đƣợc định nghĩa ở bảng 2.1.
Bảng 2.1: Các chân của NB-1010-S sử dụng trong kết nối FFC.
Sensor NB-1010-S có thể vận hành với điện áp nguồn là 3.3V Bảng 2.2 thể hiện điện áp VA và VDD của sensor
Bảng 2.2: Dải điện áp nguồn.
2.1.3 Minutiae của dấu vân tay Các bước trích xuất dấu vân tay.
Dấu vân tay là những đặc điểm riêng biệt và duy nhất của mỗi cá nhân, với xác suất hai người, kể cả anh em sinh đôi, có cùng một bộ dấu vân tay chỉ là 1 trên 64 tỉ Mỗi ngón tay trên cùng một bàn tay cũng sở hữu vân tay khác nhau và chúng không thay đổi trong suốt cuộc đời Mặc dù có thể thực hiện phẫu thuật thay da ngón tay, nhưng dấu vân tay sẽ phục hồi về trạng thái ban đầu sau một thời gian.
Vân tay là những đường dạng dòng chảy trên ngón tay, là tham số sinh học đặc trưng cho mỗi cá thể và không thay đổi theo tuổi tác Cấu trúc vân tay bao gồm các vân lồi (đường gợn) và vân lõm (luống valley), trong đó vân lồi có màu tối và vân lõm có màu sáng Độ rộng của vân lồi dao động từ 100 đến 300 µm, trong khi độ rộng của mỗi cặp vân lõm cạnh nhau là 500 µm Các chấn thương như bỏng nhẹ hay mòn da không ảnh hưởng đến cấu trúc bên dưới của vân tay; khi da hồi phục, cấu trúc này sẽ được khôi phục nguyên vẹn Vân lồi và vân lõm thường chạy song song, có thể rẽ thành hai nhánh hoặc kết thúc.
Hình ảnh vân tay được biểu diễn dưới dạng bề mặt hai chiều, với ảnh vân tay cấp xám ký hiệu là I và giá trị cấp xám của điểm ảnh [x,y] được ký hiệu là I[x,y] Bề mặt rời rạc tương ứng với ảnh I được ký hiệu là S(x,y) = I[x,y] Bằng cách chọn các điểm sáng với cấp xám 0 và các điểm tối với cấp xám g-1, các đường vân tối trong ảnh I sẽ tương ứng với bề mặt vân lồi, trong khi khoảng không gian giữa các vân lồi (màu sáng) sẽ là bề mặt lõm, như thể hiện trong hình 2.6.
Hình 2.6: Bề mặt S của một vùng vân tay
Trên các vân tay, có những đặc điểm đặc trưng không trùng lặp, được phân thành hai loại chính: Singularity và Minutiae.
Singularity là những vùng trên vân tay có cấu trúc khác biệt so với các vùng khác, thường là các cấu trúc song song Có hai loại Singularity chính là Core và Delta, như được minh họa trong hình 2.7.
Hình 2.7: Điểm Core và Delta Điểm Core thường có một số dạng như sau(hình 2.8):
Hình 2.8: Một số loại Core thường gặp[2]
Khi phân tích từng đường vân, chúng ta sẽ nhận thấy có những điểm kết thúc (Ridge Ending) hoặc những điểm rẽ nhánh (Bifurcation), được gọi chung là các Minutiae Hình 2.9 minh họa rõ ràng các điểm Minutiae này.
Hình 2.9: Các điểm Minutiae Ridge Ending (điểm kết thúc) và Bifurcation (điểm rẽ nhánh)
Các thuật toán đã có
Có hai thuật toán nhận dạng vân tay thường được sử dụng là:
Thuật toán 1: Dựa vào các đặc tính cụ thể của dấu vân tay, nhƣ điểm cuối, điểm rẽ nhánh của các vân trên tay
Thuật toán 2: So sánh toàn bộ đặc tính của dấu vân tay
Thuật toán 2 bao gồm thuật toán 1, nhưng do đặc điểm riêng của vân tay và yêu cầu xây dựng hệ thống, các đặc điểm đặc trưng trên dấu vân tay đủ để nhận diện chính xác người sở hữu Luận văn này tập trung vào việc sử dụng thuật toán 1 để trích xuất điểm Minutiae nhằm nhận dạng vân tay hiệu quả.
Mô hình triển khai trên Raspberry Pi
Triển khai trích xuất vân tay trên kit phát triển Raspberry Pi bao gồm việc Raspberry Pi nhận ảnh từ cảm biến vân tay Sau khi nhận ảnh đầu vào, Raspberry Pi thực hiện tiền xử lý và phát hiện minutiae, tiếp theo là lọc bỏ minutiae giả để tạo ra tập minutiae chính xác.
Khối xử lý trung tâm Raspberry Pi Ảnh ĐẦU VÀO
Cảm biến vân tay TIỀN XỬ LÝ
Hình 2.10: Kiến trúc trích xuất vân tay
Khối tiền xử lý bao gồm năm bước chính: khoanh vùng ảnh, ước lượng trường định hướng, ước lượng tần số đường vân, tăng cường chất lượng ảnh và làm ảnh đường vân.
KHOANH VÙNG ẢNH ƯỚC LƯỢNG TRƯỜNG ĐỊNH HƯỚNG ƯỚC LƯỢNG TẦN SỐ ĐƯỜNG VÂN
TĂNG CƯỜNG CHẤT LƯỢNG ẢNH
LÀM MẢNH ĐƯỜNG VÂN Ảnh ĐẦU VÀO ẢNH ĐÃ LÀM MẢNH
Hình 2.11: Khối tiền xử lý.
Thuật toán
2.4.1 Giao tiếp SPI giữa cảm biến NB-1010-S với khối xử lý kít phát triển Raspberry
SPI (Serial Peripheral Bus) là một chuẩn truyền thông nối tiếp tốc độ cao được Motorola giới thiệu vào giữa những năm 1980, chủ yếu sử dụng trong các vi điều khiển của hãng Giao tiếp SPI hoạt động theo mô hình master-slave, trong đó một chip Master điều phối quá trình truyền thông và nhiều chip Slaves được điều khiển đồng thời Quá trình truyền và nhận dữ liệu có thể diễn ra song song SPI thường được gọi là chuẩn truyền thông “4 dây” vì nó bao gồm 4 đường giao tiếp: SCK (Serial Clock), MISO (Master Input Slave Output), MOSI (Master Output Slave Input) và SS (Slave Select).
Hình 2.12: Giao diện bốn – dây SPI
Kết nối SPI giữa chip Master và 3 chip Slave thông qua 4 đường.
MISO, which stands for Master Input/Slave Output, functions differently depending on the chip type; for a Master chip, it serves as the Input, while for a Slave chip, it acts as the Output The MISO connections of the Master and Slave chips are directly linked together.
MOSI (Master Output / Slave Input) là đường truyền dữ liệu giữa chip Master và chip Slave trong hệ thống Nếu chip hoạt động ở chế độ Master, MOSI sẽ là đường Output, trong khi đó, nếu chip là Slave, MOSI sẽ đóng vai trò là Input Đường MOSI của Master được kết nối trực tiếp với các chip Slave để truyền tải thông tin.
SCK đóng vai trò quan trọng trong giao tiếp SPI, vì SPI là chuẩn truyền đồng bộ cần một đường giữ nhịp để báo hiệu truyền dữ liệu Khác với truyền thông không đồng bộ, sự hiện diện của chân SCK giúp giảm thiểu lỗi trong quá trình truyền, cho phép tốc độ truyền của SPI đạt mức cao Xung nhịp chỉ được tạo ra bởi chip Master.
Hình 2.14: Hình ảnh trực quan của màn hình cảm biến là 256 columns và 1
Kích thước của cảm biến 80 rows(được thể hiện ở hình 2.13) Cảm biến được quét theo hàng và các điểm được lưu trữu trong bộ đệm của cảm biến
Hình 2.14 và hình 2.15 thể hiện giao tiếp vật lý SPI và cài đặt đường truyền SPI.
Hình 2.15: Giao tiếp vật lý SPI
Hình 2.16: Cài đặt đường truyền SPI.
Cảm biến vân tay NB-1010-S giao tiếp với bộ xử lý của kit phát triển Raspberry Pi thông qua giao thức SPI Để hoạt động hiệu quả, kit phát triển cần gửi yêu cầu và nhận phản hồi từ cảm biến, đảm bảo quá trình truyền dữ liệu diễn ra suôn sẻ.
Cấu trúc yêu cầu: bao gồm 5 trường INS, P1, P2, LE , DATA được thể hiện ở N hình 2.16
Hình 2.17: Cấu trúc yêu cầu
Cấu trúc phản hồi trong tiến trình hoạt động bình thường thường được thể hiện theo hình 2.17, trong khi đó, nếu tiến trình gặp lỗi, cấu trúc sẽ được mô tả theo hình 2.18.
Hình 2.18: Cấu trúc phản hồi khi tiến trình hoạt động bình thường
Hình 2.19:Cấu trúc phản hồi khi tiến trình bị lỗi.
Bảng 2.3 thể hiện các câu lệnh yêu cầu đƣợc nhà sản xuất cung cấp.
Command Instruction Data sent in Bytes (dec)
Bảng 2.3: Bảng yêu cầu do nhà sản xuất cung cấp.
Bảng 2.4 thể hiện khi tiến trình bị lỗi ý nghĩa của byte phản hồi.
0x10 Error in the parameter fields
0x12 Error in the data field
0x31 Conditions of use not satisfied (operation mode)
Bảng 2.4: Bảng thông số trả về khi có lỗi
Trong luận văn chủ yếu sử dụng yêu cầu GET LINE và FINGER PRESENT
Cấu trúc lệnh GET LINE
Cấu trúc lệnh yêu cầu GET LINE đƣợc thể hiện ở bảng 2.5
Bảng 2.5: Cấu trúc lệnh yêu cầu GET LINE
Bảng 2.6 thể hiện thông số tham số P1 trong lệnh yêu cầu GET LINE.
Bảng 2.6: Thông số tham số P1 của lệnh yêu cầu GET LINE.
Tham số P2 chạy từ 0x00 đến 0xB3.
Câu lệnh đầu tiên sẽ đƣợc phản hồi lại là trạng thái bận (0xB0)(bảng 2.7)
Bảng 2.7: Cấu trúc phản hội đầu tiên của GET LINE
Quá trình quét dòng và ghi vào bộ đệm được khởi động bởi M0 Khi dữ liệu cột đã sẵn sàng, trạng thái sẵn sàng (0x01) sẽ được phản hồi lại, như thể hiện trong bảng 2.8.
Bảng 2.8: Cấu trúc phản hồi trả về khi hoàn thành quét xong dữ liệu.
Quá trình quét ảnh trên cảm biến đƣợc thể hiện ở hình 2.19
Hình 2.19: Trình tự của GET LINE.
Cấu trúc yêu cầu FINGER PRESENT đƣợc thể hiện ở bảng 2.9
Bảng 2.9: Cấu trúc yêu cầu FINGER PRESENT.
P1 = 0x00: thiết lập cở sở cho sự phát hiện nhận diện
P1 = 0x01: xác định sự nhận diện của ngón tay so với thiết lập cơ sở(bảng 2.10)
Bảng 2.10: Cấu trúc phản hồi của FINGER PRESENT.
Câu lệnh FINGER PRESENT trả về một byte trạng thái (0x01 cho tiến trình thông thường) cùng với biến kết quả đánh giá ngón tay hiện tại.
Giá trị cảm biến phụ thuộc vào lượng vật liệu điện dung tiếp xúc với bề mặt Thông thường, giá trị lớn hơn 40-50 thập phân (0x28 đến 0x32) cho thấy ngón tay đang tiếp xúc mạnh mẽ với cảm biến Để đảm bảo toàn bộ khu vực cảm biến được tiếp xúc, giá trị từ 70-90 thập phân (0x46 đến 0x5A) nên được sử dụng, giúp quá trình quét đạt chất lượng vân tay tốt nhất.
2.4.1.3 Thuật toán quét vân tay trên cảm biến.
Đầu tiên, người dùng cần đặt tay lên cảm biến, sau đó cảm biến sẽ kiểm tra điểm tiếp xúc và trả về một biến score Nếu score lớn hơn 70, chất lượng ảnh được coi là tốt; nếu không, người dùng sẽ được yêu cầu đặt lại ngón tay Khi score đạt yêu cầu, quá trình quét Get Line sẽ được thực hiện, tạo ra một mảng hai chiều các điểm ảnh được gửi đến bộ xử lý trung tâm qua giao tiếp SPI Sau đó, hệ thống sẽ quay lại bước bắt đầu để chờ người dùng đặt ngón tay lần nữa.
Cảm biến thực hiện FINGER PRESENT
Xử lý trung tâm Raspberry Pi
Thực hiện quét vân tay GET LINE
Kiểm tra Điểm tiếp xúc Core>70 Đặt ngón tay sai đúng
Giao tiếp SPI Đầu ra là mảng 2 chiều các điểm ảnh
Quay trỏ về chờ đặt ngón tay
Hình 2.20: Thuật toán quét ảnh trên cảm biến
2.4.2 Trích xuất ảnh vân tay
Nhận dạng vân tay là quá trình so sánh các đặc trưng của mẫu vân tay Một bước quan trọng trong quá trình này là trích xuất các đặc trưng một cách tự động và chính xác, điều này thường gặp nhiều khó khăn Quy trình trích xuất vân tay bao gồm ba bước cơ bản.
3) Lọc bỏ minutiae giả ẢNH ĐẦU VÀO TIỀN
Hình 2.21: Sơ đồ khối trích xuất đặc trƣng vân tay
Bước tiền xử lý sử dụng ảnh vân tay (ảnh màu hoặc ảnh xám) nhằm tạo ra đầu ra cho việc phát hiện minutia Các phương pháp phát hiện minutia thường dựa trên ảnh xám hoặc ảnh đã được làm mảnh (thinned – pixel) Tuy nhiên, do những hạn chế của ảnh xám, phương pháp phát hiện minutia thường áp dụng trên ảnh thinned Quy trình này bao gồm các bước như: ẢNH ĐẦU VÀO, KHOANH VÙNG, ẢNH ỚC LƢỢNG, TRƯỜNG ĐỊNH HƯỚNG ỚC LƢỢNG, và TẦN SỐ ĐƯỜNG VÂN.
TĂNG CƯỜNG CHẤT LƢỢNG ẢNH
LÀM MẢNH ĐƯỜNG VÂN ẢNH ĐÃ
Hình 2.22: Sơ đồ khối các bước tiền sử lý
Ước lượng trường định hướng (Orientation)
Tăng cường chất lượng ảnh (Enhancement) và
Quá trình làm mảnh đường vân (Thinning) là bước quan trọng trong tiền xử lý ảnh, nhằm tạo ra ảnh thinned với độ rộng đường vân chỉ còn 1 pixel Chức năng của từng khối trong quy trình này sẽ được trình bày chi tiết trong các phần sau.
Khoanh vùng ảnh vân tay nhằm phân chia các khu vực khác nhau trên bề mặt vân tay, bao gồm vùng chứa đường vân (foreground) và vùng không chứa đường vân (background) Vùng foreground chứa thông tin quan trọng được giới hạn bởi các đường vân, trong khi vùng background thường là các nhiễu phát sinh trong quá trình thu nhận, sao chép và lưu trữ ảnh Việc tách biệt hai vùng này là cần thiết để nâng cao độ chính xác trong nhận dạng vân tay.
Kết luận chương
Chương này trình bày thiết kế thuật toán và kiến trúc triết xuất ảnh vân tay, cung cấp các khái niệm cơ sở về khối xử lý trung tâm, quá trình giao tiếp và minutiae đặc trưng của vân tay Đồng thời, chương cũng nêu rõ kiến trúc đề xuất và thuật toán, tạo nền tảng cho chương 3: Triển khai và thực hiện.
TRIỂN KHAI VÀ THỰC NGHIỆM
Cấu trúc dữ liệu
3.1.1 Khối quét ảnh vân tay
3.1.1.1 Khối kiểm tra điểm tiếp xúc ngón tay
KIỂM TRA ĐIỂM TIẾP XÚC NGÓN TAY
Ngón tay Điểm score tiếp xúc
Hình 3.1: Khối kiểm tra điểm tiếp xúc ngón tay
Đầu vào: Ngón tay đặt trên cảm biến
Đầu ra: điểm score tiếp xúc của ngón tay trên cảm biến Là một số thập phân có giá trị lớn hơn 0
3.1.1.2 Khối quét ảnh vân tay
VÂN TAY Đúng hay sai Mảng chiều 2 các điểm ảnh
Hình3.2: Khối quét ảnh vân tay.
Đầu vào: Tín hiệu đúng (True = 1)
Đầu ra: là một mảng 2 chiều bao gồm giá trị điểm ảnh (0-255)
3.1.2 Khối triết xuất vân tay trên Raspberry Pi(hình 3.3)
Khối trích xuất vân tay
Mảng chiều 2 các điểm ảnh
File bin lưu các đặc trưng
Hình 3.3: Khối triết xuất ảnh
Đầu vào: Là một mảng 2 chiều các điểm ảnh có giá trị từ 0-255
Đầu ra: Một file.bin chứa các đặc trưng điểm ảnh minutiae, thường có kích thước 104 byte.
Mã nguồn
3.2.1 Khối quét ảnh vân tay
Để lập trình ngôn ngữ C trên kít phát triển Raspberry Pi, trước tiên cần sử dụng bộ thư viện bcm2835 Bộ thư viện này cung cấp đầy đủ các hàm cần thiết cho giao tiếp SPI giữa cảm biến vân tay và Raspberry Pi Từ bộ thư viện bcm2835, các thư viện kết nối giữa kít phát triển và cảm biến đã được xây dựng thành công.
Thƣ viện Pi.h đây là bộ thƣ viện bao gồm các cài đặt ban đầu(phụ lục):
void BSP_Config_HW (void); cấu hình tất cả các thành phần phần cứng
void BSP_Module_Configure (void); hàm nay cấu hình chân GPIO, chân nRST điều khiển.
void BSP_Configure (void); cấu hình giao thức SPI
void BSP_SPI_ReadWriteBuffer (uint8_t* txBuff, uint8_t* rxBuff, uint16_t length); hàm này thực hiện hai chiều SPI đọc/ghi
void BSP_Delay_ms(unit16_t millis); hàm delay với delay đơn vị là ms
void BSP_Module_nRST_High (void); hàm này cài đặt chân nRST lên mức cao.
void BSP_Moudule_nRST_Low(void); hàm này cài đặt chân nRST xuống mức thấp
Thƣ viện User.h là bộ thƣ viện xây dựng kết nối lấy dữ liệu cảm biến(phụ lục)
uint8_t NEXT_Module_Connect (NEXT_MODULE_t module); hàm thông báo trả về việc kết nối thành công hoặc có lỗi xảy ra.
uint8_t NEXT_Module_Disconnect(NEXT_MODULE* module); hàm này thông báo trả về là ngắt kết nối thành công hay có lỗi gì xảy ra
uint8_t NEXT_Module_ScanImage(NEXT_MODULE_t * module); hàm thông báo quét ảnh.
The function `unit8_t NEXT_Module_FingerPresent(NEXT_MODULE_t module, uint8_t* data, bool sense_finger)` returns a notification after checking the contact point of the finger, with the resulting score provided in the `data` parameter.
Bộ mã nguồn NIST Biometric Open Source cung cấp các thư viện quan trọng cho việc xử lý ảnh và trích xuất ảnh vân tay Những thư viện này rất hữu ích cho việc triết xuất ảnh, giúp nâng cao hiệu quả trong các ứng dụng sinh trắc học.
Trong thư viện lfs.h cung cấp hàm(phụ lục):
extern int get_minutiae(MINUTIAE **ominutiae, int **oquality_map,int
**odirection_map, int **olow_contrast_map,int **olow_flow_map, int
**ohigh_curve_map,int *omap_w, int *omap_h,unsigned char **obdata, int *obw, int
The function processes input parameters, including pointers to grayscale image data and dimensions, to extract minutiae features It takes in image width, height, depth, and a resolution value in pixels per millimeter, along with specific LFS parameters The output comprises distinct minutiae characteristics derived from the provided image data.
Xây dựng thêm thư viện extract.h bao gồm:
int sort_minutiae_quality (MINUTIAE *minutiae); sắp xếp các minutiae theo chất lƣợng ảnh.
char extract(int boostflag, int m1flag, Fingerprint* finger); hàm này trích xuất vân tay và lưu vào cấu trúc finger.
Biên dịch và chạy thử
Mạch nguyên lý đƣợc thể hiện ở hình 3.4:
Mạch in 2D và 3D thể hiện ở hình 3.5, hình 3.6:
Các bước biên dịch trên mã nguồn mở:
Mở terminal của hệ điều hành Raspbian trên RPi trong thƣ mục của mã nguồn(hình 3.7 ).
Hình 3.7: Bật Terminal trên Raspberry Pi
Thực hiện gõ lệnh sau trên terminal
$ sh setup.sh [dir] without-– X11
File thực thi của các package sẽ đƣợc tạo ra ở trong các thƣ mục bin của mỗi pạckage(hình 3.10)
Hình 3.10: File exe đƣợc tạo ra tron thƣ mục bin.
Chạy thử đươc thực hiện từ hình 3.11 đến hình 3.15
Hình 3.12: Đang chạy file extractMoC.
Hình 3.13: Đang chạy trên mạch.
Hình 3.14: Kết thúc quá trình trên mạch.
Hình 3.15: Kết thúc quá trình trên Raspberry Pi.
Hình ảnh vân tay thu đƣợc từ cảm biếncó chất lƣợng khá tốt(hình 3.16).
Hình 3.16: Hình ảnh vân tay thu đƣợc từ cảm biến
Hình 3.17 là thể hiện nội dụng trong file bin khi thực hiện extractMoC.
Hình 3.17: Đầu ra của khối trích xuất.
Thử nghiệm khóa cửa bằng vân tay
Sau một thời gian nghiên cứu và lắp ráp, chúng tôi đã hoàn thiện bộ khóa cửa vân tay nhỏ gọn, hiện đang sử dụng cho phòng thiết bị tại LAB EDABK Bộ thiết bị này được tích hợp các thành phần chính, mang lại hiệu quả và tiện lợi trong việc bảo vệ an toàn cho không gian làm việc.
Cảm biến vân tay NS 10 10 đƣợc tích hợp vào bộ thiết kết nối với bộ Raspberry
Pi qua các chân GPIO sử dụng giao tiếp SPI
Màn hình hiển thị LCD được kết nối với Raspberry Pi thông qua các chân GPIO, có chức năng hiển thị thông báo dưới dạng văn bản về kết quả xác thực mở khóa cửa phòng bằng vân tay.
Bộ tích hợp Raspberry Pi nhƣ đƣợc mô tả ở phần trên
Thiết bị khóa cửa sử dụng điện áp 12 kết nối với Raspberry Pi qua các chân GPIO
Hình ảnh bộ thiết bị khóa cửa sau khi hoàn thiện:
Hình 3.18: Bộ thiết bị khóa bằng vân tay
Kết luận chương
Trong chương này, chúng tôi đã triển khai và thực nghiệm các lý thuyết từ chương 2 Đồng thời, việc biên dịch và chạy thử cũng đã được thực hiện thành công Kết quả thời gian đo được khi chạy file extractMoC trong 10 lần (bảng 3.1) cho thấy hiệu suất đáng kể.
Bảng 3.1: Kết quả đo đƣợc khi thực hiện file extractMoC trong 10 lần.
Từ kết quả đo trên nhận thấy rằng thời gian chạy rất nhanh.Kích thước của file extractMoC là 167.2KiB(171,233bytes)
Luận văn đã thu được một số kết quả nhất định và có hướng phát triển mới cho hệ thống nhƣ sau:
Kết quả đề tài thu đƣợc:
Luận văn này trình bày lịch sử phát triển lâu dài của công nghệ nhận dạng vân tay, đồng thời phân tích cơ sở khoa học và hiệu quả của việc áp dụng công nghệ này trong nhiều lĩnh vực của đời sống Việc sử dụng nhận dạng vân tay không chỉ mang lại độ chính xác cao trong việc xác thực danh tính mà còn góp phần nâng cao an ninh và tiện ích trong các ứng dụng thực tiễn.
Luận văn đã cung cấp cái nhìn tổng quan về công nghệ sinh trắc học nhận dạng vân tay, đồng thời liệt kê và so sánh những ưu nhược điểm của phương pháp này với các phương pháp sinh trắc học khác Bài viết cũng nhấn mạnh giá trị ứng dụng thực tế và phạm vi triển khai rộng rãi của các hệ thống sinh trắc học nhận dạng vân tay trong đời sống hàng ngày.
Xây dựng các khối thuật toán và triển khai thành công khối thiết bị phần cứng trích xuất vân tay trên kít phát triển Raspberry Pi.
Xử lý ảnh từ cảm biến vân tay là bước quan trọng để tạo ra tập Minutiae, phục vụ cho việc lưu trữ vào cơ sở dữ liệu hoặc để so sánh vân tay.
Nghiên cứu các lý thuyết, phương pháp xử lý ảnh đầu vào để tạo ra tập Minutiae có chất lƣợng tốt nhất dùng để đối sánh
Đã hoàn thiện và tối ƣu hóa đƣợc soure code lập trình trích xuất vân trên Raspherry Pi
Dựa trên lý thuyết và việc thu thập thiết bị cần thiết, tác giả và nhóm nghiên cứu đã thiết kế và lắp ráp bộ khóa vân tay, thử nghiệm khối trích xuất ảnh trên Raspberry Pi Bộ thiết bị bao gồm cảm biến vân tay NEXT Biometrics NB-1010-S, FFC Connector, Raspberry Pi, màn hình LCD và các thiết bị phụ trợ Hiện tại, bộ thiết bị đã hoàn thành giai đoạn thử nghiệm và chính thức được sử dụng làm bộ khóa vân tay hoàn chỉnh tại phòng thiết bị của LAB EDBK.
Hướng phát triển của đề tài:
Do thời gian và điều kiện cá nhân hạn chế, luận văn này tập trung nghiên cứu thiết kế và thử nghiệm hệ thống xác thực người dùng sử dụng công nghệ nhận dạng vân tay trên thẻ Nghiên cứu sẽ đi sâu vào lý thuyết nhận dạng vân tay, triển khai thuật toán và kiến trúc hệ thống trên Raspberry Pi, cùng với các phương pháp xử lý ảnh để tối ưu hóa minutiae Những nghiên cứu tiếp theo có thể được triển khai theo nhiều hướng khác nhau nhằm nâng cao hiệu quả và tính ứng dụng của hệ thống.
Đây là cơ sở để phát tri n h th ng nh n d ng vân tay ể ệ ố ậ ạ – MoC để đi đến hoàn thi n h ệ ệthống.
Xây d ng m t công c (tool ph n m m ho c website) qu n tr ự ộ ụ ầ ề ặ ả ị quyền truy c p, qu n lý v t truy c p h ậ ả ế ậ ệthống
[1] H.C Lee and R.E Gaensslen, Advances in Fingerprint Technology
[2] D Maltoni, D Maio, A Jain, and S Prabhakar, Handbook of
Fingerprint Recognition New York: Springer, pp 103-106, 112, 121,
[3] Hong, Wan and Jain (1998) Hong L., Wan Y and Jain A.K., “Fingerprint image enhancement: Algorithms and performance evaluation,” IEEE Transactions on Pattern Analysis Machine Intelligence, vol 20, no 8, pp 777 789, 1998 –
[4]http://www.vtc.vn/bao-mat-thong- -the-atm- -tin an toan-nhat-bang-van-tay- d32120.html, truy c p l n cu i cùng ngày 09/04/2018 ậ ầ ố
[5] http://thanhnien.vn/cong-nghe/cam-bien-van-tay-tren-iphone- -cham-chap-nhu-se iphone-5s-683968.html, truy c p l n cu i cùng ngày 09/04/2018 ậ ầ ố
[6] https://www.vietinbank.vn/web/home/vn/san-pham-moi/12/phat-hanh-the-thong- minh-emv-cremium.html, truy c p l n cu i cùng ngày 09/04/2018 ậ ầ ố
[7] https://vi.wikipedia.org/wiki/Th%E1%BA%BB_th%C3%B4ng_minh, truy c p l n ậ ầ cuối cùng ngày 09/04/2018
Nghiên cứu của Trần Mạnh Hoàng, Dương Tấn Nghĩa và Đặng Quang Hiếu về hệ thống xác thực vân tay trên thiết bị thông minh đã được trình bày trong đề tài NCKH&CN cấp trường tại ĐH Bách Khoa năm 2016 Công trình này tập trung vào việc phát triển công nghệ xác thực sinh trắc học nhằm nâng cao tính bảo mật và tiện lợi cho người dùng.
[9] http://raspberrypi.vn/tin-tuc/raspberry-pi- -gi-gioi-la thieu ve- -raspberry-pi-261.pi, truy c p l n cu i cùng ngày 09/04/2018 ậ ầ ố
[10] http://www.hocavr.com/index.php/lectures/spi, truy c p l n cu i cùng ngày ậ ầ ố 09/04/2018
[11] http://www.tinyosshop.com/index.php?route=product/product&product_idr1, truy c p l n cu i cùng ngày 09/04/2018 ậ ầ ố
B ẢNG ĐỐ I CHI U THU T NG Ế Ậ Ữ VI Ệ T ANH
Physiological Vật lý behavioral Hành vi
Singularity Các điểm dị biệt
Minutiae Các điểm đặc trƣng
Biometric Công nghệ sinh trắc học
#define PIN_MISO RPI_BPLUS_GPIO_J8_21
#define PIN_MOSI RPI_BPLUS_GPIO_J8_19
#define PIN_SCK RPI_BPLUS_GPIO_J8_23
#define PIN_SS RPI_BPLUS_GPIO_J8_24
//Macro for setting and clearing the SS pin
#define SS RPI_BPLUS_GPIO_J8_24 // CE0
#define BSP_SET_SS bcm2835_gpio_write(SS, HIGH); //active SS
#define BSP_CLEAR_SS bcm2835_gpio_write(SS, LOW);
//Macro for setting and clearing the module nRST pin
#define PIN_RESET RPI_BPLUS_GPIO_J8_15
#define MODULE_RESET_LOW bcm2835_gpio_write(PIN_RESET, LOW);
#define MODULE_RESET_HIGH bcm2835_gpio_write(PIN_RESET, HIGH);
The article outlines several function prototypes essential for hardware configuration and control in a system Key functions include BSP_Config_HW for setting up hardware, BSP_Module_Reset_Configure for module reset settings, and BSP_SPI_Configure for SPI communication configuration Additionally, BSP_SPI_ReadWriteBuffer facilitates data transfer, while BSP_Delay_ms and BSP_Delay_us provide timing delays in milliseconds and microseconds, respectively The functions BSP_Module_nRST_High and BSP_Module_nRST_Low are used to control the reset state of the module, and BSP_Module_Wake is designed to wake the module from a low-power state.
#include void BSP_Config_HW ( void ){ bcm2835_init();
} void BSP_Module_Reset_Configure( void ){ bcm2835_gpio_fsel PIN_RESET ( , BCM2835_GPIO_FSEL_OUTP );
To configure the BSP SPI, the `BSP_SPI_Configure` function is utilized, which initializes the SPI interface using `bcm2835_spi_begin()` The bit order is set to MSB first using `bcm2835_spi_setBitOrder(BCM2835_SPI_BIT_ORDER_MSBFIRST)`, while the data mode is configured to mode 0, where CPOL equals 0 and CPHA equals 0, via `bcm2835_spi_setDataMode(BCM2835_SPI_MODE0)` Additionally, the clock divider is set to 32, resulting in a clock period of 128ns, using `bcm2835_spi_setClockDivider(BCM2835_SPI_CLOCK_DIVIDER_32)`.
The BCM2835 SPI interface operates at a frequency of 7.8125 MHz, with the default chip select set to BCM2835_SPI_CS0 and its polarity configured to LOW The function BSP_SPI_ReadWriteBuffer facilitates data transfer by utilizing the bcm2835_spi_transfernb function, allowing for simultaneous reading and writing of data between the transmit buffer (txBuff) and the receive buffer (rxBuff) for a specified length.
} void BSP_Delay_ms(uint16_t millis){ bcm2835_delay(millis);
} void BSP_Delay_us(uint64_t micros){ bcm2835_delayMicroseconds(micros);
} void BSP_Module_nRST_High(void){
} void BSP_Module_nRST_Low(void){
#define PARTIAL_NUMBER_OF_COLUMNS 128
#define PARTIAL_NUMBER_OF_ROWS 90
#define SCAN_OR_PARTIAL_IMAGE_US_DELAY 500
#define SCAN_IMAGE_INITIAL_DELAY 15
#define PARTIAL_IMAGE_INITIAL_DELAY 5
#define DUMMY_DATA 0xC0 #define CONNECT_DIAGNOSTIC_STRING_SIZE 8
#define CONNECT_DIAGNOSTIC_RESPONSE_SIZE 9
//////////Normal Processing Codes/////////////// #define BUSY 0xB0 #define READY 0x01
/////////////Module Error Codes//////////////// #define NO_ERROR 0x00
#define ERR_MOD_PARAM_FIELD 0x10 //Error in parameter fields
#define ERR_MOD_DATA_LENGTH 0x11 //Data length error
#define ERR_MOD_DATA_FIELD 0x12 //Error in the data field
#define ERR_MOD_UNKNOWN_COMMAND 0x30 //Unknown command
#define ERR_MOD_OP_MODE 0x31 //Conditions of use not satisfied
#define ERR_MOD_COM 0x32 //Communications error
#define ERR_MOD_SENSOR_FAIL 0x33 //Sensor hardware failure
#define ERR_MOD_DCA 0x34 //DCA internal error
#define ERR_MOD_MCU 0x35 //MCU internal error
#define ERR_API_SPI_CMD_STAGE 0xCC
#define ERR_API_SPI_DATA_STAGE 0XAA
#define ERR_API_SPI_RES_STAGE 0xBB
#define ERR_API_MODULE_CONNECT 0x40
#define ERR_API_UNKNOWN_COMMAND 0x03
#define ERR_API_MODULE_STOPPED 0x50
//////////////Instruction Codes///////////////// #define INS_GET_LINE 0x10
#define INS_SET_MO_STOP 0x83
#define INS_GET_FIMRWARE_VER 0xF5
/////////////////////////////////////////////// typedef struct { uint8_t Column[256]; //A row is 256 columns of 8 bit pixels -
ROW_t Row[180]; //An image is 180 rows of 256 columns Total 46080 pixels
The NEXT_SENSOR_IMAGE_t structure includes key attributes for module status and identification It features a boolean field indicating if the module is powered and has successfully completed an SPI handshake Another boolean indicates if the module is in stop mode, while additional fields store the firmware version and the serial number of the MCU, ensuring clear tracking and management of the device's operational state.
NEXT_SENSOR_IMAGE_t image; //Module image
The NEXT_Module library provides several functions for interacting with a NEXT_MODULE_t structure Key functions include NEXT_Module_ScanImage for image scanning, NEXT_Module_FingerPresent to check for finger presence, and NEXT_Module_SPI_Command for sending SPI commands Additionally, NEXT_Module_SPI_Data handles the transmission of SPI data, while NEXT_Module_SPI_Response retrieves the response from the SPI interface These functions facilitate efficient communication and processing within the NEXT module framework.
#include uint8_t NEXT_Module_ScanImage NEXT_MODULE_t ( * module uint8_t data1 , [46080]) { uint16_t col = ; 0 uint8_t row = ; 0 uint8_t Row_Counter = ; 0 uint8_t error;
FILE file * ; file = fopen ("image.txt" "w" , ); uint8_t Row_Data NUMBER_OF_COLUMNS [ ]; for(Row_Counter = ; 0 Row_Counter NUMBER_OF_ROWS Row_Counter++) < ;
{//Intermediate Get_Line switch(Row_Counter)
{ case0: error = NEXT_Module_SPI_Command INS_GET_LINE ( , P1_FIRST_LINE ,
BSP_Delay_ms SCAN_IMAGE_INITIAL_DELAY ( ); break; case(NUMBER_OF_ROWS-1): error = NEXT_Module_SPI_Command INS_GET_LINE ( , P1_LAST_LINE ,
0x00);//Last Get_Line break; default: error = NEXT_Module_SPI_Command INS_GET_LINE ( ,
BSP_Delay_us SCAN_OR_PARTIAL_IMAGE_US_DELAY ( ); error = NEXT_Module_SPI_Response(Row_Data, NUMBER_OF_COLUMNS, SCAN_OR_PARTIAL_IMAGE_US_DELAY); if (!error)
//Populate image structure with buffer data for (col = 0; col < NUMBER_OF_COLUMNS; col++)
{ fprintf(file,"%d t",Row_Data[col]); \ data1[col+256*Row_Counter]=Row_Data[col];
//module >image >Row[row].Column[col]=Row_Data[col]; - - //printf("%d t",data[row][col]); \
BSP_Delay_us(SCAN_OR_PARTIAL_IMAGE_US_DELAY);
} uint8_t NEXT_Module_FingerPresent(NEXT_MODULE_t* module, uint8_t* data, bool sense_finger) { uint8_t error = NEXT_Module_SPI_Command(INS_FINGER_PRESENT, sense_finger, 0x00, 0x00);
BSP_Delay_ms(10); if (!error)
{ error = NEXT_Module_SPI_Response(data, 1, 1000);
} uint8_t NEXT_Module_SPI_Command(uint8_t INS, uint8_t P1, uint8_t P2, uint8_t LEN){ uint8_t SPI_Tx[4] = {INS,P1,P2,LEN}; uint8_t SPI_Rx[4]; uint8_t i;
The function BSP_SPI_ReadWriteBuffer(SPI_Tx, SPI_Rx, 4) is used to communicate via SPI, transmitting and receiving a buffer of 4 bytes A loop checks each byte in the SPI_Rx array, and if any byte does not equal 0xCC, the function returns an error code ERR_API_SPI_CMD_STAGE, indicating that the module has not correctly entered the Command Stage.
} uint8_t NEXT_Module_SPI_Data(uint8_t* data, uint8_t data_len){ uint8_t SPI_Rx[255]; uint8_t i;
The function BSP_SPI_ReadWriteBuffer is utilized to read and write data through the SPI interface It checks if the received data matches the expected value of 0xAA, which indicates that the module is correctly in the Data Stage If the received data does not match, the function returns an error code, ERR_API_SPI_DATA_STAGE, signaling a communication issue.
} uint8_t NEXT_Module_SPI_Response(void* RES_data, uint16_t Length, uint16_t us_interval ){ uint8_t Status = BUSY; uint8_t Check = DUMMY_DATA; uint8_t Tx[Length]; uint16_t i; uint32_t Busy_Count = 0; for(i=0;i