Đề tài đã thực hiện và đạt được kết quả khả quan như thiết kế chế tạo được mô hình đếm cá giống tự động, xây dựng được chương trình xử lý ảnh và chương trình điều khiển hệ thống. Chúng em phát triển hệ thống theo hướng tự động hoạt động dựa trên kỹ thuật xử lý ảnh và điều khiển bằng Raspberry Pi B+. Khi nhập số lượng cá giống cần đếm, hệ thống sẽtự động mở van xả cá để đếm cho đến khi đạt đủ số lượng cá. Đây được xem là kết quả chính của đề tài. Để đạt được kết quả này thì nhóm chúng em đã thực hiện xử lý ảnh để nhận diện và đếm cá giống bằng thư viện xử lý ảnh OpenCV 2.4 trên nền tảng Linux của Raspberry Pi B+.Kết quả số lượng cá đếm được sẽ được hiển thị trên màn hình LCD.
NGHIÊN CỨU, THIẾT KẾ, CHẾ TẠO MƠ HÌNH ĐẾM CÁ GIỐNG TỰ ĐỘNG ỨNG DỤNG XỬ LÝ ẢNH TÁC GIẢ VÕ VĂN HUY HỒNG – NGUYỄN VĂN ĐỨC 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 năm 2016 LỜI CẢM ƠN Chúng em xin trân trọng cảm ơn tất quý Thầy Cô trường Đại Học Nơng Lâm Thành Phố Hồ Chí Minh q Thầy Cơ khoa Cơ Khí – Cơng Nghệ trang bị cho chúng em kiến thức quý báu giúp đỡ chúng em suốt trình học tập trường Chú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 Chúng 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 giúp đỡ chúng em suốt trình làm Luận Văn Tốt Nghiệp Đặc biệt chúng 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, chú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 chúng em điều kiện thuận lợi suốt trình hoàn thành luận văn TP.HCM, Ngày tháng năm 2016 Sinh viên thực VÕ VĂN HUY HOÀNG NGUYỄN VĂN ĐỨC TÓM TẮT Đề tài “Nghiên cứu, thiết kế, chế tạo mơ hình đếm cá giống tự động ứng dụng xử lý ảnh” thực trường Đại Học Nơng Lâm Thành Phố Hồ Chí Minh, thời gian từ tháng đến tháng năm 2016 Đề tài thực đạt kết khả quan thiết kế chế tạo mơ hình đếm cá giống tự động, xây dựng chương trình xử lý ảnh chương trình điều khiển hệ thống Chúng em phát triển hệ thống theo hướng tự động hoạt động dựa kỹ thuật xử lý ảnh điều khiển Raspberry Pi B+ Khi nhập số lượng cá giống cần đếm, hệ thống sẽtự động mở van xả cá để đếm đạt đủ số lượng cá Đây xem kết đề tài Để đạt kết nhóm chúng em thực xử lý ảnh để nhận diện đếm cá giống thư viện xử lý ảnh OpenCV 2.4 tảng Linux Raspberry Pi B+.Kết số lượng cá đếm hiển thị hình LCD Do thời gian hạn chế mức độ rộng lớn đề tài, nên tránh khỏi thiếu sót Chúng em mong nhận đóng góp ý kiến q Thầy Cơ bạn bè để đề tài em ngày hoàn thiện MỤC LỤC DANH SÁCH CÁC CHỮ VIẾT TẮT LCD WTO TV CCD CMOS ATM GPIO SOC GPU HDMI USB GPS LED CPU OpenCV IEEE CV Liquid crystal display World Trade Organization Television Charge Couple Device Complementary metal oxide semiconductior Automated teller machine General Purpose Input/Output System-On-Chip Graphics Processing Unit High-Definition Multimedia Interface Universal Serial Bus Global Positioning System Light Emitting Diode Central Processing Unit Open Source Computer Vision Institute of Electrical and Electronics Engineers Computer vision MLL GUI Machine learning library Graphical User Interface DANH SÁCH CÁC HÌNH NG Chương MỞ ĐẦU 1.1 Đặt vấn đề Khi nước ta gia nhập WTO, kinh tế có nhiều hội để phát triển Thủy sản trở thành ngành kinh tế mũi nhọn, giữ vai trò quan trọng kinh tế quốc dân Theo số liệu Tổng cục Thống kê Bộ thủy sản, sản lượng thủy sản Việt Nam trước năm 1985 có sa sút, từ năm 1985 trở lại liên tục tăng Năm 1986, tổng sản lượng thủy sản đạt 830.500 tấn; năm 1990 1.019.000 tấn; năm 2000 đạt 2.003.000 ; năm 2004 đạt 3.073.000 Trong khai thác hải sản đạt tương ương ứng 487.000 ; 709.000 ; 1.280.000 nuôi trồng thủy sản 243.500 tấn; 310.000 tấn; 723.000 tấn; 1.150.000 Hệ thống sản xuất giống loài cá nước truyền thống hầu hết sản xuất nhân tạo thời gian qua Vấn đề cung cấp giống cho nuôi trồng đối tượng tương đối ổn định Số sở sản xuất cá giống nhân tạo toàn quốc khoảng 354 sở, hàng năm có khả sản xuất khoảng tỷ cá giống cung cấp kịp thời vụ cho nhu cầu nuôi nước Thực trạng, việc sản xuất ươm giống thủy sản thực hiển sở sản xuất tư nhân, trại sản xuất cá, tơm giống, có hỗ trợ viện, trung tâm nghiên cứu ngày chuyên nghiệp gắn với chăn nuôi Đến thủy sản Việt Nam có mặt 80 nước vùng lãnh thổ Trong Mỹ Nhật Bản thị trường lớn Hiện nay, vùng nuôi trồng thủy sản bước hồn thiện quy trình nuôi trồng để tăng hiệu suất Tuy nhiên, với lượng cá giống, tôm lớn nuôi trồng hàng năm vậy, khâu đếm cá giống để cung cấp cho người nông dân sở cung cấp giống thực thủ công theo kiểu ước chừng Điều gây thời gian công sức Để giải vấn đề cần phải có hệ thống đếm cá giống tự động 1.2 Mục đích Dựa yêu cầu thực tế cấp thiết phải có hệ thống tự động hóa q trình phân phối cá giống Chúng em thực đề tài “Nghiên cứu, thiết kế, chế tạo mơ hình đếm cá giống tự động” với mục đích đếm số lượng cá giống giảm thời gian đếm thủ cơng, qua góp phần tăng suất lao động 1.3 Nội dung nghiên cứu Do thời gian giới hạn, mức độ rộng lớn đề tài nên chúng em xin giới hạn nghiên cứu vấn đề sau: • • • • Tìm hiểu Raspberry PI B+ Cài đặt chương trình OpenCv 2.4 lên Raspberry PI Tìm hiểu ngơn ngữ lập trình Python Open CV Dùng Webcam thu tín hiệu hình ảnh trưc tiếp truyền liệu qua cổng USB Raspberry PI • Xây dựng chương trình xử lý ảnh để phát đếm cá giống • Điều khiển đóng mở động để xả Van cho cá chảy vào bể đếm • Tính tốn hiển thị kết số lượng cá lên Hình LCD (Liquid Crystal Display) Chương TỔNG QUAN 2.1 Tổng quan hệ thống xử lý ảnh Một hệ thống xử lý ảnh điển hình thường bao gồm thành phần sau: Lưu trữ Lưu trữ Thiết bị thu nhận ảnh Thu nhận ảnh Nhận dạng Phân tích ảnhHệ định Số hóa Hiển thị Hình Sơ đồ hệ thống xử lý ảnh 2.1.1 Các thiết bị thu nhận ảnh Ảnh thu nhận qua Camera, ảnh thu nhận từ vệ tinh thông qua phận cảm ứng (sensor) hay ảnh, tranh quét máy scanner 2.1.2 Khái niệm Camera Camera thiết bị ghi hình Với camera, ta ghi lại hình ảnh khoảng thời gian đó, lưu trữ sau xem lại ta muốn Camera truyền hình ảnh nhận địa điểm lắp đặt đến thiết bị hiển thị TV (Television), computer, máy chiếu, 2.1.2.1 Phân loại Camera - Phân loại theo kỹ thuật hình ảnh - Phân loại theo đường truyền - Phân loại theo tính sử dụng Phân loại theo kỹ thuật hình ảnh + Camera analog: Ghi hình băng từ xử lý tín hiệu analog, xử lý tín hiệu màu vector màu, loại camera dùng + Camera CCD (Charge Couple Device) (100% số): Sử dụng kỹ thuật CCD để nhận biết hình ảnh CCD tập hợp tích điện cảm nhận ánh sáng sau chuyển tín hiệu ánh sáng sang tín hiệu số để đưa vào xử lý CCD thu nhận hình ảnh thơng qua hệ thống thấu kính Camera CCD có hàng ngàn điểm ảnh sẻ chuyển đổi ánh sáng thành hạt điện tích số hóa Đây trình chuyển đổi tương tự số Các thông số kỹ thuật Camera CCD đường chéo hình cảm biến ( tính inch) Kích thước hình cảm biến lớn chất lượng tốt (màn hình 1/3 inch Sony CCD tốt hình 1/4 inch CCD, 1/3 > 1/4) Hiện có hai hãng sản xuất hình cảm biến Sony Sharp Chất lượng Sharp Sony + Camera CMOS (Complementary metal oxide semiconductior) CMOS có nghĩa chất bán dẫn có bổ sung oxit kim loại Các camera số sử dụng công nghệ CMOS Các camera số thương mại sử dụng công nghệ CMOS chưa đủ khả cung cấp thời điểm so sánh chất lượng hình ảnh với Camera CCD Các Camera CMOS có giá thành khoảng 500 USD đến 50000 USD Các Camera số sử dụng cơng nghệ CMOS CCD có ưu điểm rõ so với Cameraanalog Camera analog độ rõ nét chất lượng hình ảnh Phân loại theo kỹ thuật đường truyền: Có ba loại: Camera có dây, Camera khơng dây IP Camera (Camera mạng) + Camera có dây Hình 2 Camera có dây Camera có dây có ưu diểm khả an tồn cao, tính bảo mật tốt, truyền tín hiệu dây cáp đồng trục khoảng 75Ohm – 1Vpp, dây C5 Đây giải pháp đánh giá an toàn Nhược điểm truyền với khoảng cách xa 300m cần có khuếch tránh việc tín hiệu đường truyền suy hao, dẫn đến chất lượng hình ảnh khơng tốt + Camera khơng dây Hình Camera khơng dây Giống tên gọi, camera dây Nhưng tiếc khơng hồn tồn Các Camera cần phải có dây nguồn để hoạt động Ưu điểm loại camera dễ thi công lắp đặt không cần dây, nhiên nhược điểm Camera có hệ số an tồn khơng cao, phải lưu ý đến tần số sử dụng, dao động từ 1,2 đến 2,4 Mhz Vì camera dễ bị bắt sóng bị ảnh hưởng nhiễu trước nguồn sóng điện thoại di động + IP Camera Hình IP Camera Như đề cập trên, IP Camera kết nối trực tiếp vào mạng, tín hiệu hình ảnh điều khiển truyền qua mạng Với Camera IP người dùng điều khiển giám sát đâu thông qua mạng Internet Phân loại theo tính sử dụng + Dome Camera (Camera áp trần ) Camera thường đặt nhà, kiểu dáng trang nhã, có tính bảo mật cao bọc hộp kín + Camera ẩn Camera khơng thể nhận biết Có nhiều hình dạng kích thước khác nhau, ngụy trang tránh phát hiện.Tuy nhiên sử dụng Camera cần phải đảm bảo tính hợp pháp nơi lắp đặt ràng buộc nơi cư trú + Box Camera Đây loại Camera truyền thống thường dùng văn phòng siêu thị Đây loại Camera giá thành rẻ , bảo vệ hộp tránh tác động từ môi trường + Camera PTZ Pan: Quét ngang Tilt: Quét dọc Z: Zoom (Phóng to) + IR Camera Exview • Khoảng cách quan sát Camera phụ thuộc vào công suất đèn hồng ngoại, dao động từ khoảng 10m đến 300m.Camera IR quan sát điều kiện tối hồn tồn • Exview: Màn hình tự động khuếch đại ánh sáng làm rõ hình ảnh sáng tối, nhiên tối hoàn toàn camera khơng quay 10 GPIO.setmode(GPIO.BCM) GPIO.setup(19,GPIO.IN,pull_up_down = GPIO.PUD_UP) # buton setup decrease input_state = GPIO.input(19) if input_state == False: lcd.clear() print ('giam') if trunggian == 1: setup_soca = setup_soca - elif trunggian == 2: setup_soca = setup_soca - 10 elif trunggian == 3: setup_soca = setup_soca - 20 lcd.message('so ca nhap') s = str(setup_soca) lcd.setCursor(13, 0) lcd.message(s) ''' chuong trinh dem ca voi so lan lap lai la lan -''' def demca(): global soca global i global OrgImg global avg global gt1 global gt2 52 global gt3 global gt4 global gt5 global gtmax global gtmin lap = lap1 = avg = cam = cv2.VideoCapture(0) #cv2.imwrite("anhchup5.jpg", cam) while (lap 15 and area 90and area170 and area350 and area 700 and area 1300 and area 2000 and area4000and area 6000and area 8000: soca = soca +area/ 120 print area #print perimeter # print hullperimeter print "so ca ",soca if lap == 1: gt1 = soca if lap == 2: gt2 = soca if lap == 3: gt3 = soca if lap == 4: gt4 = soca if lap == 5: gt5 = soca list1 = [gt1,gt2,gt3,gt4,gt5] gtmax = max(list1) gtmin = min(list1) avg = gt1 + gt2 + gt3 + gt4 + gt5 - gtmax - gtmin print" gia tri trung binh", avg print " Cac gia tri", gt1,gt2,gt3,gt4,gt5 print " gia tri min", gtmin 56 print " gia tri max", gtmax print "so ca cuoi cung ",avg//3 print "so lan lap", lap cam.release() def demca1(): global soca global i global OrgImg global avg global gt1 global gt2 global gt3 global gt4 global gt5 global gtmax global gtmin lap = lap1 = avg = cam = cv2.VideoCapture(0) #cv2.imwrite("anhchup5.jpg", cam) while (lap 15and area 90and area170and area350and area 700and area 1300and area 2000and area4000and area 6000and area 8000: soca = soca +area/ 120 print area #print perimeter # print hullperimeter print "so ca ",soca avg = soca print " gia tri trung binh", avg cam.release() defdongvan(): ''' - quay thuan dong van xa nuoc be tren -pin noi voi dong co quay thuan 60 pin GPIO 19 cong tac hanh trinh dong van ''' GPIO.setmode(GPIO.BCM) GPIO.setup(5, GPIO.OUT) #dong co quay thuan GPIO.output(5,GPIO.HIGH) print('dong van xa') time.sleep(0.55) GPIO.output(5,GPIO.LOW) defmovan(): ''' - quay nguoc mo van xa nuoc be tren -pin noi voi dong co quay nghich pin GPIO 26 cong tac hanh trinh dong van ''' GPIO.setmode(GPIO.BCM) GPIO.setup(6, GPIO.OUT) #dong co quay nguoc GPIO.output(6,GPIO.HIGH) print('mo van xa') time.sleep(0.55) GPIO.output(6,GPIO.LOW) while(True): # gpio 26 tang # gpio 19 giam # gpio 16 start # gpio 21 reset gia tri dem # pin dong co quay thuan # pin dong co quay nguoc 61 GPIO.setmode(GPIO.BCM) GPIO.setup(21,GPIO.IN,pull_up_down = GPIO.PUD_UP) # button reset GPIO.setup(16,GPIO.IN,pull_up_down = GPIO.PUD_UP) # button start GPIO.setup(5, GPIO.OUT) GPIO.setup(6, GPIO.OUT) time.sleep(0.1) start = GPIO.input(16) stop = GPIO.input(21) settang() setgiam() #lcd.message('test code ') if stop == False: lcd.setCursor(0,0) lcd.message('Chon he so nhan') trunggian = trunggian + if trunggian >= 4: trunggian = if trunggian == 1: lcd.setCursor(15,1) lcd.message(' ') lcd.setCursor(0,1) lcd.message('He so nhan la 1') 62 elif trunggian ==2: lcd.setCursor(0,1) lcd.message('He so nhan la 10') elif trunggian == 3: lcd.setCursor(0,1) lcd.message('He so nhan la 20') print"he so", trunggian if start == False and stop == False: kq = setup_soca = print "so ca can dem", setup_soca if start == False: GPIO.setmode(GPIO.BCM) GPIO.setup(20,GPIO.IN,pull_up_down = GPIO.PUD_UP) # button star GPIO.setup(5, GPIO.OUT) GPIO.setup(6, GPIO.OUT) while(kq < setup_soca): lcd.clear() lcd.setCursor(0,0) lcd.message('Dang dem ') avg = kq = demca1() 63 setuptime = setup_soca - avg if setuptime >300: timel = 22 elif setuptime >200and setuptime 150and setuptime 100and setuptime = 80 and setuptime < 100: timel = 10 elif setuptime >= 60 and setuptime < 80: timel = elif setuptime >= 45 and setuptime < 60: timel = elif setuptime= 30: timel = elif setuptime0: timel =2 print "lap vo han" movan() time.sleep(timel) dongvan() demca() kq = (avg//3) - 64 print "so ca dem duoc ",kq lcd.clear() lcd.setCursor(0,0) lcd.message('So ca da dem') s = str(kq) lcd.setCursor(13,0) lcd.message(s) #print i print "Good bye!" if kq > setup_soca: print "so ca dem duoc ",kq lcd.clear() lcd.setCursor(0,0) lcd.message('So ca da dem') s = str(kq) lcd.setCursor(13,0) lcd.message(s) lcd.clear() lcd.setCursor(0,1) lcd.message('So ca vot lo:') socavotlo = kq - setup_soca ca = str(socavotlo) lcd.setCursor(14,1) lcd.message(ca) 65 66 ... thống đếm cá giống tự động 1.2 Mục đích Dựa yêu cầu thực tế cấp thiết phải có hệ thống tự động hóa q trình phân phối cá giống Chúng em thực đề tài Nghiên cứu, thiết kế, chế tạo mơ hình đếm cá giống. .. số lượng cá giống cần đếm, hệ thống s tự động mở van xả cá để đếm đạt đủ số lượng cá Đây xem kết đề tài Để đạt kết nhóm chúng em thực xử lý ảnh để nhận diện đếm cá giống thư viện xử lý ảnh OpenCV... việc thu ảnh để đếm cá giống Kết số lượng cá đếm được hiển thị hình LCD tủ điều khiển 4.2 Kết chế tạo mơ hình phần cứng thực tế Hình Mơ hình phần cứng thực tế Hình Kết mơ hình phần cứng thực