BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN CƠ SỞ Tìm hiểu R CNN ứng dụng phát hiện có xe hơi trên đường Giảng viên hướng dẫn Th S Vương Xuân Chí Sinh viên th. Chương 1 Giới thiệu Artificial Intelligence, Machine learning, Deep learning 1.1 Artificial Intelligence Kể từ khi phát minh ra máy tính hoặc máy móc, khả năng thực hiện các nhiệm vụ khác nhau của họ đã tăng lên theo cấp số nhân. Con người đã phát triển sức mạnh của hệ thống máy tính về các lĩnh vực làm việc đa dạng, tốc độ ngày càng tăng và giảm kích thước theo thời gian. Một nhánh của Khoa học Máy tính có tên Trí tuệ nhân tạo theo đuổi việc tạo ra các máy tính hoặc máy móc thông minh như con người. 1.1.1 AI Trí tuệ nhân tạo là gì? Theo cha đẻ của Trí tuệ nhân tạo, John McCarthy, đó là “Khoa học và kỹ thuật tạo ra các máy thông minh, đặc biệt là các chương trình máy tính thông minh”. Trí tuệ nhân tạo là một cách làm cho một máy tính, một robot điều khiển bằng máy tính hoặc một phần mềm suy nghĩ một cách thông minh, theo cách tương tự như suy nghĩ của con người thông minh. AI được hoàn thiện bằng cách nghiên cứu cách bộ não con người suy nghĩ và cách con người học, quyết định và làm việc trong khi cố gắng giải quyết một vấn đề, sau đó sử dụng kết quả của nghiên cứu này làm cơ sở phát triển phần mềm và hệ thống thông minh. 1.1.2 Triết lý về AI Trong khi khai thác sức mạnh của hệ thống máy tính, sự tò mò của con người khiến anh ta tự hỏi, “Liệu một cỗ máy có thể suy nghĩ và hành xử như con người không?” Do đó, sự phát triển của AI bắt đầu với ý định tạo ra trí thông minh tương tự trong các máy móc mà chúng ta tìm thấy và đánh giá cao ở con người. 1.1.3 Mục tiêu của AI Tạo ra hệ thống Chuyên gia: Hệ thống thể hiện hành vi thông minh, học hỏi, chứng minh, giải thích và tư vấn cho người dùng của nó.
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN CƠ SỞ
Tìm hiểu R-CNN ứng dụng phát hiện có xe hơi trên đường
Giảng viên hướng dẫn: Th.S Vương Xuân Chí
Sinh viên thực hiện: Hoàng Quốc Hải
Trang 2TP.HCM, tháng 9 năm 2022
Trang 3Trường Đại học Nguyễn Tất Thành
Khoa Công Nghệ Thông Tin
🙜🙜🙜🙜
CỘNG HÒA XÃ HỘI CHỦ NGHĨA
VIỆT NAM Độc lập – Tự do – Hạnh phúc
🙜🙜🙜🙜
NHIỆM VỤ ĐỒ ÁN CHUYÊN
NGÀNH/CƠ SỞ
(Sinh viên phải đóng tờ này vào báo cáo)
Họ và tên: Hoàng Quốc Hải
Tên đề tài: Tìm hiểu R-CNN ứng dụng
phát hiện có xe hơi trên đường.
Giá viên hướng dẫn: Vương Xuân Chí
Thời gian thực hiện: 20/6/2022 đến
20/9/2022
MÔ TẢ ĐỀ TÀI:
Deep Learning là một nhánh của Machine
Learning sử dụng mạng lưới thần kinh với
nhiều lớp Một mạng lưới thần kinh sâu
phân tích dữ liệu với các biểu diễn đã học
tương tự như cách một người nhìn vào một
vấn đề.
NỘI DUNG VÀ PHƯƠNG PHÁP:
- Giới thiệu học sâu Deep learning,
các phương pháp tiếp cận học máy
Machine learning
- R-CNN sử dụng Selective Search để
extract các regions từ image đầu vào
và check sự xuất hiện bất kì của
object, tìm ra các specific features
để detect ra các objects.
- Đưa ra ý tưởng để xây dựng ứng
dụng phát hiện có xe hơi trên đường.
- Kết luận
YÊU CẦU:
- Có kiến thức, đam mê, hiểu biết về công nghệ mới như Mạng neural, Machine Learning, Deep
Learning… Đọc hiểu tài liệu tiếng Anh, kỹ năng trình bày văn bản trên máy tính tốt.
- Có tác phong làm việc chăm chỉ, tinh thần trách nhiệm cao, có khả năng làm việc độc lập hoặc làm việc trong nhóm tốt.
Nội dung và yêu cầu đã được thông qua
Bộ môn.
Q TRƯỞNG BỘ MÔN
(Ký và ghi rõ họ tên)
ThS Vương Xuân Chí
TP.HCM, ngày 26 tháng 06 năm 2022
GIÁO VIÊN HƯỚNG DẪN
(Ký và ghi rõ họ tên)
ThS Vương Xuân Chí
Trang 4LỜI CẢM ƠN
Lời đầu tiên, xin gửi lời cảm ơn đếngia đình em, gia đình luôn tạo điềukiện, động lực quý báu cho em trongquá trình học tập cũng như hoànthành bài báo cáo này
Tiếp theo, xin gửi đến lòng biết ơnsâu sắc đến giảng viên Vương XuânChí ở Khoa CNTT Trường Đại họcNguyễn Thành người đã hướng dẫn,giúp đỡ em trong quá trình hoàn thiệnbài báo cáo này
Trang 5LỜI MỞI ĐẦU
Với sự phát triển của xã hội hiện đại,
AI – Artifical Intelligence Trí tuệnhân tạo không còn gì xa lạ với mỗichúng ta Chúng đang hiện diện phổbiến trong mọi lĩnh vực trong cuộcsống của chúng ta, từ kinh tế, giáodục, y khoa, giải trí và ngay cả trongquân sự quốc phòng của các quốc gia.Theo đó, sự bùng nổ của dữ liệu lớnBig Data giúp cho việc khai thác và
sử dụng chúng trở nên phổ biến và dễdàng hơn Các phần cứng để sử dụngcho mục đích phát triển ứng dụng liênquan đến AI ngày càng rẻ và hiệunăng năng tốt hơn góp phần phổ biếnđến người dùng Từ đó bất kỳ ai cũng
có thể sáng tạo, tham gia phát triểncác AI phục vụ con người trong mọilĩnh vực
Trang 7MỤC LỤC
Chương 1 Giới thiệu Artificial
Intelligence, Machine learning, Deep
DANH MỤC BẢNG HÌNH
Hình 1 Những đóng góp của AIHình 2 Machine Learning là gì?Hình 3 Quy trình học máyHình 4 Supervised LearningHình 5 Unsupervised LearningHình 6 Các vấn đề giải quyết bằng học máy
Hình 7 Trí tuệ nhân tạo so với Học máy và Học sâu
Hình 8 Các thành phần mạng thần kinh nhân tạo
Hình 9 Kiến trúc Deep neural network
Hình 10 Forward propagation in neural networks
Hình 11 Convolutional Neural Networks
Hình 12 The Recurrent Neural Networks architecture
Hình 13 Generative adversarial networks
Hình 14 Transformer Neural Networks
Hình 15 R-CNN
Trang 8Chương 1 Giới thiệu Artificial Intelligence, Machine learning, Deep learning
1.1 Artificial Intelligence
Kể từ khi phát minh ra máy tính hoặc máy móc, khả năng thực hiện các nhiệm vụkhác nhau của họ đã tăng lên theo cấp số nhân Con người đã phát triển sức mạnhcủa hệ thống máy tính về các lĩnh vực làm việc đa dạng, tốc độ ngày càng tăng vàgiảm kích thước theo thời gian
Một nhánh của Khoa học Máy tính có tên Trí tuệ nhân tạo theo đuổi việc tạo ra cácmáy tính hoặc máy móc thông minh như con người
1.1.1 AI - Trí tuệ nhân tạo là gì?
Theo cha đẻ của Trí tuệ nhân tạo, John McCarthy, đó là “Khoa học và kỹ thuật tạo ra các máy thông minh, đặc biệt là các chương trình máy tính thông minh”.
Trí tuệ nhân tạo là một cách làm cho một máy tính, một robot điều khiển bằng máy tính hoặc một phần mềm suy nghĩ một cách thông minh, theo cách tương tự như suy nghĩ của con người thông minh
AI được hoàn thiện bằng cách nghiên cứu cách bộ não con người suy nghĩ và cách con người học, quyết định và làm việc trong khi cố gắng giải quyết một vấn đề, sau đó sử dụng kết quả của nghiên cứu này làm cơ sở phát triển phần mềm và hệ thống thông minh
1.1.2 Triết lý về AI
Trong khi khai thác sức mạnh của hệ thống máy tính, sự tò mò của con người khiến anh ta tự hỏi, “Liệu một cỗ máy có thể suy nghĩ và hành xử như con người không?”
Do đó, sự phát triển của AI bắt đầu với ý định tạo ra trí thông minh tương tự trong các máy móc mà chúng ta tìm thấy và đánh giá cao ở con người
1.1.3 Mục tiêu của AI
Tạo ra hệ thống Chuyên gia: Hệ thống thể hiện hành vi thông minh, học hỏi, chứng minh, giải thích và tư vấn cho người dùng của nó
Trang 9Để triển khai trí thông minh của con người trong máy móc: Tạo ra các hệ thống hiểu, suy nghĩ, học hỏi và hành xử như con người.
1.1.4 Những đóng góp của AI
Trí tuệ nhân tạo là một ngành khoa học và công nghệ dựa trên các ngành như Khoa học máy tính, Sinh học, Tâm lý học, Ngôn ngữ học, Toán học và Kỹ thuật Mộtlực đẩy chính của AI là phát triển các chức năng máy tính liên quan đến trí thông minh của con người, chẳng hạn như lý luận, học tập và giải quyết vấn đề
Trong số các lĩnh vực sau, một hoặc nhiều lĩnh vực có thể góp phần xây dựng một hệ thống thông minh
1.1.5 Các loại AI
- Purely Reactive: Những máy này không có bất kỳ bộ nhớ hoặc dữ liệu nào để làm việc, chỉ chuyên về một lĩnh vực công việc Ví dụ, trong một trò
H
Trang 10chơi cờ vua, máy quan sát các nước đi và đưa ra quyết định tốt nhất có thể
- Self-Aware: Máy móc tự nhận thức là thế hệ tương lai của những công nghệ mới này Chúng sẽ thông minh, có tri giác và có ý thức
1.1.6 Ứng dụng của AI
Gaming: AI đóng vai trò quan trọng trong các trò chơi chiến lược như cờ vua, poker, tic-tac-toe, v.v., nơi máy có thể nghĩ ra một số lượng lớn các vị trí có thể dựa trên kiến thức kinh nghiệm
Natural Language Processing: Có thể tương tác với máy tính để hiểu ngôn ngữ
tự nhiên của con người
Expert Systems: Hệ thống chuyên gia - Có một số ứng dụng tích hợp máy móc, phần mềm và thông tin đặc biệt để truyền đạt lý luận và tư vấn Họ cung cấp lời giải thích và lời khuyên cho người dùng
Vision Systems: Các hệ thống này hiểu, diễn giải và lĩnh hội đầu vào trực quantrên máy tính Ví dụ:
- Các bác sĩ sử dụng hệ thống chuyên gia lâm sàng để chẩn đoán cho bệnh nhân
- Cảnh sát sử dụng phần mềm máy tính có thể nhận dạng khuôn mặt của tội phạm với bức chân dung được lưu trữ do nghệ sĩ pháp y thực hiện
Speech Recognition: Một số hệ thống thông minh có khả năng nghe và hiểu ngôn ngữ dưới dạng câu và ý nghĩa của chúng trong khi con người nói chuyện với nó
Nó có thể xử lý các trọng âm khác nhau, từ lóng, tiếng ồn trong nền, thay đổi tiếng ồncủa con người do lạnh, v.v
Trang 11Handwriting Recognition: Phần mềm nhận dạng chữ viết tay đọc văn bản đượcviết trên giấy bằng bút hoặc trên màn hình bằng bút cảm ứng Nó có thể nhận ra hình dạng của các chữ cái và chuyển nó thành văn bản có thể chỉnh sửa.
Intelligent Robots: Robot có thể thực hiện các nhiệm vụ do con người giao Chúng có các cảm biến để phát hiện dữ liệu vật lý từ thế giới thực như ánh sáng, sức nóng, nhiệt độ, chuyển động, âm thanh, va đập và áp suất Chúng có bộ xử lý hiệu quả, nhiều cảm biến và bộ nhớ khổng lồ, để thể hiện trí thông minh Ngoài ra, họ có khả năng học hỏi từ những sai lầm của mình và họ có thể thích nghi với môi trường mới
1.1.7 Trí tuệ nhân tạo hoạt động như thế nào?
Nói một cách đơn giản, các hệ thống AI hoạt động bằng cách hợp nhất lớn với các thuật toán xử lý thông minh, lặp đi lặp lại Sự kết hợp này cho phép AI học hỏi từ các mẫu và tính năng trong dữ liệu được phân tích Mỗi khi hệ thống Trí tuệ nhân tạo thực hiện một vòng xử lý dữ liệu, nó sẽ kiểm tra và đo lường hiệu suất của nó và sử dụng kết quả để phát triển thêm kiến thức chuyên môn
1.1.8 Các cách triển khai AI
Học máy - Machine Learning: Đó là học máy cung cấp cho AI khả năng học hỏi.Điều này được thực hiện bằng cách sử dụng các thuật toán để khám phá các mẫu
và tạo ra thông tin chi tiết từ dữ liệu mà chúng được tiếp xúc
Học sâu - Deep Learning: Học sâu, là một nhanh con của học máy, cung cấp cho AIkhả năng bắt chước mạng thần kinh của não người Nó có thể tạo ra cảm giác vềcác mẫu, nhiễu và các nguồn gây nhầm lẫn trong dữ liệu
1.2 Machine learning
1.2.1 Machine Learning là gì?
Nói một cách dễ hiểu, Học máy là một nhánh con của Trí tuệ nhân tạo (AI) cungcấp cho máy móc khả năng học hỏi tự động và cải thiện từ kinh nghiệm mà khôngcần được lập trình rõ ràng để làm như vậy Theo nghĩa, đó là việc thực hành đểMáy móc giải quyết vấn đề bằng cách đạt được khả năng suy nghĩ
Trang 12Hình 2 Machine Learning là gì?
1.2.2 Một số định nghĩa
Algorithm: Thuật toán Học máy là một tập hợp các quy tắc và kỹ thuật thống kêđược sử dụng để học các mẫu từ dữ liệu và rút ra thông tin quan trọng từ nó Đó làlogic đằng sau một mô hình Học máy Một ví dụ về thuật toán Học máy là thuậttoán Hồi quy tuyến tính
Model: Mô hình là thành phần chính của Học máy Một mô hình được đào tạobằng cách sử dụng Thuật toán học máy Một thuật toán ánh xạ tất cả các quyếtđịnh mà một mô hình phải thực hiện dựa trên đầu vào đã cho, để có được đầu rachính xác
Predictor Variable: Là (các) đặc điểm của dữ liệu có thể được sử dụng để dựđoán kết quả đầu ra
Response Variable: Là tính năng hoặc biến đầu ra cần được dự đoán bằng cách
sử dụng (các) biến dự đoán
Training Data: Mô hình Học máy được xây dựng bằng cách sử dụng dữ liệu đàotạo Dữ liệu đào tạo giúp mô hình xác định các xu hướng chính và các mẫu cầnthiết để dự đoán kết quả đầu ra
Testing Data: Sau khi mô hình được đào tạo, nó phải được kiểm tra để đánh giámức độ chính xác của nó có thể dự đoán một kết quả Điều này được thực hiệnbởi tập dữ liệu thử nghiệm
Trang 131.2.3 Quy trình học máy
Hình 3 Quy trình học máy
1. Thu thập dữ liệu: Thu thập dữ liệu mà thuật toán sẽ học từ đó.
2. Chuẩn bị dữ liệu: Định dạng và thiết kế dữ liệu thành định dạng tối ưu,
trích xuất các tính năng quan trọng và thực hiện giảm kích thước
3. Huấn luyện: Còn được gọi là giai đoạn lắp ráp, đây là nơi thuật toán Học
máy thực sự học bằng cách hiển thị cho nó dữ liệu đã được thu thập vàchuẩn bị
4. Đánh giá: Kiểm tra mô hình để xem nó hoạt động tốt như thế nào
5. Điều chỉnh: Tinh chỉnh mô hình để tối đa hóa hiệu suất của nó.
1.2.4 Các loại học máy
Supervised Learning
Học tập có giám sát là một kỹ thuật trong đó chúng ta dạy hoặc đào tạo máy bằngcách sử dụng dữ liệu được gắn nhãn rõ ràng
Trang 14Hình 4 Supervised Learning
Hãy xem xét hình trên Ở đây chúng ta đang cung cấp cho máy các hình ảnh Tom vàJerry và mục đích là để máy xác định và phân loại các hình ảnh thành hai nhóm(hình ảnh Tom và hình ảnh Jerry) Tập dữ liệu đào tạo được cung cấp cho mô hìnhđược gắn nhãn, như trong, chúng ta đang nói với máy, 'đây là hình dáng của Tom
và đây là Jerry' Làm như vậy, bạn đang đào tạo máy bằng cách sử dụng dữ liệuđược gắn nhãn Trong Học tập có giám sát, có một giai đoạn đào tạo được xácđịnh rõ được thực hiện với sự trợ giúp của dữ liệu được gắn nhãn
Unsupervised Learning
Học không giám sát liên quan đến việc đào tạo bằng cách sử dụng dữ liệu khôngđược gắn nhãn và cho phép mô hình hoạt động trên thông tin đó mà không cầnhướng dẫn
Hình 5 Unsupervised Learning
Trang 15Ví dụ: nó xác định các đặc điểm nổi bật của Tom như tai nhọn, kích thước lớnhơn, v.v., để hiểu rằng hình ảnh này thuộc loại 1 Tương tự, nó tìm thấy các đặcđiểm như vậy ở Jerry và biết rằng hình ảnh này thuộc loại 2 Do đó, nó phân loạicác hình ảnh thành hai lớp khác nhau mà không cần biết Tom hay Jerry là ai.
Reinforcement Learning
Học tăng cường là một phần của Học máy trong đó tác nhân được đưa vào mộtmôi trường và anh ta học cách cư xử trong môi trường này bằng cách thực hiệnmột số hành động nhất định và quan sát phần thưởng mà nó nhận được từ nhữnghành động đó
Học tăng cường chủ yếu được sử dụng trong các lĩnh vực Học máy nâng cao như
ô tô tự lái, AplhaGo, v.v
1.2.5 Các vấn đề giải quyết bằng học máy
Hình 6 Các vấn đề giải quyết bằng học máy
Hãy xem xét hình trên, có ba dạng vấn đề chính có thể được giải quyết trong Họcmáy:
1. Regression - Hồi quy: Trong dạng bài toán này, đầu ra là một đại lượng
liên tục Vì vậy, ví dụ, nếu bạn muốn dự đoán tốc độ của một chiếc ô tôtrong quãng đường, đó là một bài toán Hồi quy Các vấn đề hồi quy có thể
Trang 16được giải quyết bằng cách sử dụng các thuật toán Học có Giám sát như Hồiquy Tuyến tính - Linear Regression.
2. Classification - Phân loại: Trong loại này, đầu ra là một giá trị phân
loại Phân loại email thành hai lớp, spam và không spam là một vấn đề phânloại có thể được giải quyết bằng cách sử dụng các thuật toán phân loạiSupervised Learning như Support Vector Machines, Naive Bayes, LogisticRegression, K Nearest Neighbor, v.v
3. Clustering - Phân cụm: Loại vấn đề này liên quan đến việc gán đầu vào
thành hai hoặc nhiều cụm dựa trên sự giống nhau về tính năng Ví dụ: nhómngười xem thành các nhóm tương tự dựa trên sở thích, độ tuổi, địa lý, v.v.của họ có thể được thực hiện bằng cách sử dụng thuật toán Học khônggiám sát như K-Means Clustering
1.3 Deep learning
1.3.1 Deep Learning là gì?
Deep Learning (học sâu) có thể được xem là một lĩnh vực con của MachineLearning (học máy) – ở đó các máy tính sẽ học và cải thiện chính nó thông qua cácthuật toán Deep Learning được xây dựng dựa trên các khái niệm phức tạp hơn rấtnhiều, chủ yếu hoạt động với các mạng nơ-ron nhân tạo để bắt chước khả năng
tư duy và suy nghĩ của bộ não con người
Các mô hình học sâu hiện đại sử dụng mạng nơ-ron nhân tạo hoặc đơn giản làmạng nơ-ron để trích xuất thông tin
Các mạng nơ-ron này được tạo thành từ một hàm toán học đơn giản có thể xếpchồng lên nhau và sắp xếp dưới dạng các lớp, tạo cho chúng cảm giác về chiều
sâu, do đó có thuật ngữ Deep Learning.
Học sâu cũng có thể được coi là một phương pháp tiếp cận Trí tuệ nhân tạo, một
sự kết hợp thông minh giữa phần cứng và phần mềm để giải quyết các công việcđòi hỏi trí tuệ con người
Trang 17Hình 7 Trí tuệ nhân tạo so với Học máy và Học sâu
1.3.2 Neural Networks
Mạng lưới thần kinh là trung tâm của các mô hình học sâu và ban đầu nó đượcthiết kế để bắt chước hoạt động của các tế bào thần kinh trong não người
Trang 18Hình 8 Các thành phần mạng thần kinh nhân tạo
1.3.3 Deep Learning hoạt động như thế nào?
Mạng thần kinh sâu có nhiều lớp nơ-ron nhân tạo được kết nối với nhau hoặc cácnút được xếp chồng lên nhau Mỗi nút này có một hàm toán học đơn giản thường
là một hàm tuyến tính thực hiện việc trích xuất và ánh xạ thông tin
Có ba lớp đối với một mạng nơ-ron sâu: lớp đầu vào (Input Layer), lớp ẩn (HiddenLayer) và lớp đầu ra (Output Layer)
Trang 19Hình 9 Kiến trúc Deep neural network
Mỗi nút trong lớp đầu vào sẽ nhập dữ liệu và chuyển nó sang lớp tiếp theo, tức làcác lớp ẩn Các lớp ẩn này ngày càng trích xuất các tính năng từ lớp đầu vào đã cho
và biến đổi nó bằng cách sử dụng hàm tuyến tính
Các lớp này được gọi là các lớp ẩn vì các tham số - parameter (trọng số - weight và
độ lệch - bias) trong mỗi nút là không xác định; các lớp này thêm các tham số ngẫunhiên để biến đổi dữ liệu, mỗi tham số sẽ cho kết quả đầu ra khác nhau
Kết quả thu được từ các lớp ẩn sau đó được chuyển đến lớp cuối cùng được gọi
là lớp đầu ra, nơi tùy thuộc vào nhiệm vụ, nó phân loại, dự đoán hoặc tạo mẫu.Quá trình này được gọi là quá trình chuyển tiếp - forward propagation