Xem mẫu
- Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
Điều Khiển Xe Lăn Dựa Trên Nhận Dạng Ảnh Trạng
Thái Của Bàn Tay Với Board Intel Galileo
Trương Phong Tuyên, Phạm Hoàng Lượm và Phạm Thanh Hùng
Bộ môn Điện tử - Viễn thông,
Khoa Công Nghệ, Trường Đại học Cần Thơ.
Email: tptuyen@ctu.edu.vn, luom117984@student.ctu.edu.vn, hung117970@student.ctu.edu.vn.
Hiện nay trên thế giới có nhiều phiên bản xe lăn được
Abstract— Trong những năm gần đây, ở nước ta số ca đột quỵ
đang có xu hướng ngày càng tăng và hầu hết bệnh nhân phải nghiên cứu với các phương pháp điều khiển đặc trưng riêng
gánh chịu các di chứng bại liệt dẫn đến gặp khó khăn trong đi lại. biệt như:
Trong một số trường hợp nhẹ, để di chuyển họ có thể tự điều − Xe điều khiển bằng joystick đòi hỏi người dùng phải
khiển xe lăn. Tuy nhiên, với các trường hợp bị liệt bán thân và điều khiển bằng tay hoặc một chi bị tật mà chi còn lại
tay còn lại cũng bị yếu không thể thao tác với cần điều khiển xe khỏe mạnhh thì mới có thể điều khiển xe lăn bằng
thì những người này phải điều khiển xe thông qua các giải pháp phương pháp này. Nó không phù hợp cho người bị liệt,
hỗ trợ như: nhận dạng sự di chuyển của mắt, cử động đầu v.v... yếu tất cả các chi [3].
Hiện tại hầu hết các giải pháp trên đều chạy trên máy tính do đó
− Xe điều khiển bằng “hớp và thổi” như cách mà
tiêu tốn nhiều điện năng và giá thành cao. Bên cạnh đó, Intel vừa
cho ra mắt board Intel Galileo sử dụng chip Intel Quark X1000 Christopher Reeve . Theo đó, ông thổi vào một ống hút
được sản xuất dựa trên dây chuyền công nghệ 14 nm phù hợp để làm xe lăn di chuyển, tuy nhiên phương pháp này
cho các ứng dụng nhúng di động. Với mục tiêu thiết kế một hệ gây ra khó khăn trong việc hô hấp của chính người
thống điều khiển xe lăn có giá thành hợp lý, nghiên cứu này đề khiển [4].
xuất giải pháp điều khiển thông qua việc nhận dạng các cử động − Xe lăn điều khiển bằng lưỡi của các chuyên gia tại Viện
tay sử dụng board Intel Galileo. Thành phần chính của hệ thống Công nghệ Georgia của Mỹ đã nghiên cứu năm 2011,
bao gồm: một webcam làm nhiệm vụ chụp, gởi ảnh được kết nối theo đó người sử dụng đeo bộ tai nghe có trang bị cảm
qua cổng microUSB với board Intel Galieo chạy hệ điều hành
biến nhằm thu nhận tín hiệu từ trường phát ra từ khuyên
Linux. Ngôn ngữ Python được sử dụng trong việc lập trình cài
đặt các giải thuật nhận dạng ảnh. Kết quả nhận dạng các trạng ở lưỡi [5].
thái của bàn tay sẽ được dùng để điều khiển hoạt động của xe − Xe lăn có thể điều khiển bằng sự chuyển động của đầu
lăn. và sóng não con người được xem là một trong những
phát minh hàng đầu ở Úc được đề xuất bởi GS Nguyễn
Keywords- Điều khiển xe lăn, cử động tay, Intel Galileo, Hùng, Khoa Kỹ thuật và Công nghệ thông tin, Đại học
Python, xử lý ảnh. Công nghệ Sydney, với chi phí lên đến khoảng 15.000
USD [6][19][23][25].
I. GIỚI THIỆU − Xe lăn điều khiển bằng đầu do Phòng Thí nghiệm Điều
Mỗi năm tại Việt Nam có hơn 200.000 người bị đột quỵ (tai khiển Tự động, Khoa Điện-Điện tử, Đại học Bách Khoa
biến mạch máu não), hơn 50% trong số đó tử vong và 90% số TPHCM thực hiện năm 2013 lại có khuyết điểm là gây
người sống sót sau đột quỵ phải sống chung với các di chứng khó khăn trong việc quan sát cho người điều khiển [7].
về thần kinh và vận động… Hiện Việt Nam có khoảng 486.000 − Xe lăn điều khiển bằng mắt được nghiên cứu và thực
người còn sống sau đột quỵ, tuy nhiên chỉ có khoảng 25-30% hiện tại trường Đại học Cần Thơ của Nguyễn Hữu
tự đi lại phục vụ bản thân được, 20-25% đi lại khó khăn, cần sự Cường, Bộ môn Tự động hóa, Khoa Công Nghệ năm
hỗ trợ của người khác trong sinh hoạt, 15-25% phải phụ thuộc 2011 thì lại có giá thành cao vì cần một máy tính xách
hoàn toàn vào sự phục vụ của người khác [1]. Đối với hầu hết tay để điều khiển và cũng rất bất tiện trong việc quan sát
các bệnh chịu các di chứng do đột quỵ thì xe lăn là phương xung quanh [8][20][21].
tiện di chuyển phù hợp. Ở mức độ bị liệt bán thân hoặc nặng Vào tháng 10 năm 2013, Intel cho ra mắt board Intel
hơn thì sức lực của bàn tay không còn đủ để có thể thao táo với Galileo [9], có giá bán khoảng hai triệu đồng tại Việt Nam, sử
cần điều khiển của các xe lăn truyền thống, khi đó họ phải dụng chip Intel Quark X100 với 16K Cache, 400MHz. Đây là
dùng các giải thuật khác hỗ trợ việc điều khiển như: nhận dạng chip đầu tiên thuộc dòng Santa Clara của Intel được sản xuất
sự di chuyển của mắt, cử động đầu, bằng ý nghĩ v.v... dựa trên dây chuyền công nghệ 14 nm với mức độ tiêu thụ điện
[22][24][26][27]. Tuy nhiên những giải thuật này phải thực rất thấp, hỗ trợ tốt cho việc phát triển các ứng dụng nhúng di
hiện trên máy tính do đó là có giá thành cao [2]. động [10].
ISBN: 978-604-67-0635-9 494
494
- HộiHội
Thảo Quốc
Thảo Gia
Quốc 2015
Gia 2015về
vềĐiện
ĐiệnTử,
Tử,Truyền
TruyềnThông và Công
Thông và CôngNghệ
NghệThông
ThôngTinTin (ECIT
(ECIT 2015)
2015)
Từ thực tế trên, chúng tôi đã quyết định thực hiện nghiên sẽ xuất các tín hiệu điều khiển thông qua các chân I/O. Các tín
cứu “Điều khiển xe lăn dựa trên nhận dạng ảnh trạng thái của hiệu trên sẽ điều khiển các mạch công suất cấp nguồn cho hai
bàn tay với board Intel Galileo”. Mục tiêu của nghiên cứu là động cơ hoạt động đưa xe đi thẳng hoặc rẽ trái, phải theo trạng
thiết kế một hệ thống điều khiển xe lăn với kích thước nhỏ gọn, thái tay điều khiển. Bên cạnh đó, board Intel Galileo còn kết
nhẹ, có giá thành hợp lý. Việc điều khiển xe chỉ bằng những cử nối với các module khác như: module LED hiển thị, module
chỉ đơn giản của bàn tay không cần dùng nhiều sức lực và bàn cảm biến chạm. Ngoài ra, Board điều khiển trung tâm còn kết
tay chỉ cần đặt trong một phạm vi khu vực cố định dưới sự ghi nối với card âm thanh để phát các thông báo hướng dẫn, thông
nhận của webcam. tin về hoạt động của hệ thống.
Trong thiết kế này, thành phần chính của hệ thống là board
xử lý trung tâm Intel Galileo. Một webcam kết nối với board
xử lý qua cổng microUSB để chụp và truyền ảnh bàn tay điều
khiển. Board Intel Galileo chạy hệ điều hành Linux rút gọn từ
thẻ nhớ. Trên hệ điều hành này, ngôn ngữ Python đã sử dụng
trong việc lập trình cài đặt giải thuật nhận dạng ảnh trạnh thái
của bàn tay. Kết quả nhận dạng các trạng thái của bàn tay sẽ
được dùng để điều khiển hoạt động của xe lăn.
Phần còn lại của bài viết được tổ chức như sau: trong phần
II, chúng tôi mô tả các bước thực hiện của hệ thống. Việc kiểm
tra, thực nghiệm trong vận hành của hệ thống sẽ được trình bày
trong phần III. Cuối cùng, các kết quả đạt được, cũng như đề
xuất hướng phát triển của nghiên cứu được tóm tắt trong phần
kết luận.
II. THIẾT KẾ HỆ THỐNG
II.1 Phân tích hệ thống
Hình 2. Sơ đồ luồng dữ liệu và nối kết của hệ thống.
II.3 Phần cứng của hệ thống
Hình 3 trình bày sơ đồ khối thiết kế phần cứng của hệ
thống, bao gồm:
• Board xử lý trong tâm: sử dụng board Intel Galileo
với thẻ nhớ 8 GB để lưu trữ hệ điều hành Linux Image
Galileo phục vụ việc chạy chương trình, đồng thời lưu trữ
các hình chụp từ webcam. Do hệ thống rung lắc trong quá
trình di chuyển nên đã được cố định board Galileo như
Hình 4.
• Bộ phận thu nhận ảnh: sử dụng webcam Logitech
Hình 1. Sơ đồ tổng quát của hệ thống. C920, chụp hình ở chế độ Full HD 1080, ảnh có độ phân
Sơ đồ Hình 1 mô tả hệ thống điều khiển xe lăn dựa trên giải 15 Mpixel. Đây là webcam trang bị ống kính Carl
nhận dạng ảnh trạng thái bàn tay thực hiện trong nghiên cứu Zeiss, hỗ trợ chế độ lấy nét tự động và chống rung. Bên
này. Ảnh bàn tay điều khiển xe lăn được chụp với độ phân giải cạnh đó webcam còn hỗ trợ kết nối qua cổng microUSB,
15 MPixel bởi một webcam, sau đó được truyền về board điều tương thích tốt với hệ điều hành Linux chạy trên board Intel
khiển trung tâm, Intel Galileo, qua cổng microUSB. Trên Galileo. Một khung kim loại được sử dụng để cố định vị trí
board điều khiển này, chương trình nhận dạng ảnh để xác định webcam, như Hình 5.
trạng thái của bàn tay từ đó điều khiển xe lăn hoạt động. • Module biến đổi nguồn và ắc quy: do board Intel sử
II.2 Thiết kế luồng dữ liệu dụng điện áp trong khoảng 3,3-5V nên module biến đổi
Board Intel Galileo có thể kết nối và giao tiếp với 128 thiết điện áp sử dụng chip LM2596 của TI [13] được sử dụng để
bị ngoại vi nhưng cần có một HUB USB để chia sẻ cổng kết hạ điện áp 12V của ắcquy xuống 5V với dòng tải 3A. Ắc-
nối [11]. Hướng đi của luồng dữ liệu trong thiết kế này được quy được sử dụng là loại 12V – 7Ah dùng phổ biến cho xe
mô tả như sau: xuất phát từ webcam Logitech C920 [12], dữ gắn máy.
liệu ảnh được truyền đến board Galileo thông qua cổng Micro • Module điều khiển động cơ và động cơ gạt nước:
USB Host trên board và được đưa và lưu trữ trong SD card module điều khiển công suất có điện áp điều khiển từ 12V-
8GB trên board. Sau đó chương trình xử lý ảnh viết bằng 26V, dòng tải lớn nhất là 10A, có hồi tiếp dòng và hỗ trợ
Python sẽ đọc ảnh và phân thích ảnh này thành ảnh nhị phân, chế độ PWM được sử dụng để điều khiển cấp nguồn cho
so sánh với các ảnh mẫu để xác định trạng thái hiện tại của bàn các động cơ. Do cần lực kéo mạnh để di chuyển xe, đặc biệt
tay. Từ trạng thái nhận dạng được này, board xử lý trung tâm là ừ trạng thái đứng yên, nên chúng tôi đã chọn động cơ gạt
495
495
- Hội
HộiThảo
ThảoQuốc
Quốc Gia 2015 về
Gia 2015 vềĐiện
ĐiệnTử,
Tử,Truyền
TruyềnThông
Thôngvàvà Công
Công Nghệ
Nghệ Thông
Thông Tin (ECIT
Tin (ECIT 2015)
2015)
nước của ô tô bán trên thị trường. Động cơ này đã có sẵn bộ
giảm tốc nên có lức kéo lớn và điện thế sử dụng là 12V.
Các động cơ này có lực kéo lớn đảm bảo cho xe hoạt động
tốt với trọng lượng của một người trường thành khoảng 75
– 90Kg (với trọng lượng của xe và ắc quy là 35 Kg). Trong
thiết kế này, hai động cơ gạt nước được sử dụng để thuận
tiện trong việc điều khiển rẽ trái, phải của xe. Tuy nhiên, do
không tồn tại hai động cơ hoàn toàn giống nhau về lực kéo Hình 6. Bố trí và lắp đặt động cơ gạt nước vào xe lăn.
nên cần sử dụng điều khiển động rộng xung (PWM) để điều
• Module âm thanh: gồm một card âm thanh kết nối vối
chỉnh lại lực kéo giúp xe giữ thăng bằng và chạy thẳng,
board điều khiển qua cổng USB và loa dùng để phát thông
hoặc rẽ trái, phải một cách chính xác. Bố trí và lắp đặt các
báo hướng dẫn người sử dụng. Do hệ điều hành Linux chạy
động cơ xem ở Hình 6.
trên board Intel Galileo là bản rút gọn nên chỉ hỗ trợ
chương trình phát các file âm thanh theo các định dạng:
wav, voc, raw và au với tần số mẫu là 48 KHz [15].
II.4 Phần mềm và giải thuật
• Chương trình chính
Dựa trên phân tích luồng dữ liệu của hệ thống, chúng tôi đã
lập trình phần mềm nhận dạng và điều khiển xe lăn xe the lưu
đồ giải thuật như ở Hình 7.
Bắt
Lời chào
Hình 3. Sơ đồ kết nối các khối trong khối hệ thống. Người dùng
có muốn lấy
mẫu tay lại
không ? Đ
S
Lấy mẫu tay
Xử lý ảnh mẫu
Hình 4. Bộ xử lý chính là board Intel Galileo [14].
Chụp lấy mẫu tay
Tính toán giá trị sai lệch
giữa ảnh mẫu gốc và ảnh
Kiểm tra các giá trị đã tính
toán với dữ liệu gốc
Xuất GPIO điều khiển
Hình 7. Lưu đồ giải thuật chương trình chính.
Hình 5. Bộ phận thu nhận ảnh sử dụng webcam Logitech C920 Chương trình bắt đầu bằng lời chào được phát từ file audio
được đặt cố định với một bàn điều khiển. thu âm sẵn. Tiếp theo đó là file audio hướng dẫn, người sử
dụng có thể tiến hành điều khiển xe ngay hoặc lấy lại các ảnh
496
496
- Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
mẫu bằng cách đặt tay lên cảm biến. Ở đây cần lưu ý là việc đó cần phải đơn giản, đòi hỏi ít tài nguyên của hệ thống. Vì thế
lấy lại ảnh mẫu các trạng của tay dùng cho mục đích điều khiển giải thuật so sánh hai ảnh bằng phương pháp trừ ảnh đã được
là cần thiết đối với một người sử dụng mới. Nếu người sử dụng chọn sử dụng trong trong thiết kế này với mục tiên có thể nhận
chọn lấy lại mẫu chương trình sẽ thực hiện lấy mẫu tay liên tục dạng các ảnh trạng thái bàn tay cho phép điều khiển xe lăn di
bằng cách gọi chương trình con lấy mẫu, ngược lại chương chuyển.
trình sẽ tự động lấy file ảnh mẫu trong thẻ SD có sẵn và tiến Để việc nhận dạng cử chỉ tay cho kết quả tốt hơn ảnh sẽ
hành xử lý tiếp. Giai đoạn tiếp theo là chương trình sẽ được tách làm 4 phần: trên, dưới, trái và phải; sau đó việc so
liên tục thực hiện các lệnh so sánh giữa ảnh nhận từ webcam sánh sẽ tiến cho từng phần. Kết quả so sánh giữa ảnh chụp bàn
chụp tay người điều khiển và tập các ảnh mẫu nhằm cho kết tay điều khiển và ảnh mẫu không thể trùng khớp với nhau. Sự
quả điều khiển hoạt động của xe như mong muốn. sai biệt này là không thể tránh khỏi do đó trong thực tế ta cần
• Chương trình nhận dạng ảnh định giá trị ngưỡng cho sai số này để có được kết nhận dạng
Trong thiết kế này, chúng tôi đã chọn các trạng thái của hợp lý. Tuy nhiên để có kết quả nhận dạng tốt, tương ứng với
bàn tay như bảng 1, dùng trong điều khiển xe lăn phù hợp với ngưỡng của sai số nhỏ, trong thiết kế này chúng tôi đã thực
phương pháp xử lý ảnh cho mục đích nhận dạng. hiện một số cách nhằm hạn chế các nguyên nhân dẫn đến sai số
Bảng 1. Thư viện ảnh mẫu các trạng thái của bàn tay. này. Các cách này sẽ được trình bày trong quá trình thiết kế và
Tên trạng Điều Hình ảnh thực hiện hệ thống nhằm giải quyết những khó khăn phát sinh ,
Mô tả
thái khiển mô tả nâng cao độ tin cậy của hệ thống đước thiết kế.
Đây là Quá trình chụp ảnh bàn tay và nhận dạng ảnh để điều
trạng thái khiển xe lăn được tiến hành theo 3 bước sau:
Xe
Không có ban đầu
không di
gì không có
chuyển
tay người
điều khiển
Bàn tay
duỗi thẳng
Xe đi
Tay các ngón Nắm đấm Đấm cái
thẳng
tay khép (a) (b)
lại Hình 8. Hai trạng thái của bàn tay được so sánh.
Bàn tay - Bước 1: Tiến hành xuất nhị phân và làm mịn ảnh.
duỗi thẳng
ngón cái
mở ra một Xe rẽ
Tay cái
góc 600- phải
750 và các
ngón còn
lại khép (a) (b)
Các ngón Hình 9. Hai cử chỉ được xử lý sang ảnh nhị phân.
tay co lại - Bước 2: Tiến hành cắt ảnh làm 4 phần được mô tả
sát vào như Hình 10.
lòng bàn
Xe rẽ
Đấm cái tay riêng
trái
ngón cái
mở ra một
góc 600-
750
Các ngón
tay co lại Hình 10. Hai cử chỉ được xử lý sang ảnh nhị phân
Xe dừng
Nắm đấm sát vào và được cắt ảnh từng vùng với đơn vị pixel.
và có còi
lòng bàn Hai ảnh được chụp và lưu lại với kích thước 480x640 pixel
tay sau đó ảnh được phân thành 4 vùng như trên Hình 10.
- Bước 3: Tiến hành so sánh từ các phần của ảnh có được ở
Hiện nay có nhiều giải thuật cho kết quả tốt trong nhận bước 2 với dữ liệu của ảnh mẫu tương ứng. Dựa vào kết quả so
dạng ảnh cử chỉ của người để điều khiển các thiết bị như: hand sánh chương trình sẽ điều khiển xe di chuyển.
tracking [16], leap montion [17], nhận dạng cử động của bàn Ở Hình 10, phần ảnh ở góc trái và phía trên hoàn toàn
tay người theo thời gian thực [18]…Tuy nhiên để thực hiện giống nhau và phần ảnh bên dưới gần giống nhau. Trong khi
được trên một board điều khiển như Intel Galileo thì giải thuật phần ảnh bên góc phải khác nhau hoàn toàn nên qua phép trừ
497
497
- HộiHội
Thảo Quốc
Thảo Gia
Quốc Gia2015
2015về
vềĐiện
Điện Tử,
Tử,Truyền
Truyền Thông vàCông
Thông và CôngNghệ
Nghệ Thông
Thông TinTin (ECIT
(ECIT 2015)
2015)
ảnh sẽ cho giá trị khác nhau rất nhiều. Dựa vào kết quả này ta sáng khác nhau sẽ cho ra hai ảnh nhị phân khác nhau. Vì thế
có thể kết luận hai ảnh này không giống nhau. Chương trình khi tiến hành phép trừ ảnh sẽ cho các giá trị khác nhau và hệ
nhận dạng được cài đặt trong nghiên cứu này cũng thực hiện thống sẽ xác định hai ảnh này là khác nhau. Ngoài ra cần chú ý
theo cách trên để tìm ra ảnh mẫu gần nhất với ảnh của bàn tay bố trí các LED sáng này hợp lý để có được độ sáng nền cho
điều khiển từ đó điều khiển các động của xe lăn. ảnh ổn định, tránh tình trạng ánh sánh không đều như Hình 14
dưới đây.
III. THỰC NGHIỆM
Biện pháp đầu tiên để giảm nhiễu, sai trong quá trình nhận
dạng ảnh như đã trình bày ở phần II có thể kể đến là thực hiện
bàn để tay. Mục đích của việc làm này là nhằm tránh chụp
thêm các sự vật không mong muốn dẫn đến nhiều, sai không
cần mong muốn trong quá trình nhận dạng. Bên cạnh đó bàn để (a) (b)
tay cũng là nơi đặt tay của người điều khiển. Như thế người Hình 14. Ảnh bàn để tay khi được chiếu sáng không tốt do các
điều khiển sẽ thực hiện các cử chỉ điều khiển xe trong phạm vi LED được vì đặt quá gần.
bàn để tay giúp webcam có thể chụp ảnh chính xác. Ngoài ra Ảnh nhị phân ở Hình 14 (b) cho thấy độ chiếu sáng không
đây còn là điểm tựa đặt tay giúp tránh mỏi tay cho người sử tốt. Nguyên nhân là do các LED được đặt quá gần.
dụng. Tiếp theo chúng tôi tiến hành thực nghiệm chụp ảnh và so
sánh các trạng thái của bàn tay với tập ảnh mẫu.
− Thực nghiệm 1: khi so sánh một cử chỉ điều khiển
không đúng với tập các ảnh mẫu.
(a) (b)
Hình 11. Bàn để tay có bố trí LED chiếu sáng. Hình 15. Hình ảnh mẫu đặt tay không đúng so với các mẫu gốc
Trong trường hợp ảnh chụp được từ webcam ở những điều và đã được xử lý.
kiện khác nhau có thể gây ra sai số rất lớn trong quá trình so Ảnh chụp bàn tay từ webcam sẽ được chuyển sang ảnh nhị
sánh ảnh. Vì thế bàn để tay bố trí thêm các LED làm nhiệm vụ phân. Ảnh nhị phân thu được sẽ bị nhiễu do ảnh hưởng của môi
chiếu sáng giúp ổn định độ sáng nền của ảnh chụp. Để có được trường do đó ta cần làm mịn ảnh. Hình 16 mô tả kết quả ảnh
các ảnh chụp thuận lợi cho việc so sánh thông qua phép trừ ảnh nhị phân trước và sau khi làm mịn để giảm bớt
thì các LED cần bố trí hợp lý. Kết quả thực nghiệm khi bố trí nhiễu.
đèn LED như Hình 16.
(a) (b)
Hình 16. (a) Ảnh nhị phân chưa làm mịn.
Ảnh có LED nền Ảnh không có LED nền (b) Ảnh sau khi làm mịn.
Ảnh nhị phân sau khi được làm mịn, loại bớt nhiễu sẽ được
(a) (b)
chia làm 4 phần như trình bày ở phần II. Sau đó các phần của
Hình 12. Hai ảnh thực tế giữa có LED nền và không có LED nền.
ảnh sẽ được so sánh lần lượt dữ liệu tương ứng trong tập các
ảnh mẫu. Các kết quả so sánh ở các hình từ Hình 17 đến Hình
20 cho trình bày việc so sánh ảnh chụp tay điều khiển khi so
sánh với tập các ảnh mẫu.
(a). Ảnh có LED nền (b). Ảnh không có LED nền
đã được xử lý. đã được xử lý.
Hình 13. Hai ảnh nền đã được xử lý.
Hình 13 là ảnh chụp bàn để tay ở Hình 12 sau khi xử lý (a) (b)
chuyển sang ảnh nhị phân. Dựa vào các ảnh nhị phân này ta Hình 17. (a) Ảnh mẫu trạng thái “tay”.
thấy, mặc dù là 2 ảnh cùng 1 vị trí nhưng ở 2 điều kiện ánh (b) Ảnh chụp từ webcam.
498
498
- Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
Hình 17 cho kết quả so sánh hai ảnh này không giống nhau lệch về vị trí đôi chút. Khi đó chương trình nhận dạng ảnh sẽ
ở các phần: trên, dưới, trái và phải. xử lý như sau:
Sử dụng hàm đếm các pixel khác 0 (countNonZero) cho các
phần của ảnh chụp tay người sử dụng ta có:
A=countNonZero(GocTraiAnhNguoiDung)= 3740
B= countNonZero(GocPhaiAnhNguoiDung)=3560
C= countNonZero(GocTreniAnhNguoiDung)= 63605
D= countNonZero(GocDuoiAnhNguoiDung)= 11348
Ta có các phần ảnh mẫu của tay:
A1=countNonZero(GocTraiAnhMauGoc)= 3740
(a) (b) B1= countNonZero(GocPhaiAnhMauGoc)= 3560
Hình 18. (a) Ảnh mẫu trạng thái “tay cái”.
C1= countNonZero(GocTreniAnhMauGoc)= 61500
(b) Ảnh chụp từ webcam .
D1= countNonZero(GocDuoiAnhMauGoc)=11800
Hình 18 cho kết quả so sánh hai ảnh này không giống nhau
Thực hiện việc trừ ảnh ch từng phần ảnh tương ứng và lấy
ở các phần: trên, dưới, trái và phải.
giá trị tuyệt đối ta được:
SoSanhTrai = A − A1 = 0 (1)
SoSanhPhai = B − B1 = 0 (2)
SoSanhTren = C − C1 = 2105 (3)
SoSanhDuoi = D − D1 = 452 (4)
(a) (b)
Hình 19. (a) Ảnh mẫu trạng thái “đấm cái”.
(b) Ảnh chụp từ webcam.
Hình 19 cho kết quả so sánh hai ảnh này không giống nhau
ở các phần: trên, dưới, trái và phải.
(a) (b)
Hình 20. (a) Ảnh mẫu trạng thái “nắm đấm”. Hình 21. (a), (c) Ảnh tay người sử dụng.
(b) Ảnh chụp từ webcam. (b), (d) Ảnh mẫu.
Hình 20 cho kết quả so sánh hai ảnh này không giống nhau Theo Hình 21 ta thấy phần ảnh trái và phải của 2 ảnh là hoàn
ở các phần: trên, dưới và trái. toàn giống nhau nên khi lấy giá trị tuyệt đối của hiệu số 2 giá
Dựa vào tất cả các kết quả so sánh với 5 mẫu tay gốc . Ta trị pixel khác không ta được kêt quả là 0 (công thức (1) và (2)).
kết luận ảnh mẫu đặt không đúng với bất kì mẫu gốc nào. Ở Kết quả cho phần ảnh trên và dưới có sự sai lệch so với ảnh
trạng thái này hệ thống sẽ tính toán, nếu số lần sai lệch liên tục mẫu nên khi tính giá trị SoSanhTren và SoSanhDuoi sẽ cho ra
3 lần sẽ phát đoạn âm thanh cảnh báo cho người dùng và cho 2 kết quả khác 0 (công thức (3) và (4)). Kết quả thực nghiệm
phép người dùng điều chỉnh lại tay điều khiển. cho thấy các giá trị này nằm trong khoảng sai lệch cho phép
Tương tự với trạng thái tay đặt không đúng, nếu trên bàn nhận dạng cử chỉ trong Bảng 2.
điều khiển có bất kì vật thể lạ nào thi sau khi được xử lý cũng Bảng 2. Phạm vi nhận dạng chuẩn của hiệu hai góc ảnh.
sẽ cho kết quả tương tự và sẽ cảnh báo nếu liên tục 3 lần lấy
mẫu liên tiếp vẫn không nhân dạng được cử chỉ. Phần ảnh Giá trị sai số cho phép (pixel)
Trong thực tế ảnh tay người dùng điều khiển và ảnh mẫu Góc trên < 5500
gốc mặc dù đặt đúng trạng thái như yêu cầu nhưng vẫn có sự Góc dưới < 500
sai lệch về vị trí cũng như ảnh hưởng của môi trường khác Góc trái < 4000
nhau. Thực nghiệm Hình 21 sẽ cho ta thấy rõ sự sai lệch đó. Góc phải < 2500
Trên Hình 21 ta có (a) ảnh tay người sử dụng và (b) ảnh Nếu lấy một ảnh bất kì so sánh với chính nó thi các giá trị
mẫu gốc. Hai ảnh này tương đối giống nhau vì người sử dụng so sánh trên, dưới, trái, phải sẽ là 0. Nhưng trong thực tế do có
mặc dù để tay đúng trạng thái yêu cầu nhưng nhưng còn sai sự sai lệch vị trí đặt tay nên những giá trị so sánh thường không
499
499
- HộiHội
ThảoThảo Quốc
Quốc Gia
Gia 2015về
2015 vềĐiện
ĐiệnTử,
Tử,Truyền
TruyềnThông
Thông và
và Công
CôngNghệ
NghệThông
ThôngTinTin
(ECIT 2015)
(ECIT 2015)
bằng không. Dựa vào điều này, để có thể so sánh 2 ảnh chúng − Phần cứng: nâng cấp thêm cảm biến siêu âm xung
ta cần đặt khoảng giới hạn cho từng vùng ảnh so sánh một quanh nhằm cảnh báo cho người dùng khi có vật cản bất
khoảng tương đối. Khoàng giới hạn này được tính toán dựa ngờ hay đường rẽ bị giới hạn. Tiếp tục khảo sát tính toán,
trên thực nghiệm để có được độ chính xác cao nhất. chọn lựa sử dụng động cơ chuyên dụng có công suất cao
hơn giúp xe hoạt động tốt hơn.
IV. KẾT QUẢ − Phần mềm: tiếp tục nghiên cứu, áp dụng các giải thuật
Nghiên cứu đã thực hiện thành công xe lăn được điều khiển nhận dạng ảnh tốt hơn phù hợp với tài nguyên của hệ
bằng trạng thái của bàn tay. Hình ảnh thực tế của xe lăn được thống.
thiết kế như Hình 22.
V. KẾT LUẬN
Nội dung bài viết đã trình bày việc thiết kế, chế tạo và thử
nghiệm xe lăn được điều khiển dựa trên việc nhận dạng ảnh
trạng thái của bàn tay. Thiết kế sử dụng Intel Galileo chạy hệ
điều hành Linux làm board xử lý trung tâm, kết hợp với một
webcam làm nhiệp vụ chụp ảnh bàn tay điều khiển. Chương
trình nhận dạng ảnh và điều khiển hệ thống viết bằng ngữ
Python. Xe lăn được thiết kế hoạt động ổn định, ít phụ thuộc
vào điều kiện chiếu sáng và có giá thành hợp lý (khoảng 10
triệu đồng). Tuy nhiên sản phẩm cần được tiếp tục hoàn thiện
thêm để có thể đáp ứng nhu cầu tự đi lại của của những người
gặp khó khăn trong di chuyển.
TÀI LIỆU THAM KHẢO
Hình 22. Hệ thống xe lăn trong thực tế. [1] Báo Việt Nam Net - vietnamnet.vn, 17/04/2015. URL:
http://vietnamnet.vn/vn/doi-song/232841/dot-quy--nhung-con-so-am-
Những khó khăn trong quá trình thực nghiệm, vận hành hệ anh-o-viet-nam.html
thống đã được chúng tôi lần lượt giải quyết. Kết quả thực [2] Báo Khoa Học TV – khoahoc.tv, URL:
nghiệm việc nhận dạng trạng thái của tay phục vụ mục đích http://khoahoc.tv/timkiem/%C4%91i%E1%BB%81u+khi%E1%BB%83
điều khiển xe lăn như Hình 23. n+xe+l%C4%83n/index.aspx
[3] NCBI, URL:
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2788504/
[4] Geni, 10/11/2014, URL:
http://www.geni.com/people/Christopher-Reeve/6000000000558881209
[5] Báo Thanh Niên – thanhnien.com, 12/06/2011, URL:
http://www.thanhnien.com.vn/khoa-hoc/dieu-khien-xe-lan-bang-luoi-
401069.html
[6] Báo Đà Nẵng điện tử – baodanang.vn, 21/04/2014, URL:
http://www.baodanang.vn/channel/5418/201404/gs-nguyen-hung-mong-
xe-lan-thong-minh-som-den-viet-nam-2322983/
[7] Báo Tuổi Trẻ online – tuoitre.vn, 30/03/2014, URL:
http://tuoitre.vn/tin/giao-duc/khoa-hoc/20140330/xe-lan-da-nang-dieu-
khien-bang-dau/600556.html
Hình 23. Biểu đồ xác suất nhận dạng đúng trong 20 lần thực nghiệm [8] Báo Cần Thơ online – baocantho.com.vn, 06/12/2011, URL:
với mỗi mẫu trạng thái của bàn tay điều khiển. http://baocantho.com.vn/?mod=detnews&catid=185&id=93361
Quan sát biểu đồ trên có thể thấy xác suất nhận dạng đúng [9] Wikipedia – en.wikipedia.org, 17/10/2013, URL:
cử của tất cả các cử chỉ đều trên 90%, xác suất nhận biết đúng https://en.wikipedia.org/wiki/Intel_Galileo
cử chỉ giữa việc điều khiển bằng tay trái và tay phải là tương [10] Semiconvn – semiconvn.com, URL:
đối giống nhau, do có sự sai khác vị trí khi đặt tay và điều kiện http://www.semiconvn.com/home/tin-tuc-vi-mach/san-pham-cong-nghe-
ánh sáng môi trường nên xác suất nhận dạng đúng không đạt vi-mach/6964-tren-tay-bo-mach-galileo-cua-intel-tai-ces-2014-.html
100%. [11] Arduino in Cộng đồng Việt Nam – arduino.vn, URL:
Các đoạn video ghi lại quá trình thử nghiệm xe lăn có thể http://arduino.vn/bai-viet/254-bai-1-gioi-thieu-so-luoc-ve-intel-galileo
xem tại: [12] Logitech – logitech.com, URL:
https://www.youtube.com/watch?v=XhlKb4x9CVU http://www.logitech.com/en-us/product/hd-pro-webcam-c920
https://www.youtube.com/watch?v=G8I8Egqgkbo [13] Texas Intruments – ti.com, URL:
http://www.ti.com/lit/ds/symlink/lm2596.pdf
Hướng cải tiến, tiếp tục hoàn thiện hệ thống mà chúng tôi
sẽ tiếp tục thực hiện như sau: [14] Intel – intel.com, URL:
http://newsroom.intel.com/docs/DOC-4413
[15] Stackoverflow – stackoverflow.com, URL:
500
500
- HộiHội
Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
http://stackoverflow.com/questions/2546273/play-a-wave-file-in-linux [23] Srishti, Prateeksha Jain, Shalu, Swati Singh, "Design and Development
[16] People csail, URL: of Smart Wheelchair using Voice Recognition and Head Gesture Control
System", International Journal of Advanced Research in Electrical,
http://people.csail.mit.edu/rywang/handtracking/s09-hand-tracking.pdf Electronics and Instrumentation Engineering Vol. 4, Issue 5, pp.4790-
[17] Endadget – endadget.com, 22/07/2013, URL: 4798, May 2015.
http://www.engadget.com/2013/07/22/leap-motion-controller-review/ [24] Rakhi A. Kalantri, D.K. Chitre, "Automatic Wheelchair using Gesture
[18] Nasati, URL: Recognition", International Journal of Engineering and Innovative
Technology (IJEIT) Volume 2, Issue 9, pp. 216-218, March 2013.
http://data.vista.gov.vn:9000/kqnc/kq_chitiet.asp?id=12423
[25] Vijendra P. Meshram, Pooja A. Rajurkar, Mohini M. Bhiogade,
[19] Pei Jia, Huosheng H. Hu, Tao Lu, Kui Yuan, "Head gesture recognition Arundhati C. Kharabe, Dhiraj Banewar, "Wheelchair Automation Using
for hands‐free control of an intelligent wheelchair", Industrial Robot: Head Gesture", International Journal of Advanced Research in
An International Journal, Vol. 34 Iss: 1, pp.60 - 68, 2007. Computer Science and Software Engineering, Volume 5, Issue 1, pp.
[20] Gunda Gautam, Gunda Sumanth, Karthikeyan K C, Shyam Sundar, 641-646, January 2015.
D.Venkataraman, "Eye Movement Based Electronic Wheel Chair For [26] Bhaurao Patil, Disha Tharval, Rajendra Pawar, Aditya Datar, Akanksha
Physically Challenged Persons, International Journal Of Scientific & Bhargawa, 'Microcontroller Based Wheelchair", International Journal of
Technology Research Volume 3, Issue 2, pp. 206-212, February 2014. Electrical and Electronics Research, Vol.3, Issue 2, pp.99-101, April -
[21] Neena Mani, Aby Sebastian, Alen Mathews Paul, Alex Chacko, Anupa June 2015.
Raghunath, "Eye Controlled Electric Wheel Chair" International Journal [27] Chhaya.G.Patil, Sayali.K.Gharge, Sonal.V.Modhave, Y.S.Angal,
of Advanced Research in Electrical, Electronics and Instrumentation "Design Of Wheelchair Using Finger Operation With Image Processing
Engineering Vol. 4, Issue 4, pp 2494-2497, April 2015. Algorithms", International Journal of Research in Engineering and
[22] Sandeep, Supriya, "Gesture Controlled Wheel-Chair: A Review", Technology, Volume: 03 Issue: 02, pp.232-237, February 2014.
International Advanced Research Journal in Science, Engineering and
Technology (IARJSET) Vol. 2, Special Issue 1, pp. 27-31, May 2015.
501
501
nguon tai.lieu . vn