Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 58 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
58
Dung lượng
1,31 MB
Nội dung
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU TẠI THÀNH PHỐ HỒ CHÍ MINH BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN NĂM 2018 ỨNG DỤNG XỬ LÝ ẢNH ĐỂ THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ THÔNG QUA VIỆC TƯƠNG TÁC VỚI BÀN PHÍM ẢO Sinh viên thực Nguyễn Văn Huy Đặng Nguyễn Trường Duy Trương Tấn Ngọc Trịnh Trương Lớp: Tự động hóa Lớp: Tự động hóa Lớp: Tự động hóa Lớp: Tự động hóa Người hướng dẫn: Th.s Võ Thiện Lĩnh Khoa: Điện – Điện tử Khoa: Điện – Điện tử Khoa: Điện – Điện tử Khoa: Điện – Điện tử MỤC LỤC LỜI MỞ ĐẦU Lý chọn đề tài .4 I II Mục tiêu nghiên cứu đề tài III Phương pháp nghiên cứu IV Đối tượng phạm vi nghiên cứu LỜI CẢM ƠN CHƯƠNG I : TỔNG QUAN CÁC LOẠI BÀN PHÍM TƯƠNG TÁC .7 1.1 Giới thiệu chung 1.2 Phân loại bàn phím tương tác 1.2.1 Tổng quan 1.2.2 Phân loại CHƯƠNG II : XỬ LÝ ẢNH TRÊN MATLAB 13 2.1 Giới thiệu xử lý ảnh .13 2.1.1 Phần thu nhận ảnh 14 2.1.2 Tiền xử lý ảnh 14 2.1.3 Phân đoạn (Segmentation) hay phân vùng ảnh 14 2.1.4 Biểu diễn ảnh (Image Representation) .15 2.1.5 Nhận dạng nội suy ảnh (Image Recognition and Interpretation) 15 2.1.6 Cơ sở tri thức (Knowledge Base) 15 2.2 Những vấn đề hệ thống xử lý ảnh .16 2.2.1 Điểm ảnh (Picture Element) .16 2.2.2 Độ phân giải ảnh 16 2.2.3 Mức xám ảnh 16 2.2.4 Định nghĩa ảnh số .17 2.2.5 Quan hệ điểm ảnh 17 2.3 Các hàm xử lý ảnh Matlab 19 CHƯƠNG III : PHƯƠNG PHÁP XÁC ĐỊNH NGÓN TAY THÔNG QUA MÀU DA 31 3.1 Nhận dạng màu da lấy ngưỡng 31 3.2 Phân loại da dựa vào ngưỡng kênh màu 32 CHƯƠNG IV : XÂY DỰNG HỆ THỐNG NHẬN DẠNG BÀN PHÍM ẢO 35 4.1 Tổng quan hệ thống nhận dạng bàn phím ảo 35 4.2 Xây dựng hệ thống nhận dạng 35 4.3 Phần cứng hệ thống 37 4.4 Giao diện phần mềm 38 4.5 Kết luận 39 Kết đạt 39 Hướng phát triển 40 TÀI LIỆU THAM KHẢO 40 Code bàn phím 42 Code chương trình 45 Code điều khiển 47 Danh mục hình ảnh Hình 1-1 Hình ảnh bàn phím ATM thường dùng Hình 1-2 Bàn phím máy tính .8 Hình 1-3 Bàn phím máy tính xách tay .8 Hình 1-4 Bàn phím khơng dây Hình 1-5 Bàn phím cảm ứng dùng ATM Hình 1-6 Bàn phím ảo dùng tia laser 10 Hình 2-1 Các bước xử lý ảnh 14 Hình 2-2 Các bước xử lý ảnh 14 Hình 2-3 Trước cân histogram .21 Hình 2-4 Sau cân histogram 21 Hình 2-5 Đầu mức xám 21 Hình 2-6 Trước phối hợp histogram .22 Hình 2-7 Sau phối histogram 22 Hình 2-8 Mức xám ban đầu ảnh .24 Hình 2-9 Cường độ mức xám sau phối hợp 24 Hình 2-10 Tách biên ảnh dung hàm edge .28 Hình 2-11 Lọc ảnh tuyến tính miền không gian 29 Hình 2-12 Lọc phi tuyến miền khơng gian 29 Hình 2-13 Lọc miền tần số 30 Hình 2-14 Lọc thích nghi median 30 Hình 3-1 Các bước xử lý ảnh màu da 33 Hình 4-1 Sơ đồ tổng quan hệ thống nhận dạng 35 LỜI MỞ ĐẦU I Lý chọn đề tài Ngày với phát triển khoa học kỹ thuật, thiết bị sử dụng công nghiệp lĩnh vực đời sống hàng ngày không yêu cầu độ bền,đẹp mà phải tiện lợi dễ dàng sử dụng bảo dưỡng Với loại bàn phím sử dụng thường có tuổi thọ thấp sử dụng mơi trường cơng nghiệp bụi bặm, nhiều hóa chất Theo thời gian độ nhạy giảm dẫn đến hiệu công việc không cải thiện, phiền toái cho người sử dụng Song vấn đề chưa giải cách triệt để Trước tình hình đó, nhóm nghiên cứu lên ý tưởng nghiên cứu loại bàn phím cỏ thể giải vấn đề mơ hình bàn phím ảo II Mục tiêu nghiên cứu đề tài - Xây dựng hệ thống nhận dạng bàn phím ảo - Thiết kế thi cơng mơ hình Robot di động - Hồn thành hệ thống Nhận dạng bàn phím ảo để điểu khiển thiết bị III Phương pháp nghiên cứu - Sử dụng ngôn ngữ lập trình C để điều khiển Robot,ngơn ngữ Python,Matlab nhận dạng bàn phím ảo - Áp dụng phương pháp nhận dạng bàn tay ,ngón tay: phương pháp phận tích đường bao theo Fourier; phương pháp moment; phương pháp K –curvature; phương pháp xấp xỉ đa giác(Thuật toán DouglasPeuker) … IV Đối tượng phạm vi nghiên cứu - Tổng quan cần thiết hệ thống nhận dạng bàn phím ảo tình hình nghiên cứu nước giới - Tìm hiểu phương pháp nhận dạng bàn tay, ngón tay: phương pháp phân tích đường bao theo Fourier, phương pháp moment, phương pháp K-curvature, phương pháp xấp xỉ đa giác(thuật toán Douglas–Peucker), … - Nghiên cứu mơ hình bàn phím ảo(bàn phím không tiếp xúc) - Xây dựng hệ thống nhận dạng bàn phím ảo - Thiết kế thi cơng mơ hình thiết bị LỜI CẢM ƠN Em xin chân thành cảm ơn quý thầy cô phân hiệu Trường Đại Học Giao Thông Vận Tải thành phố Hồ Chí Minh nói chung q thầy Bộ mơn Điện – Điện Tử nói riêng tận tình dạy bảo truyền đạt kiến thức cho nhóm chúng em q trình học tập Kính gửi đến thầy Võ Thiện Lĩnh lời cảm ơn chân thành sâu sắc nhất, cảm ơn thầy theo sát tận tình bảo cho nhóm chúng em suốt q trình thực đề tài này.Xin gửi lời tới anh chị khóa trên,các bạn lớp động viên, góp ý, giúp đỡ nhóm q trình tìm hiểu thực đề tài Thay mặt nhóm thực đề tài CHƯƠNG I : TỔNG QUAN CÁC LOẠI BÀN PHÍM TƯƠNG TÁC 1.1 Giới thiệu chung Ngày với đời nhiều thiết bị điện tử, sản phẩm công nghệ ngày hữu nhiều đời sống Để giao tiếp sử dụng sản phẩm cần thiết bị ngoại vi mà thể mệnh lệnh mong muốn người sử dụng Thiết bị bàn phím tương tác 1.2 Phân loại bàn phím tương tác 1.2.1 Tổng quan Bàn phím thiết bị ngoại vi mơ hình phần theo bàn phím máy đánh chữ Về hình dáng, bàn phím đặt nút, hay phím Một bàn phím thơng thường có ký tự khắc in phím; với đa số bàn phím, lần nhấn phím tương ứng với ký hiệu tạo Tuy nhiên, để tạo số ký tự cần phải nhấn giữ vài phím lúc liên tục; phím khác không tạo ký hiệu nào, thay vào tác động đến hành vi máy tính bàn phím Hình 1-1 Hình ảnh bàn phím ATM thường dùng 1.2.2 Phân loại a Bàn phím thường Hình 1-2 Bàn phím máy tính Hình 1-3 Bàn phím máy tính xách tay b Bàn phím khơng dây Bàn phím khơng dây bàn phím sử dụng sóng để kết nối khơng dây bluetooth, sóng radio hồng ngoại Hình 1-4 Bàn phím khơng dây c Bàn phím cảm ứng Hình 1-5 Bàn phím cảm ứng dùng ATM Bàn phím ảo Một bàn phím truyền thống dù gắn với máy tính để bàn phần laptop hoạt động máy tính nhỏ Nếu mở ra, bạn thấy xử lý bảng mạch tương tự bên máy tính bạn Bên phím lưới mạch, nhấn phím cơng tắc đóng lại truyền dịng điện nhỏ qua lưới, xử lý nhận diện phân tích Đến lượt mình, 43 data = snapshot(vid); [x,y] = ham(data); end % so elseif x>326 && x175 && y326 && x175 && y40 && x320 && y40 && x320 && y185 && x320 && y185 && x320 && y326 && x320 && y326 && x320 && y465 && x35 && y465 && x35 && y465 && x175 && y465 && x175 && y465 && x320 && y465 && x320 && y0 %str2 = strcat(str2,str1); text(270,20,str1,'Color','white','FontSize',22); hold on end end 45 Code chương trình function [x,y] = ham(data) data = flipdim(data,2); % lat anh r = data(:,:,1); g = data(:,:,2); b = data(:,:,3); diff_im=((r>254)&(g>120 & g80 & b0); y1 = min(y2); a = diff_im(y1,:); b= find(a>0); x = mean(b); y = y1 + 10; %%%%%%%%%%%%%%%%%%%%%%% % ke khung cho ban phim red=data(:,:,1); green=data(:,:,2); blue=data(:,:,3); % doc -red(35:455,40:40)=0; green(35:455,40:40)=255; blue(35:455,40:40)=0; % doc red(35:455,185:185)=0; green(35:455,185:185)=255; blue(35:455,185:185)=0; % doc red(35:455,326:326)=0; green(35:455,326:326)=255; 46 blue(35:455,326:326)=0; % doc red(35:455,465:465)=0; green(35:455,465:465)=255; blue(35:455,465:465)=0; % doc red(35:455,600:600)=0; green(35:455,600:600)=255; blue(35:455,600:600)=0; % ngang red(35:35,40:600)=0; green(35:35,40:600)=255; blue(35:35,40:600)=0; % ngang -red(175:175,40:600)=0; green(175:175,40:600)=255; blue(175:175,40:600)=0; % ngang -red(320:320,40:600)=0; green(320:320,40:600)=255; blue(320:320,40:600)=0; % ngang -red(455:455,40:600)=0; green(455:455,40:600)=255; blue(455:455,40:600)=0; A = cat(3,red,green,blue); imshow(A); xlabel('RebObject Detection'); hold on % %%%%%%%%%%%%%%%%%%%%%%%%% % % hien thi cac so 123456789 % text(213,160,'1','Color','yellow','FontSize',14); % text(320,160,'2','Color','yellow','FontSize',14); % text(427,160,'3','Color','yellow','FontSize',14); % text(213,240,'4','Color','yellow','FontSize',14); % text(320,240,'5','Color','yellow','FontSize',14); % text(427,240,'6','Color','yellow','FontSize',14); % text(213,320,'7','Color','yellow','FontSize',14); % text(320,320,'8','Color','yellow','FontSize',14); % text(427,320,'9','Color','yellow','FontSize',14); % text(266,400,'0','Color','yellow','FontSize',14); % text(374,400,'C','Color','yellow','FontSize',14); 47 Code điều khiển // code3 close all; x = 0; y = 0; a = serial('COM3'); set(a,'BaudRate',9600); vid=webcam(2); str=0; str2=0; a = zeros(1,100); while(1) data = snapshot(vid); [x,y] = ham(data); % so if x>40 && x35 && y40 && x35 && y185 && x35 && y185 && x35 && y326 && x35 && y326 && x35 && y40 && x175 && y40 && x175 && y185 && x175 && y185 && x175 && y326 && x175 && y326 && x175 && y40 && x320 && y40 && x320 && y185 && x320 && y185 && x320 && y326 && x320 && y326 && x320 && y465 && x35 && y465 && x35 && y465 && x175 && y465 && x175 && y465 && x320 && y465 && x320 && y0 %str2 = strcat(str2,str1); text(270,20,str1,'Color','white','FontSize',22); hold on end end // -ham -function [x,y] = ham(data) 53 data = flipdim(data,2); % lat anh r = data(:,:,1); g = data(:,:,2); b = data(:,:,3); diff_im=((r>254)&(g>120 & g80 & b0); y1 = min(y2); a = diff_im(y1,:); b= find(a>0); x = mean(b); y = y1 + 10; %%%%%%%%%%%%%%%%%%%%%%% % ke khung cho ban phim 54 red=data(:,:,1); green=data(:,:,2); blue=data(:,:,3); % doc -red(35:455,40:40)=0; green(35:455,40:40)=255; blue(35:455,40:40)=0; % doc red(35:455,185:185)=0; green(35:455,185:185)=255; blue(35:455,185:185)=0; % doc red(35:455,326:326)=0; green(35:455,326:326)=255; blue(35:455,326:326)=0; % doc red(35:455,465:465)=0; green(35:455,465:465)=255; blue(35:455,465:465)=0; % doc red(35:455,600:600)=0; green(35:455,600:600)=255; blue(35:455,600:600)=0; % ngang red(35:35,40:600)=0; 55 green(35:35,40:600)=255; blue(35:35,40:600)=0; % ngang -red(175:175,40:600)=0; green(175:175,40:600)=255; blue(175:175,40:600)=0; % ngang -red(320:320,40:600)=0; green(320:320,40:600)=255; blue(320:320,40:600)=0; % ngang -red(455:455,40:600)=0; green(455:455,40:600)=255; blue(455:455,40:600)=0; A = cat(3,red,green,blue); imshow(A); xlabel('RebObject Detection'); hold on % %%%%%%%%%%%%%%%%%%%%%%%%% % % hien thi cac so 123456789 % text(213,160,'1','Color','yellow','FontSize',14); % text(320,160,'2','Color','yellow','FontSize',14); % text(427,160,'3','Color','yellow','FontSize',14); % text(213,240,'4','Color','yellow','FontSize',14); 56 % text(320,240,'5','Color','yellow','FontSize',14); % text(427,240,'6','Color','yellow','FontSize',14); % text(213,320,'7','Color','yellow','FontSize',14); % text(320,320,'8','Color','yellow','FontSize',14); % text(427,320,'9','Color','yellow','FontSize',14); % text(266,400,'0','Color','yellow','FontSize',14); % text(374,400,'C','Color','yellow','FontSize',14); Code điều khiển Arduino // arduino -char state = 0; void setup() { Serial.begin(9600); // pinMode(13,OUTPUT); } void loop() { if (Serial.available()!=0){ //Doc gia tri Bluetooth state = Serial.read(); } 57 // else // state = 0; // Dieu khien //Serial.println(state); // if (state=='1') // TIEN { //Serial.println("truyn ok"); digitalWrite(13, 1); delay(500); digitalWrite(13, 0); } }