Hình ảnh được thử nghiệm phải được chuyển đổi thành thang màu xám và sau đó sử dụng thuật toán của OTSU để thu được hình ảnh nhị phân.. 1.2 Đối tượng và phạm vi nghiên cứu Đối tượng
Trang 1ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BÁO CÁO ĐỒ ÁN
ĐỀ TÀI: Xây dựng chương trình dịch ngôn
ngữ cử chỉ
Trang 2MỞ ĐẦU
Hầu hết chúng ta khó hình dung, nhưng nhiều người câm điếc dựa vào ngôn ngữ kí hiệu làm phương tiện giao tiếp chính của họ Về bản chất, họ nghe và nói chuyện qua bàn tay của họ Ngôn ngữ kí hiệu là ngôn ngữ tự nhiên được nhiều người câm điếc trên khắp thế giới sử dụng Trong ngôn ngữ kí hiệu, bàn tay truyền tải hầu hết thông tin Do
đó, các hệ thống nhận dạng kí hiệu tự động có vai trò rất quan trọng để những người câm điếc có thể hòa nhập với cuộc sống
Trang 3M c l c ục lục ục lục
Chương 1 5
TỔNG QUAN 5
1.1 Giới thiệu 5
1.2 Đối tượng và phạm vi nghiên cứu 6
1.3 Phương pháp nghiên cứu 6
1.4 Ý nghĩa khoa học và thực tiễn của đề tài 6
Chương 2 8
PHÂN TÍCH HỆ THỐNG 8
2.1 NHẬN DIỆN TAY 8
2.2 Anphabet 9
2.3 K-Nearest Neighbor (KNN) 11
THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 12
3.1 MÔI TRƯỜNG THỰC NGHIỆM 12
3.1.1 Môi trường triển khai 12
3.2 THỰC NGHIỆM TRÊN BÀI TOÁN NHẬN DẠNG CỬ CHỈ TAY 12
KẾT LUẬN 14
Trang 4Chương 1
TỔNG QUAN
1.1 Giới thiệu
Như nhiều người đã biết, ngôn ngữ ký hiệu là phương tiện duy nhất
mà hầu hết những người câm điếc được giáo dục ngày nay giao tiếp Có các ngôn ngữ ký hiệu khác nhau tùy theo quốc gia
Công nghệ luôn là phương tiện truyền thông tốt nhất và nhanh nhất trong những năm gần đây Đã có rất nhiều công việc được thực hiện trong lĩnh vực chuyển đổi văn bản thành ngôn ngữ ký hiệu Khu vực ngôn ngữ ký hiệu thành văn bản (hoặc âm thanh) ít phát triển hơn, mặc dù đã có một số đột phá gần đây kết hợp găng tay dữ liệu để trích xuất vị trí
Hôm nay, chúng ta sẽ nghiên cứu đối với những người bình thường muốn giao tiếp với người câm điếc bằng ngôn ngữ ký hiệu bảng chữ cái Cần có phương pháp đơn giản, độ chính xác cao và dễ thực hiện với thiết bị giá rẻ Nhiều phương pháp tiếp cận đã được sử dụng để phân loại ảnh Một trong số đó là K-Nearest Neighbor(K-NN) K-NN là một phương pháp nổi tiếng để phân loại hình ảnh, vì nó đơn giản và dễ thực hiện Tuy nhiên,
K-NN độc lập không có khả năng phân loại hình ảnh chính xác Việc xác định giá trị trọng số trong KNN ảnh hưởng lớn đến giá trị độ chính xác trong phân loại ảnh, đặc biệt là trong việc giới thiệu ngôn ngữ ký hiệu bảng chữ cái
Nhiều nhà nghiên cứu đang tập trung vào lĩnh vực nhận dạng cử chỉ tay, chẳng hạn như trong đã xây dựng tính năng nhận dạng ngôn ngữ ký hiệu bảng chữ cái (ASL) bằng cách sử dụng Mạng thần kinh lan truyền ngược 390 hình ảnh dữ liệu mẫu đã được sử dụng để huấn luyện Mạng và
208 hình ảnh mẫu đã được sử dụng làm bộ thử nghiệm Sau khi chúng nhận được 4000 kỷ nguyên, Sai số trung bình vuông (MSE) đi đến mức chấp nhận được là 0,01, hơn 5 nơ-ron đầu vào được sử dụng để lấy đầu vào là 1
5 vector đặc trưng, 26 nơ-ron đầu ra để phân loại 26 dấu hiệu riêng lẻ Chúng có độ chính xác 80% Việc nhận dạng sử dụng các tính năng Centroid, Roundness và Scan line để nhận dạng và phân loại được đề xuất bởi Hình ảnh được thử nghiệm phải được chuyển đổi thành thang màu xám
và sau đó sử dụng thuật toán của OTSU để thu được hình ảnh nhị phân Ranh giới của đối tượng mong muốn cho các chi tiết hình dạng dựa trên cạnh của hình ảnh, sau đó sử dụng Thuật toán truy tìm đường viền hàng xóm Moore để trích xuất đối tượng địa lý Kết quả là độ chính xác đạt
Trang 5khoảng 81% Một nghiên cứu khác đã sử dụng sự khác biệt của thuật toán biến đổi tính năng bất biến Gaussian và quy mô (SIFT) để nhận dạng Các điểm chính bắt nguồn từ hình ảnh được đặt trong một mảng Hiệu suất đối sánh dựa trên các thước đo tương tự không được thực hiện cho mọi điểm, thay vào đó, việc giảm kích thước được thực hiện Có 2 điều kiện kiểm tra: Thứ nhất, trong vòng 26 bảng chữ cái và 10 bảng chữ cái lặp lại các mục nhập với các mục và hướng khác nhau Thứ hai, hình ảnh chụp trực tiếp để kiểm tra lỗ hổng và hiệu suất Kết quả cho thấy hệ thống có thể nhận dạng hình ảnh ở các nền, ánh sáng, tỷ lệ và phương sai chiếu sáng khác nhau, hướng khác nhau và kích thước bàn tay khác nhau
1.2 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu
Ngôn ngữ lập trình Javascipt
Thư viện Tensorflow
Giải thuật nhận dạng một đối tượng sử dụng KNN Image
Classifiers
Các thuật toán và kỹ thuật phát hiện kí hiệu dựa trên cử chỉ tay
Phạm vi nghiên cứu
Nghiên cứu về các phương pháp đã được đề xuất nhận diện cử chỉ tay và chuyển thành ngôn ngữ
Tensorflow trên nền tảng hệ điều hành Windows, Ubuntu, MacOS
1.3 Phương pháp nghiên cứu
Nghiên cứu lý thuyết
Đọc, phân tích, tổng hợp tài liệu từ những bài báo và những nghiên cứu khoa học liên quan đã được công bố ở Việt Nam và trên thế giới
Nghiên cứu thực nghiệm
Nghiên cứu và xây dựng một chương trình mô phỏng lập trình bằng ngôn ngữ lập trình Javascript và thư viện Tensorflow
1.4 Ý nghĩa khoa học và thực tiễn của đề tài
Mục đích
Nghiên cứu cách xây dựng một chương trình mô phỏng ứng dụng cho các hệ thống giải quyết vấn đề giao tiếp với người câm, điếc
Ý nghĩa khoa học và thực tiễn đề tài
Về khoa học
Trang 6Tìm hiểu những bài báo và những nghiên cứu khoa học liên quan đã được công bố trên thế giới, đề xuất một giải pháp cho việc giải quyết các vấn đề về giao tiếp với người câm điếc tại Việt Nam
Về thực tiễn
- Góp phần giúp những người khuyếm khuyết hòa nhập với xã hội
Trang 7Chương 2
PHÂN TÍCH HỆ THỐNG
Dưới đây sẽ tìm hiểu về một phương pháp nhận dạng dấu hiệu bảng chữ cái kết hợp giữa phương pháp Kỹ thuật đánh giá đa thuộc tính đơn giản (SMART) và K-Nearest Neighbor (KNN) Những phương pháp đó có công thức đơn giản K-NN có khả năng phân loại tốt hơn nếu được kết hợp SMART, trọng số sẽ hỗ trợ nâng cao độ chính xác Quá trình ban đầu của phương pháp đề xuất là chụp ảnh bàn tay từ máy ảnh, sau đó tiếp tục phát hiện vùng tay bằng phân tích phát hiện da Nó được sử dụng để phân biệt bàn tay với nền Có thể thu được phát hiện da bằng cách chuyển đổi hình ảnh màu (RGB) sang HSV ((Hue, Saturation, Value) và màu YCbCr Cân SMART sử dụng hình ảnh nhị phân thu được từ quá trình phân đoạn Sau
đó, chúng tôi chia đề xuất nhóm thành ba tiêu chí dựa trên hình dạng của bàn tay (Nắm tay, Ngón tay thẳng và Ngón tay nghiêng), chúng được sử dụng để xác định dữ liệu huấn luyện sẽ được sử dụng Việc trích xuất tính năng được thực hiện để lấy dữ liệu thống kê từ khoảng cách giữa hình ảnh trung tâm và cạnh của bàn tay Quá trình cuối cùng là phân loại hình ảnh sử dụng K-Nearest Neighbor (KNN)
2.1 NHẬN DIỆN TAY
Bước này kết hợp hai không gian màu để cải thiện khả năng phát hiện màu
da Đây là các mô hình HSV và YCbCr Mô hình HSV (Hue, Saturation, Value) được điều khiển từ không gian màu RGB thành phép biến đổi phi tuyến Hue có nghĩa là một dạng màu cụ thể, đó là xanh lục, đỏ hoặc vàng Màu sáng tương ứng với Giá trị Phương trình dưới được biểu thị để chuyển đổi từ RGB sang HSV :
𝐼𝐻𝑆𝑉 = 𝐶[𝐼𝑅𝐺𝐵]
Trong đó C [.] là toán tử chuyển đổi để chuyển đổi không gian màu RGB sang không gian màu HSV
Phương trình dưới được sử dụng để chuyển đổi không gian màu RGB thành YCbCr :
𝐼𝑌𝐶𝑏𝐶𝑟 = 𝐸[𝐼𝑅𝐺𝐵]
Trong đó E [.] là toán tử chuyển đổi để chuyển đổi không gian màu RGB thành không gian màu YCbCr
Trong nghiên cứu này, màu da thu được từ quá trình xác định ngưỡng kết hợp giữa màu HSV và YCbCr như trong phương trình:
Trang 8Image
Capture DetectionSkin
Sign Grouping and Weighting using SMART
Feature Extraction
Image Classification using KNN
Đây là quá trình phát hiện bàn tay Hình ảnh chụp khu vực bàn tay sử dụng máy ảnh được minh họa trong Hình (a), Hình (b) cho thấy việc phát hiện da dựa trên phương trình Hình 3 (c) là hình ảnh nhị phân tạo
ra từ hình (b) Hình (b) là phân đoạn bàn tay bằng cách phát hiện màu
da Sau đó, hình ảnh được phân đoạn được chuyển đổi thành ảnh nhị phân
Hình ảnh nhị phân có được bằng các bước sau: đầu tiên, chuyển đổi hình ảnh được phân đoạn từ phát hiện da thành hình ảnh thang độ xám
sử dụng thuật toán độ sáng và sau đó sử dụng Thuật toán Otsu để tạo hình ảnh nhị phân Hơn nữa, Hình (d) được cắt cơ sở hình ảnh nhị phân trên tọa độ đầu cuối x và y (quá trình hộp giới hạn)
2.2 Anphabet
26 bảng chữ cái được nhóm thành ba tiêu chí (K1, K2 và K3) dựa trên hình dạng của bàn tay như bàn tay nắm, ngón tay thẳng và ngón tay nghiêng Chúng tôi sử dụng Kỹ thuật đánh giá đa thuộc tính đơn giản (SMART) để có được Trọng số (W) dựa trên bảng chữ cái nhóm của dữ liệu huấn luyện Các bước của Kỹ thuật xếp hạng đa thuộc tính đơn giản (SMART) để có được khuyến nghị trọng số như sau: bước đầu tiên là lấy số lượng tiêu chí Trong bài báo này, chúng tôi chia các tiêu chí thành K1, K2
và K3 dựa trên hình dạng bàn tay Tiêu chí một (K1) là hình dạng bàn tay dựa trên cách nắm tay có bảy thành viên trong bảng chữ cái (“A, E, M, N,
O, S, T”) Tiêu chí hai dựa trên hình dạng ngón tay thẳng, có mười ba thành
Trang 9viên bảng chữ cái (“B, C, D, F, I, K, L, R, U, V, W, X, Y”) và các bảng chữ cái khác là tiêu chí thứ ba (K3) có sáu thành viên (“G, H, J, P, Q, Z”) Bước thứ hai là lấy trọng số của từng tiêu chí được tính bằng cách lấy số tiêu chí chia cho tổng số bảng chữ cái (26) như trong bảng dưới đây
(K)
Hand Shape
Amount Criteria Member (N)
Weight
(R)
Hand
A,E,M,N,
Finger
B,C,D,F,I, K,L
R,U,V,W, X,Y
26
0,50
Finger
G,H,J,P,Q
Các bước cuối cùng là lấy giá trị tiện ích và giá trị cuối cùng Giá trị hữu ích nhận được bởi phương trình chỉ có hai giá trị (0 và 100) Giá trị tiện ích cho tiêu chí một (K1) có giá trị 100, nếu số lớn hơn 90 và lớn hơn 200, trong khi giá trị khác bằng 0 Số lượng và được đếm từ hình ảnh nhị phân Các giá trị tiêu chí khác được biểu thị trong phương trình (5) Giá trị tiện ích cho tiêu chí hai (K2) có giá trị 100, nếu số lượng lớn hơn 90 và nhỏ hơn
200, trong khi giá trị khác bằng 0 Cuối cùng là giá trị tiện ích cho tiêu chí
ba (K3) được minh họa trong phương trình (6) Nó có giá trị 100, nếu số nhỏ hơn 90, trong khi giá trị khác bằng 0 Bảng 1 cho thấy ba tiêu chí cho
26 bảng chữ cái dựa trên hình dạng bàn tay
Chúng ta sử dụng khoảng cách giữa tâm và cạnh của tọa độ từ hình ảnh nhị phân bàn tay để đào tạo dữ liệu Phương trình được sử dụng để tính khoảng cách (d) giữa tọa độ tâm điểm (x, y) và mọi cạnh của tọa độ bàn tay (𝑒 và 𝑒
là tọa độ của cạnh tay) Tọa độ trung tâm (x, y) thu được bằng cách chia chiều cao và chiều rộng của hình ảnh nhị phân đã cắt cho hai
Ta sử dụng khoảng cách giữa tâm và cạnh của tọa độ từ hình ảnh nhị phân bàn tay để đào tạo dữ liệu Phương trình trên được sử dụng để tính khoảng cách (d) giữa tọa độ tâm điểm (x, y) và mọi cạnh của tọa độ bàn tay (𝑒 và 𝑒
là tọa độ của cạnh tay) Tọa độ trung tâm (x, y) thu được bằng cách chia chiều cao và chiều rộng của hình ảnh nhị phân đã cắt cho hai
Trang 102.3 K-Nearest Neighbor (KNN)
K-Nearest Neighbors (k-NN) là một thuật toán học máy được giám sát, tức là nó học từ một tập hợp đào tạo được gắn nhãn bằng cách lấy dữ liệu đào tạo X cùng với các nhãn của nó là y và học cách ánh xạ đầu vào X với đầu ra mong muốn của nó
Thuật toán k-NN được cho là đơn giản nhất trong các thuật toán học máy Mô hình chỉ bao gồm dữ liệu huấn luyện, tức là, mô hình chỉ đơn giản
là học toàn bộ tập huấn luyện và để dự đoán đưa ra kết quả là lớp có phần lớn trong hàng xóm gần nhất là ‘k’ được tính theo một số thước đo khoảng cách
Quá trình hoạt động chi tiết như sau:
Sau khi mô hình đã lưu trữ tập huấn luyện để dự đoán, nó sẽ lấy một hình ảnh thử nghiệm để dự đoán, tính toán khoảng cách đến mọi hình ảnh trong tập huấn luyện và thu được các hình ảnh huấn luyện ‘k’ gần nhất với hình ảnh thử nghiệm Sau đó, nó xuất ra lớp theo một số thủ tục biểu quyết
từ nhãn của các hàng xóm ‘k’ này, thường là đa số phiếu
Số liệu khoảng cách được sử dụng để tính toán khoảng cách có thể khác nhau, chẳng hạn như hàm khoảng cách L1 là tổng của sự khác biệt giữa các pixel của hình ảnh
Trang 11Một số liệu khoảng cách thay thế có thể là khoảng cách L2 hoặc thường được gọi là khoảng cách Euclide :
Nói cách khác, chúng ta sẽ tính toán sự khác biệt khôn ngoan theo pixel như trước đây, nhưng lần này chúng tôi bình phương tất cả chúng, cộng chúng lại và cuối cùng lấy căn bậc hai
Có một điều thú vị là do sự khác biệt bình phương trong khoảng cách L2, nó sẽ nghiêm ngặt hơn nhiều khi sự khác biệt về pixel quá lớn
Bây giờ, chúng ta chuyển sang những cân nhắc thực tế: Siêu tham số trong k-NN và cách chúng ảnh hưởng đến hiệu suất
Vì k-NN là một thuật toán rất đơn giản nên không thực sự có nhiều siêu tham số để điều chỉnh, chỉ có hai: chỉ số khoảng cách và giá trị của ‘k’
Vì vậy, những gì chúng ta có thể làm là, chạy mô hình của chúng ta cho các giá trị khác nhau của ‘k’ và có được mô hình với độ chính xác xác thực tốt nhất, mô hình này sẽ được sử dụng làm mô hình cuối cùng của chúng ta trên tập thử nghiệm
Trang 12Chương 3
THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ
Quá trình thực nghiệm được chia làm hai giai đoạn Giai đoạn thứ nhất xây dựng mô hình nhận dạng với dữ liệu video đầu vào trong các điều kiện khác nhau Ở giai đoạn này, một số giá trị tham số đầu vào và điều kiện ánh sáng xung quanh được thay đổi bằng thực nghiệm để tìm ra giá trị phù hợp cho kết quả (độ chính xác) cao nhất ứng với mỗi phương pháp Kết quả thu được ở giai đoạn thực nghiệm này là độ chính xác của chương trình tương ứng với các dữ liệu video đầu vào khác nhau
3.1 MÔI TRƯỜNG THỰC NGHIỆM
3.1.1 Môi trường triển khai
Quá trình thực nghiệm được thực hiện trên một máy tính xách tay sử dụng hệ điều hành MacOS version 10.11.6 có cấu hình tương đương một máy tính phổ thông hiện nay và sử dụng camera trực tiếp trên máy để thu video đầu vào
Ngôn ngữ sử dụng trong chương trình thực nghiệm là ngôn ngữ lập trình Javascript Bên cạnh đó, chương trình thực nghiệm có sử dụng thư viện mã nguồn mở Tensorflow
3.2 THỰC NGHIỆM TRÊN BÀI TOÁN NHẬN DẠNG CỬ CHỈ TAY
Tiến hành thực nghiệm trên video input Hai quá trình thực hiện quan trọng sau khi xử lý video đầu vào đó là nhận dạng tay Kết quả nhận dạng như sau:
Đầu tiên, tạo và train cử chỉ bắt đầu và kết thúc
Trang 13Sau đó, tạo các từ ngữ và train cử chỉ cho các từ ngữ đó
Tiến hành thử nghiệm việc dịch ngôn ngữ cử chỉ:
Trang 14Kết quả: Chương trình nhận dạng thành công trong điều kiện đủ ánh sáng
hoặc không đủ ánh sáng
Trang 15KẾT LUẬN
Đề tài đã phát triển một hệ thống đơn giản gồm 4 phần, cụ thể là (a)
Xử lý video đầu vào, (b) Nhận diện tay (c) Ghi lại cử chỉ (d) So sánh với cử chỉ mẫu và đưa ra kết quả Mỗi thành phần này có thể được thực hiện bằng các thuật toán cụ thể khác nhau dựa trên các yêu cầu
HƯỚNG PHÁT TRIỂN
Sau đây là một số các cải tiến có thể được thực hiện trong tương lai của
hệ thống này:
Ứng dụng trên điện thoại thông minh
Tích hợp vào video call