Chương 3: THƯ VIỆN XỬ LÝ ẢNH
Tải bản đầy đủ - 0trang
Đề tài: Xe điện hệ tự động ứng dụng camera Kinect
d. Kinect SDK beta:
Kinect SDK [10] beta được Microsoft đưa ra vào ngày 16 tháng 6 năm 2011, là
một công cụ lập trình mạnh cho các nhà phát triển. Nó cho phép lập tình viên truy xuất
tồn bộ tính năng của thiết bị Kinect. Một điều bất tiện là thư viện chỉ hỗ trợ trên cơng
cụ lập trình của Micrisoft là Visual Studio 2011 với các ngơn ngữ lập trình là C++, C#,
Visual Basic. Các tính năng nổi bật như: thu ảnh từ các sensor, skeleton tracking và
điều khiển bằng giọng nói thơng qua cơng cụ nhận biết giọng nói, Windows Speech
Recognition API. Phiên bản beta hiện tại chỉ cho phép sử dụng vào mục đích phi lợi
nhuận, phiên bản thương mại hứa hẹn sẽ sớm ra mắt trong năm 2012. Phiên bản beta
mới nhất được cập nhật vào ngày 1 tháng 11 năm 2011 với nhiều lỗi được sửa và chạy
tốt trên Window 8 Developer Preview.
Tới thời điểm hiện tại, hai thư viện Open NI và Kinect SDK beta là lựa chọn
sáng suốt cho việc lập trình trên Kinect bởi tính năng hỗ trợ mạnh mẽ của hai thư viện
này. Mục 3.2 sẽ phân tích và so sánh hai thư viện này và chọn lựa thư viện phù hợp
cho đề tài luận văn.
3.2 SO SÁNH KINECT SDK BETA VÀ OPENNI
Sau đây là nhận định về ưu, khuyết điểm của hai thư viện trên [11].
a. Kinect SDK beta:
Ưu điểm:
+ Hỗ trợ xử lý âm thanh.
+ Hỗ trợ động cơ điều khiển góc ngẩng.
+ Skeleton tracking ( bám đặc tính cơ thể người): không cần hiệu chỉnh
trước khi bám, vẫn bám tốt trong trương hợp cơ thể người quay theo nhiều
hướng.
+ Hỗ trợ truy xuất các sensor của Kinect đồng thời.
+ Việc cài đặt đơn giản.
SVTH: Thiên, Trung, Vạn, Phú
12
Đề tài: Xe điện hệ tự động ứng dụng camera Kinect
Khuyết điểm:
+ Chỉ dùng cho mục đích phi thương mại.
+ Chỉ hỗ trợ bám tồn thể đặc tính cơ thể người.
+ Không hỗ trợ nhận biết địa chỉ.
+ Chỉ hỗ trợ trên Win7.
+ Không hỗ trợ việc thu ảnh trực tiếp từ IR camera.
+ Vùng Kinect khơng nhìn thấy trong khoảng 0 mét trước Kinect.
b. Open NI:
Ưu điểm:
+ Cho phép xây dựng các ứng dụng thương mại hóa.
+ Hỗ trợ phát hiện cử chỉ.
+ Skeleton tracking: hỗ trợ bám từng phần cơ thể người và hand tracking
thông qua liên kết với các middleware. Hơn nữa, tiêu thụ công suất của CPU ít
hơn so với khi sử dụng Kinect SDK.
+ Hỗ trợ truy xuất các sensor của Kinect đồng thời.
+ Hõ trợ cho Window, Linux và Mac OSX.
+ Cho phép truy xuất hình ảnh thu về từ IR camera.
+ Vung Kinect khơng nhìn thấy trong khoảng chấp nhận được là 0.5 mét
trước Kinect.
Khuyết điểm:
+ Không hỗ trợ phần xử lý âm thanh cho dãy Microphone.
+Skeleton tracking: bám đặc tính cơ thể còn nhiều lỗi và chưa được ổn định
như trên Kinect SDK.
+ Không hỗ trợ động cơ điều khiển góc ngẩng.
+ Việc cài đặt có phần rối rắm hơn Kinect SDK.
SVTH: Thiên, Trung, Vạn, Phú
13
Đề tài: Xe điện hệ tự động ứng dụng camera Kinect
Chương 4: PHẦN MỀM LabVIEW
4.1 GIỚI THIỆU
LabVIEW (Laboratory Virtual Instrument Engineering Workbench) là một nền
tảng thiết kế hệ thống và là môi trường phát triển cho ngơn ngữ lập trình đồ họa.
LabVIEW hỗ trợ tạo các ứng dụng với giao diện người dùng chuyên nghiệp một cách
nhanh chóng và hiệu quả, LabVIEW được sử dụng để phát triển các ứng dụng đo
lường, kiểm thử, và điều khiển tinh vi bằng cách sử dụng các khối lệnh trực quan và
dây nối tín hiệu. Ngồi ra, LabVIEW còn có thể được mở rộng cho nhiều nền tảng
phần cứng và hệ điều hành khác nhau.
Vì LabVIEW là chương trình mơ phỏng giao diện và hoạt động của các thiết bị
thực, nên chương trình LabVIEW được gọi là VI (virtual instrument). Một chương
trình VI gồm có Front Panel và Block Diagram. Font Panel là giao diện người dùng
nơi mà sẽ hiển thị các hình ảnh trực quan để người dùng dễ thao tác còn Block
Diagram là nơi mà chúng ta viết lệnh cho chương trình.
4.2 CHỨC NĂNG CỦA LabVIEW
LabVIEW được dùng nhiều trong các phòng thí nghiệm, lĩnh vực khoa học kỹ
thuật như tự động hóa, điều khiển, điện tử, cơ điện tử, hàng khơng, hóa sinh, điện tử y
sinh,...Hiện này ngoài phiên bản LabVIEW cho các hệ điều hành Windows, Linux,
hãng NI đã phát triển các module LabVIEW cho máy hỗ trợ cá nhân (PDA).
Chức năng chính của labview có thể tóm tắt như sau:
Thu thập tín hiệu từ các thiết bị bên ngoài như cảm biến nhiệt độ, hình ảnh từ
webcam, vận tốc của động cơ,...
Giao tiếp với các thiết bị ngoại vi thông qua nhiều chuẩn giao tiếp như RS232,
USB, Ethernet,...
Mô phỏng và xử lý các tín hiệu thu nhận được để phục vụ các mục đích
nghiên cứu hay mục đích của hệ thống mà người lập trình mong muốn.
Xây dựng các giao diện người dùng một cách nhanh chóng.
Cho phép thực hiện các thuật toán điều khiển như PID một cách nhanh chóng
thơng qua các chức năng tích hợp sẵn trong LabVIEW.
SVTH: Thiên, Trung, Vạn, Phú
14
Đề tài: Xe điện hệ tự động ứng dụng camera Kinect
Cho phép kết hợp với các ngơn ngữ lập trình truyền thống như C++, Java...
4.3 CÁC PHIÊN BẢN CỦA LabVIEW
Từ khi ra đời đã có nhiệu thay đổi và cải tiến, ngày nay bản mới nhất tính tới
tháng 4 năm 2007 là bản LabVIEW 8.2 với nhiều tính năng mới và các mudule cũ và
mới tương thích với phiên bản này như: module mơ phỏng quá trình, module xử lý
ảnh, điều khiển chuyển động, cơ điện tử, cơng nghệ hóa sinh,...
4.4 XU HƯỚNG CỦA LabVIEW
Nhờ tính năng hỗ trợ mạnh và nhanh chóng cho các ứng dụng trong kỹ thuật, lĩnh
vực giáo dục nên LabVIEW được dùng nhiều trong các phòng thí nghiệm và trung tâm
nghiên cứu cũng như các hệ thống công nghiệp. Nhiều trường đại học đã đưa
LabVIEW trở thành môn học chính thức.
4.5 CÁC ỨNG DỤNG CỦA LabVIEW
LabVIEW được sử dụng trong các lĩnh vực đo lường, tự động hóa, cơ điện tử,
robotics, vật lý, toán học, sinh học, vật liệu, ôtô, ...
LabVIEW giúp kỹ sư kết nối bất kỳ cảm biến, và bất kỳ cơ cấu chấp hành nào
với máy tính.
LabVIEW có thể được sử dụng để xử lý các kiểu dữ liệu như tín hiệu tương tự
(analog), tín hiệu số (digital) hình ảnh (vision), âm thanh (audio),...
LabVIEW hỗ trợ các giao thức giao tiếp khác nhau như RS232,RS485, TCP /
IP, PCI, PXI, và như vậy.
Bạn cũng có thể tạo ra các thực thi độc lập và các thư viện chia sẻ (ví dụ thư
viện liên kết rộng DLL), bởi vì LabVIEW là một trình biên dịch 32-bit.
LabVIEW đã trở nên phổ biến ở các phòng thí nghiệm ở Nhật, Hàn,Mỹ, Anh,
Đức,... Phần này trình bày một số ứng dụng của LabVIEW tiêu biểu và các dự án tại
các phòng thí nghiệm trong và ngồi nước mà tác giả cuốn sách này đã tham gia thực
hiện dự án.
Ứng dụng đo lường,trong hình 4.1 là giao diện thu thập dữ liệu các thông tin cần
thiết của tàu vũ trụ cỡ nhỏ tại cơ quan hàng không và vũ trụ NASA, Hoa Kỳ.
SVTH: Thiên, Trung, Vạn, Phú
15
Đề tài: Xe điện hệ tự động ứng dụng camera Kinect
Hình 4.1 Thu thập dữ liệu tại Cơ quan hàng không và vũ trụ - NASA
Ứng dụng hình 4.2 này giới thiệu áp dụng của việc sử dụng LabVIEW và card
Hocdelam USB 9001 hoặc NI USB 6008 để thực hiện đo tín hiệu, vẽ biểu đồ đặc
tuyến các cảm biến trong ôtô và thực nghiệm thuật toán chuyển đổi cảm biến nhằm hạ
giá thành sửa chữa xe ơtơ.
Hình 4.2 Thu thập dữ liệu từ cảm biến đo gió trong ơtơ và thí nghiệm thuật tốn chuyển đổi
cảm biến
Điều khiển xe ơ tơ từ xa, hình 4.3 là giao diện điều khiển ơtơ bảy chỗ (xe
Captival) từ xa được thực hiện bởi thành viên Hocdelam Group tại phòng thí nghiệm
Biorobotics, Hàn Quốc. Giao diện này hồn tồn được xây dựng trong mơi trường lập
trình LabVIEW có khả năng hiển thị cácthơng số và tín hiệu thực như: vận tốc xe, mực
xăng, vị trí tay số của xe,video truyền từ xe qua mạng không dây, âm thanh từ động cơ
SVTH: Thiên, Trung, Vạn, Phú
16
Đề tài: Xe điện hệ tự động ứng dụng camera Kinect
tỷ lệ thuận với vị trí bướm ga cũng được giả lập làm cho việc điều khiển xe từ xa
giống với việc lái xe trực tiếp nhằm nâng cao chất lượng điều khiển xe.
Hình 4.3 Giao diện lái ơtơ từ xa
SVTH: Thiên, Trung, Vạn, Phú
17
Đề tài: Xe điện hệ tự động ứng dụng camera Kinect
Mơ phỏng 3D, hình 4.4 mơ tả ứng dụng mơ phỏng một cánh tay robot đơn giản.
Hình 4.4 Điều khuyển tay Robot
Thu thập hình ảnh và mơ phỏng động lực học, hình 4.5 trình bày ứng dụng mô
phỏng hệ thống lái không trục lái trong ô tô.
SVTH: Thiên, Trung, Vạn, Phú
18
Đề tài: Xe điện hệ tự động ứng dụng camera Kinect
Hình 4.5 Hệ thống lái khơng trục lái tại phòng thí nghiệm Biorobotics, KUT, Hàn Quốc
Chương 5: VI ĐIỀU KHIỂN ARDUINO MEGA VÀ MODULE ĐIỀU KHIỂN
ĐỘNG CƠ L298N
5.1 GIỚI THIỆU ARDUINO
SVTH: Thiên, Trung, Vạn, Phú
19
Đề tài: Xe điện hệ tự động ứng dụng camera Kinect
Hình 5.1 Arduino Mega
Arduino Mega2560 là một vi điều khiển
Bao gồm:
- 54 chân digital (15 có thể được sử dụng như các chân PWM)
- 16 đầu vào analog
- 4 UARTs (cổng nối tiếp đầu cứng)
- 1 thạch anh 16MHz
- 1 cổng kết nối USB
- 1 jack cắm điện
- 1 đầu ICSP
- 1 nút reset
Nó chứa tất cả mọi thứ cần thiết để hổ trợ các vi điều khiển. Arduino Mega 2560
khác với tất cả các vi xử lý trước giờ vì khơng sử dụng FTDI chip điều khiển chuyển
tín hiệu từ USB để xử lý. Thay vào đó, nó sử dụng Atmega 16U2 lập trình như là một
cơng cụ chuyển đổi tín hiệu từ USB. Ngoài ra, Arduino Mega 2560 cơ bản vẫn giống
Arduino Uno R3, chỉ khác số lượng chân và nhiều tính năng mạnh mẽ hơn, nên các
bạn vẫn có thể lập trình cho con vi điều khiển này bằng chương trình lập trình cho
Arduino Uno R3.
SVTH: Thiên, Trung, Vạn, Phú
20