Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 75

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH

KHÓA LUẬN TỐT NGHIỆP

THIẾT KẾ, CHẾ TẠO ROBOT TUẦN TRA – PATROL ROBOT

Họ và tên sinh viên: NGUYỄN DUY KHANG

NGUYỄN CÔNG TRƯỜNG

Ngành: CÔNG NGHỆ KỸ THUẬT CƠ ĐIỆN

TỬ

Niên khóa: 2019-2023

Tháng 06 năm 2023


THIẾT KẾ, CHẾ TẠO ROBOT TUẦN TRA – PATROL ROBOT

Tác giả

Nguyễn Duy Khang

Nguyễn Công Trường

Khóa luận tốt nghiệp được đệ trình đáp ứng yêu cầu cấp bằng
Kỹ sư ngành Công nghệ Kỹ thuật Cơ Điện Tử

Giảng viên hướng dẫn:

Th.S Nguyễn Tấn Phúc

Tháng 06 năm 2023


TRƯỜNG ĐẠI HỌC NÔNG LÂM TPHCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

KHOA CƠ KHÍ - CÔNG NGHỆ ĐỘC LẬP – TỰ DO – HẠNH PHÚC

Ngày tháng năm 2023


NHIỆM VỤ TIỂU LUẬN TỐT NGHIỆP

KHOA: CƠ KHÍ CÔNG NGHỆ


BỘ MÔN: Cơ Điện tử

Họ và tên sinh viên:

1) Nguyễn Duy Khang.MSSV: 19153030


2) Nguyễn Công Trường.MSSV: 19153088
1. Tên đề tài:
Thiết kế, chế tạo robot tuần tra – Patrol Robot
2. Nhiệm vụ giao (ghi rõ nội dung phải thực hiện):
- Thiết kế, chế tạo robot 2 tầng di chuyển dò vạch theo đường line có sẵn.
- Lập trình điều khiển để robot có thể quét và thu nhận ảnh trong khi di chuyển.
- Lập trình xử lý ảnh khi phát hiện nghi phạm trước cửa nhà, gửi mail thông báo cho chủ nhà.
- Khảo nghiệm- kiểm chứng kết quả.

3. Ngày giao:

4. Ngày hoàn thành:

5. Họ và tên người hướng dẫn: Nội dung hướng dẫn

ThS. Nguyễn Tấn Phúc Toàn bộ

Nội dung và yêu cầu LA đã được thông qua Bộ môn Người hướng dẫn
Ngày ... tháng ...năm 2023 Ký tên, ghi rõ họ và tên

Trưởng Bộ Môn

PHẦN DÀNH CHO KHOA:


Người duyệt:
Ngày bảo vệ:
LỜI CẢM ƠN

Chúng em xin trân trọng cảm ơn tất cả quý thầy cô trường Đại học Nông Lâm
TP. Hồ Chí Minh và đặc biệt là các quý thầy cô trong khoa Cơ Khí - Công Nghệ đã
trang bị cho chúng em những kiến thức quý báo cũng như đã giúp đỡ tận tình chỉ dạy
chúng em trong suốt quá trình học tập tại trường.

Chúng em xin chân thành cảm ơn các thầy cô trong bộ môn Cơ Điện Tử đã giúp
đỡ chúng em trong thời gian thực hiện đề tài.

Chúng em cũng xin bày tỏ sự biết ơn chân thành đối với thầy Nguyễn Tấn Phúc
đã tận tình hướng dẫn chúng em trong suốt quá trình làm khóa luận tốt nghiệp.

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

Cuối cùng, chúng em xin gửi lời cảm ơn đến những người thân cũng như bạn bè
đã động viên, ủng hộ và luôn tạo cho chúng em mọi điều kiện thuận lợi trong suốt quá
trình học tập nghiên cứu và hoàn thành khóa luận.

Chúng em xin chân thành cảm ơn!

TP. Hồ Chí Minh, tháng 06 năm 2023

Sinh viên thực hiện

NGUYỄN DUY KHANG NGUYỄN CÔNG TRƯỜNG

i
TÓM TẮT

Đề tài nghiên cứu “Thiết kế, chế tạo Robot tuần tra – Patrol Robot” cụ thể là
robot di chuyển phát hiện nghi phạm và sau đó gởi email thông báo cho chủ nhà, được
thực hiện tại trường đại học Nông Lâm thành phố Hồ Chí Minh, thời gian từ tháng 3
đến tháng 6 năm 2022.

Đề tài đã thiết kế chế tạo robot 2 tầng di chuyển dò vạch theo đường line có
sẵn, robot có thể quét và thu nhận ảnh trong khi di chuyển khi phát hiện nghi phạm
trước cửa nhà thì gởi email thông báo cho chủ nhà sử dụng camera để xử lý ảnh.
Chương trình điều khiển robot sử dụng ngôn ngữ lập trình Python.

Đề tài sử dụng Raspberry Pi 4 được xử lý cho quá trình điều khiển robot để di
chuyển theo đường line có sẵn, kết hợp với sử dụng camera để giám sát. Khi phát hiện
được nghi phạm thì gửi email thông báo cho chủ nhà. Đây được xem là kết quả chính
của đề tài.

Do thời gian thực hiện còn hạn chế, cũng như mức độ rộng lớn của đề tài, nên
dù đã cố gắng hết sức nhưng phương án giải quyết bài toán của chúng em chắc chắn
không thể tránh khỏi những thiếu sót. Chúng em rất mong nhận được sự đóng góp ý
kiến của quý thầy cô và bạn bè để đề tài của chúng em ngày càng được hoàn thiện hơn.

ii
MỤC LỤC

Trang

LỜI CẢM ƠN..................................................................................................................i

TÓM TẮT.......................................................................................................................ii

MỤC LỤC......................................................................................................................iii

DANH SÁCH CÁC HÌNH.............................................................................................vi

DANH SÁCH CÁC BẢNG.........................................................................................viii

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

1.1 Đặt vấn đề..............................................................................................................1

1.2 Mục tiêu khoá luận.................................................................................................2

1.3 Ý nghĩa thực tiễn....................................................................................................2

1.4 Nội dung thực hiện.................................................................................................2

Chương 2 CƠ SỞ LÝ THUYẾT.....................................................................................3

2.1 Giới thiệu robot tuần tra – Patrol Robot.................................................................3

2.2 Một số khái niệm cơ bản trong xử lý ảnh..............................................................5

2.2.1 Các khái niệm trong sử lý ảnh.........................................................................5

2.2.2 Các vấn đề cơ bản trong xử lý ảnh................................................................10

2.3 Thuật toán xử lý ảnh sử dụng trong đề tài............................................................13

2.3.1 Giới thiệu về thuật toán HOG........................................................................13

2.3.2 Thuật toán HOG............................................................................................16

2.4 Một số linh kiện, thiết bị sử dụng trong đề tài.....................................................19

2.4.1 Máy tính nhúng Raspberry Pi 4.....................................................................19

2.4.2 Webcam Logitech C270................................................................................22

2.4.3 Cảm biến dò line TCRT5000.........................................................................23

2.4.5 Động cơ DC giảm tốc V1 1 trục 1:48............................................................24


iii
2.4.4 Module điều khiển động cơ L298..................................................................25

2.4.6 Module lm2596.............................................................................................27

2.4.7 Pin li-po.........................................................................................................28

2.4.8 Pin sạc 18650.................................................................................................30

2.5 Phần mềm sử dụng...............................................................................................32

2.5.1 Phần mềm thiết kế 3D Solidworks.................................................................32

2.5.2 Phần mềm lập trình visual studio code..........................................................34

2.5.3 Thư viện xử lý ảnh Opencv...........................................................................35

Chương 3 VẬT LIỆU VÀ PHƯƠNG PHÁP NGHIÊN CỨU......................................37

3.1 Nội dung thực hiện...............................................................................................37

3.1.1 Thời gian và địa điểm thực hiện đề tài...........................................................37

3.1.2 Đối tượng và các thiết bị nghiên cứu.............................................................37

3.1.3 Các phần mềm được sử dụng.........................................................................37

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

3.3 Chuẩn bị nguyên liệu...........................................................................................38

Chương 4 KẾT QUẢ VÀ KHẢO NGHIỆM................................................................40

4.1 Thiết kế mô hình và nguyên lý hoạt động............................................................40

4.1.1 Thiết kế mô hình............................................................................................40

4.1.2 Nguyên lý hoạt động của mô hình.................................................................42

4.2 Sơ đồ mạch điện...................................................................................................44

4.2.1 Mạch điều khiển.............................................................................................44

4.2.2 Mạch nguồn...................................................................................................46

4.3 Lưu đồ thuật toán.................................................................................................48

4.3.1 Lưu đồ............................................................................................................48

4.3.2 Giải thích lưu đồ............................................................................................49

iv
4.4 Lưu đồ xử lý ảnh..................................................................................................49

4.4.1 Lưu đồ............................................................................................................49

4.4.2 Giải thích lưu đồ............................................................................................50

4.5 Giao điện điều khiển............................................................................................50

4.6 kết quả khảo nghiệm............................................................................................51

Chương 5 HƯỚNG PHÁT TRIỂN...............................................................................52

5.1 Kết luận................................................................................................................52

5.2 Đề nghị.................................................................................................................52

5.3 Những hạn chế.....................................................................................................52

5.4 Hướng phát triển..................................................................................................52

TÀI LIỆU THAM KHẢO.............................................................................................53

PHỤ LỤC......................................................................................................................54

v
DANH SÁCH CÁC HÌNH

Hình 2.1 Robot tuần tra an ninh trong nhà......................................................................3

Hình 2.2 Điểm ảnh (pixel - picture element)...................................................................6

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

Hình 2.4 Ảnh theo mã màu RGB....................................................................................9

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

Hình 2.6 Ma trận biểu diễn ảnh xám.............................................................................10

Hình 2.7 Biểu diễn ảnh dưới dạng histogram................................................................10

Hình 2.8 Hình ảnh trước và sau khi xử lí nhiễu............................................................12

Hình 2.9 Ứng dụng nhận diện người của HOG.............................................................15

Hình 2.10 Ứng dụng nhận diện người của HOG...........................................................15

Hình 2.11 Ứng dụng nhận dạng khuôn mặt của HOG..................................................15

Hình 2.12 Ứng dụng Nhận dạng chữ viết tay của HOG...............................................16

Hình 2.13 Hình ảnh Raspberry Pi 4 4G.........................................................................20

Hình 2.14 Sơ đồ chân của raspberry 4..........................................................................21

Hình 2.15 Webcam Logitech C270 gắn vào cổng USB Raspberry pi 4.......................23

Hình 2.16 Cảm biến dò line TCRT5000.......................................................................24

Hình 2.17 Module điều khiển động cơ L298.................................................................26

Hình 2.18 Hình ảnh Động cơ DC giảm tốc V1 1 trục 1:4.............................................25

Hình 2.19 Module lm2596............................................................................................27

Hình 2.20 pin li-po 7.4v, 2200mAh..............................................................................29

Hình 2.21 Bộ sạc pin li-po B3.......................................................................................29

Hình 2.22 Bộ sạc pin li-po B6AC Imax........................................................................30

Hình 2.23 Pin Lithium sạc 18650..................................................................................31

Hình 2.24 Bộ sạc 2 cell pin...........................................................................................31

vi
Hình 2.25 Bộ sạc 4cell pin............................................................................................32

Hình 2.26 Biểu tượng Solidworks để vào phần mềm....................................................33

Hình 2.27 Giao diện làm việc của phần mềm Solidworks............................................33

Hình 2.28 Thư viện OpenCV........................................................................................36

Hình 4.1 Mô hình robot tuần tra 3D..............................................................................40

Hình 4.2 Mô hình khi tách rời các linh kiện..................................................................41

Hình 4.3 Mô hình thực tế sau khi hoàn thành................................................................42

Hình 4.4 công tắc cấp nguồn diver L298.......................................................................42

Hình 4.5 Cấp nguồn cho raspberry................................................................................43

Hình 4.6 Mở VNC view................................................................................................43

Hình 4.7 Gamil nhận thông báo phát hiện người..........................................................44

Hình 4.8 Sơ đồ điều khiển.............................................................................................45

Hình 4.9 Module Lm2596.............................................................................................46

Hình 4.10 Sơ đồ nguyên lý của module Lm2596..........................................................46

Hình 4.11 Giao diện hiển thị camera trong quá trình duy chuyển................................50

vii
DANH SÁCH CÁC BẢNG

Bảng 3.1: Thời gian thực hiện đề tài............................................................................37


Bảng 3.2: Nguyên liệu được sử dụng trong đề tài.........................................................38
Bảng 4.1: Kết quả khảo nghiệm....................................................................................51

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

1.1 Đặt vấn đề

Trong những năm gần đây, hoạt động của các loại tội phạm trong nước đang
diễn biến rất phức tạp và gây ra nhiều hệ lụy nghiêm trọng. Các loại tội phạm này gây
thiệt hại lớn đến tính mạng, sức khỏe và tài sản của Nhà nước và nhân dân. Hơn nửa,
chúng còn ảnh hưởng xấu đến tình hình an ninh chính trị và trật tự an toàn xã hội.
Trong số các loại tội phạm, tội phạm trộm cắp tài sản là một vấn đề đáng chú ý. Tội
phạm này có số lượng tương đối lớn, gây ra mất mát về tài sản của cá nhân, cộng đồng
và cả Nhà nước. Tuy giá trị tài sản thiệt hại không lớn như các tội phạm về tham
nhũng hay tội phạm kinh tế, nhưng sự lan truyền và tỉ lệ khám phá tội phạm trộm cắp
tài sản vẫn còn thấp. Thực tế cho thấy tội phạm trộm cắp tài sản diễn biến phức tạp và
nguy hiểm ngày càng gia tăng.

Tuy nhiên, ý thức tự phòng ngừa và quản lý tài sản của người dân vẫn còn
nhiều chủ quan, lơ là, và thiếu cảnh giác. Điều này tạo điều kiện thuận lợi cho các hoạt
động trộm cắp tài sản diễn ra. Ngoài ra, công tác phát hiện, đấu tranh và xử lý tội
phạm trộm cắp tài sản của lực lượng Công an còn gặp nhiều khó khăn và hạn chế.

Theo thống kê chỉ riêng thành phố Hồ Chí Minh tỉ lệ tội phạm trộm cắp tăng
lên từ 61,75% (2452/3971 vụ) năm 2021 lên 74,33% (2452/3971 vụ) năm 2022 cho
thấy mức độ nghiêm trọng của tội phạm này đang gia tăng. các đối tượng phạm tội
thường tìm kiếm những sơ hở và thiếu an ninh trong ngôi nhà của người dân để thực
hiện hành vi trộm cắp. Điều này bao gồm việc không khóa cửa cổng, cửa ra vào nhà,
cửa ban công, cửa sổ hoặc cửa tum, cả ban ngày và ban đêm để thực hiện hành vi của
mình.

Các đối tượng phạm tội thường chọn những thời điểm mà gia đình vắng nhà để
thực hiện hành vi trộm cắp. Nắm bắt được tình hình tội phạm trộm cắp ngày càng phức
tạp cũng như là sự lo lắng của người dân và mong muốn bảo vệ tài sản do mồ hôi công
sức mình làm ra trong chính ngôi nhà của mình. Và hơn hết là bảo đảm sự an tâm cho

1
mọi người khi đi làm việc hằng ngày, đi công tác xa sẽ yên tâm để nâng cao chất lượng

2
cuộc sống của gia đình. Hơn bao giờ hết là sinh viên ngành Kỹ Thuật Cơ điện tử
Trường Đại học Nông Lâm Thành Phố Hồ Chí Minh từ thực tế và những kiến thức đã
học chúng em quyết định chọn đề tài “Thiết kế, chế tạo robot tuần tra – Patrol Robot”
để thực hiện cho khoá luận tốt nghiệp. Với mong muốn tạo ra một chú robot giúp ích
cho mọi người bảo vệ tài sản trong chính ngôi nhà của mình và trong tương lai sẽ được
phát triển ứng dụng vào thực tế rộng rãi hơn từ đó góp phần làm cho xã hội ngày càng
văn minh và đất nước ngày càng phát triển giàu mạnh hơn.
1.2 Mục tiêu khoá luận

- Thiết kế, chế tạo robot 2 tầng di chuyển dò vạch theo đường line có sẵn.
- Xây dựng thuật toán xử lý ảnh phát hiện nghi phạm.
- Viết chương trình điều khiển cho raspberry trên visual studio code để mô hình
chạy theo đúng yêu cầu của đề tài.
- Điều khiển Robot tuần tra bằng vi điều khiển Raspberry.
- Khảo nghiệm, đánh giá độ ổn định của robot tuần tra di chuyển và phát hiện
nghi phạm sau đó gởi mail cho chủ nhà tự động.

1.3 Ý nghĩa thực tiễn

Sau khi hoàn thành đề tài, chúng em đã nâng cao kiến thức về chuyên ngành và
định hướng được nghề nghiệp của bản thân. Thông qua quá trình tìm hiểu, không
ngừng học hỏi, chúng em đã nắm được cơ bản cách sử dụng phần mềm mô phỏng,
hoàn thiện được một sản phẩm theo yêu cầu đề ra, làm mạch điện tử, lập trình, … Qua
đó những gì đã trải nghiệm thời gian qua đã cho chúng em kinh nghiệm thực tiễn làm
hành trang vững chắc cho bản thân sau này đáp ứng được các nhu cầu của các doanh
nghiệp trong ngành công nghệ kỹ thuật cơ điện tử.

1.4 Nội dung thực hiện

- Thiết kế bản vẽ 2D và 3D của mô hình Robot tuần tra.


- Mua thiết bị và vật liệu và gia công thực tế.
- Lắp ráp các linh kiện điện tử hoàn thành mô hình.
- Nghiên cứu và lập trình điều khiển.
- Tiến hành chạy thử và khác phục các lỗi phát sinh.
3
Chương 2
CƠ SỞ LÝ THUYẾT

2.1 Giới thiệu robot tuần tra – Patrol Robot

Robot tuần tra là một loại robot được thiết kế để thực hiện nhiệm vụ tuần tra và
giám sát các khu vực cụ thể. Các robot tuần tra thường được sử dụng trong các lĩnh
vực như an ninh, bảo vệ, giám sát tài sản và quản lí an toàn. Robot tuần tra có thể
được trang bị với các cảm biến và thiết bị khác nhau như camera, cảm biến chuyển
động, hệ thống định vị và các công nghệ tiên tiến khác để thu thập thông tin và giám
sát môi trường xung quanh. Chúng có thể tự động di chuyển và thực hiện các nhiệm vụ
theo lịch trình đã được đặt trước hoặc điều khiển từ xa thông qua một trung tâm điều
khiển.

Robot tuần tra có thể giúp nâng cao hiệu suất và hiệu quả trong việc tuần tra và
giám sát, giảm thiểu nguy cơ con người và mang lại sự linh động trong hoạt động 24/7.
Chúng có khả năng phát hiện các sự cố, xâm nhập hoặc những hoạt động đáng ngờ và
thông báo cho nhân viên quản lý hoặc hệ thống an ninh.

Hình 2.1 Robot tuần tra an ninh trong nhà


Ngày nay, robot tuần tra-patrol robot ngày càng được đưa vào sử dụng trong
đời sống con người nhiều hơn, hầu hết được ứng dụng nhiều ở các nước phát triển với

4
mục đích hỗ trợ con người trong công việc tuần tra, giám sát môi trường sản xuất
công

5
nghiệp, khu chung cư, siêu thị, thu thập thông tin nhanh về những việc bất thường để
kịp thời xử lý, ngăn chặn. Ngoài ra, có thể dùng robot để chụp ảnh và quay video lưu
giữ lại trên bộ nhớ của máy tính phục vụ công tác điều tra, hỗ trợ dập đám cháy, ….
Trong một xã hội khoa học công nghệ ngày càng phát triển vượt bậc, các loại Robot
tuần tra an ninh được nghiên cứu, phát triển mạnh mẽ hơn để dần được đưa vào sử
dụng rộng rãi và phổ biến trong đời sống để giúp ích cho cuộc sống con người.

Cấu tạo cơ bản của một robot tuần tra có thể khác nhau tuỳ thuộc vào mục đích
sử dụng và yêu cầu cụ thể. Một số thành phần cơ bản của robot tuần tra thường có:

Khung robot: đây là cấu trúc cơ bản của robot, bao gồm khung và các bộ phận
cơ học để di chuyển như bánh xe, chân hoặc hệ thống cánh quạt.

Cảm biến: robot tuần tra thường được trang bị với nhiều loại cảm biến để thu
thập thông tin về môi trường xung quanh. Bao gồm:

Camera: Các camera có thể được sử dụng để chụp hình, quay video và giám sát khu
vực mục tiêu.

 Cảm biến chuyển động: cảm biến chuyển động có thể phát hiện sự di chuyển
hoặc sự thay đổi trong môi trường và thông báo cho robot.
 Cảm biến tiếp xúc: cảm biến tiếp xúc giúp robot phát hiện và đáp ứng với các
vật thể hoặc chướng ngại vật trong quá trình di chuyển.
 Cảm biến khoảng cách: cảm biến khoảng cách có thể được sử dụng để đo
khoảng cách đến các vật thể hoắc phát hiện các vật thể trong phạm vị gần.
 Cảm biến nhiệt: cảm biến nhiệt có thể sử dụng để phát hiện sự thay đổi nhiệt độ
và phát hiện các nguồn nhiệt không mong muốn.

Hệ thống định vị: một hệ thống định vị như GPS có thể được sử dụng để theo
dõi vị trí của robot trong quá trình tuần tra và xác định toạ độ cửa các vật thể hoặc sự
kiện quan trọng.

Bộ vi xử lí và điều khiển: robot tuần tra thường được trang bị một bộ vu xử lý


và các hệ thống điểu khiển để xử lí thông tin từ các cảm biến, quyết định hành động và
điều chỉnh động cơ để di chuyển.

6
Hệ thống năng lượng: robot tuần tra có thể sử dụng pin hoặc nguồn năng lượng
khác như nguồn điện Ac để cung cấp năng lượng cho hoạt động của robot.

2.2 Một số khái niệm cơ bản trong xử lý ảnh

2.2.1 Các khái niệm trong sử lý ảnh

Xử lí ảnh là quá trình áp dụng các phương pháp, thuật toán và công cụ biến đổi,
phân tích và trích xuất thông tin từ các hình ảnh số. Mục tiêu của xử lý ảnh là cải thiện
chất lượng ảnh, trích xuất thông tin quan trọng, nhận dạng và phân loại đổi tượng,
phân đoạn ảnh và tạo hiệu ứng đặc biệt. Xử lý ảnh có thể được thực hiện trên ảnh tĩnh
hoặc chuỗi các khung hình trong thời gian thực. Quá trình xử lý ảnh thường bao gồm
các bước sau:

Tiền xử lý (Preprocessing): Bước này nhằm chuẩn bị dữ liệu ảnh trước khi áp
dụng các phương pháp xử lý chính. Các hoạt động tiền xử lý có thể bao gồm:

 Đọc và định dạng lại ảnh từ định dạng ban đầu (như JPEG, PNG).
 Cân bằng độ sáng và tăng cường độ tương phản của ảnh.
 Loại bỏ nhiễu và lọc ảnh để làm mờ hoặc làm sắc nét hình ảnh.
 Chuyển đổi không gian màu (ví dụ: RGB, Grayscale).

Trích xuất đặc trưng (Feature extraction): Bước này nhằm rút trích các đặc
trưng quan trọng từ ảnh để mô tả thông tin đặc biệt về hình ảnh. Các phương pháp
trích xuất đặc trưng phổ biến bao gồm:

 Trích xuất cạnh (ví dụ: bằng toán tử Sobel, Canny)


 Trích xuất đặc trưng hình dạng (ví dụ: đặc trưng HOG - Histogram of Oriented
Gradients).
 Trích xuất đặc trưng màu sắc (ví dụ: histogram màu).
 Trích xuất đặc trưng texture (ví dụ: Haralick texture features).

Xử lí và phân loại (Processing and classification): Bước này liên quan đến việc
áp dụng các thuật toán và phương pháp xử lý để thực hiện các nhiệm vụ như nhận
dạng, phân loại và phân đoạn ảnh. Các phương pháp và thuật toán phổ biến bao gồm:

7
 Học máy và học sâu (ví dụ: mạng nơ-ron, SVM, cây quyết định).
 Phân đoạn ảnh (ví dụ: phân đoạn ngưỡng, phân đoạn dựa trên đường viền, phân
đoạn bằng học sâu).
 Nhận dạng và phân loại đối tượng (ví dụ: phát hiện khuôn mặt, nhận dạng chữ
viết tay, phân loại vật thể).

Hiển thị và lưu trữ kết quả: (Display and storage): Bước này liên quan đến việc
hiển thị kết quả xử lý ảnh cho người dùng hoặc lưu trữ kết quả vào cơ sở dữ liệu. Kết
quả có thể được hiển thị dưới dạng ảnh đơn giản, biểu đồ, hoặc thông tin chi tiết.

Các bước trong xử lý ảnh có thể được thực hiện tuần tự hoặc song song, tuỳ
thuộc vào yêu cầu cụ thể của ứng dụng. Các phương pháp và thuật toán trong mỗi
bước có thể khác nhau tuỳ thuộc vào mục đích và ngữ cảnh sử dụng.

2.2.1.1 Điểm ảnh (Pixel)

Điểm ảnh (pixel) là đơn vị cơ bản nhỏ nhất trong một hình ảnh. Từ viết tắt của
“picture element”, điểm ảnh là một điểm riêng lẻ trong một ma trận hai chiều, đại diện
cho một vị trí cụ thể trên bề mặt ảnh. Mỗi điểm ảnh chứa thông tin về mức độ độ sáng
và màu sắc tại vị trí tương ứng trong hình ảnh. Đối với ảnh màu, điểm ảnh bao gồm
thông tin về độ sáng của các kênh màu như đỏ (Red), xanh lá cây (Green), và xanh
dương (Blue), thường được biểu diễn theo kiểu RGB (Red-Green-Blue). Đối với ảnh
đơn sắc, điểm ảnh chỉ chứa thông tin về mức độ sáng.

Một Pixel thường được biểu diễn bởi 1, 2, 8 hay 24bit màu.

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


8
2.2.1.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ọn
sao 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ích
hợ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 x
và y trong không gian hai chiều. Độ phân giải của ảnh được biểu diễn bằng số điểm
ảnh trên chiều ngang và chiều dọc của ảnh.

Độ phân giải cao có nghĩa là ảnh có nhiều điểm ảnh hơn, và do đó có khả năng
phân biệt chi tiết tốt hơn. Các chi tiết nhỏ hơn và các cạnh sắc nét hơn có thể được
hiển thị trong ảnh với độ phân giải cao. Tuy nhiên, việc sử dụng độ phân giải cao cũng
đòi hỏi tài nguyên tính toán và bộ nhớ lớn hơn.

Độ phân giải của ảnh là một yếu tố quan trọng khi làm việc với ảnh, như in ấn,
hiển thị trên màn hình, hoặc xử lý ảnh. Nó ảnh hưởng đến chất lượng, độ chi tiết và độ
rõ nét của ảnh. Việc chọn độ phân giải phù hợp phụ thuộc vào mục đích sử dụng, yêu
cầu hiển thị và tài nguyên có sẵn.

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

Mức xám của ảnh là một cách biểu diễn màu sắc trong ảnh mà chỉ sử dụng các
mức độ độ sáng từ đen đến trắng mà không có thông tin về màu sắc. Trong hệ thống
mức xám, mỗi điểm ảnh chỉ chứa một giá trị độ sáng duy nhất, không có thông tin về
các kênh màu RGB (Red-Green-Blue) như trong ảnh màu.

Trong một ảnh mức xám, mỗi điểm ảnh được biểu diễn bằng một giá trị số từ 0
đến 255, thể hiện mức độ của độ sáng của điểm ảnh đó. Giá trị 0 thể hiện màu đen
tuyệt đối, trong khi giá trị 255 thể hiện màu trắng tuyệt đối. Các giá trị nằm giữa 0 và
255 tương ứng với các mức độ của độ sáng từ đen đến trắng.

9
Hình 2.3 Minh họa mức xám sau khi mã hóa
Mức xám thường được sử dụng trong xử lý ảnh để đơn giản hoá dữ liệu và tập
trung vào độ sáng của ảnh mà không quan tâm đên màu sắc. Nó cũng được sử dụng
trong nhiều phép toán và thuật toán xử lý ảnh, như làm mờ, làm nổi bật cạnh, phân
đoạn và phân tích đối tượng.

2.2.1.4 Ảnh đen trắng

Ảnh đen trắng là loại ảnh chỉ sử dụng hai mức sắc đen và trắng để biểu diễn.
Trong ảnh đen trắng không có thông tin về màu sắc mà chỉ chứa thông tin về độ sáng
của các điểm ảnh. Các điểm ảnh trong ảnh đen trắng có thể có hai giá trị: 0 và 255. Giá
trị 0 đại diện cho màu đen tuyệt đối, trong khi giá trị 255 đại diện cho màu trắng tuyệt
đối. Các giá trị nằm giữa 0 và 255 thể hiện mức độ độ sáng của điểm ảnh đó.

2.2.1.5 Ảnh màu

Ảnh màu là tổ hợp 3 màu cơ bản: đỏ, lục, xanh dương và thường thu nhận trên
các dải băng tần khác nhau. Thay vì chỉ sử dụng đen và trắng như trong ảnh đen trắng,
ảnh màu sử dụng các kênh màu để biểu diễn màu sắc.

Trong mô hình màu RGB (Red-Green-Blue) phổ biến, mỗi điểm ảnh trong ảnh
màu được biểu diễn bằng một tổ hợp các giá trị trong ba kênh màu: đỏ (R), xanh lá cây

10
(G) và xanh dương (B). Mỗi kênh màu có giá trị từ 0 đến 255, trong đó 0 đại diện cho
mức tối nhất và 255 đại diện cho mức sáng nhất của màu tương ứng. Bằng cách kết
hợp các giá trị trong ba kênh màu có thể tạo ra một loạt các màu khác nhau trong ảnh.

Hình 2.4 Ảnh theo mã màu RGB


Trong không gian màu HSV, còn được gọi là không gian màu HSB (Hue-
Saturation-Brightness), là một cách biểu diễn màu sắc trong xử lý ảnh và đồ họa.
Không gian màu này dựa trên ba thành phần chính:

 Màu sắc (Hue)


 Độ bão hoà (Saturation)
 Màu sáng (Brightness)

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


11
Không gian màu HSV thường được sử dụng trong các ứng dụng như xử lý ảnh,
nhận dạng màu sắc và điều chỉnh màu sắc. Nó cung cấp một cách biểu diễn trực quan
và thân thiện với người dùng vì nó cho phép điều chỉnh màu sắc dễ dàng thông qua các
thông số Hue, Saturation và Brightness.

2.2.2 Các vấn đề cơ bản trong xử lý ảnh

2.2.2.1 Biểu diễn ảnh

- Hình ảnh thường được biểu diễn dưới dạng ma trận số, trong đó mỗi phần tử
của ma trận đại diện cho giá trị của một điểm ảnh trong ảnh. Cách biểu diễn này
phụ thuộc vào loại ảnh, có thể là ảnh xám (grayscale) hoặc ảnh màu.

150 100 200 50


75 125 175 225
50 75 100 125
200 225 175 150
Hình 2.6 Ma trận biểu diễn ảnh xám
Biểu diễn ảnh dưới dạng histogram: Histogram của ảnh là một biểu đồ thống kê
tần suất xuất hiện của các mức xám trong ảnh. Nó biểu thị phân bố các mức xám và
cung cấp thông tin về độ tương phản và phân bố màu sắc trong ảnh.

Hình 2.7 Biểu diễn ảnh dưới dạng histogram


12
- Biểu diễn ảnh dưới dạng vector đặc trưng: ảnh có thể được biểu diễn dưới dạng
một vector đặc trưng, trong đó mỗi phần tử của vector đại diện cho một đặc
trưng cụ thể của ảnh. Đặc trưng có thể được trích xuất từ ảnh bằng các phương
pháp như biến đổi Fourier, biến đổi Cosine, biến đổi Wavelet, hoặc sử dụng các
thuật toán máy học và trí tuệ nhân tạo để trích xuất thông tin đặc trưng từ ảnh.

2.2.2.2 Xử lý nhiễu

Xử lý nhiễu là quá trình giảm thiểu hoặc loại bỏ nhiễu từ ảnh để cải thiện chất
lượng và độ chính xác của thông tin trong ảnh. Dưới đây là một số phương pháp xử lý
nhiễu trong xử lý ảnh:

- Lọc thông minh: là phương pháp sử dụng các bộ lọc như bộ lọc Gaussian, bộ
lọc trung vị (median filter), hay bộ lọc thông cao (high-pass filter) để giảm thiểu
nhiễu trong ảnh. Các bộ lọc này hoạt động bằng cách áp dụng trọng số khác
nhau cho các điểm ảnh lân cận để tính toán giá trị pixel mới và làm mờ các
thành phần nhiễu.
- Lọc trung vị: là phương pháp thay thế giá trị pixel tại mỗi vị trí bằng giá trị
trung bình của các pixel lân cận, giúp loại bỏ nhiễu bằng cách loại bỏ giá trị
ngoại lệ.
- Lọc Gaussian (Gaussian filtering): Lọc Gaussian là một phương pháp xử lý
nhiễu sử dụng bộ lọc Gaussian. Bộ lọc này áp dụng một ma trận Gaussian lên
ảnh để làm mờ các thành phần nhiễu. Lọc Gaussian giúp loại bỏ nhiễu trong các
tần số cao và làm mờ ảnh một cách trơn tru.
- Lọc đa phương: Lọc đa phương tiện là một phương pháp xử lý nhiễu kết hợp
thông tin không chỉ về giá trị mức xám mà còn về đặc trưng khác như màu sắc
và cấu trúc. Nó giữ được cạnh và chi tiết hơn so với các phương pháp thông
thường, giúp loại bỏ nhiễu mà vẫn giữ được các đặc trưng quan trọng.

13
Hình 2.8 Hình ảnh trước và sau khi xử lí nhiễu
2.2.2.3 Phát hiện biên

Phát hiện biên là quá trình nhằm xác định và tách biên cạnh của các vật thể
trong ảnh. Biên cạnh thường đại diện cho sự thay đổi đáng kể trong giá trị pixel, đại
diện cho ranh giới giữa các vùng có tính chất khác nhau trong ảnh. Một số phương
pháp phổ biến trong phát hiện biên trong xử lý ảnh:

- Phương pháp dựa trên gradient: Sử dụng các toán tử gradient như Sobel, Prewitt
hoặc Roberts để tính đạo hàm của ảnh theo hướng x và y. Các giá trị gradient
cao sẽ thể hiện sự thay đổi mạnh mẽ trong giá trị pixel, cho biết vị trí của các
biên cạnh.
- Phương pháp dựa trên biến đổi Laplace: Sử dụng biến đổi Laplace để tìm các
điểm cực đại và cực tiểu trong ảnh, biểu thị các thay đổi sắc nét trong giá trị
pixel.
- Phương pháp dựa trên độ cong: Sử dụng phương trình độ cong của các điểm
ảnh trong ảnh để xác định vị trí của các biên cạnh. Phương pháp này thường
dựa trên phép tính gradient và độ cong của đường cong.
- Phương pháp dựa trên biến đổi Fourier: Áp dụng biến đổi Fourier cho ảnh và
lọc các tần số cao để xác định vị trí các biên cạnh. Phương pháp này thường
được sử dụng trong phát hiện biên cạnh trên ảnh mờ hoặc ảnh có nhiễu.

14
- Phương pháp dựa trên máy học: Sử dụng các mô hình máy học như mạng
neural để học cách phát hiện biên từ các tập dữ liệu huấn luyện. Các mạng
neural tích cực đã đạt được kết quả ấn tượng trong việc phát hiện biên cạnh.

Các phương pháp trên có ưu điểm và hạn chế riêng, và sẽ phụ thuộc vào bài
toán cụ thể để lựa chọn phương pháp phù hợp.

2.2.2.4 Phân vùng ảnh

Phân vùng ảnh là quá trình chia ảnh thành các vùng nhỏ hơn, gọi là các đối
tượng hoặc phần tử, với mục đích nhận dạng và phân loại các phần tử đó. Mục tiêu của
phân vùng ảnh là tách biệt các vùng có tính chất khác nhau trong ảnh, dựa trên các đặc
trưng như màu sắc, cường độ, texture, hình dạng, hoặc sự tương đồng về ngữ nghĩa.
Các phương phấp phân vùng ảnh:

- Phân vùng dựa trên màu sắc.


- Phân vùng dựa trên cạnh ...
- Phân vùng dựa trên kết hợp đặc trưng.

Phân vùng ảnh đóng vai trò quan trọng trong nhiều ứng dụng như nhận dạng đối
tượng, phân loại, trích xuất đặc trưng, nghiên cứu y học, tự động hóa công nghiệp, thị
giác máy tính, và nhiều lĩnh vực khác.

2.3 Thuật toán xử lý ảnh sử dụng trong đề tài

2.3.1 Giới thiệu về thuật toán HOG

Thuật toán HOG (Histogram of Oriented Gradients) là một thuật toán phân loại
hình ảnh được sử dụng để phát hiện đối tượng trong ảnh. Được giới thiệu bởi Navneet
Dalal và Bill Triggs vào năm 2005, HOG đã trở thành một trong những phương pháp
phát hiện đối tượng quan trọng và phổ biến trong lĩnh vực thị giác máy tính.

Ý tưởng cơ bản của thuật toán HOG là xác định và mô tả đặc trưng của đối
tượng trong ảnh bằng cách tính toán và xây dựng các histogram hướng gradient.
Gradient là sự thay đổi độ sáng theo hướng cụ thể trong một vùng của ảnh. Các
histogram hướng gradient mô tả tần suất xuất hiện của các hướng gradient khác nhau
trong vùng quan
15
tâm.

16
Quá trình phát hiện đối tượng bằng thuật toán HOG bao gồm các bước sau:

- Tiền xử lý ảnh: Ảnh đầu vào được chuyển đổi sang ảnh xám và được làm
mờ để làm giảm ảnh hưởng của nhiễu.
- Tính toán gradient: Các đạo hàm theo x và y được tính toán để xác định
hướng gradient và độ lớn gradient tại mỗi điểm ảnh.
- Chia khối ảnh: Ảnh được chia thành các khối nhỏ, gọi là cell, và tại mỗi
cell, các histogram hướng gradient được tính toán.
- Chuẩn hóa các cell: Các giá trị trong mỗi cell được chuẩn hóa để làm giảm
ảnh hưởng của ánh sáng và tăng tính ổn định của đặc trưng.
- Xây dựng vector đặc trưng: Các histogram của các cell được kết hợp để tạo
thành một vector đặc trưng duy nhất cho toàn bộ ảnh.
- Phân loại: Vector đặc trưng được đưa vào một bộ phân loại (như máy vector
hỗ trợ - SVM) để phân loại đối tượng trong ảnh.

Thuật toán HOG có thể áp dụng cho việc phát hiện đối tượng trong nhiều lĩnh
vực, bao gồm nhận dạng khuôn mặt, nhận dạng chữ viết tay, nhận dạng xe, và nhiều
ứng dụng khác.

Thuật toán HOG (Histogram of Oriented Gradients) đã được áp dụng thành


công trong nhiều lĩnh vực khác nhau. Một số ứng dụng phổ biến của HOG:

- Phát hiện đối tượng: HOG được sử dụng rộng rãi trong việc phát hiện đối tượng
trong hình ảnh. Các đối tượng có thể là khuôn mặt, người, xe hơi, xe đạp, vật
thể trong không gian 3D và nhiều đối tượng khác. HOG giúp xác định và mô tả
các đặc trưng hình học và cấu trúc của các đối tượng, từ đó cho phép nhận dạng
và phân loại chúng.

17
Hình 2.9 Ứng dụng nhận diện người của HOG

Hình 2.10 Ứng dụng nhận diện người của HOG


- Nhận dạng khuôn mặt: HOG có thể được sử dụng để nhận dạng khuôn mặt
trong ảnh. Bằng cách xác định các đặc trưng chính của khuôn mặt như mắt,
mũi, miệng và các đường viền khuôn mặt, HOG có thể xác định vị trí và hướng
của khuôn mặt trong ảnh.

Hình 2.11 Ứng dụng nhận dạng khuôn mặt của HOG
Nhận dạng chữ viết tay: HOG cũng được sử dụng trong việc nhận dạng chữ viết
tay. Bằng cách xác định các đặc trưng hình học của từng ký tự, HOG có thể phân loại

18
các ký tự viết tay và giúp trong việc nhận dạng và chuyển đổi chữ viết tay thành văn
bản có thể đọc được.

Hình 2. 12 Ứng dụng Nhận dạng chữ viết tay của HOG
Giám sát giao thông: HOG được áp dụng trong các hệ thống giám sát giao
thông để phát hiện và nhận dạng các phương tiện giao thông như xe hơi, xe máy, xe
buýt và người đi bộ. HOG giúp trong việc phân loại các đối tượng và theo dõi chúng
trong thời gian thực.

- Nhận dạng hành vi: HOG có thể được sử dụng để nhận dạng các hành vi hoặc
hành động trong ảnh hoặc video. Ví dụ, trong lĩnh vực giám sát an ninh, HOG
có thể được sử dụng để phát hiện các hành vi đáng ngờ như cướp, chạy trốn
hoặc vận chuyển vật thể nghi ngờ.
- Nhận dạng chữ số và ký tự: HOG có thể được áp dụng để nhận dạng chữ số và
ký tự trong các ứng dụng OCR (Optical Character Recognition).

2.3.2 Thuật toán HOG

2.3.2.1 Tính toán gradient

Trong thuật toán HOG (Histogram of Oriented Gradients), tính toán gradient
được sử dụng để xác định hướng và độ lớn của gradient tại mỗi điểm ảnh trong ảnh
xám. Gradient thể hiện sự thay đổi độ sáng trong một vùng ảnh.

Để tính toán gradient, ta sử dụng các đạo hàm theo hướng x và y tại mỗi điểm
ảnh trong ảnh xám. Có hai phương pháp chính để tính toán gradient: phương pháp
Sobel và phương pháp Scharr.

19
2.3.3.1.1 Phương pháp Sobel
- Chuyển đổi ảnh màu sang ảnh xám (nếu cần): Nếu ảnh đầu vào là ảnh màu, ta
chuyển đổi nó sang không gian màu xám để thuận tiện cho tính toán gradient.
- Áp dụng ma trận gradient Sobel để tính toán gradient theo hướng x và y:
 Tính gradient theo hướng x (đạo hàm theo x): Áp dụng ma trận gradient
Sobel Gx lên ảnh xám. Điều này tương đương với việc tính toán sự khác
biệt độ sáng giữa các điểm hàng ngang trong ảnh.
 Tính gradient theo hướng y (đạo hàm theo y): Áp dụng ma trận gradient
Sobel Gy lên ảnh xám. Điều này tương đương với việc tính toán sự khác
biệt độ sáng giữa các điểm dọc trong ảnh.
Ma trận gradient Sobel có dạng như sau:
−1 0 1 −1 −2 −1
𝐺x = [−2 0 2] Gy = [ 0 0 0]
−1 0 1 1 2 1
 Tính toán độ lớn và hướng của gradient:
Tính toán độ lớn của gradient tại mỗi điểm ảnh bằng cách sử dụng công thức Euclidean
Distance:

gradient magnitude = sqrt(Gx2 + Gy2)


trong đó Gx là gradient theo hướng x và Gy là gradient theo hướng y.

Tính toán hướng của gradient tại mỗi điểm ảnh bằng cách sử dụng công thức:

gradient orientation = atan2(Gy, Gx)


Kết quả của quá trình tính toán phương pháp sobel sẽ cho chúng ta các giá trị
độ lớn và hướng của gradient tại mỗi điểm ảnh trong ảnh xám. Các giá trị này sau đó
có thể được sử dụng để xây dựng histogram hướng gradient và mô tả đặc trưng trong
thuật toán HOG.

2.3.3.1.2 Phương pháp Scharr


- Chuyển đổi ảnh màu sang ảnh xám: Nếu ảnh đầu vào là ảnh màu, ta chuyển đổi
nó sang không gian màu xám (grayscale) để thuận tiện cho tính toán gradient.
- Áp dụng ma trận gradient Scharr để tính toán gradient theo hướng x và y:

20
 Tính gradient theo hướng x (đạo hàm theo x): Áp dụng ma trận gradient
Scharr Gx lên ảnh xám. Điều này tương đương với việc tính toán sự khác
biệt độ sáng giữa các điểm hàng ngang trong ảnh.
 Tính gradient theo hướng y (đạo hàm theo y): Áp dụng ma trận gradient
Scharr Gy lên ảnh xám. Điều này tương đương với việc tính toán sự khác
biệt độ sáng giữa các điểm dọc trong ảnh.

Ma trận gradient Scharr có dạng như sau:

−3 0 3 −3 −10 −3
𝐺x = [−10 0 10] Gy = [ 0 0 0]
−3 0 3 3 10 3
- Tính toán độ lớn và hướng của gradient:
 Tính toán độ lớn của gradient tại mỗi điểm ảnh bằng cách sử dụng công
thức Euclidean Distance:
gradient magnitude = sqrt(Gx2 + Gy2)
trong đó Gx là gradient theo hướng x và Gy là gradient theo hướng y.

 Tính toán hướng của gradient tại mỗi điểm ảnh bằng cách sử dụng công
thức:
gradient orientation = atan2(Gy, Gx)
Kết quả của quá trình tính toán phương pháp scharr sẽ cho các giá trị độ lớn và
hướng của gradient tại mỗi điểm ảnh trong ảnh xám. Các giá trị này sau đó có thể được
sử dụng để xây dựng histogram hướng gradient và mô tả đặc trưng trong thuật toán
HOG.

2.3.3.2 Các bước tính HOG

Các bước tính toán HOG (Histogram of Oriented Gradients):

- Chuẩn bị dữ liệu:

Chuyển đổi ảnh đầu vào sang ảnh xám nếu nó không phải là ảnh xám. Chia ảnh
thành các ô (cells): Chia ảnh thành các ô nhỏ hình vuông. Kích thước của mỗi ô phụ
thuộc vào quyết định của bạn và cần phải được lựa chọn sao cho phù hợp với vấn đề
cụ thể mà bạn đang giải quyết.

21
- Tính toán gradient:

Áp dụng phương pháp tính gradient (Sobel hoặc Scharr) để tính toán gradient
theo hướng x và y tại mỗi điểm ảnh trong ảnh xám.

Tính toán độ lớn và hướng của gradient tại mỗi điểm ảnh bằng cách sử dụng công
thức Euclidean Distance và atan2 như đã trình bày trong các câu trả lời trước đó.

- Tạo histogram hướng gradient:

Chia không gian hướng (góc) thành các bin (ngăn) bằng cách chia đều khoảng
từ 0 đến 180 độ (hoặc từ -180 đến 180 độ).

Đối với mỗi ô (cell), tính toán đóng góp của mỗi điểm ảnh vào histogram
hướng gradient. Đóng góp này được xác định bởi độ lớn của gradient tại điểm ảnh đó
và khoảng cách tới bin gần nhất trong không gian hướng. Thông thường, ta sử dụng
các phương pháp như trọng số tuyến tính (linear weighting) hoặc trọng số Gaussian để
tính toán đóng góp.

- Chuẩn hóa các block (khối) của histogram:

Chia ảnh thành các khối (blocks) con có kích thước và bước dịch chuyển (stride)
được xác định trước.

Trong mỗi khối, tổng hợp các histogram của các ô (cells) để tạo ra một vector
đặc trưng.

Chuẩn hóa vector đặc trưng bằng cách sử dụng các phương pháp như chuẩn hóa
L1 (L1 normalization) hoặc chuẩn hóa L2 (L2 normalization).

- Tính toán HOG descriptor:

Ghép các vector đặc trưng của các khối thành một vector duy nhất gọi là HOG
descriptor. HOG descriptor này sẽ được sử dụng làm đặc trưng cho việc nhận dạng
hoặc phân loại đối tượng trong ảnh.

2.4 Một số linh kiện, thiết bị sử dụng trong đề tài

2.4.1 Máy tính nhúng Raspberry Pi 4

22
Raspberry Pi 4 4G là một phiên bản nâng cấp của dòng sản phẩm Raspberry Pi,
với nhiều cải tiến vượt trội so với các phiên bản trước đó. Phiên bản Raspberry Pi 4 có
mức giá hợp lý và cung cấp nhiều tính năng mạnh mẽ, là một lựa chọn phổ biến cho
nhiều ứng dụng như IoT, các dự án nhúng, ….

Hình 2.13 Hình ảnh Raspberry Pi 4 4G


Thông số kỹ thuật của raspberry Pi 4:

- Bộ vi xử lý (CPU): Broadcom BCM2711, ARM Cortex-A72 64-bit quad-core


tốc độ 1.5GHz.
- Bộ nhớ (RAM): 4GB LPDDR4-3200 SDRAM.
- Kết nối mạng:
 Gigabit Ethernet (RJ45): Hỗ trợ kết nối mạng dây với tốc độ cao.
 Wi-Fi: Chuẩn 802.11b/g/n/ac.
 Bluetooth: Chuẩn Bluetooth 5.0.
- Đồ họa: Bộ xử lý đồ họa VideoCore VI, hỗ trợ xử lý video 4K tại 60fps, khả
năng giải mã video H.265 (HEVC) 4Kp60.
- Cổng kết nối:
 cổng micro HDMI(độ phân giải lên đến 4Kp60).
 cổng USB 3.0.
 cổng USB 2.0.
 1 cổng Ethernet Gigabit (RJ45).
23
 1 cổng âm thanh 3.5mm (âm thanh và video qua HDMI cũng được hỗ trợ).
 1 khe cắm thẻ nhớ microSD.
- Lưu trữ: Hỗ trợ lưu trữ dữ liệu thông qua thẻ nhớ microSD.
- Hệ điều hành: Raspberry Pi OS (trước đây là Raspbian), hỗ trợ nhiều hệ điều
hành Linux khác và Windows 10 IoT Core.
- Nguồn cấp: Raspberry Pi 4 có nguồn cấp thông qua một cổng USB-C. Nguồn
cung cấp được khuyến nghị là 5V/3A, và bạn cần đảm bảo rằng nguồn cấp đáp
ứng yêu cầu này để đảm bảo hoạt động ổn định của Raspberry Pi 4
- Kích thước: 88mm x 58mm x 19.5mm.
- Phạm vi nhiệt độ làm việc chính thức của Raspberry Pi 4 là từ 0 độ đến 50 độ.
Nếu nhiệt độ môi trường vượt quá giới hạn này, có thể ảnh hưởng đến hiệu suất
và ổn định của Raspberry Pi 4. Để đảm bảo hoạt động tốt, nên đặt Raspberry Pi
4 trong môi trường có nhiệt độ ổn định và hạn chế tiếp xúc với nhiệt độ cao
hoặc cực lạnh.

Hình 2.14 Sơ đồ chân của raspberry 4


Trong tổng số 40 chân GPIO trên Raspberry Pi, các chức năng chính bao gồm:

 26 chân GPIO (General Purpose Input/Output). Khi được thiết lập là chân đầu
vào, chúng có thể được sử dụng như các chân ngắt (interrupt). Đáng chú ý,
24
GPIO

25
14 và GPIO 15 đã được thiết lập sẵn là các chân đầu vào (input) và có thể sử
dụng như chân ngắt.
 1 chân UART (Universal Asynchronous Receiver-Transmitter) cho truyền/nhận
dữ liệu qua giao diện UART.
 1 chân I2C (Inter-Integrated Circuit) cho giao tiếp đa thiết bị trên một bus I2C.
 chân SPI (Serial Peripheral Interface) cho giao tiếp đồng thời với các thiết bị
ngoại vi hỗ trợ giao thức SPI.
 1 chân PWM (Pulse Width Modulation) trên GPIO 4 cho điều khiển độ rộng
xung PWM.
 chân nguồn 5V để cung cấp điện áp 5V.
 chân nguồn 3.3V để cung cấp điện áp 3.3V.
 8 chân GND (Ground) cho đất.
 chân ID EEPROM được sử dụng cho việc định danh và phân biệt các phiên bản
của Raspberry Pi.

Các chức năng trên cho phép Raspberry Pi kết nối và điều khiển nhiều thiết bị
ngoại vi khác nhau, mở rộng khả năng ứng dụng của nó.

2.4.2 Webcam Logitech C270

Logitech C270 là một webcam phổ biến được sản xuất bởi Logitech, một nhà
sản xuất nổi tiếng trong lĩnh vực thiết bị ngoại vi máy tính. Dưới đây là một số thông
số kỹ thuật cơ bản về Webcam Logitech C270:

 Độ phân giải: Webcam Logitech C270 có độ phân giải video HD 720p, cho chất
lượng hình ảnh rõ nét và sắc nét.
 Góc nhìn: Webcam này có góc nhìn rộng 60 độ, cho phép ghi lại toàn bộ khung
cảnh hoặc nhiều người cùng một lúc trong khung hình.
 Autofocus: Webcam Logitech C270 được trang bị tính năng autofocus tự động
lấy nét, giúp giữ hình ảnh luôn trong tình trạng sắc nét, ngay cả khi di chuyển.
 Microphone tích hợp: Webcam này có microphone tích hợp, cho phép bạn thực
hiện cuộc gọi video hoặc ghi âm với chất lượng âm thanh tốt.

26
 Kết nối USB: Logitech C270 được kết nối với máy tính thông qua cổng USB,
giúp việc cài đặt và sử dụng trở nên đơn giản và thuận tiện.
 Hỗ trợ phần mềm: Webcam này tương thích với nhiều ứng dụng gọi video phổ
biến như Skype, Zoom, Microsoft Teams và nhiều ứng dụng khác.

Hình 2.15 Webcam Logitech C270 gắn vào cổng USB Raspberry pi 4
2.4.3 Cảm biến dò line TCRT5000

Cảm biến dò line TCRT5000 là một cảm biến quang học được sử dụng để phát
hiện và nhận dạng các đường line trên bề mặt. Nó thường được sử dụng trong các ứng
dụng robot hướng line (line-following robots) và các dự án tự động hóa khác.

Cấu tạo của cảm biến TCRT5000 bao gồm một bộ phát tia hồng ngoại và một
bộ thu tia hồng. Khi bộ phát tia hồng ngoại phát ra tia sáng, nếu có một đường line đi
qua, tia sáng sẽ được phản xạ và nhận dạng bởi bộ thu tia hồng ngoại.

Cảm biến TCRT5000 hoạt động trên nguyên tắc phát hiện sự phản xạ của tia
hồng ngoại. Khi đường line nằm trong phạm vi phát tia, tia hồng ngoại sẽ được phản
xạ trở lại và đến được bộ thu. Bộ thu sẽ cung cấp một tín hiệu điện tương ứng với mức
độ phản xạ, cho biết vị trí của đường line.

27
Hình 2.16 Cảm biến dò line TCRT5000
Thông số kỹ thuật cơ bản của cảm biến dò line TCRT5000:

 Nguồn sáng: Tia hồng ngoại


 Điện áp hoạt động: 5V
 Dòng tiêu thụ: Khoảng 20mA
 Khoảng cách phát hiện: Tùy thuộc vào môi trường và mức độ phản xạ của
đường line, thường trong khoảng 2-3mm
 Đầu ra: Tín hiệu số (0 hoặc 1) hoặc tín hiệu analog (phụ thuộc vào biến thể của
cảm biến)
 Giao tiếp: Dễ dàng gắn kết với các vi điều khiển và module khác thông qua
chân kết nối
 Kích thước: Khoảng 10mm x 5mm x 5mm
 Độ tin cậy: Cảm biến TCRT5000 có độ tin cậy cao và được sử dụng phổ biến
trong các ứng dụng dò line

2.4.5 Động cơ DC giảm tốc V1 1 trục 1:48

Động cơ DC giảm tốc V1 1 trục 1:48 là một loại động cơ DC được tích hợp với
hộp giảm tốc có tỉ số truyền là 1:48. Điều này có nghĩa là đầu ra của động cơ DC sẽ
quay chậm hơn đầu vào một tỉ lệ 1:48.

28
Hình 2.17 Hình ảnh Động cơ DC giảm tốc V1 1 trục 1:4
Thông số kỹ thuật:
 Điện áp làm việc: Thông thường là 3V - 12V DC. Điện áp này sẽ ảnh hưởng
đến tốc độ và hiệu suất của động cơ.
 Tốc độ không tải: Đây là tốc độ quay của động cơ khi không có tải hoặc tải nhẹ.
Thông thường, động cơ này có tốc độ không tải từ khoảng vài chục đến vài
trăm vòng/phút.
 Mô-men xoắn: Đây là lực xoắn mà động cơ DC có thể tạo ra để vận chuyển tải
trọng. Mô-men xoắn của động cơ giảm tốc V1 1 trục 1:48 thường được xác
định trong đơn vị N.cm (Newton-centimeter) hoặc kg.cm (kilogram-
centimeter).
 Kích thước: Động cơ DC giảm tốc V1 1 trục 1:48 thường có kích thước nhỏ
gọn và dễ dàng tích hợp vào các dự án.

Ứng dụng: Động cơ DC giảm tốc V1 1 trục 1:48 được sử dụng rộng rãi trong các
ứng dụng như robot di động, xe tự chế, máy in 3D nhỏ, thiết bị tự động hóa và
nhiều ứng dụng khác yêu cầu động cơ có khả năng điều chỉnh tốc độ và mô-men
xoắn

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

29
Module điều khiển động cơ L298 được ra đời vào những năm 1990. Nó được
phát triển bởi công ty SGS-Thomson Microelectronics (nay là STMicroelectronics),
một công ty chuyên sản xuất linh kiện điện tử và bán dẫn.

30
L298 là một chip điều khiển động cơ DC và bước (stepper motor) được tích hợp
nhiều chức năng nhưng vẫn giữ được độ đơn giản trong thiết kế. Chip này cho phép
điều khiển một hoặc hai động cơ DC cùng một lúc, với khả năng kiểm soát chiều quay
và tốc độ của động cơ.

Hình 2.18 Module điều khiển động cơ L298


Thông số kĩ thuật của module điều khiển động cơ L298:

 Điện áp làm việc: 5V - 35V DC.


 Dòng điện tối đa: 2A cho mỗi kênh động cơ.
 Dòng tĩnh: 0.7mA (để tiết kiệm năng lượng khi không hoạt động).
 Số kênh điều khiển động cơ: 2 (cho phép điều khiển động cơ DC hoặc động cơ
bước).
 Chế độ điều khiển: Chế độ xoay một chiều (forward) và đảo chiều (reverse) cho
động cơ DC. Chế độ xoay ngược (full-step) và bán bước (half-step) cho động
cơ bước.
 Chân điều khiển: Chân điều khiển cho mỗi kênh động cơ gồm ENA, IN1, IN2
cho kênh 1 và ENB, IN3, IN4 cho kênh 2.

31
 Bảo vệ: Tích hợp các tính năng bảo vệ bao gồm chống quá nhiệt, chống quá
dòng và chống ngắn mạch.
 Kích thước: Module thường có kích thước nhỏ gọn và dễ dàng tích hợp vào các
dự án.

Ứng dụng của module điều khiển động cơ L298: Xe điều khiển từ xa, Điều khiển
động cơ trong các thiết bị gia dụng, Điều khiển động cơ trong dự án DIY, Máy in 3D,….

2.4.6 Module lm2596

Module LM2596 là một module điều chỉnh điện áp được sử dụng để chuyển đổi
một nguồn điện DC không ổn định thành một nguồn điện DC ổn định và có giá trị
được điều chỉnh. Nó được sử dụng phổ biến trong các ứng dụng điện tử, năng lượng
mặt trời, mạch điều khiển, và các dự án DIY.

Module LM2596 được thiết kế dựa trên chip LM2596, một vi mạch điện tử
công suất cao có khả năng chuyển đổi hiệu quả từ nguồn điện đầu vào thành nguồn
điện đầu ra với điện áp và dòng điện được điều chỉnh.

Hình 2.19 Module lm2596

Thông số kỹ thuật của module LM2596:

32
 Điện áp đầu vào: 4.5V đến 35V (tùy chọn).

33
 Điện áp đầu ra: 1.25V đến 30V (tùy chỉnh).
 Dòng đầu ra tối đa: 3A (có thể có các phiên bản khác nhau với dòng đầu ra khác
nhau).
 Hiệu suất chuyển đổi: Đạt đến 90% (tùy thuộc vào điện áp đầu vào và điện áp
đầu ra).
 Tần số chuyển đổi: 150kHz.
 Có tích hợp bộ chỉnh áp điện áp (voltage regulator) và bộ tăng áp (boost
converter).
 Có tích hợp bảo vệ quá dòng, quá nhiệt và ngắn mạch.
 Kích thước: Thông thường là khoảng 43mm x 20mm x 14mm (có thể có biến
thể với kích thước khác nhau).

2.4.7 Pin li-po

Pin Li-Po (Lithium Polymer) sử dụng công nghệ lithium-ion, trong đó chất điện
phân polyme được sử dụng thay vì chất lỏng trong pin lithium-ion truyền thống. Chất
điện phân polyme giúp tạo thành một cấu trúc mỏng và linh hoạt, cho phép pin Li-Po
có khả năng thiết kế với nhiều hình dạng và kích thước khác nhau. Ngày nay pin lipo
được sử dụng nhiều thiết bị điện tử, máy bay không người lái, Thiết bị y tế và khoa
học…

34
Hình 2.20 pin li-po 7.4v, 2200mAh
Thông số kỹ thuật

 Điện áp: 7.4V(mỗi pin 3.7V)


 Dung lượng: 2200mAh
 Kích thước: 105x34x15mm
 Đầu ra gồm 2 dây: đỏ và đen
 Đầu sạc 3P: dây đỏ (dương), 2 dây đen (đầu âm 2 Pin, lần lượt 3.7V,7.4V)

Ưu điểm:

 Trọng lượng nhẹ dễ tạo ra các hình dạng khác nhau.


 Dung lượng lưu trữ cao.
 An toàn, hạn chế cháy nổ

Nhược điểm:

 Chi phí sản xuất và giá thành cao hơn một số loại pin.
 Tuổi thọ sẽ giảm nhiều sau quá trình sạc và sả.

Bộ sạc cho pin li-po: các bộ sạc lại pin lipo có nhiều loại dưới đây là một số loại sạc có
trên thị trường được sử dụng nhiều.

Hình 2.21 Bộ sạc pin li-po B3

35
Hình 2.22 Bộ sạc pin li-po B6AC Imax
2.4.8 Pin sạc 18650

Pin sạc 18650 một loại pin lithium-ion sạc lại có kích thước chuẩn 18650, với
đường kính 18mm và chiều dài 65mm. Đây là một loại pin có năng lượng cao và khả
năng sạc lại, nên đã trở thành lựa chọn phổ biến cho nhiều thiết bị và ứng dụng khác
nhau. Các đặc điểm nổi bật của pin sạc 18650 bao gồm dung lượng cao, khả năng tuần
hoàn sạc nhiều lần và độ an toàn cao. Dung lượng của pin 18650 có thể từ vài trăm
mAh cho đến hơn 3000 mAh, tùy thuộc vào nhà sản xuất và mục đích sử dụng. Điều
này cho phép các thiết bị hoạt động lâu hơn trước khi cần sạc lại.

36
Hình 2.23 Pin Lithium sạc 18650
Thông số kỹ thuật:

 Dung lượng: 1800 – 3500mAh


 Điện áp: 3.7V
 Kích thước: 18x65mm
 Dòng xả:10A

Một số bộ sạc lại pin 18650 phổ biến

Hình 2.24 Bộ sạc 2 cell pin

37
Hình 2.25 Bộ sạc 4cell pin
Pin sạc 18650 được sử dụng rộng rãi trong nhiều thiết bị cầm tay và ứng dụng
khác nhau, bao gồm đèn pin, máy nghe nhạc, máy quay phim, máy ảnh, máy tính xách
tay và các thiết bị di động khác. Nó cũng được sử dụng để tạo ra các pin sạc dự phòng
để cung cấp năng lượng di động.

2.5 Phần mềm sử dụng

2.5.1 Phần mềm thiết kế 3D Solidworks

SolidWorks là một phần mềm thiết kế 3D nổi tiếng và phổ biến trong lĩnh vực
kỹ thuật và thiết kế cơ khí. SolidWorks được phát triển bởi hãng Dassault Systèmes
SolidWorks Corp, một công ty con của Dassault Systèmes, một tập đoàn công nghệ
phần mềm hàng đầu thế giới. SolidWorks được phát triển dựa trên mô hình CAD
(Computer-Aided Design) và được thiết kế để giúp kỹ sư và nhà thiết kế tạo ra các mô
hình 3D chính xác và dễ dàng sử dụng.

Từ năm 1995 đến nay, SolidWorks đã phát triển và cập nhật liên tục với các
phiên bản mới và nâng cấp tính năng để đáp ứng nhu cầu ngày càng cao của ngành
công nghiệp và thiết kế. SolidWorks cung cấp các công cụ mạnh mẽ để thực hiện các
chức năng thiết kế, mô phỏng, lắp ráp, tạo bản vẽ kỹ thuật, và phân tích về cơ khí. Nó
cung cấp một giao diện đồ họa dễ sử dụng và có tích hợp các tính năng tự động giúp
tăng năng suất và tiết kiệm thời gian trong quá trình thiết kế.

38
Hình 2.26 Biểu tượng Solidworks để vào phần mềm

Hình 2.27 Giao diện làm việc của phần mềm Solidworks
Một số tính năng nổi bật của solidworks:

 Mô hình hóa 3D: SolidWorks cho phép người dùng tạo ra các mô hình 3D
chính xác của các sản phẩm và bộ phận. Người dùng có thể tạo hình, chỉnh sửa
và ghép nối các hình dạng để tạo ra các thiết kế phức tạp.
 Bản vẽ kỹ thuật: SolidWorks cung cấp các công cụ để tạo ra bản vẽ kỹ thuật 2D
từ các mô hình 3D. Người dùng có thể tạo các bản vẽ chi tiết, bản vẽ lắp ráp và
bản vẽ kỹ thuật phức tạp.

39
 Mô phỏng và phân tích: SolidWorks cung cấp các công cụ mô phỏng và phân
tích để đánh giá tính khả thi và hiệu suất của các thiết kế. Người dùng có thể
thực hiện phân tích cơ học, phân tích chuyển động, phân tích dòng chảy và
phân tích tải trọng.
 Tạo bản vẽ và tài liệu: SolidWorks cho phép người dùng tạo bản vẽ và tài liệu
chi tiết cho sản phẩm và bộ phận. Các công cụ bản vẽ tự động và mô hình hóa
thông tin giúp tạo ra các tài liệu chuyên nghiệp.
 Quản lý dữ liệu: SolidWorks cung cấp các công cụ quản lý dữ liệu thiết kế để
lưu trữ, quản lý và chia sẻ tệp tin thiết kế. Điều này giúp người dùng dễ dàng
quản lý phiên bản và đồng bộ hóa dữ liệu giữa các dự án.
 Tích hợp hệ thống: SolidWorks tích hợp tốt với các phần mềm
CAD/CAM/CAE khác và các hệ thống PLM (Product Lifecycle Management).
Điều này giúp người dùng tối ưu hóa quá trình thiết kế và sản xuất.
 Cộng tác đồng người dùng: SolidWorks có một cộng đồng người dùng lớn và
sôi động. Người dùng có thể chia sẻ kinh nghiệm, kiến thức và tìm kiếm giải
pháp từ những người dùng khác trên diễn đàn và mạng xã hội của SolidWorks.

2.5.2 Phần mềm lập trình visual studio code

Visual Studio Code là một trình soạn thảo mã nguồn mở được phát triển bởi
Microsoft. Đây là một trong những phần mềm lập trình và được sử dụng rộng rãi bởi
các nhà phát triển trên toàn thế giới. Dưới đây là một số điểm nổi bật và giới thiệu về
Visual Studio Code (VS Code):

- Đa nền tảng: VS Code hỗ trợ trên các nền tảng phổ biến như Windows, macOS
và Linux, cho phép người dùng lập trình trên mọi hệ điều hành.
- Môi trường phát triển tích hợp (IDE) nhẹ: VS Code có giao diện người dùng
đơn giản và nhẹ, giúp tối ưu hóa hiệu suất và tiết kiệm tài nguyên hệ thống.
- Hỗ trợ đa ngôn ngữ: VS Code hỗ trợ nhiều ngôn ngữ lập trình phổ biến, bao
gồm JavaScript, Python, C++, Java, HTML, CSS và nhiều ngôn ngữ khác.
- Hỗ trợ đa ngôn ngữ: VS Code hỗ trợ nhiều ngôn ngữ lập trình phổ biến, bao
gồm JavaScript, Python, C++, Java, HTML, CSS và nhiều ngôn ngữ khác.

40
Một số ứng dụng chính của VS Code:

- Lập trình web: VS Code hỗ trợ lập trình web với các ngôn ngữ như HTML,
CSS và JavaScript.
- Phát triển ứng dụng di động: VS Code hỗ trợ phát triển ứng dụng di động trên
các nền tảng như iOS và Android.
- Lập trình back-end: VS Code cung cấp các tính năng hỗ trợ lập trình back-end
với các ngôn ngữ như Node.js, Python, Ruby và PHP.

Hình 2.22 Giao diện làm việc của visual studio code

2.5.3 Thư viện xử lý ảnh Opencv

OpenCV là một thư viện mã nguồn mở phổ biến và mạnh mẽ trong lĩnh vực xử
lý ảnh và thị giác máy tính. Nó cung cấp một bộ các công cụ, thuật toán và chức năng
để xử lý, phân tích và nhận dạng ảnh và video. OpenCV được viết bằng C++ và hỗ trợ
các ngôn ngữ lập trình khác như Python và Java thông qua các liên kết thư.

41
Hình 2.28 Thư viện OpenCV
viện. OpenCV cung cấp các tính năng và chức năng đa dạng, bao gồm lọc ảnh, biến
đổi ảnh, phát hiện đối tượng, theo dõi chuyển động, nhận dạng khuôn mặt, xử lý ảnh y
tế, và nhiều ứng dụng khác trong lĩnh vực xử lý ảnh và thị giác máy tính.

Một số tính năng nổi trội của Opencv là:

- Phát hiện và theo dõi đối tượng: Cung cấp các thuật toán phát hiện đối tượng
như phát hiện khuôn mặt, phát hiện đối tượng trong thời gian thực.
- Trích xuất đặc trưng: Hỗ trợ trích xuất đặc trưng từ hình ảnh như ma trận
histogram, biểu đồ gradient và đặc trưng HOG (Histogram of Oriented
Gradients)
- Xử lý và phân tích video: Cung cấp các chức năng để xử lý video như trích xuất
khung hình, ghi video và phân tích các thuộc tính video.
- Thị giác máy tính: Cung cấp các công cụ và thuật toán để xây dựng ứng dụng
thị giác máy tính như xác định vị trí và vị trí vật thể.

42
Chương 3
VẬT LIỆU VÀ PHƯƠNG PHÁP NGHIÊN CỨU

3.1 Nội dung thực hiện

3.1.1 Thời gian và địa điểm thực hiện đề tài

Đề tài được thực hiện tại khoa Cơ khí – Công nghệ, trường Đại học Nông Lâm
Thành phố Hồ Chí Minh trong khoảng thời gian từ tháng 3 đến tháng 6 năm 2023.
Thời gian biểu được chia ra như sau:
Bảng 3.1: Thời gian thực hiện đề tài
STT Nội dung Thời gian (tuần)
1 Tìm hiểu và lên ý tưởng cho mô hình 1 tuần
Thiết kế bản vẽ, liệt kê, chuẩn bị các thiết bị cần sử dụng
2 1 tuần
trong đề tài
Lập trình xử lý ảnh và điều khiển các thiết bị ngoại vi
3 7 tuần
thông qua máy tính nhúng Raspberry
4 Lắp ráp mô hình, chạy khảo nghiệm 1 tuần
5 Viết báo cáo 2 tuần
Tổng thời gian thực hiện 12 tuần
3.1.2 Đối tượng và các thiết bị nghiên cứu

- Tìm hiểu, nghiên cứu các loại robot tuần tra-Patrol Robot.
- Tìm hiểu, nghiên cứu cách điều khiển động cơ và các thiết bị ngoại vi.
- Tìm hiểu về máy tính nhúng Raspberry Pi 4.
- Tìm hiểu về phần mềm lập trình visual studio code.
- Tìm hiểu kiến thức xử lý ảnh và thuật toán nhận diện người.
Các thiết bị nghiên cứu bao gồm: Máy tính nhúng Raspberry Pi 4, và Logitech C270.
3.1.3 Các phần mềm được sử dụng

- Các phần mềm dùng để thiết lập cho Raspberry Pi 4: Raspberry Pi Imager,
Advance IP Scanner, PuTTY và VNC Viewer.
- Các phần mềm lập trình: Thonny Python IDLE và visual studio code.

43
- Các phần mềm thiết kế và mô phỏng: SolidWorks và Proteus.

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

Thực hiện nghiên cứu theo phương pháp sau:

- Tìm hiểu các mô hình Robot tuần tra đã có.


- Tìm hiểu phần mềm Thonny Python IDLE và visual studio code để lập trình
cho Raspberry Pi 4.
- Xây dựng thuật toán xử lý ảnh nhận diện người.
- Xây dựng thuật toán điều khiển toàn bộ hệ thống.
- Tìm hiểu phần mềm SolidWorks để thiết kế mô hình robot tuần tra 2 tầng.
- Tìm hiểu phần mềm Proteus để tiến hành một số mô phỏng trước khi chạy.
- Thiết kế mô hình và lắp ráp các linh kiện hợp lí.
- Khả nghiệm kết quả thực tế.

3.3 Chuẩn bị nguyên liệu

Bảng 3.2: Nguyên liệu được sử dụng trong đề tài


STT Tên linh kiện Kích thước Sl Hình ảnh
1 Raspberry pi 4 85.6 mm × 56.5 mm 1

2 Cảm biến dò line 32 x 14mm 2


TCRT5000

3 Module lm2596 48x23x14mm 1

44
4 Webcam Logitech 25.01 x 16.38 x 1
C270 12.54

5 Driver motor L298 43x43x27mm 1

6 Động cơ DC giảm tốc 70x22x18mm 2


V1 1 trục 1:48

7 Bánh xe 65mm 2

8 Pin lithium 18650 18x65mm 2

9 Pin lipo 7.4v 1


2200mah

10 Trụ đồng đực cái M3 5cm, 3cm, 1cm 10


0.5Cm, 5cm, 3cm

45
Chương 4
KẾT QUẢ VÀ KHẢO NGHIỆM

4.1 Thiết kế mô hình và nguyên lý hoạt động

4.1.1 Thiết kế mô hình

Ý tưởng thiết kế: Kế thừa từ các thiết kế về robot 2 tầng đã có, các thiết kế đó
có ưu điểm và nhược điểm khác nhau, từ đó là cơ sở thiết kế để mô hình robot tuần
tra-Patrol robot. Mô hình được thiết kế dựa trên các điểm mạnh và khắc phục các điểm
yếu từ đó hoàn thiện mô hình, kết quả thu được là thiết kế được mô hình sau:

Hình 4.1 Mô hình Robot tuần tra 3D

46
Hình 4.2 Mô hình khi tách rời các linh kiện
Chú thích các bộ phận trên mô hình:
1. Module lm2596 12. Cảm biến dò line TCRT5000
2. Webcam Logitech C270 13. Trụ đồng 1 cm
3. Pin lipo 7.4v 2200mah 14. Bánh xe đa hướng
4. Tấm mica trên tầng 2 15. Pin sạc 18650
5. Tấm mica tầng trệt
6. Module điều khiển động cơ L298
7. Bánh xe
8. Trụ đồng 5 cm
9. Động cơ DC
10. Hộ bảo vệ và raspberry Pi 4
11. Trụ đồng 3 cm

47
Hình 4.3 Mô hình thực tế sau khi hoàn thành
4.1.2 Nguyên lý hoạt động của mô hình

Các bước chuẩn bị trước khi chạy mô hình:

Bước 1: mở công tắc cấp nguồn cho Diver L298, quan sát trên Diver L298 thấy
đèn sáng là được.

Hình 4.4 Công tắc cấp nguồn Diver L298


48
Bước 2: Cấp nguồn cho raspberry quan sát đèn tín hiệu cảm biến.

Hình 4.5 Cấp nguồn cho raspberry


Bước 3: Mở VNC view kết nối raspberry tiến hành chạy mô hình.

Hình 4.6 Mở VNC view


Sau các bước thiết lập trước khi cho mô hình mobile robot tuần tra hoạt động
theo nguyên lý như sau:

Khi cấp nguồn cho mô hình đèn báo sáng và có tín hiệu bắt đầu.
49
Thì hai cảm biến đóng vai trò là khối thu nhận tín hiệu đấu vào. Tín hiệu thu
nhận được từ hai cảm biến được đưa đến khối xử lý trung tâm ở đây là Raspberry p4
+B, đóng vai trò là nơi nhận và xử lý tín hiệu từ đó xuất tín hiệu điều khiển đến Diver.

Khi có tín hiệu từ hai cảm biến robot xác định được line cần di chuyển và bám
theo line sau đó raspberry xuất tín hiệu đến Diver L298 để điều khiển động cơ theo lưu
đồ thực toán. Đồng thời mở camera thực hiện việc thu nhận ảnh trong quá trình di
chuyển và sau đó tiến hành xử lý ảnh.

Trong quá trình di chuyển nếu nhận diện được con người thì tiền hành chụp và
lưu ảnh sau đó thực hiện gửi email cảnh báo đến cho chủ nhà. Còn nếu như không
nhận diện được thì tiếp tục di chuyển theo line cho đến hết.

Hình 4.7 Email nhận thông báo phát hiện người


4.2 Sơ đồ mạch điện

4.2.1 Mạch điều khiển

50
Hình 4.8 Sơ đồ mạch điều khiển
Sơ đồ thế hiện chân ra dây giữa raspberry pi 4 với Diver điều khiển động cơ
L298 và hai cảm biến TCRT5000, bên cạnh nó còn thể hiện sơ đồ ra chân giữa diver
điều khiển động cơ.

Nguyên lý hoạt động:

Mạch điều khiển trung tâm raspberry nhận tín hiệu từ hai cảm biến TCRT5000,
raspberry xử lý tín hiệu đầu vào sau đó xuất tín hiệu truyền đến Diver L298.

Thông qua các chân IN1, IN2, IN3, IN4 của Diver L298 để điều khiển chiều
quay của 2 động cơ quay thuận hay nghịch. Bằng cách điều chỉnh trạng thái của các
chân này, ta có thể điều khiển động cơ quay theo hướng và tốc độ mong muốn.

Để động cơ quay theo chiều thuận, ta đưa tín hiệu HIGH vào IN1 và IN3, và
tín hiệu LOW vào IN2 và IN4.

Để động cơ quay theo chiều nghịch, ta đưa tín hiệu HIGH vào IN2 và IN4, và
tín hiệu LOW vào IN1 và IN3.

51
4.2.2 Mạch nguồn

Sử dụng module Lm2596 để duy trì điện áp và dòng điện ra luôn ở mức 3A.

Hình 4.9 Module Lm2596


Để đảm bảo raspberry không bị hư hỏng do nguồn điện không ổn định và biết
điện áp dòng vào của raspberry là 5.1V/ 3A chọn nguồn là pin lipo 7.4V/2200mA
thông qua module để điện áp đầu vào raspberry luôn ổn định tránh được các sử cố
không đáng có.

Vẽ lại sơ đồ nguyên lí của module Lm2596:

Hình 4.10 Sơ đồ nguyên lý của module Lm2596

52
Nguyên lý hoạt động:

Nguyên lý hoạt động chính của module LM2596 là sử dụng một bộ chuyển đổi
để điều chỉnh điện áp đầu ra. Module này sử dụng một tụ điện và các thành phần điện
tử như cuộn cảm transistor, và IC điều khiển (controller) để tạo ra một nguồn điện DC
ổn định và có giá trị được điều chỉnh.

Khi có dòng điện chạy vào In+ và In- IC điều khiển trong module điều khiển
các transistor hoạt động theo chu kỳ. Transistor mở cho phép dòng điện chảy qua cuộn
cảm, khi dòng điện chảy qua cuộn cảm và lưu trữ năng lượng trong trường từ được tạo
ra, điều này gây ra một sự tăng áp trong cuộn cảm.

Khi transistor sẽ bị tắt, ngắt đường dòng điện chảy qua cuộn cảm. Khi điện áp
đầu vào bị ngắt, năng lượng trong cuộn cảm sẽ được truyền cho tụ điện thông qua một
diode. Tụ điện sẽ lưu trữ năng lượng và cung cấp cho tải đầu ra.

Thông qua quá trình trên, module sẽ tạo ra một nguồn điện một chiều có dòng
điện áp ổn định, có thay đổi bằng cách chỉnh chiết áp tăng lên hay hạ xuống. Vi điều
khiển (controller) trong module đảm bảo rằng điện áp đầu ra luôn được duy trì ở một
mức ổn định và ổn định ngay cả khi điện áp đầu vào và tải thay đổi.

53
4.3 Lưu đồ thuật toán

4.3.1 Lưu đồ

BẮT ĐẦU

INPUT: CB1 VÀ
CB 2

IF: ĐÚNG ĐỘNG CƠ 1 =1


CB1=1
CB2=1 ĐỘNG CƠ 2 =1

SAI

IF: ĐỘNG CƠ 1 =0
ĐÚNG
CB1=0 ĐỘNG CƠ 2 =0
CB2=0

SAI

IF: ĐÚNG ĐỘNG CƠ 1 =1


CB1=1
CB2=0 ĐỘNG CƠ 2 =0

SAI

SAI
IF: ĐÚNG ĐỘNG CƠ 1 =0
CB1=0
CB2=1 ĐỘNG CƠ 2 =1

KẾT THÚC

54
4.3.2 Giải thích lưu đồ

Khi nhấn bắt đầu: Tín hiệu đầu vào từ hai cảm biến và điều khiển hai động cơ
như sau:

Nếu hai cảm biến ở mức 0 thì hai động cơ kích ở mức 1 đưa robot tiến về phía
trước. Nếu cảm biến 1 ở mức 1 và cảm biến 2 ở mức 0 thì động cơ 1 kích ở mức 1 và
động cơ 2 ở mức 0 robot rẻ phải.

Nếu cảm biến 1 ở mức 0 và cảm biến 2 ở mức 0 thì động cơ 1 ở mức 0 và động
cơ 2 kích ở mức 1 robot rẻ trái.

Nếu cả hai cảm biến ở mức 1 thì hai động cơ kích ở mức 0 robot dừng.

4.4 Lưu đồ xử lý ảnh

4.4.1 Lưu đồ

BẮT ĐẦU KẾT THÚC

Mở camera thu nhận ảnh

Gửi mail cảnh báo


đến chủ nhà
Mở OpenCV

Chụp và lưu ảnh


Gọi thuật toán HOG
SAI

ĐÚNG
Tạo mô hình nhận diện Nhận
người diện được
người

55
4.4.2 Giải thích lưu đồ

Thông qua camera, ta thu nhận được ảnh trực tiếp thực hiện mở thư viện
OpenCV.

Trong OpenCV dùng hàm HOG Descriptor để tạo các bộ mô ta đặc trưng theo
thuật toán HOG tiếp đến dùng hàm setSVMDetecto để thiết lập mô hình pretrained
dựa vào thuật toán SVM.

Từ các hàm trên cuối cùng ta nhận được mô hình thuật toán nhận diện được con
người.

Khi nhận diện được người chụp và lưu ảnh đến thư mục cài đặt từ trước và tiến
hành gửi email cảnh báo đến chủ nhà.

Khi không nhận diện được robot tiếp tục di chuyển và quét thu nhận ảnh.

4.5 Giao điện điều khiển

Hình 4.11 Giao diện hiển thị Camera trong quá trình duy chuyển

56
Trong quá trình di chuyển ta có thể quan sát camera qua màn hình thấy được
quá trình robot nhận diện người và gửi email cảnh báo đến chủ nhà.

4.6 kết quả khảo nghiệm

Cho robot chạy thử nghiệm 50 lần và thu được kết quả như sau:

Điều kiện thực hiện:

- Ánh sáng đầy đủ


- Trên line không có vật cản

Bảng 4.1: Kết quả khảo nghiệm


Nhận diện người
Nhận diện người Không bám
gửi ảnh chưa chuẩn Bám line
gửi ảnh chuẩn xác line
xác (độ trễ)
Kết quả 40/50 10/50 47/50 3/50

Đạt tỷ lệ 80% 20% 94% 6%

Kết luận: Sau 50 lần chạy thử nghiệm robot cho thấy khả năng về bám line ở
mức tương đối tốt, về mặt xử lý ảnh thì còn nhiều hạn chế, camera còn có độ trễ lớn
ảnh hưởng đến kết quả xử lý ảnh và gửi Email.

57
Chương 5
HƯỚNG PHÁT TRIỂN

5.1 Kết luận

Đã tìm hiểu nghiên cứu và thực hiện được các yêu cầu đề ra:

- Tìm hiểu và học thêm một số kiến thức về một số robot tuần tra đã và đang
được phát triển.
- Thiết kế, chế tạo robot 2 tầng di chuyển dò vạch theo đường line có sẵn.
- Lập trình điều khiển để robot có thể quét và thu nhận ảnh trong khi di chuyển.
- Lập trình xử lý ảnh khi phát hiện nghi phạm trước cửa nhà, gửi Email thông báo
cho chủ nhà.

5.2 Đề nghị

- Vì thời gian, kiến thức, kinh nghiệm và điều kiện kinh tế có hạn nên mô hình đồ
án còn nhỏ.
- Thiết kế mô hình bằng vật liệu tốt hơn để cứng cáp và hoạt động được lâu dài
hơn.

5.3 Những hạn chế

- Vật liệu sử dụng trong mô hình chưa đảm bảo ngoài thời tiết khắc nghiệt.

5.4 Hướng phát triển

- Phát triển Robot tuần tra di chuyển linh hoạt trên mọi loại địa hình, vượt qua
các chướng ngại vật và tránh va chạm.
- Robot tuần tra có thể được trang bị công nghệ giao tiếp để có thể tương tác với
con người hoặc hệ thống khác, như truyền thông âm thanh, màn hình hiển thị
hoặc công nghệ nhận dạng giọng nói.
- Phát triển tính năng tự sạc robot tuần tra có thể được phát triển để tự động tìm
kiếm nguồn năng lượng.

58
TÀI LIỆU THAM KHẢO

Tài liệu tiếng việt tham khảo:

[1] Th. S Nguyễn Trần Minh Nguyệt, Ks. Phạm Quang Huy, 2020, Xử Lý Ảnh Với
Arduino và Raspberry. Nhà xuất bản Thanh Niên, 464.Trang

[2] Phạm Quang Huy, Nguyễn Tất Bảo Thiện, 2019. Lập trình hệ thống nhúng với
Raspberry. Nhà xuất bản Thanh Niên, 462 trang.

[3] Bùi Viết Hà, 2020. Python Cơ Bản. Nhà xuất bản Đại học Quốc Gia Hà Nội,
253 trang.

Các website đã tham khảo:

[4] Tình hình tội phạm trộm cắp ở TP.HCM

<https://bom.so/kapF5l>

[5] Giới thiệu robot tuần tra an ninh

<https://goeco.link/CJAOL>

<https://goeco.link/CFbZO>

[6] Tham khảo thiết kế robot aphabot

<https://goeco.link/MQgbe>

[7] Thuật toán HOG nhận diện người và ứng dụng của thuật toán HOG

<https://goeco.link/sGKQi>

[8] Gửi mail qua python

<https://goeco.link/JbaZK>

[9] Gửi mail qua python kèm theo tẹp hoạc hình ảnh

< https://goeco.link/OCJtn>

59
PHỤ LỤC

Dưới đây là chương trình điều khiển mobile robot tuần tra, chương trình được
viết bằng ngôn ngữ lập trình python, trên phần mềm Visual Studio Code và Python
IDE. Sử dụng máy trình nhúng raspberry xử lý ảnh và điều khiển mobile robot tuần
tra.

Chương trình điều khiển của Robot tuần tra:

import cv2

import os

import yagmail

import time

from threading import Thread

import RPi.GPIO as gpio

gpio.setmode(gpio.BOARD)

gpio.setwarnings(False)

Enb = 13

Ena = 11

gpio.setup(12,gpio.OUT)

gpio.setup(15,gpio.OUT)

gpio.setup(Ena,gpio.OUT)

gpio.setup(Enb,gpio.OUT)

leftSensor = 7

rightSensor = 10

gpio.setup(leftSensor,gpio.IN)

60
gpio.setup(rightSensor,gpio.IN)

EnaPWM = gpio.PWM(Ena,1000)

EnaPWM.start(50)

EnbPWM = gpio.PWM(Enb,1000)

EnbPWM.start(50)

def leftOn():

gpio.output(12,1)

def leftOff():

gpio.output(12,0)

def rightOn():

gpio.output(15,1)

def rightOff():

gpio.output(15,0)

def stopAll():

gpio.output(12,0)

gpio.output(15,0)

email = '19153088@st.hcmuaf.edu.vn'

password = 'assncxzensqrpagl'

email_to = '19153030@st.hcmuaf.edu.vn'

yag = yagmail.SMTP(email, password)

subject = "CẢNH BÁO !!!"

body = '''Phát hiện người'''

file_path_image = '/home/pi/Desktop/DATN/PhatHienNguoi/save_image/hinh.jpg'
61
path_save_image = '/home/pi/Desktop/DATN/PhatHienNguoi/save_image'

# OpenCV features an implementation for a very fast human detection method, called
HOG (Histograms of Oriented Gradients)

hog = cv2.HOGDescriptor()

hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())

cv2.startWindowThread()

cap = cv2.VideoCapture(0)

data = 0

def XLA():

while True:

global data

ret, frame = cap.read()

frame = cv2.resize(frame, (720, 480))

(humans, _) = hog.detectMultiScale(frame, winStride=(10, 10), padding=(32, 32),


scale=1.1)

if len(humans) > 0:

cv2.imwrite(os.path.join(path_save_image , 'hinh.jpg'), frame)

time.sleep(0.1)

data = 1

print('Human Detected')

time.sleep(2)

else:

data = 0

62
print('None')

time.sleep(0.01)

for (x, y, w, h) in humans:

pad_w, pad_h = int(0.15 * w), int(0.01 * h)

cv2.rectangle(frame, (x + pad_w, y + pad_h), (x + w - pad_w, y + h - pad_h),


(0, 255, 0), 2)

cv2.imshow('frame',frame)

if cv2.waitKey(1) & 0xFF == ord('q'):

break

cap.release()

cv2.destroyAllWindows()

cv2.waitKey(1)

def DOL():

while True:

if gpio.input(leftSensor)==1 and gpio.input(rightSensor) == 1:

leftOff()

rightOff()

if gpio.input(leftSensor)==0 and gpio.input(rightSensor)==0:

leftOn()

rightOn()

if gpio.input(leftSensor)==0 and gpio.input(rightSensor)==1:

leftOn()

rightOff()

63
if gpio.input(leftSensor)==1 and gpio.input(rightSensor)==0:

leftOff()

rightOn()

Thread1 = Thread(target=XLA)

Thread1.start()

Thread2 = Thread(target=DOL)

Thread2.start()

while True:

if data == 1:

# time.sleep(0.1)

yag.send(to=email_to, subject=subject,
contents=body, attachments=file_path_image)

time.sleep(0.1)

print('gui mail')

time.sleep(10)

else:

print('khong co gi')

time.sleep(5)

gpio.cleanup()

64

You might also like