1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

74 284 4

Đ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

Thông tin cơ bản

Định dạng
Số trang 74
Dung lượng 3,37 MB
File đính kèm lvtn.rar (3 MB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đề 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.

Trang 1

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 HOÀNG – NGUYỄN VĂN ĐỨC

Khóa luận tốt nghiệp được đệ trình đáp ứng yêu cầu

cấp bằng 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 6 năm 2016

Trang 2

Chúng em cũng xin bày tỏ sự biết ơn chân thành đối với cô Trần Thị Kim Ngà

đã tận tình hướng dẫn và giúp đỡ chúng em trong suốt quá trình làm Luận Văn TốtNghiệp

Đặc biệt chúng em xin cảm ơn quý Thầy Cô trong hội đồng đã dành thời giannhận xét và góp ý để luận văn của em được hoàn thiện hơn

Cuối cùng, chúng em xin gửi lời cảm ơn đến những người thân cũng như bạn

bè đã động viên ủng hộ và luôn tạo cho chúng em mọi điều kiện thuận lợi trong suốtquá trình hoàn thành luận văn

TP.HCM, Ngày tháng 6 năm 2016

Sinh viên thực hiện

VÕ VĂN HUY HOÀNG NGUYỄN VĂN ĐỨC

Trang 3

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” được thực hiện tại trường Đại Học Nông Lâm Thành Phố Hồ Chí Minh,thời gian từ tháng 2 đến tháng 5 năm 2016

Đề 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 đượcxem 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ậndiệ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ủaRaspberry Pi B+.Kết quả số lượng cá đếm được sẽ được hiển thị trên màn hình LCD

Do thời gian còn hạn chế và mức độ rộng lớn của đề tài, nên không thể tránhkhỏi những thiếu sót Chúng em rất mong nhận được sự đóng góp ý kiến của quý Thầy

Cô và bạn bè để đề tài của em ngày càng hoàn thiện hơn

Trang 4

MỤC LỤC

CHƯƠNG 1 MỞ ĐẦU 1

1.1 Đặt vấn đề 1

1.2 Mục đích 2

1.3 Nội dung nghiên cứu 2

CHƯƠNG 2 TỔNG QUAN 3

2.1 Tổng quan về hệ thống xử lý ảnh 3

2.1.1 Các thiết bị thu nhận ảnh 3

2.1.2 Khái niệm về Camera 3

2.1.3 Thu nhận ảnh và số hóa 7

2.1.4 Lưu trữ ảnh 7

2.1.5 Phân Tích Ảnh 8

2.1.6 Hệ quyết định 11

2.1.7 Màn hình LCD (16x2) 11

2.2 Tổng quan về Raspberry Pi 13

2.2.1 Giới thiệu về Raspberry Pi 13

2.2.2 Các Loại Phiên Bản 14

2.2.3 Phần cứng của Raspberry Pi (Model B) 14

2.2.4 Giới thiệu về hệ điều hành Raspbian 15

2.2.5 Ngôn ngữ Python 16

2.3 Webcam sử dụng 17

2.4 Van điều khiển 17

2.5 Các linh kiện điện tử trong hệ thống 18

2.5.1 Điện trở 18

2.5.2 Tụ Điện 18

2.5.3 Transistor 19

2.5.4 Relay.(Rơ-le 5 chân) 20

2.5.5 Diode (Điốt) 20

2.5.6 Diode cầu (KBU1008) 21

Trang 5

2.5.7 Lm1117 21

2.5.8 Module LM2596 22

2.5.9 LED đơn 22

2.6 Tổng quan về OpenCV 22

2.6.1 Cấu trúc và nội dung OpenCV 23

2.6.2 Một số hàm đơn giản thường xuyên sử dụng 24

CHƯƠNG 3 PHƯƠNG TIỆN VÀ PHƯƠNG PHÁP NGHIÊN CỨU 27

3.1 Đối tượng nghiên cứu 27

3.2 Phương tiện nghiên cứu 27

3.3 Phương pháp nghiên cứu 27

CHƯƠNG 4 KẾT QUẢ VÀ THẢO LUẬN 28

4.1 Mô hình hệ thống 28

4.2 Kết quả chế tạo mô hình phần cứng thực tế 29

4.3 Sơ đồ khối toàn bộ hệ thống 29

4.4 Sơ đồ nguyên lý mạch nguồn 30

4.5 Mạch hiển thị LCD 31

4.6 Mạch điều khiển van xả cá 32

4.7 Mạch điều khiển động cơ nâng hạ bể 33

4.8 Lưu đồ thuật toán điều khiển hệ thống 33

4.9 Giải thuật xử lý ảnh đếm cá giống 34

4.9.1 Thu nhận ảnh 34

4.9.2 Chuyển ảnh nhị phân 35

4.9.3 Các phép toán hình ảnh 35

4.9.4 Tìm Contour của đối tượng 36

4.9.5 Đếm đối tượng và tính diện tích từng đối tượng 37

4.10 Lưu đồ thuật toán xử lý ảnh 37

4.11 Kết quả đếm được số lượng cá giống 39

4.12 Khảo nghiệm hệ thống 40

4.12.1 Khảo nghiệm độ chính xác của xử lý ảnh 40

4.12.2 Khảo nghiệm độ chính xác và tốc độ của toàn bộ Hệ thống 41

4.13 Nhận xét 43

Trang 6

CHƯƠNG 5 KẾT LUẬN VÀ ĐỀ NGHỊ 44

5.1 Kết quả đạt được 44

5.2 Hạn chế cần khắc phục 44

5.2 Hướng phát triển của đồ án 45

TÀI LIỆU THAM KHẢO 46

PHỤ LỤC 47

Code xử lý ảnh 47

Trang 7

DANH SÁCH CÁC CHỮ VIẾT TẮT

LCD Liquid crystal display

WTO World Trade Organization

TV Television

CCD Charge Couple Device

CMOS Complementary metal oxide semiconductior.ATM Automated teller machine

GPIO General Purpose Input/Output

SOC System-On-Chip

GPU Graphics Processing Unit

HDMI High-Definition Multimedia Interface

USB Universal Serial Bus

GPS Global Positioning System

LED Light Emitting Diode

CPU Central Processing Unit

OpenCV Open Source Computer Vision

IEEE Institute of Electrical and Electronics Engineers

CV Computer vision

MLL Machine learning library

GUI Graphical User Interface

Trang 8

DANH SÁCH CÁC HÌNH

Hình 2 1 Sơ đồ hệ thống xử lý ảnh 3

Hình 2 2 Camera có dây 5

Hình 2 3 Camera không dây 5

Hình 2 4 IP Camera 6

Hình 2 5 Mô hình không gian màu RGB 8

Hình 2 6 Mô hình không gian màu HSV 9

Hình 2 7 Mô hình màu HLS 9

Hình 2 8 Mô hình màu L*a*b 10

Hình 2 9 Hình dáng của LCD 16x2 11

Hình 2 10 Sơ đồ chân của LCD 11

Hình 2 11 Raspberry Pi B+ 13

Hình 2 12 Sơ đồ chân Raspbeery Pi B+ 13

Hình 2 13 Cấu tạo của Raspberry Pi Model B 14

Hình 2 14 Giao diện hệ điều hành Raspbian 16

Hình 2 15 Webcam logitech quickcam C905 17

Hình 2 16 Van điều khiển 17

Hình 2 17 Điện trở 18

Hình 2 18 Ký hiệu của tụ điện trong mạch điện 19

Hình 2 19 Các loại tụ điện 19

Hình 2 20 Transistor thực tế 20

Hình 2 21 Rơ le 5V 20

Hình 2 22 Ký hiệu và một số loại điốt 21

Hình 2 23 Diode cầu (KBU1008) 21

Hình 2 24 LM1117 21

Hình 2 25 Module LM2596 22

Hình 2 26 Các loại led đơn thường gặp 22

Hình 2 27 Quá trình phát triển của Open CV 23

Hình 2 28 Cấu trúc cơ sở của Open CV 24

Hình 2 29 Cấu trúc phần tử ảnh 25

Hình 4 1 Mô hình 3D hệ thống đếm cá tự động 28

Hình 4 2 Mô hình phần cứng thực tế 29

Hình 4 3 Kết quả mô hình phần cứng thực tế 29

Hình 4 4Sơ đồ khối toàn bộ hệ thống 29

Hình 4 5Sơ đồ nguyên lý Mạch Nguồn và các ngoại vi 30

Hình 4 6 Mạch Nguồn và các ngoại vi 30

Hình 4 7 Sơ đồ nguyên lý mạch ra chân LCD 31

Hình 4 8Mạch hiển thị LCD 31

Trang 9

Hình 4 9 Sơ đồ nguyên lý Mạch điều khiển van xả cá 32

Hình 4 10 Mạch điều khiển van xả cá Error! Bookmark not defined Hình 4 11 Sơ đồ nguyên lý mạch điều khiển động cơ nâng hạ bể 33

Hình 4 12 Mạch điều khiển động cơ nâng hạ bể 33

Hình 4 13 Lưu đồ thuật toán điều khiển hệ thống 34

Hình 4 14 Ảnh thu nhận từ Camera kết nối với OpenCV 2.4 34

Hình 4 15 Ảnh nhị phân 35

Hình 4 16 Phép toán mở ảnh 35

Hình 4 17 Phép toán co ảnh 36

Hình 4 18 Tìm contour của đối tượng 36

Hình 4 19 Đếm đối tượng và tính diện tích từng đối tượng 37

Hình 4 20 Lưu đồ thuật toán xử lý ảnh đếm cá giống 38

Hình 4 21 Kết quả đếm được số lượng cá giống 39

Trang 11

Chương 1

MỞ ĐẦU1.1 Đặt vấn đề.

Khi nước ta gia nhập WTO, nền kinh tế có nhiều cơ hội để phát triển Thủy sảntrở thành ngành kinh tế mũi nhọn, giữ vai trò quan trọng trong nền kinh tế quốc dân.Theo số liệu của Tổng cục Thống kê và Bộ thủy sản, sản lượng thủy sản của Việt Namtrước năm 1985 có sự sa sút, nhưng từ năm 1985 trở lại đây liên tục tăng Năm 1986,tổng sản lượng thủy sản chỉ đạt 830.500 tấn; năm 1990 là 1.019.000 tấn; năm 2000 đãđạt 2.003.000 tấn ; năm 2004 đạt 3.073.000 tấn Trong đó khai thác hải sản đạt tươngương ứng là 487.000 tấn ; 709.000 tấn ; 1.280.000 tấn và nuôi trồng thủy sản là243.500 tấn; 310.000 tấn; 723.000 tấn; 1.150.000 tấn

Hệ thống sản xuất giống các loài cá nước ngọt truyền thống hầu hết đã được sảnxuất nhân tạo trong thời gian qua Vấn đề cung cấp giống cho nuôi trồng các đối tượngnày tương đối ổn định Số cơ sở sản xuất cá giống nhân tạo trên toàn quốc hiện naykhoảng 354 cơ sở, hàng năm có khả năng sản xuất khoảng trên 4 tỷ cá giống cung cấpkịp thời vụ cho nhu cầu nuôi trên cả nước

Thực trạng, việc sản xuất và ươm giống thủy sản được thực hiển bởi các cơ sởsản xuất tư nhân, trại sản xuất cá, tôm giống, có sự hỗ trợ của viện, trung tâm nghiêncứu ngày càng chuyên nghiệp và gắn với chăn nuôi Đến nay thủy sản Việt Nam đã cómặt tại hơn 80 nước và vùng lãnh thổ Trong đó Mỹ và Nhật Bản vẫn là thị trườnglớn

Hiện nay, ở các vùng nuôi trồng thủy sản đang từng bước hoàn thiện quy trìnhnuôi trồng để tăng hiệu quả và năng suất Tuy nhiên, với một lượng cá giống, tôm lớnđược nuôi trồng hàng năm như vậy, nhưng khâu đếm cá giống để cung cấp cho ngườinông dân tại các cơ sở cung cấp giống vẫn thực hiện thủ công hoặc theo kiểu ướcchừng Điều này gây mất thời gian và công sức Để giải quyết vấn đề trên cần phải cómột hệ thống đếm cá giống tự động

Trang 12

1.2 Mục đích.

Dựa trên những yêu cầu thực tế và cấp thiết phải có một hệ thống tự động hóatrong quá trình phân phối cá giống Chúng em thực hiện đề 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 và giảmthời gian đếm thủ công, qua đó góp phần tăng năng suất lao động

1.3 Nội dung nghiên cứu.

Do thời gian giới hạn, cũng như mức độ rộng lớn của đề tài nên chúng em xin giớihạn nghiên cứu các vấn đề cơ bản sau:

 Tìm hiểu về Raspberry PI B+

 Cài đặt chương trình OpenCv 2.4 lên Raspberry PI

 Tìm hiểu về ngôn ngữ lập trình Python và Open CV

 Dùng Webcam thu tín hiệu hình ảnh trưc tiếp và truyền dữ liệu qua cổng USBcủa Raspberry PI

 Xây dựng chương trình xử lý ảnh để phát hiện và đếm cá giống

 Điều khiển đóng mở động cơ để xả Van cho cá chảy vào bể đếm

 Tính toán và hiển thị kết quả số lượng cá lên màn Hình LCD (Liquid CrystalDisplay)

Trang 13

Thiết bị

thu nhận

ảnh

Thu nhậnảnh

Nhận dạng

Hiển thị

2.1.2 Khái niệm về Camera .

Camera là một thiết bị ghi hình Với một chiếc camera, ta có thể ghi lại đượcnhững hình ảnh trong một khoảng thời gian nào đó, lưu trữ và sau đó có thể xem lạibất cứ khi nào ta muốn Camera sẽ truyền hình ảnh nhận được tại địa điểm được lắpđặt đến các thiết bị được hiển thị như 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

Hình 2 1 Sơ đồ hệ thống xử lý ảnh.

Trang 14

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ạicamera này hiện nay ít dùng

+ Camera CCD (Charge Couple Device) (100% số):

Sử dụng kỹ thuật CCD để nhận biết hình ảnh CCD là tập hợp những ô tích điện

có thể 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àocác bộ xử lý

CCD thu nhận những hình ảnh thông qua các hệ thống thấu kính của Camera CCD

có hàng ngàn những điểm ảnh sẻ chuyển đổi ánh sáng thành những hạt điện tích vàđược số hóa Đây là một quá trình chuyển đổi tương tự số

Các thông số kỹ thuật của Camera CCD là đường chéo màn hình cảm biến ( tínhbằng inch) Kích thước màn hình cảm biến càng lớn thì chất lượng càng tốt (màn hình1/3 inch Sony CCD sẽ tốt hơn màn hình 1/4 inch CCD, vì 1/3 > 1/4) Hiện nay chỉ cóhai hãng sản xuất màn hình cảm biến là Sony và Sharp Chất lượng của Sharp kém hơncủa Sony

+ Camera CMOS (Complementary metal oxide semiconductior)

CMOS có nghĩa là 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 thìchưa đủ khả năng cung cấp trong thời điểm này khi so sánh chất lượng hình ảnh vớiCamera 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 và CCD có ưu điểm rất rõ so vớiCameraanalog Camera analog về độ rõ nét và chất lượng hình ảnh

Phân loại theo kỹ thuật đường truyền:

Trang 15

Có ba loại: Camera có dây, Camera không dây và IP Camera (Camera mạng).

+ Camera có dây

khả năng an toàn cao, tính bảo mật tốt, truyền tín hiệu trên dây cáp đồng trục khoảng75Ohm – 1Vpp, dây C5 Đây là giải pháp được đánh giá là an toàn Nhược điểm là khitruyền với khoảng cách xa hơn 300m thì cần có bộ khuếch đại để 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

không có dây Nhưng rất tiếc là cũng không hoàn toàn như vậy Các Camera này vẫn

Hình 2 2 Camera có dây.

Hình 2 3 Camera không dây.

Trang 16

đặt do không cần đi dây, tuy nhiên nhược điểm của Camera là có hệ số an toàn khôngcao, do phải lưu ý đến tần số sử dụng, dao động từ 1,2 đến 2,4 Mhz Vì vậy camera rất

dễ bị bắt sóng hoặc bị ảnh hưởng nhiễu trước các nguồn sóng như điện thoại di động + IP Camera

nối trực tiếp vào mạng, tín hiệu hình ảnh và điều khiển được truyền qua mạng VớiCamera IP người dùng có thể điều khiển và giám sát ở bất cứ đâu thông qua mạng

Phân loại theo tính năng sử dụng.

+ Dome Camera (Camera áp trần )

Camera này thường được đặt trong nhà, kiểu dáng trang nhã, có tính năng bảomật cao được bọc trong hộp kín

+ Camera ẩn

Camera này không thể nhận biết được Có nhiều hình dạng và kích thước khácnhau, có thể ngụy trang tránh phát hiện.Tuy nhiên khi sử dụng Camera này cần phảiđảm bảo tính hợp pháp tại nơi lắp đặt cũng như các ràng buộc tại nơi cư trú

+ Box Camera

Hình 2 4 IP Camera

Trang 17

Đây là loại Camera truyền thống thường được dùng trong các văn phòng siêuthị Đây là loại Camera giá thành rẻ , được bảo vệ trong hộp tránh tác động từ môitrường.

 Exview: Màn hình tự động khuếch đại ánh sáng làm rõ hình ảnh khi sáng tối,tuy nhiên nếu tối hoàn toàn thì camera sẽ không quay được

2.1.3 Thu nhận ảnh và số hóa.

Việc thu nhận ảnh có thể thông qua Camera Hình ảnh thu được có thể là tương

tự hoặc số, nếu ảnh nhận được là tương tự nó phải được số hóa nhờ quá trình lấy mẫu

và lượng tử hóa trước khi phân tích, xử lý hay lưu trữ ảnh

2.1.4 Lưu trữ ảnh.

Ảnh trên máy tính là kết quả thu nhận theo các phương pháp số hóa được nhúngtrong cách thiết bị kỹ thuật khác nhau Quá trình lưu trữ ảnh nhằm hai mục đích:

 Tiết kiệm bộ nhớ

 Giảm thời gian xử lý

Việc lưu trữ thông tin trong bộ nhớ có ảnh hưởng rất lớn đến việc hiển thị, in

ấn, và xử lý ảnh, được xem như là một tập hợp các điểm với cùng kích thước nếu sửdụng càng nhiều điểm ảnh thì bức ảnh càng đẹp, càng mịn và càng hiển thị rõ hơn chitiết của ảnh, người ta gọi đặc điểm này là độ phân giải

Trang 18

Để lưu trữ ảnh trên máy tính ta có các định dạng sau như: JPG, PNG, GIF

2.1.5 Phân Tích Ảnh.

2.1.5.1 Một sô không gian màu.

Không gian màu RGB (Red, Green, Blue)

Còn gọi là ảnh “ truecolor” do tính trung thực của nó Ảnh này được biểu diễnbởi một ma trận ba chiều kích thước m x n x 3, với m x n là kich thước ảnh theopixels Ma trận này định nghĩa các thành phần màu Red, Green, Blue cho mỗi điểmảnh, các phần tử của nó có thể thuộc kiểu unit 8, unit 16,hoắc double

Hệ tọa độ cho không gian màu này là hình trụ:

+ Giá trị màu thuần khiết chạy từ 0 đến 360 độ

+ Độ bão hòa màu (Saturation) là mức độ thuần khiết của màu, có thể hiểu là có baonhiều màu trắng được thêm vào màu thuần khiết này Gía trị của S nằm trong đoạn

Hình 2 5 Mô hình không gian màu RGB.

Trang 19

[ 0;1], trong đó S = 1 là màu tinh khiết nhất, hoàn toàn không pha trắng Nói cách khác, S càng lớn màu càng tinh khiết, nguyên chất.

+ Độ sáng của màu (Value), có khi được gọi là intensity, Lightness, cũng có giá trị daođộng trong đoạn [ 0;1], trong đó V = 0 là hoàn toàn tối (đen), V = 1 là hoàn toàn sáng.Nói cách khác, V càng lớn thì màu càng sáng

 Mô hình màu HLS

Mô hình màu HLS được xác định bởi tập hợp hình chóp sáu cạnh đôi của khônggian hình trụ Sắc màu là góc quanh trục đứng của hình chóp sáu cạnh đôi với màu đỏtại góc 0 độ Các màu sẽ xác định theo thứ tự giống như trong biểu đồ CIE khi ranhgiới của nó bị xoay ngược chiều kim đông hồ: Màu đỏ, màu vàng, màu lục, màu xanhtím, màu lam và đỏ thẫm Điều này cũng giống như thứ tự sắp xếp trong mẫu hìnhchóp sáu cạnh đơn HSV

Hình 2 6 Mô hình không gian màu HSV.

Hình 2 7 Mô hình màu HLS.

Trang 20

Là không gian màu phổ biến cho việc so sánh sự khác biệt về màu sắc Trong đó hệthống L*a*b đại diện cho ba mức tỉ lệ với L (Light) đại diện cho độ sáng.

2.1.5.2 Biên và các phương pháp phát hiện biên.

Biên là các vấn đề quan trọng trong trích chọn đặc điểm nhằm tiến tới hiệuảnh

Cho đến nay vẫn chưa có định nghĩa chính xác về biên, trong mỗi ứng dụng người tađưa ra các độ đo khác nhau về biên, một trong các độ đo đó là độ đo về sự thay đổi độtngột về cấp xám

Ví du: Đối với ảnh đen trắng, một diểm được gọi là điểm biên nếu nó là điểmđen có ít nhất một điểm trắng bên cạnh Tập hợp các điểm biên tạo nên biên hay đườngbao của đối tượng Xuất phát từ cơ sở này người ta thường sử dụng hai phương phápphát hiện biên cơ bản:

+ Phát hiện biên trực tiếp: Phương pháp này làm nổi biên dựa vào sự biến thiên mứcxám của ảnh Kỹ thuật chủ yếu dùng để phát hiện biên ở đây là kỹ thuật lấy đạo hàm.Nếu lấy đạo hàm bậc nhất của ảnh ta được ta có các kỹ thuật Gradient, nếu lấy đạohàm bậc hai của ảnh ta được kỹ thuật Laplace Ngoài ra còn có một số các tiếp cậnkhác

+ Phát hiện biên gián tiếp: Nếu bằng cách nào đó ta phân được ảnh thành các vùng thìranh giới giữa các vùng đó gọi là biên, Kỹ thuật dò biên và phân vùng ảnh là hai bàitoán đối ngẫu nhau vì dò biên để thực hiện phân lớp đối tượng mà khi đã phân lớp

Hình 2 8 Mô hình màu L*a*b.

Trang 21

xong nghĩa là đã phân vùng được ảnh và ngược lại, khi đã phân vùng ảnh đã đượcphân lớp thành các đội tượng, do đó có thể phát hiện được biên.

Phương pháp phát hiện biên trực tiếp tỏ ra khá hiệu quả và ít chịu ảnh hưởngcủa nhiễu, song nếu sự biến thiên độ sáng không đột ngột, phương pháp tỏ ra kém hiệuquả, phương pháp phát hiện biên gián tiếp, tuy khó cài đặt, song lại áp dụng khá tốttrong trương hợp này Sự khác biệt cơ bản giữa hai phương pháp này là: Phương phápphát hiện trực tiếp cho ta kết quả này là ảnh biên, còn phương pháp phát hiện gián tiếpcho kết quả là đường biên

Trang 22

Chức năng các chân của LCD.

Bảng 1 Chức năng các chân của LCD.

Châ

n

1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này vớiGND của mạch điều khiển

2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này

với VCC=5V của mạch điều khiển

3 VEE Điều chỉnh độ tương phản của LCD

Chân chọn thanh ghi (Register select) Nối chân RS với logic

“0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi

+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR củaLCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ củaLCD (ở chế độ “đọc” - read)

+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DRbên trong LCD

5 R/W Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W vớilogic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic

“1” để LCD ở chế độ đọc

Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên busDB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung chophép của chân E

+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấpnhận) thanh ghi bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E

+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khiphát hiện cạnh lên (low-to-high transition) ở chân E và đượcLCD giữ ở bus đến khi nào chân E xuống mức thấp

Trang 23

2.2 Tổng quan về Raspberry Pi.

2.2.1 Giới thiệu về Raspberry Pi.

Raspberry Pi là một chiếc máy tính tí hon chạy hệ điều hành dựa trên nhânLinux ra mắt vào tháng 2 năm 2012 Ban đầu Raspberry Pi được phát triển dựa trên ýtưởng tiến sĩ Eben Upton tại đại học Cambridge muốn tạo ra một chiếc máy tính giá rẻ

để học sinh có thể dễ dàng tiếp cận và khám phá thế giới tin học

Raspberry Pi có thể làm được hầu như mọi ứng dụng hằng ngày như lướt web,học lập trình, xem phim HD đến những ý tưởng không ngờ đến như điều khiểnrobot v.v.Nó cũng có thể kết nối và điều khiển các thiết bị trong cuộc sống thực tếnhư đèn, động cơ, GPS… Rất nhiều ứng dụng nhà thông minh đã sử dụng Raspberry

Pi làm bộ điều khiển trung tâm

Đặc biệt với kích thước chỉ tương đương một chiếc thẻ ATM và nặng chưa đầy

50 gram Gắn với chiếc tivi, có thể biến thành nó thành một thiết bị giải trí thông minhtrong phòng khách Gắn với màn hình và bàn phím, chuột, có thể biến nó thành mộtchiếc máy tính đúng nghĩa Nhỏ gọn và tiện lợi

Hình 2 11 Raspberry Pi B+

Hình 2 12 Sơ đồ chân Raspbeery Pi B+.

Trang 24

2.2.2 Các Loại Phiên Bản.

Raspberry Pi có hai phiên bản, Model A và Model B

 Model B thông dụng hơn cả Model B bao gồm những phần cứng và những cổnggiao diện:

 SoC 700MHz với 512MB RAM

 1 cổng HDMI cho đầu ra âm thanh / video số

 1 cổng video RCA cho đầu ra video Analog

 Jack Headphone Stereo 3.5mm cho đầu ra âm thanh Analog

 02 cổng USB

 01 đầu đọc thẻ nhớ SD để tải hệ điều hành

 01 cổng Ethernet LAN

 01 giao diện GPIO (General Purpose Input/Output)

 Model A cũng gần tương tự như Model B nhưng có sự thay đổi như sau:

 1 cổng USB

 Không có cổng Ethernet vì thế người dùng phải thêm Adapter USB Wi-Fi hoặc Ethernet nếu cần kết nối mạng

 Có 256MB RAM

2.2.3 Phần cứng của Raspberry Pi (Model B).

Trái tim của Pi là chip SOC (System-On-Chip) Broadcom BCM2835 chạy ở tốc độ700mHz Chip này tương đương với nhiều loại được sử dụng trong smartphone phổthông hiện nay, và có thể chạy được hệ điều hành Linux Tích hợp trên chip này lànhân đồ họa (GPU) Broadcom VideoCore IV GPU này đủ mạnh để có thể chơi 1 sốgame phổ thông và phát video chuẩn full HD

 8 ngõ GPIO (General Purpose Input Output): đúng như tên gọi của nó, từ đâybạn có thể kết nối và điều khiển rất nhiều thiết bị điện tử/cơ khí khác

Hình 2 13 Cấu tạo của Raspberry Pi Model B.

Trang 25

 Ngõ HDMI: dùng để kết nối Pi với màn hình máy tính hay tivi có hỗ trợ cổngHDMI.

 Ngõ RCA Video (analog): khi thiết kế Pi người ta cũng tính đến trường hợpngười sử dụng ở các nước đang phát triển không có điều kiện sắm một chiếctivi đời mới tích hợp cổng HDMI Vì vậy cổng video analog này được thêmvào, giúp bạn có thể kết nối với chiếc tivi đời cũ mà không phải lo lắng

 Ngõ audio 3.5mm: kết nối dễ dàng với loa ngoài hay headphone Đối với tivi

có cổng HDMI, ngõ âm thanh được tích hợp theo đường tín hiệu HDMI nênkhông cần sử dụng ngõ audio này

 Cổng USB: một điểm mạnh nữa của Pi là tích hợp 2 cổng USB 2.0 Bạn có thểkết nối với bàn phím, chuột hay webcam, bộ thu GPS v.v qua đó có thể mởrộng phạm vi ứng dụng Vì Pi chạy Linux nên hầu hết thiết bị chỉ cần cắm-và-chạy (Plug-n-Play) mà không cần cài driver phức tạp

 Cổng Ethernet: cho phép kết nối Internet dễ dàng Cắm dây mạng vào Pi, kếtnối với màn hình máy tính hay tivi và bàn phím, chuột là bạn có thể lướt web dễdàng

 Khe cắm thẻ SD: Pi không tích hợp ổ cứng Thay vào đó nó dùng thẻ SD đểlưu trữ dữ liệu Toàn bộ hệ điều hành Linux sẽ hoạt động trên thẻ SD này vì vậy

nó cần kích thước thẻ nhớ tối thiểu 4 GB và dung lượng hỗ trợ tối đa là 32 GB

 Đèn LED: trên Pi có 5 đèn LED để hiển thị tình trạng hoạt động

 Jack nguồn micro USB 5V, tối thiểu 700mA: nhờ thiết kế này mà chúng ta cóthể tận dụng hầu hết các sạc điện thoại di động trên thị trường để cấp nguồnđiện cho Pi

2.2.4 Giới thiệu về hệ điều hành Raspbian.

Về cơ bản Raspberry Pi có khá nhiều OS linux chạy được nhưng vẫn có sựthiếu vắng của Ubuntu (do CPU ARMv6)

Điểm danh một số Distributions Linux (nhúng) chạy trên Raspberry Pi nhưRaspbian, Pidora, openSUSE, OpenWRT, OpenELEC,…

Trong đề tài này, chúng em sử dụng hệ điều hành Raspbian và cũng là hệ điều hànhphổ biến nhất

Trang 26

Đây là hệ điều hành cơbản, phổ biến nhất và do chính Raspberry Pi Foundation cung cấp Nó cũng được hãngkhuyến cáo sử dụng, nhất là cho người mới bắt đầu làm quen với RPI.

Raspbian được hướng đến người dùng có mục đích:

 Sử dụng Raspberry Pi như máy tính văn phòng để lướt web, soạn văn bản,check mail và thi thoảng nghe nhạc/xem phim

 Nghiên cứu phát triển các thiết bị điều khiển tự động

 Sử dụng như một máy chủ cung cấp các dịch vụ như web, file server, printerserver,

Theo đánh giá ,Raspbian hoạt động rất ổn định, tốc độ nhanh Nhược điểm của nó

là giao diện đơn giản, cổ điển và rất không hào nhoáng Nếu không quá quan tâm tớigiao diện mà hướng đến hiệu năng thì Raspbian tỏ ra vượt trội

Cần phân biệt 2 khái niệm ở đây là ngôn ngữ Python viết hoa chữ cái đầu bằngtext thường và python là dòng lệnh và trình thông dịch của Python

Python có mặt ở mọi nơi và dễ dàng cài đặt Gần như tất cả các bản phân phốiLinux đều cài sẵn Python, Mac OS X từ bản Lion trở đi cũng cài sẵn Python TrênWindows có thể tải Python từ trang chủ

Hình 2 14 Giao diện hệ điều hành Raspbian

Trang 27

Python có rất nhiều module đi kèm và vô số module từ các bên thứ ba để tăngthêm tính năng cho ngôn ngữ như truy cập mạng, hệ thống file, mã hóa, giao diện đồhọa, 3D…

Python có hệ thống documentation rất độc đáo, đi kèm trong code

 Tương thích Windows XP/Vista/Windows 7/Linux

Webcam dùng để lấy khung ảnh cho OpenCV xử lý

2.4 Van điều khiển.

Hình 2 15 Webcam logitech quickcam C905.

Hình 2 16 Van điều khiển.

Trang 28

Van được điều khiển bằng một động cơ giảm tốc DC 12V với hệ thống đóng

mở van được điều khiển thông qua Raspberry Pi B+

Van được cấu tạo bởi:

 Một van nước phổ thông

 Một motor giảm tốc DC 12V

1 Một đầu nối kết nối trục động cơ với van phổ thông

2.5 Các linh kiện điện tử trong hệ thống.

2.5.1 Điện trở.

Điện trở là mộtlinh kiện điện tử thụ động trong mạch điệncó biểu tượng:

Điện trở kháng là đại lượng vật lý đặc trưng cho tính chất cản trở dòng điện củavật liệu Điện trở kháng được định nghĩa là tỉ số của hiệu điện thế giữa hai đầu vật thể

đó với cường độ dòng điện đi qua nó

2.5.2 Tụ Điện.

Tụ điện là một loại linh kiện điện tử thụ động tạo bởi hai bề mặt dẫn điện đượcngăn cách bởi điện môi Khi có chênh lệch điện thế tại hai bề mặt, tại các bề mặt sẽxuất hiện điện tích cùng điện lượng nhưng trái dấu

Sự tích tụ của điện tích trên hai bề mặt tạo ra khả năng tích trữ năng lượngđiệntrường của tụ điện Khi chênh lệch điện thế trên hai bề mặt là điện thế xoay chiều, sựtích luỹ điện tích bị chậm pha so với điện áp, tạo nên trở kháng của tụ điện trong mạchđiện xoay chiều

Hình 2 17 Điện trở.

Trang 29

Hình 2 19 Các loại tụ điện.

Hình 2 18 Ký hiệu của tụ điện trong mạch điện.

Trang 30

2.5.4 Relay (Rơ-le 5 chân).

Rơ-le là một công tắc (khóa K) Nhưng khác với công tắc ở một chỗ cơ bản,

rơ-le được kích hoạt bằng điện thay vì dùng tay người Chính vì lẽ đó, rơ-rơ-le được dùnglàm công tắc điện tử Vì rơ-le là một công tắc nên nó có 2 trạng thái: đóng và mở

Một module rơ-le được tạo nên bởi 2 linh kiện thụ động cơ bản là rơ-le vàtransistor, nên module rơ-le có những thông số của chúng Nói như thế thật phức tạp,nên mình có cách khác và sẽ liệt kê ngay cho bạn ở dưới đây

2.5.5 Diode (Điốt).

Điốt bán dẫn hay Điốt là một loại linh kiện bán dẫn chỉ cho phép dòng điện điqua nó theo một chiều mà không theo chiều ngược lại.Có nhiều loại điốt bán dẫn, nhưđiốt chỉnh lưu thông thường, điốt Zener, LED Chúng đều có nguyên lý cấu tạo chung

là một khối bán dẫn loại P ghép với một khối bán dẫn loại N

Hình 2 20 Transistor thực tế.

Hình 2 21 Rơ le 5V

Trang 31

2.5.6 Diode cầu (KBU1008).

KBU1008 gồm 4 diode đơn mắc thành cầu chỉnh lưu được đóng gói trong một

Module LM2596 3A là loại IC ổn áp nguồn 5V 3A

Hình 2 22 Ký hiệu và một số loại điốt.

Hình 2 23 Diode cầu (KBU1008).

Hình 2 24 LM1117

Trang 32

2.5.9 LED đơn.

LED, viết tắt của Light-Emitting-Diode có nghĩa là “đi-ốt phát sáng”, là mộtnguồn sáng phát sáng khi có dòng điện tác động lên nó Được biết tới từ những nămđầu của thế kỷ 20, công nghệ LED ngày càng phát triển, từ những diode phát sáng đầutiên với ánh sáng yếu và đơn sắc đến những nguồn phát sáng đa sắc, công suất lớn hayphát ra các tia hồng ngoại hoặc tử ngoại

2.6 Tổng quan về OpenCV.

OpenCV (Open Source Computer Vision) là một thư viện mã nguồn mở về thịgiác máy với hơn 500 hàm và hơn 2500 các thuật toán đã được tối ưu về xử lý ảnh, vàcác vấn đề liên quan tới thị giác máy OpenCV được thiết kế một cách tối ưu, sử dụngtối đa sức mạnh của các dòng chip đa lõi… để thực hiện các phép tính toán trong thờigian thực,nghĩa là tốc độ đáp ứng của nó có thể đủ nhanh cho các ứng dụng thôngthường OpenCV là thư viện được thiết kế để chạy trên nhiều nền tảng khác nhau(cross-patform), nghĩa là nó có thể chạy trên hệ điều hành Window, Linux, Mac, iOS

… Việc sử dụng thư viện OpenCV tuân theo các quy định về sử dụng phần mềm mãnguồn mở BSD do đó chúng ta có thể sử dụng thư viện này một cách miễn phí cho cảmục đích phi thương mại lẫn thương mại

Hình 2 25 Module LM2596.

Hình 2 26 Các loại led đơn thường gặp

Trang 33

Dự án về OpenCV được khởi động từ những năm 1999, đến năm 2000 nó đượcgiới thiệu trong một hội nghị của IEEE vềcácvấn đề trong thị giác máy và nhận dạng,tuy nhiên bản OpenCV 1.0 mãi tới tận năm 2006 mới chính thức được công bố và năm

2008 bản 1.1(pre-release) mới được ra đời Tháng 10 năm 2009, bản OpenCV thế hệthứ hai ra đời (thường gọi là phiên bản 2.x), phiên bản này có giao diện của C++ (khácvới phiên bản trước có giao diện của C) và có khá nhiều điểm khác biệt so với phiệnbản thứ nhất

Thư viện OpenCV ban đầu được sự hỗ trợ từ Intel, sau đó được hỗ trợ bởiWillow Garage, một phòng thí nghiệm chuyên nghiên cứu về công nghệ robot Chođến nay, OpenCV vẫn là thư viện mở, được phát triển bởi nguồn quỹ không lợi nhuận(none -profit foundation)và được sự hưởng ứng rất lớn của cộng đồng

2.6.1 Cấu trúc và nội dung OpenCV.

Cấu trúc OpenCV được chia ra làm 5 phần chính, 4 trong số đó được chia ra trong

CXCore chứa cấu trúc và nội dung dữ liệu cơ sở

Hình 2 27 Quá trình phát triển của Open CV.

Trang 34

Hình 2 28 Cấu trúc cơ sở của Open CV 2.6.2 Một số hàm đơn giản thường xuyên sử dụng.

Để đọc và viết các file ảnh, chụp video chuyển đổi giữa các định dạng màu, vàtruy cập dữ liệu điểm ảnh tất cả qua giao diện OpenCV

Đọc và viết một bức ảnh.

Bức ảnh vào/ra thì rất đơn giản trong OpenCV, để đọc file ảnh đơn giản gọihàm cvLoadImage(tên file) OpenCV hỗ trợ hầu hết các định dạng phổ biến kể cảJPEG, PNG và BMP, cvLoadImage() tự động quyết định dạng file thông qua fileHeader

Để viết một bức ảnh đến một file ta dùng hàm cvSaveImage() Hàm này cũng

tự quyết định dạng file định dạng để sử dụng từ tên file mở rộng

Cả cvLoadImage và cvSaveImage đều nằm trong module HighGUI

cvReleaseImage() dùng để thoát khỏi hàm cvLoadImage() Hàm này đưa đến một địachỉ con trỏ giống đầu vào của nó bởi việc nó làm là loại bỏ an toàn (Safe Release) Nóchỉ loại bỏ tấm ảnh này khi là ảnh non-null, khi loại bỏ xong nó đặt giá trị con trỏ về 0.Làm việc với video như làm việc với ảnh nhận từ các frame từ một webcam, haycác thiết bị video số khác thì dễ dàng như tải nó lên từ một file có sẵn Để nhận mộtkhung từ camera ta chỉ việc thay cvCreateFileCapture() bằng hàmcvCreateCameraCature()

Chúng ta có thể tạo cvCaptuer*Object với cvCreateFileCapture(), sử dụngcvQueryFrame () để nhận từng frame và cvWaitkey(33) để chờ 33ms giữa từng frame.Chúng ta sử dụng cvReleaseCapture() để loại bỏ capture khi ngừng sử dụng

Trang 35

Các hàm thực hiện xử lý ảnh.

OpenCV cung cấp các hàm thực hiện xử lý ảnh nằm trong thư viện CV, mộtbức ảnh không chỉ đơn giản là một mảng giá trị màu sắc Sau đây là một số hàm xử lýảnh thường dùng:

o Smoothing (làm mịn) hay còn gọi là blurring nó là một thuật toán xử lý ảnh đơngiản và thường xuyên sử dụng Thường được dùng để loại bỏ nhiễu do máy ảnhsinh ra Smoothing quan trọng khi bạn muốn giảm độ phân giải của một bứcảnh theo rất nhiều cách khác nhau Bằng việc thay thế kiểu smooth và các thông

số sẽ có các bức ảnh tương đối khác nhau tùy theo mục đích nhưng thườngdùng nhất vẫn là CV_GAUSSIAN

o Nhị phân hóa một ảnh là quá trình biến một ảnh xám thành ảnh nhị phân Gọif(x,y) là giá trị cường độ sáng của một điểm ảnh ở vị trí (x,y), T là ngưỡng nhịnhị phân Khi đó, ảnh xám f sẽ được chuyển thành ảnh nhị phân dựa vào côngthức f(x,y) = 0 nếu f(x,y) ≤ T và f(x,y) = 255nếu f(x,y) > T Hàm để chuyển nhịphân hóa ảnh trong OpenCV là hàm threshold()

o Các phép toán hình thái học là những phép toán liên quan tới cấu trúc hình học(hay topo)của các đối tượng trong ảnh Các phép toán hình thái học tiêu biểubao gồm phép giãn nở(dialation) phép co (erosion), phép mở (opening) và phépđóng (closing)

o Phép toán giãn nở (dilation)

Phép toán giãn nở được định A ⊕B=⋃B x v ớ ix⊂ Atrong đó, A là đối tượngtrong ảnh, B là một cấu trúc phần tử ảnh Phép toán này có tác dụng làm cho đốitượng ban đầu trong ảnh tăng lên về kích thước (giản nở ra).Cấu trúc phần tử ảnh(image structuring element) là một hình khối được định nghĩa sẵn nhằm tương tácvới ảnh xem nó có thỏa mãn một số tính chất nào đó không, một số cấu trúc phần

tử hay gặp là cấu trúc theo khối hình vuông và hình chữ thập

Hình 2 29 Cấu trúc phần tử ảnh.

Trang 36

Ứng dụng của phép giãn nở là làm cho đối tượng trong ảnh được tăng lên về kíchthước, các lỗ nhỏ trong ảnh được lấp đầy, nối liền đường biên ảnh đối với những đoạnrời nhỏ …

Phép toán mở (opening) và đóng (closing) là sự kết hợ của phép co

(erosion) và giản (dialation) như trên, chúng được định nghĩa như sau:

Trang 37

Chương 3

PHƯƠNG TIỆN VÀ PHƯƠNG PHÁP NGHIÊN CỨU.

3.1 Đối tượng nghiên cứu.

Tiến hành tìm hiểu hệ thống phát hiện và đếm số lượng cá giống, thiết kế cácmạch động lực, tìm hiểu vài cài đặt hệ điều hành lên Raspberry Pi B+, thiết kế mô hìnhphần cứng và cài chương trình phần mềm OpenCV 2.4 trên Raspberry với ngôn ngữPython

3.2Phương tiện nghiên cứu.

 Webcam

 Phần mềm OpenCV 2.4

 Raspberry Pi B+

 Phần mềm thiết kế mạch Altium designer

 Hệ Raspbian và ngôn ngữ python

3.3 Phương pháp nghiên cứu.

Phương pháp nghiên cứu:

 Tìm hiểu các hệ thống phát hiện và đếm đối tượng

 Tìm hiểu phần mền OpenCV

 Xây dựng các thuật toán xác định và đếm cá giống

 Tìm hiểu về Màn hình LCD (Liquid crystal display)

 Thiết kế mô hình, thiết kế các mạch động lực

 Xây dựng các thuật toán điều khiển sử dụng thư viện OpenCV

Ngày đăng: 21/09/2019, 10:34

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w