Upload
nguyen-dang-dung
View
247
Download
0
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
k
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ả