1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nhận dạng phương tiện giao thông sử dụng kỹ thuật học sâu (Luận văn thạc sĩ)

59 763 5
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 59
Dung lượng 2,64 MB

Nội dung

Nhận dạng phương tiện giao thông sử dụng kỹ thuật học sâuNhận dạng phương tiện giao thông sử dụng kỹ thuật học sâuNhận dạng phương tiện giao thông sử dụng kỹ thuật học sâuNhận dạng phương tiện giao thông sử dụng kỹ thuật học sâuNhận dạng phương tiện giao thông sử dụng kỹ thuật học sâuNhận dạng phương tiện giao thông sử dụng kỹ thuật học sâuNhận dạng phương tiện giao thông sử dụng kỹ thuật học sâuNhận dạng phương tiện giao thông sử dụng kỹ thuật học sâuNhận dạng phương tiện giao thông sử dụng kỹ thuật học sâuNhận dạng phương tiện giao thông sử dụng kỹ thuật học sâuNhận dạng phương tiện giao thông sử dụng kỹ thuật học sâuNhận dạng phương tiện giao thông sử dụng kỹ thuật học sâuNhận dạng phương tiện giao thông sử dụng kỹ thuật học sâu

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

Trang 2

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

LUẬN VĂN THẠC SĨ KỸ THUẬT

NGƯỜI HƯỚNG DẪN KHOA HỌC

TS NGUYỄN NGỌC ĐIỆP

HÀ NỘI - 2019

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu và tìm hiểu của riêng tôi

Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công

bố trong bất cứ công trình nào khác

Tác giả luận văn

Bùi Trần Tiến

Trang 4

LỜI CẢM ƠN

Để hoàn thành được luận văn này, ngoài sự nghiên cứu và những cố gắng của bản thân, em xin gửi lời cảm ơn sâu sắc tới Tiến sĩ Nguyễn Ngọc Điệp, giáo viên trực tiếp hướng dẫn, tận tình chỉ bảo và định hướng cho em trong suốt quá trình nghiên cứu và thực hiện luận văn Xin gửi

Em xin gửi lời cảm ơn chân thành cảm ơn tất cả các thầy cô giáo của Học viện Công nghệ Bưu chính Viễn thông đã giảng dạy và dìu dắt em trong trong suốt quá trình học tập tại trường từ khi còn học đại học cho đến sau đại học

Cuối cùng, em xin gửi lời cảm ơn tới gia đình, bạn bè và những người đã luôn ở bên cổ vũ tinh thần, tạo điều kiện thuận lợi cho em để em có thể học tập tốt và hoàn thiện luận văn

Em xin chân thành cảm ơn!

Trang 5

MỤC LỤC

LỜI CẢM ƠN ii

MỤC LỤC iii

DANH MỤC BẢNG v

DANH MỤC HÌNH ẢNH vi

DANH MỤC KÝ HIỆU CÁC CHỮ VIẾT TẮT viii

MỞ ĐẦU 1

CHƯƠNG 1: KỸ THUẬT HỌC SÂU VÀ BÀI TOÁN PHÁT HIỆN PHƯƠNG TIỆN GIAO THÔNG 3

1.1 Giới thiệu về học sâu 3

1.1.1 Học sâu 3

1.1.2 Mạng nơ-ron tích chập – Convolutional neural network (CNN) 7

1.2 Các kỹ thuật liên quan đến xử lý ảnh và nhận diện đối tượng 13

1.2.1 Tổng quan về xử lý ảnh 13

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

1.2.3 Nhận diện và phân loại ảnh 14

1.3 Các kỹ thuật hiện tại và hạn chế 15

1.3.1 R-CNN, Fast R-CNN 15

1.3.2 Faster R-CNN 18

1.3.3 YOLO, SSD 19

1.4 Kết luận chương 20

CHƯƠNG 2: PHÁT HIỆN PHƯƠNG TIỆN GIAO THÔNG SỬ DỤNG KỸ THUẬT HỌC SÂU YOLO 22

2.1 Bài toán phát hiện phương tiện giao thông 22

2.1.1 Tổng quan bài toán 22

2.1.2 Các điều kiện ràng buộc 23

2.2 Hệ thống phát hiện đối tượng thời gian thực YOLO 23

2.2.1 Tổng quan hệ thống phát hiện đối tượng YOLO 23

Trang 6

2.2.2 Các thành phần của hệ thống YOLO 24

2.2.3 Kiến trúc của mô hình YOLO qua các phiên bản 27

2.2 Phương pháp huấn luyện 33

2.3 Kết luận chương 36

CHƯƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ 37

3.1 Thu thập và tiền xử lý dữ liệu 37

3.2 Cài đặt và thử nghiệm 38

3.2.1 Môi trường thử nghiệm 38

3.2.2 Huấn luyện dữ liệu 39

3.2.3 Phương pháp đánh giá 39

3.3 Đề xuất phương pháp cải tiến và đánh giá 43

3.3.1 Đề xuất phương pháp cải tiến 43

3.3.2 Đánh giá phương pháp cải tiến 43

3.4 Kết luận chương 46

KẾT LUẬN 47

TÀI LIỆU THAM KHẢO 48

Trang 7

DANH MỤC BẢNG

Bảng 1.1: So sánh các mô hình dựa trên R-CNN 18Bảng 2.1: So sánh các mô hình khác với YOLO 23

Trang 8

DANH MỤC HÌNH ẢNH

Hình 1.1: Nơ-ron sinh học 4

Hình 1.2: Perceptron 4

Hình 1.3: Hàm sigmoid 5

Hình 1.4: Mạng nơ-ron nhân tạo 6

Hình 1.5: Quá trình tích chập (Convolutional) 8

Hình 1.6: Mô hình mạng CNN 9

Hình 1.7: Input đầu vào của một nơ-ron ở lớp ẩn 10

Hình 1.8: Các input của nơ-ron thứ nhất 10

Hình 1.9: Các input của nơ-ron thứ hai 11

Hình 1.10: Ma trận đặc trưng thu được khi sử dụng 3 filter 11

Hình 1.11: Quá trình tổng hợp thông tin 12

Hình 1.12: Lớp kết nối đầy đủ của CNN 13

Hình 1.13: Các bước cơ bản trong một hệ thống xử lý ảnh 13

Hình 1.14: Mô hình R-CNN 16

Hình 1.15: Mô hình SPP-net 17

Hình 1.16: Mô hình mạng Fast R-CNN 17

Hình 1.17: Mô hình mạng Faster R-CNN 18

Hình 1.18: Quá trình dự đoán của YOLO 19

Hình 1.19: Mô hình mạng SSD 20

Hình 2.1 Bài toán phát hiện phương tiện giao thông 22

Hình 2.2: Mô hình YOLO ban đầu 24

Hình 2.3: Ô chịu trách nhiệm dự đoán đối tượng xe ô tô 25

Hình 2.4: Quá trình non-maximum suppression 27

Hình 2.5: YOLO version 1 27

Hình 2.6: Loại bỏ phần kết nối đầy đủ trên YOLOv2 28

Hình 2.7: Kết quả dự đoán của YOLO 29

Hình 2.8: Mô hình YOLO phiên bản thứ 3 30

Hình 2.9: Kết quả dự đoán của YOLOv3 32

Hình 3.1 : Quá trình xác định hộp giới hạn và gán nhãn cho ảnh 37

Hình 3.2:Định dạng file annotation cho mỗi ảnh 38

Hình 3.3: Log trong quá trình training 39

Hình 3.4: Xác định ground truth cho các đối tượng 40

Hình 3.5: Kết quả dự đoán của mô hình 40

Trang 9

Hình 3.6: So sánh kết quả dự đoán với ground truth của đối tượng 41

Hình 3.7: Vùng giao nhau giữa kết quả dự đoán và ground truth 41

Hình 3.8: Công thức tính IoU 42

Hình 3.9: Tốc độ xử lý 44

Hình 3.10: Tốc độ hội tụ của hai cấu hình 44

Hình 3.11: Thời gian huấn luyện của hai cấu hình 45

Hình 3.12: Kết quả mô hình YOLO sau khi thay đổi số filter 45

Trang 10

DANH MỤC KÝ HIỆU CÁC CHỮ VIẾT TẮT

CNN Convolutional Neural Network Mạng nơ-ron tích chập COCO Common Object in Context

HOG Histogram of oriented gradients

IoU Intersection over Union

MAP mean average precision

NMS Non-maximum suppression

R-CNN Region – Convolutional Neural

Network SSD Single Shot Detector

SVM Support vector machine

YOLO You Only Look Once

Trang 11

vụ giao thông không ngừng tăng về quy mô và số lượng Đặc biệt vấn nạn ùn tắc giao thông tại một số tuyến đường xuyên tâm như đường Đê La Thành, Trần Đại Nghĩa, Kim Liên, Nguyễn Lương Bằng, Nguyễn Trãi, Giải Phóng… lâm vào cảnh ùn tặc kéo dài, ùn tặc trầm trọng gây ảnh hưởng đến cuộc sống của người dân và thiệt hại lớn

về kinh tế xã hội Với mục đích đưa những tiến bộ công nghệ vào phục vụ cho cuộc

sống, tôi xin chọn đề tài nghiên cứu “Nhận dạng phương tiện giao thông sử dụng

kỹ thuật học sâu” Hy vọng kết quả của đề tài này có thể là một tiền đề quan trọng

trong việc xây dựng các hệ thống giám sát phương tiện giao thông cũng như các hệ thống cảnh báo ùn tắc giao thông ở nước ta hiện nay

Mục tiêu của luận án là

Nghiên cứu các phương pháp phát hiện đối tượng bằng kỹ thuật học sâu và áp dụng phát hiện phương tiện giao thông tại Việt Nam Mục tiêu cụ thể bao gồm:

- Nắm được một số phương pháp học sâu quan trọng

- Áp dụng và đánh giá hiệu quả trên dữ liệu ảnh, video được thu thập tại Việt Nam

Do thời gian có hạn nên luận văn tập trung phát hiện phương tiện giao thông từ ảnh

và video

- Ảnh và video giao thông tai Việt Nam được quay trong điều kiện ánh sáng tốt

- Phương tiện cần phát hiện là ô tô con và xe máy

Nội dung của luận văn được bố cục thành 3 chương như sau:

Trang 12

 CHƯƠNG 1: KỸ THUẬT HỌC SÂU VÀ BÀI TOÁN PHÁT HIỆN PHƯƠNG TIỆN GIAO THÔNG

Giới thiệu chương: Giới thiệu về kỹ thuật học sâu, các khái niệm, đặc trưng và các kỹ thuật liên quan đến xử lý ảnh và phát hiện đối tượng Tổng quan về bài toán phát hiện phương tiện giao thông Các kỹ thuật hiện tại áp dụng cho bài toán nhận diện phương tiện giao thông và những hạn chế của các kỹ thuật này

 CHƯƠNG 2: PHÁT HIỆN PHƯƠNG TIỆN GIAO THÔNG SỬ DỤNG KỸ THUẬT HỌC SÂU YOLO

Giới thiệu chương: Trình bày tổng quan về bài toàn phát hiện phương tiện giao thông sử dụng kỹ thuật học sâu YOLO Giới thiệu về hệ thống phát hiện đối tượng thời gian thực và một số phương pháp tiếp cận

 CHƯƠNG 3: THỬ NGHIỆM VÀ ĐÁNH GIÁ

Giới thiệu chương: Sử dụng các thư viện có sẵn đã cài đặt hệ thống phát hiện đối tượng thời gian thực và áp dụng một trong những phương pháp được đề xuất ở Chương 3 Thực hiện xây dựng bộ dữ liệu từ các phương tiện giao thông tại Việt Nam bao gồm các hình ảnh các phương tiện giao thông và các video được quay trong điều kiện ánh sang tốt Thực hiện huấn luyện hệ thống với bộ dữ liệu tự xây dựng

Trang 13

CHƯƠNG 1: KỸ THUẬT HỌC SÂU VÀ BÀI TOÁN PHÁT

HIỆN PHƯƠNG TIỆN GIAO THÔNG

Trong chương này luận văn sẽ giới thiệu về học sâu, các khái niệm, đặc trưng và các kỹ thuật liên quan đến xử lý ảnh và phát hiện đối tượng Các kỹ thuật hiện tại áp dụng cho bài toán phát hiện đối tượng và những hạn chế của các kỹ thuật này

1.1 Giới thiệu về học sâu

1.1.1 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[23] 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

Mộ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)[23] 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 loại 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

Trang 14

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.1: 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.2: 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 đó:

𝑜 ={

Trang 15

𝑜 ={

Hình 1.3: Hàm sigmoid

Đặt z = W T X thì công thức của perceptron lúc này sẽ có dạng:

o = 𝜎(𝑧) = 1

1 + 𝑒−𝑊 𝑇 𝑋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)= σ(wx)

Ngoài hàm sigmoid ra ta còn có một số hàm khác như tanh, ReLU[1] để thay thế hàm sigmoid bởi dạng đồ thị của nó cũng tượng tự như sigmoid[17] 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 16

Hình 1.4: 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)[17]

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

Trang 17

Hàm tổng: 𝑓(𝑥) = ∑𝑛𝑗=1𝑥𝑗 × 𝑤𝑖𝑗

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 thô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[17] hay chỉ đơn thuần

là một ngưỡng để quyết định giá trị cho output

- Hàm softmax: 𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝑥) = 𝑒𝑥

∑ 𝑒 𝑛 𝑥𝑘 𝑘

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

- Hàm Sigmoid: 𝑓(𝑥) = 1

1+𝑒 −𝑥

- Hàm tanh: 𝑡𝑎𝑛ℎ(𝑥) = 𝑒𝑥−𝑒−𝑥

𝑒 𝑥 +𝑒 −𝑥

1.1.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

Trang 18

Hình 1.5: 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 5x5 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

- Mạng CNN là một tập hợp các lớp Convolution chồng lên nhau và sử dụng các hàm nonlinear activation như ReLU và tanh để kích hoạt các trọng số trong các node Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo Trong mô hình mạng lan truyền tiến(feedforward neural network) thì mỗi nơ-ron đầu vào (input node) cho mỗi nơ-ron đầu ra trong các lớp tiếp theo Mô hình này gọi là mạng kết nối đầy đủ (fully connected layer) hay mạng toàn vẹn (affine layer) Còn trong mô hình CNN thì ngược lại Các layer liên kết được với nhau thông

Trang 19

qua cơ chế convolution Layer tiếp theo là kết quả convolution từ layer trước đó, nhờ vậy mà ta có được các kết nối cục bộ Như vậy mỗi nơ-ron ở lớp kế tiếp sinh

ra từ kết quả của filter áp đặt lên một vùng ảnh cục bộ của nơ-ron trước đó

- Mỗi một lớp được sử dụng các filter khác nhau thông thường có hàng trăm hàng nghìn filter như vậy và kết hợp kết quả của chúng lại Ngoài ra có một số layer khác như pooling/subsampling layer dùng để chắt lọc lại các thông tin hữu ích hơn (loại bỏ các thông tin nhiễu) Trong quá trình huấn luyện mạng (training) CNN tự động học các giá trị qua các lớp filter dựa vào cách thức mà bạn thực hiện Ví dụ trong tác vụ phân lớp ảnh, CNN sẽ cố gắng tìm ra thông số tối ưu cho các filter tương ứng theo thứ tự raw pixel > edges > shapes > facial > high-level features Layer cuối cùng được dùng để phân lớp ảnh

Hình 1.6: Mô hình mạng CNN

- Trong mô hình CNN có 2 khía cạnh cần quan tâm là tính bất biến (Location Invariance) và tính kết hợp (Compositionality) Với cùng một đối tượng, nếu đối tượng này được chiếu theo các góc độ khác nhau (translation, rotation, scaling) thì độ chính xác của thuật toán sẽ bị ảnh hưởng đáng kể Pooling layer sẽ cho ta tính bất biến đối với phép dịch chuyển (translation), phép quay (rotation) và phép

co giãn (scaling) Tính kết hợp cục bộ cho ta các cấp độ biểu diễn thông tin từ mức độ thấp đến mức độ cao và trừu tượng hơn thông qua convolution từ các filter Đó là lý do tại sao CNN cho ra mô hình với độ chính xác rất cao Cũng giống như cách con người nhận biết các vật thể trong tự nhiên

- Mạng CNN sử dụng 3 ý tưởng cơ bản:

 Các trường tiếp nhận cục bộ (local receptive field)

Trang 20

 Trọng số chia sẻ (shared weights)

 Tổng hợp (pooling)

Các ý tưởng cơ bản của CNN:

- Trường tiếp nhận cục bộ (local receptive field)

Đầu vào của mạng CNN là một ảnh Ví dụ như ảnh có kích thước 28x28 thì tương ứng đầu vào là một ma trận có 28x28 và giá trị mỗi điểm ảnh là một ô trong ma trận Trong mô hình mạng nơ-ron truyền thống thì chúng ta sẽ kết nối các nơ-ron đầu vào vào tầng ẩn Tuy nhiên trong CNN chúng ta không làm như vậy mà chúng ta chỉ kết nối trong một vùng nhỏ của các nơ-ron đầu vào như một filter có kích thước 5x5 điểm ảnh đầu vào Mỗi một kết nối sẽ học một trọng số và mỗi nơ-ron ẩn sẽ học một bias Mỗi một vùng 5x5 đấy gọi là một trường tiếp nhận cục bộ

Hình 1.7: Input đầu vào của một nơ-ron ở lớp ẩn

Một cách tổng quan, ta có thể tóm tắt các bước tạo ra 1 hidden layer bằng các cách sau:

Bước 1: Tạo ra nơ-ron ẩn đầu tiên trong lớp ẩn 1

Hình 1.8: Các input của nơ-ron thứ nhất

Trang 21

Bước 2: Dịch filter qua bên phải một cột sẽ tạo được nơ-ron ẩn thứ 2

Hình 1.9: Các input của nơ-ron thứ hai

Đối với bài toán phát hiện ảnh người ta thường gọi ma trận lớp đầu vào là ma trận đặc trưng, trọng số xác định các đặc trưng là shared weight và độ lệch xác định một

ma trận đặc trưng là shared bias

Như vậy đơn giản nhất là qua các bước trên chúng ta chỉ có 1 ma trận đặc trưng Tuy nhiên trong phát hiện ảnh chúng ta cần nhiều hơn một ma trận đặc trưng

Hình 1.10: Ma trận đặc trưng thu được khi sử dụng 3 filter

Như vậy, local receptive field thích hợp cho việc phân tách dữ liệu ảnh, giúp chọn ra những vùng ảnh có giá trị nhất cho việc đánh giá phân lớp

- Trọng số chia sẻ (shared weight and bias)

Đầu tiên, các trọng số cho mỗi filter (kernel) phải giống nhau Tất cả các nơ-ron trong lớp ẩn đầu sẽ phát hiện chính xác feature tương tự chỉ ở các vị trí khác nhau trong hình ảnh đầu vào Chúng ta gọi việc map từ input layer sang hidden layer là một ma trận đặc trưng Vậy mối quan hệ giữa số lượng ma trận đặc trưng với số lượng tham

số là gì?

Trang 22

 Chúng ta thấy mỗi fearture map cần 25 = 5x5 shared weight và 1 shared bias Như vậy mỗi ma trận đặc trưng cần 5x5+1 = 26 tham số Như vậy nếu có 10 ma trận đặc trưng thì có 10x26 = 260 tham số Chúng ta xét lại nếu layer đầu tiên có kết nối đầy đủ, nghĩa là chúng ta có 28x28=784 nơ-ron đầu vào và chúng ta có

30 nơ-ron ở lớp ẩn Như vậy ta cần 28x28x30 shared weight và 30 shared bias Tổng số tham số là 28x28x30+30 tham số lớn hơn nhiều so với CNN Ví dụ vừa rồi chỉ mô tả để thấy được sự ước lượng số lượng tham số chứ chúng ta không so sánh được trực tiếp vì 2 mô hình khác nhau Nhưng điều chắc chắn là nếu mô hình có số lượng tham số ít hơn thì nó sẽ chạy nhanh hơn

Tóm lại, một convolutional layer bao gồm các ma trận đặc trưng khác nhau Mỗi một

ma trận đặc trưng giúp detect một vài feature trong bức ảnh Lợi ích lớn nhất của trọng số chia sẻ là giảm tối đa số lượng tham số trong mạng CNN

- Lớp tổng hợp (pooling layer)

Lớp pooling thường được sử dụng ngay sau lớp convulational để đơn giản hóa thông tin đầu ra để giảm bớt số lượng nơ-ron

Thủ tục pooling phổ biến là max-pooling, thủ tục này chọn giá trị lớn nhất trong vùng đầu vào 2x2

Hình 1.11: Quá trình tổng hợp thông tin

Như vậy qua lớp Max Pooling thì số lượng nơ-ron giảm đi phân nửa Trong một mạng CNN có nhiều Ma trận đặc trưng nên mỗi Ma trận đặc trưng chúng ta sẽ cho mỗi Max Pooling khác nhau Chúng ta có thể thấy rằng Max Pooling là cách hỏi xem trong các đặc trưng này thì đặc trưng nào là đặc trưng nhất

Trang 23

Cuối cùng ta đặt tất cả các lớp lại với nhau thành một CNN với đầu ra gồm các ron với số lượng tùy bài toán

nơ-Hình 1.12: Lớp kết nối đầy đủ của CNN

Lớp cuối cùng của các kết nối trong mạng là một lớp đầy đủ kết nối (fully connected layer) Lớp này nối mỗi nơ-ron từ lớp max pooling tới mỗi nơ-ron của tầng ra

1.2 Các kỹ thuật liên quan đến xử lý ảnh và nhận diện đối tượng

1.2.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(c 1 , c 2 ,

c 3 , …, c n ) Do đó, ảnh trong xử lý ảnh có thể xem như ảnh n chiều

Hình 1.13: Các bước cơ bản trong một hệ thống xử lý ảnh

Sơ đồ tổng quát của một hệ thống xử lý ảnh:

Khối thu nhận ảnh: Có nhiệm vụ tiếp nhận ảnh đầu vào

Khối tiền xử lý: Có nhiệm vụ xử lý nâng cao chất lượng ảnh như giảm nhiễu,

phân vùng, tìm biên …

Trang 24

Khối dự đoán: Có nghiệm vụ đưa ra dự đoán từ bức ảnh đã được tiền xử lý

đưa ra kết quả dự đoán sử dụng cho bước hậu xử lý và đưa ra quyết định

Khối hậu xử lý: Có nhiệm vụ xử lý các kết quả của khối dự đoán, có thể lược

bỏ hoặc biến đổi các kết quả này để phù hợp với các ký thuật cụ thể sử dụng trọng hệ quyết định

Khối hệ quyết định và lưu trữ: Có nhiệm vụ đưa ra quyết định(phân loại,

phát hiện) dựa trên dữ liệu đã học

Khối kết luận: Đưa ra kết luận dựa vào quyết định của khối quyết định

1.2.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

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.2.3 Nhận diện và phân loại ảnh

Trang 25

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

- 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.3 Các kỹ thuật hiện tại và hạn chế

Một số kỹ thuật phát hiện và nhận dạng đối tượng dựa trên mạng CNN phổ biến trên thế giới như: R-CNN(Region-Convolutional Neural Network)[3], Fast R-CNN[5], Faster R-CNN[14], YOLO(You Only Look Once)[12][13], SSD (Single Shot Multibox Detector)[10] …

1.3.1 R-CNN, Fast R-CNN

Trang 26

a R-CNN

Sau khi các nghiên cứu về các kỹ thuật học sâu thu được nhiều kết quả rõ ràng các kỹ thuật phân loại dựa trên HOG[2] dần được thay thế bằng một kỹ thuật học sâu như CNN đã cho kết quả chính xác hơn Tuy nhiên, có một vấn đề là CNN quá chậm

và tính toán rất tốn kém Không thế chạy CNN trên nhiều cửa sổ được tạo bởi thuật toán cửa sổ trượt (sliding window detector) R-CNN[12] đã giải quyết vấn đề này bằng cách chạy một thuật toán được gọi là Selective Search để giảm số hộp giới hạn (bounding box) được đưa vào bộ phân loại Selective Search sử dụng các dấu hiệu bố cục như kết cấu, cường độ, màu sắc để tạo ra các vị trí có thể chứa đối tượng Sau

đó chúng ta có thể cung cấp các hộp giới hạn này cho một bộ phân loại dựa trên CNN Hãy nhớ rằng, lớp kết nối đầy đủ (Fully connected layer) của CNN có một đầu vào kích thước cố định vì vậy chúng ta thay đổi kích cỡ của tất cả các hộp giới hạn về một kích thước cố định và cũng cấp cho CNN Do đó R-CNN[3] thường có 3 phần quan trọng

- Chạy Selective Search để tìm kiếm các hộp các đối tượng có thể xuất hiện

- Đưa các hộp đó vào CNN, sau đó là SVM[7] để dự đoán lớp của từng hộp

- Tối ưu hóa các hộp bằng cách huấn luyện

Hình 1.14: Mô hình R-CNN

b Fast R-CNN

Trang 27

Tuy R-CNN[12] đã đạt được nhiều tiến bộ nhưng nó vẫn còn rất chậm Bởi vì nó phải chạy CNN với 2000 khu vực được đề xuất bởi Selective Search dẫn đến mất rất nhiều thời gian SPP-net[6] (Spatial Pyramid Pooling Network) đã cố gắng tối ưu nó Với SPP-net các tính toán đặc trưng trên CNN chỉ thực hiện một lần và có thể sử dụng để tính toán các đặc trưng cho mỗi khu vực được tạo bởi Selective Search

Hình 1.15: Mô hình SPP-net

Fast R-CNN[5] sử dụng ý tưởng của SPP-net, R-CNN và sửa một vấn đề chính trong SPP-net như: Fast R-CNN có thể thực hiện từ đầu đến cuối (end-to-end) Một điều nữa là họ đã thêm tính toán hồi quy để tìm hộp giới hạn vào việc huấn luyện Vì vậy mạng có hai đầu ra một đầu phân loại đầu ra và một đâu dự đoán hộp giới hạn Mục tiêu này là tính năng nổi bật của Fast R-CNN[5] vì nó không còn yêu cầu huấn luyện mạng độc lập để tìm vị trí và phân loại đối tượng Hai thay đổi này đã làm giảm bớt thời gian huấn luyện tổng thể và tăng độ chính xác so với SPP-net

Hình 1.16: Mô hình mạng Fast R-CNN

Trang 28

1.3.2 Faster R-CNN

Faster R-CNN[14] là một phiên bản cải tiến của Fast R-CNN[5] Nó thay thế phần chậm nhất của Fast R-CNN là Selective search bằng một mạng CNN nhỏ được gọi là mạng đề xuất khu vực(Region Proposal network-RPN) để đề xuất ra các vùng quan tâm trên ảnh

Hình 1.17: Mô hình mạng Faster R-CNN

Để xử lý vấn đề các đối tượng có các tỉ lệ khác nhau, Faster R-CNN đã giới thiệu ý tưởng về các hộp neo (anchor box) Tại mỗi vị trí sẽ sử dụng 3 hộp neo có các kích thước 128x128, 256x256, 512x512 Tương tự với tỉ lệ 1:1, 2:1 và 1:2 Vì vậy, tổng cộng tại mỗi vị trí, chúng ta có 9 hộp mà RPN sẽ dự đoán xác suất xuất hiện của nó

là nền hay đối tượng Chúng ta áp dụng hồi quy cho hộp giới hạn để cải thiện độ chính xác của các hộp neo ở mỗi vị trí Vì vậy, RPN đưa ra các hộp giới hạn có kích thước khác nhau với xác suất tương ứng mỗi lớp Phần còn lại tương tự như Fast R-CNN Những thay đổi trên giúp cho Faster R-CNN nhanh gấp 10 lần so với Fast R-CNN với độ chính xác tượng tự trên tập dữ liệu như VOC-2007[19] Đó là lý do tại sao Faster R-CNN là một trong những thuật toán phát hiện đối tượng chính xác nhất Dưới đây là so sánh giữa các phiên bản R-CNN

Bảng 1.1: So sánh các mô hình dựa trên R-CNN

Trang 29

1.3.3 YOLO, SSD

Các phương pháp được đề cập ở trên xử lý việc phát hiện đối tượng bằng các tạo

ra các đề xuất khu vực sau đó các đề xuất đó sẽ được chuyền qua một bộ phân loại để

xác định đối tượng Tuy nhiên, có một số phương pháp khác coi việc phát hiện đối

tượng như một bài toán hồi quy YOLO[12][13], SSD[10] là hai trong số nhưng

phương pháp phổ biến nhất

a You Only Look Once

Đối với YOLO, phát hiện là một vấn đề hồi quy đơn giản lấy hình ảnh đầu vào và

tìm hiểu xác suất lớp và tọa độ của hộp giới hạn

YOLO chia mỗi hình ảnh đầu vào thành một lưới có SxS ô và mỗi ô dự đoán N hộp

giới hạn và độ tin cậy Độ tin cậy phản ảnh độ chính xác của hộp giới hạn và liệu hộp

giới hạn đó có thực sự chứa một đối tượng(không phân biệt lớp) YOLO cũng dự

đoán xác suất các lớp cho mỗi hộp Chúng ta có thể kết hợp cả hai xác suất để có

được xác suất của mỗi lớp cho từng hộp giới hạn được dự đoán

Vì vậy, tổng số hộp giới hạn được dự đoán là SxSxN Tuy nhiên hầu hết các hộp này

đều có độ tin cậy thấp và nếu chúng ta đặt ngưỡng cho độ tin cậy là 30% thì chúng ta

có thể loại bỏ hầu hết các hộp này như ví dụ dưới

Hình 1.18: Quá trình dự đoán của YOLO

Lưu ý rằng khi chạy, chúng ta chỉ chạy hình ảnh của mình trên CNN một lần Do đó,

YOLO là có tốc độ rất nhanh và có thể chạy thời gian thực

Một điểm khác biệt chính là YOLO nhìn hình ảnh hoàn chỉnh cùng một lúc thay vì

chỉ xem xét các vùng đề xuất được tạo ra trong các phương pháp trước đó Vì vậy,

thông tin theo ngữ cảnh này giúp tránh được việc dự đoán nhầm có đối tượng Tuy

Ngày đăng: 13/03/2019, 22:20

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Agarap, Abien Fred. "Deep Learning using Rectified Linear Units (ReLU)." arXiv preprint arXiv:1803.08375 (2018) Sách, tạp chí
Tiêu đề: Deep Learning using Rectified Linear Units (ReLU)
[2] Dalal, Navneet, and Bill Triggs. "Histograms of oriented gradients for human detection." Computer Vision and Pattern Recognition, 2005. CVPR 2005. IEEE Computer Society Conference on. Vol. 1. IEEE, 2005 Sách, tạp chí
Tiêu đề: Histograms of oriented gradients for human detection
[3] Girshick, Ross, et al. "Region-based convolutional networks for accurate object detection and segmentation." IEEE transactions on pattern analysis and machine intelligence 38.1 (2016): 142-158 Sách, tạp chí
Tiêu đề: Region-based convolutional networks for accurate object detection and segmentation
Tác giả: Girshick, Ross, et al. "Region-based convolutional networks for accurate object detection and segmentation." IEEE transactions on pattern analysis and machine intelligence 38.1
Năm: 2016
[4] Girshick, Ross, et al. "Rich feature hierarchies for accurate object detection and semantic segmentation." Proceedings of the IEEE conference on computer vision and pattern recognition. 2014 Sách, tạp chí
Tiêu đề: Rich feature hierarchies for accurate object detection and semantic segmentation
[5] Girshick, Ross. "Fast r-cnn." Proceedings of the IEEE international conference on computer vision. 2015 Sách, tạp chí
Tiêu đề: Fast r-cnn
[6] He, Kaiming, et al. "Spatial pyramid pooling in deep convolutional networks for visual recognition." European conference on computer vision. Springer, Cham, 2014 Sách, tạp chí
Tiêu đề: Spatial pyramid pooling in deep convolutional networks for visual recognition
[7] Hearst, Marti A., et al. "Support vector machines." IEEE Intelligent Systems and their applications 13.4 (1998): 18-28 Sách, tạp chí
Tiêu đề: Support vector machines
Tác giả: Hearst, Marti A., et al. "Support vector machines." IEEE Intelligent Systems and their applications 13.4
Năm: 1998
[8] Hosang, Jan Hendrik, Rodrigo Benenson, and Bernt Schiele. "Learning non- maximum suppression." CVPR. 2017 Sách, tạp chí
Tiêu đề: Learning non-maximum suppression
[9] Hsieh, Jun-Wei, et al. "Automatic traffic surveillance system for vehicle tracking and classification." IEEE Transactions on Intelligent Transportation Systems 7.2 (2006): 175-187 Sách, tạp chí
Tiêu đề: Automatic traffic surveillance system for vehicle tracking and classification
Tác giả: Hsieh, Jun-Wei, et al. "Automatic traffic surveillance system for vehicle tracking and classification." IEEE Transactions on Intelligent Transportation Systems 7.2
Năm: 2006
[10] Liu, Wei, et al. "Ssd: Single shot multibox detector." European conference on computer vision. Springer, Cham, 2016 Sách, tạp chí
Tiêu đề: Ssd: Single shot multibox detector
[11] Oksuz, Kemal, et al. "Localization recall precision (LRP): A new performance metric for object detection." European Conference on Computer Vision (ECCV).2018 Sách, tạp chí
Tiêu đề: Localization recall precision (LRP): A new performance metric for object detection
[12] Redmon, Joseph, and Ali Farhadi. "Yolov3: An incremental improvement." arXiv preprint arXiv:1804.02767 (2018) Sách, tạp chí
Tiêu đề: Yolov3: An incremental improvement
[13] Redmon, Joseph, et al. "You only look once: Unified, real-time object detection." Proceedings of the IEEE conference on computer vision and pattern recognition.2016 Sách, tạp chí
Tiêu đề: You only look once: Unified, real-time object detection
[14] Ren, Shaoqing, et al. "Faster r-cnn: Towards real-time object detection with region proposal networks." Advances in neural information processing systems.2015 Sách, tạp chí
Tiêu đề: Faster r-cnn: Towards real-time object detection with region proposal networks
[15] Sermanet, Pierre, et al. "Overfeat: Integrated recognition, localization and detection using convolutional networks." arXiv preprint arXiv:1312.6229 (2013) Sách, tạp chí
Tiêu đề: Overfeat: Integrated recognition, localization and detection using convolutional networks
[16] Wen, Xuezhi, et al. "A rapid learning algorithm for vehicle classification.&#34 Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w