Ta có thể đọc dữliệu từBasicStampvà hiển thịkết quả trên màn hình LCD.
Trong đềtài này ta sẽxửlýdữliệu trên máy tính.
Nhưta đã biết với mỗi ký tựbảng chữcái đều có một trạng thái nhất định của
tay. Vấn đề đặt ra ở đây là làm thếnào đểphân biệt được các ký tự đó bằng cửchỉ.
Tiến hành lấy mẫu các ký tựtrong bảng chữcái tiếng việt “A, B, C, D, E, Đ,
G, H, I, K, L, M, N, O, P, Q, R, S, T, U, V, X, Y“
63 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2627 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Xây dựng hệ thống nhận biết ngôn ngữ dấu hiệu sử dụng cảm biến vi cơ điện tử, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ông giao tiếp với
nhau như những người bình thường mà dùng những cử chỉ hành động của mình để nói
cho người khác hiểu.
9 Trên thực tế việc học đối với những người khiếm thính là rất khó khăn. Như
ngày nay ở Việt Nam việc phổ cập giáo dục cho những người khiếm thính đã được
quan tâm, nhưng vẫn còn rất hạn chế. Vì chỉ với việc phổ cập mức tiểu học phải kéo
dài ít nhất là 9 năm. Nên đối việc phổ cập mức cao hơn là rất khó khăn. Đối với những
người trước khi bị khiếm thính lại không biết chữ thì đòi hỏi việc đào tạo lại càng khó
khăn hơn.
9 Ngôn ngữ dấu hiệu chỉ được sử dụng trong một phạm vi hẹp nên rất ít người
bình thường hiểu được ngôn ngữ này. Điều này tạo nên một rào cản lớn trong giao tiếp
giữa người khiếm thính và người bình thường. Người khiếm thính và người câm sẽ
khó có cơ hội hoà nhập vào cộng đồng người bình thường.
9 Trên thế giới, hiện đã có nhiều nghiên cứu nhằm xây dựng các thiết bị có thể
trợ giúp sự giao tiếp giữa những người khiếm thính và những người bình thường.
7
Đinh Duy Chương Khóa luận tốt nghiệp
Trong khi đó, ở Việt Nam, hiện chưa có các nghiên cứu dành cho những người khiếm
thính.
9 Xuất phát điểm từ đó trong đề tài này em muốn tìm hiểu và bước đầu xây
dựng một hệ thống nhận biết dấu hiệu để giao tiếp với những người khiếm thính. Và từ
đó giao tiếp giữa những người khiếm thính và những người bình thường được cải thiện
hơn. Ngoài ra, thiết bị cũng có thể dùng trong mục đích học tập cho người khiếm
thính.
1.1.2. Một số chuẩn trên thế giới và Việt Nam
9 Để thống nhất trong giao thiếp, ngôn ngữ dấu hiệu cũng có những chuẩn nhất
định. Trên thế giới phổ biến nhất là ngôn ngữ ASL (American Sign Languague) của
Mỹ. Với chuẩn này các chữ trong bảng chữ cái và các số tự nhiên được mã hoá hết sức
đơn giản. Trong khi đó, các từ được mã hoá phức tạp hơn nhiều. Mỗi từ (khái niệm)
được miêu tả bởi 5 đặc tính của ký hiệu: hình dạng bàn tay, vị trí bàn tay so với cơ thể
người, hướng của bàn tay, chuyển động của bàn tay và ngón tay, biểu hiện của nét mặt
và cơ thể.
Hình 1a: Dấu hiệu của các chữ cái trong bảng chữ cái
Hình 1b: Dấu hiệu của các chữ số tự nhiên
9 Với các quốc gia khác nhau lại có những đặc trưng ngôn ngữ khác nhau. Vì
vậy, mỗi quốc gia thường có chuẩn riêng cho mình. Chuẩn ngôn ngữ dấu hiệu của Việt
Nam về cơ bản là giống chuẩn của Mỹ tuy nhiên cũng có một số khác biệt. Đó là sự
thêm vào đó những con dấu và có thêm một số chữ cái khác mà trong bảng trên không
có như chữ Ô, Ơ, Ư, Ê, Â. Do đó ta phải tổ hợp thêm một số cử chỉ khác nữa để phân
8
Đinh Duy Chương Khóa luận tốt nghiệp
biệt các chữ cái và các con số. Và một số chữ số của ta cũng khác với chữ số trong
bảng trên.
Hình 2: Bảng chữ cái và chữ số tiếng Việt
1.1.3. Mục tiêu của khoá luận
Một thiết bị nhận biết và chuyển đổi ngôn ngữ dấu hiệu sang ngôn ngữ thông
thường có thể được xây dựng theo hai phương pháp:
9
Đinh Duy Chương Khóa luận tốt nghiệp
o Phương pháp nhận biết từng từ: Phương pháp này có ưu điểm là tốc độ
chuyển đổi nhanh, tiện cho người sử dụng nhất. Tuy nhiên, việc xây
dựng một hệ thống như vậy rất phức tạp ví dụ như:
• Cần nhiều tham số đầu vào
• Thuật toán xử lý phức tạp
• Đòi hỏi phải có bộ từ điển
• Khi có từ mới thì phải huấn luyện cho hệ thống trước
o Phương pháp đánh vần: Người sử dụng sẽ đánh vần theo bảng chữ cái.
Phương pháp này có nhược điểm là tốc độ chuyển đổi sẽ chậm hơn nhiều
phương pháp dùng từ. Tuy nhiên, nó có một số ưu điểm sau:
• Tham số đầu vào không nhiều
• Có thể dùng các thuật toán tương đối đơn giản
• Có thể tạo ra các từ tuỳ ý mà không cần bộ từ điển
Từ các phân tích trên, ta thấy rằng phương pháp đánh vần có khả năng dễ
dàng tích hợp với các bộ vi xử lý để tạo nên các thiết bị nhỏ gọn, tiện dụng cho người
sử dụng. Phương pháp này cũng là tiền đề cho việc xây dựng các thiết bị sử dụng
phương pháp nhận biết từng từ.
Vì vậy, trong khoá luận này, em tập trung vào việc tìm hiểu xây dựng một hệ
thống nhận biết ngôn ngữ dấu hiệu sử dụng phương pháp đánh vần.
1.2. Các phương pháp nhận biết ngôn ngữ dấu hiệu
Để xây dựng được một hệ thống nhận biết ngôn ngữ dấu hiệu, trước hết, em
xin trình bày về các phương pháp nhận biết đang được nghiên cứu trên thế giới.
1.2.1. Nhận biết ngôn ngữ bằng phân tích hình ảnh
1.2.1.1. Giới thiệu về phương pháp phân tích hình ảnh
Nhận biết ngôn ngữ dấu hiệu qua video (camera) từ xa là một yêu cầu trực
quan. Để đưa ra mã hình ảnh thành ngôn ngữ dấu hiệu, cần thiết phải tìm những vùng
có thông tin về hình ảnh. Camera sẽ dõi sự di chuyển của những người khiếm thính và
sẽ lọc ra chuỗi hình ảnh ngôn ngữ dấu hiệu phù hợp.
10
Đinh Duy Chương Khóa luận tốt nghiệp
1.2.1.2. Đặc điểm của phương pháp này
9 Người khiếm thính sử dụng phương tiện ngôn ngữ dấu hiệu để đọc và viết
chính tả. Nhận biết ngôn ngữ dấu hiệu được dựa trên hình ảnh và sự di chuyển của tay.
Cấu trúc trực quan của ngôn ngữ dấu hiệu có thể truyến đạt những khái niệm phức tạp
nhanh chóng và chính xác.
9 Việc đề cập nhận biết trực quan là rất quan trọng cho những người khiếm
thính vì khả năng của ngôn ngữ dấu hiệu là ở khoảng cách, tuỳ thuộc vào khoảng cách
mà cho ta sự nhận biết chính xác hay không chính xác. Tuy nhiên vẫn có lỗi và hệ
thống này có thể gây khó chịu cho người sử dụng.
9 Ngôn ngữ dấu hiệu cập nhật không nhanh, sự di chuyển cụ thể đưa ra những
khái niệm và những từ . Trong những lần thực nghiệm đã đưa ra dấu hiệu hình ảnh của
những từ ứng với miệng và ngôn ngữ cử chỉ. Hình dưới chỉ ra 2 khung từ 1 video clip
của ngôn ngữ dấu hiệu (BSL).
Hình 3: Các video clip
1.2.1.3. Phương thức
9 Thí nghiệm với 8 người khiếm thính. Trong suốt quá trình thực nghiệm hướng
nhìn của mỗi người được ghi vào một video clip.
11
Đinh Duy Chương Khóa luận tốt nghiệp
9 Từ việc kiểm tra video clip hình 3. Video clip đã được đưa ra trên màn hình
PC và người xem clip từ khoảng cách cố định. Sự di chuyển được ghi lại trong suốt
quá trình xem sử dụng một hệ thống nhìn “Quick Glance”. Hệ thống này sử dụng tia
hồng ngoại để ghi lại hình ảnh ở tốc độ 30Hz.
9 Hướng nhìn được ghi lại dưới dạng một file text và file này tương ứng với 2
phút video clip trong quá trình phân tích.
1.2.1.4. Kết quả của việc phân tích hình ảnh
9 Về mặt không gian: Việc đặt toạ độ (x,y) cho 3 sự kiện (User A, User B, User
C, và các vấn đề liên quan đến khiếm thính) được thể hiện trên hình 4, hình 5, hình 6
User A
Hình 4: Phân vùng trong không gian của User A
User B
Hình 5: Phân vùng trong không gian của User B
12
Đinh Duy Chương Khóa luận tốt nghiệp
User C
Hình 6: Phân vùng trong không gian của User C
9 Hình này tương ứng với video clip thứ hai, kết quả tương tự như video clip
thứ nhất. Quan sát sự di chuyển của 8 vật thể sẽ biết được những điểm giống nhau.
Trong mỗi trường hợp, việc quan sát được tập trung trên bề mặt của dấu hiệu video
clip, thỉnh thoảng có sự trệch tới những vùng khác nhau phổ biến trên trục X qua bề
mặt của dấu hiệu (User A và User C). Hai vật thể (một trong những vật thể đó là User
B) là trung tâm rất chuẩn xác với một vài sự trệch hướng. Độ chính xác là 10x10 pixel
trong mỗi một hình ảnh. Những điểm chính xác chủ yếu là quanh bề mặt trung tâm của
dấu hiệu.
9 Hình 8 chỉ ra trung tâm User B, được phủ vói những vòng đưa ra mô tả góc
quay quanh một điểm trung tâm
Hình 7: Với User B
13
Đinh Duy Chương Khóa luận tốt nghiệp
9 Vòng tròn là tâp trung vị trí trung bình của tất cả các mẫu và được vẽ ở góc cố
định 2.5o, 5o và 10o từ trung tâm và được làm sạch từ hình này. Phần lớn điểm quan
sát nằm trong khoảng 2.5o của trung tâm: hơn 75% các điểm rơi vào vòng tròn này với
User A và C, hơn 90% cho User B.
9 Về mặt thời gian: Hình 8 chỉ ra hình ảnh của User A trong video clip thứ hai.
Giá trị trung bình của trục Y là 185 và những điểm làm sạch được chỉ ra. Hướng nhìn
được tập trung chủ yếu quanh vị trí này, thỉnh thoảng cũng có sự sai khác. Sự sai khác
này là từ phần cuối đặc trưng ít hơn 0.5 giây và được tập trung trong trục X thông qua
điểm trung tâm. Trong chuỗi hình ảnh, dấu hiệu được nhìn thấy bên dưới
Hình 8: Tín hiệu thu được từ hình ảnh
1.2.1.5. Phân tích hệ số dư thừa
9 Kiểm tra video clip được mã hoá sử dụng mã hoá Baseline H.263 ( với bước
lượng tử cố định là 8) và số hệ số non-zero vẫn trong mỗi block sau sự bù chuyển
động, DCT và bước lượng tử được đếm. Hình 9 mô tả tổng số hệ số lượng tử dư thừa
non-zero trong mỗi vị trí block cho những khung inter-code 200 của chuỗi.
14
Đinh Duy Chương Khóa luận tốt nghiệp
Hinh 9: Hệ số dư thừa
9 Hình trên còn chỉ ra hệ số non-zero được tập trung quanh đầu, trên cơ thể và
cánh tay của người ra dấu hiệu. Điều này có thể được đáp ứng từ vị trí camera và
người ra hiệu không thể di chuyển tới vị trí đứng của họ trong chuỗi . Tuy nhiên sự tập
trung cao của hệ số non-zero ở những vùng trái và phải thấp hơn của chuỗi. Người ra
hiệu di chuyển cánh tay của họ tới một số vị trí nhưng năng lượng dư thừa phần lớn
giảm xuống từ sự di chuyển tay trong hai vùng này. Hệ số năng lượng dư thừa trong
vùng này liên quan tới mức thấp.
1.2.1.6. Kết luận
Từ kết quả thực nghiệm người sử dụng ngôn ngữ dấu hiệu đã đưa ra một sự
phù hợp trong phương pháp nhận biết của họ, điều này phù hợp với tất cả các vật thể
và tương ứng với sự quan sát trong khi nghiên cứu ngôn ngữ dấu hiệu. Việc chọn vị trí
sẽ cải thiện chất lượng của việc mã hoá chuỗi ngôn ngữ dấu hiệu hình ảnh. Sự quan
tâm của người sử dụng là tập trung trên những vùng có đặc điểm tốt quanh người ra
hiệu, với những cử chỉ bất ngờ của tay người. Những dấu hiệu này có thể dành những
vùng ưu tiên của hình ảnh có trong không gian và biểu thị thời gian.
1.2.2. Nhận biết bằng cảm biến
Ở đây người ta dùng một hệ gồm nhiều sensor gắn với vi điều khiển và máy
tính. Thiết bị này được mô ta bởi hình sau.
15
Đinh Duy Chương Khóa luận tốt nghiệp
Hình 10: Sơ đồ kết nối hệ đo với vi điều khiển và máy tính
Hệ nhận biết bằng cảm biến bao gồm các thành phần:
9 Một máy tính PC
9 Một vi điều khiển
9 Hệ thống loa
9 Hệ sensor
1.2.3. Nguyên tắc vận hành của việc sử dụng cảm biến
1.2.3.1. Hệ thống
9 Hệ sensor sẽ truyền tín hiệu cho vi điều khiển. Vi điều khiển sẽ đọc tín hiệu
này và truyền dữ liệu cho máy tính sử lý và kết quả sẽ được đưa ra loa. Hoặc hiển thị
dạng text.
9 Cụ thể là từ tín hiệu xung của hệ sensor vi điều khiển sẽ đọc tín hiệu đó và xử
lý, tiếp theo vi điều khiển sẽ gửi dữ liệu dưới dạng ASCII cho máy tính qua cổng
COM.
9 Thành phần của hệ thống là Accele Glove, cung cấp cách đo vị trí của các
ngón tay tương ứng với véc tơ trọng trường.
9 Bằng việc sử dụng lối ra số của sensor gia tốc MEMS gắn trên các ngón tay
và sử dụng vi điều khiển. Máy tính PC được sử dụng cho việc phân tích dữ liệu và
thực hiện các thuật toán. Khi lập trình với các thuật toán, vi điều khiển sẽ chuyển tới
bộ tạo ngưỡng tiếng nói với những ký tự ASCII, bởi vậy mà trên thực tế người ra hiệu
những từ “speaks out” và những câu ngắn.
16
Đinh Duy Chương Khóa luận tốt nghiệp
1.2.3.1.1. Định vị sensor
Tay người có 17 điểm tích cực trên cổ tay: 3 trên mỗi ngón trỏ, ngón giữa,
ngón nhẫn và ngón út, 3 trên ngón cái và pitch roll trên cổ tay. Những điểm cần thiết
giữa những dấu hiệu là nhân tố chủ yếu, nếu hệ thống có thông tin đầy đủ, không rõ
ràng sẽ giảm tốc độ nhận dạng. Gắn liền với 5 trục sensor trên đầu ngón tay, những
điểm của ngón tay và điểm đầu của ngón tay cái, ngoại trừ tình trạng có nhiều nghĩa
cho 26 dáng điệu của bảng chữ cài ASL. Việc định vị trục được chỉ ra trên hình sau:
Hình 11: Các trục trên sensor khi gắn lên tay
1.2.3.1.2. Tín hiệu thu được
Vị trí đọc được là chu kỳ của tín hiệu lối ra. Khi một sensor ở vị trí ngang chu
kỳ là 50%. Khi góc nghiêng của nó từ +90o tới –90o chu kỳ biến đổi từ 37.5% tới
62.5%. Vi điều khiển giám sát lối ra và đo trong khoảng thời gian lối ra ở mức cao,
nếu sử dụng bộ đếm 10 ms thì giải đo được sẽ là từ (375/10) = 37 count với 90o tới tối
đa là (625/10) = 62 count với –90o, một span là 25 count. Sự không tuyến tính và bão
hoà hai đặc tính này của thiết bị làm giảm dải sử dụng xuống còn . Vì thế độ
phân giải là 6.5
o80±
o. Lỗi của một số lần đo được tìm thấy là 1± bít, hay . Sai số này
lớn hơn so với Wise (5
o5.6±
o) và nhỏ hơn Quam (11o). CyberGlove có thể được hiệu chỉnh
đo những dải khác nhau của những biến tố sử dụng 8 bit, nhưng độ chính xác bị giảm
xuống, giảm sự lặp lại.
1.2.3.1.3. Thu thập dữ liệu
9 Độ rộng 10 xung được đọc bởi vi điều khiển, bắt đầu với trục X tiếp theo là Y
lần đầu là ngón cái. Đưa ra 10 ms là tập trung tất cả các vị trí của ngón tay. Trong suốt
quá trình phân tích trạng thái của các ngón tay thì vị trí được gửi như một gói dữ liệu
10 byte qua cổng nối tiếp của PC và được ghi lại dưới file text.
17
Đinh Duy Chương Khóa luận tốt nghiệp
9 Mọi ký tự dấu hiệu của bảng chữ cái. Ký tự “J” và “Z” được lấy mẫu ở vị trí
cuối cùng. Điều này cho phép bắt được những sự khác nhau và những người ra hiệu
tương tự trong 26 file với ma trận 10x10.
1.2.3.2. Lựa chọn tính năng và nguồn gốc
9 Tập hợp 10 quá trình đo, hai trục trên một ngón tay, đưa ra một véc tơ của dữ
liệu. Như đã được chỉ ra trong lời phần trên: Uras đưa ra đặc điểm diễn biến của sự
việc, Lamar rút ra được “eigenvalues” và “eigenvalue” từ những hình ảnh. Kramer
không thử đặc tính ban đầu, nhưng làm việc với véc tơ dữ liệu, như khi Shahabi làm,
ông khẳng định lần đầu tiên sử dụng hàng loạt quyết định cho việc phân tích dữ liệu
căn cứ vào xúc giác, ông cũng khẳng định lần đầu tiên sử dụng “Bavesian Classifier”
cho phân tích dữ liệu căn cứ vào xúc giác và sử dụng việc so sánh “Back Propagation
Neural Networks” với “Bayesian Decision Tree” để nhận ra dữ liệu tĩnh. Trái với kết
quả này ông cho rằng “Decision trees” không phù hợp với việc nhận dạng dấu hiệu, ta
phải chỉ rõ và xác minh sự trái ngược này.
9 Mục tiêu là rút ra một tập hợp những đặc điểm để đưa ra cử chỉ mà không có
sự tối nghĩa trong “Posture Space”. Nếu Stokoe và Costello đã định nghĩa cử chỉ như
là sự kết hợp của hình ảnh và hướng của tay, và hai tính năng này phù hợp để đưa ra
một số ký tự dễ hiểu, sau đó việc xử lý rút ra những đặc trưng sẽ lấy lại hai thành phần
này từ dữ liệu đơn giản. Accele Glove khác với tất cả thiết bị khác được tìm thấy,
trong đó nó có thể không chỉ đo độ uốn của ngón tay mà còn xác định hướng của tay
mà không cần sensor khác ở bên ngoài như bộ theo dõi từ trường. Hay bộ theo dõi siêu
âm của Mattel’s. Ở đây ta định nghĩa một véc tơ P trong không gian cử chỉ.
9 P=[hình ảnh tay, hướng lòng bàn tay]
9 P là sản phẩm của véc tơ dữ liệu đơn giản D bằng việc chuyển đổi ma trận T:
P=D*T=[Xg Yg yi] (1)
9 Véc tơ dữ liệu đơn giản ở đây là:
D = [xt yt xi yi xm ym xr yr xp yp] (2)
9 T = ngón cái, I = ngón trỏ, M = ngón giữa, R = ngón nhẫn, P = ngón út
9 Hình ảnh tay được chia thành hai phần con, Xg và Yg. Phần đầu tiên đo độ
cuộn tương ứng với cổ tay, phần thứ hai đo độ lên xuống của ngón tay. Thành phần
khác của không gian cử chỉ là hướng của lòng bàn tay yi, lớp cử chỉ chia thành 3 lớp
18
Đinh Duy Chương Khóa luận tốt nghiệp
con: closed, horizontal và vertical (hay open). Chỉ số vị trí y được sử dụng cho những
cử chỉ này. Ma trận chuyển vị:
T
T
0000001000
1010101010
0101010101
= (3)
9 Tổng hợp các thành phần cử chỉ
{ }∑ ∈= prmitnXX ng ,,,,,
{ }∑ ∈= prmitnyY ng ,,,,,
[ ]4Datayi =
9 Những thành phần trên được gọi: vị trí tổng quan X (Xg), vị trí tổng quan Y
(Yg), và hướng yi (lớp con)
9 Thành phần đầu Xg được đưa ra bằng tổng của những tín hiệu x trên véc tơ
ban đầu, điều này cho chúng ta biết về hướng của lòng bàn tay, đo sự quay của tay khi
trong vị trí “horizontal” và đo sự lên xuống của ngón tay khi các ngón tay ở vị trí
“Vertical”. Thành phần thứ hai, Yg, mô tả hoàn toàn hình ảnh của tay như tổng số các
khớp ngón tay, điều này đạt được bằng cách cộng tất cả 5 tín hiệu y. Thành phần thứ
ba của véc tơ D là yi. Với các tính năng mới này, các mẫu này được hình dung một
cách dễ dàng như là các điểm trong không gian 3 chiều.
1.2.3.3. Phân loại
9 Không gian mẫu bao gồm 50 véc tơ cử chỉ cho mỗi ký tự trong 26 ký tự. Hình
12 chỉ ra giá trị trung bình 50 mâu của một ký tự trong 26 ký tự trong không gian cử
chỉ.
19
Đinh Duy Chương Khóa luận tốt nghiệp
Hình 12: Các cử chỉ trong không gian
9 Hình 13 chỉ ra giá trị trung bình được chiếu trên trục “Vertical”, vị trí y của
ngón trỏ yi ứng với trục này.
Hình 13: Chiếu lên trục “Vertical”
9 Nói chung, việc giải quyết một số vấn đề nhận dạng đa lớp có thể thực hiện
được với phân loại đơn. Tuy nhiên việc phân loại này sẽ có độ phức tạp cao, như đã
được tìm thấy trong phần trên. Thay vào đó ta chia không gian sử dụng thành hai phần,
20
Đinh Duy Chương Khóa luận tốt nghiệp
tạo ra 3 lớp con chính được nhóm rõ ràng trong hình 13: “Vertical”, “Horizontal”, và
“Closed”.
9 Sau khi phân biệt thứ tự đầu tiên này, độ phức tạp của việc phân loại giảm đi,
và dễ dàng thực thi sử dụng một vi điều khiển BasicStamp đơn chíp. Và quá trình nhận
dạng một cử chỉ có thể được mô tả như sau:
• Bước 1: Các lớp con được phân biệt sử dụng hai phần xác định bởi vị trí
ngón trỏ trong hình 13
• Bước 2: Các thành phần của mỗi lớp con được chiếu lên mặt phẳng xác
định lớp con. Nói một cách khác, chỉ Xg và Yg được đưa vào sau tính
toán trong xử lý phân loại. Hình 14.a,b,c chỉ ra sự suy giảm mới trong kích
thước.
21
Đinh Duy Chương Khóa luận tốt nghiệp
Hinh 14: Sự suy giảm
• Bước 3: Nếu việc thực hiện mới không đủ để phân biệt một ký tự sử dụng
một quy tắc đơn giản (quy tắc Bayes, hàm tuyến tính), thì một lớp con mới
được gửi tới phân loại khác để tìm kiếm những khác biệt riêng từ dữ liệu
ban đầu.
9 Lớp con “Vertical” được định nghĩa bởi tất cả những lớp dưới mặt phẳng xác
định bởi yi = 9. Những ký tự ‘B’, ‘D’, ‘K’, ‘L’, ‘R’, ‘U’, ‘V’, và ‘W’ thuộc lớp con
này. Lớp con “Horizontal” được đặt giữa mặt phẳng xác định bởi yi = 9 và mặt phẳng
xác định bởi yi = 12. Những ký tự ‘C’, ‘E’, ‘G’, ‘H’, ‘J’, ‘P’, ‘T’, ‘X’, và ‘Z’ thuộc lớp
con này. tất cả những lớp với yi > 12 sẽ thuộc lớp con “Closed”. Đó là trong trường
hợp cho các ký tự ‘A’, ‘F’, ‘I’, ‘M’, ‘N’, ‘O’, ‘Q’, ‘S’, và ‘Y’.
9 Lưu ý rằng, mặc dù dấu hiệu ‘F’ không giống như sử dụng một nắm tay khép
kín, và ‘D’ không giống như bàn tay mở ở vị trí dọc, chúng được phân loại như trên vì
việc phân loại chỉ dựa trên trạng thái của ngón tay trỏ.
22
Đinh Duy Chương Khóa luận tốt nghiệp
1.2.3.4. Cấu trúc có thứ tự
Dưới đây là sơ đồ cấu trúc có thứ tự
Hình 15: Sơ đồ cấu trúc có thứ tự
Hàng loạt quyết định sử dụng ký hiệu được đưa ra bởi Erenshteyn. Khối đầu
tiên trong trật tự này liên quan tới “feature extraction” ở đó Xg, Yg, và yi được tính
toán sử dụng phương trình (1), (2), và (3), các mẫu không gian 3 chiều được tạo dạng.
“Dispatcher” đầu tiên thực hiện một sự so sánh đơn giản trên Yi để phân biệt ba lớp
con được chỉ ra trên hình 15. Mức thứ hai của “Dispatchers” sẽ phân biệt xa hơn tới
các bộ phận khác của các lớp con dựa trên các tính năng tương tự của chúng, như cử
chỉ ‘flat’ and ‘rolled’ trong hình 15. Người nhận dạng sẽ nhìn vào các thuộc tính trong
không gian tính năng để cuối cùng nhận ra các ký tự từ tập hợp các lớp con. Ví dụ như
trong hình 15, ký tự ‘F’ dễ dàng nhận từ phần còn lại bằng việc vẽ một đường tại Yg =
45. Giống như ‘F’, nhiều ký tự được nhận ra trong hai bước trong khi đó càng về cuối
thì càng khó khăn.
23
Đinh Duy Chương Khóa luận tốt nghiệp
1.2.3.5. Kết quả
9 Phương thức phân loại đã được thực thi như một chuỗi các câu lệnh ‘if-then-
else’ sử dụng Matlab, và đã được kiểm tra sử dụng tổng tất cả 1300 mẫu để đo tốc độ
nhận dạng, trước khi vi điều khiển được lập trình với các thuật toán. 21 trong 26 ký tự
đạt tới tốc độ nhận dạng 100% sử dụng phương thức thay thế lại. Ký tự ‘I’ và ‘Y’
trùng khớp với nhau, như được chỉ trên hình 15. Để nhận ra hai ký tự này, quy tắc
Bayes đã được áp dụng như sau: mẫu x được quy cho lớp wI nếu:
9 P(x|wI) p(wI) > p(x|wY) p(wY) (7)
9 Trong đó p(wI) là xác suất ưu tiên của ký tự ‘I’ và p(wY) là xác suất ưu tiên
của ký tự ‘Y’. Để ước lượng xác suất điều kiện p(x|wI) và p(x|wY), ta sử dụng biểu đồ
phân phối lớp trên Xg.
9 Tốc độ “misclassification” được đưa ra từ quy tắc Bayes, dựa trên biểu đồ,
được ước lượng như là phần trăm của các mẫu được phân loại. Nói một cách cụ thể,
hai mẫu của Y được “missclassified” như những thành phần của lớp I, tốc độ lỗi là:
E(Y) = 2 / 50 = 4%.
9 Ký tự ‘R’, ‘U’, và ‘V’ là trường hợp khó khăn nhất, khi các phân phối lớp của
chúng trùng nhau, do đó không thể chỉ một hàm tuyến tính để phân biệt chúng mà
không xảy ra lỗi, hai thành phần của lớp ‘U’, và một thành phần từ lớp ‘V’ và lớp ‘R’
được “misclassification” làm giảm độ chính xác tới 90%, 78% và 96% một cách tương
ứng. Tính năng được sử dụng để lắp ráp biểu đồ trong trường hợp này là vị trí X của
ngón trỏ, hay sự giạng ra của ngón tay.
1.2.3.6. Kết luận về phương pháp này
Với hiểu biết của chúng ta, việc sử dụng sensor gia tốc tại các điểm nối PIP
trong hệ thống “self-contained” để nhận ra bảng chữ cái ASL chỉ là lý thuyết. Việc đưa
những dấu hiệu như là tập hợp các mẫu 3-D và phép chiếu sau đó lên mặt phẳng cho
phép khắc phục vấn đề về chiều cũng như tiếp cận lý thuyết trong việc nhận dạng hình
ảnh của tay. Hệ thống đã chứng minh tính linh động và chính xác cho dấu hiêu nhận
dạng từ những người sử dụng khác nhau thậm chí họ là những người chưa có kinh
nghiệm trong vấn đề ra hiệu. Không giống như CyberGlove và DataGlove, độ chính
xác không phụ thuộc vào người sử dụng, kích thước tay. Vấn đề chính của việc sử
dụng sensor gia tốc như là các sensor vị trí góc là chúng đáp ứng sự thay đổi với véc tơ
trọng trường, nhưng chúng không nhạy cảm với cử động quay. Do đó sử dụng Accele
Glove với dấu hiệu “Horizontal” là khó có thể thực hiện, cũng như với các dấu hiệu
24
Đinh Duy Chương Khóa luận tốt nghiệp
NASA. Một thuận lợi của phương pháp chiếu là sau khi phép chiếu của một lớp con
lên mặt phẳng tương ứng của nó, có thể tìm ra khoảng trống ở đó dấu hiệu mới có thể
được đưa ra. Đó là trường hợp với ‘space’ được thêm vào bảng chữ cái ASL để phân
biệt giữa các từ, và ‘enter’ để việc phân biệt các từ hay các câu được hoàn thành. Hai
lệnh này thực sự chuyển đổi hoàn toàn hệ thống này thành Finger Spelling tới bộ tạo ra
tiếng nói.
1.2.4. So sánh hai phương pháp
9 Phân tích hình ảnh
• Ưu điểm
Không bị cản trở bởi chuyển động
Độ nhạy không bị mất bởi việc tiếp cận
• Nhược điểm
Dễ bị nghẽn dữ liệu
Với camera đa chức năng có thể gặp khó khăn và tốn thời gian
Bị ảnh hưởng bởi ánh sáng
Giá thành cao
9 Phân tích bằng cảm biến
• Ưu điểm
Dữ liệu thu được chính xác
Có thể thu thập được hướng, vị trí và dữ liệu xúc giác
Không bị nghẽn dữ liệu
Giá thành thấp
• Nhược điểm
Yêu cầu nguồn cung cấp
Độ nhạy bị suy giảm bởi việc tiếp cận
Có thể bị hạn chế bởi chuyển động
Từ việc phân tích các phương pháp trên, em thấy rằng phương pháp dùng cảm
biến là phù hợp cho việc xây dựng một hệ thống nhỏ gọn
25
Đinh Duy Chương Khóa luận tốt nghiệp
Chương 2. TÌM HIỂU VỀ CẢM BIẾN VÀ VI ĐIỀU
KHIỂN
2.1. Tìm hiểu về cảm biến gia tốc
2.1.1. Nguyên lý làm việc của cảm biến
Có nhiều loại cảm biến có thể đo được các thông số khác nhau. Trong đó việc
đo góc là được yêu cầu trong nhiều lĩnh vực như trong tự động hoá và trong công
nghiệp. Sensor có thể được chia thành nhiều loại theo nguyên lý chung như: Từ
trường, quang và điện dung.
2.1.2.Sensor gia tốc ADXL202
Có rất nhiều loại sensor có thể áp dụng được trong lĩnh vực này. Song hiện
nay sensor gia tốc ADXL202 được dụng khá phổ biến và đặc biệt là sự tiện lợi của
sensor này nên trong đề tài em dùng sensor ADXL202.
2.1.2.1. Tính năng
9 Sensor này được tích hợp trên một chíp đơn
9 Đo được cả gia tốc động và tĩnh
9 Người sử dụng có thể điều chỉnh được chu kỳ lối ra
9 Nguồn cung cấp thấp < 0.6mA
9 Đáp ứng nhanh
9 Dải thông có thể hiệu chỉnh nhờ một tụ đơn. Có độ phân giải 5mg ở dải thông
60Hz
9 Điện áp vận hành +3V tới +5.25V
9 Độ sốc là 1000g
2.1.2.2. Ứng dụng
9 Đo đọ nghiêng
9 Ghép nối máy vi tính
9 Hệ thống bảo mật
26
Đinh Duy Chương Khóa luận tốt nghiệp
2.1.2.3. Mô tả chung
9 ADXL202 gia thành thấp, nguồn cung cấp nhỏ. Có dải đo gia tốc gg 10/2 ±±
có thể đo được cả hai gia tốc động và tĩnh
9 Lối ra là tín hiệu số tương ứng với gia tốc trên hai trục. Lối ra có thể đo trực
tiếp nhờ bộ đếm của vi điều khiển mà không cần bộ biến đổi AD hay một bộ logic nào.
Chu kỳ lối ra được hiệu chỉnh từ 0.5ms tới 10ms thông qua một điện trở (Rset). Nếu
điện áp lối ra được đề cập thì điện áp này sẽ cân xứng với gia tốc sẵn có từ hai chân
XFilt và YFilt của sensor
9 Dải thông của ADXL202 có thể được đặt từ 0.01 Hz tới 5 kHz thông qua hai
điện trở Cx và Cy. Nhiễu nền điển hình là Hzg /500µ cho phép tín hiệu dưới 5mg
được giải quyết cho dải thông dưới 60 Hz.
9 Dải nhiệt độ làm việc của sensor là 0oC tới +70oC, tuy nhiên trong công
nghiệp lại là từ -40oC tới +85oC
2.1.2.4. Sơ đồ khối chức năng
Dưới đây là sơ đồ khối chức năng của sensor ADXL202.
Hình 20: Sơ đồ khối chức năng
27
Đinh Duy Chương Khóa luận tốt nghiệp
2.1.2.5. Cấu hình chân
Hình 21: Cấu hình chân
2.1.2.6. Nguyên lý vận hành
9 Lối ra của bộ giải điều chế điều khiển trạng thái bộ điều chế chu kỳ công suất
thông qua một điện trở 32kΩ. Ở điểm này một chân sẵn có trên trên một kênh cho
phép người sử dụng dặt dải thông của tín hiệu của thiết bị bằng một tụ điện thêm vào
đó. Bộ lọc này cải tiến độ phân giải của phép đo và chống nhiễu xuyên kênh.
9 Sau khi qua bộ lọc thông thấp, tín hiệu được biến đổi thành tín hiệu điều chế
chu kỳ công suất bởi trạng thái DCM. Một điện trở sẽ được đặt để quyết định đến chu
kỳ của T2, ở đó T2 biến đổi trong khoảng 0.5ms đến 10ms. Ở gia tốc 0g tương ứng với
50% chu kỳ công suất. Tín hiệu gia tốc có thể được quyết định bởi việc đo độ rộng
xung của T1 và T2 bằng bộ đếm hay bộ định thời của vi điều khiển.
9 Điện áp lối ra tương tự được lưu trữ bằng bộ đệm tín hiệu từ chân XFilt và
YFilt, hay thông qua tín hiệu chu kỳ công suất thông qua bộ lọc RC tạo thành tín hiệu
một chiều.
9 ADXL202 sẽ vận hành với điện áp cung cấp 3.0V đến 5.25V
9 T1 và T2 được biểu diễn bằng hình sau
Hình 22
2.1.2.7. Các thành phần phụ trợ
Ứng dụng chủ yếu là một tụ điện đơn 0.1µF, CDC, sẽ bỏ được nhiễu do nguồn
cung cấp. Tuy nhiên trong một số trường hợp thiết bị số như vi điều khiển chia sẻ
giống như nguồn cung cấp, nhiễu trên nguồn có thể gây nên nhiễu trên lối ra của
28
Đinh Duy Chương Khóa luận tốt nghiệp
ADXL202. Điều này thường thấy như hiện tượng gợn sóng của điện áp ở chân XFilt và
YFilt. Nếu thêm vào một số thiết bị cần thiết như một điện trở 100Ω hay một thanh
ferit, những thiết bị này có thể được chèn vào đường cung cấp nguồn cho ADXL202
2.1.2.8. Thiết kế một số thủ tục cho ADXL202
9 Thiết kế thủ tục cho việc sử dụng ADXL202 với lối ra chu kỳ công suất và tụ
lọc. Một số vấn đề liên quan đến dải thông độ phân giải của tín hiệu và yêu cẩu về mặt
thời gian được xem xét trong những phần sau:
9 Vdd: ADXL202 có 2 chân cung cấp nguồn 13 và 14. Hai chân này sẽ được
nối trực tiếp với nhau
9 COM: chân 4 và 7, hai chân này được nối trực tiếp với nhau và chân 7 được
nối tới đất.
9 Vtp: Chân này liên quan đến việc kết nối của sensor
9 Tụ CDC
9 ST
9 Giải mã chu kỳ công suất: Gia tốc tỉ lệ với T1/T2
2.1.2.9. Đặt dải thông cho ADXL202 sử dụng Cx và Cy
9 Dải thông của ADXL202 có thể đặt một cách đơn giản nhờ công thức:
),(
3
5
YX
dB C
FF µ=−
9 Từ công thức trên ta có bảng sau:
Dải thông Giá trị của tụ
10 Hz
50 Hz
100 Hz
200 Hz
500 Hz
5 kHz
0.47 µF
0.10 µF
0.05 µF
0.027 µF
0.01µF
0.001 µF
29
Đinh Duy Chương Khóa luận tốt nghiệp
Bảng 1
2.1.2.10. Đặt DCM với RSET
9 Để thay đổi T2 ta dùng công thức
Ω
Ω=
M
RT SET
125
)(2
9 Từ công thức trên ta có bảng thông số sau:
T2 RSET
1 ms
2 ms
5 ms
10 ms
125 kΩ
250 kΩ
625 kΩ
1.25 MΩ
Bảng 2
2.1.2.11. Sử dụng ADXL202 để đo độ nghiêng
9 Một trong những ứng dụng phổ biến của ADXL202 là đo độ nghiêng. Gia tốc
sử dụng lực trọng trường như là một véc tơ đầu vào để quyết định hướng của vật thể
trong không gian
9 Gia tốc là nhạy nhất trong đo độ nghiêng khi trục nhạy của nó trực giao với
lực trọng trường, i.e., song song với bề mặt của trái đất. Ở hướng nhạy sẽ thay đổi độ
nghiêng lớn nhất. Khi gia tốc được định hướng trên trục lực trọng trường, i.e., gần với
việc đọc +1 g hay –1 g của nó. Khi gia tốc vuông góc với lực trọng trường, lối ra của
nó sẽ thay đổi gần như 17.5 mg trên một độ nghiêng, đặc biệt với trường hợp là 450 thì
gia tốc chỉ thay đổi 12.3 mg trên độ nghiêng và độ phân giải giảm xuống.
9 Sensor gia tốc ADXL202 có hai trục đo được thể hiện trên hình vẽ.
30
Đinh Duy Chương Khóa luận tốt nghiệp
Hình 23: Trục đo của sensor
2.1.2.12. Biến đổi gia tốc thành độ nghiêng
9 Khi gia tốc được định hướng cả hai trục X và Y song song với bề mặt của trái
đất sensor này có thể sử dụng hai trục để đo Roll và Pitch. Một tín hiệu lối ra từ gia tốc
được biến đổi thành giá trị biến thiên từ -1 g tới +1 g. Góc nghiêng được tính toán
bằng công thức:
9 Pitch = ASIN (Ax/1 g)
9 Roll = ASIN (Ay/1 g)
9 Để không vượt quá phạm vi tính toán có thể cho gia tốc lối ra lớn hơn ± 1 g
để giảm độ rung, độ sốc hay một gia tốc khác.
2.1.2.13. Đo góc quay 360o
Ta có thể đo được đầy đủ 360 o của hướng quay quanh lực trọng trường bằng
cách sử dụng hai hướng gia tốc vuông góc với nhau.
Hình 24: Đo góc quay 3600
2.1.3.Phương pháp chuẩn
Như ta đã biết lổi ra số của sensor có dạng
31
Đinh Duy Chương Khóa luận tốt nghiệp
9 Trường hợp này ứng với cả hai kênh X và Y
9 Trong đó: T2 là chu kỳ dữ liệu lối ra trên các trục X và Y, T1 là độ rộng xung
tỷ lệ với góc nghiêng. Đặc biệt T2 có thể đặt được (10ms)
9 Có nhiều cách đo độ rộng của T1, tuy nhiên khi ghép nối với vi điều khiển
BasicStamp ta thường dùng bộ đếm của vi điều khiển để do T1 tương đối chính xác
9 Điều quan trọng là xác định được quy luật của sự phụ thuộc của tín hiệu xung
vào góc nghiêng, tức là ta phải xác định được một hàm biểu diễn được số xung lối ra
phụ thuộc vào góc nghiêng.
9 Về dạng đồ thị chúng như nhau nhưng pha lại lệch nhau 90o nên có cùng một
dạng hàm. Ở đây nếu dùng phần mềm Origin ta sẽ fit được hàm có dạng
⎟⎠
⎞⎜⎝
⎛ −=
w
xxAy cπsin
. Trong đó y là số xung lối ra trên kênh X hoặc Y, x là góc nghiêng
của sensor, còn w và xc và A là hằng số nào đó tuỳ thuộc vào sensor.
2.2. Tìm hiểu về vi điều khiển BasicStamp
Vi điều khiển BasicStamp được đưa vào sử dụng bởi các kỹ sư lần đầu tiên
vào năm 1992. Tháng 11 năm 2004 hãng Parallax đã đưa ra hàng triệu modul
BasicStamp vào quá trình sử dụng. Qua 12 năm họ đã đưa ra 6 mẫu và rất nhiều kiểu
đóng gói. Vi điều khiển này có rất nhiều đặc điểm thuận lợi cho người sử dụng, cụ thể
sẽ được giới thiệu ở phần sau.
2.2.1.Nguyên lý vận hành
9 Modul BasicStamp là vi điều khiển được thiết kế cho rất nhiều ứng dụng.
Nhiều đề tài yêu cầu gắn hệ thống với một vài thiết bị thông minh sử dụng modul
BasicStamp để điều khiển.
9 Mỗi vi điều khiển BasicStamp được tích hợp trên một chíp đơn bộ nhớ trong
RAM và EEPROM, bộ hiệu chỉnh thế 5V, một số chân vào ra I/O (mức TTL, 0 – 5V).
Modul BasicStamp có thể chạy vài nghìn lệnh trên một giây và có thể lập trình đơn
giản, tuỳ theo dạng ngôn ngữ lập trình của Basic và gọi là PBASIC.
2.2.2.Phần cứng
9 Sơ đồ phần cứng và cấu hình chân của BasicStamp 2sx
32
Đinh Duy Chương Khóa luận tốt nghiệp
Hình 25: Sơ đồ phần cứng
Vi điều khiển BasicStamp có một số đặc điểm chính sau:
9 Kích thước nhỏ
9 Trình biên dịch BASIC được tích hợp sẵn bên trong
9 Chương trình được lưu trữ trong bộ nhớ cố định (nhưng có thể xoá được)
9 Có nhiều chân vào ra có thể giao tiếp được với nhiều thiết bị khác
9 Có thể thiết lập thành các modul hoặc các thành phần riêng biệt
9 Hiện nay có rất nhiều module BasicStamp nhưng chủ yếu được chia làm 2
loại: BS1 và BS2
9 Bản mạch vi điều khiển này bao gồm các khối chính sau:
• Chíp hợp dịch PBASIC
• Bộ nhớ chương trình: EEPROM với BS1 là 256byte, với BS2 là 2kbyte,
có thể ghi và xoá được
• Nguồn nuôi: Cho phép lối vào từ 6 – 15V, sau đó có bộ chuyển đổi thành
5V, nguồn 5V cũng dùng để cung cấp cho vi điều khiển
• Vi điều khiển này còn có mạch Reset
33
Đinh Duy Chương Khóa luận tốt nghiệp
9 Tuy nhiên trong đề tài này ta dùng BS2SX đây là sự mở rộng của BS2 về tốc
độ và bộ nhớ. Bộ vi điều khiển này hoạt động ở tần số 50MHz, với tốc độ nhanh hơn
2.5 lần so với BS2 do đó có thể thực hiện được 10000 lệnh trong một giây. Đồng thời
bộ nhớ EEPROM cũng tăng lên thành 16kbyte và chia làm 8 khối ngoài ra còn có
thêm 63 byte RAM dùng để lưu dữ liệu tạm thời.
2.2.3.Ngôn ngữ BasicStamp
9 Sự phát triển PBASIC cho ta cấu trúc đơn giản, dễ lập trình rất phù hợp cho
cấu trúc này và dễ dàng trong việc ghép nối điều khiển. Bao gồm nhiều cấu trúc lệnh
như: GOTO, FOR...NEXT, IF...THEN...ELSE,...
9 Hoặc để gửi dữ liệu từ vi điều khiển qua cổng COM
Again:
Debug cls, “Pin is: ”, dec in0
Pause 100
Goto Again
9 Đặc biệt có lệnh Pulsin để đo độ rộng xung lối ra của sensor khi ta ghép
sensor với vi điều khiển
9 Đo độ rộng xung trên lối vào chân 0 ở trạng thái cao
Pulsin 0,1,var1
9 Đo độ rộng xung trên lối vào chân 0 ở trạng thái thấp
Pulsin 0,0,var2
9 Code của chương trình đọc dữ liệu từ 6 sensor bằng vi điều khiển BasicStamp
và gửi dữ liệu qua máy tính ở phụ lục A.
34
Đinh Duy Chương Khóa luận tốt nghiệp
Chương 3. XÂY DỰNG THIẾT BỊ GĂNG TAY CẢM
NHẬN GIA TỐC
Với cơ sở lý thuyết trên ta xây dựng một thiết bị nhận biết ngôn ngữ dấu hiệu.
Thiết bị này được xây dựng chủ yếu bởi hai phần chính là thiết kế phần cứng và xây
dựng phần mềm. Một yếu tố quan trọng nữa trong vấn đề này là việc chuẩn hoá các
sensor, nếu việc chuẩn hoá càng chính xác thì hệ đo của ta càng chính xác hơn.
3.1. Thiết kế phần cứng
Phần cứng này bao gồm 6 sensor được gắn trên một găng tay, 6 sensor này
được nối với vi điều khiển và vi điều khiển này được nối với máy tính PC. Sơ đồ
nguyên lý được chỉ bởi hình dưới.
Hình 27: Sơ đồ nguyên lý
Thành phần chính bao gồm khối cấp nguồn, vi điều khiển BasicStamp và các
lối ra cho các sensor.
Vi điều khiển ghép nối với máy tính thông qua cổng COM như được thể hiện
trên hình vẽ.
Modul phần cứng cụ thể có dạng sau
35
Đinh Duy Chương Khóa luận tốt nghiệp
Hình 28: Modul phần cứng
Các sensor được gắn trên một găng tay, ở vị trí đầu ngón tay. Sensor sẽ gửi tín
hiệu tới vi điều khiển bằng hệ thống dây như được thấy trong hình vẽ. Các sensor này
được gắn ở vị trí thuận lợi cho việc ra hiệu.
3.2. Chuẩn hoá sensor
Thiết bị chuẩn hoá được chỉ ra bởi hình dưới
Hình 29: Hệ chuẩn góc
Các sensor lần lượt sẽ được gắn lên hệ chuẩn góc. Ứng với mỗi góc quay ta sẽ
ghi lại giá trị xung lối ra.
36
Đinh Duy Chương Khóa luận tốt nghiệp
Ở đây ta sẽ thay đổi góc nghiêng của sensor 2 độ một, sở dĩ như vậy là do
trong thiết bị của ta không cần sự chính xác đến từng độ một. Những cử chỉ sai khác
một hoặc vài độ được coi như trạng thái đứng yên.
Vi điều khiển BasicStamp được gắn với sensor để đo độ rộng xung lối ra
tương ứng vơi sự thay đổi góc nghiêng. Thực hiện với 5 sensor ta được kết quả như
hình vẽ
Hình 30: Sự phụ thuộc số xung lối ra vào góc nghiêng (kênh x)
Từ hình trên ta thấy các sensor tuy có các thông số giống nhau nhưng vẫn bị
lệch một khoảng offset. Tuy nhiên đặc tuyến thì hoàn toàn giống nhau, đây là trường
hợp tín hiệu trên kênh X. Dùng phần mềm Matlab ta có thể fit được hàm biểu diễn sự
phụ thuộc giữa xung lối ra vào góc nghiêng, đây là hàm sin được thể hiện bởi công
thức:
⎟⎠
⎞⎜⎝
⎛ −=
w
xxAy cπsin
Từ công thức này ta sẽ tính ngược lại được góc nghiêng của sensor theo độ
rộng xung.
37
Đinh Duy Chương Khóa luận tốt nghiệp
Với lối ra trên kênh Y thì hoàn toàn tương tự, tín hiệu thu được chỉ lệch pha
so với tín hiệu trên kênh y, cụ thể là:
Hình 31: Sự phụ số xung lối ra vào góc nghiêng (kênh Y)
Từ hai hình trên ta thấy tín hiệu trên các kênh chỉ khác nhau một hằng số, tuy
có tồn tại một sai số nhỏ đặc biệt là ở những đoạn không tuyến tính. Khi dịch offset ta
được hình sau:
38
Đinh Duy Chương Khóa luận tốt nghiệp
KênhX
Hình 32: Khi đã dịch offset (kênh X)
Kênh Y
Hình 33: Khi đã dịch offset (kênh Y)
Khi dịch offset ta thấy dạng độ thị của các sensor tương đối trùng khớp, đặc
biệt là ở những đoạn tuyến tính. Sự sai khác chủ yếu tập trung ở vùng max và min.
Trong thiết bị này ta cho phép sai số lên tới 50 nên sự sai khác này không hề đáng
ngại.
39
Đinh Duy Chương Khóa luận tốt nghiệp
3.3. Xây dựng phần mềm
3.3.1.Viết chương trình cho vi điều khiển BasicStamp
Ở đây ta phải viết chương trình cho BasicStamp để đọc dữ liệu từ sensor để
gửi vào máy tính để xử lý tiếp. Chương trình sau khi viết xong phải được nạp cho vi
điều khiển quá trình này được thể hiện bởi hình sau:
Hình 34: Quá trình nạp chương trình cho vi điều khiển
Hình trên cho thấy các giá trị vi điều khiển gửi giá trị xung tới cổng COM
của máy tính. Để chuẩn hóa được ta phải thông qua bước này. Tức là sẽ đọc giá trị
xung tương ứng với sự thay đổi 20 một của sensor, kết quả này sẽ được lưu vào một
file.
3.3.2.Chương trình trên máy tính
Ta có thể đọc dữ liệu từ BasicStamp và hiển thị kết quả trên màn hình LCD.
Trong đề tài này ta sẽ xử lý dữ liệu trên máy tính.
Như ta đã biết với mỗi ký tự bảng chữ cái đều có một trạng thái nhất định của
tay. Vấn đề đặt ra ở đây là làm thế nào để phân biệt được các ký tự đó bằng cử chỉ.
Tiến hành lấy mẫu các ký tự trong bảng chữ cái tiếng việt “A, B, C, D, E, Đ,
G, H, I, K, L, M, N, O, P, Q, R, S, T, U, V, X, Y“
40
Đinh Duy Chương Khóa luận tốt nghiệp
a b c
d đ e
g h i
41
Đinh Duy Chương Khóa luận tốt nghiệp
k l m
n o p
q r s
42
Đinh Duy Chương Khóa luận tốt nghiệp
t u v
x y
Hình 35: Bảng chữ cái tiếng việt
Đối với tiếng việt ngoài các chữ cái thông thường còn thêm một số chữ khác
như: Ă, Ô, Ê, Â, Ơ, Ư.
Chữ Ă ta sẽ mã hoá bằng cách từ chữ A như được chỉ ra ở trên ta thêm tiền tố
mũ, tức là kết hợp thêm với cử chỉ sau:
43
Đinh Duy Chương Khóa luận tốt nghiệp
Hình 36: Dấu của chữ Ă
Chữ Ê, Â, Ô ta chỉ việc thêm tiền tố mũ bằng cử chỉ sau:
Hình 37: Dấu của các chữ Â, Ô, Ê
44
Đinh Duy Chương Khóa luận tốt nghiệp
Với chữ Ư và Ơ thì thêm yếu tố dấu là:
Hình 38: Dấu của chữ Ư và Ơ
Khi thu thập dữ liệu các chữ cái “A , B, C, D, Đ, E, G, H, I, K ,L, M, N, O, P,
Q, R, S, T, U, V, X, Y” với ba tiền tố Xg, Yg, Yi như được thể hiện bởi công thức (1):
P=D*T=[Xg Yg yi] (1)
Từ ba thành phần dữ liệu này ta có dạng đồ thị trong không gian 3 chiều được
thể hiện bởi Matlab:
45
Đinh Duy Chương Khóa luận tốt nghiệp
Hình 39: Vùng không gian của các cử chỉ khi chuẩn hoá
Theo lý thuyết người ta dùng chỉ số Yi của ngón trỏ thì trong trường hợp này
ta dùng một sensor hoàn toàn độc lập. Việc chọn sensor làm chỉ số Yi độc lập sẽ làm
cho việc mã hoá ký tự phong phú hơn.
Để phân biệt được các ký tự ta sử dụng thuật toán phân lớp. Ta sẽ chia vùng
không gian thành các lớp khác nhau. Chẳng hạn như đồ thị trên ta sẽ chia thành các
lớp sau:
Lớp 1: gồm các ký tự “H, T, B”.
Lớp 2: gồm các ký tự “X, P, G”.
Lớp 3: gồm các ký tự “M, N, P”.
Lớp 4: gồm các ký tự “A, E, S”.
lớp 5: gồm các ký tự còn lại .
Ở đây ta chia làm 5 lớp các ký tự, mỗi lớp sẽ chứa một số các ký tự
Trong bài toán “Real Time” ta sẽ đọc dữ liệu liên tục được gửi về bởi vi điều
khiển BasicStamp, kết quả thu được trước tiên sẽ được xác định thuộc lớp nào trong 5
lớp trên. Tiếp đó ta dùng thuật toán khoảng cách để xác định xem giá trị thu được là ký
tự nào trong lớp.
Cách xác định này vẫn gặp sai số nếu các ký tự có đáp ứng gần nhau. Ví dụ
như chữ “O” và chữ “C” , chữ “U” và “V” và chữ “R” không khác nhau nhiều lắm.
Chương trình này được được viết bằng ngôn ngữ C ở phần phụ lục B.
Để hạn chế sai số ta phải tìm cách phân lớp lại, nếu phân thành càng nhiều các
lớp nhỏ thì thuật toán của ta càng chính xác. Nhưng điều này lại gặp rất nhiều khó
khăn vì đối với các ký tự có trạng thái rất gần nhau thì rất khó có thể tách lớp mà ta chỉ
có thể phân lớp được các ký tự hoàn toàn phân biệt.
Tuy nhiên điều này có thể được giải quyết bằng phần mềm. Ở đây ta dựa vào
đặc tính của tiếng Việt để phân biệt các chữ có cử chỉ gần giống nhau, ví dụ như chữ
“U” và “V” thì “U” là nguyên âm còn “V” là phụ âm. Do đó nếu trước đó là một
nguyên âm thì tiếp sau ký tự đó không thể là “V” được.
Phương pháp mềm trên chỉ có thể áp dụng cho tiếng Việt còn đối với tiếng
Anh thì lại gặp khó khăn, và ta phải tìm phương pháp khác.
46
Đinh Duy Chương Khóa luận tốt nghiệp
Kết luận
Trong khoá luận tốt nghiệp này, em đã hiểu thực hiện được một số công việc
chính như sau:
Tìm hiểu về ngôn ngữ dấu hiệu
Tìm hiểu về các phương pháp nhận biết
Tìm hiểu và chuẩn hoá các cảm biến gia tốc
Ghép nối các cảm biến với vi xử lý Basic...
Xây dựng một hệ nhận biết đơn giản dựa trên các ký tự
Đề xuất một số phương pháp làm tăng độ chính xác của thiết bị
47
Đinh Duy Chương Khóa luận tốt nghiệp
Tài liệu tham khảo
[1] José L. Hernández-Rebollar
Department of ECE
The George Washington Univ.
jreboll@seas.gwu.edu
[2] Robert W. Lindeman
Department of CS
The George Washington Univ.
gogo@seas.gwu.edu
[3] Nicholas Kyriakopoulos
Department of ECE
The George Washington Univ.
kyriak@seas.gwu.edu
[4] Image Communication Technology Group, The Robert Gordon
University, Schoolhill, Aberdeen, UK
l.muir@rgu.ac.uk, i.g.richardson@rgu.ac.uk
[5] Dự án “Giáo dục hoà nhập trẻ khiếm thính”. Ký hiệu của người điếc Việt
Nam
48
Đinh Duy Chương Khóa luận tốt nghiệp
PHỤ LỤC A: ĐỌC GIÁ TRỊ GÓC TỪ VI ĐIỀU KHIỂN
'****************
'* Khai bao bien*
'****************
acc VAR Word
a VAR Word(8)
N VAR Byte
T VAR Byte
C VAR Byte
DV VAR Byte
DT VAR Word
DC VAR Byte
time VAR Byte
'*********************
'* Chuong trinh chinh*
'*********************
MAIN:
GOSUB Send_ACC_to_ROBOT
GOSUB everage
FOR time = 0 TO 4
a(time)=0
NEXT
DEBUG 33
GOTO MAIN
49
Đinh Duy Chương Khóa luận tốt nghiệp
'*********************
'* Chuong trinh con *
'*********************
'DEM SO XUNG TREN CAC KENH LOI VAO
Send_ACC_to_ROBOT:
FOR time=1 TO 10
PULSIN 1,1,acc 'ACCX1 Kenh x1
a(0) = a(0) + acc
PULSIN 3,1,acc 'ACCX2 Kenh x2
a(1) = a(1) + acc
PULSIN 5,1,acc 'accx3 Kenh x3
a(2) = a(2) + acc
PULSIN 7,1,acc 'ACCX4 Kenh x4
a(3) = a(3) + acc
PULSIN 9,1,acc 'ACCX5 Kenh x5
a(4) = a(4) + acc
PULSIN 11,1,acc 'ACCX5 Kenh x6
a(5) = a(5) +acc
NEXT
RETURN
50
Đinh Duy Chương Khóa luận tốt nghiệp
'TINH TRUNG BINH VA DUA RA KET QUA DUOI DANG HAM
EVERANGE:
FOR time = 0 TO 4
SELECT time
CASE 0 'TIN HIEU TREN KENH X1
IF a(0)/10 >= 3290 THEN
acc=270
ELSEIF a(0)/10<2285 THEN
acc = 90
ELSE
acc = (a(0)/10 - 405)/10 - 58 'ham tuyen tinh
ENDIF
GOSUB ‘TRANSMIT 'TIN HIEU TREN X2
CASE 1
IF a(1)/10 >= 3075 THEN
acc=270
ELSEIF a(1)<2075 THEN
acc = 90
ELSE
acc = (a(1)/10 - 194)/10 - 58 'HAM TUYEN TINH
ENDIF
GOSUB TRANSMIT
CASE 2 'TIN HIEU TREN KENH X3
IF a(2)/10 >= 2880 THEN
acc=270
ELSEIF a(2)/10<1880 THEN
51
Đinh Duy Chương Khóa luận tốt nghiệp
acc = 90
ELSE
acc = a(2)/100 - 58 'HAM TUYEN TINH
ENDIF
GOSUB TRANSMIT
CASE 3 'TIN HIEU TREN KENH X4
IF a(3)/10 >= 3621 THEN
acc=270
ELSEIF a(3)/10<2621 THEN
acc = 90
ELSE
acc = (a(3)/10 - 751)/10 - 58 'HAM TUYEN TINH
ENDIF
GOSUB TRANSMIT
CASE 4 'TIN HIEU TREN KENH X5
IF a(4)/10 >= 3203 THEN
acc=270
ELSEIF a(4)/10<2203 THEN
acc = 90
ELSE
acc = (a(4)/10 - 323)/10 - 58 'HAM TUYEN TINH
ENDIF
GOSUB TRANSMIT
CASE 5 'TIN HIEU TREN KENH X6
IF a(5)/10 >= 3203 THEN
acc=270
ELSEIF a(5)/10<2203 THEN
52
Đinh Duy Chương Khóa luận tốt nghiệp
acc = 90
ELSE
acc = (a(5)/10 - 323)/10 - 58 'HAM TUYEN TINH
ENDIF
GOSUB TRANSMIT:
ENDSELECT
NEXT
RETURN
'CHUONG TRINH CON TRUYEN DU LIEU
TRANSMIT: 'acc to ASCII
N=acc/1000 ' Phan nghin
N=N+48 'ASCII code
DT=acc//1000 ' Du Phan Tram
DT=acc
T=DT/100 'phan tram
T=T+48 'ASCII code
DC=DT//100 'Du phan Chuc
C=DC/10 'phan chuc
c=c+48 'ASCII code
DV=DC//10
DV=DV+48 'ASCII code
DEBUG T
PAUSE 10
DEBUG C
PAUSE 10
DEBUG DV
53
Đinh Duy Chương Khóa luận tốt nghiệp
PAUSE 10
RETURN
PHỤ LỤC B: CHƯƠNG TRÌNH C ĐỌC DỮ LIỆU VÀ HIỂN THỊ KÝ TỰ
LÊN MÀN HÌNH
#include
#include
#include
#include
#include
#include
#include
/////////////////////////////////////////////////////////////
#define lcr 0x3fb
#define lsr 0x3fd
#define txdata 0x3f8
/////////////////////////////////////////////////////////////
long x1[48],x2[12];
long xi[3];
long mang[12];
void setup(void)
{
//che do viet tu dieu khien
outportb(lcr,0x80); //10000000
//thiet lap toc do baud
outportb(txdata,0x0c); //00001100
54
Đinh Duy Chương Khóa luận tốt nghiệp
outportb(txdata+1,0x00);
//dinh dang khung truyen
outportb(lcr,0x0b); //00001011
}
/////////////////////////////////////////////////////////////
long nhan(void)
{
char trangthai;
//kiem tra trang thai lsr den khi bo dem nhan rong
do
{
trangthai=inportb(lsr)&0x01;
}
while(trangthai!=1);
return (inportb(txdata));
}
/////////////////////////////////////////////////////////////
void truyen(char ch)
{ char trangthai;
//kiem tra trang thai lsr den khi bo dem truyen rong
do {
trangthai=inportb (lsr)&0x40;
}while (trangthai!=0x40);
//khi bo dem truyen rong thi truyen du lieu nam trong tx data
outportb (txdata,ch);
}
/////////////////////////////////////////////////////////////
55
Đinh Duy Chương Khóa luận tốt nghiệp
/////////////////////////////////////////////////////////////
//TACH SO LIEU THU DUOC TU CONG COM RA SO
void tachso (long x[48])
{
long i,k;
k=0;
i=0;
while (i<48)
{
x2[k]=x[i]*1000+x[i+1]*100+x[i+2]*10+x[i+3];
i=i+4;
k++;
}
}
//NHAN MANG DU LIEU
void thumang(void)
{
char i,j,k,test,kytu;
test=1;
do
{
kytu=nhan();
if (kytu=='!')
{
for (i=0;i<48;i++)
56
Đinh Duy Chương Khóa luận tốt nghiệp
x1[i]=nhan() - 48;
test=0;
}
}
while (test==1);
}
//TAO MANG 3 PHAN TU
void tongi(long y[12])
{
xi[0]=y[0]+y[2]+y[4]+y[6]+y[8];
xi[1]=y[1]+y[3]+y[5]+y[7]+y[9];
xi[2]=y[11];
}
#define MAX_CHAR 23
#define con 3
char
kytu[MAX_CHAR]={'m','n','q','x','p','g','r','u','c','o','d','D','l','i','t','a','e','s','k','y','h'
,'b','v'};
long xc[MAX_CHAR],yc[MAX_CHAR],zc[MAX_CHAR];
#define MAX_NUM 5
#define THRESHOLD 50
void docDuLieuChuan() //lay du lieu tu file chuan
57
Đinh Duy Chương Khóa luận tốt nghiệp
{
FILE *f;
long i;
int x,y,z;
f= fopen("chuanc.txt","r");
for (i=0;i<MAX_CHAR;i++) {
fscanf(f,"%d%d%d",&x,&y,&z);
xc[i]=x;
yc[i]=y;
zc[i]=z;
}
fclose(f);
}
//SO SANH GIA TRI THU DUOC VOI GIA TRI CHUAN
long dis(long x,long y,long z,long x1,long y1,long z1)
{
long tong;
tong=(x-x1)*(x-x1)+(y-y1)*(y-y1)+(z-z1)*(z-z1);
return sqrt(tong);
}
58
Đinh Duy Chương Khóa luận tốt nghiệp
void subclass(int x,int &k ,int &l)
{
if (x<2400)
{
k=0;
l=2;
}
else if (x>2400&&x<2800)
{
k=3;
l=6;
}
else
{
k=7;
l=22;
}
}
//NHAN DANG KY TU
char NhanDang(long x,long y,long z, int k, int l)
{
long i,min,imin;
long temp;
min=dis(x,y,z,xc[k],yc[k],zc[k]);
59
Đinh Duy Chương Khóa luận tốt nghiệp
imin=k;
for (i=k;i<l+1;i++) {
temp=dis(x,y,z,xc[i],yc[i],zc[i]);
if (temp<min) {
min=temp;
imin=k;
}
}
return kytu[imin];
}
long Stable(long x[MAX_NUM],long y[MAX_NUM],long
z[MAX_NUM])
{
long error;
long i;
error=0;
for (i=0;i<MAX_NUM-1;i++)
error+=dis(x[i],y[i],z[i],x[i+1],y[i+1],z[i+1]);
error=sqrt(error);
if (error<THRESHOLD)
return 1;
else
return 0;
60
Đinh Duy Chương Khóa luận tốt nghiệp
}
void Average(long xl[MAX_NUM],long yl[MAX_NUM],long
zl[MAX_NUM],long &x,long &y,long &z)
{
long i;
long xs,ys,zs;
xs=ys=zs=0;
for (i=0;i<MAX_NUM;i++) {
xs+=xl[i];
ys+=yl[i];
zs+=zl[i];
}
x=xs/MAX_NUM;
y=ys/MAX_NUM;
z=zs/MAX_NUM;
}
void LaySoLieu(long &x,long &y,long &z)
{
x=y=z=0;
thumang();
tachso(x1);
tongi(x2);
61
Đinh Duy Chương Khóa luận tốt nghiệp
x=xi[0];
y=xi[1];
z=xi[2];
}
//CHUONG TRINH CHINH
void main()
{
int k,l;
long x,y,z;
long xt,yt,zt;
long i;
long xl[MAX_NUM],yl[MAX_NUM],zl[MAX_NUM];
char ch;
clrscr();
docDuLieuChuan();
setup();
for (i=0;i<MAX_NUM;i++)
xl[i]=yl[i]=zl[i]=0;
while (!kbhit())
{
LaySoLieu(xt,yt,zt);
62
Đinh Duy Chương Khóa luận tốt nghiệp
for (i=0;i<MAX_NUM-1;i++) {
xl[i]=xl[i+1];
yl[i]=yl[i+1];
zl[i]=zl[i+1];
}
xl[MAX_NUM-1]=xt;
yl[MAX_NUM-1]=yt;
zl[MAX_NUM-1]=zt;
if (Stable(xl,yl,zl)) {
Average(xl,yl,zl,x,y,z);
subclass(z,k,l);
ch=NhanDang(x,y,z,k,l);
cout<<ch;
}
}
}
63
Các file đính kèm theo tài liệu này:
- Xây dựng hệ thống nhận biết ngôn ngữ dấu hiệu sử dụng cảm biến vi cơ điện tử.pdf