TOM TAT KHÓA LUẬNHệ thống giám sát chất lượng công việc của thợ sửa chữa điện ứng dụng IoT, về mặt cốt lõi là một nghiên cứu nhằm hiện thực hóa ý tưởng về một mô hình dịch vụ, với khả nă
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
HUỲNH QUANG THÁI - 18521380
NGUYÊN VĂN THIỆN TÂM - 18521369
KHÓA LUẬN TÓT NGHIỆP
NGHIÊN CỨU VÀ THIẾT KÉ HỆ THÓNG GIÁM SÁT CHÁT LƯỢNG CÔNG VIỆC CỦA THỢ SỮA CHỮA
ĐIỆN DỰA TREN NEN TANG IOT
RESEARCH AND DESIGN THE MONITORING
SYSTEM BASED ON IOT PLATFORM FOR
ELECTRICIAN
KY SU NGANH KY THUAT MAY TINH
GIANG VIEN HUONG DAN
TS NGUYEN MINH SON
TP HO CHi MINH, 2024
Trang 2THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số
10/QD-ĐHCNTTT ngày 05 tháng 01 năm 2024 của Hiệu trưởng Trường Đại học Công nghệ thông tin.
Trang 3tập thê thầy cô giảng viên luôn thúc đây và truyền đạt những kiến thức sâu rộng,
cần thiết, giúp sinh viên tích lũy kinh nghiệm quý báu cho con đường sự nghiệp sau
`
này.
Cuối cùng, chúng em đặc biệt bày tỏ lòng biết ơn đến thay TS Nguyễn Minh Son,người đã không ngừng hỗ trợ và khích lệ bọn em trong suốt quá trình thực hiện
khóa luận tốt nghiệp Những kiến thức, kỹ năng, va tư duy mà Thay đã truyền dat
với nhóm không chỉ là những tri thức quý báu cho công việc nghiên cứu mà còn là
những giá trị quan trọng trong sự phát triển cá nhân sau này
Một lần nữa, xin chân thành cảm ơn Ban giám hiệu nhà trường, quý thầy cô giảng
viên viên, và đặc biệt là thầy TS Nguyễn Minh Sơn đã trao tặng chúng em vô số cơhội dé phát triển
Chúng em xin chân thành cảm ơn!
Sinh viên thực hiện
Huỳnh Quang Thái
Nguyễn Văn Thiện Tâm
Khoa Kỹ Thuật Máy Tính Lớp
KTMT2018
Trang 4TOM TAT 4:9.00079)00010757 ÿ(9E.1005
Chương 1 TONG QUAN ©2522 2ESEESEEEEE2E12171571121221 21212 xe,
1.1 Tổng quan để tài -2¿©5¿+2<+E<£EEEEEEEEEEEEEE21121121 1121 1c
1.2 Tính hình trong nước và thé giới -22+2+z++£++£x+zxerxerreee
1.2.2 Tình hình quốc tẾ 2-2 E+E+£E+£E£EE£EE+EEtrkerkerkrrkered
1.3 Mục tiêu đề tài L HH,
Chương 2 CƠ SỞ LÝ THUYÊT - ¿2 s+E£+E£+E££E+EE+EE£EE£Eerkerxrreee
2.1 Tổng quan các thiết bi phần cứng sử dụng trong hệ thống
2.1.1 Vi điều khiển ESP32Cam ccccccccrkerrrrrrrrrrrrrke 2.1.2 Nguồn điện Battery :-5scctccE2 2121121122111 21c
2.1.3 Bộ khung in 3ÌD - - SG sung key
2.2 Tổng quan các thiết bi phần mềm sử dung trong hệ thống II
2.2.2 Framework NestJŠ - -.-c Sàn ng ng ngư, 12
2.2.5 Cơ sở dữ liệu NoSQL MongoDB «+ ««c+sxsseeesee 14
MỤC LỤC
Trang 52.2.6 Phản hồi thời gian thực với WebSocket . « «+ 15
2.3 Hệ thống xử lý ảnh - 2 -©k+EE+EE2E2EEEEEEEEEEEEEEEEEErkerkerrrei 16 2.3.1 Thur viện OpenC - cv vn TH ng ng ry 16 2.3.2 Nhận diện vật thé (Object Detection) .- ‹ -«« -«+<<s++ 17 2.3.3 Giải thuật YOOV HS nH TH nhiệt 19 2.3.4 May 6o (0 22
Chương 3 PHAN TÍCH VÀ THIET KE HỆ THÓNG - 23
3.1 Sơ đồ tong quan hệ thống 2-2-2 +2 +E2EE2EE+EE+EEerEerxerreee 23 3.2 Lưu đồ giải thuật hệ thống - 2-52 2+ 2+E+EEeEeEzErkersees 24 3.3 Luồng đặt dịch vụ từ người đùng - - «+ +-« «+ +sseesseessees 27 3.3.1 Module tìm va chọn địa điểm thực hiện dịch vu mong muốn 27
3.3.2 Tìm kiếm vi trí qua việc thao tác trực tiếp với giao điện bản d631 3.3.3 Chọn thợ sữa chữa dựa trên khoảng cách địa lý mong muốn 33
3.3.4 Đặt các dịch vụ cụ thé, điền các thông tin cần thiết và xác nhận
3.4 Phương thức hoạt động cua ứng dụng thợ sửa chữa 35
3.4.1 Tổng quan về ứng dụng và quy trình nhận đơn hàng dịch vụ 36
3.4.2 Luéng hoạt động khi thợ thực hiện công viỆc - 36
3.4.3 Phương thức hoạt động của Server AI nhận diện hình anh 38
3.5 Xây dựng bộ dữ liệu Dataset cho mô hình AI - «« 38
3.5.1 Bộ dữ liệu Dataset cho thuật toán YOLOv3 38
3.5.2 Thu thập dữ liệu Dataset thủ công - - «++s«<+++++ 40
3.5.3 Thu thập dữ liệu Dataset từ một nguồn CÓ SẵN c-ccccecsca 41
Trang 63.6 Các tệp tin Config và Classmame . «+ s «+ x++e+xeerseeres 42
3.7 Xay dựng mô hình Yolov3 tự chọn với Google Colab 43
3.7.1 Framework Darknet và máy ảo Google Colab 43
3.7.2 Huấn luyện mô hình YOLOv3 với Google Colab 43
Chương 4 KET QUÁ THUC NGHIỆM - 2-2 2 2+s+zx+zszceez 48
Chương 5 KẾT LUẬN VA HƯỚNG PHAT TRIEN - 52
5.1 Kết luận ccccrtr the 52 5.2 Hướng mở rộng đề tài 2 s+s+EE+EEeEESEEE2EE2EEEEEErkerkerreee 52
TÀI LIEU THAM KHẢO - S6 St St SESEEEEEEEEEEEEEEEEEEEESEEEEEErkrkrrerksree 53
Trang 7DANH MỤC HÌNH VE
Hinh 2.1 Kit Esp32Cam 0n 5 Hình 2.2 Hộp sac chứa pin sạc I§65 - 1S S2 SH ng ke, 6
Hình 2.3 Vỏ ngoài khi thao TỜI - ¿- <6 +1 kExE vn tư rưệt 7
Hình 2.4 Vỏ ngoài khi được lắp nguyên khối -2- 2 2 s2 s+zxezszzsz 8
Hình 2.5 Mặt dưới Camera cccccccccecccccccssscccessscsecsesssssccssssseceessssesessssseeeeees 8
Hình 2.6 Mặt trước Camera - - - << + + SE 32223311111 1111995331111 tren, 8
Hình 2.8 Góc thắng đứng thực tế khi tháo rời ¿ sc©cz+cxccxcrxcrreerxee 9
Hình 2.9 Góc nghiêng thực tế khi tháo rời - ¿552 ©52+++£++£x+rxerxezes 9 Hình 2.10 Mặt trước mũ bảo hộ khi gan Cam 2-2 52 s52 10 Hình 2.11 Mặt bên mũ bảo hộ khi gan Cam - 555cc sszseeeezreeecs 10 Hình 2.12 Mặt sau mũ bảo hộ khi gắn Cam 2 2 2 55s +52 10 Hình 2.14 Mặt dưới mũ bảo hộ có gan Ost a re 11 Hình 2.14 Mặt trên mũ bảo hộ có gắn Cam 2 2 2 s2 s+£++zszzse2 11
Hình 2.15 NodeJS - c- G1111 HT TH HH ng HH kh 11 Hình 2.16 NestJS - ác LH HH TH TH ng TH nh HT nh 12 Hinh 2.17 ReactyS woo 13
Hình 2.18 React ÏNafIV€ - - G1 ng TH TH HH ngư 14
Hình 2.19 Cấu trúc MOongoDB 111177 15
Hình 2.20 WebsOCKL - - G1111 HH it 15
Hình 2.21 Các cột mốc quan trọng DCNNs và modult mạng - 17 Hình 2.22 Cấu trúc của Residual unit - cccc+ccxxerrrrrterrrrrrrrrrrrrree 20
Hình 3.1 Sơ đồ tổng quan hệ thống 2-2-2 2 E2+E£2E£2EE+EE+EEerxerxerree 23 Hình 3.2 Lưu đồ giải thuật hệ thống - 2 2 2 E+£E+EEe£EtE+Ezrezrxee 24 Hình 3.3 Module tìm va chọn địa điểm thực hiện dịch vụ - 27
Trang 8Hình 3.4 Cấp quyền định vị cho ứng dụng - 2 22+ s+zs+zxzzxzse+ 28
Hình 3.5 Tìm kiếm vị trí người dùng - 2 2 s+x+zx+rxerxerrezrerrserxee 29 Hình 3.6 Dữ liệu trả về của API autocomplete l - 2-5-5252 30 Hình 3.7 Dữ liệu trả về của API autocomplete 2 2-22 s+cscszsz 31 Hình 3.8 Dữ liệu trả về của API geocode -¿2¿©cz+cz+cs+zs+zxerxersee 32
Hình 3.9 Lưu đồ chọn thợ theo khoảng cách địa lý mong muốn 33
Hình 3.10 Công thức tính khoảng cách giữa hai điểm - 34
Hình 3.11 Đặt và nhận don - - 2 SE 222311111 1111993331111 key 35 Hình 3.12 Phương thức hoạt động của server AÌ -««+-««++s++ss++ 37 Hình 3.13 Hình ảnh khi được nhận diện chú thích - - -<55<5 39 Hình 3.14 Nội dung tiêu biểu của một file chú thích -2- 39 Hình 3.15 Giao diện của LabelÏmg - - s55 55+ +£+*vE+eeeeeerseeresees 40 Hình 3.16 Tập thư mục thu thập thủ công - ¿++-«+++s+++e>+sex+sss+ 41 Hình 3.17 Giao diện Google OpenImage - 5 555555 *++s£+seessees 42 Hình 3.18 Tập thư mục hình ảnh thu được từ Openlmage 42
Hình 3.19 Lệnh clone IDDarknet - c5 5 +1 31333 2E*35E551xxxx+ 44 Hình 3.20 Sửa đôi Makefile dé thiết lập GPU và OpenCV 44
Hình 3.21 Bảng chon chế độ GPU cho Colab - - 2 s+s+s+ze£s+E+E+zszezxez 44 Hình 3.22 Lay trọng số Weight mặc định Train san của YOLOv3 45
Hình 3.23 Make File darknet - < 6 +11 vn ng ng ng 45 Hình 3.24 Xác thực phiên ban CUDA 6 5S 2s £*vE+veeseeseeeserse 45 Hình 3.25 Chạy lệnh nhận dạng đồ vật Darknet với model đã train sẵn 45
Hình 3.26 Kết quả nhận dạng vật thé với Model đã tran sẵn - 46
Hình 3.27 Tập câu lệnh liên kết Google Colab với Google Drive 46
Hình 3.28 Chép tệp tin nén từ Drive sang Colab và giải nén 47
Hình 3.29 Nội dung File Ob)J.đa{a G G 1v ng ng nền 47 Hình 3.30 Câu lệnh train mô hình nhận dạng vật thé tự chọn 48
Trang 9Hình 4.1 Nhận diện ban tay khi đang cầm nắm thiết bị (1) - 49
Hình 4.2 Nhận diện bàn tay khi đang cầm nắm thiết bị (2) . 49
Hình 4.3 Nhận diện găng tay khi đang cầm năm thiết bị (1) - 50
Hình 4.4 Nhận diện găng tay khi đang cầm nắm thiết bị (2) - 50
Trang 10DANH MỤC BANG BIEU
Bảng 4.1 Bảng kết quả kiểm thử thực nghiệm
Trang 11DANH MỤC TỪ VIET TAT
STT | Ký hiệu chữ viết tắt | Chữ viết đầy đủ
1 AC Alternating Current
2 Al Artificial Intelligence
3 API Application Program Interface
4 ARM Advanced RISC Machine
5 CPU Central Processing Unit
6 CSS Cascading Style Sheets
12 HDMI High Definition Multimedia Interface
13 HTML Hypertext Markup Language
14 HTTP Hypertext Transfer Protocol
15 IoT Internet of Things
16 LCD Liquid Crystal Display
17 MMM Magic Mirror Module
18 MQTT Message Queueing Telemetry Transport
19 MTCNN Multi-task Cascaded Convolutional Networks
20 NPM Node Package Manager
Trang 1221 RISC Reduced Instructions Set Computer
22 SoC System on Chip
23 USB Universal Serial Bus
24 | VGA Video Graphics Adaptor
25 DCNNs Deep Convolutional Neural Networks
26 GPU Graphics Processing Unit
27 CNN Convolutional Neural Network
28 YOLO You Only Look Once
29 GPS Global Positioning System
30 ID Identification
Trang 13TOM TAT KHÓA LUẬN
Hệ thống giám sát chất lượng công việc của thợ sửa chữa điện ứng dụng IoT,
về mặt cốt lõi là một nghiên cứu nhằm hiện thực hóa ý tưởng về một mô hình dịch
vụ, với khả năng đặt tạo đơn hàng sửa chữa điện, khả năng tùy chỉnh vị trí và lựa
chọn người thợ sữa chữa dựa trên số liệu khoảng cách thực tế Cùng với đó là tích
hợp mô hình IoT cho phan cứng và quy trình làm việc của người thợ dé đảm bao chat
lượng an toàn lao động, và hiển thị cảnh báo cho người thợ Cụ thể hơn, nhóm cần
phải hoàn thành hai mục tiêu chính.
Đầu tiên chính là việc xây dựng Module lựa chọn vị trí làm việc mong muốn,qua dir liệu tọa độ, hoặc qua địa chỉ văn ban Input Xây dựng Module hiển thị danhsách thợ dựa trên khoảng cách xa gần thực tế, phải đảm bao khả năng hién thị danhsách thợ trong bán kính 5 Km, 10 Km, hoặc toàn bộ danh sách thợ Đồng thời thiếtlập Database và mô hình Webserver để truy xuất và lưu trữ đơn hàng Thiết lập
Websocket để quy trình đặt đơn, nhận đơn diễn ra tức thời Xây dựng giao diệnWebsite va Android cho các Module trên, dé thuận tiện thao tác và hién thị
Phần thứ hai là xây dựng mô hình IoT với trọng tâm là ESP32, thiết bị sẽ đượclắp đặt trên mũ bảo hộ của người thợ Build mô hình đề xác lập kết nối giữa ESP32
và thiết bị di động, qua đó thu thập dữ liệu Phát triển mô hình AI tự chọn vớiYOLOv3, phân tích dữ liệu hình ảnh thu thập được và tra về lại giao diện hiển thị cho
người thợ ứng với cảnh báo an toàn lao động.
Trang 14riêng biệt của doanh nghiệp Dịch vụ đặt hàng thợ sửa chữa cũng không ngoại lệ, tuy
chưa dat được độ phổ biến hay những thành công vang dội về mặt kinh tế như các
ứng dụng kế trên, nhưng các doanh nghiệp cũng dang dan dan cho ra đời sản pham
của riêng mình, là những viên gạch đầu tiên, đặt nền móng cho sự phát triển Hưởngứng nhu cầu cần thiết của tương lai, nhóm đã chọn đề tài “Nghiên cứu và phát triển
hệ thống giám sát công việc cua thơ sữa điện ứng dụng công nghệ IoT”, với mục tiêuxây dựng giải pháp đặt thợ với kết cấu chặt chẽ, có tính hệ thống cao, đồng thời, cốtlõi của mô hình là phát triển hệ thống nhận diện sai phạm an toàn lao động của ngườithợ khi làm việc, ứng dụng IoT và AI Ở thời điểm hiện tại, phần lớn các giải phápdịch vụ thợ trên thị trường đều dừng lại ở ứng dụng thao tác, giới hạn tại chức năngđặt và nhận đơn hàng Với giải pháp nhóm đề xuất, chúng em mong muốn có thé taonên một sản phâm hoàn thiện, sẵn sàng vận hành trong môi trường doanh nghiệp,nhưng đồng thời cũng có những nét nỗi bật, ứng dụng khoa học công nghệ và các
kiến thức đã học.
Trang 15Chương 1 TONG QUAN
1.1 Tong quan đề tài
Trong bối cảnh cuộc sống hiện dai, công nghệ IoT (Internet of Things) ngày càng
trở nên quan trọng, đặc biệt là trong lĩnh vực quản lý và giám sát công việc Đề tàinày tập trung vào việc nghiên cứu và thiết kế một hệ thống giám sát chất lượng côngviệc của thợ sửa chữa điện, kết hợp cả phần mềm và phần cứng, dé nang cao hiéusuất và an toan trong ngành nghé này Mục tiêu chính của dé tai là xây dựng một hệthong toàn diện cho việc giám sat va quản ly công việc của thợ sửa chữa điện Đồngthời, thông qua việc sử dụng IoT, hệ thống này sẽ tự động hóa quá trình giám sát và
báo cáo chất lượng công việc, tăng cường khả năng xử lý vấn đề dựa trên đữ liệu thời
gian thực.
1.2 Tính hình trong nước và thế giới
1.2.1 Tình hình trong nước
Tại Việt Nam, hiện nay có một vài doanh nghiệp tiên phong trong lĩnh vực dịch
vụ kết nối thợ sữa chữa điện như Diennuocthienphuc.com hay Kythuatkhd.co, tuynhiên, theo quan sát của nhóm thì các doanh nghiệp đều có sự đầu tư không cao vềmặt kỹ thuật, giao diện ứng dụng người dùng được thiết kế khá sơ sai, cùng với đó là
sự giới hạn về chức năng, khi họ chỉ gói gọn trong việc đặt lịch hẹn cho chuyên viên
và thực hiện đơn hàng khi thời gian đến Vì thế, việc thiết kế hệ thống giám sát chất
lượng công việc dựa trên IoT va AI sẽ là một đóng góp quan trong, øg1úp nâng cao uytín của ngành nghề, đồng thời cải thiện chất lượng dịch vụ thông qua quản lý hiệu
suất và đào tạo nhân sự Đặc biệt là trong bối cảnh hiện nay, khi mà ở nước ta, ngành
công nghiệp sửa chữa điện đang trong giai đoạn phát triển mạnh mẽ theo sự gia tăng
của nhu cầu sửa chữa và bảo trì hệ thống điện Sự phát triển của các dự án công
nghiệp, dân dụ và các ngành công nghiệp khác đều tạo ra nhu cầu lớn cho các dịch
vụ sửa chữa điện, cùng với sự phát triển này, cũng xuất hiện nhiều thách thức về chất
lượng công việc và an toàn lao động.
Trang 161.2.2 Tình hình quốc tế
Trên thế giới, theo quan sát của nhóm, tuy các doanh nghiệp sửa chữa điện có tính
hệ thống và bắt mắt hơn về mặt giao nhiên, nhưng họ cũng chịu thực trạng thiếu sự
tích hợp công nghệ cho giải pháp của mình Mà, trong công nghiệp, việc sử dụng các
giải pháp thông minh như hệ thống giám sát dựa trên IoT không chỉ mang lại sự hiệu
quả mà còn giảm thiêu rủi ro và chi phi Cũng vi thế nên nhiều quốc gia đang chútrọng vào nâng cao chất lượng lao động và an toàn trong các ngành nghé đặc biệt
nguy hiểm Qua đó, giải pháp mà nhóm đề ra sẽ phản ánh xu hướng toàn cầu hóacùng với nhu cầu ngày càng tăng về giải pháp thông minh trong quản lý lao động và
công việc.
1.3 Mục tiêu đề tài
Với các van dé nêu trên, hệ thống mà nhóm xây dựng hướng tới những mục tiêu
là:
- Xây dung giao diện người dùng chuyên nghiệp và than thiện qua ứng dụng
Website và Mobile Android.
- _ Xây dựng hệ thống Backend ứng dụng cơ sở dữ liệu NoSQL MongoDB,
tích hợp Websocket cho giao tiếp thời gian thực
- _ Xây dựng giao thức đăng nhập cùng với giao diện riêng cho người dùng
và thợ.
- _ Xây dựng hệ thống dịch vụ phản hồi và thay đổi giá thành sản phẩm ứng
với số lượng dịch vụ được chọn
- _ Xây dựng Module cho phép người dùng lựa chon vi trí thực hiện dịch vụ
dựa trên Google API.
- _ Xây dựng Module cho phép người dùng lựa chon thợ dựa trên vi trí đã lựa
chọn, ứng dụng Google API.
- Thu thập dữ liệu và theo dõi vi trí thợ
- _ Phát triển mô hình trí tuệ nhân tạo, nhận diện vật thé tự chọn với thuật
toán YOLOv3.
Trang 17- _ Xây dựng hệ thống AI dé phân tích dữ liệu hình anh và trả về kết quả cho
người dùng.
- Thu thập bộ dữ liệu thủ công, nghiên cứu thu thập bộ dữ liệu từ nguồn
Google API.
- Thiét kế thiết bi phan cứng dé kết nối với mũ bảo hộ người thợ và truyền
tải dữ liệu hình ảnh thu thập được về hệ thống
- _ Phát triển Module cảnh báo vi phạm an toàn cho thợ đồng thời thống kê
số lần thợ vi phạm quy định trong một phiên hoạt động
Chương 2 CƠ SỞ LÝ THUYET
2.1 Tổng quan các thiết bị phần cứng sử dụng trong hệ thống
2.1.1 Vi điều khiến ESP32Cam
Kit thu phát Wifi BLE ESP32 Camera ESP32-CAM Ai-Thinker được phát triểntrên nền Vi điều khiến trung tâm là ESP32 SoC (System on Chip) với công nghệ Wifi,
BLE và kiến trac ARM(Advanced RISC Machine) mới nhất hiện nay, kit két hop voi
Camera OV2640 sử dung trong các ứng dụng truyền hình ảnh, xử ly anh qua Wifi,Bluetooth hoặc các ứng dụng loT, mạch có chất lượng gia công tốt, độ bền cao
Trang 18Thông số kỹ thuật:
Model: ESP32-CAM Ai-Thinker
Module trung tâm: Ai-Thinker ESP32-S
Power Supply: 5VDC (nguồn từ 2A trở lên)
Điện áp giao tiếp GPIO: 3.3VDC
SPI Flash: Default 32Mbit
RAM: 520KB SRAM +4M PSRAM
Bluetooth: Bluetooth 4.2 BR/EDR and BLE standards
12 UVART Baudrate: Default 115200 bps
13 Image Output Format: JPEG( OV2640 support only), BMP,GRAYSCALE
14 Spectrum Range: 2412-2484MHz
2.1.2 Nguồn điện Battery
Bộ nguồn này đặc trưng bởi viên pin 18650, có dung lượng 3350 mAh, giúp cung
cấp năng lượng đáng tin cậy trong thời gian dai
Trang 19Viên pin 18650 này được tích hợp trong một hộp sạc,g1úp tối ưu hóa quá trình sạc
dé dam bảo hiệu suất tối đa và tuổi tho pin dai hạn
Trang 20Hình 2.4 Vỏ ngoài khi được lắp nguyên khối
Trang 21ta Móc nối với thiết bị
huyện dụng
Hình 2.7 Mặt bên Camera
Trang 22Hình 2.10 Mat trước mũ bao hộ khi gan Cam
Hình 2.11 Mat bên mũ bdo hộ khi gắn Cam
Hình 2.12 Mặt sau mũ bảo hộ khi gan Cam
10
Trang 23Hình 2.14 Mặt dưới mũ bảo hộ có gắn Cam Hình 2.14 Mặt trên mũ bảo hộ có gắn Cam
2.2 Tổng quan các thiết bị phần mềm sử dụng trong hệ thống
2.2.1 Môi trường NodeJS
Hinh 2.15 NodeJS
Node.js là môi trường chạy Javascript phổ biến đối với các lập trình viên Full Stack
trong việc lập trình Web Nó cho phép các lập trình viên tao ra code JavaScript theo
11
Trang 24hướng từ máy chủ và có thé quản lý cả từ phía máy chủ lẫn server NodeJs đảm bảo
hiệu suất vượt trội, nó sử dụng theo hướng sự kiện (event-driven), sử dụng đầu vào
và đầu ra không chặn (non-blocking input output) và mô hình không đồng bộ
(asynchronous paradigm) Sau đây là các lợi thế khi sử dụng Nodejs:
- Chi cần một ngôn ngữ duy nhất
- Kha năng kết nối máy chủ nhanh
- - Là ngôn ngữ được sử dụng nhiều nhất [1]
nên tảng cơ bản.
12
Trang 252.2.3 Thu viện ReactJS
Nest (NestJS) là một khung (framework) được thiết kế dé xây dựng các ứng dụng
phía máy chủ Node.js và có khả năng mở rộng Nó sử dụng ngôn ngữ JavaScript dé
xây dựng và hỗ trợ đầy đủ TypeScript (nhưng vẫn cho phép nhà phát triển viết mãbang JavaScript thuần túy) và kết hợp các yếu tố của Lập trình Hướng đối tượng
(OOP - Object Oriented Programming), Lập trình Chức năng (FP - Functional Programming), và Lap trình Phan ứng Chức năng (FRP - Functional Reactive
Programming).
Nói chung, Nest sử dụng các khung máy chủ HTTP như Express va có kha nang
được cấu hình dé sử dụng Fastify!
Nest cung cấp một mức độ trừu tượng cao hơn so với các frameworks Node.js phébiến như Express/Fastify, đồng thời vẫn hiển thị trực tiếp các API của chúng cho nhàphát triển Điều này giúp nhà phát triển có tự do sử dụng nhiều mô-đun bên thứ ba có
sẵn cho nền tảng cơ bản [2]
13
Trang 26@ Ag.
React Native iOS Android
Hình 2.18 React Native
React Native được các tô chức trên toàn thé giới ưa chuộng dé phat triển ứng dụng
điện thoại/máy tính bảng đa nền tảng với một mã code cơ sở duy nhất Điều này có
nghĩa là bạn có thể dễ dàng viết code một lần và chạy ứng dụng trên iPhone, iPad,điện thoại, và máy tính bảng Android mà không cần phải viết lại bằng các ngôn ngữkhác Và ngôn ngữ đó rất đễ học nếu bạn đã quen React và JavaScript
Điều đặc biệt là ứng dụng có thê được trién khai trực tiếp trên AppStore của Apple
hoặc cửa hàng Google Play, không phải thông qua các web app chạy trong adapter hoặc trình dịch nào khác Do đó, chúng mang lại trải nghiệm nhanh chóng và đáng
tin cậy hơn, cũng như thuận tiện cho việc quản lý và cập nhật ứng dụng.
2.2.5 Cơ sở dữ liệu NoSQL MongoDB
MongoDB là một chương trình cơ sở đữ liệu hướng tài liệu, đa nên tảng, có sẵn
mã nguồn mở Được xem xét là một sản pham cơ sở dữ liệu NoSQL, MongoDB sửdụng các tài liệu có định dạng tương tự JSON, với khả năng sử dụng các lược đồ tùychọn Do MongoDB Inc phát triển và duy trì, các phiên bản hiện tại của MongoDBđều tuân theo Giấy phép Công cộng Phía Máy chủ (SSPL)
14
Trang 27MongoDB không chỉ là một chương trình cơ sở đữ liệu, mà còn là thành viên tích cực của Liên minh MACH, hỗ trợ sự tích hợp chặt chẽ giữa các công nghệ
Microservices, Apache Kafka, Cassandra, và Hadoop Với mô hình tài liệu linh hoạt
và khả năng mở rộng dễ dàng, MongoDB đang ngày càng trở thành một lựa chọn
phô biến trong cộng đồng phát triển phần mềm [3]
@® Canfig Server
all Request mongod
J <> | xa mongodResponse
Client mongod
Shard 1 Shard 2 Shard 3
mongod mongod monged
(Primary) {Primary} (Primary)
R51 | Rs2 | ' R53
H De: DBL ' DB: D1 h De: DBL
¡ Collection: Coll | Collection: Coll ! ; Collection: Coll !
mongod mongod mongod mongod mongod monged
(Secondary) (Secondary) (Secondary) (Secondary) (Secondary) (Secondary)
R51 E51 Rs2 ' OB ñB1 DB: n1 DB: DBL i Of ñB1 i ' OB: DBL i
| Collection: ©nl-1 Collection: Col-1 Collection: Cof-1 nlle ol Collection: Cold ! ¡ Collection: Coli !
Hinh 2.19 Cau tric MongoDB
2.2.6 Phan hồi thời gian thực với WebSocket
code không đáng tin cậy trong một môi trường kiểm soát, và một máy chủ từ xa đã
15
Trang 28chọn tham gia giao tiếp với mã đó Mô hình bảo mật được áp dụng trong trường hợpnày là mô hình bảo mật dựa trên nguồn gốc, thường được sử dụng bởi các trình duyệt
web Giao thức bao gồm một bước bắt tay mở, sau đó là cơ chế cơ bản dé định dạng
thông báo, được đặt lớp trên giao thức TCP (Transmission Control Protocol) Mục
tiêu của công nghệ này là cung cấp một cơ chế cho các ứng dụng dựa trên trình duyệt,cần thiết lập tương tác hai chiều với các máy chủ mà không cần mở nhiều kết nối
HTTP (vi dụ: sử dụng XMLHttpRequest hoặc <iframe> và long polling) [4]
2.3 Hệ thống xử lý anh
2.3.1 Thu viện OpenCV
OpenCV là một thư viện thị giác máy tính nguồn mở Thư viện này được viết bằng
C và C++ và hoạt động trên các hệ điều hành Linux, Windows và MacOS X Hiện
đang có sự phát triển tích cực cho các giao diện Python, Ruby, Matlab và các ngôn
ngữ khác.
OpenCV được thiết kế với mục tiêu chính là tối ưu hóa tính toán và tập trung mạnh
mẽ vào các ứng dụng thời gian thực Thư viện này được viết bằng C, được tối ưu hóa
và có khả năng tận dụng các bộ xử lý đa 161 Nếu bạn muốn tối ưu hóa tự động hơntrên kiến trúc Intel, bao gồm các quy trình được tôi ưu hóa ở mức độ thấp trong nhiều
lĩnh vực thuật toán khác nhau OpenCV sẽ tự động sử dụng thư viện thích hợp trong
thời gian chạy nếu nó được cài đặt
Một trong những mục tiêu của OpenCV là cung cấp một cơ sở hạ tầng thị giác máy
tính dễ sử dụng, giúp người ta xây dựng các ứng dụng thị giác phức tạp một cách
nhanh chóng Thư viện OpenCV chứa hơn 500 chức năng trải rộng trên nhiều lĩnhvực về thị giác, bao gồm kiểm tra sản pham tai nha may, hinh anh y tế, bảo mật, giao
diện người dùng, hiệu chỉnh máy ảnh, tam nhìn nỗi và robot Do thị giác máy tính va
học máy thường đi đôi với nhau, OpenCV cũng có Thư viện Học máy đầy đủ chứcnăng và linh hoạt Thư viện con này tập trung vào nhận dạng và phân cụm mẫu thống
kê, rất hữu ích cho các nhiệm vụ thị giác, làm nôi bật trong sứ mệnh của OpenCV,
nhưng đủ tổng quát dé sử dụng cho bat kỳ van đề học máy nao
16
Trang 29Đồng thời, giao thức này được thiết kế dé có thé mở rộng; các phiên bản trong
tương lai có thể giới thiệu các khái niệm bổ sung như ghép kênh [5]
2.3.2 Nhận diện vật thé (Object Detection)
Nên tang cho bai toán nhận diện vat thé là một mang thân kinh trích xuât các đặc
điêm từ hình anh đâu vào rôi lây đó làm cơ sở cho các tác vụ tiép theo cho các mô hình lớn hơn.
dens dens: dense}
Fully connected+ReLU MAX T1
& softmax POOL é
(b) VGG16 (c) Inception module of GoogLeNet
Hình 2.21 Các cột mốc quan trọng DCNNs và modult mang
Cu thé hơn, một loạt các DCNNs (Deep Convolutional Neural Networks - mạng
than kinh tich chap sâu) có khả năng mạnh mẽ đã được đề xuất, hầu hết đều có cáckiến trúc đổi mới, như thể hiện trong Hình 2.21 DCNNs là nền tảng chính dé pháthiện đối tượng (hoặc phân loại) Dé cải thiện hiệu suất biểu diễn đặc trưng, kiến trúcmạng trở nên ngày càng phức tạp hơn (các lớp mạng trở nên sâu hơn và các tham sốmạng trở nên nhiều hơn) Trong môi trường có nguồn lực tính toán và lưu trữ hạnchế, như thiết bị di động, xe tự lái, sản xuất công nghiệp, đã được dé xuất các cấu trúcmạng nhẹ, giúp đơn giản hóa cấu trúc mạng mà vẫn duy trì khả năng biểu diễn đặctrưng Có thé thay rằng độ chính xác của các mạng nền phức tạp (CBN - complex
backbone networks) có thê được cải thiện bằng cách tăng độ sâu các lớp mạng Cũng
17
Trang 30có thé nhận thấy rằng việc giảm các tham số một cách hợp lý, không ảnh hưởng đến
độ chính xác của các mạng nền nhẹ (LBNs - lightweight backbone networks)
AlexNet là mạng nơ-ron tích chập đầu tiên được Yann LeCun đề xuất, dựa trên
công trình nghiên cứu trước đó vào năm 1998, được gọi là LeNet-5 Nó đạt độ chính
xác trung bình là 98% trên bộ dữ liệu MNIST LeNet-5 là mạng nơ-ron tích chập côđiển được sử dụng dé nhận diện các ký tự số viết tay Sự xuất hiện của nó quyết địnhkiến trúc cơ bản của các mạng nơ-ron tích chập sâu với lớp tích chập, lớp tổng hợp,
và lớp được kết nỗi đầy đủ Day là lần đầu tiên một mạng nơ-ron tích chập có sẵn
Tuy nhiên, trong thập kỷ tiếp theo, nó không đạt được sự tiến triển lớn, với sự mở
rộng bị hạn chế bởi sức mạnh tính toán Đồng thời, các thuật toán máy học truyền
thống như SVM có thê đạt được độ chính xác tương tự hoặc thậm chí cao hơn Do
đó, mạng nơ-ron tích chập này không thu hút nhiều sự chú ý
Năm 2012, AlexNet đã giành chức vô địch trong cuộc thi ILSVRC-2012 Trên bộ
thử nghiệm LSVRC-2010, ho dat tỷ lệ lỗi top 1 và top 5 lần lượt là 37,5% và 17,0%
Trong bộ thử nghiệm ILSVRC-2012, họ đạt tỷ lệ lỗi thuộc top 5 là 15,3%, cao hơn
nhiều so với vị trí thứ hai AlexNet tăng chiều sâu và chiều rộng của kiến trúc mạngLeNet-5, bao gồm năm lớp tích chập (Conv), ba lớp tổng hợp tối đa và ba lớp đượckết nối đầy đủ , với tông số 60 triệu tham số Kiến trúc được thé hiện trong Hình
2.21a.
Thanh công cua AlexNet là dựa vào các công nghệ sau:
- Cac phương pháp nâng cao dữ liệu (chang hạn như lật ngang, cắt ngẫu
nhiên, chuyên đổi tịnh tiến, chuyển đổi chiếu sáng màu) được sử dụng dé
mở rộng tập dữ liệu và giảm trường hợp không nhận diện đối tượng
- Cac hàm kích hoạt truyền thống (như Sigmoid và Tanh) đã được thay thé
bang hàm kích hoạt ReLu Điều này giải quyết van dé phân tán độ dốc trong
mạng khi nó trở nên sâu hơn.
- Một phan của các tế bào thần kinh được loại bỏ ngẫu nhiên thông qua việc
sử dụng phương pháp chính quy Dropout trong quá trình huấn luyện Điềunày giúp giảm mỗi quan hệ phức tạp thích ứng giữa các tế bao thần kinh và
18
Trang 31giảm khả năng quá mức trang bị.
- _ Công nghệ điện toán nhiều GPU song song được áp dụng, hỗ trợ giao tiếp
giữa các lớp cụ thé và gia tăng tốc độ huấn luyện mạng
2.3.3 Giải thuật YOLOv3
2.3.3.1 Giới thiệu YOLOv3
Phát hiện mục tiêu là một trong những lĩnh vực nghiên cứu quan trọng trong thị
giác máy tính Nó giúp xác định vị trí và loại mục tiêu băng cách sử dụng tính năng
phát hiện mục tiêu Hiện nay, phát hiện mục tiêu đang được áp dụng rộng rãi trong
nhiều lĩnh vực như quân sự và dân sự, bao gồm phân đoạn hình ảnh, giám sát thông
minh, lãi xe tự động và giao thông thông minh.
Với sự phát trién nhanh chóng của phần cứng bộ xử lý đồ họa (GPU), deep learning
đã đạt được tiến bộ đáng kế và nhiều thuật toán phát hiện mục tiêu dựa trên deeplearning đã trở thành một phần không thẻ thiếu trong cuộc sống hàng ngày, chắng
hạn như phát hiện người đi bộ, nhận diện khuôn mặt và nhận diện phương tiện Mạng
no ron tích chập (CNN), một loại mạng có nhiều lớp được thiết kế dé trích xuất đặctrưng từ thống kê vùng trong ảnh, đã chứng minh khả năng tự động hóa việc học các
đặc trưng của mục tiêu và cải thiện hiệu suất mô hình
Với sự cải tiến của phan cứng máy tính, cấu trúc của CNN trở nên sâu sắc hơn và
có khả năng hiểu rõ hơn về các đặc trưng của mục tiêu LeNet, một mô hình phổ biến,
bao gồm năm lớp, còn Mạng đường cao tốc và Mạng dư đã vượt qua 100 lớp.DenseNet kết nối các lớp theo kiểu chuyền tiếp nguồn cấp dữ liệu, giúp tái sử dụng
tính năng và tránh sự mờ dần của độ dốc, đồng thời tăng cường khả năng hiệu quả
của mô hình.
Các thuật toán phát hiện mục tiêu tiên tiễn dựa trên CNN hiện đang phát triển thành
hai loại chính.
Loại đầu tiên là thuật toán phát hiện mục tiêu giai đoạn, bao gồm các mô hình như
R-CNN, Fast R-CNN, Faster R-CNN, Mask R-CNN, vv Quá trình phát hiện mục
tiêu ở đây được thực hiện trong hai giai đoạn Trước hết, Mạng đề xuất khu vực (RPN)
19
Trang 32được sử dụng dé tạo ra một số lượng nhỏ các hộp neo ứng cử viên Sau đó, mạng phát
hiện có thé dự đoán và xác định vi tri cũng như danh mục của các mục tiêu ứng cử
viên Mặc dù có hiệu suất phát hiện mục tiêu tốt, nhưng chúng không phải là thuật
toán phát hiện mục tiêu toàn diện.
Loại thứ hai là thuật toán phát hiện mục tiêu một giai đoạn, bao gồm OverFeat,
SSD, YOLO, YOLO 9000, YOLO V3, You Only Look Twice, vv Cac thuat toan
này không can sử dụng RPN để tạo các mục tiêu ứng cử viên Thay vào đó, chúng dựđoán thông tin danh mục và vị trí mục tiêu trực tiếp qua mạng, làm cho quá trình phát
hiện mục tiêu nhanh hơn YOLO V3 là một đại diện nồi bật của loại thuật toán này.
2.3.3.2 So lược cách hoạt động của YOLOv3
Thuật toán phát hiện mục tiêu YOLO (You Only Look Once) đã phát triển quanhiều phiên bản, và phiên bản thứ ba của nó được gọi là YOLO V3 YOLO V3 làmột thuật toán phát hiện mục tiêu toàn diện, có khả năng dự đoán trực tiếp danh mục
và vị trí của các mục tiêu, điều này giúp nó đạt được tốc độ phát hiện nhanh
Trong quá trình trích xuất tính năng, YOLO V3 sử dụng các lớp chập 3 x 3 và 1 x
1 liên tiếp, dựa trên ý tưởng của Mạng dư Cấu trúc này giúp mô hình trở nên sâu hơn
và tránh được vấn đề mờ độ dốc YOLO V3 có tong cong 5 khối, và mỗi khối bao
Hình 2.22 Cấu trúc của Residual unit
gồm nhiều đơn vị dư, nhằm tăng cường khả năng học của mạng
Đơn vị dư, được mô tả trong Hình 2.23 sau, giúp tăng độ sâu của mạng mà không gap vân đê phai màu độ dôc Điêu nay đóng góp vảo việc cải thiện hiệu suât tông thê
20