1. Trang chủ
  2. » Tất cả

(Đồ án hcmute) thiết kế và thi cônghệ thống phân loại trái cây dùng mạng neural

76 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG THIẾT KẾ VÀ THI CÔNG HỆ THỐNG PHÂN LOẠI TRÁI CÂY DÙNG MẠNG NEURAL GVHD: NGUYỄN THANH HẢI SVTH: NGUYỄN ĐỨC HÒA MSSV: 14141116 SVTH: NGUYỄN NGỌC PHÁT MSSV: 14141226 SKL 0 7 Tp Hồ Chí Minh, tháng 08/2020 an BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG PHÂN LOẠI TRÁI CÂY DÙNG MẠNG NEURAL GVHD: PGS.TS Nguyễn Thanh Hải SVTH1: Nguyễn Đức Hòa MSSV: 14141116 SVTH2: Nguyễn Ngọc Phát MSSV: 14141226 Tp Hồ Chí Minh – 8/2020 an BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG PHÂN LOẠI TRÁI CÂY DÙNG MẠNG NEURAL GVHD: PGS.TS Nguyễn Thanh Hải SVTH1: Nguyễn Đức Hòa MSSV: 14141116 SVTH2: Nguyễn Ngọc Phát MSSV: 14141226 Tp Hồ Chí Minh – 8/2020 an TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH ĐỘC LẬP - TỰ DO - HẠNH PHÚC o0o -Tp HCM, ngày tháng năm 2020 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Chuyên ngành: Nguyễn Đức Hòa MSSV: 14141116 Nguyễn Ngọc Phát MSSV: 14141226 Kỹ thuật Điện tử - Truyền thơng Mã ngành: 14141 Hệ đào tạo: Khóa: Đại học quy 2014 Mã hệ: Lớp: 141413 I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG PHÂN LOẠI TRÁI CÂY DÙNG MẠNG NEURAL II NHIỆM VỤ Các số liệu ban đầu: - Sử dụng Arduino Uno R3 để thực điều khiển làm xử lý trung tâm - Sử dụng PC lập trình, xử lý ảnh, làm giao diện điều khiển - Sử dụng Camera Webcam Logitech C270p để thu nhận ảnh - Huấn luyện phân loại loại trái - Mơ hình dây chuyền phân loại trái Nội dung thực hiện: - Đọc tài liệu, thu thập thông tin làm sở - Thu thập liệu trái - Xử lý ảnh - Nhận dạng mạng nơ ron, mạng nhân tạo mạng tích chập - Thiết kế thi cơng mơ hình dây chuyền - Chạy thử, kiểm tra, hiệu chỉnh - Hoàn thiện mơ hình gồm máy tính, Arduino, băng chuyền, camera, ngoại vi - Đánh giá chất lượng - Viết báo cáo III NGÀY GIAO NHIỆM VỤ: 13/03/2020 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 03/08/2020 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: PGS.TS Nguyễn Thanh Hải CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH ii an TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN-ĐIỆN TỬ ĐỘC LẬP - TỰ DO - HẠNH PHÚC BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH o0o -Tp HCM, ngày 04 tháng 08 năm 2020 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Nguyễn Đức Hòa Lớp: 14141DT3B MSSV: 14141116 Họ tên sinh viên 2: Nguyễn Ngọc Phát Lớp: 14141DT2A MSSV: 14141226 Tên đề tài: Thiết kế thi công hệ thống phân loại trái dùng mạng neural Xác nhận Tuần/ngày Nội dung GVHD Tuần (13/3 – 18/3) Tuần (18/3 – 25/3) Tuần (25/3 – 1/4) Tuần (1/4 – 8/4) Chọn đề tài, viết đề cương chi tiết ĐATN Nghiên cứu tài liệu liên quan làm sở Thu thập tập ảnh liệu Nghiên cứu xử lý ảnh, tiền xử lý ảnh Tuần (8/4 – 15/4) Cài phần mềm Matlab, nghiên cứu xử lý ảnh Matlab Tuần (15/4 – 22/4) Tuần (22/4 – 29/4) Tiến hành nhận dạng xử lý ảnh với hình ảnh có sẵn Tuần (29/4 – 6/5) Tìm hiểu mạng nơ ron chạy thử đề tài cũ mạng nơ ron Tuần (6/5 – 13/5) Tuần 10 (13/5 – 20/5) Xây dựng mạng nơ ron riêng để nhận dạng Thiết kế mô hình xây chuyền báo cáo tiến độ iii an Tuần 11 (20/5 – 27/5) Tuần 12 (27/5 – 3/6) Hồn thiện mơ hình, thiết kế giao diện điều khiển Tuần 13 (3/6 – 10/6) Viết chương trình lấy mẫu để thu thập liệu nhanh Tuần 14 (10/6 – 17/6) Tuần 15 (17/6 – 24/6) Tuần 16 (24/6 – 1/7) Tuần 17 (1/7 – 8/7) Tuần 18 (8/7 – 15/7) Tuần 19 (15/7 – 22/7) Tuần 20 (22/7 – 29/7) Tuần 21 (29/7 – 3/8) Viết chương trình điều khiển, thu thập thêm liệu tập ảnh đầu vào Chạy chương trình mơ hình hệ thống thực tế Viết báo cáo chương 1,2 Nghiên cứu thêm mạng nơ ron tích chập, áp dụng vào mơ hình Viết báo cáo chương 3, Viết báo cáo chương 5, Hồn thiện mạng nơ ron tích chập chạy thực tế mơ hình Hiệu chỉnh báo cáo Hoàn thiện báo cáo GV HƯỚNG DẪN (Ký ghi rõ họ tên) iv an LỜI CAM ĐOAN Đề tài tự thực dựa vào số tài liệu trước khơng chép từ tài liệu hay cơng trình có trước Người thực đề tài Nguyễn Đức Hòa Nguyễn Ngọc Phát v an LỜI CẢM ƠN Em xin gởi lời cảm ơn sâu sắc đến Thầy Nguyễn Thanh Hải – giảng viên môn Điện tử cơng nghiệp – y sinh tận tình hướng dẫn cho chúng em để thực đề tài tốt nghiệp Em chân thành cảm ơn Thầy Ngô Bá Việt - Giảng viên môn Điện tử công nghiệp – y sinh góp ý chia sẻ nhiều kinh nghiệm quý báu cho em cải thiện đề tài tốt Em xin gởi lời chân thành cảm ơn thầy cô Khoa Điện-Điện Tử truyền đạt kiến thức bổ ích cho chúng em để làm sở cho việc thực đề tài tốt nghiệp Em xin gửi lời đồng cảm ơn với bạn bè lớp giúp đỡ, có góp ý bổ ích cho việc thực đề tài Xin chân thành cảm ơn! Người thực đề tài Nguyễn Đức Hòa Nguyễn Ngọc Phát vi an MỤC LỤC Trang bìa i Nhiệm vụ đồ án ii Lịch trình iii Cam đoan v Lời cảm ơn vi Mục lục vii Liệt kê hình ảnh ix Liệt kê bảng xi Tóm tắt xii CHƯƠNG 1: TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HẠN 1.5 BỐ CỤC CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 XỬ LÝ ẢNH CHO VIỆC PHÂN LOẠI 2.1.1 Màu sắc 2.1.2 Kích thước 2.2 DÂY CHUYỀN PHÂN LOẠN TRÁI CÂY DÙNG VI ĐIỀU KHIỂN 2.3 NHẬN DẠNG VÀ PHÂN LOẠI 2.3.1 Mạng Nơron nhân tạo 2.3.3 Mạng Nơron tích chập CHƯƠNG 3: TÍNH TỐN VÀ THIẾT KẾ 3.1 GIỚI THIỆU 3.2 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 3.2.1 Thiết kế dây chuyền hệ thống 3.2.2 Sơ đồ kết nối hệ thống 14 3.3 THIẾT KẾ PHẦN MỀM, TÍNH TỐN CHƯƠNG TRÌNH 15 3.3.1 Thiết kế giao diện đồ họa 15 vii an 3.3.2 Tính tốn chương trình điều khiển 16 CHƯƠNG 4: THI CÔNG HỆ THỐNG DÂY CHUYỀN PHÂN LOẠI TRÁI CÂY 21 4.1 THI CÔNG HỆ THỐNG 21 4.1.1 Thiết kế giao diện 21 4.1.2 Thi cơng mơ hình 22 4.2 CÁCH THU NHẬN ẢNH ĐẦU VÀO 23 4.3 CHƯƠNG TRÌNH CHÍNH CỦA HỆ THỐNG 27 4.3.1 Chương trình huấn luyện ảnh đầu vào dùng mạng ANN 29 4.3.2 Chương trình nhận diện mạng ANN 30 4.3.3 Chương trình huấn luyện nhận dạng dùng mạng CNN 31 4.4 TÀI LIỆU HƯỚNG DẪN THAO TÁC 33 CHƯƠNG 5: KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ HỆ THỐNG 34 5.1 KẾT QUẢ 34 5.1.1 Lý thuyết 34 5.1.2 Tập liệu 34 5.1.3 Kết mơ hình phần cứng 35 5.1.4 Kết nhận dạng 35 5.2 NHẬN XÉT VÀ ĐÁNH GIÁ 40 CHƯƠNG 6: KẾT LUẬN, HƯỚNG PHÁT TRIỂN 41 6.1 KẾT LUẬN 41 6.2 HƯỚNG PHÁT TRIỂN 41 TÀI LIỆU THAM KHẢO 42 PHỤ LỤC 43 viii an Thiết kế thi công hệ thống phân loại trái dùng mạng Neural % eventdata MATLAB % handles reserved - to be defined in a future version of structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % - Executes on button press in pushbutton1 function pushbutton2_Callback(hObject, eventdata, % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future MATLAB % handles structure with handles and user data huanluyen; function pushbutton4_Callback(hObject, eventdata, % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future MATLAB % handles structure with handles and user data % clear ar; global hoa; hoa = '1'; handles) version of (see GUIDATA) handles) version of (see GUIDATA) % set(handles.pushbutton4,'userdata',0); %%stop % writeDigitalPin(ar, 'D11', 0); function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % global dem % logical(dem) = 1; % if get(handles.pushbutton1,'userdata')== %% nhan nut stop tren chuong trinh % x =~ logical(dem); % else % x = logical(dem); % end % if x == % test1; % else % dung; % end % global kq; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 48 Thiết kế thi công hệ thống phân loại trái dùng mạng Neural % % % % % % % % % global DEM; global kq; DEM=0; % set(handles.DEMTO,'string',' '); test1; global ar; global g1; global g2; global kq; global demc; global demt; global demch; global dung; dung = 0; demch=0; demt=0; demc=0; global hoa; hoa = '0'; clear ar; ar=arduino('COM7', 'uno'); writeDigitalPin(ar, 'D3', 0); writeDigitalPin(ar, 'D4', 0); writeDigitalPin(ar, 'D8', 0); % % % if dung ==1 writeDigitalPin(ar, 'D11', 0); elseif dung == writeDigitalPin(ar, 'D11', 1); % end for k=1:1000 %khai bao arduino clear cam; cam = webcam('Logitech HD Webcam C270'); cam.BacklightCompensation=1; cam.Brightness=100; if hoa == '1' %% nhan nut stop tren chuong trin writeDigitalPin(ar,'D11',0); break; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 49 Thiết kế thi công hệ thống phân loại trái dùng mạng Neural else for l=1:1000000000 hinh=snapshot(cam); imwrite(hinh,'C:\Users\ACER\Pictures\11.jpg'); anhthu=imread('C:\Users\ACER\Pictures\11.jpg'); imshow(anhthu); a= imresize(anhthu, [75 100]); d=rgb2gray(a); c= zeros(75,100); mtb = zeros(75,100); for u=1:75 for y=1:100 if (u < 10) || (u > 60) d(u,:) = 0; elseif (y < 15) ||(y>85) d(:,y) = 0; end end end kt=7500; for i=1:75 for j=1:100 if (d(i,j) < 64) c(i,j) = 0; kt = kt - 1; mtb(i,j) = 0; else c(i,j) = 1; mtb(i,j) = d(i,j); end end end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% load('mangnoron'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if (mtb(36,50) ~= 0) ||(mtb(18,50) ~= 0)||(mtb(54,50) ~= 0) ||(mtb(9,50) ~= 0) ||(mtb(63,50) ~= 0) % if mtb(:,64) ~= BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 50 Thiết kế thi công hệ thống phân loại trái dùng mạng Neural tong= sum(sum(mtb)); tb = tong/kt; cv21 = [tb;kt]; %so sanh voi mang no ron out=sim(net,cv21); if (out(1,1)> out(3,1) && out(1,1)> out(5,1)) text(10,90,' ca chua ','FontSize',14,'color',[0 0]); kq='1'; demc=demc+1; set(handles.DEMTO,'string',demc); elseif (out(3,1)> out(5,1) && out(3,1)> out(1,1)) text(10,90,' tao ','FontSize',14,'color',[0 0]); kq='2'; demt=demt+1; set(handles.DEMAP,'string',demt); else text(10,90,' chuoi ','FontSize',14,'color',[0 0]); kq='3'; demch=demch+1; set(handles.DEMBA,'string',demch); % else % text(10,90,' khong co du lieu','FontSize',14,'color',[0 0]); % kq='4'; % demt=demt+1; % set(handles.DEMAP,'string',demt); end g1 = servo(ar,'D10'); writePosition(g1, 1); g2 = servo(ar,'D9'); writePosition(g2, 0); %dieu khien servo if kq == '1' writePosition(g1, 0.4); writeDigitalPin(ar, 'D3', 1); pause(5); writePosition(g1, 1); writeDigitalPin(ar, 'D3', 0); elseif kq == '2' writePosition(g2, 0.6); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 51 Thiết kế thi công hệ thống phân loại trái dùng mạng Neural writeDigitalPin(ar, 'D4', 1); pause(5); writePosition(g2, 0); writeDigitalPin(ar, 'D4', 0); else writeDigitalPin(ar, 'D8', 1); pause(5); writeDigitalPin(ar, 'D8', 0); end clear g1; clear g2; clear kq; break; end if hoa == '1' set(handles.DEMTO,'string','0'); set(handles.DEMAP,'string','0'); set(handles.DEMBA,'string','0'); break; end end end end function TO_Callback(hObject, eventdata, handles) % hObject handle to TO (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of TO % - Executes on button press in checkbox2 Code chương huấn luyện dùng mạng CNN %% • CLEARING COMMAND WINDOW, WORKSPACE AND CLOSE ALL FIGURES •••••••••••••••••••••••••••••••••••••••••••••• clc; clear all; %% • PROMPT USER FOR IMAGE INFORMATION BEFORE STARTING MAIN CODE ••••••••••••••••••••••••••••••••••••••••••• BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH an 52 Thiết kế thi công hệ thống phân loại trái dùng mạng Neural input = questdlg('How you want to locate your image folder?', |input char| 'Options to Locate Image Folder', 'Insert a link','Browse for it','Browse for it'); switch input case {'Insert a link'} prompt = {'Link to Image Folder:'}; dlgtitle = 'Input'; dims = [1 35]; PtMIF = {'D:\PathToFolder\FolderName'}; %Path to Main Image Folder % answer = inputdlg(prompt,dlgtitle,dims,PtMIF); case {'Browse for it'} PtMIF = uigetdir('D:\'); %Path to Main Image Folder case quit cancel; end input = questdlg('Are you using COLOUR or GRAYSCALE images?', |input char| 'Define Images Channel Number or 3', 'Colour','Grayscale','Grayscale'); switch input case {'Grayscale'} IIL.NoC = 1; %Number of Channels (NoC) of Image Input Layer (IIL) for Grayscale Image case {'Colour'} IIL.NoC = 3; %Number of Channels (NoC) of Image Input Layer (IIL) for Colour Image end prompt dlgtitle dims default Classify cell IIL.ImS(1) Layer (IIL) = {'The desired width of all sample images?' 'The desired height of all sample images?'}; = 'Input'; = [1 35]; = {'50','50'}; %{Default} Number of Item to = inputdlg(prompt,dlgtitle,dims,default); = str2double(cell{1}); %Image Width of Image Input BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 53 Thiết kế thi công hệ thống phân loại trái dùng mạng Neural IIL.ImS(2) = str2double(cell{2}); %Image Length of Image Input Layer (IIL) prompt dlgtitle dims default Classify cell NoIC (3) NoIS (30) = {'Number of image categories to classify?' 'Number of image samples per category?'}; = 'Input'; = [1 35]; = {'3','400'}; %{De3fault} Number of Item to = inputdlg(prompt,dlgtitle,dims,default); = str2double(cell{1}); %Number of Image Categories = str2double(cell{2}); %Number of Image Samples ToIFE = questdlg('Type of file extension of input image samples?', |input char| 'Options to Locate Image Folder', 'jpeg','jpg','png','jpg'); %% • COUNT NUMBER OF JPG IMAGES IN SUBFOLDERS •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• %VAR %VALUE %DESCRIPTION %UNIT %TYPE1 %TYPE2 imds = imageDatastore(PtMIF,'IncludeSubfolders',true,'LabelSource','fol dernames'); %gan thu muc PtMIF cho imds S = dir(fullfile(PtMIF,'*')); % NoSF = setdiff({S([S.isdir]).name},{'.',' '}); % list of subfolders of D for i = 1:numel(NoSF) T(i,:) = dir(fullfile(PtMIF,NoSF{i},'*.jpg')); % Improve by specifying the file extension end NoITS = numel(T); %Number of Images for Training numTrainingFiles = 0.7; [imdsTrainx,imdsTestx] = splitEachLabel(imds,numTrainingFiles,'randomize'); %chia ti le giua file test va file train 7:3 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 54 Thiết kế thi công hệ thống phân loại trái dùng mạng Neural %% Resize Images inputSize=[IIL.ImS(1) IIL.ImS(2) 3]; %kich thuoc ngo vao la cac so da nhap o tren va la anh rgb imdsTrain=augmentedImageDatastore(inputSize, imdsTrainx); imdsTest=augmentedImageDatastore(inputSize, imdsTestx); %% • DEFINE THE CONVOLUTIONAL NEURAL NETWORK ARCHITECTURE ••••••••••••••••••••••••••••••••••••••••••••••••• %VAR %VALUE %DESCRIPTION %UNIT %TYPE1 %TYPE2 inputSize=[IIL.ImS(1) IIL.ImS(2) 3]; layers = [ imageInputLayer([IIL.ImS(1) IIL.ImS(2) IIL.NoC]) %An image input layer inputs 2-D images to a network and applies data normalization convolution2dLayer(3,32,'Padding','same') reluLayer maxPooling2dLayer(2,'Stride',2) %%layer thu nhat convolution2dLayer(3,64,'Padding','same') reluLayer maxPooling2dLayer(2,'Stride',2) %%layer thu convolution2dLayer(3,128,'Padding','same') reluLayer maxPooling2dLayer(2,'Stride',2) %%layer thu fullyConnectedLayer(numel(NoSF)) softmaxLayer classificationLayer]; options = trainingOptions('sgdm', 'MaxEpochs',15, 'InitialLearnRate',1e-4, 'ValidationData',imdsTest, 'ValidationFrequency',10, 'Verbose',false, 'Plots','training-progress'); %% net = trainNetwork(imdsTrain,layers,options); %huan luyen mang noron save mangtichchap net; Code chương trình nhận diện dùng mạng CNN function varargout = Mangtichchap(varargin) % MANGTICHCHAP MATLAB code for Mangtichchap.fig BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 55 Thiết kế thi công hệ thống phân loại trái dùng mạng Neural % MANGTICHCHAP, by itself, creates a new MANGTICHCHAP or raises the existing % singleton* % % H = MANGTICHCHAP returns the handle to a new MANGTICHCHAP or the handle to % the existing singleton* % % MANGTICHCHAP('CALLBACK',hObject,eventData,handles, ) calls the local % function named CALLBACK in MANGTICHCHAP.M with the given input arguments % % MANGTICHCHAP('Property','Value', ) creates a new MANGTICHCHAP or raises the % existing singleton* Starting from the left, property value pairs are % applied to the GUI before Mangtichchap_OpeningFcn gets called An % unrecognized property name or invalid value makes property application % stop All inputs are passed to Mangtichchap_OpeningFcn via varargin % % *See GUI Options on GUIDE's Tools menu Choose "GUI allows only one % instance to run (singleton)" % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help Mangtichchap % Last Modified by GUIDE v2.5 28-Jul-2020 18:09:14 % Begin initialization code - DO NOT gui_Singleton = 1; gui_State = struct('gui_Name', 'gui_Singleton', 'gui_OpeningFcn', 'gui_OutputFcn', 'gui_LayoutFcn', BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an EDIT mfilename, gui_Singleton, @Mangtichchap_OpeningFcn, @Mangtichchap_OutputFcn, [] , 56 Thiết kế thi công hệ thống phân loại trái dùng mạng Neural 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % - Executes just before Mangtichchap is made visible function Mangtichchap_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to Mangtichchap (see VARARGIN) % Choose default command line output for Mangtichchap handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes Mangtichchap wait for user response (see UIRESUME) % uiwait(handles.figure1); LOGO= 'logo.jpg'; LOGO= imread(LOGO); axes(handles.LOGO); imshow(LOGO); %%%%%%%%%%%%% TOMATO = 'tomato.jpg'; TOMATO = imread(TOMATO); axes(handles.TOMATO); imshow(TOMATO); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 57 Thiết kế thi công hệ thống phân loại trái dùng mạng Neural %%%%%%%%%%%%% APPLE = 'apple.jpg'; APPLE= imread(APPLE); axes(handles.APPLE); imshow(APPLE); %%%%%%%%%%%%%% BANANA = 'banana.jpg'; BANANA = imread(BANANA); axes(handles.BANANA); imshow(BANANA); %%%%%%%%%%%%%%% cam = webcam('Logitech HD Webcam C270'); cam.BacklightCompensation=1; cam.Brightness=100; hinh=snapshot(cam); axes(handles.CAMERA); imshow(hinh); % - Outputs from this function are returned to the command line function varargout = Mangtichchap_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % - Executes on button press in pushbutton9 function pushbutton9_Callback(hObject, eventdata, % hObject handle to pushbutton9 (see GCBO) % eventdata reserved - to be defined in a future MATLAB % handles structure with handles and user data global hoa; hoa = '1'; % - Executes on button press in pushbutton8 function pushbutton8_Callback(hObject, eventdata, % hObject handle to pushbutton8 (see GCBO) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an handles) version of (see GUIDATA) handles) 58 Thiết kế thi công hệ thống phân loại trái dùng mạng Neural % eventdata reserved - to be defined in a future MATLAB % handles structure with handles and user data training; % - Executes on button press in pushbutton7 function pushbutton7_Callback(hObject, eventdata, % hObject handle to pushbutton7 (see GCBO) % eventdata reserved - to be defined in a future MATLAB % handles structure with handles and user data global kq; global demc; global demt; global demch; global dung; dung = 0; demch=0; demt=0; demc=0; global hoa; hoa = '0'; clear ar; ar=arduino('COM7', 'uno'); writeDigitalPin(ar, 'D3', 0); writeDigitalPin(ar, 'D4', 0); writeDigitalPin(ar, 'D8', 0); writeDigitalPin(ar, 'D11', 1); version of (see GUIDATA) handles) version of (see GUIDATA) for k=1:1000000 %khai bao arduino clear cam; cam = webcam('Logitech HD Webcam C270'); cam.BacklightCompensation=1; cam.Brightness=100; if hoa == '1' writeDigitalPin(ar,'D11',0); break; else for l=1:1000000000 hinh=snapshot(cam); imwrite(hinh,'C:\Users\ACER\Pictures\11.jpg'); anhthu=imread('C:\Users\ACER\Pictures\11.jpg'); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 59 Thiết kế thi công hệ thống phân loại trái dùng mạng Neural imshow(anhthu); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% load('mangtichchap'); b = imread('C:\Users\ACER\Pictures\11.jpg'); ModImg = imresize(b,[50 50]); %Resize image to IIL imwrite(ModImg,'C:\Users\ACER\Pictures\12.jpg'); a = rgb2gray(ModImg); if a(25,25) > 64 imwrite(ModImg,'C:\Users\ACER\Pictures\12.jpg'); imdsTestx = imread('C:\Users\ACER\Pictures\12.jpg'); %% Nhan dien trai cay YPred = classify(net,imdsTestx); YPred = string(YPred); clc; if YPred == "s1" text(10,90,' ca chua ','FontSize',14,'color',[0 0]); kq='1'; demc=demc+1; set(handles.DEMTO,'string',demc); elseif YPred == "s2" text(10,90,' tao ','FontSize',14,'color',[0 0]); kq='2'; demt=demt+1; set(handles.DEMAP,'string',demt); elseif YPred == "s3" text(10,90,' chuoi ','FontSize',14,'color',[0 0]); kq='3'; demch=demch+1; set(handles.DEMBA,'string',demch); else text(10,90,' khong co du lieu ','FontSize',14,'color',[0 0]); end %% Dieu khien servo g1 = servo(ar,'D10'); writePosition(g1, 1); g2 = servo(ar,'D9'); writePosition(g2, 0); %dieu khien servo if kq == '1' writePosition(g1, 0.4); writeDigitalPin(ar, 'D3', 1); pause(5); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 60 Thiết kế thi công hệ thống phân loại trái dùng mạng Neural writePosition(g1, 1); writeDigitalPin(ar, 'D3', elseif kq == '2' writePosition(g2, 0.6); writeDigitalPin(ar, 'D4', pause(5); writePosition(g2, 0); writeDigitalPin(ar, 'D4', else writeDigitalPin(ar, 'D8', pause(5); writeDigitalPin(ar, 'D8', end 0); 1); 0); 1); 0); clear g1; clear g2; clear kq; break; end if hoa == '1' set(handles.DEMTO,'string','0'); set(handles.DEMAP,'string','0'); set(handles.DEMBA,'string','0'); break; end end end end BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 61 an ... tài ? ?Thi? ??t kế thi công hệ thống phân loại trái dùng mạng neural? ?? mơ hình sử dụng thuật toán xử lý ảnh mạng neural để phân loại loại trái theo phương pháp dùng mạng nhân tạo mạng tích chập Ở dùng. .. điều thi? ??t bị cảm biến, thuật tốn hỗ trợ đời Trong số tốn ? ?phân loại trái cây? ?? đề tài đáng ta tìm hiểu Để tài ? ?Thi? ??t kế và thi công hệ thống phân loại trái dùng mạng Neural ” với mục tiêu phân loại. .. trình thi cơng hệ thống Với để tài ? ?Thi? ??t kế thi công hệ thống phân loại trái dùng mạng Neural? ?? bao gồm: giao diện điều khiển mơ hình hệ thống Đề tài phân loại loại trái khác đếm số lượng trái loại

Ngày đăng: 02/02/2023, 09:33