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

Khóa luận tốt nghiệp điện – điện tử ứng dụng xử lý ảnh nhận dạng cử chỉ bàn tay điều khiển robot di động

90 3 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

Thông tin cơ bản

Tiêu đề Ứng Dụng Xử Lý Ảnh Nhận Dạng Cử Chỉ Bàn Tay Điều Khiển Robot Di Động
Tác giả Nguyễn Văn Đạt
Người hướng dẫn ThS. Trần Hoàn
Trường học Trường Đại Học Công Nghiệp Thực Phẩm TP. Hồ Chí Minh
Chuyên ngành Công Nghệ Điện – Điện Tử
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2020
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 90
Dung lượng 4,95 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 “Ứng dụng xử lý ảnh nhận dạng cử chỉ bàntay điều khiển robot di động” là mô hình dựa theo ngôn ngữ python với thư viện chínhlà Opencv và được thực hiện trên Kit Ras

Trang 1

KHOA CÔNG NGHỆ ĐIỆN – ĐIỆN TỬ

MSSV: 2002160185

TP HỒ CHÍ MINH, NĂM 2020

Trang 2

KHOA CÔNG NGHỆ ĐIỆN – ĐIỆN TỬ

MSSV: 2002160185

TP HỒ CHÍ MINH, NĂM 2020

Trang 3

KHOA ĐIỆN – ĐIỆN TỬ

PHIẾU GIAO NHIỆM VỤ

(Phiếu này phải đóng vào trang đầu tiên của báo cáo)

1 Họ và tên sinh viên được giao đề tài (Số lượng sinh viên: 1)

(1) Nguyễn Văn Đạt MSSV: 2002160185 Lớp: 07DHDT4

2 Tên đề tài: Ứng dụng xử lý ảnh nhận dạng cử chỉ bàn tay điều khiển robot di động

3 Nhiệm vụ của đề tài:

_ Thực hiện chức năng: nhận dạng cử chỉ bàn tay điều khiển bobot di chuyển: đi thẳng, rẽ

trái, rẽ phải, lùi, dừng lại

_ Cài đặt hệ điều hành và thư viện OpenCV cho Raspberry Pi

_ Nghiên cứu lý thuyết lập trình python, OpenCV

_ Tìm hiểu lý thuyết xử lý ảnh

_ Xây dựng giải thuật nhận dạng cử chỉ bàn tay

_ Chất lượng thực hiện nhận diện bàn tay đáp ứng tốt không bị nhiễu

4 Ngày giao nhiệm vụ đồ án tốt nghiệp: 29/02/2020

5 Ngày hoàn thành và nộp về khoa:

TP.Hồ Chí Minh, ngày 29 tháng 02 năm 2020

Trang 4

Trang 5

Trang 6

Trước hết chúng em xin gửi lời cảm ơn chân thành đến quý thầy cô trường Đạihọc Công Nghiệp Thực Phẩm thành phố Hồ Chí Minh nói chung và quý thầy cô ởkhoa Điện - Điện tử và chuyên ngành Tự Động Hóa nói riêng đã tận tình truyền đạtnhững kiến thức quý giá trong khoảng thời gian em học đại học

Em xin được gửi lời cảm ơn đến thầy Trần Hoàn, thầy đã hướng dẫn và giúp đỡtận tình em nghiên cứu và hoàn thành luận văn tốt nghệp này Những lời nhận xét, gópý và hướng dẫn của thầy đã giúp em có định hướng đúng đắn trong quá trình thực hiệnđề tài, giúp em nhìn ra được ưu khuyết điểm của đề tài và từng bước khắc phục để có

được kết quả tốt nhất Xin gửi đến thầy lời chúc sức khỏe và ngày càng thành công

trên trên mục giảng

Em xin gửi lời cảm ơn chân thành đến quý Thầy/Cô đã dành thời gian quý báu đểnhận xét và chấm Luận văn tốt nghiệp Đây sẽ là nhưng đóng góp rất quý giá cho emđể hoàn thiện và phát triển đề tài ngày một tốt hơn

Sau cùng, con xin bày tỏ lòng biết ơn sâu sắc tới Mẹ, Ba, Chị, Em những người

đã luôn luôn động viên, ở bên con trong những lúc khó khăn nhất, là động lực cho con

nỗ lực cố gắng trong suốt những năm tháng học tập tại trường và trên những bướcđường tiếp theo trong cuộc sống

TP Hồ Chí Minh, ngày 14 tháng 08 năm 2020

Tác giả

Nguyễn Văn Đạt

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP

THỰC PHẨM TP HỒ CHÍ MINH

KHOA ĐIỆN – ĐIỆN TỬ

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập - Tự do - Hạnh phúc

Trang 7

TÓM TẮT ĐỀ TÀI

Ngày nay, các mô hình xe, máy bay và robot đang ngày càng phổ biến trongnghiên cứu và đào tạo Các thiết bị này thường được vận hành tự động hoặc điều khiểntrực tiếp bởi con người Nhờ vào sự tiến bộ của công nghệ xử lý hình ảnh, ngày càngnhiều các thiết bị có khả năng ghi nhận cử chỉ tay và chuyển đổi thành các tínhiệu có thể xử lý bằng máy tính Đề tài “Ứng dụng xử lý ảnh nhận dạng cử chỉ bàntay điều khiển robot di động” là mô hình dựa theo ngôn ngữ python với thư viện chínhlà Opencv và được thực hiện trên Kit Raspberry và Kit Arduino Wifi ESP826 WeMosD1 Xử lý ảnh ở đây sẽ được nhận dạng theo ngưỡng của bàn tay để điều khiển robotthông qua cử chỉ tay Kết quả nghiên cứu cho thấy cho thấy tính ổn định trong việcđiều khiển các mô hình robot bằng cử chỉ tay

MỤC LỤ

Trang 8

MỤC LỤC i

DANH MỤC KÝ HIỆU, CỤM TỪ VIẾT TẮT iv

DANH MỤC BẢNG BIỂU v

DANH MỤC HÌNH ẢNH vi

Chương 1: TỔNG QUAN VỀ ĐỀ TÀI 1

1.1 Đặt vấn đề 1

1.2 Mục tiêu 1

1.3 Phạm vi của luận văn tốt nghiệp 1

1.4 Tổng quan về các nghiên cứu liên quan 2

1.4.1 Nhận dạng bàn tay dựa vào màu sắc và hình dáng 2

1.4.2 Nhận dạng dựa vào ngưỡng trên mỗi kênh màu 2

1.4.3 Optical Flow 3

1.4.4 Phương pháp trừ nền 3

1.5 Ý nghĩa khoa học và thực tiễn của đề tài 3

Chương 2: CƠ SỞ LÝ THUYẾT 5

2.1 Giới thiệu về hệ thống xử lý ảnh 5

2.2 Những vấn đề cơ bản trong hệ thống xử lý ảnh 7

2.2.1 Điểm ảnh (Picture Element) 7

2.2.2 Độ phân giải của ảnh 8

2.2.3 Mức xám của ảnh 8

2.2.4 Định nghĩa ảnh số 11

2.2.5 Chỉnh mức xám 11

2.2.6 Kỹ thuật năng cao chất lượng ảnh 11

2.2.7 Kỹ thuật biến đổi ảnh 12

2.2.8 Kỹ thuật phân tích ảnh 12

2.2.9 Kỹ thuật nhận dạng ảnh 12

2.3 Các phương pháp xử lý ảnh số 12

2.3.1 Chuyển ảnh màu RGB thành ảnh mức xám ( Gray level) 12

2.3.2 Phương pháp lọc nhiễu ảnh 13

2.3.3 Phân vùng ảnh 14

2.3.4 Phương pháp phân vùng ảnh 14

2.3.5 Khái niệm biên 14

Trang 9

2.4 Máy tính nhúng Raspberry Pi 15

2.4.1 Giới thiệu về Raspberry Pi 3 15

2.4.2 Màn hình LCD 3,5 inch Raspberry Pi 17

2.4.3 Module camera (Camera Module 5MP Raspberry Pi ) 17

2.5 Ngôn ngữ python và thư viện Opencv 18

2.5.1 Giới thiệu ngôn ngữ lập trình python ( python 2.7) 18

2.5.2 Thư viện Opencv 20

2.5.2.1 Chức năng có trong thư viện OpenCV 20

2.5.2.2 Ứng dụng OpenCV trong thực tế 21

2.6 Board UNO WIFI - WeMos D1 23

2.6.1 Giới thiệu board UNO WIFI 23

2.6.2 Lập trình cho board Arduino UNO WiFi 25

2.7 Module điều khiển động cơ L298 26

2.7.1 Module điều khiển động cơ L298 26

2.7.2 Nguyên lý hoạt động 27

2.8 Động cơ giảm tốc 30

2.9 Bánh xe 30

Chương 3: CƠ SỞ THỰC HIỆN 32

3.1 Thiết kế sơ đồ khối hệ thống 32

3.2 Sơ đồ kết nối hệ thống 33

3.3 Lưu đồ giải thuật 35

3.3.1 Các bước truy cập và lập trình trên python 35

3.3.1.1 Hiển thị lên màng hình laptop qua Wifi 36

3.3.1.2 Hiển thị qua cáp ethernet 40

3.3.2 Lưu đồ giải thuật nhận dạng cử chỉ bàn tay 43

3.3.3 Lưu đồ giải thuật điều khiển robot di động 53

3.4 Bảng vẽ cơ khí 60

Chương 4: KẾT QUẢ THỰC NGHIỆM 61

Chương 5: KẾT LUẬN VÀ ĐỊNH HƯỚNG ĐỀ TÀI 67

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

5.2 Hạn chế 67

5.3 Hướng phát triển của đề tài 67

PHỤ LỤC 68

Code chương trình nhận diện bàn tay 68

Trang 10

Code điều khiển robot 74

Giới thiệu phần mềm sử dụng: phần mềm ARDUINO IDE 80

Hướng dẫn cài đặt phần mềm 80

TÀI LIỆU THAM KHẢO 85

Trang 11

DANH MỤC KÝ HIỆU, CỤM TỪ VIẾT TẮT

RGB Red Green Blue

IDE Integrated Development Environment

OpenCV Open Source Computer Vision

PEL (Picture Element) hay gọi tắt là Pixel

Trang 12

DANH MỤC BẢNG BIỂU

Trang 13

DANH MỤC HÌNH ẢNH

Hình 1.1: Hình minh họa kết quả thuật toán trừ nền 3

Hình 2.1: Các bước cơ bản trong xử lý ảnh 5

Hình 2.2: Điểm ảnh (pixel - picture element) 8

Hình 2.3: Minh họa mức xám sau khi mã hóa 9

Hình 2.4: Minh họa ảnh nhị phân sau khi mã hóa 9

Hình 2.5: Không gian màu HSV 10

Hình 2.6: Không gian màu RGB 10

Hình 2.7: Raspberry Pi 3 Model B 15

Hình 2.8: Sơ đồ của Raspberry Pi 3 16

Hình 2.9: Màn hình cảm ứng 3.5 inch 17

Hình 2.10: Module camera raspberry pi 17

Hình 2.11: Ngôn ngữ lập trình python trên Raspberry 18

Hình 2.12: Hệ thống tên lửa tích hợp quang hồng ngoại 21

Hình 2.13: Ứng dụng opencv trong lĩnh vực hàng không 22

Hình 2.14: Xử lý ảnh trong phòng chống tội phạm 22

Hình 2.15: Board UNO WiFi (WeMos D1) 23

Hình 2.16: Sơ đồ chân ESP8266MOD 24

Hình 2.17: Phần mềm Arduino IDE 25

Hình 2.18: Mạch điều khiển động cơ DC L298 26

Hình 2.19: Nguyên lý hoạt động 27

Hình 2.20: Trường hợp thứ nhất A ở mức LOW và B ở mức HIGH 28

Hình 2.21: Trường hợp thứ hai A ở mức HIGH và B ở mức LOW 29

Hình 2.22: Động cơ giảm tốc GA25 12V 280 rpm 30

Hình 2.23: Bánh xe 65mm khớp lục giác 31

Hình 3.1: Sơ đồ khối phần cứng 32

Hình 3.2: Sơ đồ kết nối thực tế Raspberry Pi 33

Hình 3.3: Gắn thẻ nhớ vào khe thực tế 34

Hình 3.4: Sơ đồ đấu dây 35

Hình 3.5: Tìm IP của Raspberry Pi 36

Hình 3.6: Nhập IP của Raspberry vào Putty 36

Trang 14

Hình 3.7: Màng hình Terminal xuất hiện 37

Hình 3.8: Nhập thông tin đăng nhập 37

Hình 3.9: Kết nối từ xa dành cho máy chủ Desktop 38

Hình 3.10: Mở Remote Desktop Connection có sẵn trong windows 38

Hình 3.11: Connect vào Raspberry 39

Hình 3.12: Đăng nhập vào màng hình Raspberry 39

Hình 3.13: Raspberry hiển thị lên màng hình laptop 40

Hình 3.14: Hiển thị Raspberry lên màng hình laptop qua cáp ethernet 40

Hình 3.15: Kết nối ethernet với laptop ở IP động 41

Hình 3.16: Tìm IP ethernet 41

Hình 3.17: Connect vào Raspberry qua cáp ethernet 42

Hình 3.18: Gọi chương trình python qua cửa sổ Terminal 42

Hình 3.19: Lưu đồ giải thuật nhận dạng cử chỉ bàn tay 43

Hình 3.20: Khung hình đầu vào 44

Hình 3.21: Cắt một góc khung hình chứa phần bàn tay (top, bottom, left, right) 44

Hình 3.22: Vẽ ô màu có kích thước (top, bottom, left, right) ra màng hình 45

Hình 3.23: Chuyển đổi ảnh BGR sang dạng ảnh xám 45

Hình 3.24: Lọc GaussianBlur làm mờ ảnh 46

Hình 3.25: Lấy ảnh theo ngưỡng 47

Hình 3.26: Đóng khung chữ nhật vùng xuất hiện bàn tay 47

Hình 3.27: Tim đường viền 48

Hình 3.28: Biến đổi khoảng cách để phát hiện tâm và số ngón tay 48

Hình 3.29: Vẽ tâm C 49

Hình 3.30: Vẽ đường tròn tâm C 49

Hình 3.31: Tìm các đoạn cắt nhau để tìm số ngón tay (cv2.bitwise_and) 50

Hình 3.32: Vẽ đường viền để tìm số khe giữa các ngón 50

Hình 3.33: Vẽ bao lồi xung quanh ngón tay 51

Hình 3.34: Điều kiện để tính khe giữa các ngón tay 51

Hình 3.35: Tìm khuyết tật lồi 52

Hình 3.36: Gửi và nhận giao tiếp UDP ESP8266 53

Hình 3.37: Lưu đồ giải thuật điều khiển robot di động 54

Hình 3.38: Gửi và nhận tín hiệu cho robot: (a) là cử chỉ bàn tay dừng 55

Trang 15

Hình 3.39: Gửi và nhận tín hiệu cho robot: (a) là cử chỉ bàn tay tiến 56

Hình 3.40: Gửi và nhận tín hiệu cho robot: (a) là cử chỉ bàn tay lùi 57

Hình 3.41: Gửi và nhận tín hiệu cho robot: (a) là cử chỉ bàn tay rẽ trái 58

Hình 3.42: Gửi và nhận tín hiệu cho robot: (a) là cử chỉ bàn tay rẽ phải 59

Hình 3.43: Bảng vẽ cơ khí 60

Hình 4.1: Kết quả cử chỉ tay robot dừng (stop) 61

Hình 4.2: Kết quả cử chỉ tay robot tiến (up) 62

Hình 4.3: Kết quả cử chỉ tay robot lùi (down) 63

Hình 4.4: Kết quả cử chỉ tay robot rẽ trái (left) 64

Hình 4.5: Kết quả cử chỉ tay robot rẽ phải (right) 65

Hình 4.6: Mô hình khi hoàn thành 66

Trang 16

Chương 1: TỔNG QUAN VỀ ĐỀ TÀI

1.1 Đặt vấn đề

Trong những năm gần đây, các ứng dụng về trí tuệ nhân tạo ngày càng pháttriển và được đánh giá cao Một lĩnh vực đang được quan tâm của trí tuệ nhân tạonhằm tạo ra các ứng dụng thông minh, mang tính tri thức con người đó là nhận dạng.Với sự phát triển mạnh mẽ của công nghệ và nhu cầu của con người ngày càng cao.Một bài toán được đặt ra là: Làm sao có thể điều khiển máy tính, các thiết bị giải trí,robot…bằng những cử chỉ, hành động và lời nói của con người Nhận dạng hình ảnhvà âm thanh là một giải pháp để giải quyết bài toán này và một phần nhỏ trong lĩnhvực đó là nhận dạng cử chỉ bàn tay

Lý do chủ quan khi chọn đề tài: Những năm gần đây robot là một trong nhữngthế mạnh của Khoa Và em muốn làm sao để trở nên mạnh hơn nữa về công nghệ chếtạo robot thông minh Để lại một cái gì đó quý báu cho những sinh viên khóa sau củatrường phát triển tốt hơn về các công nghệ cao và các ngành khác liên quan

1.2 Mục tiêu

 Nhận dạng cử chỉ tay xây dựng chương trình điều khiển như sau:

 No hand: Không có bàn tay (Robot không di chuyển)

 “Up”: Ngón tay thứ nhất trong bàn tay (Robot di chuyển về phía trước)

 “Down”: Ngón tay thứ hai trong bàn tay (Robot di chuyển về phía sau)

 “Left”: Ngón tay thứ ba trong bàn tay (Robot di chuyển sang trái)

 “Right”: Ngón tay thứ tư trong bàn tay (Robot di chuyển sang phải)

 Nghiên cứu lý thuyết lập trình python, OpenCV

 Tìm hiểu lý thuyết xử lý ảnh

 Xây dựng giải thuật nhận dạng cử chỉ bàn tay

1.3 Phạm vi của luận văn tốt nghiệp

Đề tài được nghiên cứu dựa trên nền tảng các kiến thức cơ bản về ngôn ngữ lậptrình và vi điều khiển được học ở trường, cùng với việc tự tìm hiểu và học hỏi của cáctài liệu đi trước Hệ thống điều khiển của robot được thực hiện dựa trên máy tínhnhúng Raspberry pi 3 kết nối với camera pi và chương trình được viết bằng Python

Trang 17

Do giới hạn về kiến thức của bản thân nên mục tiêu hướng đến đề tài là làm sao đểrobot di động một cách cơ bản nhất có thể.

1.4 Tổng quan về các nghiên cứu liên quan

Bàn tay con người có cấu trúc xương phức tạp bao gồm rất nhiều khớp nối vớinhau Vì số bậc tự do của bàn tay người là rất lớn nên việc nhận dạng cử chỉ bàn taytrở nên một thách thức lớn Có nhiều nghiên cứu về nhận dạng cử chỉ với các giảithuật khác nhau như: nhận dạng phép trừ nền, dựa vào màu sắc, hình dáng, các đặctrưng của bàn tay, optical flow, mean shift…

1.4.1 Nhận dạng bàn tay dựa vào màu sắc và hình dáng

Màu da là một đặc trưng quan trọng để định vị và tracking bàn tay người Tuynhiên thuật toán dựa trên màu da phải đối mặt với khó khăn đó là phải phân biệt đốitượng có màu tương tự với bàn tay như khuôn mặt và cánh tay người Để giải quyếtvấn đề này, người sử dụng phải mặc áo sơ mi dài và phải hạn chế trong khung nềntrong đó màu sắc các đối tượng không được tương đồng với màu da người Thuật toánnày cũng rất nhạy với các điều kiện chiếu sáng khác nhau Khi điều kiện ánh sángkhông đáp ứng yêu cầu thì bộ nhận dạng thường không nhận ra bàn tay

Wuetal đã đề xuất thuật toán bám theo đối tượng dựa trên màu sắc không ổnđịnh bằng cách học hai phương pháp biểu diễn khác nhau cho sự phân bố màu sắc vàgọi thuật toán mới này là structure adaptive self-organizing map (SASOM) Kết quảtrong việc định vị bàn tay đã chỉ ra rằng thuật toán có thể kiểm soát tốt một vài điểmkhó trong tracking đối tượng có màu sắc không ổn định

1.4.2 Nhận dạng dựa vào ngưỡng trên mỗi kênh màu

Thuật toán dựa trên đặc trưng bàn tay trích xuất đặc trưng trong một vùng ảnhnhất định như đầu ngón tay hoặc biên bàn tay, và sử dụng một vài phương pháp suyluận để tìm ra hình dạng hoặc kết hợp những đặc trưng cụ thể để tạo nên một cử chỉbàn tay

Đối với cách tiếp cận dựa trên đặc trưng bàn tay, việc phân đoạn những ảnhkhông bị nhiễu là bước cần thiết để phục hồi những đặc trưng của bàn tay Đây khôngphải là nhiệm vụ dễ dàng khi gặp phải những ảnh nền phức tạp

Trang 18

1.4.4 Phương pháp trừ nền

Bàn tay được phát hiện bằng phương pháp trừ nền, sử dụng thuật toán

“codebook” của thư viện OpenCV

Các điểm đầu mút được phát hiện bằng thuật toán “convex hull 2”, các điểmlõm được phát hiện bằng thuật toán “convexity defect”

Dựa vào số điểm lồi và lõm người ta sẽ biết được số ngón tay được đưa lên

Hình 1.1: Hình minh họa kết quả thuật toán trừ nền 1.5 Ý nghĩa khoa học và thực tiễn của đề tài

Đưa ra một bản lý thuyết với các nội dung tìm hiểu, các phép toán hình tháitrong xử lý ảnh và nhận dạng cử chỉ bàn tay của con người Nhằm mục đích góp mộtphần vào lĩnh vực ứng dụng của nhận dạng, cụ thể hơn ở đây là có thể ứng dụng vào

Trang 19

việc điều khiển di chuyển robot… Ứng với mỗi cử chỉ bàn tay thì robot sẽ xử lý tiến,lùi, qua phải hay qua trái.

Trang 20

Chương 2: CƠ SỞ LÝ THUYẾT2.1 Giới thiệu về hệ thống xử lý ảnh

Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ Nó là một ngànhkhoa học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rấtnhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyêndụng riêng cho nó

Xử lý ảnh được đưa vào giảng dạy ở bậc đại học ở nước ta khoảng chục nămnay Nó là môn học liên quan đến nhiều lĩnh vực và cần nhiều kiến thức cơ sở khác.Đầu tiên phải kể đến xử lý tín hiệu số là một môn học hết sức cơ bản cho xử lý tín hiệuchung, các khái niệm về tích chập, các biến đổi Fourier, biến đổi Laplace, các bộ lọchữu hạn… Thứ hai, các công cụ toán như đại số tuyến tính, xác suất thống kê Một sốkiến thứ cần thiết như trí tuệ nhân tạo, mạng nơron nhân tạo cũng được đề cập trongquá trình phân tích và nhận dạng ảnh

Để dễ tưởng tượng, xét các bước cần thiết trong xử lý ảnh Đầu tiên, ảnh tựnhiên từ thế giới ngoài được thu nhận qua các thiết bị thu (như camera, máy chụp ảnh).Trước đây, ảnh thu qua camera là các ảnh tương tự (loại camera ống kiểu CCIR) Gầnđây, với sự phát triển của công nghệ, ảnh màu hoặc đen trắng được lấy ra từ camera,sau đó nó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo (máyảnh số hiện nay là một thí dụ gần gũi)

Mặt khác, ảnh cũng có thể tiếp nhận từ vệ tinh; có thể quét từ ảnh chụp bằngmáy quét ảnh

Hình 2.1: Các bước cơ bản trong xử lý ảnh

Trang 21

 Phần thu nhận ảnh (Image Acquisition):

Ảnh có thể nhận qua camera màu hoặc đen trắng Thường ảnh nhận qua cameralà ảnh tương tự, cũng có loại camera đã số hoá Camera thường dùng là loại quét dòng,ảnh tạo ra có dạng hai chiều Chất lượng một ảnh thu nhận được phụ thuộc vào thiết bịthu, vào môi trường (ánh sáng, phong cảnh…)

 Tiền xử lý (Image Processing):

Sau bộ thu nhận, ảnh có thể nhiễu độ tương phản thấp nên cần đưa vào bộ tiềnxử lý để nâng cao chất lượng Chức năng chính của bộ tiền xử lý là lọc nhiễu, nâng độtương phản để làm ảnh rõ hơn, nét hơn

 Phân đoạn (Segmentation) hay phân vùng ảnh:

Phân vùng ảnh là tách một ảnh đầu vào thành các vùng thành phần để biểu diễnphân tích, nhận dạng ảnh Đây là phần phức tạp khó khăn nhất trong xử lý ảnh vàcũng dễ gây lỗi, làm mất độ chính xác của ảnh Kết quả nhận dạng ảnh phụ thuộc rấtnhiều vào công đoạn này

 Biểu diễn ảnh (Image Representation):

Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phân đoạn)cộng với mã liên kết với các vùng lận cận Việc biến đổi các số liệu này thành dạngthích hợp là cần thiết cho xử lý tiếp theo bằng máy tính Việc chọn các tính chất để thểhiện ảnh gọi là trích chọn đặc trưng (Feature Selection) gắn với việc tách các đặc tínhcủa ảnh dưới dạng các thông tin định lượng hoặc làm cơ sở để phân biệt lớp đối tượngnày với đối tượng khác trong phạm vi ảnh nhận được

 Nhận dạng và nội suy ảnh (Image Recognition and Interpretation):

Nhận dạng ảnh là quá trình xác định ảnh Quá trình này thường thu được bằngcách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước Nội suy là phán đoántheo ý nghĩa trên cơ sở nhận dạng Theo lý thuyết về nhận dạng, các mô hình toán họcvề ảnh được phân theo hai loại nhận dạng ảnh cơ bản:

 Nhận dạng theo tham số

 Nhận dạng theo cấu trúc

Trang 22

Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng trongkhoa học và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhậndạng văn bản (text), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người…

 Cơ sở tri thức (Knowledge Base):

Như đã nói ở trên, ảnh là một đối tượng khá phức tạp về đường nét, độ sáng tối,dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu Trong nhiềukhâu xử lý và phân tích ảnh ngoài việc đơn giản hóa các phương pháp toán học đảmbảo tiện lợi cho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận và xử lý ảnhtheo cách của con người Trong các bước xử lý đó, nhiều khâu hiện nay đã xử lý theocác phương pháp trí tuệ con người

 Mô tả (biểu diễn ảnh):

Ảnh sau khi số hóa sẽ được lưu vào bộ nhớ, hoặc chuyển sang các khâu tiếptheo để phân tích Nếu lưu trữ ảnh trực tiếp từ các ảnh thô, đòi hỏi dung lượng bộ nhớcực lớn và không hiệu quả theo quan điểm ứng dụng và công nghệ Thông thường, cácảnh thô đó được đặc tả (biểu diễn) lại (hay đơn giản là mã hoá) theo các đặc điểm củaảnh được gọi là các đặc trưng ảnh (Image Features) như: biên ảnh (Boundary), vùngảnh (Region)

2.2 Những vấn đề cơ bản trong hệ thống xử lý ảnh

2.2.1 Điểm ảnh (Picture Element)

Gốc của ảnh (ảnh tự nhiên): là ảnh liên tục về không gian và độ sáng Để xử lýbằng máy tính (số), ảnh cần phải được số hóa Số hóa ảnh là sự biến đổi gần đúng mộtảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí (không gian) và độ sáng(mức xám) Khoảng cách giữa các điểm ảnh đó được thiết lập sao cho mắt ngườikhông phân biệt được ranh giới giữa chúng Mỗi một điểm như vậy gọi là điểm ảnh(PEL: Picture Element) hay gọi tắt là Pixel Trong khuôn khổ ảnh hai chiều, mỗi pixelứng với cặp tọa độ (x, y)

Định nghĩa: Điểm ảnh (Pixel) là một phần tử của ảnh số tại tọa độ (x, y) với độxám hoặc màu nhất định Kích thước và khoản cách giữa các điểm ảnh đó được chọnthích hợp sao cho mắt người cảm nhận sự liên tục về không gian và mức xám (hoặc

Trang 23

màu) của ảnh số gần như ảnh thật Mỗi phần tử trong ma trận được gọi là một phần tửảnh.

Một file ảnh là tập hợp nhiều điểm ảnh, thông thường một hình ảnh được chiathành các hàng và cột chứa điểm ảnh Điểm ảnh là thành phần bé nhất biểu diễn ảnh,

có giá trị số biểu diễn màu sắc, độ sáng… của một thành phần trong bức ảnh

Hình 2.2: Điểm ảnh (pixel - picture element) 2.2.2 Độ phân giải của ảnh

Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh được ấn định trên mộtảnh số được hiển thị Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được chọnsao cho mắt người vẫn thấy được sự liên tục của ảnh Việc lựa chọn khoảng cách thíchhợp tạo nên một mật độ phân bổ, đó chính là độ phân giải và được phân bố theo trục xvà y trong không gian hai chiều

2.2.3 Mức xám của ảnh

Một điểm ảnh (pixel) có hai đặc trưng cơ bản là vị trí (x, y) của điểm ảnh và độxám của nó Dưới đây chúng ta xem xét một số khái niệm và thuật ngữ thường dùngtrong xử lý ảnh

Mức xám của điểm ảnh là cường độ sáng của nó được gán bằng giá trị số tạiđiểm đó Các thang giá trị mức xám thông thường:16, 32, 64, 128, 256 (mức 256 là

Trang 24

mức phổ dụng Lí do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức xám:Mức xám dùng 1 byte biểu diễn 2^8 = 256 mức (tức là từ 0 đến 255).

Hình 2.3: Minh họa mức xám sau khi mã hóa

Ảnh đen trắng: là ảnh có hai màu đen, trắng (không chứa màu khác) với mứcxám ở các điểm ảnh có thể khác nhau

Ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt, tức dùng 1bit mô tả 21mức khác nhau Nói cách khác mỗi điểm ảnh của ảnh nhị phân chỉ có thể là 0 hoặc 1

Hình 2.4: Minh họa ảnh nhị phân sau khi mã hóa

Trang 25

 Không gian màu HSV (HSB): Không gian màu HSV (còn gọi là HSB) là mộtcách tự nhiên hơn để mô tả màu sắc, dựa trên 3 số liệu:

 H: (Hue) Vùng màu

 S: (Saturation) Độ bão hòa màu

 B (hay V): (Bright hay Value) Độ sáng

Hình 2.5: Không gian màu HSV

 Ảnh màu RGB: trong khuôn khổ lý thuyết ba màu (Red, Blue, Green) để tạonên thế giới màu, người ta thường dùng 3 byte để mô tả mức màu, khi đó cácgiá trị màu là 28*3 = 224 = 16,7 triệu màu

Hình 2.6: Không gian màu RGB

Trang 26

 Tăng số mức xám: Thực hiện nội suy ra các mức xám trung gian bằng kỹ thuậtnội suy Kỹ thuật này nhằm tăng cường độ mịn cho ảnh.

2.2.6 Kỹ thuật năng cao chất lượng ảnh

Nâng cao chất lượng là bước cần thiết trong xử lý ảnh nhằm hoàn thiện một sốđặc tính của ảnh Nâng cao chất lượng ảnh gồm hai công đoạn khác nhau: tăng cườngảnh và khôi phục ảnh Tăng cường ảnh nhằm hoàn thiện các đặc tính của ảnh như:

 Lọc nhiễu, hay làm trơn ảnh

 Tăng độ tương phản, điều chỉnh mức xám của ảnh

 Làm nổi biên ảnh

Tăng cường ảnh không phải là làm tăng lượng thông tin vốn có trong ảnh làmnổi bật các đặt trưng đã chọn Tức điều chỉnh mức xám của điểm ảnh Dùng phươngpháp ánh xạ làm thay đổi giá trị điểm sáng

Khôi phục ảnh bao gồm quá trình lọc ảnh, khử nhiễu do môi trường bên ngoàihay các hệ thống thu nhận, phát hiện và lưu trữ ảnh thu được, thông qua các bọ lọctrong miền không gian và trong miền biến đổi Nhằm làm giảm bớt các biến dạng đểkhôi phục lại ảnh giống như ảnh gốc

Kỹ thuật nâng cao chất lượng ảnh gồm: các kỹ thuật không phụ thuộc vàokhông gian và các kỹ thuật phụ thuộc vào không gian

Trang 27

 Kỹ thuật không phụ thuộc vào không gian bao gồm các phép như: tăng giảm độsáng, tách ngưỡng, bó cụm, cân bằng histogram, tách ngưỡng tự động, biến đổicấp xám tổng thể,

 Kỹ thuật phụ thuộc vào không gian bao gồm các phép như: phép cuộn và mẫu,lọc trung vị, lọc trung bình,…

2.2.7 Kỹ thuật biến đổi ảnh

Thuật ngữ biến đổi ảnh thường dùng để nói tới một lớp các ma trận đơn vị, vàcác kỹ thuật dùng để biến đổi ảnh làm giảm thứ nguyên của ảnh để việc xử lý ảnhđược hiệu quả hơn Có nhiều loại biến đổi được dùng như: biến đổi Fourier, Sin,Cosin,…

2.2.8 Kỹ thuật phân tích ảnh

Phân tích ảnh liên quan đến việc xác định các độ đo định lượng của một ảnh đểđưa ra một mô tả đầy đủ về ảnh Nhằm mục đích xác định biên của ảnh Có nhiều kỹthuật khác nhau như lọc vi phân hay dò theo quy hoạch động Người ta cũng dụng các

kỹ thuật để phân vùng ảnh Từ ảnh thu được, người ta tiến hành kỹ thuật tách hay hợpdựa theo cách tiêu chuẩn đánh giá như: màu sắc cường độ …Phương pháp được biếtđến các kỹ thuật phân lớp dựa theo cấu trúc

2.2.9 Kỹ thuật nhận dạng ảnh

Nhận dạng ảnh là quá trình liên quan đến các mô tả đối tượng mà người tamuốn đặt tả nó Quá trình nhận dạng thường đi sau quá trình trích chọn các đặc tínhchủ yếu của đối tượng Có hai kiểu mô tả đối tượng:

 Mô tả tham số ( nhận dạng theo tham số)

 Mô tả theo cấu trúc ( nhận dạng theo cấu trúc)

Người ta đã áp dụng kỹ thuật nhận dạng khá thành công với nhiều đối tượngkhác nhau như: nhận dạng ảnh vân tay, nhận dạng chữ (chữ cái, chữ số, chữ có dấu)

2.3 Các phương pháp xử lý ảnh số

2.3.1 Chuyển ảnh màu RGB thành ảnh mức xám ( Gray level)

Ảnh gốc thường là ảnh màu 24bit màu nên khó nhận dạng ta cần phải chuyển

Trang 28

về ảnh xám dữ liệu 8bit để dễ nhận dạng hơn Nghĩa là mỗi pixel được biểu diễn 256 cấp độ xám theo công thức:

X = 0,2125*R + 0,7145*G + 0,0721*BQuá trình chuyển đổi mức xám tuy có làm mất đi một số thông tin nhưng cũng

có thể chấp nhận được

2.3.2 Phương pháp lọc nhiễu ảnh

Ảnh thu được thường sẽ bị nhiễu nên cần phải loại bỏ nhiễu Ccá toán tử khônggian dùng trong kỹ thuật tăng cường ảnh được phân nhóm theo công dụng: làm trơnnhiễu, nổi biên Đễ làm trơn nhiễu hay tách nhiễu, người ta sử dụng các bộ lọc tuyếntính (lọc trung bình, thông thấp) hoặc loạc phi tuyến (trung vị, giả trung vị, lọc đồnghình) Từ bản chất của nhiễu (thường tương ứng với tần số cao) và từ cơ sở lý thuyếtlọc là: bộ lọc chỉ cho tín hiệu có tầng số nào đó thông qua, để lọc nhiễu người tathường dùng thông thấp (theo quan điểm tầng số không gian) hay lấy tố hợp tuyến tínhđể san bằng (lọc trung bình) Để làm nổi cạnh (ứng với tầng số cao), người ta dùng bộlọc thông cao, lọc Laplace Phương pháp lọc nhiễu Chia làm 2 loại: Lọc tuyến tính vàlọc phi tuyến

Làm trơn nhiễu bằng lọc tuyến tính: Khi chụp ảnh có thể xuất hiện nhiều loạinhiễu vào quá trình xử lý ảnh, nên ta cần phải lọc nhiễu Gồm các phương pháp cơ bảnlọc trung bình, lọc thông thấp,…Ví dụ lọc trung bình: Mỗi điểm ảnh được thay thếbằng trung bình trọng số của các điểm lân cận

Làm trơn nhiễu bằng lọc phi tuyến: Các bộ lọc phi tuyến cũng hay được dùngtrong kỹ thuật tăng cường ảnh Một số phương pháp lọc cơ bản bộ lọc trung vị, lọcngoài, Với lọc trung vị, điểm ảnh đầu vào sẽ được thay thế bởi trung vị các điểm ảnhcòn lọc giả trung vị sẽ dùng trung bình cộng của hai giá trị “trung vị” (trung bình cộngcủa max và min)

Lọc trung vị: Kỹ thuật này đòi hỏi giá trị các điểm ảnh trong cửa sổ phải xếptheo thứ tự tăng hay giảm dần so với día trị trung vị Kích thước cửa sổ thường chọnsao cho số điểm ảnh trong cửa sổ là lẻ

Trang 29

2.3.3 Phân vùng ảnh

Phân vùng ảnh là bước then chốt trong xử lý ảnh Giai đoạn này nhằm phân tíchảnh thành những thành phần có cùng tính chất nào đó dựa theo biên hay các vùng liênthông Tiêu chuẩn để xác định các vùng liên thông có thể là cùng mức xám, cùng màuhay cùng độ nhám Trước hết cần làm rõ khái niệm "vùng ảnh" (Segment) và đặc điểmvật lý của vùng

Vùng ảnh là một chi tiết, một thực thể trông toàn cảnh Nó là một tập hợp cácđiểm có cùng hoặc gần cùng một tính chất nào đó: mức xám, mức màu, độ nhám…Vùng ảnh là một trong hai thuộc tính của ảnh Nói đến vùng ảnh là nói đến tính chất bềmặt Đường bao quanh một vùng ảnh (Boundary) là biên ảnh Các điểm trong mộtvùng ảnh có độ biến thiên giá trị mức xám tương đối đồng đều hay tính kết cấu tươngđồng

Dựa vào đặc tính vật lý của ảnh, người ta có nhiều kỹ thuật phân vùng: phânvùng dựa theo miền liên thông gọi là phân vùng dựa theo miền đồng nhất hay miền kề;phân vùng dựa vào biên gọi là phân vùng biên Ngoài ra còn có các kỹ thuật phân vùngkhác dựa vào biên độ, phân vùng dựa theo kết cấu

2.3.4 Phương pháp phân vùng ảnh

Để phân tích các đối tượng trong ảnh, chúng ta cần phân biệt được các đốitượng cần quan tâm với phần còn lại của ảnh Những đối tượng này có thể tìm đượcnhờ các kỹ thuật phân đoạn ảnh, theo nghĩa tách phần tiền ảnh ra hậu ảnh

Có thể hiểu phân vùng là tiến trình chia ảnh thành nhiều vùng, mỗi vùng chứamột đối tượng hay một nhóm đối tượng cùng kiểu Chẳng hạn, một đối tượng có thể làmột kí tự trên 1 trang văn bản hoặc một đoạn thẳng trong một bản vẽ kỹ thuật hoặcmột nhóm đối tượng có thể biểu diễn một từ hay một đoạn thẳng tiếp xúc nhau

2.3.5 Khái niệm biên

Biên là một vấn đề chủ yếu trong phân tích ảnh vì các kỹ thuật ảnh chủ yếu dựavào biên Một điểm ảnh có thể coi là biên nếu ở đó có sự thay đổi đột ngột về mứcxám Tập hợp các điểm tạo thành biên hay đường bao của ảnh

Trang 30

2.4 Máy tính nhúng Raspberry Pi

2.4.1 Giới thiệu về Raspberry Pi 3

Raspberry Pi là cái máy tính kích cỡ như một chiếc thẻ ATM và chạy HĐHLinux Được phát triển bởi Raspberry Pi Foundation – là tổ chức phi lợi nhuận với tiêuchí xây dựng hệ thống mà nhiều người có thể sử dụng được trong những công việc tùybiến khác nhau Raspbian là một hệ điều hành thuận tiện cho việc cài đặt và sử dụngvới sự hỗ trợ lớn từ cộng đồng mã nguồn mở trên thế giới

Hình 2.7: Raspberry Pi 3 Model B

 Chi tiết về thông số kỹ thuật ( Raspberry Pi 3 ):

 Bộ xử lý Broadcom BCM2837 tốc độ xử lý 1.2 GHz 64-bit quad-core ARMCortex-A53

 Mạng Wireless LAN chuẩn 802.11 b/g/n

 Bluetooth 4.1 (Class & Low Energy)

 Bộ xử lý đa phương tiện Videocore IV® Multimedia

 Bộ nhớ RAM 1GB

 Hỗ trợ tất cả các bản phân khối ARM GNU/Linux distributions

 Đầu nối microusb cho nguồn điện 2.5A 5VDC

 1×10/100 Ethernet port

Trang 31

 1 x RCA video/audio connector

Hình 2.8: Sơ đồ của Raspberry Pi 3

 Ưu điểm của Raspberry Pi:

 Hiện nay Raspberry Pi có giá thành khá rẻ cùng kích thước vô cùng nhỏ gọn

 Với việc tiêu thụ năng lượng rất thấp, Raspberry Pi chính là thiết bị siêu tiếtkiệm điện

 Được thiết kế có GPU mạnh

 Những thiết bị này có thể phục vụ cho nhiều mục đích sử dụng khác nhau

 Raspberry Pi có khả năng hoạt động liên tục không ngừng nghỉ

 Có thể được lập trình bằng nhiều ngôn ngữ lập trình

 Nhược điểm của Raspberry Pi:

 CPU cấu hình thấp

Trang 32

 Không tích hợp Wifi nếu muốn sử dụng phải mua thêm USB Wifi.

Để có thể sử dụng thiết bị này yêu cầu người dùng phải có kiến thức cơ bản vềLinux, điện tử

 Đầu Nối HDMI Raspberry Pi 3B/B+ 1.4

2.4.3 Module camera (Camera Module 5MP Raspberry Pi )

Hình 2.10: Module camera raspberry pi

Trang 33

Không tốn thêm cổng USB nào cho camera vì camera được gắn chắc chắn vàosocket CSI Điều này giúp hạn chế tình trạng nghẽn băng thông cho chip xử lý USBtrên mạch Raspberry Chiều dài cáp nối camera đã được tính toán cẩn thận khi vừa đạtđược độ dài cần thiết trong khi vẫn đảm bảo tốc độ truyền hình ảnh từ module về RPi.

 Thông số kỹ thuật:

 Module Camera V1 cho Raspberry Pi

 Cảm biến: OV5647

 Độ phân giải: 5MP

 Độ phân giải hình: 2592x1944 pixel

 Quay phim HD 1080P 30, 720P 60, VGA 640x480P 60

 Lens: Fixed Focus

 Conector: Ribon conector

 Kích thước: 25x24x9mm

2.5 Ngôn ngữ python và thư viện Opencv

2.5.1 Giới thiệu ngôn ngữ lập trình python ( python 2.7)

Hình 2.11: Ngôn ngữ lập trình python trên Raspberry

Python là ngôn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ, được tạo rabởi Guido van Rossum Nó dễ dàng để tìm hiểu và đang nổi lên như một trong những

Trang 34

ngôn ngữ lập trình nhập môn tốt nhất cho người lần đầu tiếp xúc với ngôn ngữ lậptrình Python hoàn toàn tạo kiểu động và sử dụng cơ chế cấp phát bộ nhớ tự động.Python có cấu trúc dữ liệu cấp cao mạnh mẽ và cách tiếp cận đơn giản nhưng hiệu quảđối với lập trình hướng đối tượng Cú pháp lệnh của Python là điểm cộng vô cùng lớn

vì sự rõ ràng, dễ hiểu và cách gõ linh động làm cho nó nhanh chóng trở thành mộtngôn ngữ lý tưởng để viết script và phát triển ứng dụng trong nhiều lĩnh vực, ở hầu hếtcác nền tảng

Tính năng chính của ngôn ngữ lập trình python:

Ngôn ngữ lập trình đơn giản, dễ học: Python có cú pháp rất đơn giản, rõ ràng

Nó dễ đọc và viết hơn rất nhiều khi so sánh với những ngôn ngữ lập trình khác như C++, Java, C# Python làm cho việc lập trình trở nên thú vị, cho phép bạn tập trung vàonhững giải pháp chứ không phải cú pháp

Miễn phí, mã nguồn mở: Bạn có thể tự do sử dụng và phân phối Python, thậmchí là dùng cho mục đích thương mại Vì là mã nguồn mở, bạn không những có thể sửdụng các phần mềm, chương trình được viết trong Python mà còn có thể thay đổi mãnguồn của nó Python có một cộng đồng rộng lớn, không ngừng cải thiện nó mỗi lầncập nhật

Khả năng di chuyển: Các chương trình Python có thể di chuyển từ nền tảng nàysang nền tảng khác và chạy nó mà không có bất kỳ thay đổi nào Nó chạy liền mạchtrên hầu hết tất cả các nền tảng như Windows, macOS, Linux

Khả năng mở rộng và có thể nhúng: Giả sử một ứng dụng đòi hỏi sự phức tạprất lớn, bạn có thể dễ dàng kết hợp các phần code bằng C, C++ và những ngôn ngữkhác (có thể gọi được từ C) vào code Python Điều này sẽ cung cấp cho ứng dụng củabạn những tính năng tốt hơn cũng như khả năng scripting mà những ngôn ngữ lập trìnhkhác khó có thể làm được

Ngôn ngữ thông dịch cấp cao: Không giống như C/C++, với Python, bạn khôngphải lo lắng những nhiệm vụ khó khăn như quản lý bộ nhớ, dọn dẹp những dữ liệu vônghĩa, Khi chạy code Python, nó sẽ tự động chuyển đổi code sang ngôn ngữ máytính có thể hiểu Bạn không cần lo lắng về bất kỳ hoạt động ở cấp thấp nào

Trang 35

Thư viện tiêu chuẩn lớn để giải quyết những tác vụ phổ biến: Python có một sốlượng lớn thư viện tiêu chuẩn giúp cho công việc lập trình của bạn trở nên dễ thở hơnrất nhiều, đơn giản vì không phải tự viết tất cả code Ví dụ: Bạn cần kết nối cơ sở dữliệu MySQL trên Web server? Bạn có thể nhập thư viện MySQLdb và sử dụng nó.Những thư viện này được kiểm tra kỹ lưỡng và được sử dụng bởi hàng trăm người Vìvậy, bạn có thể chắc chắn rằng nó sẽ không làm hỏng code hay ứng dụng của mình.

Hướng đối tượng: Mọi thứ trong Python đều là hướng đối tượng Lập trìnhhướng đối tượng (OOP) giúp giải quyết những vấn đề phức tạp một cách trực quan.Với OOP, bạn có thể phân chia những vấn đề phức tạp thành những tập nhỏ hơn bằngcách tạo ra các đối tượng

2.5.2 Thư viện Opencv

OpenCV (OpenSource Computer Vision) là một thư viện mã nguồn mở OpenCVđược phát hành theo giấy phép BSD, do đó nó hoàn toàn miễn phí cho cả học thuật vàthương mại Nó có các interface C++, C, Python, Java và hỗ trợ Windows, Linux, Mac

OS, iOS và Android OpenCV được thiết kế để tính toán hiệu quả và với sự tập trungnhiều vào các ứng dụng thời gian thực Được viết bằng tối ưu hóa C/C++, thư viện cóthể tận dụng lợi thế của xử lý đa lõi Được sử dụng trên khắp thế giới, OpenCV cócộng đồng hơn 47 nghìn người dùng và số lượng download vượt quá 6 triệu lần

Hiện tại bản em đang nghiên cứu thư viện OpenCV là bản 2.4.13

Cài đặt OpenCV 2 trên Raspberry Pi, nhập lệnh sau trong Terminal:

$ sudo apt-get install python-opencv

2.5.2.1 Chức năng có trong thư viện OpenCV

Thư viện OpenCV bao gồm một số tính năng nổi bật như:

 Bộ công cụ hỗ trợ 2D và 3D

 Nhận diện khuôn mặt

 Nhận diện cử chỉ

 Nhận dạng chuyển động, đối tượng, hành vi

 Tương tác giữa con người và máy tính

Trang 36

 Điều khiển Robot

2.5.2.2 Ứng dụng OpenCV trong thực tế

 Trong quân sự:

Các hệ thống tích hợp quang hồng ngoại có khả năng tự động điều khiển dànhỏa lực (pháo, tên lửa) được lắp đặt cho các trận địa cao xạ, trên xe tăng, tàu chiến,máy bay, tên lửa hoặc vệ tinh (Hình 2.10) Chúng được thay thế và hỗ trợ các dàn rada

dễ bị nhiễu trong việc tự động phát hiện, cảnh giới, bám bắt mục tiêu Đặc biệt cónhững loại lắp trên máy bay có khả năng điều khiển hỏa lực đánh phá hàng chục mụctiêu một lúc Ngoài ra còn phải kể đến các đầu tự dẫn tên lửa và đạn thông minh

Hình 2.12: Hệ thống tên lửa tích hợp quang hồng ngoại

 Trong nghiên cứu y sinh dược học:

Các kính hiển vi có khả năng tự động nhận dạng và đo đếm các tế bào với độchính xác cao Các kính hiển vi có hệ thống dẫn đường laser cho phép thực hiện nhữngphẫu thuật rất phức tạp như mổ u não, nơi mà một sự không chính xác cỡ mm cũnggây tổn hại đến các dây thần kinh chằng chịt xung quanh

 Trong lĩnh vực hàng không vũ trụ:

Hệ thống quang điện tử đóng vai trò của các thị giác máy (machine vision) cókhả năng tự động đo đạc kiểm tra chất lượng sản phẩm trong các dây truyền sản xuất:phân loại hạt ngũ cốc, cà phê; tìm lỗi lắp ráp linh kiện các bản vi mạch và khuyết tật

Trang 37

các mối hàn và động cơ Các hệ thống quang điện tử cũng được ứng dụng ngày càngnhiều trong giao thông như đo tốc độ, tự động kiểm soát điều khiển và phân luồng giaothông.

Hình 2.13: Ứng dụng opencv trong lĩnh vực hàng không

 Trong an ninh, phòng chống tội phạm, bảo vệ pháp luật:

Các hệ thống camera nhận dạng khuôn mặt vân tay tự động cũng như phát hiện,theo dõi, cảnh báo các âm mưu và hoạt động khủng bố Các xe robot tự hành có gắncác camera cũng được ứng dụng trong các môi trường độc hại, dò phá bom mìn

Hình 2.14: Xử lý ảnh trong phòng chống tội phạm

Trang 38

 Trong công nghiệp giải trí truyền hình:

Các hệ thống tích hợp có thể điều khiển các camera kích thước và khối lượnglớn dễ dàng tự động bám theo các đối tượng chuyển động nhanh như bóng đang bay,đua xe

2.6 Board UNO WIFI - WeMos D1

2.6.1 Giới thiệu board UNO WIFI

Hiện nay, nhu cầu nghiên cứu ESP8266 và điều khiển từ xa qua Internet ngàycàng lớn Có rất nhiều cách để kêt nối ESP8266 vào Internet, và đề tài tôi hướng đến

sẽ là điều khiển robot qua internet dùng Wemos

Hình 2.15: Board UNO WiFi (WeMos D1)

Phục vụ như một bộ chuyển đổi Wi-Fi, truy cập internet không dây có thể đượcthêm vào bất kỳ thiết kế dựa trên vi điều khiển nào với kết nối đơn giản thông qua giaodiện UART, giao diện cầu AHB hoặc UDP của CPU

Trang 39

Hình 2.16: Sơ đồ chân ESP8266MOD

Thông số kỹ thuật:

 32-bit RISC CPU : Tensilica Xtensa LX106 chạy ở xung nhịp 80 MHz

 Hổ trợ Flash ngoài từ 512KB đến 4MB

 64KBytes RAM thực thi lệnh

 96KBytes RAM dữ liệu

 64KBytes boot ROM

 Chuẩn wifi EEE 802.11 b/g/n, Wi-Fi 2.4 GHz

 Tích hợp TR switch, balun, LNA, khuếch đại công suất và matching network

 Hổ trợ WEP, WPA/WPA2, Open network

Trang 40

 Dải nhiệt độ hoạt động rộng : -40C ~ 125C

2.6.2 Lập trình cho board Arduino UNO WiFi

Hình 2.17: Phần mềm Arduino IDE

Một chương trình được viết với Arduino IDE được gọi là một bản phác thảo.Bản phác thảo được lưu trên máy tính phát triển dưới dạng tệp văn bản có đuôi tệp.ino.Arduino Software (IDE) trước 1.0 bản phác thảo đã lưu với phần mở rộng

Yêu cầu của một chương trình:

 Setup( ): Chức năng này được gọi một lần khi bản phác thảo bắt đầu sau khi bậtnguồn hoặc thiết lập lại Nó được sử dụng để khởi tạo biến, chế độ ghim đầuvào và đầu ra, và các thư viện khác cần thiết trong bản phác thảo

 Loop( ): Sau khi setup( )thoát khỏi hàm (kết thúc), loop( )hàm được thực hiệnlặp lại trong chương trình chính Nó điều khiển bảng cho đến khi bo mạch tắthoặc được đặt lại

Ngày đăng: 22/09/2023, 14:40

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] A.D. Bagdanov, A. Del Bimbo, L. Seidenari and L. Usai (November 2012),“Real-time hand status recognition from RGB-D imagery”, in Proceedings of the 21st International Conference on Pattern Recognition, ISBN: 2456–2459 Sách, tạp chí
Tiêu đề: Real-time hand status recognition from RGB-D imagery
[2] M. R. Malgireddy, J. J. Corso, S. Setlur, V. Govindaraju and D. Mandalapu (August 2010), “A framework for hand gesture recognition and spotting using sub- gesture modeling”, in Proceedings of the 20th International Conference on Pattern Recognition (ICPR '10), ISBN: 3780–3783 Sách, tạp chí
Tiêu đề: A framework for hand gesture recognition and spotting using sub-gesture modeling
Tác giả: M. R. Malgireddy, J. J. Corso, S. Setlur, V. Govindaraju, D. Mandalapu
Nhà XB: Proceedings of the 20th International Conference on Pattern Recognition (ICPR '10)
Năm: 2010
[3] Y. Wang, C. Yang, X. Wu, S. Xu and H. Li (August 2012), “Kinect based dynamic hand gesture recognition algorithm research”, in Proceedings of the 4th International Conference on Intelligent Human-Machine Systems and Cybernetics (IHMSC '12), ISBN: 274–279 Sách, tạp chí
Tiêu đề: Kinect baseddynamic hand gesture recognition algorithm research
[4] A. Shimada, T. Yamashita and R - I. Taniguchi (February 2013), “Hand gesture based TV control system - towards both user - & machine-friendly gesture applications”, in Proceedings of the 19th Korea-Japan Joint Workshop on Frontiers of Computer Vision (FCV '13), ISBN: 121–126 Sách, tạp chí
Tiêu đề: Hand gesturebased TV control system - towards both user - & machine-friendly gestureapplications
[5] Zhi-hua Chen, Jung-Tae Kim, Jianning Liang, Jing Zhang and Yu-Bo Yuan (2014). “Real-Time Hand Gesture Recognition Using Finger Segmentation”. The Fundamental Research Funds for the Central Universities. ISSN: 1923-4007, 3(7), 36- 43 Sách, tạp chí
Tiêu đề: Real-Time Hand Gesture Recognition Using Finger Segmentation
Tác giả: Zhi-hua Chen, Jung-Tae Kim, Jianning Liang, Jing Zhang and Yu-Bo Yuan
Năm: 2014
[6] Athiya Marium, Deepthi Rao, Divina Riya Crasta, Kavya Acharya, Rio D'Souza (2017). “Hand Gesture Recognition using Webcam. American Journal of Intelligent Systems”. Department of Computer Science and Engineering, St Joseph Engineering College, Mangaluru, India. American Journal of Intelligent Systemsp- ISSN: 2165-8978 e-ISSN: 2165-8994 Sách, tạp chí
Tiêu đề: Hand Gesture Recognition using Webcam
Tác giả: Athiya Marium, Deepthi Rao, Divina Riya Crasta, Kavya Acharya, Rio D'Souza
Nhà XB: American Journal of Intelligent Systems
Năm: 2017
[7] Vincent Mühler (Sep 5, 2017). “Simple Hand Gesture Recognition using OpenCV and JavaScript”, Medium, ISBN: 978-604-93-8961-0, 3-16 Sách, tạp chí
Tiêu đề: Simple Hand Gesture Recognition usingOpenCV and JavaScript
[8] Chao Hy Xiang Wang, Mrinal K. Mandal, Max Meng and Donglin Li (2003),"Efficient Face and Gesture Recognition Techniques for Robot Control", CCECE, 1757-1762 Sách, tạp chí
Tiêu đề: Efficient Face and Gesture Recognition Techniques for Robot Control
Tác giả: Chao Hy Xiang Wang, Mrinal K. Mandal, Max Meng and Donglin Li
Năm: 2003
[9] AsanterabiMalima, ErolOzgur and Mujdat Cetin (2006), "A Fast Algorithm for Vision-Based Hand Gesture Recognition for Robot Control", IEEE International Conference on Computer Vision Sách, tạp chí
Tiêu đề: A Fast Algorithm forVision-Based Hand Gesture Recognition for Robot Control
Tác giả: AsanterabiMalima, ErolOzgur and Mujdat Cetin
Năm: 2006
[10] Harish Kumar Kaura, VipulHonrao, SayaliPatil, PravishShetty, "Gesture Controlled Robot using Image Processing", IJARAI 2013, Volume 2 No 5, Page 69- 77 Sách, tạp chí
Tiêu đề: GestureControlled Robot using Image Processing
[11] Amiraj Dhawan, Anuradha Bhat, Soumya Sharma, Harish Kumar Kaura,"Automated Robot with Object Recognition and Handling Features", IJECSE Volume 2, Number 3, 2013, Page 861-873.Tài liệu tiếng Việt Sách, tạp chí
Tiêu đề: Automated Robot with Object Recognition and Handling Features
[15] lzane/Fingers-Detection-using-OpenCV-and-Python:https://github.com/lzane/Fingers-Detection-using-OpenCV-and-Python Sách, tạp chí
Tiêu đề: Fingers Detection using OpenCV and Python
Tác giả: lzane
Nhà XB: GitHub
Năm: 2025
[16] amarlearning/Finger-Detection-and-Tracking:https://github.com/amarlearning/Finger-Detection-and-Tracking[17]Opencv python nhận dạng cử chỉ tay Sách, tạp chí
Tiêu đề: Finger Detection and Tracking
Tác giả: amarlearning
Nhà XB: GitHub
[12] NGUYỄN VĂN DŨNG (2005). Nhận dạng bàn tay điều khiển robot di động. Luận văn đại học, Đại học Bách Khoa TP.Hồ Chí Minh Khác
[13] NGUYỄN THỊ PHƯƠNG HÀ (2007), Lý thuyết điều khiển hiện đại, nhà xuất bản đại học quốc gia TP.Hồ Chí Minh Khác
[14] NGUYỄN ANH DŨNG (2012), Điều khiển xe lăn bằng cử chỉ tay, Luận văn tốt nghiệp, Đại học Bách Khoa TP.Hồ Chí Minh.Các website đã tham khảo Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Hình minh họa kết quả thuật toán trừ nền 1.5 Ý nghĩa khoa học và thực tiễn của đề tài - Khóa luận tốt nghiệp điện – điện tử  ứng dụng xử lý ảnh nhận dạng cử chỉ bàn tay điều khiển robot di động
Hình 1.1 Hình minh họa kết quả thuật toán trừ nền 1.5 Ý nghĩa khoa học và thực tiễn của đề tài (Trang 18)
Hình 3.4: Sơ đồ đấu dây - Khóa luận tốt nghiệp điện – điện tử  ứng dụng xử lý ảnh nhận dạng cử chỉ bàn tay điều khiển robot di động
Hình 3.4 Sơ đồ đấu dây (Trang 50)
Hình 3.15: Kết nối ethernet với laptop ở IP động - Khóa luận tốt nghiệp điện – điện tử  ứng dụng xử lý ảnh nhận dạng cử chỉ bàn tay điều khiển robot di động
Hình 3.15 Kết nối ethernet với laptop ở IP động (Trang 56)
Hình 3.21: Cắt một góc khung hình chứa phần bàn tay (top, bottom, left, right) - Khóa luận tốt nghiệp điện – điện tử  ứng dụng xử lý ảnh nhận dạng cử chỉ bàn tay điều khiển robot di động
Hình 3.21 Cắt một góc khung hình chứa phần bàn tay (top, bottom, left, right) (Trang 59)
Hình 3.28: Biến đổi khoảng cách để phát hiện tâm và số ngón tay (distanceTranform) - Khóa luận tốt nghiệp điện – điện tử  ứng dụng xử lý ảnh nhận dạng cử chỉ bàn tay điều khiển robot di động
Hình 3.28 Biến đổi khoảng cách để phát hiện tâm và số ngón tay (distanceTranform) (Trang 63)
Hình 3.37: Lưu đồ giải thuật điều khiển robot di động - Khóa luận tốt nghiệp điện – điện tử  ứng dụng xử lý ảnh nhận dạng cử chỉ bàn tay điều khiển robot di động
Hình 3.37 Lưu đồ giải thuật điều khiển robot di động (Trang 69)
Hình 4.2: Kết quả cử chỉ tay robot tiến (up) - Khóa luận tốt nghiệp điện – điện tử  ứng dụng xử lý ảnh nhận dạng cử chỉ bàn tay điều khiển robot di động
Hình 4.2 Kết quả cử chỉ tay robot tiến (up) (Trang 77)
Hình 4.3: Kết quả cử chỉ tay robot lùi (down) - Khóa luận tốt nghiệp điện – điện tử  ứng dụng xử lý ảnh nhận dạng cử chỉ bàn tay điều khiển robot di động
Hình 4.3 Kết quả cử chỉ tay robot lùi (down) (Trang 78)
Hình 4.4: Kết quả cử chỉ tay robot rẽ trái (left) - Khóa luận tốt nghiệp điện – điện tử  ứng dụng xử lý ảnh nhận dạng cử chỉ bàn tay điều khiển robot di động
Hình 4.4 Kết quả cử chỉ tay robot rẽ trái (left) (Trang 79)
Hình 4.5: Kết quả cử chỉ tay robot rẽ phải (right) - Khóa luận tốt nghiệp điện – điện tử  ứng dụng xử lý ảnh nhận dạng cử chỉ bàn tay điều khiển robot di động
Hình 4.5 Kết quả cử chỉ tay robot rẽ phải (right) (Trang 80)
Hình 4.6: Mô hình khi hoàn thành - Khóa luận tốt nghiệp điện – điện tử  ứng dụng xử lý ảnh nhận dạng cử chỉ bàn tay điều khiển robot di động
Hình 4.6 Mô hình khi hoàn thành (Trang 81)

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