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

Khóa luận tốt nghiệp Kỹ thuật máy tính: Robot vận chuyển hàng tự động

59 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Robot vận chuyển hàng tự động
Tác giả Nguyễn Hoài Tú, La Quốc Thống
Người hướng dẫn TS. Phạm Quốc Hựng
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Kỹ thuật máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 59
Dung lượng 34,52 MB

Nội dung

Chúng em sẽ tìm hiểu về các yêu cầu cụ thể của hệ thống bao gồmtải trọng dé xuất của xe có thé vận chuyên vật có khối lượng từ lkg trở lại với khanăng di chuyền linh hoạt chủ yếu dựa vào

Trang 1

ĐẠI HỌC QUÓC GIA TP HÒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KỸ THUẬT MÁY TÍNH

NGUYÊN HOÀI TÚ

LA QUOC THONG

KHOA LUAN TOT NGHIEP ROBOT VAN CHUYEN HANG TU DONG

AUTONOMOUS DELIVERY ROBOT

KY SU KY THUAT MAY TiNH

GIANG VIEN HUONG DAN

TS Pham Quốc Hùng

TP HO CHÍ MINH, 2023

Trang 2

LỜI CẢM ƠN

Qua 16 tuần làm khóa luận tốt nghiệp, mặc dù thời gian không dài nhưng nó

đã mang lại cho chúng em nhiều kinh nghiệm quý báu và kiến thức mới từ nhữngquá trình nghiên cứu và tìm hiểu trong suốt quá trình thực hiện khóa luận, được

hướng dẫn và hỗ trợ tận tâm từ các thầy cô giáo.

Chúng em xin bày tỏ lòng biết ơn chân thành đến toàn thé quý thầy cô trongKhoa Kỹ thuật Máy tính, Trường Đại học Công nghệ Thông tin - Đại học Quốc gia

Hồ Chí Minh Đặc biệt, chúng tôi muốn gửi lời cảm ơn đặc biệt tới thầy Phan Đình

Duy và thầy Phạm Quốc Hùng đã hỗ trợ, chi dẫn và hướng dẫn chúng em dé hoàn

thành khóa luận này một cách tốt nhất

Tuy kiến thức của chúng em vẫn còn hạn chế và đây là lần đầu tiên chúng tôi

thực hiện một khóa luận, vì vậy chúng em không tránh khỏi những sai sót Chúng

em rất mong nhận được sự đóng góp ý kiến từ quý thầy cô dé khóa luận của chúng

tôi có thê được hoàn thiện và cải thiện hơn.

Một lần nữa, chúng em xin chân thành cảm ơn tới toàn thể quý thầy cô đãdành thời gian, kiến thức và sự hỗ trợ cho chúng em trong quá trình thực hiện khóaluận tốt nghiệp này

Trang 3

98V 904:090.0009)007 1

(9100 2Chương 1 TONG QUAN - -2-©52252‡SE‡EE2E2EEEE1E2121121171711211211 7111.211 3

1.1 Tình hình trong và ngoai HƯỚC -©-szerxerrrrxetrrxerrrrkrrrrkerrrrrerrrresrie 3

1.2 Nhiing van dé cOm c0 41.3 Những van dé cần tập trung giải quyết :.ecccerrrreeccevrrrrrcee 5Chương 2 NGHIÊN CỨU THỰC NGHIỆM - 2-2 5+2++++£x++zx+zxez 6

2.2.2 Motor bánh XC «xe gi hư 23

2.2.3 Module mạch cầu H L/298N 2:++ceecSvEEtieevvvtrrrriree 23

2.2.4 Khung xe 4 bánh «sec nhà hành Hy 25

Trang 4

2.2.5 Motor DC giảm tốc JGB37-550 essessssssssssssessssssessssnssssessssessesnsessssee 25

2.2.6 Khung nâng e s<- set E131 HH Hy HH Hàng Hy 27

;z⁄x 8s» .- ÔỎ 27

PHAN TÍCH THIẾT KE HE THÓNG - - + s+s+£+£++E+EeEzxxeẻ 29

Môi trường hoạt động của RObOI -cccecerierrrrirrrriirrriirrrrrrrrrree 29

Tổng quan các thành phần của hệ thống -ss.+ccs+ 30

Phân tích Image processing ee 55ccsecxEErEEksikkkritkeiiririeerieee 32

Phân tích thiêt kế thuật toán line following ss-. ccssrse 33Phân tích thiêt kế thuật toán mã QR s2.+ccsttzcesrrree+ 35Phân tích thiết kế thuật toán vận chuyền hàng 36Phân tích thiết kế giao điện người dùng :cceccceerirresseerre 37KET QUA THỰC NGHIỆỆM 2+ SE EE£EE+E+EEEEerEerkerkerkrei 39

Mô hình Robot 4 bánh -22.-.2+cc2tt+++£2EEEEEEttrerEEEErrrrrrrrrrrrrrrrze 39

Giao diện khi xe đang hoạt động . -c e+eceeereerersererrree 41

Đánh giá phần cứng khi chạy thử nghiệm - c-e::cesecerr 42

Kịch bản chạy thực nghiỆm sccxerseriekrrEketriitrrtrireriirrree 46

A.A.L Kich barn ao nh (4322B)HR 464.4.2 Kết quả kịch bản -22-+ecs+eevztrervErtervrrrrrtrtrrrtrrrrrrrrrrte 47PHƯƠNG HƯỚNG PHÁT TRIÊN -2- 2:22 ©5+2cx2cxvzzesrxs 48

000 ,Ô 48

Hurong phat trién 0000377 49

TAI LIEU THAM KHAO cccccssssssssscsececsescecscsesecscsvsucacsvsucecsvsrcecassesucaravsesacaveneacens 51

Trang 5

DANH MỤC HÌNH

Hình 2.1 Hệ điều hành Raspbian -22- 2 2 SE2E£2EE+EE£EEEEEEEEEEEEEEEEEErrkrrkerkeeg 7

Hình 2.2 Thresholding [44] - - -cS< E32 333111311339 138 111111111111 Eerkre 10

Hình 2.3 VE COTIfOUT - 7 5 110 TH nh 12

Hình 2.4 Không gian mau HSV [5] - - c1 13913911 1 ng re 15

Hình 2.5 Xác định line . - -< E1 1101221011101 111221111 nn ng 111kg key 16

Hình 2.6 Cau tạo mã QR [6] -¿ 7222c+2EEvvttttEEktrrrttrkrrrtrttrrrrrrrrrrrrrieg 18

Hình 2.7 giao diện truy cập VNC eeecccescessseceseceeseeeeseeeeeesseeceeeeeaeeesaeeesaeeeseeesaes 21 Hình 2.8 Máy tính nhúng Raspberry Pi 4 sàng ikt 22

Hình 2.9 Motor điện quay bánh Xe - - 5 + +11 HH ng gưkt 23

Hình 2.10 Module mach cầu H L298N điều khiển motor - -:-:-: 24

Hình 2.11 Khung xe robot 4 bánh - - - + 2c 1831133 E9 EEEEESErrerreereeeeresre 25 Hình 2.12 Động cơ DC JGB3/7-55 Ghi gưn 26 Hình 2.13 Khung nâng - 4 2E 11v HT HH ng Hư, 27

Hình 2.14 Pin sạc 1865Ö ng TT TH Hà HH Hàng hư 28

Hình 3.1 Sơ đồ môi trường hoạt động - 2 2 x++E2E£+EE+EE+EEzEzEkrrxerxerex 29

Hình 3.2 Sơ đồ cài đặt phần cứng hệ thống -2- 22 +¿©+©+++zx+zxczxesrez 30

Hình 3.3 Sơ đồ các thành phan hệ thống -2- 22 +¿+£2+++£x++zxzxesrsz 31

Hình 3.4 Sơ đồ Image processing - 2 2 + Sx‡EEEEESEEEEEEEEEEEEEEEEerkrrkerkrree 32

Hình 3.5 Line flolÏOWITE - - SG 311111 HH TH HH HH, 33

Hình 3.6 Quét mã QR eee sscsseessecsecsseessecseesseeseessecseesseessecaeeeeseesseeseesaeenseens 35

Hình 3.7 Sơ đồ giải thuật - - 2-52 S<S22EE2E2EE2EEE1E71211211211211211 111111111 36

Hình 3.8 Giao diện người đùng - s1 1H HH nghe 37

Hình 4.1 Tầng dưới kết nối các module của Xe . -¿- 2 + ++2s++s+z++zxzsz 39

Trang 6

Hình 4.2 Khung xe góc nhìn tong quan - 2 2 +2£2S£+£E+£E+zEzE++zxerxezsz 40

Hình 4.3 Khung xe góc nhìn ngang - - << + 3k ng kê 40

Hình 4.4 VỊ trí đặt camera trÊn Xe - 2 E3 3 22211111 1 223111 11119531111 key, 4I

Hình 4.5 Giao diện xe di chuyên sau khi chọn kệ hàng - 5+ +++<+++<<+ 41

Hình 4.6 Camera đang quét mã Ñ - c2 2213233211321 EEErrerrrrrkrrre 42

Hình 4.7 Thiết kế môi trường hoạt động cho robot . 2 2 ¿+ s£s+zs2 +2 46

Trang 7

DANH MỤC BANG

Bảng 4.1 Đánh gia tín hiệu rẽ khi xe Chay -. 5 5c 325 3x **vsserseerreereerererrre 42 Bảng 4.2 Đánh giá mức độ hoạt động khi xe tải hàng .- s55 <+<<<+<<ss2 43 Bảng 4.3 Đánh gia mức độ hoạt động khi xe tai hàng với PWM 50 44

Bảng 4.4 Đánh gia mức độ hoạt động khi xe tải hàng với PWM 70 45

Trang 8

DANH MỤC TỪ VIET TAT

OpenCV: Open Source Computer Vision Library

HLS: H: Hue, L: Lightness va S: Saturation

CYMK: Cyan, Magenta, Yellow, Key/Black

RBG: Red Blue Green

HSV: H: (Hue) S: (Saturation) V: (Value)

HSB: H: (Hue) S: (Saturation) B (hay V): (Bright)

QR: Quick response code

MIPI DSI: Mobile Industry Processor Interface Display Serial Interface MIPI CSI: Mobile Industry Processor Interface Camera Serial Interface POE: Power over Ethernet

RC: Remote Control Motor

Trang 9

TÓM TẮT KHÓA LUẬN

Đề tài nghiên cứu về robot vận chuyền hàng tự động được lựa chọn với mụctiêu xây dựng một hệ thống hiệu qua và an toàn dé tự động vận chuyên hàng hóa

trong một môi trường nhất định Van đề này được đặt ra với các yếu tố thúc day từ

sự phát triên của công nghệ và nhu câu tôi ưu hóa quy trình vận chuyên.

Các hướng tiép cận nghiên cứu trong dé tai bao gdm nghiên cứu về câu trúc

và thiệt kê robot, phát triên phân mêm điêu khiên, xây dựng hệ thông quản lý nhiệm

vụ, nghiên cứu vê an toàn và tương tác với con người, cùng với việc thử nghiệm va

đánh giá hiệu suất của hệ thống

Các kết quả nghiên cứu bao gồm xây dựng thành công một hệ thống robotvận chuyên hàng tự động, đánh giá hiệu suất và khả năng của hệ thống thông quathử nghiệm và so sánh, cũng như đề xuất các cải tiến và phương pháp tối ưu hóa để

nâng cao hiệu suât và khả năng của hệ thông.

Tổng kết lại, đề tài nghiên cứu robot vận chuyên hàng tự động tập trung vào

việc xây dựng và nghiên cứu công nghệ đề tạo ra một hệ thống robot hiệu quả và an

toàn trong việc vận chuyên hàng hóa Qua quá trình nghiên cứu, hy vọng có thé đạt

được các kết quả về xây dựng hệ thống, đánh giá hiệu suất và khả năng, cải tiễn và

áp dụng thực tế của robot vận chuyền hàng tự động

Trang 10

MỞ ĐẦU

Ngày nay với sự phát triển của khoa học công nghệ đã thúc day nhu cầu cungứng tăng cao, các nhà máy phải cải thiện năng suất tối đa nhất có thể thì sự ứngdụng các khoa học công nghệ tiên tiến là phương pháp giải quyết bài toán đó Cụ

thé hơn, việc ứng dung robot vào các công việc nặng nhọc trong các dây chuyền sản

xuất, những công việc may tính rủi ro cho con người mà robot có thê thay thé hoặc

đặc biệt hơn là công việc hoạt động liên tục không cần nghỉ ngơi Do đó chúng em

quyết định chọn đề tài là tìm hiểu về công nghệ và giải pháp để thiết kế và xây dựng

hệ thống robot vận chuyền hàng tự động Đề tài sẽ nghiên cứu các thuật toán va

phương pháp điều khién robot dé đảm bảo việc vận chuyển hàng hóa một cách hiệuquả và an toàn Mục tiêu cuối cùng là xây dựng một hệ thống robot vận chuyền

hàng tự động có thê hoạt động không cần sự can thiệp của con người với hiệu suất

hoạt động cao.

Đối tượng nghiên cứu trong đề tài bao gồm robot vận chuyên hàng tự động,

hệ thống điều khiển robot và môi trường làm việc của robot cho việc di chuyểncũng như vận chuyên hàng hóa Phạm vi nghiên cứu sẽ tập trung vào xác định yêu

cầu vận chuyền hàng tự động, thiết kế và xây dựng hệ thống robot và thử nghiệm

hiệu suất của nó Chúng em sẽ tìm hiểu về các yêu cầu cụ thể của hệ thống bao gồmtải trọng dé xuất của xe có thé vận chuyên vật có khối lượng từ lkg trở lại với khanăng di chuyền linh hoạt chủ yếu dựa vào môi trường hoạt động có thé thay đồi (cóthé thay đôi vi trí các line cũng như nơi đặt hàng), bên cạnh đó về thời gian vậnchuyên nên đạt được 3 phút từ nơi lấy hàng về nơi đặt hàng (ước tính đối với

khoảng cách 3m) và độ chính xác khi di chuyên theo line cũng như khả năng vận

chuyên hàng phụ thuộc vào môi trường hoạt động, yêu cầu phải có đủ ánh sáng décamera có thể nhận dang và nên hoạt động trong mặt phang di chuyên bằng phang.Tiếp đến băng việc áp dụng các giải pháp công nghệ và thuật toán thích hợp, chúng

em sẽ tiến hành xây dựng một hệ thống robot vận chuyên hàng tự động hoàn chỉnh

và tiễn hành thử nghiệm dé đánh giá hiệu suất và khả năng của nó trong môi trường

thực tế dựa trên các đề xuất đặt ra

Trang 11

Chương 1 TONG QUAN

1.1 Tinh hình trong và ngoài nước

Ngày nay với sự phát triển của khoa học công nghệ đã thúc đây nhu cầu cungứng tăng cao, các nhà máy phải cải thiện năng suất tối đa nhất có thể thì sự ứng

dụng các khoa học công nghệ tiên tiến là phương pháp giải quyết bài toán đó

Cụ thê hơn, việc ứng dụng robot vào các công việc nặng nhọc trong các dâychuyền sản xuất, những công việc may tính rủi ro cho con người mà robot có thểthay thế hoặc đặc biệt hơn là công việc hoạt động liên tục không cần nghỉ ngơi.Trên thực tế nhiều quốc gia phát triển đã áp dụng kỹ thuật robot vào nhiều ngành

nghề, lĩnh vực khác nhau vào việc sản xuất xe hơi, gạch men, vận chuyền, phân loại

cân quá nhiêu sự đóng góp của con người.

Đây là một giải pháp thúc đây sự phát triển cho doanh nghiệp vì chúng khôngchỉ hoạt động với độ chính xác cao và năng suất cao (24/7) mà còn giảm thiểu rủi

ro, tai nạn trong lao động.

Dựa vào tình hình thực tế, nhóm em lựa chọn đề tài theo mô hình xe tự động

có khả năng phân loại sản phẩm theo mã QR và di chuyển theo line được định sẵnqua xử lí hình ảnh bằng camera [2] Đặc điểm thiết kế với khung nâng đồ vật kếthợp động cơ hộp số có thé sử dụng phổ biến trong việc nâng hạ kệ hàng Mô hình

có giao diện điêu khiên dê sử dụng nhăm chọn các loại hàng hóa cân vận chuyên.

Trang 12

1.2 Những van dé còn ton tại

Robot vận chuyền hàng tự động đã mang lại nhiều lợi ích và tiện ích trong

ngành công nghiệp và dịch vụ Tuy nhiên, vẫn còn một số vấn đề cần được giải

quyết dé đạt được hiệu suất và đáng tin cậy tối đa của hệ thống

Một trong những vấn đề quan trọng là độ chính xác và độ tin cậy của robot

Đề đảm bảo việc xác định vị trí chính xác, định vị hàng hóa và điều khiến di chuyênhiệu quả, cần cải thiện độ tin cậy của các cảm biến, thuật toán và hệ thong diéukhién Điều nay giúp tránh các sai sót và sự cố không mong muốn trong quá trìnhvận chuyên hàng

Vấn đề thứ hai là khả năng tương tác của robot với môi trường và con người

Robot cần có khả năng phát hiện và tránh vật cản, tương tác an toàn và hiệu quả vớimôi trường xung quanh và con người Điều này đòi hỏi sự phát triển của các giảipháp và thuật toán đề đảm bảo tính an toàn và linh hoạt trong quá trình vận chuyển

hàng.

Quản lý và lập kế hoạch vận chuyền là một vấn đề khác cần được xem xét.Đối với các hệ thống robot vận chuyền hàng tự động trong môi trường phức tạp, cầnquan lý tốt các yếu tô như tuyến đường, phân b6 công việc và quản lý tài nguyên.Điều này giúp tối ưu hóa quy trình vận chuyển và đảm bảo hoạt động hiệu quả của

robot.

Ngoài ra, môi trường làm việc đa dạng cũng là một vấn đề cần được xem xét.Điều kiện ánh sáng, địa hình, nhiệt độ và độ 4m khác nhau có thé anh hưởng đến

hoạt động của robot.

Cần phát triển các giải pháp và công nghệ phù hợp để đảm bảo hoạt độngliên tục và ôn định của robot trong mọi điều kiện môi trường

Cuối cùng, việc bảo trì và sửa chữa robot cũng là một thách thức Cần pháttriển các phương pháp và quy trình bảo trì hiệu quả dé duy trì và nâng cao hiệu suất

của robot Điều này bao gồm việc kiểm tra định kỳ, sửa chữa và nâng cấp các thành

phan dé đảm bảo hoạt động liên tục và đáng tin cậy của robot

Trang 13

Tổng kết lại, robot vận chuyền hàng tự động đang đối mặt với một số vấn đềcần được giải quyết đề đạt được hiệu suất và đáng tin cậy tối đa Việc nghiên cứu và

phát triển công nghệ, thuật toán và giải pháp mới sẽ đóng vai trò quan trọng trong

việc vượt qua những thách thức này và đem lại sự tiễn bộ trong lĩnh vực robot vậnchuyên hàng tự động

1.3 Những van đề cần tập trung giải quyết

Trong quá trình nghiên cứu và phát triên robot vận chuyên hàng tự động sử

dụng dò line, nhóm đã nhận ra rằng vẫn còn một số vấn đề cần được giải quyết để

đảm bảo hiệu suât và độ chính xác của hệ thông.

Một trong những vấn đề quan trọng là độ chính xác trong việc xác định vàtheo dõi đường line Các yếu tố như điều kiện ánh sáng biến đổi, đường line phứctạp và đa dạng, nhiễu và nhiễu môi trường có thé gây ra sai lệch trong việc xác địnhđường line Điều này đòi hỏi chúng tôi phải phát triển các thuật toán và phương

pháp nhận dạng đường line đa dạng và đảm bảo khả năng xử lý nhanh chóng và

Bên cạnh đó, còn có thách thức về độ tin cậy của hệ thống Một lỗi nhỏ trong

việc xác định đường line có thé dẫn đến sai lệch trong quỹ đạo di chuyền của robot

và gây ảnh hưởng đến việc vận chuyền hàng

Nhóm dang tìm hiểu và nghiên cứu các phương pháp và công nghệ dé cảithiện độ tin cậy và độ 6n định của hệ thống

Trang 14

Chương 2 NGHIÊN CỨU THỰC NGHIEM

2.1 Cơ sở lí thuyết

2.1.1 Open CV

OpenCV, được bắt đầu bởi Gary Bradsky từ Intel vào năm 1999, là viết tắtcủa Open Source Computer Vision Library Nó là một thư viện nguồn mở hàng đầucho Computer Vision và Machine Learning Hiện tại, nó cũng hỗ trợ tăng tốc GPU

cho các hoạt động thời gian thực.

OpenCV được phát hành với giấy phép BSD, cho phép sử dụng miễn phí cả

cho mục đích học tập và thương mại Nó hỗ trợ các ngôn ngữ lập trình như C++, C,

Python và Java, va có thé chạy trên các hệ điều hành Windows, Linux, Mac OS,

iOS và Android OpenCV được thiết kế dé hỗ trợ tính toán hiệu quả và được tối ưucho các ứng dụng thời gian thực Nếu được viết bằng ngôn ngữ C/C++, thư viện này

có thể tận dụng được hiệu năng của vi xử lý đa lõi

OpenCV cung cấp các tính năng như:

— Xử lý và hiển thị hình ảnh/video,

— Phát hiện vật thể,

— Xử lý hình ảnh hình học dựa trên hình ảnh đơn hoặc stereo, c

— Omputational photography,

— Machine learning va clustering,

— Tang tốc CUDA, và nhiều tinh năng khác

— Các ứng dụng của OpenCV bao gồm:

— Tu dong kiém tra va giám sát

— Xử lý hình ảnh street view.

— Robot và xe tự lái.

Trang 15

— Video (phân tích video).

— Calib3d (hiệu chuẩn máy ảnh và tái tạo 3D)

— Features2d (phát hiện đặc điểm 2D)

— Objdetect (phát hiện đối tượng)

— Highgui (giao diện người dùng).

— Videoio (thu và mã hóa video).

— GPU (tăng tốc GPU)

— Các module hỗ trợ khác như Python binding, FLANN, Google test

wrapper, và nhiêu hơn nữa.

Hình 2.1 Hệ điều hành Raspbian

Trang 16

Raspbian, một hệ điều hành máy tính dựa trên Debian, đã được phát triểncho Raspberry Pi Có một số phiên bản của Raspbian như Raspbian Stretch và

Raspbian Jessie.

Từ năm 2015, Raspberry Pi Foundation đã chính thức cung cấp Raspbiannhư là hệ điều hành chính cho dòng máy tính nhỏ gọn Raspberry Pi Raspbian đượctạo ra bởi Mike Thompson và Peter Green là một dự án độc lập Phiên bản ban đầu

đã hoàn thành vào tháng 6 năm 2012 và hiện tại, hệ điều hành vẫn đang được pháttriển tích cực Raspbian được tối ưu hóa cho các CPU ARM hiệu suất thấp của

Raspberry Pi.

Raspbian sử dung PIXEL, một môi trường máy tinh dé bàn X-WindowEnvironment nhẹ nhàng, là môi trường máy tính dé bàn chính của nó kề từ bản cập

nhật mới nhất Nó bao gồm một phiên bản sửa đổi của môi trường máy tính để bàn

LXDE và trình quản lý cửa số xếp chồng Openbox với một chủ đề mới và một số

Raspbian cũng hỗ trợ việc cài đặt và sử dụng các gói phần mềm từ kho lưu

trữ Debian, cho phép người dùng tirj dụng một lượng lớn các ứng dụng và công cu

có sẵn trong cộng đồng Debian

Với Raspbian, người dùng có thé thực hiện nhiều tác vụ, từ việc lập trình và

phát triển ứng dụng, xây dựng các dự án IoT (Internet of Things), quản lý máy chủ,học tập và thực hành lập trình, và nhiều hơn nữa

Trang 17

2.1.3 Xử lý ảnh trong OpenCV

OpenCV là một công cụ phổ biến cho việc xử lý ảnh, có thé thực hiện nhiềucông việc như chuyền đổi ảnh sang ảnh den trang (grayscale), làm mờ ảnh, phát

hiện biên cạnh, phân đoạn ảnh, phát hiện đối tượng và nhận dạng khuôn mặt.

— Để đọc và ghi ảnh, OpenCV cho phép người dùng truy cập anh từ các

nguồn như file, camera hoặc video stream Dé làm điều này, có thé sửdụng hàm imread dé đọc ảnh và imwrite dé ghi ảnh thành các định dạng

khác nhau.

— Để chuyền đối màu sắc của ảnh, OpenCV cung cấp các hàm như

cvtColor dé chuyên đổi sang ảnh den trắng (grayscale) và cũng có thé

thay đôi không gian màu sắc bằng cách sử dung các hàm như cvtColor,

split và merge.

— Dé xử lý mau sac của anh, bao gôm cân bang histogram, làm mờ, loc

màu, chỉnh sửa độ sáng va độ tương phan.

— OpenCV cung cấp nhiều phương pháp đề phát hiện biên cạnh trên ảnh,

bao gồm phép biến đổi Canny, phép biến đồi Sobel và phép biến đổiLaplacian Các phương pháp này giúp xác định các điểm biên cạnh trên

ảnh.

— Dé phân đoạn ảnh và nhận dạng đối tượng, OpenCV cung cấp các công

cụ và thuật toán Có thé sử dụng thuật toán như k-means clustering,GrabCut và thuật toán Watershed dé phân đoạn ảnh thành các vùng khácnhau Đối với việc nhận dạng đối tượng, có thể sử dụng Haar cascades,

HOG (Histogram of Oriented Gradients) hoặc deep learning dé phát hiện

va nhan dang đối tượng trên ảnh.

— OpenCV cũng hỗ trợ các phép biến đồi hình học như xoay, co giãn, thay

đôi kích thước và chuyên đôi góc nhìn của ảnh.

Trang 18

— Ngoài việc xử lý ảnh tĩnh, OpenCV còn hỗ trợ xử lý video Có thê đọc

video từ file hoặc camera, xử lý từng khung hình, ghi lại video và thực

hiện các tác vụ như phát hiện và theo dõi đối tượng trong video.

2.1.4 Contour trong OpenCV

Contour là một tập hợp các điểm liên tục tạo thành một đường cong hoặcbiên, và không có khoảng trống nào trong đường cong đó Đặc điểm chung củacontour là các điểm có giá trị màu tương tự hoặc gần nhau, hoặc có cùng mật độ

Contour là một công cụ hữu ích được sử dụng để phân tích hình dạng, phát hiện và

nhận dạng đối tượng [7].

Đề xác định contour một cách chính xác, cần thực hiện quá trình nhị phân

hóa ảnh.Do đó trước khi phát hiện contour thì áp dụng threshold để chuyên sang

ảnh nhị phan.

Thresholding là một kỹ thuật quan trọng trong xử lý ảnh, giúp chuyền đổi

ảnh xám thành ảnh nhị phân Quá trình này dựa trên việc áp dụng một ngưỡng

(threshold) dé phân loại các pixel trong ảnh thành hai nhóm: pixel có giá trị lớn hơnngưỡng và pixel có giá trị nhỏ hơn hoặc bằng ngưỡng [4]

Hình 2.2 Thresholding [4]

Trong quá trình áp dụng thresholding, ta lựa chọn một ngưỡng dựa trên các

yêu tô độ tương phản, độ sáng và yêu câu của bài toán cụ thê.

Các pixel trong ảnh có giá trị lớn hơn ngưỡng được đánh dấu là một giá trị

cao (thường là 255) đề đại diện cho các vùng quan tâm, trong khi các pixel có giá trị

10

Trang 19

nhỏ hơn hoặc băng ngưỡng được đánh dấu là một giá trị thấp (thường là 0) dé đại

diện cho nền hoặc các vùng không quan tâm [7]

Thresholding có nhiều biến thể và phong cách khác nhau như threshold nhị

phan (binary thresholding), threshold nhị phân ngược (inverse binary thresholding),

threshold cat (truncation thresholding), threshold nhi phan toan phan (to-zero

thresholding), threshold nhị phân ngược toàn phan (inverse to-zero thresholding) vàthreshold nhi phan dich chuyén (adaptive thresholding) [4][7]

Ap dung thresholding trong xử ly anh giúp phân đoạn vùng quan tâm, táchnền, phát hiện biên cạnh và nhiều ứng dụng khác Việc lựa chọn ngưỡng phù hợp vàphong cách thresholding thích hợp là quan trọng dé dat được kết quả mong muốn

Sau khi đã xác định được ảnh nhị phân, việc tìm đường viền trong ảnh nhị

phân tương đương với việc tìm các đôi tượng màu trắng trên nên đen.

OpenCV cung cấp hàm findContours(), một công cụ được sử dụng để tìmcác đường viền trong ảnh nhị phân Hàm này có ba đối số đầu vào, trong đó đối số

đầu tiên là ảnh nguồn đã được chuyền đổi thành ảnh nhị phân Chế độ truy xuất

đường viền được đặt là đối số thứ hai trong hàm findContours()., có thể được lựa

chọn từ các tùy chọn như truy xuất chỉ các đường viền ngoại, truy xuất tất cả các

đường viền hoặc truy xuất theo cấu trúc cây Đối số thứ ba là phương pháp xấp xỉđường viền, có thé là lưu tất cả các điểm của đường viền hoặc xấp xỉ đường viềnbằng cách loại bỏ các điểm trùng lặp

Hàm findContours() trả về một danh sách các contours tìm thay trong anh,kèm theo các thông tin liên quan về mỗi contour Các contour nay có thé được sử

dụng dé thực hiện các tác vụ như trích xuất thông tin, vẽ đường viền, tính toán diện

tích, chu vi, hình bao đóng và nhiều ứng dụng khác trong lĩnh vực xử lý ảnh và thị

giác máy tính.

Sau khi đã tìm thấy các đường viền trong quá trình xử lý ảnh, bước tiếp theo

là thực hiện các phương pháp xử lý và lọc dé đạt được kết quả mong muốn Các

bước cơ bản bao gôm:

11

Trang 20

— Làm mờ đường viên: Dé giảm nhiễu và loại bỏ chỉ tiết không mong muốn trong

đường viên, có thê áp dụng các bộ lọc như Gaussian Blur hoặc Median Blur.

Quá trình này giúp làm mịn và giảm nhiêu trong đường viên.

— Loại bỏ đường viền không cần thiết: Băng cách đặt các tiêu chí như diện tích,

chu vi hoặc hình dạng, có thể loại bỏ các đường viền không cần thiết Điều này

giúp điêu chỉnh và tập trung vào các đường viên quan trọng và đáng quan tâm.

— Tiếp giáp đường viền: Đôi khi, số lượng điểm trong đường viền có thé quá lớn,

gây khó khăn trong việc xử lý và tạo hình dạng Trường hợp này, có thể sử dụngtiếp giáp (approximate) đường viền dé giảm số lượng điểm và nổi bật hình dang

chính Điều này giúp tao ra các đường viên đơn giản và dé xử lý hơn.

Sau khi đã tiến hành xử lý và lọc các contours, ta có thé trích xuất thôngtin từ chúng Thông tin cần thiết bao gồm diện tích, chu vi, hướng, tọa độ củahình bao đóng (bounding box) cũng như các đặc trưng khác từ các contours Đểlay thông tin này từ các contours, ta có thé sử dụng các hàm như arcLength ,

contourArea và boundingRect trong thư viện OpenCV.

Cuôi cùng, ta có thê vẽ và hiên thị các contours đã được xử lý và lọc Băng cách sử dụng hàm drawContours, ta có thê vẽ các contours lên ảnh gôc hoặc ảnh khác đê kiêm tra và xem két quả Hiên thi ảnh kêt qua là một cách đê kiêm tra và đánh giá hiệu quả của quá trình xử lý va lọc các contours.

12

Trang 21

Contours trong OpenCV mang đến nhiều lợi ích và cung cấp kha năng linh

hoạt trong việc xử lý và phân tích ảnh Tuy nhiên, cũng có một số hạn chế cần nhớ

Việc sử dung contours trong OpenCV có nhiều lợi ích:

— Tìm kiếm và rút trích đối tượng: Sử dụng contours, ta có thể phát hiện và

rút trích các đối tượng trong ảnh Bằng cách xác định các thuộc tính của

contours như diện tích, chu vi và hình dạng, từ đó có thé nhận biết vàphân loại các đối tượng khác nhau

— Định vị và đo lường thuộc tinh: Contours cung cấp thông tin về hướng ,

hình dạng, diện tích và chu vi của các đối tượng trong ảnh Điều này cho

phép có thê xác định vị trí và đo lường các thuộc tính quan trọng của đối

tượng, chang hạn như tỷ lệ,kích thước, góc xoay và vị trí

— Phân vùng và tách riêng các khu vực quan tâm: Các contours có thê được

sử dụng dé phân vùng và tách riêng các khu vực quan tâm trong ảnh.Bằng cách xử lý và xác định các contours, có thể tạo ra các khu vực phânvùng riêng biệt và áp dụng các phương pháp xử lý tiếp theo cho từng khu

vực.

— Nhận dạng va phân loại: Các thuộc tính của contours có thê được sử dụng

đê nhận dạng và phân loại các đôi tượng trong ảnh Băng cách so sánh

các thuộc tính của contours với các mau đã có, có thê phân loại và nhận

dạng các đối tượng tương ứng

Tuy nhiên, cũng tồn tại một sỐ hạn chế khi sử dung contours trong OpenCV:

— Nhạy cảm với hiện tượng nhiễu: Contours có thé gặp khó khăn và không

chính xác do tác động của hiện tượng nhiễu trong ảnh Nếu ảnh chứanhiễu hoặc biên của đối tượng không rõ ràng, việc xác định contours cóthé trở nên phức tạp va không đáng tin cậy

— Phụ thuộc vào quá trình tiên xử lý: Kêt quả của việc xác định confours

phụ thuộc vào quá trình tiền xử lý ảnh Nếu không thực hiện tiền xử lý

13

Trang 22

một cách tốt, contours có thé không được xác định chính xác và đáng tin

A

cay.

— Độ phức tap tính toán: Việc xác định va xử ly contours yêu cầu các tính

toán phức tạp, đặc biệt là khi ảnh có kích thước lớn và chứa nhiều đốitượng Điều này có thể ảnh hưởng đến hiệu suất và thời gian xử lý của

ứng dụng.

Tổng quan, việc sử dung contours trong OpenCV dem lại nhiều ưu điểm vàtiện ích trong quá trình xử lý và phân tích ảnh Tuy vậy, cần chú ý đến các hạn chế

và thực hiện các bước tiền xử lý ảnh phù hợp đề đạt được kết quả chính xác

2.1.5 Không gian màu

Không gian màu đóng vai trò quan trọng trong việc định lượng và xác định

mau sắc theo cách khoa học Bằng cách thiết lập các công thức, chúng ta có thé xác

định mỗi mau theo giá tri sô học, cho phép chon và tái tạo màu một cách chính xác.

Trong quá trình xử lí ảnh, chúng ta sẽ tiếp xúc với các không gian màu chính

sau đây: HLS (Hue, Lightness, Saturation), HSB (Hue, Saturation, Value), RGB

(Red, Green, Blue) va CYMK (Cyan, Magenta, Yellow, Key/Black).

Không gian mau CMYK được sử dụng trong công nghiệp in ấn và bị hạn chếbởi khả năng hién thị của mực in và chất màu Trong khi đó, không gian màu RGB

là hệ thống màu phổ biến nhất trong nghệ thuật nhiếp anh số, sử dung ánh sáng dé

tạo ra mau sac.

Mỗi chữ cái trong không gian màu đại diện cho một kênh màu, và moi không gian màu có thê có một hoặc nhiêu kênh màu.

14

Trang 23

Không gian màu HSV (Hue-Saturation-Value) được sử dụng phổ biến trong

xử lý ảnh và đồ họa máy tính, nhằm mô phỏng cách con người quan sát và phân loại

mau sac.

Hue (mau sắc) là thành phần chính của mỗi pixel, được biểu diễn dưới dạng

góc trong khoảng 360 độ Nó đại diện cho các màu cơ bản như đỏ, xanh lá cây,

xanh dương, vang, v.V.

Saturation (độ bão hòa) thé hiện độ tinh khiết và sự bão hòa của màu sắc Giátrị saturation cao sẽ mang lại màu sắc rực rỡ và tinh khiết, trong khi giá trị thấp hơn

sẽ tạo ra màu sắc mờ và xám.

Value (giá tri) chỉ độ sáng cua màu sắc Nó biéu thị mức độ sáng tôi của

pixel, với mức cao nhat là màu trăng và mức thap nhat là màu đen.

Không gian mau HSV thường được áp dung trong các ứng dụng liên quan

đến xử lý màu sắc, bao gồm phát hiện đối tượng, phân đoạn ảnh, điều chỉnh màusắc và tự động điều chỉnh màu Sự phân tách rõ ràng giữa các thành phần màu trongkhông gian HSV giúp làm việc với màu sắc dé dàng hơn so với không gian RGBtruyền thống

15

Trang 24

2.1.6 Line following

Phương pháp line following bang camera là một phương pháp phô biến trongviệc điều khiển robot hoặc xe tự động di chuyên theo đường line sử dụng thông tin

hình ảnh từ camera.

Các bước chính trong phương pháp line following bằng camera bao gồm [7]:

— Xử lý hình ảnh: Bước đầu tiên là sử dụng camera dé chụp hình ảnh của

đường line Sau đó, hình ảnh được xử lý để trích xuất thông tin về vị trí

và hình dạng của đường line Các phương pháp xử lý hình ảnh có thể bao

gồm lọc màu, làm mờ, làm rõ, phân đoạn và phát hiện biên cạnh

— Phát hiện đường line: Dựa trên hình ảnh đã xử lý, ta có thể sử dụng các

kỹ thuật như threadholding và vẽ contour đề xác định vị trí và hình dạng

của đường line trong hình ảnh [4].

Hình 2.5 Xác định line.

— Xác định hướng di chuyên: Dựa trên thông tin về vị trí và hình dạng của

đường line, ta có thé xác định hướng di chuyển của xe Thông thường,nếu đường line nằm ở phía trung tâm của hình ảnh, xe sẽ di chuyên thăng

16

Trang 25

Nếu đường line dịch chuyển về một phía, xe sẽ điều chỉnh hướng di

chuyên đề theo đúng đường line

— Điều khiển di chuyển: Dựa trên hướng di chuyển đã xác định, ta điều

khiển xe di chuyên theo đường line Các phương pháp điều khiển có thé

sử dụng hệ thống điều khiến ti lệ, hệ thống điều khiển PID hoặc cácphương pháp điều khiển thông minh hơn như học máy hoặc học sâu

— Điều chỉnh tham số: Tương tự như phương pháp line following bang cảm

biến, phương pháp line following bang camera cũng có thé yêu cầu điều

chỉnh các tham số như độ nhạy của camera, các tham số trong hệ thống

điều khiến và các tham số khác dé đạt được hiệu suất tốt nhất và đảm bao

độ chính xác của việc theo dõi đường line.

— Phương pháp line following bằng camera thường đòi hỏi tính toán cao và

xử lý hình ảnh phức tạp hơn so với sử dụng cảm biến thông thường Tuynhiên, nó cung cấp khả năng phát hiện và theo doi đường line một cáchchính xác và linh hoạt hơn, đặc biệt là trong các môi trường có sự biếnđổi và đa dạng

2.1.7 Mã QR

Mã phản hồi nhanh (QR code) tương tự với mã vạch, vì chúng có khả năng

mã hóa dit liệu thông qua các ô vuông den và trăng Tuy nhiên, thay vi sử dụng tialaser, có thé sử dụng một máy ảnh dé phân biệt các không gian và từ đó, trích xuấtcác thông tin cần thiết

Cụ thê, mã QR bao gôm một sô hình vuông lớn giúp căn chỉnh và xác định

các cạnh của mã QR, các cột định dạng, sô phiên ban và cuôi cùng là dữ liệu chính

được mã hóa trong mã QR.

17

Trang 26

Cell (ngôn ngữ): Trong QR code, có nhiều ô hoa văn đen trắng, thực tế, các ô

đen trăng này chứa các đoạn mã nhị phân Các ô (cell) màu trắng và đen này biểu

thị giá trị 0 và 1 tương ứng Tổ hợp các cell này là nơi lưu trữ thông tin trong QR

code.

Hoa văn định vị: Ở bốn góc của QR code, được sắp xếp các ô vuông gọi làhoa văn định vị Nhờ vào hoa văn định vị này, máy ảnh có thé xác định phạm vi của

QR code và đọc thông tin ngay cả khi QR code bị biến dạng Điều này giúp chúng

ta có thê quét QR code một cách nhanh chóng từ bất kỳ góc độ nào

Ngoài ra, hoa văn hình vuông cũng được sử dụng để xác định khoảng cách

giữa QR code với các ký tự và hình vẽ xung quanh nó Đội phát triển QR code đãtiến hành khảo sát hơn 5000 trang tờ rơi, bao bì, poster, và kết luận rằng loại hoa

văn này được sử dụng ít nhất Sự sắp xếp và tỉ lệ kích thước của hoa văn cũng là kếtquả của việc thong ké dé dam bao phạm vi của mã QR code được xác định chính

Trang 27

Alignment pattern: Ở vùng phía dưới bên phải của mã QR có một hình

vuông chứa một hình vuông nhỏ bên trong Hoa văn nay có vai trò quan trọng trong

việc điều chỉnh sự sai lệch do máy ảnh không cân chỉnh đúng trong quá trình quét

ma.

Thông tin format (chức năng sửa chữa lỗi): Xung quanh hoa văn định vị, có

một phần chứa thông tin format, quyết định mức độ khắc phục lỗi của mã QR

Bên cạnh đó, dé duy trì sự cân bằng giữa các 6 màu đen và trang trên mã QR,chức năng Mask đã được áp dụng Điều này cho phép tránh tình trạng mã QR chỉ

chứa các 6 màu đen ma không có 6 mau trang.

Quét mã QR bằng camera là một quá trình nhận dạng và giải mã mã QR từhình anh được chụp bằng camera Các bước cần đề quét một mã QR như sau:

Xác định mã QR: Trước tiên, hình ảnh từ camera được sử dụng dé xác định

vi tri của mã QR Diéu này có thể được thực hiện bằng cách sử dụng các thuật toánphát hiện đặc trưng hoặc phát hiện biên cạnh dé xác định vùng chứa mã QR

Xử lý hình ảnh: Sau khi xác định vi trí của mã QR, hình ảnh được xử ly détăng cường chất lượng va độ tương phản của mã QR Các phương pháp xử lý hìnhảnh có thé bao gồm làm mờ, làm rõ, lọc thông tin, hoặc cân bằng histogram

Giải mã mã QR: Bước tiếp theo là giải mã thông tin từ mã QR Quá trình giải

mã này thường dựa trên một thuật toán giải mã mã QR như thuật toán

Reed-Solomon hoặc thuật toán BCH để khôi phục dữ liệu và xác định nội dung của mã

QR.

Xử lý dữ liệu: Sau khi giải mã, dữ liệu từ mã QR có thé được sử dụng dé

thực hiện các tác vu cụ thé, chăng hạn như đọc thông tin sản phẩm, xác thực hoặc

kêt nôi với các tài nguyên trực tuyên.

Các thuật toán và phương pháp giải mã mã QR thông thường đã được cài đặt

trong các thư viện mã nguồn mở như ZXing (Zebra Crossing) hoặc OpenCV Điều

19

Trang 28

quan trọng là đảm bảo răng hình ảnh từ camera đủ sáng, sắc nét và không bị méo đê

tăng khả năng nhận dạng và giải mã của quá trình.

Quét mã QR bằng camera đã trở thành một công nghệ phổ biến và tiện lợi,

được áp dụng rộng rãi trong các ứng dụng từ thanh toán di động, quản lý hàng hóa

đến xác thực người dùng và gửi thông tin

2.1.8 Giao diện người dùng đồ họa Tinker

Tkinter là một giao diện người dùng đồ họa (GUI) phổ biến được sử dụng

trong Python dé tạo các ứng dụng có giao diện đồ họa Nó là một phần của thư việntiêu chuẩn của Python và được cung cấp sẵn trong hầu hết các phiên bản Python

Tkinter được xây dựng dựa trên thư viện Tk (ToolKit), một thư viện GUI đa

nền tảng phô biến được phát triển cho Tel (Tool Command Language) Tkinter cungcấp một bộ các thành phần giao diện như cửa số, nút, nhãn, hộp văn bản, hộp chọn,

danh sách, và nhiêu hơn nữa.

Các thành phần trong Tkinter được gọi là widgets (tiện ích) và được quản lý

bang cách sử dung geometry managers (quản lý hình học) Tkinter cung cấp ba

geometry managers chính dé điều chỉnh sắp xếp và căn chỉnh các widget trên giao

diện người dùng: pack(), gridQ, và place().

Tkinter cũng hỗ trợ xử lý sự kiện người dùng, cho phép người dùng phản

ứng với các hoạt động như nhấp chuột, bam phím, kéo tha, và nhiều hơn nữa Bằng

cách gắn kết các hàm xử lý sự kiện với các widget, có thể tạo ra các hành động phản

ứng tương ứng khi người dùng tương tác với g1ao diện.

Một số khái niệm quan trọng khác trong Tkinter bao gồm cửa s6 (window),frame, widget variables, và các phương thức và thuộc tinh dé tùy chỉnh và điềukhiển các widget

Sử dụng Tkinter, người dùng có thể xây dựng các ứng dụng GUI đơn giảnhoặc phức tạp, từ các công cụ nhỏ đến các ứng dụng desktop đầy đủ Nó cung cấp

20

Trang 29

một giao diện trực quan và linh hoạt cho việc tương tác với người dùng và tạo ra

các trải nghiệm đồ họa

2.1.9 VNC

CONT sameinigev.5890 + Sign in +

User

Passerord

Commecting te eryne lini gen: 5998.

Hình 2.7 giao diện truy cập VNC

VNC (Virtual Network Computing) là một công nghệ cho phép người dùng

từ xa truy cập và điều khiển một máy tính từ xa thông qua một kết nối mạng Nó

cho phép người sử dụng xem và điều khiển màn hình của máy tinh từ xa từ bat kỳmáy tính hoặc thiết bị di động nao được kết nối với cùng một mạng hoặc internet

VNC hoạt động dựa trên mô hình máy chủ và khách hàng Máy tính mà

người dùng muốn điều khiển từ xa được cài đặt một máy chủ VNC, trong khi máytính điều khiển từ xa cài đặt một khách hàng VNC

Khi hai máy tính được kết nỗi thông qua mạng, khách hàng VNC gửi yêucầu điều khiển đến máy chủ VNC, và máy chủ VNC gửi lại hình ảnh và dữ liệu màn

Ngày đăng: 02/10/2024, 03:31

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN