Tải bản đầy đủ (.pdf) (64 trang)

Điều khiển robot bằng phương pháp xác định số lượng ngón tay báo cáo nghiên cứu khoa học

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.36 MB, 64 trang )

1

PHẦN MỞ ĐẦU
1. Lý do chọn đề tài.
Xử lý ảnh là một trong những ngành khoa học đã đem lại cho con người
những bước tiến vượt bậc mang tính cách mạng, nó đã đưa con người tiến sang
một kỉ nguyên mới. Một vài năm trở lại đây công nghệ thông tin cùng với sự phát
triển của nó đã kéo theo sự phát triển của hàng loạt các ngành khoa học trong nhiều
lĩnh vực khác nhau như sinh học, kinh tế, viễn thơng, qn sự, giải trí… có những
bước tiến nhanh hơn so với đúng quy trình mà đáng ra phải trải qua. Với sự phát
triển ngày càng hoàn thiện của cơng nghệ phần cứng, cơng nghệ phần mềm cũng
đang có những bước tiến quan trọng đóng góp một phần khơng nhỏ cho sự phát
triển của xã hội loài người đặc biệt là lĩnh vực xử lý ảnh.
Nghành xử lý ảnh cũng đã đồng hành cùng trường đại học Lạc Hồng trong
những cuộc thi Robocon, góp phần thêm những chiến thắng cho những đội
Robocon Lạc Hồng.
Nghành xử lý ảnh đã phát triển hơn những gì mong đợi với những ứng dụng
trong thực tế về tất cả các lĩnh vực như: ứng dụng xử lý ảnh vào giám sát giao
thông, điều khiển máy móc cơng nghiệp, ngăn chặn website cấm bằng phương
pháp phát hiện màu da, máy chuẩn đoán bệnh trong y học, thẻ gửi xe thông minh,
chơi game tương tác ….Tất cả đó là xử lý ảnh.
Xử lý ảnh ra đời mục tiêu đầu tiên là dành cho robot, với mong muốn robot
sẽ làm giảm bớt công việc lao động chân tay cho con người và làm thay con người
những công việc nguy hiểm. Để thực hiện điều đó, điều khiển robot từ xa là một
trong những yêu cầu đòi hỏi độ chính xác cao.
Với mong muốn tìm hiểu nhiều hơn nữa về nghành xử lý ảnh và mong
muốn đóng góp thêm một phương pháp điều khiển robot cho nghành xử lý ảnh.
Nhóm em đã mạnh dạn đề xuất đề tài: “Điều khiển robot bằng phương pháp xác
định số lượng ngón tay”.



2

2. Lịch sử nghiên cứu.
2.1 Trên thế giới.
Trong quá trình nghiên cứu nhóm em đã tham khảo một vài chương trình
demo và tham khảo một số bài báo của nước ngoài.
Bài báo “A fast algorithm for vision-based hand gesture recognition for robot
control ”(Asanterabi Malima, Erol Ưzgür, and Müjdat Çetin Faculty of Engineering
and Natural Sciences, Sabancı University, Tuzla, İstanbul, Turkey) đã nêu ra phương
pháp đếm số lượng ngón tay bằng phương pháp nhận dạng màu da. Phương pháp đã
đưa ra được cách nhận dạng ngón tay chính xác nhưng trong mơi trường lý tưởng và
phải trải qua giai đoạn học dữ liệu. Nhược điểm chính của phương pháp này là phụ
thuộc quá nhiều vào môi trường ánh sáng. Một khi CSDL học được và mơi trường
thực nghiệm có độ chênh lệch lớn thì kết quả số lượng ngón tay khơng chính xác.
Bài báo “Robust Hand Gesture Recognition with Kinect Sensor” và bài báo
“Zhou Ren Jingjing Meng Junsong Yua, Nanyang Technological University, 50
Nanyang Avenue, Singapore 639798” đã đưa ra phương pháp nhận dạng cử chỉ bàn
tay bằng Kinect Sensor. Nhóm tác giả đã xử lý rất tốt việc nhận dạng bàn tay và
những cử chỉ của nó cũng như đếm được số lượng ngón tay, nhưng mức độ chính
xác cịn chưa cao. Đề tài của nhóm tác giả này chỉ nghiên cứu chưa được ứng dụng
thực tế.
Bài báo “Hand gesture recognition using Kinect Heng Du, TszHang To”, đã
nêu ra phương pháp nhận dạng bàn tay bằng Kinect Sensor. Tổng thể quy trình cơng
việc như sau:

Hình 1: Tổng thể quy trình cơng việc.


3


Hình 2: Năm bước trích xuất bàn tay.
Đã có những đề tài liên quan tới xử lý ảnh, như các đề tài điều khiển các ứng
dụng window, điều khiển robot bằng phương pháp nhận dạng cử chỉ bàn tay….Đa số
các phương pháp nhận dạng bằng màu da, nhưng chưa có đề tài điều khiển robot
bằng phương pháp nhận dạng số lượng ngón tay bằng Kinect Sensor.
2.2 Trong nước.
Cũng có một số đề tài nhận dạng khuôn mặt nhưng dùng mạng nơron. Chưa
có đề tài nào nghiên cứu về đếm số lượng ngón tay và ứng dụng vào việc điều khiển
robot.
2.3 Trong trường đại học Lạc Hồng.
Cùng với sự phát triển nghành xử lý ảnh, trường đại học Lạc Hồng đã có
những đề tài có tính áp dụng thực tế: đề tài phát hiện biển số xe, xác định vật cản
dành cho người mù, đề tài điều khiển chuột….Nhưng đề tài “Điều khiển robot bằng
phương pháp hiện số lượng ngón tay” chưa được thực hiện tại trường Đại học Lạc
Hồng. Hi vọng đề tài sẽ góp phần mới mẻ vào lịch sử nghiên cứu cho xử lý ảnh của
trường.
3. Mục tiêu nghiên cứu.
Đề tài được thực hiện với mục tiêu xây dựng chương trình cho phép điều
khiển di chuyển của robot bằng phương pháp đếm số lượng ngón tay theo các chỉ
thị sau:
+ Một ngón tay: Robot tiến.


4

+ Hai ngón tay: Robot lùi.
+ Ba ngón tay: Robot rẽ trái.
+ Bốn ngón tay: Robot rẽ phải.
+ Năm ngón tay: Robot dừng.
+ Ngồi ra cịn có các tín hiệu mở và ngưng truyền tín hiệu (ngừng phát sóng).

Điều khiển robot chỉ qua tâm tới số lượng ngón tay mà khơng cần qua tâm tới vị trí
của những ngón tay:

(a) Hai ngón tay

(b) Ba ngón tay

(c) Bốn ngón tay
Hình 3: Những vị trí ngón tay khác nhau nhưng cho cùng kết quả.
4. Đối tượng và phạm vi nghiên cứu.
+ Đối tượng nghiên cứu: Phương pháp đếm số lượng ngón tay, phương pháp điều
khiển robot, thư viện OpenCV, CL NUI Platform, thiết bị Kinect Sensor, giao
tiếp cổng RS232 điều khiển Robot bằng sóng RF.


5

+ Phạm vi nghiên cứu: điều khiển robot bằng phương pháp đếm số lượng ngón
tay.
5. Phương pháp nghiên cứu.
+ Tìm hiều các phương pháp điều khiển robot trong và ngoài nước, đưa ra những
ưu và nhược điểm của các phương pháp đó.
+ Tìm hiều kỹ về đặc trưng và các thông số màu da con người.
+ Nghiên cứu các phương pháp nhận dạng bàn tay.
+ Tham khảo các bài báo nghiên cứu về điều khiển vật thể bằng phương pháp nhận
dạng cử chỉ bàn tay.
+ Phát triển những tính năng và những ứng dụng nổi bật của chương trình.
+ Tham khảo những đề tài đã được thực hiện về Kinect.
6. Những đóng góp mới của đề tài và những vấn đề mà đề tài chưa làm được.
+ Đề tài đã xây dựng thành công phương pháp điều khiển robot bằng nhận dạng số

lượng ngón tay, góp thêm một phương pháp điều khiển robot nữa cho việc điều
khiển robocon Lạc Hồng và cho ngành xử lý ảnh.
+ Ngoài ra đề tài cũng đã xây dựng thêm được những ứng dụng mở rộng về vấn đề
điều khiển: điều khiển Powerpoint bằng số lượng các ngón tay, điều khiển
chương trình nghe nhạc Window Media Player và chương trình KM Player bằng
số lượng ngón tay.
+ Qua q trình thực nghiệm chương trình có thể nhận dạng bàn tay chính xác và
đếm đúng số lượng ngón tay khoảng 98% trong mọi mơi trường.
+ Vấn đề mà nhóm chưa thực hiện được là kết hợp số lượng ngón tay với các cử
chỉ khác của bàn tay để có thể điều khiển các chương trình, máy móc phức tạp.
Kết cấu của đề tài
Luận văn được chia thành 3 phần: Phần mở đầu, phần nội dung và phần kết luận.
Phần mở đầu:
Nêu lý do chọn đề tài, tổng quan tình hình phát triển, mục tiêu nghiên cứu đề tài,
đối tượng, phạm vi, phương pháp nghiên cứu cũng như những đóng góp mới của đề


6

tài. Bên cạnh đó cũng chỉ ra mặt hạn chế mà đề tài chưa thực hiện được để giúp mọi
người có cái nhìn rõ hơn.
Phần nội dung: Gồm 3 chương.
Chương 1: Giới thiệu tổng quan.
Giới thiệu tổng quan về lịch sử, cấu trúc của thư viện mã nguồn mở OpenCV.
Giới thiệu đặc điểm, cấu tạo, và cách thức sử dụng Camera Kinect.
Giới thiệu về thư viện CL-NUI Platform.
Giới thiệu về những ứng dụng của OpenCV, Kinect vào thực tế.
Giới thiệu về cổng RS232, sóng RF.
Chương 2: Đếm số lượng ngón tay bằng phương pháp phát hiện màu da.
Trong chương này chương trình sẽ trình bày những đặc trưng của màu da, phương

pháp phát hiện bàn tay, tách bàn tay ra khỏi ảnh, đếm số lượng ngón tay bằng
phương pháp phát hiện màu da. Đếm số lượng ngón tay sử dụng camera Kinect và
xử lý ảnh độ sâu.
Chương 3: Xây dựng chương trình.
Nêu những thuật tốn, các bước thực hiện chương trình.
Nêu cách xây dựng chương trình và các chức năng mà chương trình hỗ trợ.
Các ứng dụng mở rộng đã được thực hiện và các ứng dụng có thể mở rộng của
chương trình.
Phần kết luận: Đánh giá chương trình.
Đưa ra những kết luận và hướng phát triển về chương trình đã xây dựng.


7

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN
1.1 Thư viện mã nguồn mở OpenCV.
OpenCV (Open Source Computer Vision) là một mã nguồn mở của Intel viết cho
ngành xử lý ảnh. OpenCV gồm các hàm được xây dựng cho việc xử lý thị giác máy thời
gian thực (Real time computer vision). Các thuật tốn xử lý ảnh thơng thường lẫn cao
cấp đều được tối ưu hóa bởi các nhà phát triển thư viện thành các hàm đơn giản cho
người dùng dễ dàng sử dụng. OpenCV có thể chạy trên nền tảng Linux, Windows, Mac
OS X và hỗ trợ rất nhiều ngôn ngữ như C/C++, Python, Ruby, Java...
Ngồi ra Intel cịn cung cấp thêm một thư viện Intel’s Intergrated Performance
Primitives (IPP) nhằm mục đích tự động tối ưu hơn nữa trên kiến trúc của Intel. Tuy
nhiên thư viện này là bản thương mại của Intel.
Thư viện OpenCV có hơn 500 hàm và được chia thành nhiều lĩnh vực như trong
an ninh, y tế, robot, xử lý ảnh,…
1.1.1 Lịch sử phát triển của OpenCV.
Lịch sử phát triển của OpenCV được biểu hiện qua sơ đồ sau:


Hình 1.1: Lịch sử phát triển của OpenCV [13]


8

OpenCV ra đời là một sáng kiến nghiên cứu của Intel nhằm mục đích đẩy
mạnh các ứng dụng của xử lý ảnh chuyên sâu. Hướng tới mục tiêu này, Intel đã đưa
ra nhiều dự án bao gồm xử lý ảnh theo thời gian thực, và những ứng dụng xử lý và
hiển thị ảnh 3D.
OpenCV bao gồm các hàm đã được viết sẵn vì vậy một người lập trình thay vì
phải xây dựng lại chức năng thì có thể dùng các hàm có sẵn của OpenCV.
1.1.2 Kiến trúc của OpenCV.
OpenCV có cấu trúc gồm 5 thành phần chính, 4 thành phần trong số đó được thể hiện
như trong hình 1.2.
Thành phần CV bao gồm:
+ Xử lý ảnh.
+ Phân tích cấu trúc.
+ Phân tích và theo dõi sự chuyển động của đối tượng.
+ Nhận dạng mẫu vật.
+ Hiểu chỉnh máy quay và xây dựng hình ảnh 3D.
Thành phần ML(Machine Learning) bao gồm:
+ Normal Bayes Classifier.
+ K Nearest Neighbors.
+ Support Vector Machines.
+ Decision Trees.
+ Boosting.
+ Random Trees.
+ Expectation-Maximization.
+ Neural Networks.
Thành phần HighGUI bao gồm:

+ Giao diện GUI cơ bản.
+ Tải và lưu hình ảnh.
+ Chức năng nhập xuất video.
+ Các tiện ích và các chức năng hệ thống.


9

Thành phần CXCore bao gồm:
+ Các cấu trúc dữ liệu cơ bản.
+ Các thao tác trên mảng.
+ Cấu trúc dữ liệu động.
+ Chức năng vẽ.
+ Lưu trữ tập tin, đọc, ghi dữ liệu.
+ Xử lý lỗi và các chức năng hệ thống.
+ Các chức năng khác.
Thành phần CvAux bao gồm thuật toán đã ngừng phát triển hoặc đang thử
nghiệm. CvAux bao gồm:
+ Stereo Correspondence Functions.
+ View Morphing Functions.
+ 3D Tracking Functions.
+ Eigen Objects (PCA) Functions.
+ Embedded Hidden Markov Model Functions.

Hình 1.2: Kiến trúc cơ bản của OpenCV.


10

1.1.3 Các ứng dụng của OpenCV.

Sự ra đời của thư viện mã nguồn mở OpenCV đã tiết kiệm được thời gian cho các lập
trình viên với trên 500 phương thức được lập trình sẵn về:
+ Xử lý hình ảnh và video như là: tạo, xóa, sửa, chuyển đổi, sao chép…
+ Lấy hình ảnh, video từ các thiết bị máy ảnh, camera, tập tin…
+ Theo dõi đối tượng.
Dựa trên thư viện mã nguồn mở OpenCV đã và đang xây dựng được rất nhiều các
ứng dụng vào trong thực tế và đa dạng trong các lĩnh vực: y tế, giáo dục, quốc
phòng....
+ Nhận dạng khuôn mặt.
+ Nhận dạng vân tay.
+ Nhận dạng biển số xe.
+ Phát hiện hình ảnh cụ thể.
+ Hiệu chỉnh hình ảnh
+ Phát hiện đối tượng.
Thư viện mã nguồn mở OpenCV có thể lập trình trên nhiều hệ điều hành khác nhau
và cho nhiều ngôn ngữ khác nhau: Window, Linux, Android…. Các ngôn ngữ như:
C/C++, Java, C#,….
1.2 Thiết bị Kinect Sensor.
1.2.1 Giới thiệu thiết bị Kinect Sensor.

Hình 1.3: Thiết bị Kinect


11

Kinect là sản phẩm của Microsoft dựa trên công nghệ camera được phát triển
bởi PrimeSense, những sản phẩm đầu tiên được bán tại Bắc Mỹ vào ngày 4 tháng 11
năm 2010. Kinect được coi như là một thiết bị ngoại vi cho Xbox 360, cho phép giao
tiếp với con người thông qua các cử chỉ, đem lại những cảm giác thú vị cho người
chơi game trên Xbox. Khả năng hiểu được cử chỉ con người của Kinect dựa trên hai

đặc tính chính sau: thơng tin về độ sâu ảnh (Depth Map), khả năng phát hiện và bám
theo đặc tính cơ thể người (Body Skeleton Tracking).
Kinect đang giữ kỷ lục Guiness thế giới về “Thiết bị điện tử được tiêu thụ
nhanh nhất” với 8 triệu sản phẩm trong 60 ngày. Hơn mười triệu sản phẩm Kinect đã
được phân phối trên thế giới vào thời điểm ngày 9 tháng 3 năm 2011. Bên cạnh phục
vụ cho mục đích chơi game, sản phẩm Kinect cịn được dùng vào mục đích nghiên
cứu xử lý ảnh 3D, phát hiện cử chỉ (gesture recognition), theo dõi cử động cơ thể
(body tracking) và nhiều mục đích khác. Lý do chính cho sự thành cơng của sản
phẩm Kinect là giá cả khá rẻ (khoảng $140 trên 1 sản phẩm) cho thiết bị có khả
năng cung cấp các thơng tin 3D với chất lượng chấp nhận được.
1.2.2 Cấu tạo của Kinect.
+ Kinect gồm có: RGB camera, cảm biến độ sâu (3D Depth Sensors), dãy microphone
(Multi-array Mic) và động cơ điều khiển góc ngẩng (Motorized Tilt).
+ RGB Camera: như một camera thơng thường, có độ phân giải 480x640 với tốc độ 30
fps.

Hình 1.4: Cấu tạo của Kinect


12

+ Cảm biến độ sâu: độ sâu được thu về nhờ sự kết hợp của hai cảm biến là đèn chiếu
hồng ngoại (IR Projector) và camera hồng ngoại (IR camera).
+ Dãy đa microphone: gồm bốn microphone được bố trí dọc Kinect như trên hình
1.4, được dùng vào các ứng dụng điều khiển bằng giọng nói.
+ Động cơ điều khiển góc ngẩng: là loại động cơ DC khá nhỏ, cho phép ta điều chỉnh
camera lên xuống để bảo đảm camera có được góc nhìn tốt nhất.
+ Một trong những đặc tính quan trọng nhất của Kinect đó là thu về giá trị độ sâu hay
giá trị khoảng cách tới vật thể trong thế giới thực.


Hình 1.5: Cấu tạo bên trong Kinect: RGB, IR camera và IR projector [16].
1.2.3 Tính tốn độ sâu của Kinect.
Cặp cảm biến IR camera và IR projector sẽ phối hợp với nhau để cho ra giá trị
độ sâu ảnh bằng công nghệ Light Coding của PrimeSense.
Khác với kỹ thuật Stereo Camera với việc dùng cặp camera giống nhau để
xây dựng nên bản đồ độ sâu, hay kỹ thuật Time-Of-Flight (TOF) định nghĩa khoảng
cách bằng ước lượng thời gian di chuyển của tia sáng đi và về trong không gian, kỹ
thuật Light Coding dùng một nguồn sáng hồng ngoại chiếu liên tục kết hợp với một
camera hồng ngoại để tính tốn khoảng cách. Cơng việc tính tốn này được thực hiện
bên trong Kinect bằng chip PS1080 SoC của PrimeSense. Cơng nghệ mới này được
cho là đáp ứng chính xác hơn, giá cả rẻ hơn cho việc sử dụng ở môi trường trong nhà.
Projector sẽ chiếu một chùm sáng hồng ngoại, tạo nên những đốm sáng ở không gian


13

phía trước Kinect, tập hợp đốm sáng được phát ra này là cố định. Những đốm sáng
này được tạo ra nhờ một nguồn sáng truyền qua lưới nhiễu xạ (diffraction gratings).
Tập hợp các đốm sáng này được IR camera chụp lại, thơng qua giải thuật đặc biệt
được tích hợp trong PS1080 SoC cho ra bản đồ độ sâu. Bản chất của giải thuật này là
các phép tốn hình học dựa trên quan hệ giữa hai cảm biến IR camera và Projector.

Hình 1.6: Quá trình thu về bản đồ độ sâu của Camera Kinect.

Hình 1.7: Mẫu hình được chiếu bởi projector và chụp lại bằng IR camera .
Hình 1.7 cho ta thấy rõ mẫu hình tập hợp các đốm sáng từ Projector và được
chụp lại bởi IR camera. Để hiểu cách thức Kinect ước lượng khoảng cách tới vật thể


14


trong mơi trường như thế nào, ta quan sát hình 1.8 trong trường hợp phân tích với
một điểm đơn giản.

Hình 1.8: Tính tốn khoảng cách tới một điểm chiếu từ Projector.
Ta giả sử Projector phát đi một tia sáng dọc đường màu xanh lá, nó sẽ được
chụp lại dưới dạng một đốm sáng bởi IR camera khi chạm vào bề mặt vật thể trong
không gian. Ta xét ba mặt phẳng ở ba khoảng cách khác nhau: mặt phẳng gần Kinect
(close plane), mặt phẳng ở xa Kinect (distant plane) và mặt phẳng tham chiếu
(reference plane) ở giữa hai mặt phẳng trên. Trong đó, mặt phẳng tham chiếu ngầm
được biết trước bên trong Kinect với đầy đủ thông tin về khoảng cách. Ngoài ra, ta
cũng đề cập thêm mặt phẳng ảnh (Image Plane) của IR camera, là mặt phẳng hình
chiếu của các điểm trong không gian thu về bởi IR camera. Ta xét trong ba trường
hợp khi tia sáng màu xanh lá chạm vào ba điểm trên ba mặt phẳng lần lượt là A, B, C,
ba điểm này được chiếu lên mặt phẳng ảnh tương ứng là A’, B’, C’. Quan sát vị trí
A’, B’ và C’, ta có nhận xét: điểm A càng gần Kinect (hay close plane càng gần
Kinect) thì A’ càng xa B’ về phía bên phải và ngược lại, điểm C càng xa Kinect (hay
distant plane càng xa Kinect) thì C’ càng xa B’ về phía bên trái. Từ đó: khi ta biết


15

trước hướng, điểm xuất phát của tia sáng từ Projector và vị trí B’ là hình chiếu của
điểm B trên mặt phẳng tham chiếu lên mặt phẳng ảnh, ta hoàn tồn có thể tính tốn
được độ sâu ảnh hay khoảng cách tới vật thể.
Kinect làm điều tương tự với tập hợp các đốm sáng còn lại phát đi từ
projector, với mặt phẳng tham chiếu biết trước. Nó tìm điểm là tâm của đốm sáng mà
IR camera chụp lại được và điểm tương đồng của đốm sáng đó trên mặt phẳng tham
chiếu (ví dụ: hình 1.8 ta có A và B, C và B là các cặp điểm tương đồng), để tìm
khoảng chênh lệch giữa hai điểm này theo chiều ngang khi chiếu về trên mặt phẳng

ảnh và lưu ý là giá trị chênh lệch này được tính bằng đơn vị pixel. Tập hợp của tất cả
các giá trị chênh lệch từ tập hợp đốm sáng, sẽ tạo nên bản đồ độ chênh lệch (disparity
map), giá trị này càng lớn thì khoảng cách hay giá trị độ sâu ảnh (depth) càng lớn, từ
đó mà ta xây dựng được bản đồ độ sâu (depth map) với giá trị tính bằng mét thực sự.
Tuy nhiên, do tập hợp số lượng đốm sáng phát đi từ projector nhỏ hơn so với tổng số
pixel trên mặt phẳng ảnh của IR camera nên một phần giá trị độ sâu ảnh cịn lại sẽ
được nội suy.
Theo tính toán của Nicolas Burrus, một trong những người mở đường cho việc
tìm hiểu về Kinect qua các thí nghiệm của ơng. Ơng đã cơng thức hóa được quan hệ
giữa giá trị khoảng cách thật z tính bằng mét và giá trị độ chênh lệch d:
𝑧=

1
−0.0030711016 ∗ 𝑑 + 3.3309495161

Trong đó d là con số nguyên biểu diễn dưới dạng 11 bit, tức khoảng thay đổi
từ 0÷2047. Với kết quả đo đạc thực nghiệm trên thư viện OpenNI, giá trị z biến thiên
trong khoảng 0.5÷6.0 mét và bản đồ độ sâu ổn định trong khoảng 0.5÷5.0 mét. Do đó,
giá trị d thực sự biến thiên trong khoảng từ 434÷1030. Như vậy, trong khơng gian từ
0÷0.5 mét phía trước Kinect, Kinect khơng thể đưa về bản đồ độ sâu.
1.2.4 Môi trường hoạt động của Kinect.
Kinect là thiết bị được thiết kế cho việc sử dụng ở môi trường trong nhà. Ở môi
trường ngoài trời, kết quả thử nghiệm cho bản đồ độ sâu khơng chính xác vào thời
điểm ánh sáng mạnh, nhưng cho kết quả chấp nhận được khi ánh sáng yếu (vào thời
điểm buổi chiều tối).


16

1.2.5 Ứng dụng Kinect vào thực tế.

Sự ra đời của Camera Kinect đã làm thay đổi hoàn toàn các phương thức lập
trình trong xử lý ảnh. Nếu như trước đây phải dùng đến 2 camera và nhiều thuật toán
phức tạp để tính được độ sâu thì bây giờ chỉ cần dùng Camera Kinect là có thể lấy
được ảnh độ sâu một cách dễ dàng.
Camera Kinect được sử dụng để xây dựng nhiều ứng dụng và rất nhiều các
lĩnh vực. Từ việc hỗ trợ trẻ khuyết tật, giúp bác sĩ trong phịng phẫu thuật cho tới cải
thiện mơi trường giáo dục, tiềm năng của Kinect đã vươn lên ngoài việc ứng dụng
vào game XBox. Với Kinect, nghệ sĩ có thể chơi nhạc cụ, một giáo viên trình diễn
chuỗi liên kết hóa học, bác sĩ phẫu thuật lật ảnh X quang hay kỹ thuật viên từ xa điều
khiển robot tháo ngòi một quả bom. Kinect ứng dụng trong giáo dục, y tế, quân sự và
nhiều lĩnh vực khác.
1.3 CL NUI Platform.
CL NUI Platform bao gồm một SDK API và một trình điều khiển ổn định về
phần cứng Microsoft Kinect (Xbox NUI Audio, NUI Camera, NUI Motor và gia tốc)
các thiết bị trên máy tính Windows.
Với CL NUI Platform người dùng có thể kiểm soát các máy ảnh, di chuyển lên
hoặc xuống động cơ hay thay đổi gia tốc và màu sắc đèn LED của Kinect.
Với CL NUI Platform và các phương thức đã được cung cấp sẵn, người lập trình
có thể lấy được ảnh từ Camera Kinect một cách linh hoạt, tùy ý và không phụ thuộc
vào bộ SDK Kinect Sensor.
1.4 Giới thiệu về cổng RS232, sóng RF.
1.4.1 Giới thiệu về cổng RS232.
1.4.1.1 Tổng quan
Vấn đề giao tiếp giữa PC và vi điều khiển rất quan trọng trong các ứng dụng điều
khiển, đo lường... Ghép nối qua cổng nối tiếp RS232 là một trong những kỹ thuật được sử
dụng rộng rãi để ghép nối các thiết bị ngoại vi với máy tính. Nó là một chuẩn giao tiếp nối
tiếp dùng định dạng không đồng bộ, kết nối nhiều nhất là 2 thiết bị, chiều dài kết nối lớn
nhất cho phép để đảm bảo dữ liệu là 12.5 đến 25.4m, tốc độ 20kbit/s đôi khi là tốc độ



17

115kbit/s với một số thiết bị đặc biệt. Ý nghĩa của chuẩn truyền thông nối tiếp nghĩa là
trong một thời điểm chỉ có một bit được gửi đi dọc theo đường truyền.
Có hai phiên bản RS232 được lưu hành trong thời gian tương đối dài là RS232B và
RS232C. Nhưng cho đến nay thì phiên bản RS232B cũ thì ít được dùng còn RS232C hiện
vẫn được dùng và tồn tại thường được gọi là tên ngẵn gọn là chuẩn RS232
Các máy tính thường có 1 hoặc 2 cổng nối tiếp theo chuẩn RS232C được gọi là
cổng Com. Chúng được dùng ghép nối cho chuột, modem, thiết bị đo lường...Trên main
máy tính có loại 9 chân hoặc lại 25 chân tùy vào đời máy và main của máy tính. Việc thiết
kế giao tiếp với cổng RS232 cũng tương đối dễ dàng, đặc biệt khi chọn chế độ hoạt động
là không đồng bộ và tốc độ truyền dữ liệu thấp.
1.4.1.2 Ưu điểm của giao diện nối tiếp RS232
Khả năng chống nhiễu của các cổng nối tiếp cao.
Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang được cấp điện.
Các mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua công nối tiếp.
1.4.1.3 Những đặc điểm cần lưu ý về chuẩn RS232
Trong chuẩn RS232 có mức giới hạn trên và dưới (logic 0 và 1) là +-12V. Hiện
nay đang được cố định trở kháng tải trong phạm vi từ 3000Ω - 7000Ω
Mức logic 1 có điện áp nằm trong khoảng -3V đến - Ω 12V, mức logic 0 từ +-3V
đến 12V
Tốc độ truyền nhận dữ liệu cực đại là 100kbps ( ngày nay có thể lớn hơn)
Các lối vào phải có điện dung nhỏ hơn 2500pF
Trở kháng tải phải lớn hơn 3000Ω nhưng phải nhỏ hơn 7000Ω
Độ dài của cáp nối giữa máy tính và thiết bị ngoại vi ghép nối qua cổng nối tiếp
RS232 không vượt qua 15m nếu chúng ta không sử dụng model.
Các giá trị tốc độ truyền dữ liệu chuẩn :
50,75,110,750,300,600,1200,2400,4800,9600,19200,28800,38400....56600,115200
bps[12].
1.4.1.4 Cổng RS232 trên PC

Hầu hết các máy tính cá nhân hiện nay đều được trang bị ít nhất là 1 cổng COM
hay cổng nối tiếp RS232. Số lượng cổng COM có thể lên tới 4 tùy từng loại main máy


18

tính. Khi đó các cổng Com đó được đánh dấu là Com 1, Com 2, Com 3...Trên đó có 2 loại
đầu nối được sử dụng cho cổng nối tiếp RS232 loại 9 chân (DB9) hoặc 25 chân (DB25).
Tuy hai loại đầu nối này có cùng song song nhưng hai loại đầu nối này được phân biệt bởi
cổng đực (DB9) và cổng cái (DB25)
Ta xét sơ đồ chân cổng Com 9 chân:

Hình 1.9: Cấu tạo chân cổng Com
Trên là các kí hiệu chân và hình dạng của cổng DB9.
Chức năng của các chân như sau:
+ Chân 1 : Data Carrier Detect (DCD) : Phát tín hiệu mang dữ liệu.
+ Chân 2: Receive Data (RxD) : Nhận dữ liệu.
+ Chân 3 : Transmit Data (TxD) : Truyền dữ liệu.
+ Chân 4 : Data Termial Ready (DTR) : Đầu cuối dữ liệu sẵn sàng được kích hoạt bởi bộ
phận khi muốn truyền dữ liệu.
+ Chân 5 : Singal Ground ( SG) : Mass của tín hiệu.
+ Chân 6 : Data Set Ready (DSR) : Dữ liệu sẵn sàng, được kích hoạt bởi bộ truyền khi nó
sẵn sàng nhận dữ liệu.
+ Chân 7 : Request to Send : yêu cầu gửi, bộ truyền đặt đường này lên mức hoạt động khi
sẵn sàng truyền dữ liệu.
+ Chân 8 : Clear To Send (CTS) : Xóa để gửi, bộ nhận đặt đường này lên mức kích hoạt
động để thơng báo cho bộ truyền là nó sẵn sàng nhận tín hiệu.
+ Chân 9 : Ring Indicate (RI) : Báo chuông cho biết là bộ nhận đang nhận tín hiệu rung
chng.
Cịn DB28 bây giờ hầu hết các main mới ra đều khơng có cổng này nữa [12].



19

1.4.2 Sóng RF.
Sóng RF (Radio Frequency) hay cịn gọi là Tần số sóng Radio hiện nay đang được
sử dụng rộng rãi trong các thiết bị điều khiển từ xa do khả năng truyền nhận tốt trong các
môi trường cũng như khả năng thi công dễ dàng. Hơn nữa bộ phát và thu sóng RF cũng
đang có mặt rộng rãi trên thị trường, giá thành dễ chấp nhận và tiện sử dụng.
Có khả năng truyền xa với khoảng cách tới 100m.
Có thể truyền xun tường, kính…
Nhưng có thể bị nhiễu do bên ngồi có rất nhiều các thiết bị máy móc sử dụng tần
số khác nhau [1].


20

CHƯƠNG 2: ĐẾM SỐ LƯỢNG NGÓN TAY
BẰNG PHƯƠNG PHÁP PHÁT HIỆN MÀU DA
Ngồi phương pháp phát hiện con người, khn mặt hoặc thành phần trên cơ thể
bằng cách áp dụng phương pháp dựa trên khung xương, mạng nơron thì phương pháp
phát hiện màu da để nhận biết cơ thể người là một phương pháp phổ biến trong nghành
xử lý ảnh ngày nay. Phương pháp này đang được ứng dụng và sử dụng rộng rãi trong
nhiều ứng dụng liên quan đến xử lý ảnh phục vụ cuộc sống.
Để tính tốn được số lượng ngón tay, thì việc đầu tiên là phải phát hiện được
bàn tay trong ảnh và tách được bàn tay đó ra khỏi mơi trường (nền của ảnh). Sau khi đã
tách ra được bàn tay thì mọi việc tính toán số liệu sẽ dựa vào bàn tay vừa tách được.
Mục đích chương 2 là phân tích phương pháp phát hiện bàn tay, tách bàn tay ra khỏi
ảnh và đếm số lượng ngón tay bằng phương pháp phát hiện màu da.
2.1 Đặc trưng của màu da.

Màu da và những kết cấu của nó là những tín hiệu, đặc điểm mà con người sự
dụng để suy ra nhiều khía cạnh liên quan tới các vấn đề về văn hóa, dân tộc.
Màu da và các đặc điểm đó có thể là một dấu hiệu của một chủng tộc, sức khỏe, tuổi
tác, vẻ đẹp...

Hình 2.1: Những màu da khác nhau của con người.
Qua hình ảnh hoặc video, màu da là dấu hiệu tồn tại của con người trong các
phương tiện truyền thơng. Có rất nhiều ứng dụng liên quan tới màu da và các phương
tiện truyền thơng trong đó đáng kể nhất là ứng dụng phát hiện màu da để xác định hình
ảnh khỏa thân trên Internet và nhận dạng khuôn mặt. Và việc phát hiện màu da cũng đã
là một đặc trưng quan trọng trong ngành nhận dạng và xử lý ảnh ngày nay.
Để phát hiện được màu da người ta sử dụng phương tìm những pixel trong ảnh có khả
năng thuộc về màu da. Tuy nhiên việc phát hiện pixel màu da không phải là điều đơn



×