« Home « Kết quả tìm kiếm

Thiết kế một bộ điều khiển trò chơi dựa trên sự di chuyển của bàn tay trên nền FPGA


Tóm tắt Xem thử

- THIẾT KẾ MỘT BỘ ĐIỀU KHIỂN TRÒ CHƠI.
- DỰA TRÊN SỰ DI CHUYỂN CỦA BÀN TAY TRÊN NỀN FPGA.
- Altera DE2-115, FPGA, hệ thống nhúng, theo dõi bàn tay, xử lý ảnh.
- Trong những năm gần đây, các ứng dụng sử dụng phương pháp điều khiển giao diện tự nhiên như thông qua cử động của đầu, tay.
- Tuy nhiên, các giải pháp phần mềm cho việc điều khiển trên hiện tại vẫn còn hạn chế về tốc độ xử lý, đặc biệt là trong các ứng dụng thời gian thực.
- Từ đó, trên cơ sở thực hiện hệ thống nhúng trên nền FPGA, nghiên cứu này đề xuất một giải pháp phần cứng cho vấn đề đã nêu.
- Hệ thống được thực hiện sử dụng board Altera DE2-115 và một camera có độ phân giải 5 Mega pixel cho phép phát hiện và bám theo sự di chuyển của bàn tay người để điều khiển một trò chơi một cách tức thời.
- Kết quả của nghiên cứu là cơ sở cho việc tiếp tục nghiên cứu, phát triển các ứng dụng nhúng tương tác thông minh trên nền FPGA..
- 1 GIỚI THIỆU Bên cạnh đó, các ứng dụng nhúng phát triển sử.
- giảm thời gian, chi phí cho kiểm thử để nhanh chóng chuyển các ý tưởng thiết kế thành sản phẩm thương mại..
- Những năm gần đây, đã có một nghiên cứu theo hướng thiết kế hệ thống theo dõi sự đi chuyển của bàn tay (hand tracking) hoặc cử động của bàn tay (hand gestures) cho các ứng dụng điều khiển (Ahmad Athif Mohd Faudzi, et al., 2012), (Amit Gupta, et al., 2012), (Guangdong Liu, Zhongke Shi, 2011), (Hanting Lu, Kedari Elety, 2013).
- Các nghiên cứu trên đã sử dụng ngôn ngữ Verilog HDL để thiết kế phần cứng của hệ thống và áp dụng giải pháp nhận dạng màu da để nhận dạng và theo dõi sự di chuyển của bàn tay..
- Trong nghiên cứu này, chúng tôi đã chọn phương án thiết kế phần cứng của hệ thống nhúng trên FPGA bằng cách sử dụng lõi IP (Intellectual Property core) được nhà sản xuất cung cấp.
- Các lõi IP này đã được tối ưu hóa nhằm đảm bảo cho thiết kế phần cứng của hệ thống nhúng hoạt động ổn định và hiệu quả.
- Ngôn ngữ C được sử dụng cho việc lập trình cài đặt nhanh các thuật toán xử lý ảnh nhằm theo dõi sự di chuyển của bàn tay trong thời gian thực phục vụ cho mục đích điều khiển thiết bị..
- Trong nghiên cứu này, một ứng dụng trò chơi đơn giản cũng được thực hiện với mục đích kiểm chứng tính năng điều khiển thiết bị của hệ thống được thiết kế.
- Nội dung của bài viết bao gồm: Phần 2 trình bày phương pháp thiết kế hệ thống nhúng, giải thuật phần mềm để phát hiện, xử lý ảnh và điều khiển, Phần 3 đánh giá kết quả thực nghiệm..
- 2 THIẾT KẾ HỆ THỐNG NHÚNG 2.1 Tổng quan hệ thống.
- Hệ thống nhúng trong nghiên cứu này sử dụng Altera DE2-115 với các ngoại vi chính bao gồm SDRAM và SRAM, camera 5MP TRDB_D5M và màn hình hiển thị như Hình 1..
- Board DE2-115: được sử dụng để xây dựng hệ thống nhúng cho phép giao tiếp với camera chụp và xử lý hình ảnh bàn tay để điều khiển, hiển.
- thị trò chơi trên màn hình VGA..
- Camera 5MP TRDB_D5M: thu nhận hình ảnh từ bàn tay và gửi dữ liệu về hệ thống nhúng..
- VGA Monitor: màn hình theo chuẩn VGA để hiển thị trò chơi..
- Bàn tay: sự di chuyển của bàn tay cho phép điều khiển trò chơi đã được thiết kế sẵn..
- Hình 1: Sơ đồ hệ thống.
- 2.2 Xây dựng phần cứng của hệ thống nhúng Phần cứng của hệ thống được xây dựng trên chip FPGA Cyclone IV của board Altera DE2-115 bằng cách sử dụng các lõi IP thích hợp với trong công cụ SOPC Builder của phần mềm Altera Quartus II..
- Mỗi khối trong sơ đồ trên sẽ tương ứng với một lõi IP trong hệ thống SOPC.
- Các lõi IP này giao tiếp với nhau dựa trên kết nối liên hệ thống (System Interconnect Fabric) có tốc độ cao và băng thông rộng.
- Kết nối này sử dụng ghép nối ánh xạ bộ nhớ (Avalon Memory-Mapped Interface) và ghép nối luồng dữ liệu (Avalon Streaming Interface) để thực hiện việc truyền nhận dữ liệu chính xác giữa các thành phần trong hệ thống (Altera Corporation, 2010)..
- Hình 2: Sơ đồ khối hệ thống 2.2.1 Khối xử lý trung tâm.
- Khối xử lý trung tâm sử dụng CPU Nios II/f hoạt động ở tần số 50 MHz có bộ nhớ chương trình là SDRAM với cache lệnh và cache dữ liệu lần lượt là 4 KBytes và 2 Kbytes (Altera Corporation, 2011)..
- 2.2.2 Các khối thu nhận và xử lý dữ liệu từ camera TRDB_D5M.
- D5M configuration có nhiệm vụ khởi tạo và cấu hình hoạt động cho 5MP digital Camera (TRDB_D5M)..
- D5M Decoder có nhiệm vụ lấy dữ liệu từ nguồn video do camera cung cấp và truyền dữ liệu nhận được đến khối D5M Bayer Pattern..
- nhiệm vụ vừa bộ nhớ đệm cho dữ liệu thu được từ camera và xuất dữ liệu ra màn hình VGA..
- 2.2.4 Các khối xử lý dữ liệu VGA.
- Khối xử lý dữ liệu xuất ra VGA có nhiệm vụ đọc dữ liệu khung ảnh (frame) được lưu trữ trong bộ nhớ Pixel Buffer (vùng nhớ đệm dành cho VGA) và thực hiện chuyển đổi định dạng phù hợp với chuẩn hiển thị VGA.
- Khối VGA Pixel Buffer đọc các dữ liệu được ghi trên bộ nhớ đệm Pixel Buffer và truyền dữ liệu này sang khối VGA RGB Resampler, nhằm mục đích hiển thị nội dung khung ảnh lên VGA..
- Khối RGB Resampler có nhiệm vụ chuyển đổi định dạng 8-bit Grayscale (nhận được từ Pixel.
- chúng sang 640x480 – độ phân giải phù hợp cho hoạt động của khối VGA Controller..
- Khối VGA Dual-Clock FIFO đệm dữ liệu video và lưu trữ nó cho đến khi khối VGA Controller sẵn sàng để hiển thị.
- Bên cạnh đó, khối Dual-Clock FIFO còn có vai trò đảm bảo sự đồng bộ và giao tiếp giữa hệ thống với khối VGA controller..
- Khối VGA Controller tạo các tín hiệu điều khiển để hiển thị dữ liệu video lên màn hình VGA..
- Dữ liệu cho khối VGA Controller được cung cấp từ khối Dual-Clock FIFO theo định dạng 30-bit RGB với độ phân giải 640x480..
- 2.2.5 Các khối xử lý âm thanh.
- Để có thể xuất âm thanh trò chơi ra loa (speaker), dữ liệu âm thanh được đọc trực tiếp từ bộ nhớ Flash và xuất ra cổng Line Out của Audio (Altera Corporation, 2013).
- Audio Configuration có nhiệm vụ cấu hình cho hoạt động của chip Audio Codec thông qua chuẩn giao tiếp I 2 C.
- Trong SOPC Builder, lõi IP được sử dụng là Audio/Video Configuration..
- Audio có nhiệm vụ xuất tín hiệu âm thanh ra cổng Line Out trên board DE2-115.
- Lõi IP tương ứng được sử dụng là Audio..
- Flash có nhiệm vụ đọc dữ liệu âm thanh đã được lưu trữ trước đó và nạp vào khối Audio để xuất âm thanh ra loa.
- File âm thanh phục vụ cho trò chơi được nạp trước đó thông qua phần mềm DE2- 115 Control Panel.
- Lõi IP được sử dụng là Altera UP Flash Memory..
- Hệ thống thiết kế với khối External Clocks sử dụng lõi IP Avalon ALTPLL để tạo.
- xung đồng hồ cho toàn hệ thống (Altera Corporation, 2011)..
- 2.3 Thiết kế phần mềm 2.3.1 Chương trình chính.
- Chương trình chính có nhiệm vụ thực hiện tạo giao diện và điều khiển trò chơi bằng cách gọi các chương trình con thực hiện các chức năng liên quan: chụp và lưu ảnh, xử lý ảnh, hiển thị các giao diện và điều khiển trò chơi.
- Hình 3 trình bày lưu đồ mô tả cách hoạt động của chương trình này..
- 2.3.2 Chương trình con Đọc dữ liệu từ camera Hệ thống được thiết kế để nhận dữ liệu liên tục từ camera TRDB_D5M.
- Dữ liệu từ camera được lưu tại vùng nhớ này để phục vụ cho các công việc xử lý..
- 2.3.3 Chương trình con Tách ảnh bàn tay Để có thể tách ảnh bàn tay của người điều khiển (người chơi), nghiên cứu này sử dụng phương pháp trừ ảnh kết hợp với phân ngưỡng để cho ra ảnh mức xám chỉ bao gồm hai mức sáng là 0x00 và 0xFF.
- Lưu đồ của chương trình con này được trình bày chi tiết ở Hình 4 (Lâm Thị Ngọc Châu, 2003)..
- 2.3.4 Chương trình con Theo dõi bàn tay Trong thực tế, hình ảnh thu được từ camera sẽ xuất hiện rất nhiều nhiễu.
- Một bộ lọc thông thấp đã được sử dụng để hạn chế nhiễu trong, tuy nhiên nhiễu vẫn còn xuất hiện nhiều.
- Do đó, để theo dõi tốt quá trình di chuyển của bàn tay trong một phạm vi nhất định, chương trình sẽ thực hiện việc gán một cửa sổ có kích thước 3x3 pixel cho bàn tay như Hình 5(a).
- Việc xét 09 pixel kề nhau này tạo thành một khối hình vuông để xác định vị trí của bàn tay sẽ đảm bảo không bị nhầm lẫn với nhiễu đồng thời giúp cho việc theo dõi bàn tay khi di chuyển sẽ dễ dàng hơn mà không ảnh hưởng đến tốc độ xử lý..
- Hình 4: Lưu đồ chương trình con Tách ảnh bàn tay Do giới hạn về khả năng xử lý của CPU Nios II.
- nên giải thuật trừ ảnh kết hợp với phân ngưỡng ảnh xám được chọn sử dụng để tách ảnh bàn tay nhằm đảm bảo khả năng xử trong thời gian thực của hệ thống.
- với các pixel có giá trị bằng 0xFF tương ứng với ảnh hai bàn tay.
- Ảnh xám này sau khi bỏ bớt phần nội dung ảnh không chứa ảnh bàn tay (nhằm giảm số pixel cần xử lý, góp phần tăng tốc độ chương trình) sẽ được lưu vào 02 mảng riêng biệt tương ứng với ảnh của từng bàn tay..
- Hình 5: (a) Vị trí cửa sổ 3x3 pixel và (b) Hình ảnh theo dõi bàn tay trong thực tế.
- Hình 6: Lưu đồ giải thuật Theo dõi bàn tay Để điều khiển hai thanh trượt trong ứng dụng.
- trò chơi, chương trình con Theo dõi sự di chuyển của bàn sẽ áp dụng giải thuật Theo dõi bàn tay (xem lưu đồ Hình 6) để xử lý lần lượt với 02 mảng lưu ảnh xám của từng bàn tay có được từ chương trình con Tách ảnh bàn tay.
- Trong giải thuật này, các pixel trong mảng lưu ảnh xám của bàn tay được kiểm tra lần lượt ưu tiên theo từng dòng từ trên xuống dưới (y=0..n) và cột từ trái sang phải (x=0..n).
- 0xFF thì (x,y) được xem như vị trí của bàn tay.
- Hình 7 là hình ảnh của thiết kế phần cứng của hệ thống trên nền FPGA sử dụng phần mềm Altera SOPC Builder..
- Hệ thống phần cứng hoạt động ổn định, sử dụng ít tài nguyên trên chip FPGA (xem Hình 8)..
- Hình 8: Tài nguyên trên chip FPGA được sử dụng.
- thiết kế phần cứng của hệ thống Hình 9: Bố trí của hệ thống trong thực nghiệm Bố trí hệ thống trong thực nghiệm được trình.
- Hệ thống hoạt động ổn định thực hiện việc phát hiện và theo dõi sự di chuyển của 02 bàn tay của người chơi đứng đối diện với camera với các khoảng cách cần được đảm bảo như Hình 10.
- Trong ứng dụng trò chơi được thiết kế thì sự di chuyển của bàn tay của từng người chơi sẽ điều.
- Giao diện trò chơi này được thiết kế đơn giản, màu sắc dễ nhìn kết hợp hiệu ứng âm thanh khi chơi tạo thêm hứng thú cho người.
- Hình 10: Các vị trí và khoảng cách người chơi nên đảm bảo Tuy nhiên, do hệ thống hiện sử dụng camera đi.
- chung với board Altera DE2 có tốc độ khung hình không cao (15 fps) làm ảnh hưởng đến tốc độ phát hiện, theo dõi sự di chuyển của bàn tay đưa đến tốc độ điều khiển còn hạn chế.
- Mặt khác, phương pháp trừ ảnh mặc dù cho tốt độ xử lý cao hơn phương pháp nhận dạng màu da nhưng sẽ bị ảnh hưởng nhiều bởi điều kiện chiếu sáng của môi trường, vị trí các vật xung quanh thay đổi.
- Một đoạn video clip trình bày kết quả của nghiên cứu có thể xem tại đường link http://goo.gl/orX0xB..
- Bài viết đã trình bày việc thiết kế một bộ điều khiển dựa vào sự di chuyển của bàn tay trên nền FPGA, được kiểm chứng thành công qua một ứng dụng trò chơi trực quan, sinh động.
- Các thực nghiệm trong các môi trường có điều kiện chiếu sáng khác nhau, hệ thống đều hoạt động tốt, đạt các yêu cầu đặt ra.
- Kết quả của nghiên cứu cho thấy hệ thống điều khiển dựa trên sự di chuyển của bàn tay.
- hoàn toàn có thể áp dụng cho các ứng dụng điều khiển tương tác, thân thiện với người sử dụng..
- Media Computer System for the Altera DE2-115 Board..
- ftp://ftp.altera.com/up/pub/Altera.../DE2- 115_Media_Computer.pdf, ngày truy cập .
- ftp://ftp.altera.com/up/pub/Altera_Material/.
- Video/Video.pdf , ngày truy cập .
- www.altera.com/literature/hb/nios2/n2cpu_.
- nii5v1.pdf, ngày truy cập .
- www.altera.com/literature/hb/nios2/n2sw_n ii5v2.pdf, ngày truy cập .
- http://www.altera.com/education/univ/mater ials/comp_org/ip-cores/unv-ip-cores.html, ngày truy cập .
- D5M_Hardware%20specification.pdf, ngày truy cập .
- DE2-115 User Manual