Xử lý và nhận dạng là một lĩnh vực từ lâu được nhiều người quan tâm, được ứng dụng trong nhiều lĩnh vực như: - Trong y học, cải thiện ảnh X-quang và nhận dạng đường biên mạch máu từ ả
Trang 1ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
DƯƠNG THỊ DỊU
ỨNG DỤNG KỸ THUẬT HỌC SÂU TRONG PHÁT HIỆN
VÀ ĐẾM LƯU LƯỢNG XE MÁY
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Đà Nẵng - Năm 2019
Trang 2ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
DƯƠNG THỊ DỊU
ỨNG DỤNG KỸ THUẬT HỌC SÂU TRONG PHÁT HIỆN VÀ
ĐẾM LƯU LƯỢNG XE MÁY
Chuyên ngành: Khoa học máy tính
Mã số: 8480101
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Đà Nẵng - Năm 2019
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn trực tiếp của TS Huỳnh Hữu Hưng
Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố
Mọi sao chép không hợp lệ, vi phạm quy chế huấn luyện, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm
Tác giả
Dương Thị Dịu
Trang 4MỤC LỤC
LỜI CAM ĐOAN i
MỤC LỤC ii
DANH MỤC CÁC TỪ VIẾT TẮT vi
DANH MỤC CÁC BẢNG vii
DANH SÁCH HÌNH ẢNH viii
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục tiêu và nhiệm vụ 1
2.1 Mục tiêu 1
2.2 Nhiệm vụ 1
3 Đối tượng và phạm vi nghiên cứu 2
3.1 Đối tượng 2
3.2 Phạm vi nghiên cứu 2
4 Phương pháp nghiên cứu 2
4.1 Phương pháp nghiên cứu tài liệu 2
4.2 Phương pháp thực nghiệm 2
5 Ý nghĩa khoa học và thực tiễn 2
6 Bố cục luận văn 2
CHƯƠNG 1: TỔNG QUAN 4
1.1 Đặt vấn đề 4
1.2 Những nghiên cứu liên quan 5
1.3 Kỹ thuật học sâu 6
1.3.1 Tổng quan về học sâu 6
1.3.2 Mạng nơ-ron tích chập – Convolutional neural network (CNN) 10
1.4 Các kỹ thuật liên quan đến xử lý ảnh và nhận diện đối tượng 14
1.4.1 Tổng quan về xử lý ảnh 14
1.4.2 Các vấn đề cơ bản trong xử lý ảnh 15
Trang 51.4.3 Nhận diện và phân loại ảnh 15
1.5 Kết luận chương 1 16
CHƯƠNG 2: GIẢI PHÁP TRIỂN KHAI 17
2.1 Mô hình giải quyết bài toán 17
2.2 Các công cụ và môi trường triển khai đề tài 19
2.2.1 Công cụ xử lý hình ảnh OpenCV 19
2.2.2 Công cụ đánh nhãn hình ảnh LabelImage 19
2.2.3 Thư viện học máy YOLO 20
2.3 Ngôn ngữ lập trình Python 24
2.4 Bản triển khai DarkFlow 24
2.5 Thư viện TensorFlow 24
2.6 Thuật toán RCNN - DeepLearning 27
2.7 Kết luận chương 2 28
CHƯƠNG 3: TRIỂN KHAI THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 29
3.1 Các bước thực hiện 29
3.1.1 Thu thập dữ liệu 30
3.1.2 Gán nhãn 31
3.1.3 Cài đặt Darkflow 35
3.1.4 Xây dựng cây thư mục 36
3.1.5 Tìm một mô hình được huấn luyện trước 37
3.2 Quá trình huấn luyện 37
3.3 Tạo file để test video 40
3.4 Xử lý video và đếm xe 41
3.5 Kiểm tra lại kết quả nhận được 42
3.6 Kết quả thực nghiệm 42
3.6.1 Nhận dạng xe máy 42
3.6.2 Đếm số lượng xe máy 43
3.7 Nhận xét kết quả 44
3.7.1 Nhận dạng xe máy 44
Trang 63.7.2 Đếm số lượng xe máy 45
3.8 Kết luận chương 3 45
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 46
1.1 Kết luận 46
1.2 Hướng phát triển 46
TÀI LIỆU THAM KHẢO 47
Trang 7ỨNG DỤNG KỸ THUẬT HỌC SÂU TRONG PHÁT HIỆN VÀ ĐẾM
LƯU LƯỢNG XE MÁY Học viên: Dương Thị Dịu Chuyên ngành: Khoa học máy tính
Mã số: 8480101 Khóa: 35 Trường Đại học Bách khoa - ĐHĐN
Tóm tắt - Ngày nay, các vấn đề trong giao thông đô thị ngày càng trở nên cấp bách, đặc
biệt ở các thành phố đông dân cư Việc nghiên cứu xử lý hình ảnh video hỗ trợ quan sát, thống kê, dự báo trong lĩnh vực giao thông ngày càng có ý nghĩa quan trọng Trong luận văn này, tôi đề xuất giải pháp đếm lưu lượng xe máy tại một số tuyến đường trong nội thành thành phố Đà Nẵng Quá trình xử lý bao gồm các bước: (1) xây dựng cơ sở dữ liệu đầu vào; (2) sử dụng công cụ gán nhãn hình ảnh; (3) huấn luyện cơ sở dữ liệu đã gán nhãn bằng kỹ thuật học sâu Kết quả thực nghiệm trên các video giao thông quan sát được gắn trên địa bàn thành phố Đà Nẵng mang lại kết quả hứa hẹn
Từ khóa: phát hiện xe, đếm xe, học sâu
APPLICATION OF DEEP LEARNING IN MOTO DETECTION AND
COUNTING
Abstract - Nowadays, the problems in urban transport are becoming increasingly urgent,
especially in densely populated cities Researching and processing video images to support observation, statistics and forecasting in the field of delivery is increasingly important In this essay, I propose a solution to count motor traffic at some roads in the inner city of Da Nang Processing process includes the following steps: (1) building input database; (2) use image labeling tool; (3) training labeled databases with deep learning techniques Experimental results on observed traffic videos attached to the locality of Da Nang bring promising results
Key words: vehicle detection, vehicle couting, deep learning.
Trang 8DANH MỤC CÁC TỪ VIẾT TẮT
DNN Deep Neural Network CNN Convolutional Neural Network SVM Support Vector Machine CUDA Compute Unified Device Architecture GPU Graphics Processing Unit
ReLU Rectified Linear Unit YOLO You Only Look Once CPU Central Processing Unit
Trang 9DANH MỤC CÁC BẢNG
3.1 Thống kê kết quả hiệu suất nhận dạng xe máy 43
Trang 10DANH SÁCH HÌNH ẢNH
1.8 Một bức ảnh thông qua nhiều góc nhìn khác nhau (các
feature map)
12
1.11 Drop-out thực hiện loại bỏ một số neural trong quá trình tính
2.6 Mỗi ô dự đoán số lượng cố định các hộp ranh giới 21
2.8 YOLO thực hiện SxS dự đoán với B hộp ranh giới 22
Trang 11Số hiệu Tên hình vẽ Trang
3.2 Trang web camera giao thông thành phố Đà Nẵng 30
3.11 Cấu trúc file xml chứa nhãn hình ảnh các đối tượng 35
3.23 4 file checkpoint được sử dụng để nhận dạng 40
Trang 12Số hiệu Tên hình vẽ Trang
Trang 13MỞ ĐẦU
1 Lý do chọn đề tài
Giao thông luôn là vấn đề lớn đối với các đô thị lớn ở các nước và ở Việt Nam nói chung Trong những năm gần đây, cùng với sự phát triển kinh tế - xã hội, nhiều công trình giao thông đã và đang được xây dựng trên khắp Việt Nam để đáp ứng nhu cầu đi lại, đồng thời đáp ứng sự gia tăng không ngừng số lượng các phương tiện tham gia giao thông Chúng ta đang phải đối mặt với những vấn đề cấp bách trong giao thông, đặc biệt
là tai nạn giao thông và ùn tắc giao thông tại nhiều thành phố lớn Để giải quyết vấn đề này, chúng ta đang cố gắng từng bước xây dựng một hệ thống giao thông đồng bộ và áp dụng khoa học kỹ thuật mới trong hệ thống điều khiển giao thông Xử lý và nhận dạng
là một lĩnh vực từ lâu được nhiều người quan tâm, được ứng dụng trong nhiều lĩnh vực như:
- Trong y học, cải thiện ảnh X-quang và nhận dạng đường biên mạch máu
từ ảnh chụp bằng tia X, ứng dụng vào các xét nghiệm lâm sàng như phát hiện và nhận dạng u não, nội soi cắt lớp …
- Trong thiên văn học, hệ thống chụp hình gắn trên tàu vũ trụ hạn chế về kích thước và trọng lượng, do đó chất lượng hình ảnh nhận được bị giảm, ảnh bị mờ méo hình học và nhiễu nền
- Trong các lĩnh vực công nghiệp, người máy ngày càng đóng vai trò quan trọng Chúng giúp con người thực hiện các công việc nguy hiểm, đòi hỏi có tốc độ và
độ chính xác cao vượt quá khả năng con người Người máy sẽ trở nên tinh vi hơn và thị giác máy tính đóng vai trò quan trọng hơn Người ta sẽ không chỉ đòi hỏi người máy phát hiện và nhận dạng các bộ phận công nghiệp mà còn phải “hiểu” được những gì chúng “thấy” và đưa ra hành động phù hợp
Xuất phát từ yêu cầu thực tiễn tôi đã chọn đề tài “Ứng dụng kỹ thuật học sâu trong phát hiện và đếm lưu lượng xe máy”
Dù đã cố gắng hoàn thành báo cáo nhưng không thể tránh khỏi những sai sót vì vậy tôi rất mong nhận được ý kiến đánh giá của các thầy cô và các bạn để tôi có thể hoàn thiện đề tài của mình một cách tốt nhất
2 Mục tiêu và nhiệm vụ
2.1 Mục tiêu
Mục tiêu chính của luận văn là ứng dụng kỹ thuật học sâu để phát hiện và đếm
xe máy trong video giao thông
2.2 Nhiệm vụ
Từ mục tiêu của đề tài, luận văn tập trung nghiên cứu các nhiệm vụ sau:
Trang 14- Tìm hiểu kỹ thuật học sâu;
- Tìm hiểu các bộ thư viện cài đặt cho mô hình học sâu;
- Sử dụng công cụ đánh nhãn để đánh nhãn xe máy trong video giao thông;
- Huấn luyện và xây dựng mô hình nhận dạng, đếm xe máy
3 Đối tượng và phạm vi nghiên cứu
3.1 Đối tượng
- Dữ liệu thu được từ camera hoặc các bộ dữ liệu tự xây dựng;
- Các phương pháp huấn luyện học máy;
- Các phương pháp nhận dạng xe máy
3.2 Phạm vi nghiên cứu
- Nghiên cứu phân tích dữ liệu từ camera hoặc từ dữ liệu có sẵn, phát hiện xe máy
và đếm xe
4 Phương pháp nghiên cứu
4.1 Phương pháp nghiên cứu tài liệu
- Tìm hiểu các kỹ thuật xử lý ảnh;
- Tìm hiểu các tài liệu hiện có về phát hiện và đếm xe
4.2 Phương pháp thực nghiệm
- Xây dựng dữ liệu;
- Thực nghiệm mô hình;
- Phân tích, đánh giá kết quả
5 Ý nghĩa khoa học và thực tiễn
- Về khoa học: Áp dụng phương pháp học sâu để phát hiện và đếm xe máy
- Về thực tiễn: Hỗ trợ xác định lưu lượng xe máy đang tham gia giao thông trên đường, giúp giải quyết một số vấn đề trong giao thông
6 Bố cục luận văn
Nội dung của luận văn được trình bày với các phần chính như sau:
Chương 1 - Tổng quan
Trong chương này, tác giả giới thiệu về các nghiên cứu liên quan về nhận dạng
và phát hiện đối tượng; tổng quan về kỹ thuật học sâu, mạng CNN và xử lý ảnh
Chương 2 – Giải pháp triển khai
Trong chương này, tác giả đề xuất mô hình giải quyết bài toán nhận dạng và đếm xe; đề xuất công cụ nhận dạng hình ảnh OpenCV, công cụ đánh nhãn LabelImage, thư viện Tensorflow, thư viện Học máy YOLO
Trang 15Chương 3 – Triển khai thực nghiệm và đánh giá kết quả
Trong chương này, tác giả giới thiệu các bước giải quyết bài toán, miêu tả kết quả thực nghiệm trên một video mẫu được trích xuất từ camera giao thông tại một đoạn đường cụ thể trong nội thành Đà Nẵng
Kết luận và hướng phát triển
Trang 16CHƯƠNG 1: TỔNG QUAN
1.1 Đặt vấn đề
Nước ta hiện nay có một số lượng lớn phương tiện xe máy, xe gắn máy đang lưu thông Tình hình ùn tắc giao thông thường xuyên xảy ra ở nhiều nơi Vậy làm sao để phân tích lưu lượng xe trên các đoạn đường, từ đó đưa ra các giải pháp tránh ùn tắc như điều chỉnh thời gian đèn báo giao thông dựa vào lưu lượng xe, là một trong những giải pháp để hạn chế vấn đề ùn tắc Việc nhận diện được xe là bước đầu tiên trong việc thu thập dữ liệu để lập nên giải pháp cho vấn đề nan giải này
Hình 1.1: Ùn tắc giao thông ở Việt Nam
Bài toán đặt ra là khi chúng ta đưa vào một video giao thông - có các phương tiện
xe máy, thì đầu ra sẽ đưa ra kết quả nhận diện xe máy trên đường Từ đó chúng ta có thể
áp dụng cho các bài toán lớn hơn
Trang 171.2 Những nghiên cứu liên quan
Trong những năm gần đây, hệ thống phát hiện và nhận dạng đối tượng đã được
áp dụng vào nhiều lĩnh vực hệ thống thông minh như siêu thị thông minh, máy bán hàng
tự động, hệ thống giám sát an ninh, tương tác người - máy thông minh và nhiều ứng dụng công nghiệp khác Trong lĩnh vực nghiên cứu về giao thông, đã có một số nghiên cứu về việc giám sát và nhận dạng phương tiện giao thông Trong phạm vi luận văn, tác giả xin giới thiệu một số nghiên cứu sau:
Luo-Wei Tsai và cộng sự [1], phát hiện phương tiện sử dụng màu sắc được chuẩn hóa và bản đồ biên L Tsai đã đưa ra phương pháp biến đổi mới để tìm “màu xe” từ hình ảnh để định vị các ứng viên một cách nhanh chóng Họ còn trình bày hệ thống phát hiện từ phía sau theo thời gian thực sử dụng các phương pháp dựa trên độ dốc và phân loại Adaboost cho các ứng dụng ACC Các kết quả thực nghiệm cho thấy phương pháp này thực hiện rất hiệu quả trên ảnh tĩnh với độ chính xác trung bình là 94.5% Độ chính xác của phát hiện phương tiện trên di chuyển còn chưa cao
A Khammari và cộng sự [2] phát hiện phương tiện kết hợp phân tích độ dốc và phân loại AdaBoost A Khammari đã giới thiệu hệ thống phát hiện từ phía sau theo thời gian thực sử dụng các phương pháp dựa trên độ dốc và phân loại Adaboost cho các ứng dụng ACC Thuật toán phát hiện bao gồm hai bước chính: tạo giả thuyết dựa trên độ dốc
và xác minh giả thuyết dựa trên ngoại hình Tạo giả thuyết sử dụng ngưỡng phụ thuộc phạm vi thích ứng và đối xứng để định vị tối đa độ dốc Xác thực giả thuyết dựa trên sử dụng AdaBoost để phân loại với các phân loại độc lập với độ sáng Hệ thống một mắt được thử nghiệm theo các kịch bản giao thông khác nhau (ví dụ: đường cao tốc có cấu trúc đơn giản, môi trường đô thị phức tạp, điều kiện ánh sáng khác nhau), kết quả hiệu suất tốt Hệ thống thường không nhận diện được phương tiện cách xa quá 60m
Zhiquan Ren cùng công cụ [3] phát hiện phương tiện dựa sử dụng smartphone Android R Zhiquan v.v đã trình bày một công nghệ di động sử dụng điện thoại thông minh để phát hiện chiếc xe đi trước Công nghệ này sử dụng camera phía sau của smartphone Android để chụp ảnh cảnh lái xe, sau đó sử dụng thuật toán thị giác máy tính tiên tiến để phát hiện và theo dõi chiếc xe đi trước Với tài nguyên tính toán hạn chế của điện thoại thông minh, thuật toán đạt được tốc độ lấy mẫu cao khoảng 7Hz, đủ nhanh cho các ứng dụng thực tế
Denis Kleyko và cộng sự [4] so sánh các kỹ thuật học máy để phân loại xe bằng cảm biến bên đường D Kleyko v.v đã đưa ra sự so sánh các thuật toán học máy khác nhau để phân loại phương tiện Tập dữ liệu của họ bao gồm 3074 mẫu Hồi quy logistic, mạng nơ ron và máy vector hỗ trợ đã được sử dụng để phân loại Theo kết quả của [10] hồi quy logistic cho thấy hiệu suất tốt nhất trong số các phương pháp học máy khác với
tỷ lệ phân loại trung bình trên bộ dữ liệu xác nhận đạt 93,4% Vấn đề chính gặp phải là
Trang 18tập dữ liệu Nó lệch khá nhiều đối với một trong các lớp và gây khó khăn cho việc phân tích về việc phân loại
Zezhi Chen và cộng sự [5] so sánh các hệ thống phân loại, chỉ ra cách phân loại
xe bằng cách sử dụng các thông số về kích thước và hình dạng Phân loại dùng cho bốn loại phương tiện (xe máy, xe tải, xe buýt và xe đạp/ xe máy) và nó được thực hiện theo hai cách tiếp cận khác nhau: hai phân loại dựa trên tính năng (SVM và rừng ngẫu nhiên (Random Forest - RF)) và phương pháp dựa trên mô hình Nghiên cứu cho thấy rằng SVM luôn vượt trội so với RF, với độ chính xác phân loại cuối là 96,26% Số lượng các phân loại sai sót cao nhất xảy ra giữa xe và xe tải, trong đó đặc điểm kích thước và hình dạng thể hiện sự tương đồng đáng kể
Muhammad Asif Manzoor cùng cộng sự [6] đã đề xuất một phương pháp dựa trên máy vectơ hỗ trợ (SVM) tuyến tính để giải quyết vấn đề này Việc trích xuất các đặc điểm và hiển thị các điểm đặc trưng thì phép biến đổi đặc điểm không phụ thuộc phạm vi (SIFT) được sử dụng Mô hình túi từ được sử dụng để phân loại Phương pháp
đề xuất được thử nghiệm dựa trên bộ dữ liệu NTOUMMR và cho thấy tỷ lệ chính xác trung bình là 89% Bộ dữ liệu chứa hình ảnh xe trực diện
Qua những nghiên cứu trên, ta thấy các phương pháp, kết quả nghiên cứu trên có
ý nghĩa thực tiễn với độ chính xác tương đối, tuy nhiên mỗi phương pháp đều có hạn chế nhất định và tốn nhiều tài nguyên Vì vậy, cần một phương pháp có tốc độ xử lý nhanh và độ chính xác tốt hơn bằng cách ứng dụng kỹ thuật Học sâu để nhận dạng và đếm xe máy
1.3 Kỹ thuật học sâu
1.3.1 Tổng quan về học sâu
Học sâu (deep learning) là một nhánh của ngành máy học, dựa trên một tập hợp các thuật toán để cố gắng mô hình dữ liệu để trừu tượng hóa ở mức cao bằng cách sử dụng nhiều lớp xử lý với cấu trúc phức tạp, hoặc bằng cách khác bao gồm nhiều lớp biến đổi phi tuyến để trích tách đặc trưng và chuyển đổi [12] Mỗi lớp kế tiếp dùng đâu ra của lớp trước làm đầu vào Các thuật toán này có thể được giám sát hoặc không cần giám sát và các ứng dụng bao gồm các mô hình phân tích (không giám sát) và phân loại (giám sát)
Các thuật toán học sâu dựa trên các đại diện phân phối Giả định tiềm ẩn đằng sau các đại diện phân phối là các dữ liệu được quan sát là được tạo ra bởi sự tương tác của các yếu tố được tổ chức theo lớp Học sâu thêm giả định rằng các lớp của các yếu
tố này tương ứng với các mức độ trừu tượng hay theo thành phần Các con số khác nhau của các lớp và kích thước của lớp có thể được sử dụng để quy định các lớp trừu tượng khác Học sâu khai thác ý tưởng thứ bậc các yếu tố giải thích này ở cấp cao hơn, những khái niệm trừu tượng hơn được học từ các cấp độ thấp hơn
Trang 19Một trong những phương pháp học sâu thành công nhất là mô hình mạng nơ-ron nhân tạo (Arificial Neural Network) [12] Mạng nơ-ron nhân tạo được lấy cảm hứng từ các mô hình sinh học năm 1959 được đề xuất bởi người đoạt giải Nobel David H Hubel
& Torsten Wiesel, 2 người đã tìm thấy hai loại tế bào trong vỏ não thị giác chính: các tế bào đơn giản và các tế bào phức tạp Nhiều mạng nơ-ron nhân tạo có thể được xem như
là các mô hình ghép tầng của các tế bào lấy cảm hứng từ những quan sát sinh học Nhưng không giống như bộ não sinh học mà bất kỳ nơ-ron nào có thể kết nối với bất kỳ nơ-ron nào khác trong một cách nhất định, các mạng nơ-ron nhân tạo này có các lớp, kết nối và hướng riêng biệt để truyền dữ liệu Mỗi tế bào thần kinh được gán một trọng số cho đầu vào của nó, kết quả cuối cùng sau đó được xác định bằng tổng số trọng số đó
Hình 1.2: Nơ-ron sinh học
Như hình trên, ta có thể thấy một nơ-ron có thể nhận nhiều đầu nào và cho ra một
kết quả duy nhất Một nơ-ron đơn lẻ như vậy được gọi là perceptron
Hình 1.3: Perceptron Ví dụ: Một perceptron sẽ nhận một hoặc nhiều đầu vào x dạng nhị phân và cho kết quả đầu ra o dạng nhị phân duy nhất Các đầu vào được điều phối tầm ảnh hưởng bởi các tham số lượng tương ứng w của nó, kết quả đầu ra được quyết định vào một
ngưỡng quyết định b nào đó:
Đặt b = - threshold, ta có thể viết lại thành:
Trang 20Với đầu vào và đầu ra dạng nhị phân, ta rất khó có thể điều chỉnh một lượng nhỏ đầu vào để đầu ra thay đổi chút ít, nên để linh động ta có thể mở rộng ra cả khoảng [0, 1]
Lúc này đầu ra được quyết định bởi một hàm sigmoid [10] σ(w x) có công thức
Đồ thị của hàm này cũng cân xứng thể hiện được mức độ công bằng của các tham số:
Hình 1.4: Hàm sigmoid Đặt z = W T X thì công thức của perceptron lúc này sẽ có dạng:
Tới đây thì ta có thể thấy rằng mỗi hàm sigmoid cũng tương tự như một bộ phân
loại tuyến tính(logistic regression) bởi xác suất P(yi=1|xi;w)= σ(w x)
Ngoài hàm sigmoid ra ta còn có một số hàm khác như tanh, ReLU[10] để thay thế hàm sigmoid bởi dạng đồ thị của nó cũng tượng tự như sigmoid[10] Một cách tổng
quát, hàm perceptron được biểu diễn qua một hàm kích hoạt (activation function) f(z)
như sau:
Mạng nơ-ron nhân tạo là sự kết hợp của các tầng perceptron hay còn gọi là perceptron đa tầng (multilayer perceptron) như hình bên dưới:
Trang 21Hình 1.5: Mạng nơ-ron nhân tạo
Kiến trúc chung của mạng nơ-ron nhân tạo bao gồm thành phần: Lớp đầu vào,
Lớp ẩn và Lớp đầu ra
Lớp đầu vào (Input layer): Là nơi để nạp dữ liệu vào Mỗi nơ-ron tương
ứng với một thuộc tính (attribute) hoặc đặc trưng (feature) của dữ liệu đầu vào
Lớp ẩn (Hidden layer): Là nơi xử lý dữ liệu trước khi đưa ra output
Thường là hàm tổng (Summation function) để đưa ra giá trị của một nơ-ron tại hidden layer Có thể có nhiều hơn một hidden layer Khi đó đầu ra của một hidden layer sẽ là đầu vào cho hidden layer tiếp theo
Lớp đầu ra (Output layer): Là giá trị đầu ra của mạng nơ-ron Sau khi đi
qua hidden layer cuối cùng, dữ liệu sẽ được chuyển hóa bằng một hàm số được gọi là hàm kích hoạt (Activation function) và đưa ra output cuối cùng Hàm chuyển đổi thường
là hàm tanh(x), sigmoid(x) hoặc softmax(x) [12]
Trong mạng nơ-ron nhân tạo, mỗi nơ-ron đóng vai trò như một đơn vị xử lý thông tin Giữa các nơ-ron được đánh trọng số, gọi là các trọng số liên kết (Connection Weight), thể hiện độ quan trọng của thông tin của mỗi nơ-ron trước với nơ-ron sau Quá trình học của mạng nơ-ron cũng chính là việc điều chỉnh những tham số này sao cho phù hợp nhất
Thông tin của mỗi nơ-ron đi qua mỗi layer sẽ được áp dụng hàm tổng và hàm kích hoạt trước khi trở thành thông tin đầu vào của nơ-ron tiếp theo
Trong đó:
- 𝑥𝑗: Giá trị đầu ra của nơ-ron thứ j
- 𝑤𝑖𝑗: Trọng số liên kết giữa nơ-ron thứ j ở layer trước và nơ-ron thứ i ở
layer sau
Thông tin ở hidden layer cuối cùng trước khi tới output sẽ phải qua một hàm kích hoạt (Activation function) Việc sử dụng hàm kích hoạt có hai mục đích: Một là những
Trang 22thông tin qua hàm tổng có thể sẽ lớn, vì vậy hàm chuyển đổi sẽ khiến giá trị đầu ra bị chặn Ví dụ đầu ra của hàm sigmoid sẽ nằm trong khoảng [0, 1] còn tanh thì là [-1, 1] Hai là hàm tổng là một hàm tuyến tính, giá trị đầu ra sẽ không “mượt”, hàm kích hoạt
sẽ “mượt hóa” kết quả của hàm tổng để kết quả đầu ra có thể chính xác hơn Hàm kích hoạt thường sử dụng là hàm softmax, tanh, sigmoid [12] hay chỉ đơn thuần là một ngưỡng để quyết định giá trị cho output
n: là tổng số nơ-ron ở output layer
x: là giá trị từ hidden layer cuối cùng sau khi đi qua hàm tổng
1.3.2 Mạng nơ-ron tích chập – Convolutional neural network (CNN)
Convolutional Neural Network (CNN – Mạng nơ-ron tích chập) là một trong những mô hình Deep Learning tiên tiến giúp cho chúng ta xây dựng được những hệ thống thông minh với độ chính xác cao như hiện nay như hệ thống xử lý ảnh lớn như Facebook, Google hay Amazon đã đưa vào sản phẩm của mình những chức năng thông minh như nhận diện khuôn mặt người dùng, phát triển xe hơi tự lái hay drone giao hàng
tự động CNN được sử dụng nhiều trong các bài toán phát hiện các object trong ảnh Để tìm hiểu tại sao thuật toán này được sử dụng rộng rãi cho việc phát hiện (detection), chúng ta hãy cùng tìm hiểu về thuật toán này
Convolutional là một cửa sổ trượt (sliding windows) trên một ma trận
Hình 1.6: Quá trình tích chập (Convolutional)
Các convolutional layer có các parameter (kernel) đã được học để tự điều chỉnh lấy ra những thông tin chính xác nhất mà không cần chọn các feature Trong hình ảnh ví dụ trên, ma trận bên trái là một hình ảnh trắng đen được số hóa Ma trận có kích thước
Trang 235x5 và mỗi điểm ảnh có giá trị 1 hoặc 0 là giao điểm của dòng và cột Convolution hay tích chập là nhân từng phần tử trong ma trận 3x3
Sliding Window hay còn gọi là kernel, filter hoặc feature detect là một ma trận
có kích thước nhỏ như trong ví dụ trên là 3x3 Convolution hay tích chập là nhân từng phần tử bên trong ma trận 3x3 với ma trận bên trái Kết quả được một ma trận gọi là
Convoled feature được sinh ra từ việc nhận ma trận Filter với ma trận ảnh 5x5 bên trái
Cấu trúc của mạng CNN
Hình 1.7: Mô hình chung mạng neural tích chập
Mạng neural tích chập (Convolutional Neural Network - CNN) hiện nay là một trong những phương pháp thông dụng nhất trong nhận diện hình ảnh (Image recognition), liên quan mật thiết với thị giác máy tính (Computer Vision) khởi nguồn từ những năm 1980 khi Kunihiko Fukushima đề xuất một cấu trúc mạng neural mới lấy cảm hứng từ cơ quan thị giác của mèo và khỉ
Những thuật toán ở thời điểm đó có thể nhận diện một số cấu trúc của hình ảnh tuy nhiên khi chúng được biến đổi như bị dịch chuyển ra cạnh của ảnh, bị lật ngược hoặc
bị che khuất thì độ chính xác giảm đi nhiều Cấu trúc được đề xuất bởi Fukushima có thể tổng quát hóa hình ảnh cũng như loại bỏ những vật thể thừa, tránh được tình trạng over-fitting của mạng neural truyền thống khi tính toán rất tốt những ảnh mà nó đã học nhưng thể hiện rất tệ đối với những ảnh chúng chưa từng gặp bằng cách giảm thiểu số lượng tham số của mạng neural
Năm 1998, LeCun và cộng sự xây dựng mạng neural chồng chập LeNet-5 nhằm nhận dạng chữ số viết tay với kích thước ảnh 32x32 Tuy nhiên vì sự hạn chế của phần cứng máy tính lúc đó nên không thể phát triển cho ảnh có độ phân giải cao hơn
Đến năm 2005, tại Hội nghị quốc tế về Phân tích và Nhận dạng tài liệu ICDAR, Dave Steinkraus và cộng sự đề xuất giải pháp sử dụng GPU cho các giải thuật học máy
và đã được áp dụng thành công trên các cơ sở dữ liệu ảnh lớn như MNIST, ImageNet vào năm 2012
Trang 24Các layer trong mạng neural tích chập:
Convolutional layer
Convolutional layer (gọi tắt là lớp conv) chứa các “dây thần kinh” của mạng neural được gọi là feature map Các feature map này có nhiệm vụ tính toán các dữ liệu input (đối với lớp conv đầu tiên thì là giá trị của sample trong dataset, đổi với các lớp conv khác là output của các hidden layer liền trước nó) thông qua phép tích chập
Feature map thể hiện khả năng nhận biết các đặc trưng của input Các feature map tựa như các góc độ quan sát của con người khi nhìn vào một bức ảnh, càng quan sát dưới nhiều góc độ, khả năng phát hiện các đặc điểm nhận diện càng cao Đây cũng chính là điểm vượt trội so với mạng neural kinh điển chỉ xét bức ảnh hoặc dữ liệu dưới một góc độ duy nhất
Hình 1.8: Một bức ảnh thông qua nhiều góc nhìn khác nhau (các feature map)
Quá trình train mạng neural tích chập thực chất là quá trình update các tham số của các feature map (các weight và bias)
ReLU layer
ReLU layer thực chất là một activation function định nghĩa output của convolutional layer liền trước nó Activation function có nhiệm vụ chuẩn hóa ouput này vào một khoảng nhất định chẳng hạn như [-1, 1] hoặc [0, 1], …Đối với ReLU, output sẽ được chuẩn hóa thành số không âm và nằm trong khoảng [0, x] với x là giá trị của output ReLU mang ý nghĩa quan trọng đối với khả năng học của mạng neural tích chập
Pooling layer
Mục đích của pooling rất đơn giản là làm giảm số parameter mà ta cần phải tính toán, từ đó giảm thời gian tính toán, tránh overfitting Loại pooling ta thường gặp nhất
Trang 25là max pooling, lấy giá trị lớn nhất trong một pooling window Pooling hoạt động gần giống với convolution, nó cũng có 1 cửa sổ trượt gọi là pooling window, cửa sổ này trượt
qua từng giá trị của ma trận dữ liệu đầu vào (thường là các feature map trong convolutional layer), chọn ra một giá trị từ các gía trị nằm trong cửa sổ trượt (với max pooling ta sẽ lấy giá trị lớn nhất) Ngoài max pooling còn có average pooling, thay vì
lấy giá trị lớn nhất ta sẽ tính giá trị trung bình cộng trong cửa số trượt pooling window
Hình 1.9: Minh họa max pooling
Hình 1.10: Minh họa average pooling
Drop-out layer
Drop-out là một kĩ thuật Regularization để chống lại vấn đề overfitting Dropout layer là cách thức chúng ta giả định một phần dữ liệu bị ẩn đi theo tỉ lệ định sẵn trong quá trình training Drop-out giúp cho mạng neural network có khả năng nhận diện mang tính tổng quát và khách quan hơn, tránh tình trạng học vẹt và quá phụ thuộc vào bộ train dẫn đến việc sai lệch tính toán khi áp dụng vào thực tế
Hình 1.11: Drop-out thực hiện loại bỏ một số neural trong quá trình tính toán
Trang 26 Softmax layer
Softmax là hàm kích hoạt ở ouput layer trong mạng neural tích chập được sử dụng với bài toán phân loại nhị phân với nhiều classes (multi-class classification problems) ở lớp ra Với các bài toán classification, output layer thường là một softmax layer giúp tính xác suất để một điểm dữ liệu rơi vào mỗi class
1.4 Các kỹ thuật liên quan đến xử lý ảnh và nhận diện đối tượng
1.4.1 Tổng quan về xử lý ảnh
Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm tạo ra kết quả mong muốn Kết quả đầu ra của một quá trình xử lý ảnh có thể là một ảnh tốt hơn hoặc một kết luận nào đó
Ảnh là tập hợp các điểm ảnh và mỗi điểm ảnh được xem như là đặc trưng cường
độ ánh sáng của đối tượng trong không gian và có thể xem như một hàm n biến P(c1, c2, c3, …, cn) Do đó, ảnh trong xử lý ảnh có thể xem như ảnh n chiều
Hệ thống xử lý ảnh là đối tượng nghiên cứu liên quan đến các kỹ thuật thị giác máy (computer vision), nó là quá trình biến đổi từ một ảnh ban đầu được thu nhận từ thiết bị sang một không gian mới, làm nổi bật các đặc tính dữ liệu, thuận lợi cho quá trình xử lý thông tin và nâng cao độ chính xác Nó có thể bao gồm một số thành phần chính như sau:
Hình 1.12 Sơ đồ tổng quát hệ thống xử lý ảnh [13]
Hệ thống xử lý ảnh hoạt động theo các bước sau:
- Thu nhận ảnh: là việc hình ảnh về thế giới thực được thu nhận và chuyển qua tín hiệu ảnh rời rạc thông qua các thiết bị thu hình ảnh
- Tiền xử lý: là bước xử lý trên ảnh đầu vào nhằm khử nhiễu, làm nổi bật một số tính chất của ảnh nhằm nâng cao chất lượng các bước xử lý sau
- Trích chọn đặc trưng: là quá trình biến đổi dữ liệu ảnh đầu vào thành tập các đặc trưng Các đặc trưng thường có đặc tính phân biệt cao của các mẫu đầu vào, việc phân biệt các mẫu dữ liệu ảnh đầu vào dễ dàng hơn nhằm nâng cao chất lượng phân loại mẫu so với xử lý dữ liệu thô trên giá trị pixel ảnh Việc trích chọn đặc trưng dùng để thể hiện thông tin trong ảnh trong khi dữ liệu có tính phân biệt cao và cũng có thể làm giảm kích thước
Thu nhận
ảnh Tiền xử lý
Trích chọn đặc trưng
Phân loại, nhận dạng mẫu
Biểu diễn tri thức
Ra quyết định
Trang 27- Phân loại, nhận dạng mẫu: là quá trình xử lý dữ liệu bằng các kỹ thuật, phương pháp phân tích đặc trưng để phân loại các mẫu về các nhóm có chung một số tính chất nào đó Các phương pháp phân loại, nhận dạng mẫu thường liên quan đến các
kỹ thuật học máy, bao gồm cả học có giám sát và học không có giám sát
- Biểu diễn tri thức: là việc thể hiện ở mức độ cao của biểu diễn dữ liệu, các mẫu dữ liệu sau khi phân loại, nhận dạng được biểu diễn dưới dạng tri thức giúp hệ thống có khả năng “hiểu biết” ngữ nghĩa của nó theo từng kiểu ứng dụng khác nhau trong hệ thống trí tuệ nhân tạo và hệ thống thông minh
- Ra quyết định: là bước cuối cùng của một hệ thống nói chung trong lĩnh vực thị giác máy tính Các mẫu được biểu diễn dưới dạng tri thức và được suy luận ngữ nghĩa để đưa ra các quyết định thực hiện một nhiệm vụ nào đó
1.4.2 Các vấn đề cơ bản trong xử lý ảnh
Nắn chỉnh biến dạng: Ảnh thu được thường bị biến dạng do các thiết bị quang
học và điện tử Để khắc phục người ra sử dụng các phép chiếu được xây dựng dựa trên tập các điểm điều khiển
Khử nhiễu: Có 2 loại nhiễu cơ bản trong quá trình thu nhận ảnh mà chúng ta cần
loại bỏ:
- Nhiễu hệ thống: là nhiễu có quy luật có thể khử bằng các phép biến đổi
- Nhiễu ngẫu nhiên: là nhiễu không rõ nguyên nhân có thể khắc phục bằng các phép lọc
Chỉnh số mức xám: Chỉnh số mức xám là khắc phục tính không đồng đều của hệ
thống xử lý ảnh, thông thương có 2 hướng tiếp cận:
Giảm số mức xám: Thực hiện bằng cách nhóm các mức xám gần nhau thanh một
nhóm Trường hợp giảm xuống 2 mức xám thì chính là chuyển về ảnh đen trắng
Tăng số mức xám: Thực hiện nội suy ra các mức xám trung gian bằng kỹ thuật
nội suy Kỹ thuật này tăng cường độ mịn cho ảnh
Nén ảnh: Là kỹ thuật nhằm giảm thiểu không gian lưu trữ Có hai hướng tiếp cận
chính là nén có bảo toàn cà không bảo toàn thông tin Nén không bảo toàn thì thương có khà năng nén cao hơn nhưng không phục hồi đươc ảnh gốc, ngược lại nén có bảo toàn cho phép khôi phục hoàn toàn ảnh gốc
1.4.3 Nhận diện và phân loại ảnh
Phát hiện tự động, phân loại và nhóm các mẫu là những vấn đề quan trọng của thị giác máy tính, được ứng dụng trong nhiều ngành, lĩnh vực khác nhau Ví dụ như phát hiện dấu vân tay, phân loại hàng hóa, phát hiện khuôn mặt hay một biểu đồ của âm thanh Để phát hiện hoặc phân loại được ảnh có thể sử dụng hai cách chính:
- Học có giám sát (supervised learning): Phân loại mẫu đầu vào vào một
lớp đã xác định
Trang 28- Học không giám sát (unsupervised learning): Các mẫu được gom nhóm
với nhau dựa trên một số điều kiện nào đó Các lớp này cho đến thời điểm phân loại vẫn chưa biết hay chưa được định danh
Có nhiều cách tiếp cận khác nhau trong bài toán phát hiện trong đó có: Đối sánh mẫu dựa trên đặc trưng đã được trích chọn, phận loại dựa trên thống kê, phân loại dựa trên mạng nơ-ron nhận tạo …
Các hệ thống phát hiện và nhận dạng đối tượng hiện nay thường có ba bước xử lý:
Bước 1: Sử dụng một mô hình hoặc một thuật toán để tạo ra các vùng ứng viên,
các khu vực quan tâm Các vùng ứng viên này là một tập hợp lớn các hộp giới hạn để xác định đối tượng
Bước 2: Trích xuất đặc trưng từ các hộp giới hạn tìm được, chúng được đánh giá
và xác định xem đối tượng nào có mặt trong hộp giới hạn đó (tức là thành phần phân loại đối tượng) hay không
Bước 3: Trong bước hậu xử lý cuối cùng, các hộp chồng chéo nhau được kết hợp
thành một hộp giới hạn sử dụng một số thuật toán như Non-maximum suppression, …
1.5 Kết luận chương 1
Trong chương 1 đã giới thiệu một số nghiên cứu liên quan và đánh giá được các phương pháp cũng như kết quả của các nghiên cứu đó Từ đó đưa ra một số cơ sở lý thuyết về kỹ thuật học sâu, mạng CNN và một số lỹ thuật liên quan đến xử lý ảnh Trong nội dung chương 2 tiếp theo, luận văn sẽ trình bày giải pháp triển khai đề tài
Trang 29CHƯƠNG 2: GIẢI PHÁP TRIỂN KHAI
2.1 Mô hình giải quyết bài toán
Bài toán phát hiện và đếm xe máy bao gồm hai bài toán nhỏ hơn đó là: Bài toán nhận dạng xe và bài toán đếm xe đã được nhận dạng
● Bài toán nhận dạng xe: mục tiêu của bài toán là từ một bức ảnh cụ thể hoặc một video cụ thể, phải nhận dạng được đâu là chiếc xe máy Bài toán này là một bài toán khó vì xe máy hiện có nhiều chủng loại, khi lưu thông trong thực tế thì có nhiều trường hợp khác nhau như xe thì chạy ngược, xe thì chạy xuôi, xe này có thể che khuất xe kia, hoặc có xe thì chở hai, có xe thì chở rất nhiều hàng hóa Làm sao để giải được bài toán này để nhận ra xe máy một cách tối ưu là một trong những bước quyết định đến độ chính xác của bài toán đếm xe
● Bài toán đếm xe: sau khi đã nhận diện được các đối tượng xe máy, chúng
ta tiến hành đếm số đối tượng Yêu cầu đặt ra cho bài toán đó là đếm chính xác, không thừa cũng không thiếu
Mô hình đề xuất cho quá trình nhận dạng và đếm xe như sau:
Hình 2.1: Mô hình đề xuất
Tiền xử lý: Ở bước này, các thao tác như lọc nhiễu dữ liệu đầu vào, căn chỉnh độ sáng và các thao tác cơ bản khác được thực hiện
Gán nhãn: Sử dụng công cụ đánh nhãn để đánh dấu hình ảnh xe máy trên
ảnh đầu vào
Mô hình kết quả
Tiền xử lý
Dữ liệu cần nhận dạng
Kết quả
Đếm
Trang 30 Huấn luyện: Sử dụng một mô hình có sẵn để xây dựng mô hình cho hệ
thống
Nhận dạng: Quá trình nhận dạng được thực hiện qua các bước xử lý tương
tự với ảnh đầu vào
Đếm: Sau khi phát hiện và nhận dạng đối tượng, ta sẽ khoanh vùng hoạt
động để thực hiện đếm xe máy
Với tốc độ phát triển của Công nghệ Thông tin như hiện nay, nhiều thuật toán hay và có tính ứng dụng cao được tạo ra, do đó việc giải bài toán nhận dạng xe máy cũng trở nên khả thi và chính xác hơn Do tốc độ di chuyển của các phương tiện giao thông thường cao nên một trong những giải pháp đó là ứng dụng Học máy để nhận dạng
xe
Mô hình YOLO là 1 hệ thống nhận diện vật thể dựa trên cơ sở dữ liệu của Pascal VOC 2012 Nó có thể nhận diện đươc 80 nhóm vật thể gồm chim, chó, người, xe cộ,… Các hệ thống trước sử dụng lại các hàm phân loại và định vị có sẵn trong thư viện để thực hiện nhận diện Nó phân vùng trên toàn bộ hình ảnh, những vùng sáng lên được nhận diện là vật thể
Hình 2.2: Những vùng sáng lên trong video được nhận diện là vật thể
Mô hình YOLO sử dụng cách tiếp cận khác, ta sử dụng một mạng Neural trên toàn bộ hình ảnh Mạng này chia hình ảnh thành nhiều vùng và xác suất dự đoán trên từng vùng đó, từ đó đưa ra trọng số dự đoán vật thể cho các vùng đã dự đoán
Trang 312.2 Các công cụ và môi trường triển khai đề tài
2.2.1 Công cụ xử lý hình ảnh OpenCV
OpenCV (Open Computer Vision) là một thư viện mã nguồn mở hàng đầu cho
xử lý về thị giác máy tính, machine learning, xử lý ảnh OpenCV đươc viết bằng C/C++,
vì vậy có tốc độ tính toán rất nhanh, có thể sử dụng với các ứng dụng liên quan đến thời gian thực OpenCV có các interface cho C/C++, Python, Java vì vậy hỗ trợ được cho Window, Linux, MacOS lẫn Android, iOS OpenCV có cộng đồng hơn 47 nghìn người dùng và số lượng download vượt 6 triệu lần
- Image/video I/O, xử lý, hiển thị (core, imgproc, highgui);
- Phát hiện các vật thể (objdetect, features2d, nonfree);
- Geometry-based monocular or stereo computer vision (calib3d, stitching, videostab);
- Computational photography (photo, video, superres);
- Machine learning & clustering (ml, flann);
- CUDA acceleration (gpu)
Trong đề tài này, OpenCV được sử dụng chủ yếu trong việc đọc file ảnh, file video, cắt ảnh và hiển thị video cho người dùng xem
2.2.2 Công cụ đánh nhãn hình ảnh LabelImage
Để huấn luyện cho các mô hình học máy chúng ta cần một lượng lớn dữ liệu để huấn luyện mô hình, trong bước này chúng ta phải đi gán nhãn cho các đối tượng xe máy trong một bức ảnh, nhãn này bao gồm tên đối tượng và vị trí của nó trong một bức ảnh
Trang 32Để làm được việc đó thì công cụ đánh nhãn LabelImage là một trong những công
cụ hiệu quả, miễn phí
LabelImg là một công cụ chú thích hình ảnh đồ họa Nó được viết bằng Python
và sử dụng Qt cho giao diện đồ họa của nó Chú thích được lưu dưới dạng tệp XML ở định dạng VOC PASCAL, định dạng được sử dụng bởi ImageNet
Hình 2.4: Công cụ LabelImage
2.2.3 Thư viện học máy YOLO
YOLO là từ viết tắt của You only look once Đó là một hệ thống phát hiện đối tượng thời gian thực nhanh, hiện đại, sử dụng bộ dữ liệu đa dạng, là một mô hình phát hiện đối tượng sử dụng các tính năng được học bởi một mạng CNN để phát hiện đối tượng Ta có thể sử dụng YOLO với nhiều ngôn ngữ khác nhau như Python, Javascript, C++… YOLO xử lý ảnh có thể sử dụng GPU hoặc OPENCV Thư viện sử dụng để hỗ trợ tính toán cho YOLO tận dụng phần cứng GPU là Darkflow trên nền tảng Windows
và Darknet giành cho Linux
a) Phát hiện đồng nhất
YOLO sử dụng mạng thống nhất để thực hiện dự đoán cả ảnh một lần YOLO chia hình ảnh đầu vào thành lưới S×S Mỗi ô lưới dự đoán chỉ một đối tượng Ví dụ, ô màu vàng bên dưới cố gắng dự đoán đối tượng người ở người có trung tâm (dấu chấm màu xanh) nằm trong lưới
Trang 33Hình 2.5: Mỗi ô chỉ dự đoán một đối tượng
Mỗi ô lưới dự đoán một số hộp ranh giới cố định Trong ví dụ này, ô lưới màu vàng đưa ra hai dự đoán hộp ranh giới (hộp màu xanh) để xác định vị trí của người đó
Hình 2.6: Mỗi ô dự đoán số lượng cố định các hộp ranh giới
Tuy nhiên, quy tắc một đối tượng giới hạn mức độ có thể phát hiện của các đối tượng Vì thế, YOLO có một số hạn chế về mức độ gần gũi của các vật thể Đối với hình dưới đây, có 9 người ở góc dưới bên trái nhưng YOLO chỉ có thể phát hiện 5
Trang 34Hình 2.7: YOLO bỏ sót những vật thể ở quá gần nhau
Mỗi ô trong lưới
- Dự đoán B hộp ranh giới và mỗi hộp có một độ tin cậy (confidence score),
- Phát hiện chỉ một đối tượng bất kể số lượng hộp B,
- Dự đoán C xác suất xuất hiện của lớp (một cho mỗi lớp)
Để đánh giá tập dữ liệu PASCAL VOC, YOLO sử dụng lưới 7×7 (S × S), 2 hộp ranh giới (B) và 20 lớp (C) [8]
Hình 2.8: YOLO thực hiện SxS dự đoán với B hộp ranh giới
Mỗi hộp giới hạn bao gồm 5 dự đoán: x, y, w, h và độ tin cậy
- Các tọa độ (x, y) đại diện cho tâm của hộp so với giới hạn của ô lưới
- Chiều rộng w và chiều cao h được dự đoán so với toàn bộ hình ảnh
Trang 35- Độ tin cậy phản ánh khả năng hộp chứa đối tượng (tính đối tượng) và độ chính xác của hộp ranh giới
Vậy nên, dự đoán của YOLO có dạng (S, S, B × 5 + C) = (7, 7, 2 × 5 + 20) = (7,
7, 30) Nó sử dụng mạng CNN để giảm kích thước không gian xuống còn 7 × 7 với 1024 kênh đầu ra tại mỗi vị trí YOLO thực hiện hồi quy tuyến tính bằng cách sử dụng hai fully connected layer để đưa ra dự đoán hộp ranh giới 7 × 7 × 2 (hình giữa ở dưới) Để đưa ra dự đoán cuối cùng, ta giữ những hộp có điểm tin cậy cao (lớn hơn 0,25) làm dự đoán cuối cùng (hình ảnh bên phải)
Hình 2.9: Quá trình dự đoán thống nhất
Độ tin cậy của lớp cho mỗi hộp dự đoán được tính như sau:
Độ tin cậy lớp = độ tin cậy hộp x xác xuất vật thể thuộc lớp đó
Nó đo lường sự tin cậy đối với cả phân loại và nơi một đối tượng được phát hiện
b) Kiến trúc mạng
Hình 2.10: Kiến trúc mạng mô hình YOLO