Hand Geometry Recognition with Matlab

Embed Size (px)

Citation preview

  • 8/18/2019 Hand Geometry Recognition with Matlab

    1/53

    - i -

    Mục lục:

    Danh mục hình vẽ:....................................................................................................... iii 

    Lời nói đầu .....................................................................................................................v 

    Chương 1: Giới thiệu.....................................................................................................1 

    Chương 2: Tổng quan về nhận dạng bàn tay..............................................................4 

    2.1.Một số kết quả và ứng dụng của bài toán nhận dạng bàn tay từ ảnh số...............4 

    2.2.Những khó khăn của bài toán nhận dạng bàn tay.................................................6  

    Chương 3: Cơ sở lý thuyết về nhận dạng bàn tay từ ảnh số .....................................8 

    3.1. Đại cương về ảnh số và xử lý ảnh số bằng Matlab ..............................................8 3.1.1. Ảnh số............................................................................................................8 3.1.2.Xử lý ảnh số sử dụng Matlab..........................................................................9 

    3.2.Cơ sở lý thuyết nhận dạng bàn tay ........................................................................9 3.2.1.Nhận dạng bàn tay dựa trên các đặc tính hình học:......................................10 

    3.2.2.Nhận dạng bàn tay dựa trên các đặc tính của vân bàn tay: ..........................11 3.3.Mô hình đề xuất ...................................................................................................11 

    Chương 4: Phân tích và thiết kế hệ thống nhận dạng bàn tay sử dụng công cụ

    Matlab...........................................................................................................................13 

    4.1.Bộ thu thập mẫu ảnh bàn tay...............................................................................13 

    4.2.Tiền xử lý .............................................................................................................15 

    4.2.1.Phân vùng ảnh ..............................................................................................15 4.2.2.Tìm các điểm đặc biệt...................................................................................18 4.2.3.Dời ảnh và quay ảnh.....................................................................................18 4.2.4.Loại bỏ phần cổ tay và tiến hành chuẩn hóa ................................................23 

    4.3.Trích chọn đặc tính..............................................................................................25 4.3.1.Phương pháp PCA ( Principal Component Analysis) ...................................25 4.3.2.Phương pháp ICA ( Independent Component Analysis) ...............................28 4.3.3.Phương pháp ART ( Axial Radial Transform)..............................................30 

    4.4.Nhận dạng............................................................................................................31 

  • 8/18/2019 Hand Geometry Recognition with Matlab

    2/53

    - ii -

    Chương 5: Kết quả triển khai ....................................................................................33 

    5.1.Bộ thu thập mẫu ảnh bàn tay và cơ sở dữ liệu....................................................33 5.1.1.Bộ thu thập mẫu ảnh.....................................................................................33 5.1.2.Cơ sở dữ liệu.................................................................................................35 

    5.2.Khối tiền xử lý......................................................................................................35 5.2.1.Phân vùng ảnh ..............................................................................................35 5.2.2.Tìm các điểm đặc biệt...................................................................................37 5.2.3.Dời ảnh và quay ảnh.....................................................................................38 5.2.4. Chuẩn hóa ảnh .............................................................................................38 

    5.3.Khối trích chọn đặc tính ......................................................................................39 

    5.4.Khối nhận dạng ...................................................................................................40 

    5.5.Giao diện .............................................................................................................40 5.5.1.Giao diện ......................................................................................................40 5.5.2.Các bước thao tác trên giao diện ..................................................................41 

    5.6.Kết quả chạy phần mềm ......................................................................................43 5.6.1.Với bộ mẫu sưu tầm .....................................................................................43 5.6.2.Với bộ mẫu tự tạo .........................................................................................45 

    6.Tổng kết và hướng phát triển ..................................................................................46 6.1.Tổng kết ..............................................................................................................46  

    6.2.Hướng phát triển .................................................................................................46  

    Tài liệu tham khảo.......................................................................................................48 

  • 8/18/2019 Hand Geometry Recognition with Matlab

    3/53

    - iii -

    Danh mục hình vẽ:

    Hình 1.1: Thị phần của nhận dạng bàn tay (năm 2004) .................................................1 

    Hình 1.2: Sơ đồ khối hệ thống nhận dạng bàn tay .........................................................2 Hình 2.1: Sơ đồ biểu diễn ứng dụng web của A.Ross ....................................................5 

    Hình 2.2: Một số sản phẩm ứng dụng trong thực tế của nhận dạng bàn tay .................6 

    Hình 2.3: Một số khó khăn gặp phải trong nhận dạng bàn tay.......................................7 

    Hình 3.1 : Biểu diễn ảnh số ............................................................................................8 

    Hình 3.2: Một số đặc tính hình học của bàn tay...........................................................10 

    Hình 3.3: Vân bàn tay...................................................................................................11 

    Hình 4.1: Các thiết bị thường dùng để thu thập ảnh.....................................................13 

    Hình 4.2: Webcam Tako sử dụng cho bộ thu thập .......................................................14 Hình 4.3: Một số cách lấy mẫu ảnh bàn tay .................................................................14 

    Hình 4.4: Mô hình bộ thu thập mẫu ảnh.......................................................................15 

    Hình 4.5 : Ảnh hưởng của những chiếc nhẫn đến quá trình phân vùng ảnh. ...............17 

    Hình 4.6: Quá trình phân vùng ảnh ..............................................................................17 

    Hình 4.7: Một số điểm đặc biệt trên đường viền bàn tay. ............................................18 

    Hình 4.8: Tách các ngón tay, xác định các trục, điểm privot của ngón tay và đường

     pivot line ........................................................................................................................19 

    Hình 4.9: Chiều dài ngón giữa, độ rộng lòng bàn tay và các điểm pivot.....................20 

    Hình 4.10: Thuật toán thực hiện hiệu chỉnh các điểm pivot ........................................21 

    Bảng 4.11: Góc định hướng của các ngón tay sau khi đã được chuẩn hóa ..................22 

    Hình 4.12: Xử lý ngón cái ............................................................................................23 

    Hình 4.13 : Các bước loại bỏ phần cổ tay sử đụng đường xoắn ốc Euler....................24 

    Hình 4.14: Chuẩn hóa góc định hướng các ngón tay ...................................................24 

    Hình 4.15: Tách ảnh vân bàn tay..................................................................................25 

    Hình 4.16 : Số phần tử đường viền được lựa chọn giữa các điểm mốc .......................26 Hình 4.17 : Ảnh hưởng của việc thay đổi trọng số của 10 véc tơ riêng đầu tiên. ......27 

    Hình 4.18 : ICA1 đối với bàn tay thứ i ........................................................................29 

    Hình 4.19 : ICA2 đối với bàn tay thứ i.......................................................................29 

    Hình 4.20 :  Các phần của hàm ART cơ bản................................................................31 

    Hình 5.1: Ảnh từ bộ mẫu ảnh sưu tầm..........................................................................33 

    Hình 5.2: Bộ thu thập mẫu ảnh .....................................................................................34 

    Hình 5.3: Bộ mẫu tự tạo ...............................................................................................35 

    Hình 5.4: Quá trình phân vùng với ảnh bình thường ...................................................36 Hình 5.5: Quá trình phân vùng ảnh có đeo nhẫn ..........................................................36 

  • 8/18/2019 Hand Geometry Recognition with Matlab

    4/53

    - iv -

    Hình 5.6:Loại bỏ khiếm khuyết do nhẫn gây ra ...........................................................37 

    Hình 5.7: Hai mảng chứa các chỉ số của các điểm đặc biệt. ........................................37 

    Hình 5.8: Quay các ngón tay về các góc định hướng chuẩn ........................................38 

    Hình 5.9: Loại bỏ phần cổ tay ......................................................................................38 

    Hình 5.10: Các ảnh đầu ra đã được chuẩn hóa .............................................................39 Hình 5.11: Giao diện chương trình...............................................................................41 

    Hình 5.12: Bắt đầu nhận hình ảnh từ webcam .............................................................42 

    Hình 5.13: Chụp ảnh từ webcam ..................................................................................42 

    Hình 5.14: Load ảnh từ file...........................................................................................43 

    Hình 5.15 : Các trường hợp nhận dạng sai với bộ mẫu sưu tầm..................................44 

    Hình 5.16: Các trường hợp nhận dạng sai với bộ mẫu tự tạo.......................................45 

  • 8/18/2019 Hand Geometry Recognition with Matlab

    5/53

  • 8/18/2019 Hand Geometry Recognition with Matlab

    6/53

    1 – Giới thiệu

    - 1 -

    Chương 1: Giới thiệuKhái niệm sinh trắc học ra đời từ rất lâu đời với những hình thức đơn sơ như điểm

    chỉ. Vài thập kỷ gần đây, cùng với sự phát triển của máy tính, sinh trắc học ngày càng

    trở nên phong phú, đa dạng với nhiều lĩnh vực và nhiều ứng dụng trong thực tế. Trongsố các lĩnh vực của sinh trắc học thì nhận dạng bàn tay là một lĩnh vực khá mới mẻ.

    Mặc dù ra đời sau, không được mọi người biết đến nhiều và thực sự cũng chưa có

    nhiều sản phẩm ứng dụng thực tiễn như nhận dạng vân tay hay nhận dạng mặt người

    nhưng nhận dạng bàn tay cũng có một vị trí đáng kể trong nhận dạng sinh trắc học và

    cũng đã có một số ứng dụng thực tế đáng chú ý.

     Hình 1.1: Thị phần của nhận dạng bàn tay so với các lĩnh vực khác trong nhận dạng sinh trắc học

    (năm 2004) 

    Mặc dù không thể đạt đến độ tin cậy cao cũng như có nhiều ứng dụng thực tiễn như

    nhận dạng vân tay và một số lĩnh vực nhận dạng sinh trắc học khác nhưng so với các

    lĩnh vực nhận dạng sinh trắc học này thì nhận dạng bàn tay có một số ưu điểm nổi bật

    như: cách lấy mẫu tương đối đơn giản và thân thiện với người dùng,… Và đây cũng là

    một lĩnh vực tương đối mới mẻ không chỉ ở nước ta mà trên thế giới cũng vậy.

    Với độ chính xác tương đối, những kết quả đạt được của nhận dạng bàn tay chủ yếu

    được ứng dụng trong các mục đích dân sự như quản lý, chấm công hay an ninh trong

    các nhà máy, văn phòng với quy mô vừa và nhỏ. Đây là những ứng dụng có triển vọng

    với nhu cầu ngày càng tăng cao.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    7/53

    1 – Giới thiệu

    - 2 -

    Và đồ án này, với việc tìm hiểu về nhận dạng bàn tay cũng không nằm ngoài mục

    đích hướng đến những ứng dụng có tính thực tiễn của nó. Nội dung của đồ án sẽ chủ

    yếu tập trung vào các quá trình cơ bản của một hệ thống nhận dạng bàn tay bao gồm:

    xây dựng thiết bị để thu thập mẫu ảnh, chuyển đổi chuẩn hóa, trích chọn đặc tính và

    nhận dạng. Sơ đồ khối của hệ thống được trình bày như hình 1.2.

     Hình 1.2: Sơ đồ khối hệ thống nhận dạng bàn tay

    Bộ thu thập có vai trò là thu thập các mẫu ảnh nhằm tạo cơ sở dữ liệu ảnh phục vụ

    cho mục đích làm mẫu để đối sánh và mẫu để nhận dạng offline và cũng có thể lấy

    mẫu trực tiếp để nhận dạng online. Ảnh bàn tay sau khi được thu thập sẽ trải qua quá

    trình chuyển đổi chuẩn hóa nhằm tạo cho các ảnh mẫu đều tuân theo một mức chuẩn

    hóa nhất định, tạo điều kiện thuận lợi cho quá trình trích chọn đặc tính. Từ ảnh đã

    được chuẩn hóa, quá trình trích chọn đặc tính sẽ tạo véc tơ đặc tính. Đối với các ảnh

    dùng làm mẫu đối sánh thì các véc tơ đặc tính này sẽ được lưu vào cơ sở dữ liệu đặc

    tính để phục vụ cho quá trình đối sánh nhận dạng. Còn đối với các ảnh dùng cho quá

    trình nhận dạng offline cũng như online, véc tơ đặc tính thu được sẽ được đối sánh so

    với các véc tơ đặc tính được lưu trong cơ sở dữ liệu, sau đó nhận dạng và cho ra kếtquả.

     Nội dung trình bày đồ án này được chia làm 6 chương:

    •  Chương 1: Giới thiệu chung, khái quát chung về mục đích, ý nghĩa cũng nhưnội dung cơ bản của đồ án này.

    •  Chương 2: Tổng quan về nhận dạng bàn tay, trình bày về một số kết quả nhậndạng bàn tay hiện nay cũng như một vài sản phẩm ứng dụng trong thực tế khánổi bật của lĩnh vực này và những khó khăn gặp phải khi xử lí nhận dạng bàn

    tay.•  Chương 3: Cơ sở lý thuyết nhận dạng bàn tay, trình bày những nét cơ bản về

    ảnh số và xử lý ảnh số sử dụng Matlab, những nội dung cơ sở lý thuyết liên

  • 8/18/2019 Hand Geometry Recognition with Matlab

    8/53

    1 – Giới thiệu

    - 3 -

    quan đến nhận dạng bàn tay, và đề xuất ra mô hình nhận dạng bàn tay sẽ sửdụng trong đồ án này.

    •  Chương 4: Thiết kế hệ thống nhận dạng bàn tay sử dụng công cụ Matlab, baogồm bốn bước cơ bản của một bài toán nhận dạng đó là: thu thập ảnh bàn tay,chuẩn hóa, trích chọn đặc tính và nhận dạng.

    •  Chương 5: Kết quả triển khai, trình bày về quá trình thực hiện các bước của bàitoán nhận dạng bàn tay: xây dựng bộ thu thập và cơ sở dữ liệu ảnh bàn tay, khốitiền xử lý, khối trích chọn đặc tính, khối nhận dạng và giao diện.

    •  Chương 6: Tổng kết và hướng phát triển, trình bày về những kết quả đạt đượctrong đồ án, những kiến thức bản thân thu được, những mặt còn hạn chế của đồ

    án và hướng phát triển của đề tài.

    •  Tài liệu tham khảo: Các tài liệu sử dụng trong đồ án.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    9/53

  • 8/18/2019 Hand Geometry Recognition with Matlab

    10/53

  • 8/18/2019 Hand Geometry Recognition with Matlab

    11/53

    2– Tổng quan về nhận dạng bàn tay

    - 6 -

    (a)  (b) 

     Hình 2.2: Một số sản phẩm ứng dụng trong thực tế của nhận dạng bàn tay: a) HandKey, b) HandPunch 

    2.2.Những khó khăn của bài toán nhận dạng bàn tay Như đã trình bày ở phần giới thiệu thì so với các lĩnh vực nhận dạng sinh trắc học

    khác thì nhận dạng bàn tay là một lĩnh vực tương đối mới mẻ, vì thế mà khi nghiên

    cứu về lĩnh vực này sẽ gặp phải một số khó khăn hạn chế nhất định như tài liệu không

     phong phú, phương hướng nghiên cứu không nhiều,… Tuy nhiên cũng có một vài đềtài tương đối hoàn thiện và ta có thể học hỏi được nhiều điều bổ ích từ những đề tài

    này.

     Nhận dạng bàn tay có những ưu điểm như thân thiện với người sử dụng, phương

     pháp xử lý tương đối đơn giản, không yêu cầu cao về chất lượng mẫu… nhưng đồng

    thời cũng có những mặt hạn chế nhất định. Vấn đề thường gặp nhất khi nhận dạng bàn

    tay đó là các ngón tay có đeo nhẫn, làm ảnh hưởng đến quá trình phân vùng ảnh,

    nhưng vấn đề này có thể khắc phục được bằng phần mềm. Một vấn đề nữa cũng hay

    gặp phải đó là sự thay đổi khối lượng cơ thể cũng làm cho hình dáng hình học của bàn

    tay thay đổi. Vấn đề này có thể khắc phục bằng cách thường xuyên cập nhật cơ sở dữ

    liệu, có thể là một tháng một lần, vì khối lượng cơ thể không thể thay đổi đột ngột

    trong thời gian ngắn được. Một vấn đề ít gặp hơn đó là các chấn thương ở bàn tay cũng

    làm thay đổi hình dạng bàn tay hoặc làm mất đường vân bàn tay. Vấn đề này có thể

    giải quyết được bằng cách kết hợp với một biện pháp khác như gõ mật khẩu, mã PIN

    ( Personal Identification Number ).

  • 8/18/2019 Hand Geometry Recognition with Matlab

    12/53

  • 8/18/2019 Hand Geometry Recognition with Matlab

    13/53

    3 – Cơ sở lý thuyết về nhận dạng bàn tay từ ảnh số

    - 8 -

    Chương 3: Cơ sở lý thuyết về nhận dạng bàn tay từảnh số

    3.1. Đại cương về ảnh số và xử lý ảnh số bằng Matlab3.1.1. Ảnh số

    Một ảnh có thể được định nghĩa bởi một hàm hai chiều  f(x,y), trong đó x và y là các

    toạ độ trong không gian; biên độ của  f  tại cặp tọa độ (x,y) được gọi là cường độ sáng

    của ảnh tại điểm đó.

    Một ảnh có thể liên tục đối với tọa độ x,y cũng như liên tục với biên độ. Việc

    chuyển đổi ảnh sang dạng số đòi hỏi phải số hoá cả về tọa độ lẫn biên độ của ảnh. Số

    hoá giá trị toạ độ được gọi là lấy mẫu, số hoá giá trị biên độ được gọi là lượng tử hoá.Vì vậy, khi toạ độ x, y và giá trị biên độ của hàm  f  được lấy mẫu và lượng tử hoá thì

    chúng ta gọi ảnh đó là ảnh số.

     Hình 3.1 : Biểu diễn ảnh số: a)Hệ trục toạ độ biểu diễn ảnh số; b) Ma trận ảnh số

    Trong biểu diễn số của các ảnh đa mức, một ảnh được biểu diễn dưới dạng một ma

    trận hai chiều cỡ M x N. Mỗi phần tử của ma trận biểu diễn cho mức xám hay cườngđộ ảnh tại vị trí đó. Mỗi phần tử trong ma trận được gọi là một phần tử ảnh thông

    thường được kí hiệu là PEL ( Picture Element ) hoặc pixel. Mỗi pixel tương ứng với

    một cặp tọa độ (x, y). Tọa độ (x, y) tạo nên độ phân giải của ảnh. Một ảnh phức tạp là

    tập hợp của nhiều điểm ảnh.

    Với ảnh đen trắng (ảnh nhị phân), các pixel được lưu trữ bằng 1 bit. Cường độ ảnh I

    chỉ có thể là một trong hai giá trị 0 hoặc 1, [ , ] [0,1] I i j   ∈ . Ứng với giá trị 0 là các điểm

    đen, với giá trị một là các điểm trắng.

    Với ảnh xám, các pixel sẽ được mã hoá bằng 8 bit, 16 bit,…tương ứng với 256,

    65536,… mức. Mỗi mức tương ứng với mức cường độ sáng nhất định.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    14/53

    3 – Cơ sở lý thuyết về nhận dạng bàn tay từ ảnh số

    - 9 -

    Với ảnh màu: Có nhiều loại ảnh màu, trong đó phổ biến nhất là ảnh màu RGB.

    Cách biểu diễn cũng tương tự như với ảnh xám, chỉ khác là các số tại mỗi phần tử của

    ma trận biểu diễn ba màu riêng biệt gồm: đỏ ( Red - R), lục (Green - G) và lam ( Blue -

     B). Ví dụ để biểu diễn cho ba màu riêng rẽ cần 24 bit thì 24 bit này sẽ được chia thành

     ba khoảng 8 bit. Mỗi khoảng này biểu diễn cho cường độ sáng của một trong ba màuchính.

    Có thể chuyển đổi giữa các hệ màu: từ ảnh màu chuyển thành ảnh xám hoặc từ ảnh

    xám chuyển thành ảnh đen trắng. Việc chuyển đổi này nhằm mục đích giảm khối

    lượng tính toán.

    3.1.2.Xử lý ảnh số sử dụng MatlabMatlab là một ngôn ngữ bậc cao được ứng dụng rộng rãi trong nhiều lĩnh vực.

    Matlab không chỉ được dùng để tính toán với một lượng số liệu lớn mà còn được dùngđể mô phỏng rất tốt. Với những tính chất ưu việt này mà Matlab được sử dụng rất rộng

    rãi.

    Matlab là công cụ rất mạnh cho việc xử lý nói chung và xử lý ảnh nói riêng, hầu hết

    các thuật toán về ảnh và xử lý ảnh đều đã được thể hiện trong các hàm của Matlab như

    các hàm đọc, xuất ảnh, chuyển đổi giữa các hệ màu của ảnh, các thuật toán phát hiện

     biên, tách đối tượng, khớp mẫu, các phép biến đổi ảnh như xoay ảnh, chuẩn kích

    thước, tịnh tiến,... Đồng thời các thư viện ngày càng được mở rộng, các hàm ứng dụng

    được lập bởi người dùng.Câu lệnh Matlab được viết rất gần với các mô tả kỹ thuật, câu lệnh đơn giản, ngắn

    gọn và có thể tra cứu nhanh trong chức năng  Help.

    Vì vậy, ứng dụng phần nền Matlab trong xử lý ảnh mang lại rất nhiều tiện ích và

    hiệu quả.

    Các thuật toán, chương trình trong đồ án đều được viết ngôn ngữ của phần mềm

    Matlab. Trong chương trình có sử dụng một số hàm viết sẵn trong thư viện Toolbox

    của Matlab. Đồ án này, chủ yếu sử dụng Image Proceesing Toolbox và thư viện Image

     Acquisition Toolbox. 

    3.2.Cơ sở lý thuyết nhận dạng bàn tayPhần lý thuyết này được tổng hợp từ các bài báo nghiên cứu về nhận dạng bàn tay

    từ trước đến nay. Về cơ bản thì có hai phương pháp cơ bản để nhận dạng bàn tay đó là

    dựa trên cơ sở các đặc tính hình học hoặc dựa trên các đặc tính của vân bàn tay.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    15/53

    3 – Cơ sở lý thuyết về nhận dạng bàn tay từ ảnh số

    - 10 -

    3.2.1.Nhận dạng bàn tay dựa trên các đặc tính hình học:

     Những đề tài đầu tiên nghiên cứu về nhận dạng bàn tay đều dựa trên các đặc tính

    hình học.

    Các đặc tính hình học thường được sử dụng đó là các đặc tính về kích thước: độ

    rộng, độ dài của các ngón tay và đốt ngón tay, bán kính một số đường tròn tiếp xúc vớiđường viền bàn tay hay các đặc tính đường viền của bàn tay.

    Các đặc tính hình học của bàn tay và quan hệ giữa chúng được thể hiện trên hình

    3.2.

     Hình 3.2: Một số đặc tính hình học của bàn tay

    Các kích thước về độ dài độ rộng các ngón tay và đốt ngón tay hay bán kính một số

    đường tròn tiếp xúc với đường viền bàn tay là các kích thước 2-D. Có thể lấy được

    kích thước 3-D bằng cách bố trí thêm trong bộ thu thập một cái gương phản chiếu đặt

    trên mặt phẳng nghiêng để thu được kích thước về độ dày bàn tay. Một số đề tài

    nghiên cứu đã làm theo phương pháp lấy kích thước 3-D như đề tài của Arun Ross.Cũng đã có sản phẩm ứng dụng thành công phương pháp này trong thực tế, tiêu biểu

    có thể kể đến HandPunch

    Phương pháp này có ưu điểm là đơn giản trong cách lấy mẫu, ảnh lấy mẫu không

    yêu cầu quá cao về chất lượng, chỉ cần làm nổi bật đường viền và các đốt ngón tay. Do

    vậy mà quá trình xử lý cũng đơn giản và nhanh hơn. Nhược điểm của nó là độ chính

    xác sẽ không cao khi gặp phải những vướng mắc như chấn thương ở bàn tay, sự thay

    đổi trọng lượng.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    16/53

    3 – Cơ sở lý thuyết về nhận dạng bàn tay từ ảnh số

    - 11 -

    3.2.2.Nhận dạng bàn tay dựa trên các đặc tính của vân bàn tay:

    Phương pháp nhận dạng bàn tay này chỉ mới hình thành vào giai đoạn những năm

    90 của thế kỷ trước. Hệ thống nhận dạng sử dụng đặc tính vân bàn tay đầu tiên được

     biết đến là ở Hungary vào năm 1994. Đến năm 1997 nó bắt đầu được xây dựng tích

    hợp vào một số hệ thống tự động nhận dạng vân tay ( Automated Fingerprint Identification Systems – AFIS).

    (a)  (b) 

     Hình 3.3: Vân bàn tay: a) Ảnh xám; b) Ảnh nhị phân

    Các đặc tính của vân bàn tay bao gồm ba đường vân cơ bản trên bàn tay, các vết

    nhăn, các điểm rẽ ba,…

    Phương pháp này đòi hỏi chất lượng ảnh tương đối cao để có thể thể hiện rõ các

    đường vân và một số vết nhăn cơ bản. Sẽ tốn kém thời gian để xử lý hơn nhưng lại cho

    kết quả có độ chính xác cao hơn. Một ưu điểm nổi trội của phương pháp này so với

     phương pháp nhận dạng dựa vào các đặc tính hình học đó là nó ít bị ảnh hưởng bởi các

    thay đổi ở mức vừa phải về kích thước do thay đổi trọng lượng hay chấn thương.

    Hai phương pháp nhận dạng bàn tay đều có những ưu nhược điểm riêng. Khó có thể

    đánh giá được phương pháp nào cho ta độ tin cậy cao hơn, bởi để đánh giá được điều

    đó còn phụ thuộc vào nhiều yếu tố như chất lượng lấy mẫu, thuật toán xử lý, … Ta có

    thể kết hợp hai phương pháp này với nhau, mặc dù tốc độ xử lý sẽ chậm đi nhưng lại

    cho kết quả có độ chính xác cao hơn (độ chính xác, độ tin cậy là điều mà các bài toán

    nhận dạng luôn hướng tới).

    3.3.Mô hình đề xuấtVới việc lựa chọn công cụ hỗ trợ cho bài toán nhận dạng của mình là công cụ

    Matlab, tuy là công cụ rất mạnh trong các bài toán xử lý ảnh nhưng đồng thời đó là

    một công cụ khá cồng kềnh, khiến cho tốc độ xử lý bài toán bị ảnh hưởng khá nhiều.

    Do đó trong việc giải quyết bài toán nhận dạng bàn tay này, em lựa chọn phương án

    kết hợp cả hai phương pháp nhận dạng nêu trên nhằm mục đích đạt được độ chính xác

    cao nhất. Về cơ bản các công việc của bài toán đều sẽ được xử lý bằng máy tính, sửdụng công cụ Matlab. Bộ thu thập mẫu ảnh sử dụng webcam kết nối với máy tính qua

  • 8/18/2019 Hand Geometry Recognition with Matlab

    17/53

    3 – Cơ sở lý thuyết về nhận dạng bàn tay từ ảnh số

    - 12 -

    cổng USB. Ảnh mẫu được lấy từ bộ thu thập hoặc có thể sử dụng cơ sở dữ liệu ảnh sẵn

    có của một đề tài khác. Bàn tay dùng để lấy mẫu là tay trái với mục đích dùng tay phải

    sủ dụng vào một số thao tác khác sau này sẽ được cải tiến lên như gõ mật khẩu chẳng

    hạn. Sau khi thu thập ảnh, quá trình chuyển đổi chuẩn hóa sẽ thực hiện chuẩn hóa ảnh

    về độ sáng, vị trí, kích thước , góc định hướng,… Véc tơ đặc tính của ảnh đã chuẩnhóa được trích chọn, hoặc lưu vào cơ sở dữ liệu đặc tính dưới dạng file .mat  của

    Matlab, hoặc được đem đối sánh với cơ sở dữ liệu đặc tính đã lưu và cho kết quả nhận

    dạng.Việc nhận dạng có thể là nhận dạng offline hoặc nhận dạng online.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    18/53

    4 – Phân tích và thiết kế hệ thống nhận dạng bàn tay

    - 13 -

    Chương 4: Phân tích và thiết kế hệ thống nhận dạngbàn tay sử dụng công cụ Matlab

    4.1.Bộ thu thập mẫu ảnh bàn tayĐể có bộ mẫu ảnh bàn tay phục vụ cho bài toán nhận dạng ta có thể tìm kiếm, sử

    dụng các bộ mẫu sẵn có mà các đề tài nghiên cứu trước đã thu thập được, hoặc chế tạo

    riêng một hệ thống thu thập mẫu ảnh. Các bộ mẫu sẵn có ta có thể tìm được từ

    internet, hiện nay cũng chỉ có một vài bộ mẫu ảnh bàn tay được công khai. Tiêu biểu

    nhất có lẽ là bộ mẫu ảnh của trường Đại học Bogazici, Thổ Nhĩ Kỳ với lượng ảnh mẫu

     phong phú và chất lượng ảnh tốt.

    Về việc lấy mẫu, có nhiều cách để lấy mẫu ảnh bàn tay nhưng phổ biến nhất vẫn là

    dùng máy scanner và dùng camera số. Máy scanner luôn cho ảnh ổn định cả về kích

    thước lẫn chất lượng ảnh. Camera muốn cho được ảnh tốt còn phụ thuộc vào nhiều yếu

    tố như chất lượng camera, vị trí, khoảng cách lắp camera, điều kiện ánh sáng,…

    (a)  (b) 

     Hình 4.1: Các thiết bị thường dùng để thu thập ảnh: a) Máy scanner ; b) Camera số hoặc Webcam 

    Mặc dù máy scanner có thể cho ảnh chất lượng rất tốt nhưng giá thành lại đắt và

    việc kết nối với máy tính cụ thể là công cụ Matlab khá phức tạp, hơn nữa kích thước

    của máy quét khá cồng kềnh không phù hợp với một thiết bị nhận dạng. Vì vậy nên

    trong đồ án này thiết bị được lựa chọn dùng cho bộ thu thập là webcam Tako 1.3 MP,

    độ phân giải ảnh đầu ra thông thường là 640x480 pixels, có thể đạt tới 800x600 pixels.

    Webcam này dù chất lượng ảnh không cao lắm nhưng giá thành rẻ, giao tiếp với máy

    tính qua cổng USB, tiện lợi trong việc kết nối với công cụ Matlab.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    19/53

  • 8/18/2019 Hand Geometry Recognition with Matlab

    20/53

    4 – Phân tích và thiết kế hệ thống nhận dạng bàn tay

    - 15 -

    ảnh mẫu, giúp cho việc xử lý thuận lợi hơn. Camera sẽ được đặt cố định sát mặt đáy

    của hộp, hướng vuông góc với tâm của tấm mica. Hệ thống chiếu sáng bao gồm các

    led outdoor màu sáng trắng được gắn ở xung quanh thành của hộp phía trên, ngay dưới

    tấm mica.

     Hình 4.4: Mô hình bộ thu thập mẫu ảnh

    Để có thể đảm bảo được chất lượng cao của quá trình phân tích ảnh sau này, các

    ảnh số thu thập sơ bộ từ Webcam cần được xử lý trước bằng các phương pháp mà ta

    gọi là khâu “tiền xử lý” tín hiệu.

    4.2.Tiền xử lýQuá trình tiền xử lý bao gồm các bước: phân vùng ảnh, loại bỏ khiếm khuyết do

    nhẫn, tìm các điểm đặc biêt, quay ảnh và dời ảnh, chuẩn hóa về màu sắc, ánh sáng,

    kích thước,…

    4.2.1.Phân vùng ảnh

    Đây là bước mà hầu như bài toán xử lý ảnh nào cũng phải giải quyết. Hơn nữa, đối

    với bài toán nhận dạng vân tay này, do sử dụng đặc tính đường viền bàn tay để nhận

    dạng nên vai trò của khâu phân vùng ảnh càng trở nên quan trọng hơn, quyết định đến

    sự thành công của quá trình nhận dạng.

    Khi thực hiện phân vùng ảnh bàn tay, có thuận lợi là ảnh đầu vào được tách biệtthành hai phần: bàn tay và nền tối ở phía sau. Tuy nhiên để có thể thực hiện phân vùng

  • 8/18/2019 Hand Geometry Recognition with Matlab

    21/53

    4 – Phân tích và thiết kế hệ thống nhận dạng bàn tay

    - 16 -

    ảnh tốt thì lại không hề đơn giản bởi nó còn ảnh hưởng bởi nhiều yếu tố như: các ngón

    tay đeo nhẫn hoặc ảnh bị lóa do ánh sáng không tốt.

    Thuật toán được lựa chọn để thực hiện phân vùng ảnh là thuật toán K trung bình với

    k lớp. Đây là thuật toán tương đối phổ biến trong các ứng dụng phân vùng ảnh, tiện sử

    dụng và cho kết quả tương đối chính xác đối với các bài toán có k nhỏ.Ta xét k phần tử đầu tiên trong không gian đối tượng, hay nói một cách khác ta cố định

    k lớp. Hàm để đánh giá là hàm khoảng cách Euclide:

    21

    ( , ) ( , )k 

    k j k  j

    k  D X Z 

     X gk  J D X Z 

    =∈= =∑ ∑   (*)

    Trong đó k J   là hàm chỉ tiêu với lớp k C . Việc phân vùng cho k hạt nhân đầu tiên

    được tiến hành theo nguyên tắc khoảng cách cực tiểu. Ở đây, ta dùng phương pháp đạo

    hàm để tính cực tiểu.

    Xét 0k 

     J  Z ∂ =∂

     với k Z  là biến. Ta dễ dàng có biểu thức (*) min khi:

    1 1

    1( ) 0

    C C  N N 

    i k k ji jC 

     X Z Z X  N = =

    − = → =∑ ∑   (**)

    Công thức (**) là giá trị trung bình của lớp k C  và điều này lý giải tên của phương

     pháp.

    Thuật toán: 

    Chọn c N   phần tử (giả thiết có c   lớp) của tập T. Gọi các phần tử trung tâm củacác lớp đó là: 1 2 NcX ,X ,..., X và ký hiệu là 1 2 NcZ , Z , ..., Z .

    Thực hiện phân lớp:

    k  X C ∈  nếu(1)

    1, ,( , ) min ( , )

    C k j j N 

     D X Z D X Z =

    =…

      (1) là lần lặp thứ nhất.

    Tính tất cả k Z theo công thức (**).

    Tiếp tục như vậy cho đến bước q.

    k  X C ∈ , ( 1)k  X G q∈ −  nếu( 1) ( 1)

    1 1( , ) min ( , )q q

    k  D X Z D X Z − −= . 

     Nếu ( 1) ( )q qk k  Z Z − =  thuật toán kết thúc, nếu không ta tiếp tục thực hiện phân lớp 

    Ở đây vì ảnh cần thu sau công đoạn phân vùng là ảnh nhị phân nên chọn k 2= , tức

    thuật toán K trung bình với hai lớp.

    Ảnh sau khi thực hiện phân vùng bằng thuật toán K trung bình sẽ xuất hiện các lỗ

    hổng, các đoạn vỡ vụn hay các đốm trắng đen lẫn lộn. Để loại bỏ những khiếm khuyết

    này có thể sử dụng các toán tử hình thái học có sẵn của Matlab và các bộ lọc kích cỡ.

    Các pixel đường viền bàn tay sẽ được xác định và bàn tay sẽ được tách ra khỏi nền.

    Đối với những bàn tay có đeo nhẫn, sự xuất hiện của những chiếc nhẫn sẽ khiến chongón tay bị tách biệt ra khỏi bàn hoặc xuất hiện các eo ở ngón tay (như hình vẽ). Một

  • 8/18/2019 Hand Geometry Recognition with Matlab

    22/53

    4 – Phân tích và thiết kế hệ thống nhận dạng bàn tay

    - 17 -

    thuật toán riêng sẽ được áp dụng để loại bỏ các khiếm khuyết do nhẫn đeo tay gây ra.

    Đầu tiên một ngón tay bị tách rời có thể dễ dàng phát hiện ra nhờ kích cỡ phần liên kết

    của nó bởi phần thân chính của bàn tay luôn là phần ảnh lớn nhất. Mỗi ngón tay có thể

    được nối lại với bàn tay bằng cách nối dài bằng những đường thẳng ở cả hai bên cho

    đến khi gặp lòng bàn tay. Các đường thẳng nối dài này đi song song với trục chính củangón tay ấy.

     Hình 4.5 : Ảnh hưởng của những chiếc nhẫn đến quá trình phân vùng ảnh.

    Tiếp theo, sự xuất hiện của các eo có thể được phát hiện bằng cách đo khoảng cách

    từ đường viền ngón tay tới trục chính của ngón tay ấy. Bất kì khoảng cách nào mà thấp

    hơn ngưỡng cho trước cho dù ở một bên hoặc cả hai bên trục chính đều bị coi là lỗ

    hổng gây ra bởi nhẫn. Đặt ngưỡng bằng 1/4 khoảng cách trung điểm giữa trục chính và

    mặt bên của ngón tay. Các chỗ eo gây ra bởi nhẫn được khắc phục bằng cách kẻ một

    đường thẳng kéo qua lỗ hổng và lấp đầy bên trong.

    (a)  (b) 

     Hình 4.6: Quá trình phân vùng ảnh: a) Ảnh gốc b) Ảnh đã phân vùng

  • 8/18/2019 Hand Geometry Recognition with Matlab

    23/53

    4 – Phân tích và thiết kế hệ thống nhận dạng bàn tay

    - 18 -

    Đầu ra của quá trình phân vùng ảnh là một ảnh nhị phân theo đường viền của bàn

    tay. Ảnh bàn tay gần như đã được tách biệt ra khỏi ảnh nền nhưng để có thể lấy được

    đặc tính thì ảnh này cần phải qua một số bước chuẩn hóa nữa như chuẩn hóa về kích

    thước, về góc của các ngón tay, …

    4.2.2.Tìm các điểm đặc biệtĐó là các điểm tận cùng của đường viền bàn tay như đầu ngón tay và kẽ ngón tay.

    Để xác định các điểm này đầu tiên ta xác định một điểm chuẩn trên đường viền bàn

    tay nằm trong vùng cổ tay. Có thể xác định điểm này bằng cách tìm giao điểm đầu tiên

    giữa trục chính (véc tơ đặc trưng lớn hơn của ma trận quán tính) Từ điểm này men

    theo đường viền bàn tay ta sẽ tìm ra các điểm đặc biệt dựa vào cách tính toán các

    khoảng cách theo bán kính. Chuỗi kết quả khoảng cách theo bán kính đường cong lớn

    nhất hay bé nhất tương ứng với các điểm cực trị tìm được. Khi các cực trị đạt được đãổn định thì việc xác định năm điểm cực đại (đầu ngón tay) và bốn điểm cực tiểu (kẽ

    ngón tay) sẽ ít bị ảnh hưởng bởi các sai sót do phân vùng ở trên đường viền.

     Hình 4.7: Một số điểm đặc biệt trên đường viền bàn tay.

    4.2.3.Dời ảnh và quay ảnhCó thể nói đây là công đoạn phức tạp nhất trong quá trình chuẩn hóa ảnh bàn tay.

    Với mục đích tạo sự thoải mái cho người sử dụng nên khi lấy mẫu người dùng có thể

    để tay ở các vị trí tương đối tự do, vì thế mà trong quá trình chuẩn hóa ảnh ta phải sắp

    xếp lại vị trí của bàn tay cũng như các ngón tay, tạo điều kiện thuận lợi cho quá trình

    trích chọn đặc tính. Ở những bài toán mà vị trí đặt tay là cố định như đề tài của Arun

    Ross thì họ không phải giải quyết vấn đề này. Công đoạn này gồm hai giai đoạn, giaiđoạn đầu là việc xử lý các ngón tay bao gồm những bước sau: tách các ngón tay, xác

  • 8/18/2019 Hand Geometry Recognition with Matlab

    24/53

    4 – Phân tích và thiết kế hệ thống nhận dạng bàn tay

    - 19 -

    định các điểm privot của các ngón tay (thực hiện xoay ngón tay xung quanh các điểm

    này), quay các ngón tay, xử lý ngón tay cái. Giai đoạn sau là xử lý cả bàn tay.

    a.Tách các ngón tay

    Từ các điểm đầu ngón tay, đo khoảng cách tới hai điểm kẽ ngón tay gần kề và chọn

    khoảng cách ngắn hơn. Sau đó từ điểm đầu vẽ một cung tròn theo khoảng cách ngắn

    hơn này sang phía bên kia của ngón tay, ta sẽ xác định được phần ngón tay tách rời so

    với bàn tay như trong hình vẽ. Độ dài các ngón tay xem như đã được biết thông qua

    khoảng cách này.

     Hình 4.8: Tách các ngón tay, xác định các trục, điểm privot của ngón tay và đường pivot line

    b.Xác định các điểm pivot của ngón tay

    Việc xác định các điểm pivot của ngón tay có ý nghĩa vô cùng quan trọng trong việcchuẩn hóa góc của các ngón tay. Những điểm này nằm trong lòng bàn tay, tại vị trí các

    khớp của ngón tay và không thể nhìn thấy trực tiếp được. Việc ước lượng chính xác vị

    trí những điểm này có tính quyết định để đảm bảo độ tin cậy trong việc sắp xếp tư thế

    các ngón tay. Để có thể xác định được các điểm này ta cần sử dụng hai thông tin liên

    quan. Điều đầu tiên đó là các điểm này phải nằm trên trục chính của các ngón tay,

    được xác định bởi véc tơ đặc trưng chính của ma trận quán tính của ngón tay. Hơn

    nữa, trong lý thuyết về giải phẫu học bàn tay cho ta biết rằng khi mà một bàn tay

    nguyên mẫu đã xác định chính xác các điểm pivot thì với những bàn tay khác, vị trí

    các điểm này có thể xác định khá chính xác nhờ phép biến đổi tỉ lệ.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    25/53

  • 8/18/2019 Hand Geometry Recognition with Matlab

    26/53

    4 – Phân tích và thiết kế hệ thống nhận dạng bàn tay

    - 21 -

    2.   Hiệu chỉnh các điểm pivot của mỗi ngón tay

    Các điểm pivot ước lượng sau khi tìm được nhờ phép biến đổi tỉ lệ có thể không nằm

    đúng trên trục chính của ngón tay tức là  scale true x x≠ . Mặc dù điểm pivot thực tế không

    thể quan sát thấy trực tiếp được, ta cũng có thể xác định được liệu một kết quả tìm có

     bị sai hay không dựa trên quan sát là  scale  không nằm trên trục của ngón tay. Một giải

     pháp đơn giản đó là chiếu vuông góc  scale  lên trục ngón tay như mô tả ở hình 4.10a.

    Hình vẽ cho thấy phép chiếu  scale x   lên trục ngón tay theo hai phương khác nhau, giả

    thiết 11 actual  P x=  và2

    2 actual  P x=  (Chú ý rằng vị trí  scale x  trong hình này được cố ý đặt đối

    diện với true x  nhằm mục đích mô tả cho rõ). Điều chúng ta cần nhấn mạnh là việc lấy

    xấp xỉ bậc nhất bằng cách chiếu trực giao (vuông góc) không phải lúc nào cũng đưa lại

    hiệu quả như mong muốn, đặc biệt là khi có sự biến thiên mạnh của hướng ngón tay

    giữa những lần lấy mẫu khác nhau. Cái mà ta cần tìm là một phép chiếu từ  scale  lên

    trục ngón tay để cho độ biến thiên của chiều dài ước lượng từ đầu ngón tay tới điểm

     pivot (F tới actual ) là bé nhất có thể. Với giả thiết rằng các ngón tay có thể đu đưa giữa

    các góc cực biên là 1 right α α =  và 2 left α α =  với phân bố đều (các góc được đo trong mối

    liên quan với đường nằm ngang như trong hình 4.10b), ta có thể tìm góc chiếu  β   

    (không nhất thiết phải chiếu vuông góc, như hình 4.10b) để khoảng biến thiên ước

    lượng của chiều dài khi các ngón tay đu đưa là bé nhất.

    (a)  (b) 

     Hình 4.10: Thuật toán thực hiện hiệu chỉnh các điểm pivot: a) Chiếu vuông góc  scale x  lên hai trục

    ngón tay b) Xác định góc chiếu  β   

  • 8/18/2019 Hand Geometry Recognition with Matlab

    27/53

    4 – Phân tích và thiết kế hệ thống nhận dạng bàn tay

    - 22 -

    Trong hình 4.10b thì vùng mà ngón tay có thể đu đưa trong mối liên quan với lòng

     bàn tay ( , )left right  α α   được tô mờ. Ta tìm một góc chiếu  β   từ  scale  lên trục ngón tay để

    cho độ biến thiên chiều dài ngón tay ước lượng là nhỏ nhất có thể. Độ dài ngón tay

    được ước lượng actual true Fx Fx≈ , được đo từ điểm pivot đã chiếu actual  x  tới điểm đầu

    ngón tay  F . Góc chiếu tìm được là:2

    right left  π α α  β  − −= .

    c.Góc quay của các ngón tay

    Ta có thể xác định được các trục chính của các ngón tay từ ma trận quán tính của

    nó. Góc định hướng thực tế của ngón tay suy ra từ arctan( / )maj majv uθ  = , trong đó

    ( , )maj maju v   là véc tơ đặc trưng chính. Mỗi ngón tay i   được quay bởi một góc

    i i iθ θ ψ ∆ = − , với i  lần lượt là các ngón trỏ, giữa, nhẫn, út, và iψ   là góc định hướngmục tiêu của ngón tay. Góc quay ngón tay được tính bằng cách nhân véc tơ vị trí của

    các pixel ngón tay với ma trận quaycos( ) sin( )

    sin( ) cos( )

    θ θ 

    θ θ 

    ∆ − ∆ = ∆ ∆

    R    xung quanh điểm

     pivot. Góc chuẩn của các ngón tay suy ra từ một bàn tay chuẩn và được cho trong bảng

    4.11. Chú ý một lần nữa rằng người sử dụng có quyền đặt tay tự do theo ý muốn và

    nhiệm vụ của bài toán là phải đưa bàn tay về vị trí chuẩn.

     Ngón cái Ngón trỏ Ngón giữa Ngón nhẫn Ngón út

    140 106 94 82 70

     Bảng 4.11: Góc định hướng của các ngón tay sau khi đã được chuẩn hóa 

    d.Xử lý ngón cái

    So với các ngón tay khác thì chuyển động của ngón tay cái phức tạp hơn bởi nó

    chuyển động quay của nó phụ thuộc vào hai khớp khác nhau. Do đó mà việc quayngón tay cái phải được xử lý riêng. Trên thực tế, cả hai khớp này đều đóng một vai trò

    nhất định trong chuyển động của ngón cái. Ta sẽ bù trừ cho mối liên quan phức tạp

    này bằng cách thực hiện một phép quay sau đó thực hiện tiếp một phép dịch (như hình

    4.12). Một khó khăn đi kèm đó là trong thực tế thì khoảng da co giãn giữa ngón trỏ và

    ngón cái gây khó khăn cho việc xác định điểm kẽ ngón tay ở đây và quá trình tách

    ngón cái. Với mục đích này, chúng ta dựa vào cơ sở giải phẫu học bàn tay và độ dài

    của nó sẽ được đo giống như ngón út. Trên đường thẳng dọc theo trục chính của ngón

    cái, điểm pivot sẽ được xác định bằng cách đo một đoạn bằng 120% độ dài ngón út.

     Ngón cái sau đó được dịch sao cho điểm pivot của nó trùng với đầu của đường pivot,

  • 8/18/2019 Hand Geometry Recognition with Matlab

    28/53

    4 – Phân tích và thiết kế hệ thống nhận dạng bàn tay

    - 23 -

    khi phần sau được quay 90 0   theo chiều kim đồng hồ. Cuối cùng ngón cái sẽ được

    quay về hướng của nó và được gắn lại vào bàn tay. Hai ảnh ngón tay cái trước và sau

    chuẩn hóa như trong hình 4.12.

    (a) (b)

     Hình 4.12: Xử lý ngón cái: a) Quay ngón cái b) Dịch điểm pivot

    Sau khi góc định hướng của các ngón tay đã được chuẩn hóa, bàn tay sẽ được dịch

    theo tâm của nó (trung bình của bốn điểm pivot) đến một điểm mốc cố định trên mặt

    ảnh. Cuối cùng cả bàn tay sẽ được quay sao cho đường pivot của nó nằm theo một

    hướng cố định đã lựa chọn. Như một sự lựa chọn, các bàn tay có thể được xử lý dựa

    vào trục quán tính chính của nó và dựa vào tâm của đường viền bàn tay (chứ không phải tâm của các điểm pivot).

    4.2.4.Loại bỏ phần cổ tay và tiến hành chuẩn hóa

    Đường viền bàn tay ở vùng cổ tay thường không theo một quy tắc nào cả và hay bị

    nhiễu do nhiều nguyên nhân như góc đặt tay khác nhau, hay do đeo đồng hồ, do cổ tay

    áo, hoặc do lực ấn khác nhau, … Điều này làm thay đổi đường viền phía cổ tay và sẽ

    ảnh hưởng trực tiếp đến độ chính xác của quá trình nhận dạng. Để khắc phục điều này

    ta sẽ tiến hành loại bỏ phần cổ tay. Có hai cách để loại bỏ phần cổ tay, hoặc sử dụngđường xoắn ốc Euler (các bước thực hiện như hình vẽ 4.13) hoặc dùng cách kẻ một

    đường nằm ngang đi qua khớp của ngón tay cái cà loại bỏ phần nằm bên dưới đường

    thẳng này. Việc xác định điểm pivot của ngón cái và kẻ đường nằm ngang qua nó

    tương đối đơn giản, do đó cách thứ hai sẽ được lựa chọn. Sau khi đã cắt bỏ phần bên

    dưới đường nằm ngang thì khu vực lân cận phía trên đường này sẽ được vát mờ dần.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    29/53

    4 – Phân tích và thiết kế hệ thống nhận dạng bàn tay

    - 24 -

     Hình 4.13 : Các bước loại bỏ phần cổ tay sử đụng đường xoắn ốc Euler: a) Ảnh bàn tay sau khi

    chuẩn hóa b) Sử dụng đường xoắn ốc Euler để loại bỏ phần cổ tay c) Bàn tay bị xén

    d) Vết cắt được vát mờ dần

    Sau khi loại bỏ phần cổ tay, ảnh sẽ được chuẩn hóa về kích thước, ánh sáng (đối với

    ảnh bề mặt bàn tay), góc định hướng của bàn tay, các ngón tay. Việc chuẩn hóa lúc

    này được thực hiện với ảnh bề mặt của bàn tay, đối tượng chính được sử dụng trong

    quá trình trích chọn đặc tính. Cả bàn tay sẽ được định hướng trước sau đó các ngón tay

    sẽ được tách ra khỏi lòng bàn tay và xoay về góc của nó, sau đó được gắn trở lại lòng

     bàn tay. Việc tách rời các ngón tay và định hướng lại góc của nó được mô tả như hình

    dưới:

    (a) (b) (c)

     Hình 4.14: Chuẩn hóa góc định hướng các ngón tay: a) Tách các ngón tay ra khỏi bàn b) Xoay

    ngón tay xung quanh điểm pivot về góc định hướng của nó c) Bàn tay hoàn chỉnh

  • 8/18/2019 Hand Geometry Recognition with Matlab

    30/53

    4 – Phân tích và thiết kế hệ thống nhận dạng bàn tay

    - 25 -

    Phần ảnh vân bàn tay cũng sẽ được tách riêng.

    Ảnh bàn tay lúc này đã được chuẩn hóa và có thể tiến hành quá trình trích chọn đặc

    tính và nhận dạng.

    4.3.Trích chọn đặc tính Như phương án đã lựa chọn ở trên, quá trình nhận dạng sẽ dựa vào cả các đặc tính

    hình học lẫn đặc tính vân bàn tay (lấy cả bề mặt bàn tay). Một số phương pháp trích

    chọn đặc tính hay được dùng trong các bài toán nhận dạng bàn tay là: PCA ( PrincipalComponent Analysis), ICA ( Independent Component Analysis), ART ( Axial Radial

    Transform), DT ( Distance Transform).

    4.3.1.Phương pháp PCA ( Principal Component Analysis)

    a.Ứng dụng cho các đặc tính hình học

    Đường viền bàn tay được biểu diễn bởi một véc tơ có độ dài 2n:

    ( (1),..., ( ), (1),..., ( ))T 

     x x y yc c n c c n=z  trong đó n  là số điểm của đường viền bàn tay và( ( ), ( )) x yc i c i   là tọa độ 2-D của điểm thứ i  trên đường viền. Đầu tiên ta xác định 11

    điểm mốc trên đường viền, bao gồm điểm đầu, điểm cuối, 5 điểm đầu ngón tay và 4

    điểm kẽ ngón tay, sau đó tiến hành lấy mẫu một lần nữa dữ liệu đường viền nhằm mục

    đích đảm bảo sự tương ứng giữa các phần tử đường viền của các bàn tay. Số lượng

    mẫu giữa hai điểm mốc phải bằng nhau đối với tất cả các bàn tay, vì thế đọ dài bước

    lấy mẫu tỉ lệ với kích cỡ và hình dáng của bàn tay. Hình vẽ 4.16 biểu diễn số phần tử

    đường viền lựa chọn giữa các điểm mốc.

     Hình 4.15: Tách ảnh vân bàn tay

  • 8/18/2019 Hand Geometry Recognition with Matlab

    31/53

    4 – Phân tích và thiết kế hệ thống nhận dạng bàn tay

    - 26 -

     Hình 4.16 : Số phần tử đường viền được lựa chọn giữa các điểm mốc 

    Ma trận hiệp phương sai (covariance matrix) C của các véc tơ đường viền được xây

    dựng bởi công thức: 1

    1

    ( - )( - )1

     sT 

    i ii s   == −   ∑C z z z z

    ɶ ɶ

    , sử dụng s bàn tay mẫu, trong đó zɶ

     là

    véc tơ đường viền trung bình. Các véc tơ riêng { }iv  của ma trận hiệp phương sai sắp

    xếp theo thứ tự giảm dần, có mối liên quan với các giá trị riêng tương ứng { }iλ    thể

    hiện sự thay đổi ở trong tập học. Nếu V  chứa M véc tơ riêng tương ứng với M giá trị

    riêng lớn nhất thì bất kì véc tơ hình dạng nào ở trong tập học có thể xấp xỉ bởi

    ≅ + ⋅z z V bɶ , trong đó [ ]1 2 ...  M =V v v v   là tập chuẩn không gian đặc trưng đã lựa

    chọn và b   là hình chiếu của hình dạng z   ở trong không gian đặc trưng này:

    ( )T = −b V z zɶ . Véc tơ b  đóng vai trò như một véc tơ đặc tính độ dài M của đường

    viền bàn tay trong phần đối sánh.

    Hình vẽ 4.17 biểu diễn hiệu ứng của việc thay đổi mười chế độ đầu tiên của b , mỗi

    cái tại một thời điểm khác nhau. Các hình dáng ở trong hình này thu được bằng cách

    lấy tổng của véc tơ đặc trưng thứ n bị nhiễu với véc tơ hình dáng trung bình. Các nhiễu

    được cố tình cường điệu hóa nhằm mục đích làm rõ các hiệu ứng tương ứng với các

    chế độ tương ứng.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    32/53

    4 – Phân tích và thiết kế hệ thống nhận dạng bàn tay

    - 27 -

     Khoảng hệ

     sốChế độ biến đổi  Khoảng hệ

     sốChế độ biến đổi

    Chế độ 1

    12   λ ±  

     Bàn tay tỉ lệ

    Chế độ 6

    66   λ ±  

     Hình dạng khe ngón cái

    Chế độ 2

    24   λ ±  

     Kéo dãn bàn tay

    Chế độ 7

    76   λ ±  

     Hình dạng ngón cái

    Chế độ 3

    36   λ ±  

     Mối liên quan về chiều dài giữa các

    ngón

    Chế độ 8

    87   λ ±  

     Độ rộng ngón tay tương xứng với độ

    rộng lòng bàn tay

    Chế độ 4

    48   λ ±  

    Chiều dài ngón trỏ và ngón út và độ

    nét của các đoạn đầu ngón tay

    Chế độ 9

    98   λ ±  

    Vị trí liên quan của ngón út với lòng bàn

    tay

    Chế độ 5

    56   λ ±  

     Độ nét của các điểm kẽ ngón tay và

    làm mảnh các ngón tay

    Chế độ 10

    108   λ ±  

     Hình dạng ngón cái

     Hình 4.17 : Ảnh hưởng của việc thay đổi trọng số của 10 véc tơ riêng đầu tiên.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    33/53

    4 – Phân tích và thiết kế hệ thống nhận dạng bàn tay

    - 28 -

    b.Ứng dụng cho các đặc tính bề mặt bàn tay

    Chọn hb  làm hình chiếu của bàn tay vào không gian đặc trưng hình dạng và  g b  là

    hình chiếu của bàn tay bị uốn cong vào không gian đặc trưng bề mặt. Véc tơT 

    h g  = b b b  được xem như là véc tơ đặc tính của bàn tay. Kích thước không gian đặctrưng của cả hình dạng lẫn bề mặt đều là các thông số quan trọng và đều được đánh giá

     bằng thực nghiệm. Khoảng cách giữa hai bàn tay được tính bằng cách sử dụng một

     phép cộng có trọng số của các hiệu bình phương của các thành phần của véc tơ đặc

    tính. Khi phần đối sánh được tiến hành mà chỉ sử dụng các thông tin về hình dạng thì

    khoảng cách giữa hai véc tơ đặc tính k b  và l b  là:

    2

    1

    1( , ) ( )

     M k l i i

    ii

     D k l b b

    λ =

    = −∑  .

    Còn khi đối sánh sử dụng cả thông tin về hình dạng lẫn bề mặt thì khoảng cách sẽ

    là :

    2 2

    1 1

    1 1( , ) ( ) ( )

     M N k l k l  hi hi gi gi

    i ihi gi

     D k l b b b bλ λ = =

    = − + −∑ ∑  

    Trong đó { }1

     M k hi i

    b=

     là các đặc tính hình dạng M  chiều của bàn tay thứ k , { }1

     N l  gi i

    b=

     là các

    đặc tính bề mặt N  chiều của bàn tay thứ l, và hiλ  ,  giλ   là các giá trị riêng thứ i tính được

    được từ các véc tơ PCA. Hiệu bình phương của mỗi đặc tính được chia bởi căn bậc haicủa phương sai đặc tính như đã tiến hành ở trong tập học.

    4.3.2.Phương pháp ICA ( Independent Component Analysis)

    ICA là một phương pháp dùng để trích chọn các biến độc lập có tính thống kê từ

    một hỗn hợp. Phương pháp này có nhiều ứng dụng trong khâu trích chọn đặc tính của

    các bài toán nhận dạng. Trong bài toán nhận dạng bàn tay, công cụ phân tích này được

    áp dụng đối với ảnh nhị phân đường viền bàn tay cũng như ảnh bề mặt bàn tay, nhằm

    mục đích trích chọn và tổng hợp các thông tin nguyên mẫu.

    Phương pháp ICA giả thiết rằng mỗi ảnh bàn tay được quan sát { }( ), 1,.., ) x k k K =  

    là một hỗn hợp của một tập gồm N tín hiệu nguồn độc lập chưa biết si , ( 1,.., )i N = . Ở

    đây { }( ), 1,.., ) x k k K =  là do cách sắp xếp thứ tự từ điển của ảnh ( , ) I i j  theo lớp, bao

    gồm K pixel. Cũng cần chú ý rằng trong khi phép phân tích PCA chỉ xem xét ảnh dựa

    vào phần bên trong đường viền bàn tay còn phép phân tích ICA lại quan tâm đến toàn

     bộ ảnh, cả ảnh bàn tay lẫn ảnh nền. Với  xi

     và  si

    ,( )

    1,..,i N =  là các cột của ma trận X 

    và S có kích thước  N K × . Ta có mô hình trộn như sau:

  • 8/18/2019 Hand Geometry Recognition with Matlab

    34/53

    4 – Phân tích và thiết kế hệ thống nhận dạng bàn tay

    - 29 -

    =X AS  

    ˆ = =S Y WX  

    Trong đó A là ma trận của các hệ số hỗn hợp. Thuật toán ICA sẽ tìm một phép biến

    đổi tuyến tính ˆ = =S Y WX  sao cho số biến độc lập thống kê giữa các nguồn độc lập

    giả thuyết si , ( )1,..,i N = .Có hai kiểu cấu trúc của ICA là ICA1 và ICA2, tùy thuộc vào mục tiêu mà nó

    hướng tới là các ảnh gốc độc lập hay các hệ số trộn độc lập.

    a.Cấu trúc của ICA1:

    Mỗi một trong số N dữ liệu bàn tay riêng rẽ được giả thiết như một hỗn hợp

    tuyến tính của một tập hợp chưa biết bao gồm N bàn tay độc lập thống kê. Với mô

    hình này, ảnh của bàn tay đã chuẩn hóa có kích thước 200 200×  được quét, trở thành

    véc tơ dữ liệu kích thước 40000. Khi đó ma trận dữ liệu X sẽ có kích thước

    40000 N  × , vì thế ở đây 40000= . Ma trận này sẽ được phân tích thành N phần độc

    lập { }î s , được chèn vào các hàng của ma trận đầu ra ˆ = ⋅S W X . Mỗi hàng của ma trận

    trộn A (  N × ) sẽ chứa các hệ số trọng lượng của từng bàn tay. Các hệ số này chỉ ra

    sự đóng góp liên quan của các bàn tay gốc nhằm tổng hợp bàn tay mẫu cho trước. Tiếp

    theo đó, với bàn tay test x i , hàng thứ i của ma trận A sẽ tạo thành một véc tơ đặc tính

     N chiều.

     Hình 4.18 : ICA1 đối với bàn tay thứ i 

    b.Cấu trúc của ICA2:

     Hình 4.19 :  ICA2 đối với bàn tay thứ i 

  • 8/18/2019 Hand Geometry Recognition with Matlab

    35/53

    4 – Phân tích và thiết kế hệ thống nhận dạng bàn tay

    - 30 -

    Trong cấu trúc thứ hai này, hệ số xếp chồng được giả thiết là độc lập chứ không

     phải là các hình ảnh gốc như trong cấu trúc đầu. Vì thế mô hình này giả thiết rằng mỗi

    một K pixel của ảnh bàn tay được tạo bởi hỗn hợp độc lập của các biến ngẫu nhiên,

    gọi là “các nguồn pixel”. Với mục đích này, ta bắt đầu xem xét ma trận chuyển vị của

    ma trận dữ liệu XT 

    . Tuy nhiên với kích thước tương đối lớn của các véc tơ pixel(thông thường thì K lớn hơn rất nhiều so với N), đòi hỏi một quá trình biến đổi PCA

    trước khi thực hiện ICA.

    Trên thực tế, các véc tơ đặc trưng của ma trận hiệp phương sai1 T 

     N = ⋅C X X , trong

    đó mỗi hàng của X T   được định tâm, có thể được tính toán bằng cách sử dụng các véc

    tơ đặc trưng của ma trận có kích thước nhỏ hơn nhiều là ma trận T  N ×⋅ ∈X X   ℝ . Với

    { }1v ,...,v M   là các véc tơ đặc trưng bậc M với các giá trị đặc trưng { }1 2...  M λ λ λ ≥ ≥  của

    ma trận T  N ×⋅ ∈X X   ℝ . Sau đó, từ phương pháp SVD suy ra véc tơ đặc trưng trực

    chuẩn { }1w ,...,w M    của ma trận C  tương ứng với M giá trị đặc trưng lớn nhất

    { }1 2, ...,  M λ λ λ   (M ≤ N) là1

     j j

     j

    w vλ 

    = ⋅X , 1,.., j M = . Sau khi thực hiện phép chiếu véc

    tơ đầu vào x lên các véc tơ đặc trưng  jw   ta đạt được đặc tính thứ j:

    1 T T T  j j

     j

    v x x

    λ 

    = ⋅ ⋅ = ⋅X R  , trong đó R là toán tử phép chiếu. Dữ liệu ảnh bàn tay

    được lược bớt sau khi được chiếu lên M thành phần cơ bản và vì thế mà tạo thành ma

    trận vuông T  RX  . Cuối cùng ta phân tích ma trận T  RX   thành các nguồn và các hệ số

    trộn phụ thuộc vào mô hình ở hình 4.19, ta sẽ đạt được các đặc trưng cơ bản (của ảnh

     bàn tay) nằm trên các cột của ma trận trộn A (NxN). Ngược lại, các hệ số trên ma trận

    gốc ước lượng đều là độc lập thống kê. Hình 4.19 mô tả việc tổng hợp một bàn tay

    trong tập dữ liệu i x  từ sự xếp chồng các ảnh gốc bàn tay theo các cột của ma trận ước

    lượngˆ 

     A.

    4.3.3.Phương pháp ART ( Axial Radial Transform)

    ART là một phép biến đổi phức tạp được xác định trên một đĩa đơn vị. Hàm cơ sở

    ( , )nmV    ρ θ   được xác định trong hệ tọa độ cực là một phép nhân của hai hàm có thể tách

    rời giữa góc và hướng của bán kính: ( , ) ( ) ( )nm m nV A R ρ θ θ ρ = , trong đó

    1( ) exp( )

    2m jmθ θ 

    π =  và

    1 0( )

    2cos( ) 0nn

     Rn n

     ρ π ρ 

    == 

    ≠.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    36/53

    4 – Phân tích và thiết kế hệ thống nhận dạng bàn tay

    - 31 -

    Hình 4.20 chỉ ra những phần tử chính của các hàm cơ sở ART. Từ hình vẽ này có

    thể quan sát thấy khi tăng bậc n lên, các hàm cơ sở thay đổi nhanh hơn theo hướng bán

    kính, trong khi bậc m biểu diễn sự biến thiên theo hướng góc.

    m

    n 0 1 2 3 4 5 6

    0

    1

    2

     Hình 4.20 :  Các phần của hàm ART cơ bản.

    Phép biến đổi bán kính góc của một ảnh ( , ) f   ρ θ   ở trong hệ tọa độ cực là một tập

    hợp các hệ số ART { }nm F   của bậc n và m. Những hệ số ART này có thể được biểu

    diễn như sau:2 1

    *

    0 0

    ( , ) ( , )nm nm F V f d d π 

     ρ θ ρ θ ρ θ = ∫ ∫  

    và một tập hợp  N M ×  hệ số độ lớn ART có thể được sử dụng như những đặc tính.

    Sau khi hiệu chỉnh ảnh bàn tay và đặt chúng trong một mặt phẳng ảnh có kích thước

    cố định, ta sẽ lấy tâm mặt phẳng làm tâm của chiếc đĩa đơn vị. Hơn nữa, mỗi vị trí

     pixel được biến đổi sang tọa độ cực và tọa độ bán kính được chuẩn hóa với kích thước

    ảnh có giá trị giữa 0 và 1.

    Các hệ số ART được tính cho cả ảnh đường viền lẫn ảnh bề mặt.

    Với việc lựa chọn phương pháp nhận dạng dựa trên cả đặc tính hình học lẫn đặc

    tính vân bàn tay thì trong ba phương pháp trích chọn kể trên thì phương pháp ICA là

     phù hợp nhất, mà cụ thể ở đây là thuật toán ICA2. Với thuật toán này, số đặc tính đượctrích chọn của một ảnh có thể lên đến 200 đặc tính và tỉ số giữa đặc tính vân bàn tay

    với đặc tính hình học nằm trong khoảng (0, 2 0,5)α  = ÷ .

    4.4.Nhận dạngẢnh cần nhận dạng sẽ trải qua các quá trình chuyển đổi chuẩn hóa. Quá trình trích

    chọn đặc tính bức ảnh đã chuẩn hóa cho ta một véc tơ đặc tính và véc tơ này trở thành

    đối tượng nhận dạng, sẽ được đối sánh với các véc tơ đặc tính được lưu trong cơ sở dữ

    liệu đặc tính, cho ta kết quả nhận dạng.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    37/53

    4 – Phân tích và thiết kế hệ thống nhận dạng bàn tay

    - 32 -

    Một số phương pháp nhận dạng thường được dùng trong các bài toán nhận dạng

    hiện nay đó là: phương pháp khoảng cách lớn nhất, phương pháp thống kê (dựa trên lý

    thuyết Bayes), phương pháp SVM (Support Vector Machine) hay phương pháp dựa

    vào kỹ thuật mạng Nơ-ron,…

    Phương pháp nhận dạng sử dụng trong đồ án này là đo và so sánh các khoảng cáchgiữa các véc tơ đặc tính, từ đó cho ra kết quả nhận dạng. Đây là phương pháp nhận

    dạng cơ bản và đơn giản nhất nhưng lại có nhược điểm là thời gian xử lý chậm và độ

    chính xác không cao như những phương pháp khác.

    Ta có i f   và  j f   là hai ảnh bàn tay, { }, 1 K 

    i i k  k  F 

    ==F , { }, 1

     K 

     j j k  k  F 

    ==F  là các véc tơ đặc tính

    K chiều. Một số phép đo khoảng cách có thể sử dụng được đó là :

    - Hiệu véc tơ theo chuẩn L 1 : 1 , ,1

    ( , ) K 

    i j i k j k  k 

    d f f F F  =

    = −∑  

    - Hiệu véc tơ theo chuẩn L 2  :2

    2 , ,1

    ( , ) K 

    i j i k j k  k 

    d f f F F  =

    = −∑  

    - Arc-cosine của góc giữa hai véc tơ đặc tính:

    cos ( , ) 1i j

    i j

    i j

     F F d f f 

     F F = −

      i , trong đó i  là ký hiệu phép nội tích.

    Đồ án này lựa chọn phép đo thứ 3 tức là lần lượt đo khoảng cách cosine (thực chất

    là tính arc-cosine) giữa véc tơ đặc tính đầu vào với các véc tơ đặc tính lưu trong cơ sởdữ liệu đặc tính. Sau đó so sánh các kết quả đo được với nhau, chọn ra kết quả lớn

    nhất. Đối tượng có véc tơ đặc tính trong cơ sở dữ liệu đặc tính cho kết quả lớn nhất đó

    là kết quả nhận dạng.

     Nhận dạng là bước cuối cùng của quá trình thiết kế hệ thống nhận dạng tự động bàn

    tay. Từ những phương án đã lựa chọn trên đây sẽ tiến hành triển khai và cho ra kết quả

    như trình bày ở Chương 5.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    38/53

  • 8/18/2019 Hand Geometry Recognition with Matlab

    39/53

    5 – Kết quả triển khai

    - 34 -

    Với mục đích tự tạo riêng một bộ mẫu ảnh từ webcam, đồ án sử dụng một bộ thu

    thập riêng. Bộ thu thập thực tế có hình dáng và kích thước như thiết kế. Khung của bộ

    thu thập bằng nhôm, được che chắn xung quanh nhằm mục đích đảm bảo ánh sáng cho

    webcam khi chụp. Vị trí gắn webcam được được đảm bảo như đã tính toán. Chế độ

    đèn hồng ngoại của webcam được tắt đi bởi khi đèn chiếu thẳng vào tấm mica sẽ phảnxạ lại vào ống kính của webcam, làm ảnh hưởng đến chất lượng ảnh đầu vào của

    webcam. Các chế độ điều chỉnh tự động của webcam cũng được tắt để đảm bảo các

    ảnh đều có chung điều kiện ánh sáng, màu sắc . Ánh sáng nhờ sử dụng đèn led, mặc dù

    không tốt bằng máy scanner nhưng đủ để có thể phân biệt rõ ảnh bàn tay. Vị trí đặt bàn

    tay chỉ bị giới hạn sao cho bàn tay đặt vừa trong khuôn hình của webcam. Cái nắp tạo

    nền đen phía trên được gắn vào bản lề, tiện lợi cho quá trình sử dụng.

     Hình 5.2: Bộ thu thập mẫu ảnh

    Bộ mẫu tự tạo thu được từ bộ thu thập bao gồm 42 ảnh của 7 người (mỗi người 6

    ảnh). Các ảnh đều được thu từ webcam đặt ở đáy hộp, webcam đặt ở chế độ thông

    thường nên kích thước ảnh đầu ra đều là 640x480 pixel. Ảnh có nền màu đen. Chất

    lượng ảnh mặc dù không tốt như các ảnh được thu thập từ máy scanner trong bộ mẫu

    sưu tầm nhưng vẫn đảm bảo yêu cầu của bài toán.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    40/53

    5 – Kết quả triển khai

    - 35 -

     Hình 5.3: Bộ mẫu tự tạo

    5.1.2.Cơ sở dữ liệu

    Từ bộ mẫu sưu tầm, mỗi bộ 3 ảnh chọn 2 ảnh đầu làm ảnh mẫu cho vào cơ sở dữliệu đặc tích, ảnh còn lại sử dụng để test. Như vậy cơ sở dữ liệu đặc tính của bộ mẫu

    ảnh sưu tầm có tất cả 276 người.

    Còn từ bộ mẫu ảnh tự tạo, mỗi người chọn 2 ảnh đầu làm cơ sở dữ liệu đặc tính,

    những ảnh còn lại dùng để test trong quá trình nhận dạng offline. Cơ sở dữ liệu đặc

    tính gồm tất cả 7 người.

    Cả hai bộ cơ sở dữ liệu đều được lưu dưới dạng các file .mat  của Matlab:

     ICA_FEATURE_MATRIX_1.mat  và ICA_FEATURE_MATRIX_1.mat.

    5.2.Khối tiền xử lýThực hiện các bước tiền xử lý đối với ảnh mẫu đưa vào: phân vùng, loại bỏ khiếm

    khuyết, tìm các điểm đặc biệt, dời ảnh, quay ảnh và chuẩn hóa ảnh.

    5.2.1.Phân vùng ảnhHàm thực hiện phân vùng ảnh bằng thuật toán K trung bình 2 lớp: segment

    •  Đầu vào: ảnh gốc.

    •  Đầu ra: ảnh nhị phân đã phân vùng.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    41/53

    5 – Kết quả triển khai

    - 36 -

    (a) (b)

     Hình 5.4: Quá trình phân vùng với ảnh bình thường: a) Ảnh gốc; b) Ảnh đã phân vùng

    Thực hiện phân vùng với một ảnh bàn tay có đeo nhẫn, ảnh sau khi phân vùng là

    ảnh nhị phân và có ngón nhẫn tách hoàn toàn ra khỏi bàn tay:

    (a) (b)

     Hình 5.5: Quá trình phân vùng ảnh có đeo nhẫn: a) Ảnh gốc; b) Ảnh đã phân vùng bị ảnh hưởng

    của nhẫn

    Hàm removeringcavities loại bỏ khiếm khuyết do nhẫn gây ra.

    •  Đầu vào: ảnh nhị phân đã phân vùng.

    •  Đầu ra: ảnh nhị phân đã loại bỏ khiếm khuyết của ngón tay đeo nhẫn.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    42/53

    5 – Kết quả triển khai

    - 37 -

     Hình 5.6: Loại bỏ khiếm khuyết do nhẫn gây ra

    5.2.2.Tìm các điểm đặc biệtSau khi đã có ảnh nhị phân, xác định ma trận các điểm đường viền bàn tay nhờ hàm

    extractcontour :

    •  Đầu vào: ảnh nhị phân đã phân vùng.

    •  Đầu ra: mảng contour (đường viền) mảng 2 N  ×   chứa tọa độ các pixel

    trên đường viền.

    Từ mảng contour  ta xác định các điểm đặc biệt: 5 điểm đầu ngón tay và 4 điểm kẽ

    ngón tay.

    Hàm thực hiện việc tìm các điểm đặc biệt là hàm  findextremities. Giá trị các điểm

    đặc biệt cũng được lưu vào các mảng.

    •  Đầu vào: đường viền bàn tay

    •  Đầu ra: hai mảng, một mảng chứa chỉ số của các điểm đầu (tips), và một

    mảng chứa các chỉ số của điểm kẽ ngón tay (valleys).

     Hình 5.7: Hai mảng chứa các chỉ số của các điểm đặc biệt.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    43/53

    5 – Kết quả triển khai

    - 38 -

    5.2.3.Dời ảnh và quay ảnh

    (a) (b)

     Hình 5.8: Quay các ngón tay về các góc định hướng chuẩn: a) Trước quay; b) Sau quay

    5.2.4. Chuẩn hóa ảnhẢnh bề mặt sẽ được chuẩn hóa về màu sắc và ánh sáng nhờ hai hàm ilumcorrect  và

    normalizeappearance.Phần cổ tay sẽ được loại bỏ

    (a) (b)

     Hình 5.9: Loại bỏ phần cổ tay: a) Trước khi cắt; b) Sau khi cắt

  • 8/18/2019 Hand Geometry Recognition with Matlab

    44/53

    5 – Kết quả triển khai

    - 39 -

    Sau đó kích thước các ảnh đầu ra cũng được chuẩn hóa bằng hàm  synthesizehand :

    kích thước ảnh bề mặt và ảnh nhị phân là 200 200×  pixel, còn kích thước ảnh vân bàn

    tay là 100 100×  pixel.

    (a) (b)  (c)

     Hình 5.10: Các ảnh đầu ra đã được chuẩn hóa: a) Ảnh bề mặt bàn tay; b) Ảnh nhị phân; c) Ảnh

    vân bàn tay

    Ảnh sau khi đã chuẩn hóa sẽ được đưa vào quá trình trích chọn đặc tính.

    5.3.Khối trích chọn đặc tính

    Đầu vào của khối trích chọn đặc tính là ảnh bàn tay đã được chuẩn hóa. Các đặctính được trích chọn theo thuật toán ICA. Hàm thực hiện thuật toán trích chọn đặc tính

    này là hàm  ICA.  Hàm extractfeatures  sẽ thực hiện việc trích chọn đặc tính theo

     phương pháp này.

    Để xây dựng mô hình cơ sở dữ liệu đặc tính với các mẫu đưa vào, sử dụng hàm

    construct_ICA_model_left. Đầu ra của hàm này là các ma trận U, R , M, B của bộ số

    liệu mẫu. Từ các ma trận này, véc tơ đặc tính của các bộ số liệu mẫu sẽ được tính nhờ

    hàm get_ICA_features và sẽ được lưu vào ma trận véc tơ đặc tính hoặc được đưa vào

    khối tiếp theo để thực hiện quá trình nhận dạng. Từ ảnh gốc ta cũng có thể thực hiện

    lấy véc tơ đặc tính luôn bằng hàm get_ICA_hand_features. 

  • 8/18/2019 Hand Geometry Recognition with Matlab

    45/53

    5 – Kết quả triển khai

    - 40 -

    Để xây dựng ma trận véc tơ đặc tính cho toàn bộ bộ số liệu mẫu ta dùng hàm

     script_left_feature_extraction. Mỗi véc tơ đặc tính được lưu vào một cột. Với mỗi một

    người, chọn ra hai ảnh để làm số liệu mẫu, như vậy sẽ có hai ma trận véc tơ đặc tính là

    ICA_FEATURE_MATRIX_1 và ICA_FEATURE_MATRIX_2. 

    5.4.Khối nhận dạngĐầu vào của khối nhận dạng là véc tơ đặc tính đã được trích chọn của ảnh cần nhận

    dạng. Véc tơ đặc tính đã trích chọn được đem so sánh với các véc tơ trong hai ma trận

    véc tơ đặc tính của bộ số liệu mẫu. Đầu tiên khoảng cách cosine (hay là điểm tương

    đồng cosine – cosine similarity score) sẽ được tính giữa đầu vào với hai véc tơ tương

    ứng ở hai ma trận và lựa chọn kết quả cao hơn. Lần lượt thực hiện như vậy với toàn bộ

    các véc tơ trong hai ma trận, so sánh kết quả và chọn ra kết quả lớn nhất, đó chính là

    kết quả nhận dạng.Hàm thực hiện nhận dạng là hàm recognition. 

    •  Đầu vào: ảnh cần nhận dạng.

    •  Đầu ra: số thứ tự của ảnh, từ đó cho ta biết thông tin của người được

    nhận dạng.

    5.5.Giao diện

    5.5.1.Giao diệnGiao diện được thực hiện trên nền GUI của công cụ Matlab. Chức năng chính của

    giao diện là hiển thị các hình ảnh từ webcam và hình ảnh bàn tay cần nhận dạng. Giao

    diện được thiết kế đơn giản với 3 panel hiển thị thông tin và 4 nút bấm thao tác cho

    người sử dụng.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    46/53

    5 – Kết quả triển khai

    - 41 -

     Hình 5.11: Giao diện chương trình

    Giao diện bao gồm hai panel hiển thị hình ảnh là:

    •  Video: hiển thị hình ảnh trực tiếp từ webcam

    •  Image: hiển thị ảnh chụp sau khi nhấn Snapshot hoặc ảnh load từ file

    Và một panel Result hiển thị kết quả: thông tin của người được nhận dạng.

    Có 4 nút thao tác trên giao diện là :

    •  Preview: nhận hình ảnh từ webcam.

    •  Snapshot: chụp ảnh từ webcam.•  Open file: load ảnh từ file.

    •  Recognize: nhận dạng ảnh ở trong khối Image.

    5.5.2.Các bước thao tác trên giao diệnCó hai trường hợp cần thao tác trên giao diện đó là trường hợp xem và nhận dạng

    ảnh bàn tay trực tiếp từ webcam và trường hợp load ảnh từ file để nhận dạng.

    • Xem và nhận dạng ảnh từ webcam:

    - Để xem hình ảnh từ webcam, nhấn vào nút Preview.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    47/53

    5 – Kết quả triển khai

    - 42 -

     Hình 5.12: Bắt đầu nhận hình ảnh từ webcam

    - Sau đó nhấn Snapshot để chụp ảnh, chuẩn bị cho quá trình nhận dạng.

     Hình 5.13: Chụp ảnh từ webcam

  • 8/18/2019 Hand Geometry Recognition with Matlab

    48/53

    5 – Kết quả triển khai

    - 43 -

    - Cuối cùng nhấn Recognize, thông tin nhận dạng sẽ hiển thị ở panel Result.

    • Load ảnh từ file để tiến hành nhận dạng:

    - Để load một ảnh từ file để nhận dạng, nhấn vào Open file sau đó chọn file ảnh

    cần nhận dạng:

     Hình 5.14: Load ảnh từ file

    - Cuối cùng để nhận dạng nhấn Recognize, thông tin nhận dạng sẽ hiện ở panel

    Result.

    5.6.Kết quả chạy phần mềm

    5.6.1.Với bộ mẫu sưu tầm

    Với bộ mẫu gồm 828 ảnh, sau khi dùng 552 ảnh (mỗi người 2 ảnh) làm mẫu cho cơ

    sở dữ liệu đặc tính, còn 276 ảnh tham gia vào quá trình test. Mỗi người trong bộ mẫu

    này đều có số thứ tự riêng, đánh số từ 1 đến 276.

    Cho chạy chương trình test với 276 ảnh còn lại theo thứ tự từ 1 đến 276, kết quả lưu

    vào file “test1.txt ” gồm 276 dòng, mỗi dòng ghi hai thông số là “ score” và kết quả

    nhận dạng. Nếu kết quả nhận dạng trùng với số thứ tự của ảnh test thì chương trình

    nhận dạng đúng, ngược lại là nhận dạng sai.

    •   Nếu không đặt ngưỡng cho “ score”: Kết quả chạy chương trình cho thấy có tất

    cả 270  trường hợp nhận dạng đúng, đạt tỉ lệ 97.83%. Các trường hợp nhậndạng sai là các ảnh có số thứ tự: 33, 58, 85, 152,192, 241.

  • 8/18/2019 Hand Geometry Recognition with Matlab

    49/53

    5 – Kết quả triển khai

    - 44 -

    Vị trí đặt sai khác

    quá nhiều so với

    hai bàn tay mẫu,

    hơn nữa bàn tay

    này có nhiều néttương đồng với

    kết quả nhận

    dạng.

    Ánh sáng không

    tốt. 

    Các ngón tay để

    quá sát nhau. Bàn tay để không

    thoải mái và các

    ngón hơi sát nhau.

    Các ngón tay để

    sát nhau 

    Bàn tay đặt không

    thoải mái. 

     Hình 5.15 : Các trường hợp nhận dạng sai với bộ mẫu sưu tầm

    •   Nếu đặt ngưỡng cho “ score”: Kết quả chạy chương trình cho thấy có tất cả