- Mục tiêu của đề tài: Mục tiêu của đề tài là xây dựng phát triển ứng dụng trí tuệ nhân tạo nhận diện và đếm phương tiện giao thông sử dụng YOLOv8x và ByteTrack, từ đó kết hợp thuật toán
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC PHENIKAA
ĐỒ ÁN TỐT NGHIỆP
XÂY DỰNG ỨNG DỤNG TRÍ TUỆ NHÂN TẠO NHẬN DIỆN VÀ TRACKING PHƯƠNG TIỆN GIAO THÔNG
Sinh viên: Vũ Tuấn Huy
Mã số sinh viên: 19010015 Khóa: K13 Ngành: Công nghệ thông tin Hệ: Chính quy Giảng viên hướng dẫn: TS Lương Văn Thiện
Trang 2TRƯỜNG ĐẠI HỌC PHENIKAA
ĐỒ ÁN TỐT NGHIỆP
XÂY DỰNG ỨNG DỤNG TRÍ TUỆ NHÂN TẠO NHẬN DIỆN VÀ TRACKING PHƯƠNG TIỆN
GIAO THÔNG
Sinh viên: Vũ Tuấn Huy
Mã số sinh viên: 19010015 Khóa: K13 Ngành: Công nghệ thông tin Hệ: Chính quy Giảng viên hướng dẫn: TS Lương Văn Thiện
Hà Nội – Năm 2024
Copies for internal use only in Phenikaa University
Trang 3BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC PHENIKAA
CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
NHẬN XÉT ĐỒ ÁN/KHÓA LUẬN TỐT NGHIỆP
CỦA GIẢNG VIÊN HƯỚNG DẪN
Giảng viên hướng dẫn: TS Lương Văn Thiện Bộ môn: Khoa học máy tính Tên đề tài: Xây dựng ứng dụng trí tuệ nhân tạo nhận diện và đếm phương tiện giao thông Sinh viên thực hiện: Vũ Tuấn Huy Lớp: K13-CNTT-KHDL
để trình bày thông tin
- Tính cấp thiết của đề tài:
Đây là một bài toán cấp thiết trong thời đại hiện nay, khi lưu lượng giao thông trên đường phố ngày càng tăng và quản lý an toàn giao thông là một vấn đề quan trọng, các cách xác định lưu lượng giao thông và phân loại đang được xử lý bằng tay tiêu tốn rất nhiều nguồn lực và nhân lực Ngoài ra việc tính toán sai thời gian đèn tính hiêu giao thông
để xuất hiện thời gian chết của các đèn giao thông dài cũng tác động nhiều đến kinh tế, môi trường và con người Do đó việc ứng dụng trí tuệ nhân tạo để giải quyết vấn đề này
vô cùng tiềm năng và có thể ứng dụng rộng rãi trong thực tế
- Mục tiêu của đề tài:
Mục tiêu của đề tài là xây dựng phát triển ứng dụng trí tuệ nhân tạo nhận diện và đếm phương tiện giao thông sử dụng YOLOv8x và ByteTrack, từ đó kết hợp thuật toán đếm để phân loại và xác định lưu lượng từng loại xe tại các góc quay và địa điểm khác nhau như nút giao/mặt cắt, xác định thời gian chờ đèn của các phương tiện giao thông trong 1 vùng xác định
- Nội dung của đề tài:
Bao gồm việc thu thập dữ liệu, phân tích xử lý dữ liệu, sử dụng YOLOv8x và ByteTrack đào tạo mô hình, viết xác định thuật toán đếm phương tiện, xây dựng ứng dụng
và đánh giá kết quả Giải quyết được bài toán tính thời gian chờ của các phương tiện giao thông đúng như yêu cầu
- Tài liệu tham khảo:
Báo cáo đã trình bày danh sách tài liệu tham khảo một cách đầy đủ và chính xác, bao gồm các tài liệu liên quan đến trí tuệ nhân tạo, nhận diện đối tượng và theo dõi phương
Copies for internal use only in Phenikaa University
Trang 4tiện
- Phương pháp nghiên cứu:
Mô tả phương pháp nghiên cứu rõ ràng, về dữ liệu đã được phân tích kỹ càng chia
thành nhiều class Xác định được mô hình sử dụng là YOLOv8x kết hợp với ByteTrack
Mô tả thuật toán đếm xe chi tiết có hình ảnh miêu tả cụ thể, đã có so sánh được kết quả
thực tế và làm rõ được tầm quan trọng của dữ liệu qua việc so sánh khi tập dữ liệu thay
đổi và vẫn sử dụng YOLOv8x Và thử nghiệm thêm nhiều mô hình nhỏ hơn và kiểm tra
được cả độ chính xác và tốc độ xử lý của từng mô hình Thử nghiệm bài toán tính thời
gian chờ trên video và so sánh kết quả dự đoán và kết quả thực tế
- Tính sáng tạo và ứng dụng:
Mặc dù việc nhận diện và đếm các phương tiện giao thông đã được nhiều người
nhiều nơi trên thế giới thực hiện, nhưng việc nghiên cứu chia thành nhiều class kỹ hơn rõ
ràng hơn, chính xác hơn sẽ hỗ trợ rất nhiều trong việc cải thiện quản lý giao thông thông
minh và đảm bảo an ninh giao thông
Ứng dụng để giải quyết được rất nhiều vấn đề về phân luồng điều tiết giao thông,
cung cấp thông tin dữ liệu tạo cơ sở để có thể cải thiện cơ sở hạ tầng,
II Nhận xét tinh thần và thái độ làm việc của sinh viên:
Việc thu thập, tạo dữ liệu cho dự án để training mô hình là một phần rất quan trọng
ảnh hưởng rất lớn đến độ chính xác của mô hình Sinh viên đã thực hiện nghiêm túc việc
làm đồ án với tinh thần trách nghiệm cao Sinh viên cho thấy sự tỷ mỉ và kiên nhẫn trong
việc thu thập và gán nhãn dữ liệu, đã hoàn thành và thực hiện đủ số lượng dữ liệu cần
thiết để training mô hình
Sinh viên có thái độ tích cực trong khi làm đồ án, luôn sẵn sàng làm và học hỏi
thêm và thử nghiệm phương pháp và kiểm tra mô hình Điều này giúp cải thiện mô hình và
đảm bảo rằng nó đáp ứng được yêu cầu đặt ra
III Kết quả đạt được:
Hoàn thành được mục tiêu đặt ra đã xây dựng được một website demo đơn giản
sản phẩm của mình Kết quả thu được Tốt đạt độ chính xác lên đến 90 % so với kết quả
thực tế
IV Kết luận: Đồng ý cho bảo vệ: Không đồng ý cho bảo vệ:
Hà Nội, ngày … tháng … năm 20…
GIẢNG VIÊN HƯỚNG DẪN
(Ký, ghi rõ họ tên)
Copies for internal use only in Phenikaa University
Trang 5BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC PHENIKAA
CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
NHẬN XÉT ĐỒ ÁN/KHÓA LUẬN TỐT NGHIỆP
CỦA GIẢNG VIÊN PHẢN BIỆN
Giảng viên phản biện: Bộ môn: Khoa học máy tính Tên đề tài: Xây dựng ứng dụng trí tuệ nhân tạo nhận diện và đếm phương tiện giao thông Sinh viên thực hiện: Vũ Tuấn Huy Lớp: K13-CNTT-KHDL
Giảng viên hướng dẫn: TS Lương Văn Thiện
NỘI DUNG NHẬN XÉT I Nhận xét ĐAKLTN: - Bố cục, hình thức trình bày:
- Đảm bảo tính cấp thiết, hiện đại, không trùng lặp:
- Nội dung:
- Mức độ thực hiện:
II Kết quả đạt được:
III Ưu nhược điểm:
IV Kết luận: Đồng ý cho bảo vệ: Không đồng ý cho bảo vệ: Hà Nội, ngày tháng năm 20
GIẢNG VIÊN PHẢN BIỆN
(Ký, ghi rõ họ tên)
Copies for internal use only in Phenikaa University
Trang 6LỜI CAM ĐOAN
Tên tôi là: VŨ TUẤN HUY
Mã sinh viên: 19010015 Lớp: CNTT-KHDL K13 Ngành: Công nghệ thông tin Tôi đã thực hiện đồ án/khóa luận tốt nghiệp với đề tài:
Xây dựng ứng dụng trí tuệ nhân tạo nhận dạng cử chỉ bàn tay người
Tôi xin cam đoan đây là đề tài nghiên cứu của riêng tôi và được sự hướng dẫn của: TS Lương Văn Thiện
Các nội dung nghiên cứu, kết quả trong đề tài này là trung thực và chưa được các tác giả khác công bố dưới bất kỳ hình thức nào Nếu phát hiện có bất kỳ hình thức gian lận nào tôi xin hoàn toàn chịu trách nhiệm trước pháp luật
GIẢNG VIÊN HƯỚNG DẪN
Trang 7Lời cảm ơn
Trong suốt quá trình học tập và làm đồ án tốt nghiệp em luôn được sự quan tâm, giúp đỡ, hướng dẫn tận tình của các thầy, cô giảng viên trong khoa Công nghệ thông tin cùng sự giúp đỡ của bạn bè và đồng nghiệp
Lời đầu tiên em xin được bày tỏ lòng biết ơn sâu sắc đến Ban giám hiệu Trường Đại học Phenikaa, Ban chủ nhiệm khoa Công nghệ thông tin đã tận tình giúp đỡ em trong suốt thời gian học tập tại trường
Trong quá trình hoàn thành đồ án tốt nghiệp của mình, ngoài những cố gắng của bản thân,
em sẽ không thể hoàn thành tốt được công việc của mình nếu không có sự chỉ bảo và hướng dẫn tận tình của TS Lương Văn Thiện Em xin được gửi lời cảm ơn chân thành sâu sắc nhất tới thầy, người đã trực tiếp giúp đỡ và hướng dẫn em hoàn thành đồ án tốt nghiệp
Em cũng xin bày tỏ lòng biết ơn sâu sắc đến gia đình, người thân, bạn bè và đồng nghiệp
đã giúp đỡ động viên em hoàn thành đồ án tốt nghiệp này
Em xin trân trọng cảm ơn!
Hà Nội, ngày 21 tháng 3 năm 2024
Sinh viên thực hiện
Vũ Tuấn Huy
Copies for internal use only in Phenikaa University
Trang 8Mục lục
DANH SÁCH HÌNH VẼ VIII DANH SÁCH BẢNG – BIỂU ĐỒ XI DANH SÁCH TÊN VIẾT TẮT XII
MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT 2
1.1 GIỚI THIỆU TỔNG QUAN 2
1.2 NỀN TẢNG LÝ THUYẾT 2
1.2.1 Trí tuệ nhân tạo (AI) 2
1.2.2 Học máy (ML) 3
1.2.3 Học sâu (DL) 4
1.2.4 So sánh, phân biệt AI, ML và DL 4
1.2.5 Thị giác máy tính (CV) 5
1.2.5.1 Nhận diện vật thể (OD) 7
(a) YOLO 7
1.2.5.2 Theo dõi vật thể (OT) 11
(b) Bytetrack 12
1.2.6 Website 13
1.2.6.1 Frontend 13
1.2.6.2 Backend 14
1.2.7 Python 14
1.2.8 Flask 15
CHƯƠNG 2: PHÂN TÍCH CÁC BÀI TOÁN VỀ GIAO THÔNG 16
2.1 TỔNG QUAN VỀ BÀI TOÁN 16
2.1.1 Các loại phương tiện giao thông 16
2.1.2 Các tính năng cần có 20
2.2 CÁC YÊU CẦU VỀ SAI SỐ CỦA BÀI TOÁN 20
2.2.1 Đối với bài toán đếm xe (Counting) 20
2.2.2 Đối với bài toán tính thời gian chờ (Dwell-time) 21
2.2.3 Đối với bài toán tính độ dài hàng chờ (Quece-length) 21
2.3 XÂY DỰNG ỨNG DỤNG 21
2.3.1 AI 21
2.3.2 Measure 21
2.4 PHÂN TÍCH BÀI TOÁN ĐẾM PHƯƠNG TIỆN 21
2.4.1 Đối với mặt cắt 23
2.4.2 Đối với nút giao 25
2.5 PHÂN TÍCH VỀ BÀI TOÁN TÍNH THỜI GIAN CHỜ 30
CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG 33
3.1 CÀI ĐẶT MÔI TRƯỜNG, ỨNG DỤNG CẦN THIẾT 33
3.1.1 Cài anaconda 33
3.1.2 Cài MySQL 33
3.1.3 Cài labelImg 33
3.1.4 Setup môi trường, code và triển khai 34
3.1.4.1 Code xử lý dữ liệu 34
3.1.4.2 Code trang web giao thông 34 Copies for internal use only in Phenikaa University
Trang 93.2 XÂY DỰNG MÔ HÌNH 35
3.3 DEMO 38
3.3.1 Đăng nhập 38
3.3.2 Trang chủ 38
3.3.3 Đếm mặt cắt (video ngắn) 39
3.3.4 Đếm mặt cắt (video dài) 40
3.3.5 Đếm nút giao (video ngắn) 41
3.3.6 Đếm nút giao (video dài) 41
3.3.7 Tính thời gian chờ (Dwell time) 42
CHƯƠNG 4: KẾT QUẢ, NHẬN XÉT VÀ HƯỚNG PHÁT TRIỂN 44
4.1 KẾT QUẢ 44
4.1.1 Đếm xe ở mặt cắt 44
4.1.1.1 Đối với video ngắn 44
4.1.1.2 Đối với video dài (chia theo các khối thời gian) 44
4.1.2 Đếm xe ở nút giao 45
4.1.2.1 Đối với video ngắn 45
4.1.2.2 Đối với video dài (chia theo các khối thời gian) 46
4.1.3 Tính thời gian hàng chờ 48
4.2 NHẬN XÉT 51
4.3 HƯỚNG PHÁT TRIỂN 51
TÀI LIỆU THAM KHẢO 52
Copies for internal use only in Phenikaa University
Trang 10Danh sách hình vẽ
Copies for internal use only in Phenikaa University
Trang 11Hình 2.15 Ảnh nút giao
vecto màu xanh biển thì không
Trang 12Hình 3.11 Đếm mặt cắt video dài
Trang 13Danh sách bảng – biểu đồ
Copies for internal use only in Phenikaa University
Trang 14Danh sách tên viết tắt
Networks
Copies for internal use only in Phenikaa University
Trang 15MỞ ĐẦU
Vấn đề ùn tắc giao thông hiện nay ở các đô thị ngày càng trở nên phổ biến, gây bức xúc cho nhiều người dân Tình trạng vẫn xảy ra hàng ngày trở thành bài toán khó giải quyết, nguyên nhân chủ yếu là do số lượng xe ngày càng tăng, cơ sở hạ tầng yếu kém, xử
lý chưa tốt đối với phương tiện công cộng và do việc phân luồng không hợp lý
Vấn đề hiện nay về nhận diện và đếm phương tiện là sự phát triển và ứng dụng của công nghệ nhận diện hình ảnh và máy học trong việc đếm và phân loại các phương tiện di chuyển trên đường Đây là một lĩnh vực quan trọng trong lĩnh vực giao thông và an ninh,
có thể áp dụng trong nhiều trường hợp, bao gồm:
Giao thông đô thị: Nhận diện và đếm phương tiện có thể giúp quản lý giao thông
đô thị hiệu quả hơn bằng cách cung cấp thông tin về lưu lượng xe cộ, thời gian tắc nghẽn, tốc độ trung bình và các thông số khác Thông tin này có thể được sử dụng để điều phối giao thông, tăng cường an toàn đường bộ và cải thiện chất lượng cuộc sống của người dân
Theo dõi và quản lý giao thông công cộng: Nhận diện phương tiện trong các hệ
thống giao thông công cộng như xe buýt, xe điện, và xe đạp có thể cung cấp thông tin quan trọng về việc sử dụng và tải trọng của các phương tiện này Điều này có thể giúp cải thiện lịch trình, dự đoán và tránh tắc nghẽn, và nâng cao trải nghiệm đi lại của hành khách
An ninh và giám sát: Nhận diện và đếm phương tiện cũng có thể được sử dụng để
mục đích an ninh và giám sát Ví dụ, trong các trạm kiểm soát ra vào khu vực hoặc sân bay, việc phân loại và đếm phương tiện có thể giúp xác định các hành vi đáng ngờ và giúp đảm bảo an toàn cho khu vực quan tâm
Nghiên cứu và phân tích giao thông: Dữ liệu nhận diện và đếm phương tiện có
thể cung cấp thông tin quan trọng để nghiên cứu và phân tích giao thông Chúng có thể giúp xác định xu hướng di chuyển, phân tích tải trọng đường, và đưa ra các dự đoán về nhu cầu vận chuyển trong tương lai Thông tin này có thể hỗ trợ quy hoạch đô thị và xây dựng
hạ tầng giao thông hiệu quả
Trước những ảnh hưởng nghiêm trọng của tắc nghẽn giao thông, ngày càng nhiều các biện pháp được nghiên cứu và áp dụng, việc ứng dụng khoa học máy tính càng được chú ý nhiều hơn Các nghiên cứu đã sử dụng trí tuệ nhân tạo (AI) và máy học (Machine Learning) để thiết kế hệ thống thị giác máy tính thu thập và xử lý dữ liệu nhận được từ các camera giao thông giúp theo dõi và thống kê lưu lượng của từng loại xe, từ đó tìm ra phương hướng tránh xung đột, ùn tắc tại các nút giao lộ
Copies for internal use only in Phenikaa University
Trang 16CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT
1.1 Giới thiệu tổng quan
Trong một thế giới ngày càng đông đúc và phức tạp, việc quản lý và điều tiết giao thông đang trở nên ngày càng quan trọng Tình hình giao thông kém hiệu quả không chỉ gây ra sự lãng phí thời gian của người tham gia giao thông mà còn tạo ra những tác động tiêu cực đến môi trường và an toàn đường đi Đây là bài toán thách thức mà ứng dụng AI có thể giải quyết
Mục tiêu chính của dự án này là xây dựng một website ứng dụng AI có khả năng nhận diện
và đếm phương tiện giao thông Điều này có thể giúp tăng cường khả năng quản lý giao thông, dự đoán tình hình lưu lượng giao thông, và cải thiện an toàn đường đi Đồng thời, dự án cũng nhằm tạo
ra một công cụ hiệu quả cho việc giám sát và thu thập dữ liệu liên quan đến phương tiện giao thông,
có thể ứng dụng trong nhiều lĩnh vực, từ quản lý đô thị đến nghiên cứu vận tải
Bài toán thuộc lĩnh vực computer vision Computer vision là một lĩnh vực trí tuệ nhân tạo (AI) tập trung vào phát triển các giải pháp và thuật toán để máy tính có khả năng "nhìn" và hiểu hình ảnh và video giống như con người Dựa trên việc máy tính sử dụng các thuật toán và mô hình để hiểu và xử lý hình ảnh và video Nó cho phép máy tính phân loại, nhận dạng và hiểu nội dung của các phương tiện trực göi là hình ảnh và video Mục tiêu chính là trích xuất thông tin từ dữ liệu hình ảnh và video để máy tính có thể đưa ra quyết định hoặc tác động dựa trên dữ liệu này
Phạm vi của dự án bao gồm việc phát triển một website có khả năng nhận diện và đếm các loại phương tiện giao thông như ô tô, xe máy, xe buýt, xe tải, trên các tuyến đường phổ biến và tính thời gian chờ đèn đỏ của các phương tiện giao thông Sản phẩm này sẽ sử dụng các kỹ thuật và
thuật toán AI như học sâu (deep learning) để xử lý hình ảnh và dữ liệu video
1.2 Nền tảng lý thuyết
1.2.1 Trí tuệ nhân tạo (AI)
AI (Artificial Intelligence) nghĩa là trí tuệ nhân tạo, công nghệ này mô phỏng những suy nghĩ
và quá trình tiếp thu kiến thức của con người cho máy móc, đặc biệt là các hệ thống máy tính Tại hội nghị The Dartmouth diễn ra vào năm 1956, khái niệm về công nghệ AI xuất hiện đầu tiên bởi John McCarthy, một nhà khoa học máy tính Mỹ Hiện nay, công nghệ AI là thuật ngữ phổ biến rộng rãi ở nhiều ngành nghề khác nhau bao gồm cả quá trình tự động hoá robot đến người máy AI
Ưu điểm
Mạng lưới thần kinh nhân tạo và công nghệ trí tuệ nhân tạo với khả năng học tập sâu đang phát triển nhanh chóng, AI xử lý được lượng lớn dữ liệu nhanh hơn nhiều và đưa ra dự đoán chính xác hơn khả năng của con người
Khối lượng dữ liệu khổng lồ được tạo ra hàng ngày sẽ gây khó khăn cho các nhà nghiên cứu,
AI sử dụng học máy để có thể lấy những dữ liệu đó và nhanh chóng biến nó thành thông tin có thể thực hiện được
Trang 17thể đưa ra những giải thích rõ ràng, các lý do không cấp tín dụng cho khách hàng
1.2.2 Học máy (ML)
Machine learning (ML) hay máy học là một nhánh của trí tuệ nhân tạo (AI), nó là một lĩnh vực nghiên cứu cho phép máy tính có khả năng cải thiện chính bản thân chúng dựa trên dữ liệu mẫu (training data) hoặc dựa vào kinh nghiệm (những gì đã được học) Machine learning có thể tự dự đoán hoặc đưa ra quyết định mà không cần được lập trình cụ thể
Bài toán machine learning thường được chia làm hai loại là dự đoán (prediction) và phân loại (classification) Các bài toán dự đoán như dự đoán giá nhà, giá xe… Các bài toán phân loại như nhận diện chữ viết tay, nhận diện đồ vật…
Machine learning Workflow
Cụ thể từng bước trong machine learning workflow như sau như sau:
1 Data collection – thu thập dữ liệu: để máy tính có thể học được bạn cần có một bộ dữ liệu (dataset), bạn có thể tự thu thập chúng hoặc lấy các bộ dữ liệu đã được công bố trước đó Lưu
ý là bạn phải thu thập từ nguồn chính thống, có như vậy dữ liệu mới chính xác và máy có thể học một cách đúng đắng và đạt hiệu quả cao hơn
2 Preprocessing – tiền xử lý: bước này dùng để chuẩn hóa dữ liệu, loại bỏ các thuộc tính không cần thiết, gán nhãn dữ liệu, mã hóa một số đặc trưng, trích xuất đặc trưng, rút gọn dữ liệu nhưng vẫn đảm bảo kết quả… Bước này tốn thời gian nhất tỉ lệ thuận với số lượng dữ liệu bạn có Bước 1 và 2 thường chiếm hơn 70% tổng thời gian thực hiện
3 Training model – huấn luyện mô hình: bước này là bước bạn huấn luyện cho mô hình hay chính là cho nó học trên dữ liệu bạn đã thu thập và xử lý ở hai bước đầu
4 Evaluating model – đánh giá mô hình: sau khi đã huấn luyện mô hình xong, chúng ta cần dùng các độ đo để đánh giá mô hình, tùy vào từng độ đo khác nhau mà mô hình cũng được đánh giá tốt hay không khác nhau Độ chính xác của mô hình đạt trên 80% được cho là tốt
5 Improve – cải thiện: sau khi đã đánh giá mô hình, các mô hình đạt độ chính xác không tốt thì cần được train lại, chúng ta sẽ lặp lại từ bước 3, cho đến khi đạt độ chính xác như kỳ vọng Tổng thời gian của 3 bước cuối rơi vào khoảng 30% tổng thời gian thực hiện
Có mấy loại Machine Learning?
Các mô hình machine learning được phân thành 3 loại chính:
1 Supervised machine learning (học máy có giám sát): Phương pháp này được xác định bằng cách sử dụng các bộ dữ liệu được gắn nhãn để huấn luyện các thuật toán Mục tiêu để phân loại hoặc dự đoán kết quả một cách chính xác Khi dữ liệu đầu vào được đưa vào mô hình,
mô hình sẽ điều chỉnh trọng số của nó cho đến khi phù hợp Điều này xảy ra như một phần của quy trình xác thực chéo, tránh việc thừa hoặc thiếu trang Supervised machine learning giúp cho tổ chức giải quyết các vấn đề ở quy mô lớn Ví dụ: phân loại thư rác trong mục hộp thư đến Một số phương pháp được sử dụng: mạng thần kinh, hồi quy tuyến tính, hồi quy logistics,…
2 Unsupervised machine learning (học máy không giám sát): Sử dụng các thuật toán học máy
để phân tích và phân cụm các bộ dữ liệu không được gắn nhãn Các thuật toán này khám phá những mẫu hoặc nhóm dữ liệu ẩn mà không cần sự can thiệp của con người Khả năng khám phá những điểm tương đồng và khác biệt trong thông tin của phương pháp này khiến nó phù hợp với việc phân tích dữ liệu khám phá, chiến lược bán chéo, phân khúc khách hàng cũng Copies for internal use only in Phenikaa University
Trang 18như nhận dạng hình ảnh và mẫu Nó cũng được sử dụng để giảm số lượng các tính năng trong một mô hình, thông qua quá trình giảm kích thước Phân tích thành phần chính (PCA) và phân tích giá trị đơn lẻ (SVD) là hai cách tiếp cận phổ biến cho phương pháp này Các thuật toán thường được sử dụng: mạng thần kinh, phân cụm k-means, phân cụm xác suất,…
3 Semi-supervised learning (Học máy bán giám sát): sự kết hợp giữa học máy không giám sát
và học máy giám sát Trong quá trình học, nó sử dụng tập dữ liệu được gắn nhãn nhỏ hơn để hướng dẫn, phân loại và trích xuất tính năng từ tệp dữ liệu lớn hơn, không được gắn nhãn Học máy bán giám sát có thể giải quyết vấn đề không có đủ dữ liệu được gắn nhãn cho thuật toán học máy có giám sát, hoặc dán nhãn đủ dữ liệu tốn quá nhiều thời gian và công sức
Deep Learning về cơ bản là một mạng nơ-ron gồm ba lớp trở lên, những mạng lưới nơ-ron này thu thập từ dữ liệu lớn (Big Data), học từ những dữ liệu đó và cố gắng “bắt chước” hành vi của não bộ con người Công nghệ này hoạt động bằng cách khám phá các cấu trúc phức tạp trong dữ liệu
mà chúng trải nghiệm, cụ thể là xây dựng các mô hình tính toán bao gồm nhiều lớp xử lý, mạng có thể tạo ra nhiều mức trừu tượng để biểu diễn dữ liệu
nhờ sự bùng nổ của Internet và khả
năng phát triển mạnh mẽ từ khả
năng tính toán của máy tính
thiết bị điện tử tiêu dùng có thể đáp
ứng được mọi nhu cầu cũng như
mong đợi của người dùng
nền tảng lớn như: Facebook,
Amazon, Netflix,…, giúp tăng độ
tương tác của người dùng lên cao
đáng kể
không chỉ xác định được đối tượng
trong ảnh mà còn hiểu được nội
dung và ngữ cảnh trong bức hình
trong hệ thống lái xe tự động
khủng để máy tính học hỏi Quy trình này mất nhiều thời gian và công sức để
xử lý mà chỉ có các Server chuyên nghiệp mới có thể làm được Trường hợp không đủ dữ liệu đầu vào để xử lý, mọi thứ sẽ không thể diễn ra đúng như
dự định của máy tính đưa ra
phức tạp Bởi, kỹ thuật của Deep Learning hiện chưa đảm bảo tốt để trí tuệ nhân tạo có thể rút ra những kết luận một cách logic
Bảng 1.1: Ưu/nhược điểm của Deep Learning.
1.2.4 So sánh, phân biệt AI, ML và DL
Copies for internal use only in Phenikaa University
Trang 19Ở thời đại công nghệ 4.0 hiện nay, chắc hẳn ai cũng đều đã từng nghe qua khái niệm Trí tuệ nhân tạo hay AI, Machine Learning, Deep Learning rồi phải không nào Những khái niệm tưởng chừng đơn giản nhưng lại khá nhập nhằng và dễ khiến người ta nhầm lẫn.
Cuối cùng, Deep Learning là một kỹ thuật để hiện thực hóa Machine Learning
Có thể giải thích mối liên hệ giữa 3 khái niệm này bằng cách tưởng tượng chúng như những vòng tròn, trong đó AI - ý tưởng xuất hiện sớm nhất - là vòng tròn lớn nhất, tiếp đến là machine learning - khái niệm xuất hiện sau, và cuối cùng là deep learning - thứ đang thúc đẩy sự bùng phát của AI hiện nay - là vòng tròn nhỏ nhất
Một ví dụ cho dễ hiểu:
Cho rằng bạn đang muốn tạo nên một hệ thống đèn phòng thông minh, rằng hễ khi "nó" nghe thấy bất cứ người nào trong phòng kêu than là "ôi, tối quá!", thì sẽ tự động bật sáng đèn Keyword
ở đây là từ "tối"
Đối với AI nói chung, hệ thống đèn này sẽ chỉ phản ứng khi nó nghe được chính xác câu nói
đó từ con người Với ML, nó sẽ có thể lọc ra được keyword là "tối", và trong bất cứ câu nói nào có chứa keyword này (ví dụ như "ở đây thật là tối tăm" hoặc "tối ơi là tối!"), nó đều sẽ dần học ra được rằng nó cần phải làm sáng đèn
Tuy nhiên, nó sẽ không thể tự phân biệt được đâu là những câu nói (hoặc ngữ cảnh) mà nó không nên phản ứng khi nghe được keyword "tối" Ví dụ như nó nghe được câu nói "khái niệm này sao mà tối nghĩa quá!", hoặc "hãy đi ra ngoài ăn tối nào!" Đây là những tình huống mà nó không nên phản ứng, nhưng vẫn bật sáng đèn Và thế là các kỹ sư lại phải nhúng tay vào chỉnh sửa lại.Trong khi đó, với DL, hệ thống đèn sẽ vừa có khả năng phản ứng với keyword "tối" trong rất nhiều câu nói và ngữ cảnh khác nhau, nhưng nó cũng đồng thời nhận biết được đâu là những ngữ cảnh mà nó không cần phản ứng, không cần bật đèn, và loại bỏ khỏi chương trình phản ứng Để thực hiện khâu nhận biết và loại bỏ này, tất nhiên DL cần tới sự trợ giúp của NN
1.2.5 Thị giác máy tính (CV)
Một trong những công nghệ tiên tiến liên quan đến AI là thị giác máy tính Nhờ những tiến
bộ trong trí tuệ nhân tạo và những đổi mới trong học sâu và mạng nơ-ron, lĩnh vực này đã có thể có
Copies for internal use only in Phenikaa University
Trang 20những bước tiến nhảy vọt trong những năm gần đây và có thể vượt qua con người trong một số nhiệm vụ liên quan đến phát hiện và ghi nhận đối tượng.
vào việc tái tạo các phần phức tạp của hệ thống thị giác con người và cho phép máy tính xác định và
xử lý các đối tượng trong hình ảnh và video giống như cách con người làm
Thị giác máy tính quan trọng vì nó mang lại sự tự động hóa và hiệu quả trong việc xử lý và hiểu dữ liệu hình ảnh và video Trước đây, việc xử lý thông tin hình ảnh yêu cầu sự can thiệp thủ công và tốn nhiều thời gian, dẫn đến khó khăn và lỗi trong quy trình Với sự phát triển của thị giác máy tính và tăng cường sức mạnh tính toán, quy trình này đã được tự động hóa và cải thiện đáng kể.Trước đây, việc triển khai hệ thống nhận diện khuôn mặt đòi hỏi con người phải gắn thẻ hàng ngàn hình ảnh bằng cách xác định các điểm dữ liệu chính như sống mũi và khoảng cách giữa hai mắt Tuy nhiên, với sự phát triển của thị giác máy tính, các nhiệm vụ này có thể được tự động hóa, giúp tiết kiệm thời gian và công sức Đồng thời, sự phát triển của công nghệ điện toán đám mây đã làm cho thị giác máy tính trở nên dễ tiếp cận và sử dụng cho mọi tổ chức
Hiện nay, thị giác máy tính có nhiều ứng dụng rộng rãi và quan trọng Ví dụ, nó có thể áp dụng
để xác thực danh tính, duyệt nội dung, phân tích video trực tuyến và phát hiện lỗi Các tổ chức từ khắp nơi đều có thể tận dụng công nghệ thị giác máy tính này để nâng cao hiệu quả và đáng tin cậy trong xử lý dữ liệu hình ảnh và video
Những tác vụ phổ biến mà thị giác máy tính thực hiện
Thị giác máy tính có thể thực hiện nhiều tác vụ phổ biến như sau:
Phân loại hình ảnh
Hình 1.2: Những tác vụ của thị giác máy tính.
Phân loại hình ảnh là quá trình mà máy tính có khả năng quan sát một hình ảnh và xác định loại hình ảnh đó thuộc về nhóm nào Thị giác máy tính có khả năng hiểu và đánh dấu các loại hình ảnh khác nhau, ví dụ như cây cối, máy bay, hoặc tòa nhà Một ví dụ cụ thể là camera có thể nhận diện khuôn mặt trong ảnh và tập trung vào lấy nét chính xác của khuôn mặt
Phát hiện đối tượng
Nhận diện vật thể và phát hiện đối tượng là một tác vụ trong thị giác máy tính nhằm phát hiện
và xác định vị trí của các đối tượng trong hình ảnh Tác vụ này sử dụng phân loại để nhận biết, sắp xếp và tổ chức hình ảnh Việc phát hiện vật thể được áp dụng trong các ứng dụng tự động và giám sát quy trình sản xuất trong lĩnh vực công nghiệp và sản xuất Các nhà cung cấp dịch vụ và nhà sản xuất camera gia đình cũng sử dụng công nghệ phát hiện vật thể để xử lý luồng video trực tiếp từ
Copies for internal use only in Phenikaa University
Trang 21camera, nhằm nhận biết và thông báo cho người dùng về sự xuất hiện của con người và các vật thể trong thời gian thực.
Theo dõi đối tượng
Theo dõi đối tượng là quá trình sử dụng mô hình học sâu để xác định và theo dõi các đối tượng
từ một danh sách đã được chỉ định Chức năng này có nhiều ứng dụng thực tiễn rộng rãi trên nhiều lĩnh vực khác nhau Theo dõi đối tượng bao gồm việc phát hiện đối tượng, tạo ra một khung bao quanh đối tượng, gán một ID cho đối tượng và tiếp tục theo dõi qua các khung hình Ví dụ, việc theo dõi đối tượng có thể được áp dụng để giám sát giao thông trong thành phố, theo dõi hoạt động của con người hoặc thực hiện chụp ảnh y tế
1.2.5.1 Nhận diện vật thể (OD)
Object Detection là môt lĩnh vực của Computer Vision, tuy nhiên nó khác với Classification tức nhiệm vụ chỉ là phân loại được hình ảnh đầu vào theo thành objects khác nhau Còn đối với Object Detection thì ngoài phân loại các objects từ image input, ta còn nhận biết được vị trí chính xác của từng objects đó trên hình ảnh Đây sẽ là bước phảt triển mới để có thể lấy dư liệu tốt hơn
từ hình ảnh từ đó giúp giải quyết nhiều bài toán hay và thực thế ( Máy chấm công, Máy quét khoảng cách chống dịch covid, Xe tự hành, … )
Tính đến hiện tại, ta có thể chia có nhóm thuật toán Object detection theo 2 nhóm chính:
1 Họ các mô hình RCNN ( RCNN, Fast RCNN, Faster - RCNN,… ) : điểm nổi bật là được
sử dụng với độ chính xác cao, có yêu cầu cao về phân loại, vị trí của đối tượng, vật thể Điểm nổi bật có thể kể đến là hầu hết các thuật toán này đều đem lại độ chính xác cực kì cao, bù lại cho khả năng “realtime” thấp nên được sử dụng cho các bài toán không cần hoặc không yêu cầu lớn về thời gian nhận diện hình ảnh, vật thể
2 Nhóm các mô hình theo họ Yolo: về nhóm thuật toán này là khả năng nhận diện và xử lí
nhanh, hầu hết nhóm này được đánh giá cao về khả năng “realtime” trong nhận diện vật thể Có thể xem như đây là nhóm thuật toán có ứng dụng cao trong các ứng dụng cần thời gian xử lí nhanh với yêu cầu độ chính xác ở mức “tương đối” Tuy vậy, hiện nay các nhóm tác giả đã liên tục ra các phiên bản nâng cấp của nhóm thuật toán để cải thiện về độ chính xác và tốc độ nhân diện.Vậy để có được một góc nhìn cụ thể hơn, chúng ta sẽ cùng đi tìm hiểu về cấu trúc bên trong của những phiên bản Yolo sơ khai nhất Để xem thử những gì được thể hiện thông qua Yolo nhé!
(a) YOLO
1 Bounding box
Với input của mạng Yolo là một hình ảnh, Yolo sẽ chia hình ảnh thành các ô lướt có kích thước SxS ( thường S = 3,5,7) sau đó ta nhận lại được một vector bouding box và dự đoán của các class có trong ảnh đó Nói cụ thể là một vector có 5 thành phần lần lượt là (x,y,w,h,p)
Lần lượt : x,y : là toạ độ tâm của bounding box; w,h: là chiều rộng (weight) và chiều cao ( height) của bounding box; p ( prediction) được định nghĩa là:
Thông thường các toạ độ này sẽ được chuẩn hoá về các giá trị nằm trong khoảng [0,1] thông qua tỉ lệ với kích thước với size của ảnh đầu vào Dưới đây là một ví dụ :
Copies for internal use only in Phenikaa University
Trang 22Hình 1.3: Mô tả Bounding Box.
2 IoU là gì ?
IoU hay Intersection over Union là một phương pháp để đo độ chính xác của một bộ nhận diện đối tượng Đây là một chỉ số mà ta sẽ thường xuyên gặp ở nhiều thuật toán khác nhau có thể kể ra như : HOG và Linear SVM và các mạng CNN trong đó có cả Yolo
Một lưu ý là mặc dù đây chỉ một chỉ số đánh giá đơn giản nhưng hầu như các thuật toán nào
có kêt quả đầu ra là các bounding box đề sử dụng IoU
Dưới đây là cách tính của IoU
Hình 1.4: IoU là gì?
Ta có thể thấy cơ bản IoU là một tỉ lệ của 2 đại lượng là “ Area of Overlap “ và “ Area of Union” Cụ thể Area of Overlap là diện tích phần giao nhau giữa predicted bounding box với grouth-truth bouding box , còn Area of Union là diện tích phần hợp giữa predicted bounding box với grouth-truth bounding box Những bounding box được đánh nhãn bằng tay trong tập traing set và test set.Nếu IoU > 0.5 thì p (prediction) được đánh giá là tốt
Copies for internal use only in Phenikaa University
Trang 23Hình 1.5: Ngưỡng IoU.
3 Network
Hình 1.6: Cấu trúc của YOLO.
Ta thấy cấu trúc của mạng Yolo còn khá đơn giản, chỉ các các lớp CNN chồng lên nhau để giảm kích thước của ảnh, cuối mỗi Conv Layer là một lớp Maxpooling có nhiệm vụ giảm số lượng noron có trong mạng, để đến cuối cùng ta nhận được một ma trận 7x7x30 ( như hình minh hoạ), điều này xả ra khi ban đầu ta chọn ma trận chia nhỏ ảnh có kích thước 7x7 (Xem lại ở 3.1)
4 Loss Function
YOLO sử dụng hàm “tổng bình phương lỗi” (sum-squared error Viết tắt là SSE) “Lỗi” ở đây tức là lấy giá trị của ground truth box( nhãn gán bằng tay) trừ đi bounding box prediction ( BB mà model dự đoán), sau đó bình phương giá trị này lên Công thức cụ thể như sau:
Copies for internal use only in Phenikaa University
Trang 24Ở đây, Yolo đã dùng đến 3 hàm loss function để tính Loss function tổng ( chính ) dùng cho model.
5 Non Max supperession
là một kĩ thuật làm giảm cái bounding box được dự đoán chồng tâm lên nhau Hình ảnh bên dưới sẽ là ví dụ cho bạn dễ hiểu vấn đề đang được để cậpCopies for internal use only in Phenikaa University
Trang 25Hình 1.7: Non Max supperession
Ta có thể nhận ra ngay với những object lớn thì các bounding box xác định tâm tức là x,y sẽ
bị rơi vào nhiều ô lưới ( grid S x S) dẫn đến tình trạng các Bounding box đè chồng lên nhau Và NMS đã được triển khai như sau để loại bỏ tình trạng trên
1 Loại bỏ những đối tượng có confidence C < C-threshold ( ngưỡng này chúng ta có thể re setup).
2 Sắp xếp những đối tượng có confidence C theo thứ tự giảm dần.
3 Chọn bounding box của những vật thể có confidence C cao nhất và xuất ra kết quả.
4 Loại bỏ những bounding box có IOU < IOU-threshold (ngưỡng này chúng ta có thể re setup)
5 Quay lại bước 3 cho tới khi mọi kết quả được kiểm tra
1.2.5.2 Theo dõi vật thể (OT)
Object Tracking là bài toán theo dõi một hoặc nhiều đối tượng chuyển động theo thời gian trong một video Hiểu một cách đơn giản nhất, nó là bài toán ở mức độ cao hơn so với object detection, khi đối tượng được xử lí không đơn giản là một hình ảnh mà là một chuỗi các hình ảnh : video
Nếu đơn giản như vậy, chẳng phải cứ tách video ra thành các frame rồi áp dụng object detection với từng frame là đủ rồi sao? Cũng không có gì khó lắm! Đương nhiên không chỉ đơn giản như vậy, việc tracking bên cạnh việc xác định các bounding box, còn quan tâm đến khá nhiều yếu
tố hoặc nhiễu khác nhau:
Copies for internal use only in Phenikaa University
Trang 26• Khi đối tượng bị che khuất hoặc biến mất sau 1 vài frame, hệ thống vẫn cần đảm bảo nhận diện lại được đúng ID khi đối tượng xuất hiện
•
Object Tracking có thể chia thành 2 cách tiếp cận chính:
• Single Object Tracking (SOT): Cái tên nói lên tất cả, Single Object Tracking tập trung vào
việc theo dõi một đối tượng duy nhất trong toàn bộ video Và tất nhiên, để biết được cần theo dõi đối tượng nào, việc cung cấp một bounding box từ ban đầu là việc bắt buộc phải có
• Mutiple Object Tracking (MOT): Mutliple Object Tracking hướng tới các ứng dụng có tính
mở rộng cao hơn Bài toán cố gắng phát hiện đồng thời theo dõi tất cả các đối tượng trong tầm nhìn, kể cả các đối tượng mới xuất hiện trong video Vì điểu này, MOT thường là những bài toán khó hơn SOT và nhận được rất nhiều sự quan tâm của giới nghiên cứu
Bên cạnh việc tiếp cận, các phương pháp giải lớp bài toán này cũng được phân chia rất đa dạng, phổ biến nhất là:
• Online Tracking : Khi xử lí video, Online Tracking chỉ sử dụng frame hiện tại và frame ngay
trước đó để tracking Cách xử lí này có thể sẽ làm giảm độ chính xác của thuật toán, tuy nhiên
nó lại phản ảnh đúng cách vấn đề được xử lí trong thực tế, khi mà tính "online" là cần thiết
• Offline Tracking : Các phương pháp Offline thường sử dụng toàn bộ frame của video, do đó
thường đạt được độ chính xác cao hơn nhiều so với Online Tracking
Ngoài ra còn phân chia theo:
• Detection based Tracking : Tập trung vào mối liên kết chặt chẽ giữa object detection và
object tracking, từ đó dựa vào các kết quả của detection để theo dõi đối tượng qua các frame
• Detection Free Tracking : Coi video như 1 dạng dữ liệu dạng chuỗi, từ đó, áp dụng những
phương pháp dành riêng cho "chuỗi" như RNN, LSTM,
(b) Bytetrack
ByteTrack [1] được ra đời vào tháng 11 năm 2021 và hiện tại vẫn đang là SOTA theo thang
Hình 1.8: ByteTrack
Copies for internal use only in Phenikaa University
Trang 27ByteTrack cho thấy tốc độ xử lý và độ chính xác của ByteTrack cao nhất trong các thuật toán tracking hiện tại: TransMOT, ReMOT, CorTracker, FairMOT, ByteTrack có điểm MOTA cao hơn cả trên 80 và tốc độ luôn đạt trên 30PFS Ngoài ra, ByteTrack còn có các ưu điểm sau:
• Khả Năng Theo Dõi Đối Tượng Đa Đối Tượng: ByteTrack có khả năng theo dõi đồng thời
nhiều đối tượng khác nhau, điều này rất hữu ích khi đếm và theo dõi nhiều loại phương tiện giao thông khác nhau như ô tô, xe máy, xe đạp, và xe buýt
• Điều Kiện Ánh Sáng Thay Đổi: ByteTrack có khả năng làm việc hiệu quả trong các điều
kiện ánh sáng thay đổi, ví dụ như khi xe đi vào hoặc ra khỏi bóng râm, hoặc trong điều kiện thời tiết khác nhau
Ổn Định Theo Thời Gian: Thuật toán ByteTrack được thiết kế để duy trì sự ổn định trong quá trình
theo dõi theo thời gian Điều này đảm bảo rằng phương tiện được theo dõi một cách liên tục và không
bị mất theo dõi sau khi đi ra khỏi khung hình hoặc bị che khuất
1.2.6 Website
Website là tập hợp các trang chứa thông tin bao gồm văn bản, hình ảnh, video, dữ liệu,… nằm trên một domain, được lưu trữ trên máy chủ web Website có thể được người dùng truy cập từ xa thông qua mạng internet
Một trang web tồn tại dưới dạng tập tin HTML hoặc XHTML có thể truy cập bằng giao thức HTTP hoặc HTTPS Website có thể xây dựng từ các tập tin HTML (website tĩnh) hoặc vận hành với các CMS chạy trên máy chủ (website động) Bên cạnh đó, website được xây dựng trên nhiều ngôn ngữ lập trình khác nhau như: PHP, JavaScript, Java,…
Khái niệm về website rất đơn giản: Website chỉ một site (trang) nằm trên một web Website cho phép người dùng đưa thông tin cá nhân, thông tin doanh nghiệp hay đăng tải bất kỳ chủ đề nào
để người khác có thể truy cập thông qua internet
Về mặt kỹ thuật, thì website là một tập hợp các trang được liên kết với nhau trên internet, nhóm lại thành một tên chung duy nhất Các trang (Webpage) này chứa thông tin hoặc dịch vụ được cung cấp bởi các doanh nghiệp/tổ chức và có thể tồn tại ở nhiều định dạng khác nhau: văn bản, hình ảnh, âm thanh, video,… Để xây dụng 1 trang web thì chúng ta sẽ cần đến Frontend và Backend
1.2.6.1 Frontend
Phần front-end của một trang web là phần tương tác với người dùng Tất cả mọi thứ bạn nhìn
thấy khi điều hướng trên Internet, từ các font chữ, màu sắc cho tới các menu xổ xuống và các thanh trượt, là một sự kết hợp của HTML, CSS, và JavaScript được điều khiển bởi trình duyệt máy tính của bạn
Các lập trình viên front-end chịu trách nhiệm cho giao diện của một trang web và kiến trúc những trải nghiệm của người dùng Để thực hiện được những mục tiêu đó, các lập trình viên front-end phải tinh thông 3 ngôn ngữ chính: HTML, CSS, và ngôn ngữ lập trình JavaScript
Ngoài việc thông thạo các ngôn ngữ đó, các lập trình viên front-end cần phải làm quen với các framework như Bootstrap, Foundation, Backbone, AngularJS, và EmberJS, để đảm bảo nội dung luôn hiển thị tốt trên mọi thiết bị khác nhau, và các thư viện như jQuery và LESS, đóng gói code vào trong một hình thức giúp tiết kiệm thời gian và hữu dụng hơn
Rất nhiều công việc dành cho lập trình viên front-end cũng yêu cầu kinh nghiệm với Ajax, một kỹ thuật được sử dụng rộng rãi bằng cách dùng JavaScript để cho phép các trang load một cách
tự động bằng cách tải dữ liệu máy chủ ở phần background
Copies for internal use only in Phenikaa University
Trang 281.2.6.2 Backend
Backend là gì? Thế nhưng điều gì giúp phần front-end của một trang web có thể hoạt động được? Tất cả dữ liệu sẽ được lưu trữ ở đâu? Đó là phần việc của back end Phần back end của một trang web bao gồm một máy chủ, một ứng dụng, và một cơ sở dữ liệu Một lập trình viên back-end xây dựng và duy trì công nghệ mà sức mạnh của những thành phần đó, cho phép phần giao diện người dùng của trang web có thể tồn tại được
Để khiến cho máy chủ, ứng dụng, và cơ sở dữ liệu có thể giao tiếp được với nhau, các lập trình viên back-end sử dụng các ngôn ngữ server-side như PHP, Ruby, Python, Java, và Net để xây dựng một ứng dụng, và các công cụ như MySQL, Oracle, và SQL Server để tìm kiếm, lưu trữ, hoặc thay đổi dữ liệu và phục vụ trở lại tới người dùng trong phần front-end Các công việc tuyển dụng lập trình viên back-end cũng thường yêu cầu kinh nghiệm về các framework PHP như Zend, Symfony,
và CakePHP; có kinh nghiệm với các phần mềm quản lý phiên bản như SVN, CVS, hoặc Git; và kinh nghiệm với Linux trong việc phát triển và triển khai hệ thống
Các lập trình viên backend sử dụng những công cụ này để tạo ra hoặc đóng góp vào các ứng dụng web với code sạch, portable, và được viết tài liệu chu đáo Nhưng trước khi viết code, họ cần phối hợp với bên liên quan về nghiệp vụ để hiểu những nhu cầu cụ thể, sau đó chuyển thành những yêu cầu kỹ thuật và đưa ra các giải pháp hiệu quả nhất cho việc kiến trúc công nghệ
1.2.7 Python
Python là ngôn ngữ lập trình máy tính bậc cao thường được sử dụng để xây dựng trang web và phần mềm, tự động hóa các tác vụ và tiến hành phân tích dữ liệu Python là ngôn ngữ có mục đích chung, nghĩa là nó có thể được sử dụng để tạo nhiều chương trình khác nhau và không chuyên biệt cho bất kỳ vấn đề cụ thể nào Tính linh hoạt này, cùng với sự thân thiện với người mới bắt đầu,
đã khiến nó trở thành một trong những ngôn ngữ lập trình được sử dụng nhiều nhất hiện nay Một cuộc khảo sát được thực hiện bởi công ty phân tích ngành RedMonk cho thấy rằng đây là ngôn ngữ lập trình phổ biến thứ hai đối với các nhà phát triển vào năm 2021
Sau khi hiểu Python là gì thì chúng ta có thể cập nhật một số lợi ích của ngôn ngữ như sau:
người có kinh nghiệm
tạo, khoa học dữ liệu và nhiều ứng dụng khác Điều này làm cho Python trở thành một ngôn ngữ lập trình linh hoạt và tiện lợi
viện, framework hữu ích Người dùng sẽ được nhận sự hỗ trợ từ cộng đồng thông qua tài liệu, diễn đàn và các nguồn thông tin trực tuyến
• Python cung cấp nhiều thư viện mạnh mẽ cho phân tích dữ liệu như Pandas, NumPy,
và Matplotlib Bộ ngôn ngữ giúp người dùng xử lý và thể hiện dữ liệu một cách hiệu quả
lập trình chéo phổ biến
phối và thay đổi phiên bản của nó
Copies for internal use only in Phenikaa University
Trang 291.2.8 Flask
Flask là loại framework web phổ biến được viết bằng trình lập ngôn ngữ Python Công nghệ thường được sử dụng để xây dựng trang web từ những ứng dụng đơn giản đến những hệ thống phức tạp hơn
Hình 1.9: Flask.
Flask được thiết kế để hoạt động và mở rộng một cách, đồng thời nó cũng cung cấp các công
cụ và thư viện cần thiết để phát triển ứng dụng web hiệu quả Flask cũng có cộng đồng sáng tạo và
hỗ trợ mạnh mẽ từ cộng đồng Python
Copies for internal use only in Phenikaa University
Trang 30CHƯƠNG 2: PHÂN TÍCH CÁC BÀI TOÁN VỀ GIAO THÔNG
2.1 Tổng quan về bài toán
2.1.1 Các loại phương tiện giao thông
Phương tiện giao thông đường bộ sẽ được phân ra thành 9 loại Sau đây là hình ảnh và đặc điểm của 9 loại phương tiện cần phân biệt:
3 Xe con dưới 13 chỗ (car)
Copies for internal use only in Phenikaa University
Trang 31Là các loại kiểu xe gia đình cơ bản 4 chỗ, 7 chỗ loại xe con cơ bản Đa phần là sơn trơn 1 màu có hoặc không sticker.
Hình 2.3: Xe con.
4 Xe Taxi (taxi)
Là các loại kiểu xe gia đình cơ bản 4 chỗ, 7 chỗ loại xe con cơ bản nhưng sẽ có 1 số sticker logo tên thương hiệu trên cửa xe, trần xe, mui xe, những nơi dễ quan sát thấy Và đặc biệt sẽ có các mũ trên nóc xe.
Trang 32Hình 2.5: Xe khách.
6 Xe buýt công cộng (bus)
Nó khá dễ nhầm với xe khách nên điểm khác biệt của bus sẽ là có ô cửa kính lớn hơn và có
số hiệu mỗi xe riêng biệt được hiển thị trên màn hình led đầu/cuối mỗi xe Có các logo nhãn hiệu của hãng xe bus.
Trang 33Là các loại xe tải nặng trên 3.5 tấn có thân dài, thùng xe cao hơn đầu xe, xe này loại sẽ to hơn
Xe tải đầu kéo, xe tải từ 5 trục, xe cẩu, )
Copies for internal use only in Phenikaa University