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 2LỜ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 398V 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 42.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 5DANH 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 6Hì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 7DANH 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 8DANH 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 9TÓ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 10MỞ ĐẦ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 11Chươ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 121.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 13Tổ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 14Chươ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 16Raspbian, 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 172.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 19nhỏ 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 21Contours 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 22mộ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 23Khô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 242.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 25Nế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 26Cell (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 27Alignment 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 28quan 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 29mộ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