THIẾT KẾ, CHẾ TẠO MÔ HÌNH PHÂN LOẠI TRÁI CÂY THEO MÀU SẮC

63 1.1K 15
THIẾT KẾ, CHẾ TẠO MÔ HÌNH PHÂN LOẠI TRÁI CÂY THEO MÀU SẮC

Đ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

Đề tài đã thực hiện được việc thiết kế mô hình phát hiện phân, nhận dạng và phân loại được mức độ chín sống khác nhau của cà chua. Đây được xem là kết quả chính của đề tài. Để thực hiện tốt kết quả này thì chúng em đã áp dụng những kiến thức đã học, thông qua quá trình xử lý ảnh, nhận dạng vật thể, xây dựng mô hình dữ liệu màu để phân loại sản phẩm.

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH KHĨA LUẬN TỐT NGHIỆP THIẾT KẾ, CHẾ TẠO MƠ HÌNH PHÂN LOẠI TRÁI CÂY THEO MÀU SẮC Sinh viên thực hiện: NGUYỄN MINH KHANH NGUYỄN VĂN BÁ Ngành: Công nghệ kỹ thuật Cơ điện tử Niên khóa: 2013-2017 Tháng 06/2017THIẾT KẾ, CHẾ TẠO MƠ HÌNH PHÂN LOẠI CÀ CHUA THEO MÀU TÁC GIẢ NGUYỄN MINH KHANH NGUYỄN VĂN BÁ Khóa luận tốt nghiệp đệ trình đáp ứng yêu cầu cấp Kỹ sư ngành Cơ Điện Tử Giáo viên hướng dẫn: Th.S TRẦN THỊ KIM NGÀ Tháng 06/2017 LỜI CẢM ƠN Em xin trân trọng cảm ơn tất quý thầy cô trường Đại học Nơng Lâm TP.Hồ Chí Minh q Thầy Cơ khoa Cơ Khí - Cơng Nghệ trang bị cho em kiến thức quý báu giúp đỡ em suốt trình học tập trường Em xin chân thành cảm ơn Thầy Cô môn Cơ Điện Tử giúp đỡ chúng em nhiệt tình thời gian thực đề tài Em xin bày tỏ biết ơn chân thành cô Trần Thị Kim Ngà tận tình hướng dẫn em suốt trình làm Luận văn tốt nghiệp Đặc biệt, em xin cảm ơn quý Thầy Cô hội đồng dành thời gian nhận xét góp ý để luận văn em hoàn thiện Cuối cùng, em xin gửi lời cảm ơn đến người thân bạn bè động viên, ủng hộ tạo cho em điều kiện thuận lợi suốt q trình hồn thành luận văn Tp Hồ Chí Minh, ngày 04 tháng 06 năm 2017 Sinh viên thực đề tài Nguyễn Minh Khanh Nguyễn Văn Bá TÓM TẮT Đề tài nghiên cứu “Thiết kế, chế tạo mơ hình phân loại cà chua theo màu” thực trường Đại Học Nơng Lâm Thành Phố Hồ Chí Minh, thời gian thực từ tháng đến tháng năm 2017 Đề tài thực việc thiết kế mơ hình phát phân, nhận dạng phân loại mức độ chín sống khác cà chua Đây xem kết đề tài Để thực tốt kết chúng em áp dụng kiến thức học, thơng qua q trình xử lý ảnh, nhận dạng vật thể, xây dựng mô hình liệu màu để phân loại sản phẩm Do thời gian thực hạn chế, mức độ rộng lớn đề tài nên việc thiếu sót sơ xuất đề tài điều khó tránh Chúng em mong nhận đóng góp ý kiến quý thầy cô bạn bè để đề tài em hoàn thiện Sinh viên thực Nguyễn Minh Khanh Nguyễn Văn Bá MỤC LỤC Trang DANH SÁCH CÁC HÌNH DANH SÁCH BẢNG Trang Chương MỞ ĐẦU Lý chọn đề tài 1.1 Hiện nay, đất nước giai đoạn cơng nghiệp hóa, đại hóa nên nhu cầu đời sống vật chất tinh thần người đòi hỏi phải đáp ứng mức độ khác Các hoạt động lao động chân tay ngày cần phải thay mơ hình tự động bán tự động Các máy công nghiệp vận dụng sức mạnh vi xử lý công nghệ tiên tiến đời Trong nông nghiệp, việc thu hoạch phân loại sản phẩm sau thu hoạch vốn làm thủ cơng, với trình độ ngày nay, người ta hồn tồn tự động hóa nó, vừa tiết kiệm sức người, vừa tiết kiệm chi phí thời gian Với tiêu chí giúp việc phân loại nơng sản sau thu hoạch trở nên dễ dàng hơn, kinh tế hơn, nhanh Dựa nghiên cứu có thị trường vận dụng kiến thức học được, nhóm chúng tơi lên ý tưởng thiết kế chế tạo mơ hình máy phân loại trái theo màu sắc Mơ hình vận dụng sức mạnh vi xử lý công nghệ xử lý ảnh để áp dụng cho mơ hình Tình hình nghiên cứu nước 1.2 Tỉnh Lâm Đồng vùng chuyên canh cà chua lớn nước với sản lượng cà chua thu hoạch năm hàng chục nghìn Các chủ vựa thu mua cà chua lớn tỉnh phải bỏ nhiều thời gian, công sức tiền bạc để thuê đội ngủ công lao động ngồi rửa, phân loại lau khơ, đánh bóng cà chua trước đóng thùng Nhất vào dịp giáp Tết, lượng tiêu thụ hàng tăng cao, chủ vựa thu mua phải đối mặt với khan nguồn lao động Tại có kỹ sư chân đất tìm hiểu, nghiên cứu, thiết kế chế tạo loại máy rửa, phân loại, hong khô nước đánh bóng trái cà chua trước đóng thùng sản phẩm Hình 1: Kiểm tra lại sản phẩm sau phân loại Máy rửa, phân loại, hong khô nước đánh bóng trái cà chua anh hoạt động ngày đồng hồ, đạt suất khoảng 20 cà chua, gần khối lượng công việc 20 nhân công làm phương pháp thủ công Máy tăng gấp đơi suất, thay đổi tùy theo yêu cầu người đặt hàng Hình Hình ảnh máy rửa phân loại cà chua tự động Máy rửa, phân loại, hong khô nước đánh bóng trái cà chua anh có hình chữ L, bao gồm phận thùng đựng cà chua thô Từ đây, băng chuyền hoạt động tương tự cầu thang máy tự động lấy cà chua đến phận sang lọc loại chất thải bám rác, lá, cuống, cà chua hư hổng, thối,… tách bỏ chất thải khỏi Cà chua tiếp tục chuyển tới phận đựng nước rửa Cà chua sau rửa lại băng chuyền chuyển tới vùng sấy khơ nước đánh bóng cà chua, sau đưa tới vùng phân chia loại cà chua lớn nhỏ khác Khi hoàn tất công đoạn trên, cà chua đưa máng trượt, máng loại lớn nhỏ khác Hình 3: Mơ hình máy có dạng chữ L Bên cạnh máy rửa, phân loại, hong khơ đánh bóng cà chua tỉnh Lâm Đồng thị trường có nhiều loại máy giúp hỗ trợ phân loại trái hoa khác Có thể kể tên vài mơ sau: - Máy phân loại dưa hấu Hình : Máy phân loại dưa hấu 10 93 màu đỏ 4.68 Đúng 94 màu vàng 11.80 Sai 95 màu xanh 13.77 Đúng 96 màu đỏ 4.80 Đúng 97 màu vàng 13.79 Đúng 98 màu xanh 13.81 Đúng 99 màu đỏ 4.76 Đúng 100 màu xanh 13.77 Đúng Bảng : Bảng khảo nghiệm cho mơ hình nhận diện màu ngẫu nhiên Bảng kết khảo nghiệm qua 100 lần thử cho cà chua có màu ngẫu nhiên qua để tính tốn thời gian từ lúc Camera nhận tín hiệu lúc động hoạt động để tác động đưa cà chua vào khay đựng Theo bảng trên, thời gian trung bình để động xử lý đưa cà chua vào khay đựng tính sau: T= Theo cơng thức ta có thời gian trung bình để rớt vào khay chứa sau: Tđỏ = 4.71 (giây) Txanh = 13.74 (giây) Tvàng = 11.76 (giây) Tỉ lệ phân loại xác màu: A đỏ = 100% A xanh = 96.15% 49 A vàng = 92.5% Theo kết khảo sát bảng trên, ta thấy: Màu đỏ màu xanh hai màu có tỉ lệ nhận cao hết, mức độ ổn định cao Nguyên nhân màu xanh màu đỏ hai màu có ngưỡng màu riêng biệt, khơng có phần giao nên chọn ngưỡng cho dễ xác cao Màu vàng màu có tỉ lệ nhận khơng cao so với hai màu đỏ xanh Nguyên nhân màu vàng có ngưỡng màu nằm màu đỏ mành xanh nên chọn ngưỡng màu có phần bị trùng lặp so với hai màu Vì vậy, trình camera thu nhận ảnh để xử lý, cường độ ánh sáng khơng thích hợp dễ sinh trường hợp nhiễu nhận sai màu Chương KẾT LUẬN VÀ ĐỀ NGHỊ 5.1 Kết đạt Quá trình thực nghiên cứu đề tài với kiến thức lý thuyết sở tìm hiểu, đề tài đạt kết sau: - Chương trình xây dựng thực tảng Raspberry Pi thông qua ngôn ngữ lập trình Python - Thiết kế, chế tạo mơ hình phân loại cà chua theo màu, sử dụng Camera thu liệu hình ảnh truyền máy tính Raspberry Pi kết hợp với thư viện OpenCV để nhận diện phân loại nhiều màu khác tùy theo yêu cầu ban đầu Dựa tảng thuật toán nhận dạng phân loại mơ hình giúp phân loại cà chua cách hiệu hơn, giảm bớt chi phí lao động 50 5.2 - Kết khảo nghiệm cho thấy mơ hình hoạt động ổn định - Phần mềm giao diện sử dụng đơn giản Những hạn chế Mơ hình có hạn chế sau: - Tốc độ xử lý chậm dẫn đến suất làm việc không cao - Mô hình dùng cơng nghệ xử lý ảnh cách thu ảnh trực tiếp từ Camera nên đơi lúc bị nhiễu, chưa xử lý kịp - Việc chọn ngưỡng màu chưa thật hợp lý nên thay đổi ánh sáng nguồn dễ dẫn đến tình trạng nhiễu nhận nhầm màu 5.3 Hướng phát triển đề tài Chất lượng hình ảnh phụ thuộc nhiều vào độ phân giải camera Trong phạm vi đề tài sử dụng camera có độ phân giải 8MB, chọn camera có độ phân giải cao cho độ xác cao Tuy nhiên với độ phân giải cao đòi hỏi mơ hình máy tính có tốc độ cao đường truyền Internet nhanh Lập trình thư viện Open CV Python ngơn ngữ lập trình phổ biến đơn giản, dễ học với người bắt đầu Do giới hạn thời gian đề tài tốt nghiệp nên dừng lại mơ hình Ta đưa vào ứng dụng thực tế đưa thiết kế hoàn chỉnh Thiết kế mạch cơng suất để điều khiển động có cơng suất lớn Có thể cải tiến thêm cho mơ thêm chức rữa, phân loại, đánh bóng, đóng gói hồn tồn tự động TÀI LIỆU THAM KHẢO Tài liệu Ứng dụng xử lý ảnh thực tế vói thư viện OpenCV C/C++ tác giả Nguyễn Văn Long 51 OpenCV_2_Computer_Vision_Application_Programming_Cookbook tác giả Robert Laganière Website http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutorials.html https://xivila.com/talks/detail/32/huong-dan-lap-trinh-raspberry-pi-phan-1-gioi- thieu/ http://docs.opencv.org/master/d9/df8/tutorial_root.html http://opencv.org/ 52 PHỤ LỤC #!/usr/bin/python # import the necessary packages from picamera.array import PiRGBArray from picamera import PiCamera import time import cv2 import numpy as np import io import serial arduinoSerialData = serial.Serial('/dev/ttyACM0',9600) rangeMin = np.array([0, 100, 100], np.uint8) rangeMax = np.array([14, 255, 255], np.uint8) rangeMin1 = np.array([170,80, 80], np.uint8) rangeMax1 = np.array([190, 255, 255], np.uint8) #mauvang rangeMiny = np.array([13, 180, 180], np.uint8) rangeMaxy = np.array([30, 255, 255], np.uint8) #mauxanh rangeMing = np.array([30, 100, 100], np.uint8) 53 rangeMaxg = np.array([75, 255, 255], np.uint8) i=0 a=0 b=0 c=0 m=120 m1=121 n=120 n1=121 #moto u1=22 d1=12 u2=35 d2=25 kernel = np.ones((5,5),np.uint8) # initialize the camera and grab a reference to the raw camera capture camera = PiCamera() camera.resolution = (640, 480) camera.framerate = 32 rawCapture = PiRGBArray(camera, size=(640, 480)) 54 # allow the camera to warmup time.sleep(0.1) frame=io.BytesIO() for frame in camera.capture_continuous(rawCapture, format="bgr",use_video_port=True,splitter_port = 0): frame.truncate() frame.seek(0) camera.capture_continuous(rawCapture, format="bgr") image = rawCapture.array image = cv2.flip(image,0) cv2.imshow("original Image", image) imgHSV = cv2.cvtColor(image,cv2.COLOR_BGR2HSV) #cv2.getStructuringElement(shape, ksize[, anchor]) #mau imgThresh2 = cv2.inRange(imgHSV, rangeMin, rangeMax, 0) imgThresh1 = cv2.inRange(imgHSV, rangeMin1, rangeMax1, 0) imgThresh = imgThresh1 + imgThresh2 opening = cv2.morphologyEx(imgThresh, cv2.MORPH_OPEN,kernel) opening = cv2.morphologyEx(opening, cv2.MORPH_OPEN,kernel) closing = cv2.morphologyEx(opening, cv2.MORPH_CLOSE, kernel) closing = cv2.morphologyEx(closing, cv2.MORPH_CLOSE, kernel) 55 dilation = cv2.dilate(closing,kernel,iterations = 2) cv2.imshow("binari red",dilation) im2, contours, hierarchy = cv2.findContours(dilation,cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE) #mau vang imgThreshy = cv2.inRange(imgHSV, rangeMiny, rangeMaxy, 0) openingy = cv2.morphologyEx(imgThreshy, cv2.MORPH_OPEN,kernel) openingy = cv2.morphologyEx(imgThreshy, cv2.MORPH_OPEN,kernel) closingy = cv2.morphologyEx(openingy, cv2.MORPH_CLOSE, kernel) closingy = cv2.morphologyEx(closingy, cv2.MORPH_CLOSE, kernel) dilationy = cv2.dilate(closingy,kernel,iterations = 2) cv2.imshow("binari yellow",dilationy) im1, contours1, hierarchy= cv2.findContours(dilationy,cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE) #mauxanh imgThreshg = cv2.inRange(imgHSV, rangeMing, rangeMaxg, 0) openingg = cv2.morphologyEx(imgThreshg, cv2.MORPH_OPEN,kernel) openingg = cv2.morphologyEx(openingg, cv2.MORPH_OPEN,kernel) closingg = cv2.morphologyEx(openingg, cv2.MORPH_CLOSE, kernel) closingg = cv2.morphologyEx(closingg, cv2.MORPH_CLOSE, kernel) dilationg = cv2.dilate(closingg,kernel,iterations = 2) 56 cv2.imshow("binari green",dilationg) im2, contours2, hierarchy= cv2.findContours(dilationg,cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE) if ( a1): areas2=[cv2.contourArea(e) for e in contours2] max_index2=np.argmax(areas2) cnt2=contours2[max_index2] c=cv2.contourArea(cnt2) print ("dien tich mau xanh ",c) break if ( a>35000 ): arduinoSerialData.write('1') a=0 if m>u1: m=0 else: m1=0 elif( b>17000 ): arduinoSerialData.write('2') 58 b=0 if n>u2: n=0 else: n1=0 elif (c>10000) : arduinoSerialData.write('3') c=0 # chon thoi diem cho dong co chay # mau if m1>u1: if (m==d1): arduinoSerialData.write('4') if(m==u1): arduinoSerialData.write('6') else: if m>d1: if m1>d1: m=m1 59 if(m==u1): arduinoSerialData.write('6') else: m=d1+1 if(m==u1): arduinoSerialData.write('6') else: if (m==d1): arduinoSerialData.write('4') #mau vang if n1>u2: if(n==d2): arduinoSerialData.write('5') if(n==u2): arduinoSerialData.write('7') else: if n>d2: if n1>d2: n=n1 if(n==u2): 60 arduinoSerialData.write('7') else: n=d2 + if(n==u2): arduinoSerialData.write('7') else: if(n==d2): arduinoSerialData.write('5') m=m+1 m1=m1+1 n=n+1 n1=n1+1 for pic,contour in enumerate(contours): area = cv2.contourArea(contour) if (area>1): areas = [cv2.contourArea(k) for k in contours] max_index = np.argmax(areas) cnt=contours[max_index] a=cv2.contourArea(cnt) break 61 for pic1,contour1 in enumerate(contours1): area1 = cv2.contourArea(contour1) if (area1>1): areas1=[cv2.contourArea(d) for d in contours1] max_index1=np.argmax(areas1) cnt1=contours1[max_index1] b=cv2.contourArea(cnt1) break #mau xanh for pic2,contour2 in enumerate(contours2): area2 = cv2.contourArea(contour2) if (area2>1): areas2=[cv2.contourArea(e) for e in contours2] max_index2=np.argmax(areas2) cnt2=contours2[max_index2] c=cv2.contourArea(cnt2) break cv2.drawContours(image, contours, -1, (0,0,255),2) cv2.drawContours(image,contours1,-1,(255,0,0),2) cv2.drawContours(image,contours2,-1,(0,255,0),2) 62 cv2.imshow("Image", image) cv2.imshow("imghsv",imgHSV) cv2.imshow("thresh",imgThreshy) #cv2.waitKey(0) key = cv2.waitKey(1) & 0xFF # clear the stream in preparation for the next frame #rawCapture.truncate(0) if key == ord("q"): break GPIO.cleanup() cv2.destroyAllWindows() 63 ... vụ cho nhu cầu phân loại trái người tiêu dùng Chẳng hạn hệ thống máy tự động phân loại trái theo kích thước, hệ thống máy rửa trái đóng gói trái cây, hệ thống máy phân loại trái theo trọng lượng,... hiểu, nghiên cứu, thiết kế chế tạo loại máy rửa, phân loại, hong khơ nước đánh bóng trái cà chua trước đóng thùng sản phẩm Hình 1: Kiểm tra lại sản phẩm sau phân loại Máy rửa, phân loại, hong khơ... có màu mong muốn, người ta chọn phần tử tham số màu Hue, Saturation Value để pha màu Mô hình khơng gian màu HSV suy diễn từ khơng gian màu RGB Hình : Mơ hình khơng gian màu HSV 17 Hình : Mơ hình

Ngày đăng: 26/09/2019, 20:27

Từ khóa liên quan

Mục lục

  • LỜI CẢM ƠN

  • TÓM TẮT

  • MỤC LỤC

  • DANH SÁCH CÁC HÌNH

  • DANH SÁCH BẢNG

  • Chương 1

  • MỞ ĐẦU

    • 1.1 Lý do chọn đề tài

    • 1.2 Tình hình nghiên cứu trong nước

      • 1.3 Phạm vi thực hiện đề tài

      • Chương 2

      • TỔNG QUAN

        • 2.1 Một số khái niệm trong xử lý ảnh

          • 2.1.1 Phần tử ảnh

          • 2.1.2 Mức xám

          • 2.1.3 Ảnh nhị phân

          • 2.1.4 Ảnh xám

          • 2.1.5 Ảnh màu

          • 2.1.6 Không gian màu

          • 2.1.7 Mô hình không gian màu

          • 2.2 Tổng quan về mô hình xử lý ảnh

            • 2.2.1 Thiết bị thu nhận ảnh

Tài liệu cùng người dùng

Tài liệu liên quan