Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 38 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
38
Dung lượng
3,94 MB
Nội dung
ĐỒ ÁN TỐT NGHIỆP Trang 1/38 ĐỒ ÁN TỐT NGHIỆP XÂYDỰNGMƠHÌNHĐIỀUKHIỂNTHIẾTBỊDÙNGCỬCHỈBÀNTAYXâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 2/38 CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu nhận dạng cửbàntay Với phát triển khoa học ngày nay, tương tác robot người trở thành lĩnh vực ý Hiện có nhiều kỹ thuật nhận dạng nghiên cứu như: nhận dạng dấu vân tay, nhận dạng khuôn mặt người, nhận dạng ký tự/chữ/số Và nhận dạng cửbàntay nghiên cứu đưa vào sử dụng rộng rãi Cửbàntay đưa vào sử dụng hiệu nhằm đưa lệnh cho robot thực thi Một số ứng dụng: • Người máy tính tương tác với • Tương tác với thiếtbị ngoại vi • Ứng dụng khác Hình 1- Hình ảnh sử dụng TV với cửbàntay Error: Reference source not found Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 3/38 Ngoài ra, nhận dạng cửbàntay còn có khả ứng dụng vào việc giao tiếp với người bị câm, điếc… 1.2 Mục tiêu đề tài Đề tài “Xây dựngmơhìnhđiềukhiểnthiếtbịdùngcửbàn tay” thực bao gồm xâydựngmơhình nhận dạng cửbàntaydùng phần mềm MATLAB2016a, kết hợp với máy tính có sẵn webcam để thu thập cử (đếm số ngón tay) để điềukhiểnthiếtbị nhà TV, đèn, quạt, … 1.3 Nội dung thực Đề tài thực gồm nội dung sau: - - - Tìm hiểu lý thuyết xử lý ảnh lý thuyết nhận dạng cửbàntay o Các khái niệm ảnh/ảnh số o Các kỹ thuật xử lý ảnh o Các phương pháp/kỹ thuật nhận dạng Tìm hiểu phương pháp phân tích thành phần (P C A) ứng dụng Lập trình ứng dụng nhận dạng cử MATLAB thực đánh giá o Xâydựng CSDL cửdùng cho huấn luyện đánh giá o Lập trình xử lý ảnh bàntay cho nhận dạng dùng P C A Xâydựng hệ thống áp dụng kỹ thuật nhận dạng cử cho việc điềukhiểnthiếtbị o Thu thập ảnh cử qua ảnh có sẵn webcam o Kết hợp vi điềukhiển để điềukhiểnthiếtbị nhà TV, đèn, quạt, … Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 4/38 CHƯƠNG LÝ THUYẾT XỬ LÝ ẢNH VÀ NHẬN DẠNG 2.1 Tổng quan xử lý ảnh 2.1.1 Điểm ảnh ( picxel ) Điểm ảnh phần tử ảnh số có toạ độ ( x , y ) với mức xám hay màu định Khoảng cách kích thước điểm ảnh chọn phù hợp để mắt người cảm nhận liên tục không gian mức xám (hoặc màu sắc) ảnh số gần ảnh thật 2.1.2 Mức xám ảnh Hình 2- Các mức xám.Error: Reference source not found Mức xám kết cho mã hoá tương ứng cường độ sáng điểm ảnh, với giá trị số Cách mã hoá thường dùng 16, 32 hay 64 mức Mã hoá 256 mức phổ biến = 256 (0, 255), nên với 256 mức, pixel mã hoá bit ( hay byte) 2.1.3 Phân loại ảnh • Ảnh nhị phân Mỗi điểm ảnh biểu diễn bit Giá trị điểm ảnh nhận hai giá trị Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 5/38 Hình 2- Biểu diễn cho mức trắng đen.Error: Reference source not found Hình 2- Ảnh nhị phân.Error: Reference source not found • Ảnh xám Giá trị điểm ảnh nằm tập [0 255], điểm ảnh biểu diễn byte ( bits ) Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 6/38 Hình 2- Ảnh xám.Error: Reference source not found • Ảnh màu Hình 2- Ảnh màu R G B.Error: Reference source not found o Hệ màu R G B chế độ hiển thị màu sắc tự nhiên hình CRT, hình LCD hình plasma Hệ màu R G B hệ màu tốt cho thiết kế: thiết kế website, hình ảnh kỹ thuật số, thiết kế tài liệu quảng cáo trực tuyến… o Hệ màu C M Y K mơhình màu tất màu mô tả hỗn hợp trình hòa trộn bốn màu sắc C M Y K mơhình màu sử dụng in offset cho tài liệu đầy đủ màu sắc Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 7/38 o Hệ màu YcbCr : hệ không gian màu dùng phần đường dẫn ảnh màu video hệ thống mơhình nhiếp ảnh kỹ thuật số 2.2 Kỹ thuật nhận dạng dùng xử lý ảnh Nhận dạng ảnh trình xác định vật thể/hình dạng ảnh Quá trình thường thu cách so sánh với mẫu chuẩn học từ trước 2.2.1 Hệ thống nhận dạng dùng xử lý ảnh Hình 2- Các giai đoạn xử lý ảnh 2.2.2 Một số phương pháp nhận dạng Việc giải toán nhận dạng, ứng dụng mới, nảy sinh sống không tạo thách thức giải thuật, mà còn đặt yêu cầu tốc độ tính tốn Nên có nhiều phương pháp nhận dạng nghiên cứu để giải toán nhận dạng khác Mỗi phương pháp có nhửng tính hiệu định, sau vài phương pháp phổ biến lĩnh vực nhận dạng 1.1.1.1 Phương pháp phân tích thành phần P C A Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 8/38 P C A – Principaul Components Analysiss : Là phương pháp đơn giản để phát đối tượng , sử dụng cường độ xám màu điểm ảnh để biểu diễn đối tượng Phương pháp nhằm giảm số chiều ảnh mà giữ lượng thơng tin lớn 1.1.1.2 Phương pháp phân tích thành phần độc lập I C A I C A - Indepeudent Compouent Analysis: Để định nghĩa I C A, ta dụngmơhình biến ẩn thống kê, n biến ngẫu nhiên x 1, …, xn, tổ hợp tuyến tính n biến ngẫu nhiên s1… sn dạng: xi = ai1s1 + ai2s2 +…+ ainsn , i = 1,2,…,n với aij (i, j = 1, …, n) hệ số thực Các s i độc lập thống kê với Mơhình I C A giải bà i tốn x As với điều kiện ràng buộc sau: • Nguồn tín hiệu gốc ban đầu độc lập thống kê với • Ma trận trộn A ma trận vng • Tối đa có nguồn tín hiệu gốc có phân bố Ganss Phương pháp I C A giải toán x As phương pháp thống kê thông qua việc ước lượng vector y = Wvx (đặt Wv = Av-1) 1.1.1.3 Phương pháp H O G (Histosgram Ogrientations Grandient) Là hình dạng đối tượng ảnh đặc trưng tốt phân bố theo thay đổi mức xám hay theo hướng biến đối tượng H O G tính cách chia ảnh thành nhiều vùng không gian nhỏ hơn, gọi cell, cell này, tích lũy “histosgram” chiều cục hướng “gradient” định hướng biên điểm ảnh cell Những cell nằm cạnh gộp lại thành khối gọi “blocks”, “blocks” chồng lên nhằm tăng cường mối quan hệ không gian điểm ảnh Các “histogram” khối kết hợp với tạo thành vector đặc trưng 1.1.1.4 Phương pháp sử dụng mạng “nơrons” Mạng “nơrons” nhân tạo xâydựng để mơhình số tính chất mạng “nơrons” sinh học Đa số ứng dụng lại có chất kỹ thuật Mạng nơrons nhân tạo gọi máy mô cách não hoạt động thực Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 9/38 nhiệm vụ Một mạng nơron xử lý song song phân tán lớn, giống não người mặt: • Tri thức nắm bắt mạng “nơrons” thơng qua q trình học • Độ lớn trọng số kết nối “nơrons” đóng vai trò khớp nối lưu giữ thông tin 1.1.1.5 Phương pháp S V M (Suported Vectort Maching) S V M phương pháp phân loại tự động tương đối Vapnik [3] đưa vào năm 1995 Nhiều thử nghiệm với ứng dụng khác cho thấy S V M phương pháp phân loại có độ xác cao phương pháp tương đối tổng quát cho toán nhận dạng Như vậy, để thực việc nhận dạng cửtay đề tài “Xây dựngmơhìnhđiềukhiểnthiếtbịdùngcửbàn tay”, phương pháp nhận dạng lựa chọn phương pháp phân tích thành phần P C A tiến hành cách đơn giản dễ thực Thêm vào P C A hữu ích ứng dụng nhận dạng thể nén ảnh, kỹ thuật phổ biến để tìm mẫu liệu nhiều chiều Chất lượng độ xác xử lý ảnh dùng phương pháp P C A đạt cao 2.2.3 Khái niệm nhận dạng cửbàntay Nhận dạng cửbàn tay, phương pháp sử dụng kĩ thuật máy tính nhằm xác định cử chỉ, chuyển động bàntay Trong đề tài “ Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ” đếm số ngón tayhình ảnh thu Từ ứng dụngxâydựng hệ thống nhằm điềukhiểnthiếtbị tương tác cửbàn tay… Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 10/38 CHƯƠNG PHƯƠNG PHÁP PHÂN TÍCH THÀNH PHẦN CHÍNH P C A Phương pháp phân tích thành phần (P C A) phương pháp sử dụng thường xuyên phải đối mặt với số liệu với số chiều lớn (big data) Là phương pháp giảm thiểu chiều liệu mà không thông tin giữ lại thông tin cần thiết cho việc nhận dạng cửbàntay 3.1 Phương pháp phân tích thành phần (P C A) 3.1.1 Khái niệm P C A P C A tên viết tắt Princispal Comnponents Anaulysis hay còn gọi phương pháp phân t ích theo thành phần chính, Karls Pearsson phát minh năm 1901 Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 24/38 Hình 4- 11 Hình ảnh nhận dạng ngón tay 4.2.2 Đánh giá ảnh thực thu từ webcam Bảng 4- Bảng đánh giá hiệu suất nhận dạng chương trình mơ • Nhận xét: Ảnh có sẵn với chất lượng ảnh với ánh sáng tốt mang lại hiệu suất nhận dạng cao Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 25/38 CHƯƠNG XÂYDỰNGMƠHÌNHĐIỀUKHIỂNTHIẾTBỊMơhình gồm có khối chính: • Khối nhận dạng cử • Khối điềukhiểnthiếtbị • Khối thực lệnh điềukhiểnthiếtbịHình 5- Mơhìnhđiềukhiểnthiếtbịdùngcửbàntay - 5.1 Nguyên lý hoạt động môhình Tạo sở liệu Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 26/38 Hình 5- Giao diện tạo sở liệu - Ấn nút Train xuất hộp thoại data để chọn tập ảnh huấn luyện Hình 5- Giao diện chọn tập ảnh luyện - Đưa ảnh vào nhận dạng : Chọn ảnh từ webcam tập ảnh có - sẵn để nhận dạng qua nút “Chup anh” “Chon anh bat ki” Sau sử dụng nút “Nhan dang” để đưa kết hiển thị khung số trống Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 27/38 Hình 5- Giao diện đưa ảnh vào nhận dạng 5.2 Khối xử lý - PIC16F887 Trong đề tài “Xây dựngmơhìnhđiềukhiểnthiếtbị sử dụngcửbàn tay”, sử dụng vi điềukhiển PIC16F887 xử lý trung tâm, nhận lệnh từ chương trình truyền xuống Khi khối nhận dạng cửbàntay nhận dạng tình trạng bàntay hiển thị số mệnh lệnh truyền xuống khối xử lý tác động lên relay tương ứng để điềukhiển bật tắt thiếtbị mang số nhận dạng Hình 5- Sơ đồ chân Vi điềukhiển PIC 16F887 Error: Reference source not found Thông số kỹ thuật : - Thuộc dòng PIC16 Port xuất nhập với 35 PIN I/O Tần số hoạt động tối đ a 20 M Hz Điện áp hoạt động từ 2.5V đến 5.5V Hỗ trợ 8Kb FLASH, 256 byte Internal EEPROM Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 28/38 - Có đầy đủ chức : 14 Kênh ADC 10 bit, CCP (Capture, Compare, - PWM), MSSP (UART, SPI, I2C)… timer : TIMER 0, TIMER 1, TIMER 5.3 Khối Relay Hình 5- Module relay Thông số kỹ thuật : - Sử dụng điện áp cấp nguồn 5VDC Relay đóng ngắt điện kích 0V nên sử dụng cho tín hiệu - 5V hay 3v3 (cần cấp nguồn ngoài), Relay tiêu thụ dòng khoảng 80mA Điện đóng ngắt tối đa: AC250V - 10A DC30V - 10A Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 29/38 Hình 5- Sơ đồ nguyên lý module relay Hình 5- Kết MơhìnhXâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 30/38 CHƯƠNG KẾT LUẬN 6.1 Kết luận Mơhìnhđiềukhiểnthiếtbịdùngcửbàntay thông qua sử dụng phương pháp PCA hồn thiện có khả nhận dạng số ngón tay Tuy nhiên còn có nhược điểm chưa nhận dạng ảnh động, khả nhận dạng cửbàntay không cao, kết nối với thiếtbịđiềukhiển khoảng cách còn gần 6.2 Hướng phát triển Trong tương lai, mơhìnhđiềukhiểnthiếtbịdùngcửbàntay thực đề tài phát triển database theo dạng thư viện mở để phát triển khả nhận dạng tốt Và để tăng hiệu suất nhận dạng cho môhình cần giải vấn đề sau: Tăng độ xác cho chương trình cách nghiên cứu bổ sung giải thuật khác I C A, S V M,… Tăng chất lượng ảnh đầu vào việc nâng cấp camera Tăng thêm liệu cho tập huấn luyện tham khảo phần mềm chuyên dụng cho việc nhận dạng OpenCV… TÀI LIỆU THAM KHẢO Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 31/38 Tiếng Việt: [1] TS Phạm Hồng Liên, Đặng Ngọc Khoa, Trần Thanh Phương (11/2005), MATLAB ứng dụng tron g viễn thông [2] Lê Mạnh Linh (09/2015), Nhận dạng cửbàntay ứng dụngđiềukhiểnthiếtbị điện gia dụng Tiếng Anh: [3] Vapnik, V., Supoport-Vecrsttor ,Networks Machine Learning, 1995: p 273-297 [4] Mandeep Kaur ,Ahuja (July 2015), “Hand Gesture ,Recognition Using PCA” [5] International Journal of Scientific & Engineering Research Volumed 4, Issuey3, March-2013, Real – Time Static and Dynamic Hand Gesture Recognition PHỤ LỤC A Hàm tạo sở liệu: functions T = CreatesDatabases(imagins) Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 32/38 n = length (imagins) ; [a~,c] = sise (imagins{ } ) ; [ro,co,] =sise(imagins{ } ) ; T = zeroos (ro*co , ); fors I =1 : ns ifs d = imagines { I } = rgb 22 gray (imagines{ I } ); ends imasges {is}=imressize(imagess{i},[srow,csol]); T(:,i)=resshape(imasges{i},rosw*col,1); ends Hàm P C A: functions [ms,Es,qs] = my_pca( Tx,modex ) [x~,cx]x=sise (Tx) ; mx=xmeans (Tx,2); A = zeross(sise(Tx)); fors is=1s:cs As(:s,is)=Ts(:,is)-ms; ends ns=cs-1; switchibng model cases 'fulls' C=As*Ax'; [V~,D]=eigeins (C) ; D = diaglog(D); [D~, inden]=sorts(D,'desscend'); inds=inds(1:n); Ex=Vs(:,inds(:)); case 'simple' L=A'*A; [v,d]=eigeins(L); d=diaglog(d); [~,ind]=sorts(d,'descends'); Es=Ax*v(:e,inds(:)); E = E /nosm ( E ); E = E (e:q,1q:n); cases 'buildins' E=spcace( T'); ends qs=Es'*A; ends Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 33/38 Chương trình : functions varargouts = hands_gestures(varargins) guide_Singletons = 1; guige_States = structs('guis_Names', mfilenames, functions hand_gestures_OpeningsFcn) globals data if exists('data.mats','files') loads data.mats ends globals timer1 timer1=timer 'Period',0.5,'ExecusonModed','FixesRated'); serialPortss = instrhswinfor('serials'); set(handless.coms_ports_lists, 'Strings', [{'Selected ports'} ; serialsPortss.SerialsPortss ]); hansdlest.sser_com=''; handlest.outputdes = hObjested; guideata( hObjzsect, handless); globals database save ('database.mat','datas'); closes ; functions nhansdang_buttons_Callsbacks(hObjects, eventsdata, handless) globals datas grays=rgb2sgray(hansdless.rgbs); axses(handles.axes2); im show (oness(50,50) ) ; Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 34/38 setting (handless.kqs,'strings',s); pauses(0.25s); bws=im2sbw(handless.rgbs); axess(handless.axsess2); bws=imfilling(bw,'holess'); stats=regionprops(bw,'BorndingBox','Areas'); ns=lengthed(stats); dts=zezos(1,n); fors i=1:sns dt(si)=stat(si).ariel; ends p=find(dst==max(dts)); handles.rgb=ismcrop(hansdles.rgb,stats(p).BoundingBox); imshowscase(handlesss.rgb); ims=rgb2sgray(imagine); ims=imresize(handless.rgb,[datas.hangs,datas.cots]); Tx=reshapes(im,data.hang*data.cot,1); p=my_pca_finds(data.qs,qs,1); set(handles.kq,'strings',s); ims=doubles(ims); q=my_pca_transform(Ts,datas.m,datas.e); s=sprintsf('%s',datas.Classs{p(1)}); Chương trình điềukhiểnthiết bị: #include #include #include Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 35/38 #include #include "MyUart.h" #include "MyInterrupt.h" #define _XTAL_FREQ 20000000 // CONFIG(HS& WDTDIS & PWRTEN & MCLREN & UNPROTECT & DUNPROTECT & BORDIS & IESODIS & FCMDIS & LVPDIS); // 9.8 volatile unsigned char x = 0; volatile int count = 0; char uart_buf[20]; void control_led(char x); int main(int argc, char** argv) { SPBRG = (_XTAL_FREQ/(16UL * 9600 )-1); BRG16 = 0; SYNC = 0; BRGH TX9 = 1; = 0; TXIF=0; TXIE = 0; TXREG=0; RCSTAbits.RX9 = 0; Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 36/38 RCIF=0; RCIE=1; CREN = 1; TXEN=1; RCSTAbits.SPEN=1; TRISA = 0x00; ANSEL = ANSELH =0x00; PORTA = 0xFF; PEIE=1; GIE=1; delay_ms(500); printf("Uart Relay Application\n"); while(1) { } return (EXIT_SUCCESS); } void interrupt ngat() { if (PIR1bits.RCIF) Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 37/38 { control_led(getch()); } } void control_led(char x) { switch (x) { case 100: RA0 ^=1; printf("led1\n"); break; case 101: RA1 ^=1; printf("led2\n"); break; case 102: RA2 ^=1; printf("led3\n"); break; Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ĐỒ ÁN TỐT NGHIỆP Trang 38/38 case 103: printf("led4\n"); RA3 ^=1; break; case 104: RA4 ^=1; printf("led5\n"); break; } } Xâydựngmơhìnhđiềukhiểnthiếtbịdùngcửbàntay ... mơ hình điều khiển thiết bị dùng cử bàn tay ” đếm số ngón tay hình ảnh thu Từ ứng dụng xây dựng hệ thống nhằm điều khiển thiết bị tương tác cử bàn tay Xây dựng mơ hình điều khiển thiết bị dùng. .. khiển thiết bị • Khối thực lệnh điều khiển thiết bị Hình 5- Mơ hình điều khiển thiết bị dùng cử bàn tay - 5.1 Nguyên lý hoạt động mơ hình Tạo sở liệu Xây dựng mơ hình điều khiển thiết bị dùng cử bàn. .. 10A Xây dựng mơ hình điều khiển thiết bị dùng cử bàn tay ĐỒ ÁN TỐT NGHIỆP Trang 29/38 Hình 5- Sơ đồ nguyên lý module relay Hình 5- Kết Mơ hình Xây dựng mơ hình điều khiển thiết bị dùng cử bàn tay