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

Ứng dụng mạng nơ ron tích chập nhận dạng các đối tượng di động

77 34 0

Đ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

Tiêu đề Ứng Dụng Mạng Nơ Ron Tích Chập Nhận Dạng Các Đối Tượng Di Động
Tác giả Nguyễn Văn Nam
Người hướng dẫn TS. Ngô Đình Thanh
Trường học Đại Học Đà Nẵng
Chuyên ngành Kỹ Thuật Điều Khiển Và Tự Động Hóa
Thể loại Luận Văn Thạc Sĩ
Năm xuất bản 2020
Thành phố Đà Nẵng
Định dạng
Số trang 77
Dung lượng 8,94 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Việc ứng dụng các mô hình nhận dạng đối tượng vào phục vụ trong nông nghiệp lâm nghiệp hiện nay là thật sự cần thiết Các nghiên cứu ứng dụng lĩnh vực này vào trong thực tế chưa nhiều Mục tiêu của nghiên cứu này là thực nghiệm mô hình nhận dạng đối tượng ở chế độ tĩnh và di động Để thực hiện việc này tác giả đã huấn luyện cho mô hình học nhận biết 10 loài hoa và 30 đối tượng khác nhau Sau đó cho nhận dạng với 4 trạng thái khác nhau Ảnh có ánh sáng tốt ảnh bị che khuất 1 3 1 2 ảnh thiếu ánh sáng Kết quả cho thấy độ chính xác nhận dạng đạt 99 28 78 46 40 36 và 62 38 tương ứng với 4 trạng thái môi trường ở trên Như vậy với kết quả trên việc ứng dụng mô hình này vào chế tạo thiết bị phân loại các loài hoa phục vụ trong thu hoạch hoa hoặc trong các cửa hàng bán hoa là một hướng nghiên cứu ứng dụng mới Ngoài ra khả năng ứng dụng mô hình vào nhận dạng hệ động thực vật rừng phục vụ cho công tác điều tra nghiên cứu sẽ mang lại nhiều hiệu quả trong công tác quản lý rừng hiện nay

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA

Trang 2

NGUYỄN VĂN NAM

Trang 3

LỜI CAM ĐOAN

Tôi cam đoan đây là công trình nghiên cứ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 kỳ công trình nào khác

Tác giả luận văn

Trang 4

MỤC LỤC

LỜI CAM ĐOAN

MỤC LỤC

TÓM TẮT LUẬN VĂN

DANH MỤC CÁC TỪ VIẾT TẮT

DANH MỤC CÁC BẢNG

DANH MỤC CÁC HÌNH

MỞ ĐẦU 1

1 Tính cấp thiết của đề tài 1

2 Mục tiêu của đề tài 3

3 Đối tượng, phạm vi nghiên cứu 3

3.1 Đối tượng nghiên cứu 3

3.2 Phạm vi nghiên cứu 3

4 Cách tiếp cận, phương pháp nghiên cứu 3

4.1 Cách tiếp cận 3

4.2 Phương pháp nghiên cứu 3

5 Nội dung nghiên cứu 4

CHƯƠNG 1 - TỔNG QUAN VỀ THUẬT TOÁN NHẬN DẠNG 5

Tổng quan về nhận dạng đối tượng 5

1.1.1 Khái niệm về nhận dạng 5

1.1.2 Các khó khăn trong việc nhận dạng đối tượng 5

1.1.3 Các ứng dụng trong nhận dạng đối tượng hiện nay 9

1.1.4 Tổng quan kiến trúc một hệ thống nhận dạng đối tượng 9

1.1.5 Tổng quan về nhận dạng hoa 10

Tổng quan về mạng Nơ ron 11

Tổng quan về mạng Nơ ron tích chập (CNN) 14

1.3.1 Kiến trúc mạng Nơ ron tích chập 14

1.3.2 Rút trích đặc trưng 15

1.3.3 Phân loại 17

Tổng quan về Faster R-CNN 18

1.4.1 Bài toán nhận dạng vật thể (Object Detection) 18

1.4.2 Mạng Nơ ron tích chập khu vực (R-CNN) 20

1.4.3 Mạng Nơ ron tích chập khu vực nhanh (Fast R-CNN) 22

1.4.4 Mạng Nơ ron tích chập khu vực nhanh hơn (Faster R-CNN) 25

CHƯƠNG 2 - XÂY DỰNG VÀ HUẤN LUYỆN MÔ HÌNH FASTER R_CNN 29

Trang 5

Xây dựng môi trường thực nghiệm mô hình Faster R_CNN 29

2.1.1 Cấu hình phần cứng cho môi trường thực nghiệm mô hình 29

2.1.2 Các phần mềm hỗ trợ và phần mềm lập trình 29

2.1.3 Cài đặt file môi trường 31

2.1.4 Cài đặt các thư viện hỗ trợ 32

Huấn luyện cho mô hình nhận dạng mười loài hoa 33

2.2.1 Thu thập dữ liệu 33

2.2.2 Gán nhãn cho các loài hoa 34

2.2.3 Xây dựng chương trình huấn luyện 35

2.2.4 Huấn luyện cho mô hình 36

2.2.5 Dừng huấn luyện mô hình 36

2.2.6 Kết quả sau khi huấn luyện 36

Xây dựng chương trình nhận dạng cho đối tượng 37

Thực nghiệm mô hình 37

Phương pháp đánh giá độ chính xác nhận dạng mô hình Faster R_CNN 37

CHƯƠNG 3 - THỰC NGHIỆM VÀ ĐÁNH GIÁ ĐỘ CHÍNH XÁC MÔ HÌNH FASTER R_CNN 39

Thực nghiệm mô hình Faster R-CNN 39

3.1.1 Thực nghiệm mô hình Faster R-CNN với đối tượng tĩnh 39

3.1.2 Thực nghiệm mô hình với đối tượng di động 49

KẾT LUẬN 53

1 Thuận lợi của đề tài 53

2 Hạn chế của đề tài 53

3 Kết quả đạt được 53

4 Hướng phát triển của đề tài 53

DANH MỤC CÁC CÔNG TRÌNH ĐÃ CÔNG BỐ CỦA TÁC GIẢ 55

TÀI LIỆU THAM KHẢO 1

PHỤ LỤC 3

Trang 6

TÓM TẮT LUẬN VĂN

ỨNG DỤNG MẠNG NƠ RON TÍCH CHẬP NHẬN DẠNG CÁC ĐỐI TƯỢNG DI

ĐỘNG Học viên: Nguyễn Văn Nam Chuyên ngành: Kỹ thuật điều khiển và tự động hóa

Mã số: 62.52.02.16 Khóa: K36 Trường Đại học Bách khoa - ĐHĐN

Tóm tắt - Việc ứng dụng các mô hình nhận dạng đối tượng vào phục vụ trong nông

nghiệp, lâm nghiệp hiện nay là thật sự cần thiết Các nghiên cứu ứng dụng lĩnh vực này vào trong thực tế chưa nhiều Mục tiêu của nghiên cứu này là thực nghiệm mô hình nhận dạng đối tượng ở chế độ tĩnh và di động Để thực hiện việc này tác giả đã huấn luyện cho mô hình học nhận biết 10 loài hoa và 30 đối tượng khác nhau Sau đó cho nhận dạng với 4 trạng thái khác nhau: Ảnh có ánh sáng tốt; ảnh bị che khuất 1/3; 1/2; ảnh thiếu ánh sáng Kết quả cho thấy, độ chính xác nhận dạng đạt 99,28%, 78,46%, 40,36% và 62,38% tương ứng với 4 trạng thái môi trường ở trên Như vậy, với kết quả trên việc ứng dụng mô hình này vào chế tạo thiết bị phân loại các loài hoa phục vụ trong thu hoạch hoa hoặc trong các cửa hàng bán hoa là một hướng nghiên cứu ứng dụng mới Ngoài ra, khả năng ứng dụng mô hình vào nhận dạng hệ động thực vật rừng phục vụ cho công tác điều tra, nghiên cứu sẽ mang lại nhiều hiệu quả trong công tác quản lý rừng hiện nay

Từ khóa - Trí tuệ nhân tạo; thị giác máy tính; deep learning; nhận dạng đối tượng; xử

lý ảnh

APPLICATION OF THE CONVOLUTIONAL NEURAL NETWORKS

ALGORITHM TO IDENTIFY MOBILE OBJECTS

Abstract - Although the application of object identification models in service of

agriculture and forestry is now really necessary There have not been many studies on the application of this field in practice In this study, the object identification model was experimented to experiment with object static and mobile object To this end, the algorithm is trained to classify ten flower species and 30 different objects Experiments are then implemented on images in four cases; images with non being in shadow, with ratio of 1/3, 1/2 of partially being in shadow and with totally being in shadow Experimental results show that the algorithm accuracy achieves 99,28%, 78,46%, 40,36%, and 62,38% in cases of non being in shadow, 1/3, 1/2 of partially being in shadow, and totally being in shadow, respectively This result offers a new application of this model to manufacturing equipment used in flower harvesting or flower classifying in flower shops In addition, the ability to apply this model to the identification of forest flora and fauna will bring many benefits in current forest management

Key words - Artificial intelligence; computer vision; deep learning; identify the

object; image processing

Trang 7

DANH MỤC CÁC TỪ VIẾT TẮT

CNN Convolutional Neural Network

R-CNN Regional Convolutional Neural Network

ROI Region of Interest

RPN Region Proposal Network

SVM Support Vector Machine

Trang 8

DANH MỤC CÁC BẢNG

Bảng 2.1: Bảng thu thập dữ liệu các loài hoa 34Bảng 2.2: Bảng tổng hợp sau gán nhãn 35Bảng 2.3: Bảng ma trận đánh giá độ chính xác mô hình nhận dạng 38Bảng 3.1: Bảng số liệu thực nghiệm và đánh giá độ chính xác kết quả nhận dạng đối tượng trong môi trường bình thường 41Bảng 3.2: Bảng số liệu thực nghiệm và đánh giá độ chính xác kết quả nhận dạng các đối tượng bị che khuất 1/3 43Bảng 3.3: Bảng số liệu thực nghiệm và đánh giá độ chính xác kết quả nhận dạng khi ảnh bị che khuất 1/2 45Bảng 3.4: Bảng số liệu thực nghiệm và đánh giá độ chính xác kết quả nhận dạng trong môi trường thiếu ánh sáng 47Bảng 3.5: Bảng tổng hợp đánh giá độ chính xác kết quả nhận dạng của mô hình 48

Trang 9

DANH MỤC CÁC HÌNH

Hình 1.1: Minh họa sự thay đổi góc chụp 6

Hình 1.2: Minh họa sự thiếu thành phần 6

Hình 1.3: Minh họa sự biến dạng 7

Hình 1.4: Minh họa sự che khuất 7

Hình 1.5: Minh họa hình nền phức tạp 8

Hình 1.6: Minh họa độ sáng khác nhau 8

Hình 1.7: Các bước trong hệ thống nhận dạng 10

Hình 1.8: Nhận dạng hoa mai 11

Hình 1.9: Cách thức perceptron hoạt động [11] 11

Hình 1.10: Đồ thị hàm sigmoid [11] 13

Hình 1.11: Cấu trúc mạng Nơ ron đề xuất dựa trên [11] 13

Hình 1.12: Mạng Nơ ron thông thường (trái) và CNN (phải) 14

Hình 1.13: Kiến trúc mạng CNN 14

Hình 1.14: Lớp rút trích đặc trưng của ảnh (Conv, Relu và Pool) và Lớp phân loại (FC và softmax) 15

Hình 1.15: Phép tích chập 16

Hình 1.16: Ảnh RBG và ảnh xám 16

Hình 1.17: Max pooling kích thước 2×2 17

Hình 1.18: Ví dụ cho tích chập với 2 filter, 3 cột, 2 bước nhảy, lề = 1 18

Hình 1.19: Nhận dạng hoa đồng tiền 20

Hình 1.20: Hình ảnh trước (a) và sau khi thực hiện thuật toán tìm kiếm chọn lọc (b) 21 Hình 1.21: R-CNN 21

Hình 1.22: ROI 23

Hình 1.23: ROI pooling 24

Hình 1.24: So sánh thời gian huấn luyện và kiểm tra giữa R-CNN và Fast R-CNN 24

Hình 1.25: Mô hình ROI pooling 25

Hình 1.26: Lấy vị trí 25

Hình 1.27: Vị trí sliding window 26

Hình 1.28: Các khu vực RPN 27

Hình 1.29: Hệ số IoU 27

Hình 1.30: Mô tả hệ số IoU 27

Hình 1.31: Thử thời gian R-CNN [10] 28

Hình 2.1: Bắt đầu cài đặt file môi trường 31

Trang 10

Hình 2.2: Cài đặt file môi trường thành công 31

Hình 2.3: Kích hoạt file môi trường thực nghiệm 32

Hình 2.4: Cài đặt thư viện Tensorflow-gpu từ công cụ pip 32

Hình 2.5: Quá trình cài đặt thư viện Tensorflow-gpu kết thúc 33

Hình 2.6: Thu thập dữ liệu hoa hồng và hoa hướng dương 34

Hình 2.7: Gán nhãn cho hoa hồng và hoa cẩm tú cầu 35

Hình 2.8: File chương trình huấn luyện 35

Hình 2.9: a) Quá trình bắt đầu huấn luyện dữ liệu mô hình; b) Quá trình kết thúc huấn luyện dữ liệu mô hình 36

Hình 2.10: Biểu đồ mất mát theo thời gian của mô hình Faster R-CNN 36

Hình 2.11: Cơ sở dữ liệu sau khi huấn luyện mô hình học 37

Hình 2.12: Các file chương trình nhận dạng đối tượng 37

Hình 3.1: Hình ảnh đối tượng nhận dạng ở môi trường bình thường 40

Hình 3.2: Kết quả nhận dạng các đối tượng ở môi trường bình thường 41

Hình 3.3: Hình ảnh đối tượng nhận dạng bị che khuất 1/3 42

Hình 3.4: Kết quả nhận dạng các đối tượng bị che khuất 1/3 43

Hình 3.5: Hình ảnh đối tượng nhận dạng bị che khuất 1/2 44

Hình 3.6: Kết quả nhận dạng các đối tượng bị che khuất 1/2 45

Hình 3.7: Hình ảnh đối tượng nhận dạng ở môi trường thiếu ánh sáng 46

Hình 3.8: Kết quả nhận dạng các đối tượng trong môi trường thiếu ánh sáng 47

Hình 3.9: Nguồn video hoa cẩm tú cầu di động 50

Hình 3.10: Kết quả nhận dạng hoa cẩm tú cầu bởi mô hình 50

Hình 3.11: Nguồn video người, xe di động 51

Hình 3.12: Kết quả nhận dạng người, xe di động bởi mô hình 52

Trang 11

MỞ ĐẦU

Hiện nay, việc ứng dụng công nghệ trí tuệ nhân tạo vào thực tế đang được các nhà khoa học quan tâm và tham gia nghiên cứu phát triển để tạo ra sản phẩm có khả năng làm việc thay thế cho con người trong nhiều lĩnh vực như: Công nghiệp; dân dụng; y tế; v.v… Với những hiệu năng mà nó mang lại ở hiện tại thì khả năng trong tương lai không xa chúng ta sẽ có những thiết bị máy móc không những làm việc hiệu quả mà còn khả năng thông minh Để có được những thiết bị thông minh và có khả năng làm việc như con người thì những yêu cầu đặt ra để cho máy học cũng không hề đơn giản Thứ nhất về xây dựng tập dữ liệu để cho máy học, nó là một tập cơ sở dữ liệu lớn (big database) cho máy học nhận biết nhiều đối tượng khác nhau (hàng ngàn đến chục ngàn đối tượng…) Thứ hai là về cấu hình phần cứng, để đáp ứng xử lý được các tập dữ liệu lớn thì yêu câu về cấu hình phần cứng cũng tương xứng và nếu cơ sở

dữ liệu quá lớn thì hiện nay chưa thể thực hiện được Do vậy, việc nhận dạng các đối tượng là một phần không thể thiếu đối với trí tuệ nhân tạo, deep learning

1 Tính cấp thiết của đề tài

Những năm gần đây, việc ứng dụng các mô hình Deep Learning vào trong thực

tế được nhiều nhà khoa học quan tâm tham gia nghiên cứu, nổi trội trong đó là mô hình mạng Nơ ron tích chập (CNN - Convolutional Neural Networks) [1], [2], [3] như một ứng cử viên sáng giá để giải quyết các vấn đề như: xử lý dữ liệu đầu vào lớn; xử

lý online; nâng cao độ chính xác và khả năng xử lý nhiễu đầu vào Để thực hiện được những yêu cầu trên mô hình CNN cũng trải qua các cải tiến cụ thể: Mạng Nơ ron tích chập khu vực (R-CNN - Regional convolutional neural networks) [4], [5], [6]; Mạng

Nơ ron tích chập khu vực nhanh (Fast R-CNN - Fast region-based convolutional neural networks) [7]; Mạng Nơ ron tích chập khu vực nhanh hơn (Faster R-CNN - Faster region-based convolutional neural networks) [8], [9]

Trong đó, mô hình Faster R-CNN không dùng thuật toán tìm kiếm chọn lọc để lấy ra các khu vực, mà nó thêm một mạng CNN mới gọi là mạng đề xuất khu vực (RPN - Region Proposal Networks) để tìm các khu vực [8] Đầu tiên cả bức ảnh được cho qua mô hình huấn luyện trước để lấy bản đồ đặc trưng Sau đó bản đồ đặc trưng được dùng cho RPN để lấy được các khu vực, sau khi lấy được vị trí các khu vực thì thực hiện tương tự Fast R-CNN [7]

Một kết quả thử nghiệm về thời gian của R-CNN [10] được thể hiện tại hình 1

Trang 12

Hình 1: Thử thời gian R-CNN Hình 1 ta thấy Faster R-CNN nhanh hơn hẳn các dòng R-CNN trước đó, vì vậy

có thể dùng cho nhận dạng đối tượng ở thời gian thực

Độ chính xác nhận dạng là một yếu tố quan trọng của mô hình khi ứng dụng vào trong thực tế, khi đầu vào bị nhiễu (nhiễu: hình ảnh trong môi trường trời tối, trời mưa hoặc ảnh bị che khuất một phần…) nó ảnh hưởng đến quá trình nhận dạng như thế nào? Do vậy, trong nghiên cứu này sẽ cho thấy được sự ảnh hưởng của nhiễu ở đầu vào lên độ chính xác trong nhận dạng của mô hình Faster R-CNN

Để thực hiện nghiên cứu trên đầu tiên tác giả tiến hành huấn luyện cho mô hình Faster R-CNN nhận dạng mười loài hoa khác nhau, vì loài hoa rất phổ biến và dễ tiếp cận nên sẽ thuận lợi trong quá trình thu thập dữ liệu để phục vụ cho việc nghiên cứu Sau khi thực nghiệm mô hình trên các loài hoa tác giả sẽ tiến hành nghiên cứu bước tiếp theo là thực nghiệm cho các đối tượng di động Đề tài này tác giả muốn hướng đến ứng dụng mô hình này vào phục vụ trong ngành lâm nghiệp, muốn huấn luyện mô hình này định danh các loài cây rừng từ hoa, lá, thân… bởi vì muốn định danh được một số loài cây rừng thì hiện nay phải nhờ đến các chuyên gia mới định danh được Ngoài ra, ứng dụng các mô hình nhận dạng định danh cho các loài cây rừng hay nhận dạng các loài động vật vẫn chưa được áp dụng phục vụ trong ngành lâm nghiệp Việc điều tra, kiểm kê tài nguyên rừng hiện tại đang rất cần sự hỗ trợ của công nghệ hiện đại để giải quyết những khó khăn trong công tác quản lý tài nguyên rừng, công việc

mà lâu nay hầu như do con người thực hiện Để việc ứng dụng vào thực tế mang lại được hiệu quả tốt thì cũng cần có các đánh giá trong quá trình thực nghiệm

Ngoài ra, chúng ta có thể ứng dụng kết hợp mô hình nhận dạng vào chế tạo máy thu hoạch hoa tươi cho các nhà vườn trồng hoa theo mô hình công nghiệp hoặc ứng dụng vào phục vụ cho các shop, siêu thị kinh doanh hoa tươi tự động thông qua các

Trang 13

phần mềm ứng dụng trên máy tính, các phần mềm App trên điện thoại di động… là một hướng nghiên cứu ứng dụng mới sẽ góp phần mang lại hiệu quả cao trong sản xuất, kinh doanh

Với những lý do trên, tôi quyết định chọn nghiên cứu đề tài: “Ứng dụng mạng

Nơ ron tích chập nhận dạng các đối tượng di động” Mục tiêu của đề tài là thực

nghiệm mô hình Faster R-CNN nhận dạng các đối tượng tĩnh và di động, đưa ra các đánh giá độ chính xác của mô hình trong trường hợp tín hiệu đầu vào lúc bình thường

và nhiễu

2 Mục tiêu của đề tài

Mục tiêu của đề tài là thực nghiệm mô hình Faster R-CNN nhận dạng các đối tượng tĩnh và di động, đưa ra các đánh giá độ chính xác của mô hình trong trường hợp tín hiệu đầu vào lúc bình thường và nhiễu Từ đó, tiến hành xây dựng mô hình nhận dạng các đối tượng từ một hình ảnh, một đoạn video hoặc từ camera online Đánh giá

về khả năng ứng dụng mô hình Faster R-CNN để phân loại loài hoa, nhận dạng hệ động thực vật rừng di động

3 Đối tượng, phạm vi nghiên cứu

3.1 Đối tượng nghiên cứu

- Cơ sở dữ liệu trên hình ảnh, video trên Google

- Cơ sở lý thuyết về nhận dạng các đối tượng

- Các phương pháp, giải thuật về nhận dạng đối tượng

- Thuật toán mạng Nơ ron tích chập

3.2 Phạm vi nghiên cứu

- Nghiên cứu về các kỹ thuật nhận dạng các đối tượng từ hình ảnh, video

- Nghiên cứu nhận dạng đối tượng tĩnh và di động

4 Cách tiếp cận, phương pháp nghiên cứu

4.1 Cách tiếp cận

- Tìm hiểu nghiên cứu các tài liệu liên quan đến đề tài trên các tạp chí trong và ngoài nước, trên các trang diễn đàn kỹ thuật, nguồn tư liệu từ các trang mạng internet như Google, YouTube…

4.2 Phương pháp nghiên cứu

4.2.1 Phương pháp lý thuyết:

- Tìm hiểu cơ sở lý thuyết về xử lý hình ảnh, xử lý video …

- Tìm hiểu cơ sở lý thuyết về thuật toán mạng Nơ ron tích chập

- Các tài liệu liên quan đến nhận dạng các đối tượng từ hình ảnh, video, từ kho

dữ liệu Google

Trang 14

4.2.2 Phương pháp thực nghiệm

- Xây dựng mô hình Faster R-CNN để nhận dạng đối tượng tĩnh và di động

- Kiểm tra đánh giá độ chính xác mô hình Faster R-CNN nhận dạng thực nghiệm

10 loài hoa trong trường hợp hình ảnh đưa vào lúc bình thường và nhiễu

5 Nội dung nghiên cứu

Nội dung của đề tài bao gồm:

Mở đầu

Chương 1: Tổng quan về thuật toán nhận dạng

Chương 2: Xây dựng và huấn luyện mô hình Faster R-CNN

Chương 3: Kết quả thực nghiệm và đánh giá độ chính xác mô hình Faster CNN

R-Kết luận

Trang 15

CHƯƠNG 1 - TỔNG QUAN VỀ THUẬT TOÁN NHẬN DẠNG

Tổng quan về nhận dạng đối tượng

Một hệ thống nhận dạng mẫu hoàn thiện gồm một thiết bị cảm nhận để thu thập các quan sát cần cho việc phân loại hay miêu tả, một cơ chế trích rút đặc trưng để tính toán các thông tin dưới dạng số hay dạng tượng trưng từ các dữ liệu quan sát được, và một bộ phân loại nhằm thực hiện công việc phân loại thực sự dựa vào các đặc tính đã được trích rút

Việc phân loại thường dựa vào sự có sẵn của một tập các mẫu mà đã được phân loại sẵn Tập các mẫu này được gọi là tập huấn luyện và chiến lược học nhằm phân loại mẫu vào một trong các lớp có sẵn được gọi là học có giám sát Việc học cũng có thể là không có giám sát, theo nghĩa là hệ thống không được cung cấp các mẫu được gán nhãn đi trước, mà nó phải tự đưa ra các lớp để phân loại dựa vào tính ổn định trong thống kê của các mẫu

Việc phân loại thường dùng một trong các hướng tiếp cận sau: thống kê hoặc cú pháp Nhận dạng mẫu dùng thống kê là dựa vào các đặc tính thống kê của các mẫu, chẳng hạn rằng các mẫu được tạo bởi một hệ thống xác suất Nhận dạng dùng cấu trúc

là dựa vào tương quan cấu trúc giữa các mẫu

Các ứng dụng phổ biến là nhận dạng tiếng nói tự động, phân loại văn bản thành nhiều loại khác nhau, nhận dạng tự động các mã bưu điện viết tay trên các bao thư, hay

hệ thống nhận dạng danh tính dựa vào mặt người Các ví dụ nói trên tạo thành lãnh vực con phân tích ảnh của nhận dạng mẫu với đầu vào là các ảnh số

1.1.2 Các khó khăn trong việc nhận dạng đối tượng

Đối với các đối tượng riêng lẻ thì việc nhận dạng các đối tượng trong ảnh là việc không phải là phức tạp Tuy nhiên, đối với một hệ thống nhân tạo thì nhận ra một đối

Trang 16

tượng từ một ảnh đòi hỏi phải giải quyết khá nhiều vấn đề khó khăn, chính vì thế vấn

đề này vẫn đang được nhiều nhóm trên thế giới quan tâm nghiên cứu Khó khăn của bài toán nhận dạng có thể kể ra như sau:

1.1.2.1 Tư thế, góc chụp

Ảnh chụp khuôn mặt có thể thay đồi rất nhiều bởi vì góc chụp giữa camera và khuôn mặt Chẳng hạn như: chụp thẳng, chụp xéo bên trái 450 hay xéo bên phải 450, chụp từ trên xuống, chụp từ dưới lên,v.v Với các tư thế khác nhau, các thành phần trên khuôn mặt như mắt, mũi, miệng có thế bị khuất một phần hoặc thậm chỉ khuất hết

Hình 1.1: Minh họa sự thay đổi góc chụp

1.1.2.2 Sự xuất hiện hoặc thiếu một số thành phần

Các thành phần biểu tả một đối tượng có thể xuất hiện hoặc không trong ảnh làm cho bài toán nhận dạng càng trở nên khó hơn rất nhiều

Hình 1.2: Minh họa sự thiếu thành phần

Trang 17

1.1.2.3 Sự biến dạng của đối tượng

Biến dạng của đối tượng có thể làm ảnh hưởng đáng kể lên các thông số của đối tượng đó Chẳng hạn, cũng một khuôn mặt một người nhưng có thể sẽ rất khác khi họ cười hoặc sợ hãi,v.v

Hình 1.3: Minh họa sự biến dạng

1.1.2.4 Sự che khuất

Đối tượng có thể bị che khuất bởi các đối tượng khác

Hình 1.4: Minh họa sự che khuất

1.1.2.5 Sự phức tạp của hình nền

Hình nền phức tạp sẽ khiến việc nhận dạng trở nên khó khăn hơn nhiều

Trang 18

Hình 1.5: Minh họa hình nền phức tạp

1.1.2.6 Môi trường của ảnh

Ảnh được chụp trong các điều kiện môi trường khác nhau về: Chiếu sáng, về tính chất camera (máy kỹ thuật số, máy hồng ngoại,v.v ) ảnh hưởng rất nhiều đến chất lượng ảnh

Hình 1.6: Minh họa độ sáng khác nhau

Trang 19

1.1.3 Các ứng dụng trong nhận dạng đối tượng hiện nay

Bài toán nhận dạng đối tượng có thể áp dụng rộng rãi trong nhiều ứng dụng thực

tế khác nhau Đó chính là lý do mà bài toán này hấp dẫn rất nhiều nhóm nghiên cứu trong thời gian dài Các ứng dụng liên quan đến nhận dạng đối tượng có thể kể ra như:

- Hệ thống phát hiện tội phạm: camera được đặt tại một số điểm công cộng như: siêu thị, nhà sách, trạm xe buýt, sân bay,v.v… Khi phát hiện được sự xuất hiện của các đối tượng là tội phạm, hệ thống sẽ gửi thông điệp về cho trung tâm xử lý

- Hệ thống theo dõi nhân sự trong một đơn vị: giám sát giờ ra vào của từng nhân viên và chấm công

- Hệ thống giao tiếp người máy: thay thế việc tương tác giữa người và máy theo những cách truyền thống như: bản phím, chuột,v.v Thay vào đó là sử dụng các giao tiếp trực quan: biểu cảm khuôn mặt, dấu hiệu, cử chỉ bằng tay

- Hệ thống tìm kiếm thông tin trên ảnh, video dựa trên nội dung (chỉ mục theo người) Chẳng hạn như: đài truyền hình Việt Nam (VTV) có một kho dữ liệu video tin tức lớn cần tìm kiếm nhanh những đoạn video nào có tên A hoặc B

- Các hệ thống bảo mật dựa trên thông tin trắc sinh học: mặt người, vân tay,v.v thay vì mật khẩu, khóa,v.v

- Phần mềm nhân dạng chữ in, đặc biệt dành riêng cho ngôn ngữ tiếng Việt, dịch

vụ nhận dạng chữ in

- Công nghệ nhân dạng quản lý giao thông, quản lý hình ảnh của xe và hiện số xe thay đổi (không khớp với cơ số dữ liệu), giám sát bãi đỗ xe, phương tiện giao thông tại các khu vực nhạy cảm như các sân bay, bến cảng

1.1.4 Tổng quan kiến trúc một hệ thống nhận dạng đối tượng

Một hệ thống nhận dạng đối tượng thông thường được xử lý qua bốn bước sau:

 Thu thập tín hiệu (hình ảnh) và tiền xử lý

 Trích lọc đặc trưng

 Phát hiện đối tượng

 Phân loại đối tượng

Trang 20

Hình 1.7: Các bước trong hệ thống nhận dạng Ảnh đầu vào được thu nhận và tiền xử lý sau đó các ảnh được qua công đoạn nền

xử lý nhằm tăng độ chính xác cho hệ thống Các ảnh sau đó được trích chọn đặc trưng

để tạo ra các vector đặc trưng trong bước rút trích đặc trưng Những vector đặc trưng này sẽ là dữ liệu đầu vào cho một mô hình đã được huấn luyện truớc Phát hiện đối tượng: dò tìm và định vị những vị trí đối tượng xuất hiện trong ảnh hoặc trên các chuỗi ảnh của video Những đối tượng thu được qua bước phát hiện đối tượng sẽ tiếp tục được phân lớp thành từng lớp riêng biệt để nhận dạng

1.1.5 Tổng quan về nhận dạng hoa

Hệ thống nhận dạng hoa là một ứng dụng máy tính tự động xác định hoặc nhận dạng loại hoa nào đó từ một bức hình ảnh kỹ thuật số hoặc một khung hình video từ một nguồn video Một trong những cách để thực hiện điều này là so sánh các đặc điểm trên các loại hoa chọn trước từ hình ảnh và một cơ sở dữ liệu về loại hoa đó

Từ tập dữ liệu sau khi huấn luyện, sẽ lấy được các đặc trưng của các loại hoa Hệ

Trang 21

thống sẽ so sánh với hình ảnh thu về từ camera trực tiếp qua ứng dụng để cho ra kết quả đó là loại hoa gì Đồng thời xuất ra các thông tin cơ bản của loại hoa đó như tên hoa, đặc điểm, nguồn gốc của hoa

Hình 1.8: Nhận dạng hoa mai

Tổng quan về mạng Nơ ron

Mạng Nơ ron được xây dựng dựa trên những hiểu biết về bộ não con người Mạng bao gồm một loạt các đơn vị liên kết khác nhau, nó là một ánh xạ giữa tập đầu vào và tập đầu ra Mỗi đơn vị này gọi là một Nơ ron Hai loại Nơ ron nhân tạo quan trọng là perceptron và sigmoid Nơ ron

Perceptron được phát triển trong những năm 1950-1960 bởi nhà khoa học Frank Rosenblatt dựa trên cảm hứng từ nghiên cứu trước đó của Warren McCulloch và Walter Pitts Cách thức hoạt động của perceptrons là sử dụng một vài đầu vào nhị phân x1, x2… và tạo ra một đầu ra nhị phân như hình sau

Hình 1.9: Cách thức perceptron hoạt động [11]

Giả sử perceptrons có ba đầu vào: x1, x2, x3 Để tính toán đầu ra chúng ta giả sử các trọng số w1, w2, w3… là các số thực diễn tả độ quan trọng của đầu vào tương ứng Đầu ra của Nơ ron là 0 hay 1 được xác định thông qua so sánh tổng xích ma của các

Trang 22

tích wj*xj với một giá trị ngưỡng theo biểu thức:

w x threshold output

Chúng ta có thể đơn giản hóa mô tả perceptrons như sau Điều kiện

w x b output

ra cho phép một thay đổi nhỏ của trọng số và chỉ tạo ra một thay đổi nhỏ ở đầu ra như hình 4 Trong ví dụ mạng đang nhận dạng sai chữ “a” thành “b” Chúng ta sẽ thay đổi nhỏ trọng số để mạng cho đầu ra tiến dần đến “a” Lặp đi lặp lại việc này sẽ cho kết quả tốt hơn Đây là cách mạng học được

Cách hoạt động của sigmoid Nơ ron là sử dụng một vài đầu vào số thực trong khoảng [0,1], và tạo ra một đầu ra Khác với perceptron, đầu vào của sigmoid Nơ ron

là các số thực nằm trong khoảng [0,1] Các trọng số vẫn giống với perceptron nhưng đầu ra không phải là 0 hay 1 Thay vào đó đầu ra là  w x b  , với là hàm sigmoid được định nghĩa như sau:

1 ( )

Trang 23

Hình 1.11: Cấu trúc mạng Nơ ron đề xuất dựa trên [11]

Trang 24

Tổng quan về mạng Nơ ron tích chập (CNN)

1.3.1 Kiến trúc mạng Nơ ron tích chập

Mạng Nơ ron tích chập có kiến trúc khác với mạng Nơ ron thông thường Mạng

Nơ ron bình thường chuyển đổi đầu vào thông qua hàng loạt các tầng ẩn Mỗi tầng là một tập các Nơ ron và các tầng được liên kết đầy đủ với các Nơ ron ở tầng trước đó

Và ở tầng cuối cùng sẽ là tầng kết quả đại diện cho dự đoán của mạng

Đầu tiên, mạng Nơ ron tích chập được chia thành 3 chiều: rộng, cao và sâu Tiếp theo các Nơ ron trong mạng không liên kết hoàn toàn với toàn bộ Nơ ron kế đó nhưng chỉ liên kết tới một vùng nhỏ Cuối cùng một tầng đầu ra được tối giản thành vector của giá trị xác suất

Hình 1.12: Mạng Nơ ron thông thường (trái) và CNN (phải)

CNN gồm hai thành phần:

- Phần tầng ẩn hay phần rút trích đặc trưng: trong phần này mạng sẽ tiến hành tính toán hàng loạt phép tích chập và phép hợp nhất (pooling) để phát hiện các đặc trưng Ví dụ: nếu ta có hình ảnh con ngựa vằn thì trong phần này mạng sẽ nhận diện các sọc vằn, hai tai và bốn chân của nó

- Phần phân loại: tại phần này một lớp với các liên kết đầy đủ sẽ đóng vai trò như một bộ phân lớp các đặc trưng đã rút trích được trước đó Tầng này sẽ đưa ra xác suất của một đối tượng trong hình 1.13

Hình 1.13: Kiến trúc mạng CNN Hoặc có thể biểu diễn như hình 1.14 sau:

Trang 25

Hình 1.14: Lớp rút trích đặc trưng của ảnh (Conv, Relu và Pool) và Lớp phân loại (FC

và softmax)

1.3.2 Rút trích đặc trưng

Tích chập là một khối quan trọng trong CNN Thuật ngữ tích chập được dựa trên một phép hợp nhất toán học của hai hàm tạo thành hàm thứ ba Phép toán này kết hợp hai tập thông tin khác nhau

Trong trường hợp CNN tích chập được thực hiện trên giá trị đầu vào của dữ liệu

và kernel/filter (thuật ngữ này được sử dụng khác nhau tùy tình huống) để tạo ra một

bản đồ đặc trưng (feature map)

Ta thực hiện phép tích chập bằng cách trượt kernel/filter theo dữ liệu đầu vào Tại mỗi vị trí, ta tiến hành phép nhân ma trận và tính tổng các giá trị để đưa vào bản

đồ đặc trưng

Trong hình dưới đây, thành phần kernel/filter (màu xanh lá) trượt trên đầu vào (màu xanh dương) và kết quả được trả về bản đồ đặc trưng (màu đỏ) Kernel/filter có kích thước là 3×3 trong ví dụ này

Trang 26

Hình 1.15: Phép tích chập Trong thực tế, tích chập được thực hiện hiện trên không gian 3 chiều Vì mỗi hình ảnh được biểu diễn dưới dạng 3 chiều: rộng, cao và sâu Chiều sâu ở đây chính là giá trị màu sắc của hình (RGB)

Hình 1.16: Ảnh RBG và ảnh xám

Ta thực hiện phép tích chập trên đầu vào nhiều lần khác nhau Mỗi lần sử dụng một kernel/filter khác nhau Kết quả ta sẽ thu được những bản đồ đặc trưng khác nhau Cuối cùng, ta kết hợp toàn bộ bản đồ đặc trưng này thành kết quả cuối cùng của tầng tích chập

Tương tự như mạng Nơ ron thông thường ta sử dụng một hàm kích hoạt (activate function) để có đầu ra dưới dạng phi tuyến Trong trường hợp CNN đầu ra của phép tích chập sẽ đi qua hàm kích hoạt nào đó ví dụ như hàm ReLU (rectified linear units) Trong quá trình trượt kernel/filter trên dữ liệu đầu vào ta sẽ quy định một bước

Trang 27

nhảy (stride) với mỗi lần di chuyển Thông thường ta lựa chọn bước nhảy là 1 Nếu kích thước bước nhảy tăng, kernel/filter sẽ có ít ô trùng lắp

Bởi vì kích thước đầu ra luôn nhỏ hơn đầu vào nên ta cần một phép xử lí đầu vào

để đầu ra không bị co giãn Đơn giản ta chỉ cần thêm một lề nhỏ vào đầu vào Một lề với giá trị 0 sẽ được thêm vào xung quanh đầu vào trước khi thực hiện phép tích chập Thông thường sau mỗi tầng tích chập ta sẽ cho kết quả đi qua một tầng hợp nhất (pooling layer) Mục đích của tầng này là để nhanh chóng giảm số chiều, việc này giúp giảm thời gian học và hạn chế việc overfitting

Một phép hợp nhất đơn giản thường được dùng đó là max pooling, phép này lấy giá trị lớn nhất của một vùng để đại diện cho vùng đó Kích thước của vùng sẽ được xác định trước để giảm kích thước của bản đồ đặc trưng nhanh chóng nhưng vẫn giữ được thông tin cần thiết

Hình 1.17: Max pooling kích thước 2×2 Tổng kết lại khi sử dụng CNN, ta cần chú ý đến 4 tham số quan trọng:

đủ, phần này hoạt động tương tự như mạng Nơ ron thông thường

Kết quả thu được cuối cùng cũng sẽ là một vector với các giá trị xác suất cho việc dự đoán như mạng Nơ ron thông thường

Trang 28

Hình 1.18: Ví dụ cho tích chập với 2 filter, 3 cột, 2 bước nhảy, lề = 1

Tổng quan về Faster R-CNN

1.4.1 Bài toán nhận dạng vật thể (Object Detection)

Một trong những lĩnh vực quan trọng của Trí tuệ nhân tạo (Artificial Intelligence)

là thị giác máy (Computer Vision) Computer Vision là một lĩnh vực bao gồm các phương pháp thu nhận, xử lý ảnh kỹ thuật số, phân tích và nhận dạng các hình ảnh, phát hiện các đối tượng, tạo ảnh, siêu phân giải hình ảnh và nhiều hơn vậy Object Detection có lẽ là khía cạnh sâu sắc nhất của thị giác máy do số lần sử dụng trong thực

tế Object Detection đề cập đến khả năng của hệ thống máy tính và phần mềm để định

vị các đối tượng trong một hình ảnh và xác định từng đối tượng Object Detection đã được sử dụng rộng rãi để phát hiện khuôn mặt, phát hiện xe, đếm số người đi bộ, hệ thống bảo mật và xe không người lái Có nhiều cách để nhận diện đối tượng có thể được sử dụng cũng như trong nhiều lĩnh vực thực hành Giống như mọi công nghệ

Trang 29

khác, một loạt các ứng dụng sáng tạo và tuyệt vời của Object Detection sẽ đến từ các lập trình viên và các nhà phát triển phần mềm

Bắt đầu sử dụng các phương pháp nhận diện đối tượng hiện đại trong các ứng dụng và hệ thống, cũng như xây dựng các ứng dụng mới dựa trên các phương pháp này Việc phát triển nhận diện đối tượng sớm liên quan đến việc sử dụng các thuật toán cổ điển, giống như các thuật toán được hỗ trợ trong OpenCV, thư viện computer vision phổ biến Tuy nhiên, các thuật toán cổ điển này không thể đạt được hiệu suất đủ

để làm việc trong các điều kiện khác nhau

Việc áp dụng đột phát và nhanh chóng của deep learning vào năm 2012 đã đưa vào sự tồn tại các thuật toán và phương pháp phát hiện đối tượng hiện đại và chính xác cao như R-CNN, Fast-RCNN, Faster-RCNN, RetinaNet và nhanh hơn nhưng rất chính xác như SSD (Single Shot MultiBox Detector) và YOLO (You only look once) Sử dụng các phương pháp và thuật toán này, dựa trên deep learning và cũng dựa trên việc học máy đòi hỏi rất nhiều kiến thức về toán học và việc học sâu Có hàng triệu chuyên gia lập trình và các nhà phát triển phần mềm muốn tích hợp và tạo ra các sản phẩm mới sử dụng object detection Nhưng công nghệ này xa tầm tay của họ và phức tạp để hiểu và sử dụng thực tế của nó

Image Artificial Intelligence (ImageAI-Ảnh thông minh), một thư viện python cho phép các lập trình viên và các nhà phát triển phần mềm dễ dàng tích hợp các công nghệ thị giác máy hiện đại vào các ứng dụng hiện có và mới của họ, và chỉ cần sử dụng một vài dòng mã ImageAI hỗ trợ một danh sách các thuật toán học máy hiện đại nhất cho việc dự đoán hình ảnh,, nhận diện vật thể, phát hiện video,

Trang 30

Hình 1.19: Nhận dạng hoa đồng tiền Bài toán nhận dạng đối tượng (object detection) có đầu vào là ảnh màu và đầu ra

là vị trí của các vật thể trong ảnh Ta thấy nó bao gồm hai bài toán nhỏ:

1.4.2 Mạng Nơ ron tích chập khu vực (R-CNN)

Ý tưởng thuật toán R-CNN khá đơn giản:

Bước 1: Dùng thuật toán tìm kiếm chọn lọc để lấy ra khoảng 2000 khu vực trong ảnh đầu vào mà có khả năng chứa vật thể

Bước 2: Với mỗi khung ta xác định xem nó là vật thể nào

1.4.2.1 Thuật toán tìm kiếm chọn lọc

Đầu vào của thuật toán là ảnh màu, đầu ra là khoảng 2000 khu vực mà có khả năng chứa các vật thể

Trang 31

Đầu ra sau khi thực hiện phân loại hình ảnh

Hình 1.20: Hình ảnh trước (a) và sau khi thực hiện thuật toán tìm kiếm chọn lọc (b)

1.4.2.2 Phân loại khu vực được đề xuất

Bài toán trở thành phân loại ảnh cho các khu vực Do thuật toán tìm kiếm chọn lọc cho tới 2000 khu vực được đề xuất nên có rất nhiều khu vực không chứa vật thể nào Vậy nên ta cần thêm một lớp nền không chứa vật thể nào Ví dụ như hình dưới ta

có 4 khu vực, ta sẽ phân loại mỗi khung là người, ngựa hay nền [4]

Hình 1.21: R-CNN Bước 1: Sử dụng các mạng huấn luyện sẵn để chuyển tiếp các khu vực được đề xuất, sẽ tốn nhiều thời gian bởi với mỗi ảnh thuật toán tìm kiếm chọn lọc sẽ cho ra hàng ngàn khu vực

Bước 2: Sẽ chỉ chuyển tiếp một lần đối với ảnh gốc, thu được đặc trưng tích chập của ảnh đó Ví dụ với một hình ảnh có kích thước 600×600×3, ta sẽ thu được đặc trưng với kích thước 37×37×512 Kích thước của đặc trưng bị giảm nhỏ khoảng 16 lần Bước 3: Dựa vào kích thước cùng vị trí của các khu vực đối với ảnh gốc, ta sẽ tính toán được vị trí của khu vực trong đặc trưng tích chập

Bước 4: Sử dụng giá trị đặc trưng tích chập của khu vực, ta dự đoán được vị trí các đỉnh của các khung cũng như vật thể nằm trong khung đó là gì

Sau đó các khu vực được đề xuất được thay đổi kích thước lại về cùng kích thước

Trang 32

và thực hiện thay đổi việc học, với đặc trưng được trích xuất, sau đó các đặc trưng được cho vào thuật toán SVM (support vector machine) để phân loại ảnh

Bên cạnh đó thì các đặc trưng được trích xuất cũng được dùng để dự đoán 4 giá trị cho mỗi cạnh Ví dụ như khi khu vực đó chứa người nhưng chỉ có phần thân và nửa mặt, nửa mặt còn lại không có trong khu vực đó thì giá trị cho mỗi cạnh có thể giúp

mở rộng khu vực để lấy được toàn bộ người

1.4.3 Mạng Nơ ron tích chập khu vực nhanh (Fast R-CNN)

Sau khi đã có đầu ra của các khu vực, chúng ta sẽ tìm hiểu về khái niệm anchors Tại mỗi vị trí của cửa sổ trượt trên đặc trưng tích chập, chúng ta tạo ra k anchors tương ứng ở hình ảnh gốc Trong nghiên cứu [7] tác giả sử dụng một hình vuông, 2 hình chữ nhật với tỉ lệ chiều rộng, chiều dài là 1×2 hoặc 2×1, cùng với 3 kích cỡ khác nhau, như vậy k= 3×3 = 9

Các anchors này sẽ được gán mác là tích cực hoặc tiêu cực dựa vào diện tích chồng chéo với ground truth box theo luật như sau

Các anchor được phân loại là tích cực nếu:

- Là anchor có tỉ lệ diện tích chồng chéo trên diện tích chồng chéo over-Union) lớn nhất với một ground truth box

(Intersection Là anchor có tỉ lệ giao nhau với một ground truth lớn hơn 0.7

Các anchor được phân loại là tiêu cực nếu có giá trị IoU bé hơn 0.3

Tại sao phải tạo ra những anchors này Câu trả lời gồm 2 nguyên nhân chính:

- Dựa phân loại của anchor, để dự đoán xác suất chứa vật thể của các khu vực

- Dựa vào khoảng cách từ anchor đến ground truth box, để dự đoán vị trí của khung

Từ đây ta xác định được mục tiêu đầu ra của regression layer và classification được nhắc tới ở phần cấu trúc mạng RPN

box-Box-classification dự đoán xác suất chứa vật thể của k khu vực được đề xuất, tương ứng với k anchor tại từng vị trí của sliding-window

Box-regression dự đoán khoảng cách từ anchor đến khung dữ liệu thật tương

Trang 33

ứng

Tuy nhiên là kích thước của các khu vực khác nhau nên khi làm phẳng sẽ ra các vector có kích thước khác nhau nên không thể áp dụng neural network được Nó đã thay đổi kích thước các khu vực về cùng kích thước trước khi dùng thay đổi cách học Tuy nhiên ở bản đồ đặc trưng ta không thể thay đổi kích thước được, nên ta phải có cách khác để chuyển các khu vực trong bản đồ đặc trưng về cùng kích thước ROI pooling ra đời

1.4.3.1 Khu vực quan tâm (ROI pooling)

ROI pooling (Region of Interest pooling) là một dạng của pooling layer Điểm khác so với max pooling hay average pooling là bất kể kích thước của đầu vào tensor, ROI pooling luôn cho ra đầu ra có kích thước cố định được định nghĩa trước

Ta kí hiệu a/b là phần nguyên của a khi chia cho b và a%b là phần dư của a khi chia cho b Ví dụ: 10/3 = 3 và 10%3 = 1

Gọi đầu vào của ROI pooling kích thước m×n và đầu ra có kích thước h×k (thông thường h, k nhỏ ví dụ 7×7)

Ta chia chiều rộng thành h phần, (h-1) phần có kích thước m/h, phần cuối có kích thước m/h+ m%h

Tương tự ta chia chiều dài thành k phần (k-1) phần có kích thước n/k, phần cuối

có kích thước n/k+n%k

Ví dụ m = n = 10, h = k = 3, do m/h = 3 và m%h = 1, nên ta sẽ chia chiều rộng thành 3 phần, 2 phần có kích thước 3, và 1 phần có kích thước 4

Hình 1.22: ROI Sau đó với mỗi khối được tạo ra bằng các đường đỏ và cạnh, ta thực hiện max

Trang 34

pooling lấy ra một giá trị

Hình 1.23: ROI pooling Thực hiện ROI pooling

Ta có thể thấy là kích thước sau khi thực hiện ROI pooling về đúng h×k như ta mong muốn

1.4.3.2 Đánh giá giữa R_CNN và Fast R-CNN

So sánh thời huấn luyện và test giữa R-CNN và Fast R-CNN [10]

Hình 1.24: So sánh thời gian huấn luyện và kiểm tra giữa R-CNN và Fast R-CNN Fast R-CNN khác với R-CNN là nó thực hiện bản đồ đặc trưng với các ảnh sau

đó mới lấy các khu vực ra từ bản đồ đặc trưng, còn R-CNN thực hiện tách các khu vực

ra rồi mới thực hiện CNN trên từng khu vực Do đó Fast R-CNN nhanh hơn đáng kể nhờ tối ưu, việc tính toán bằng Vectorization

Tuy nhiên hình 18 ta thấy ở phần kiểm tra thời gian với mục Fast R-CNN thì thời gian tính khu vực rất lâu và làm chậm thuật toán Cần thay thế thuật toán tìm kiếm

Trang 35

chọn lọc Giờ người ta nghĩ đến việc dùng deep learning để tạo ra khu vực và Faster CNN [8] ra đời

R-1.4.4 Mạng Nơ ron tích chập khu vực nhanh hơn (Faster R-CNN)

Faster R-CNN [8], [9] không dùng thuật toán tìm kiếm chọn lọc để lấy ra các khu vực, mà nó thêm một mạng CNN mới gọi là RPN để tìm các khu vực

Hình 1.25: Mô hình ROI pooling Đầu tiên cả bức ảnh được cho qua mô hình huấn luyện trước để lấy bản đồ đặc trưng Sau đó bản đồ đặc trưng được dùng cho RPN để lấy được các khu vực Sau khi lấy được vị trí các khu vực thì thực hiện tương tự Fast R-CNN [7]

Đầu vào của RPN là bản đồ đặc trưng và đầu ra là các khu vực Ta thấy các khu vực là hình chữ nhật

Hình 1.26: Lấy vị trí

Mà một hình chữ nhật được xác định bằng 2 điểm ở 2 góc, ví dụ A (x_min, y_min) và B (x_max, y_max) Nhận xét:

- Khi RPN dự đoán ta phải ràng buộc x_min < x_max và y_min < y_max

- Hơn nữa các giá trị x, y khi dự đoán có thể ra ngoài khỏi bức ảnh

Trang 36

Nên Cần một kỹ thuật mới để biểu diễn khu vực Anchor ra đời

Ý tưởng là thay vì dự đoán 2 góc ta sẽ dự đoán điểm trung tâm (x_center, y_center) và width, height của hình chữ nhật Như vậy mỗi anchor được xác định bằng

4 tham số (x_center, y_center, width, height)

Vì không sử dụng tìm kiếm chọn lọc nên RPN ban đầu cần xác định các anchor box có thể là khu vực, sau đó qua RPN thì chỉ đầu ra những anchor box chắc chắn chứa vật thể [12]

Hình 1.27: Vị trí sliding window Ảnh bên trái kích thước 400×600 pixel, các tâm của anchor box màu xanh, cách nhau 16 pixel, vậy có khoảng (400×600)/ (16×16) = 938 tâm Do các vật thể trong ảnh

có thể có kích thước và tỉ lệ khác nhau nên với mỗi tâm ta định nghĩa 9 anchors với kích thước 64×64, 128×128, 256×256, mỗi kích thước có 3 tỉ lệ tương ứng: 1:1, 1:2 và 2:1

Giống như hình bên phải với tâm ở giữa 3 kích thước ứng với màu da cam, xanh lam, xanh lục và với mọi kích thước có 3 tỉ lệ

Vậy số lượng anchor box giờ là 938×9 = 8442 anchors Tuy nhiên sau RPN ta chỉ giữ lại khoảng 1000 anchors box để thực hiện như trong Fast R-CNN

Việc của RPN là lấy ra các khu vực giống như tìm kiếm chọn lọc nhưng không phải là phân loại ảnh

Mô hình RPN khá đơn giản, bản đồ đặc trưng được cho qua Conv layer 3×3, 512 kernels Sau đó với mỗi anchor lấy được ở trên, RPN thực hiện 2 bước:

- Dự đoán xem anchor đấy là mặt nổi (chứa vật thể) hay nền (không chứa vật thể)

- Dự đoán 4 giá trị cho x_center, y_center, width, height cho các anchor

Nhận xét: có rất nhiều anchor bị chồng lên nhau nên non-maxima suppression được dùng để loại bỏ các anchor chồng lên nhau

Sau cùng dựa vào phần trăm dự đoán nền RPN sẽ lấy N anchor (N có thể 2000,

1000, thậm chí 100 vẫn chạy tốt) để làm khu vực

Trang 37

Hình 1.28: Các khu vực RPN

1.4.4.1 Giao nhau giữa hai hộp giới hạn

IoU (Intersection over Union) được sử dụng trong bài toán phát hiện đối tượng (object detection), để đánh giá xem hộp giới hạn (bounding box) dự đoán đối tượng

khớp với thực địa (ground truth) thật của đối tượng

Hình 1.29: Hệ số IoU Nhận xét:

 Chỉ số IoU trong khoảng [0,1]

 IoU càng gần 1 thì bounding box dự đoán càng gần ground truth

Hình 1.30: Mô tả hệ số IoU Ngoài ra thì hệ số IoU cũng được dùng để đánh giá độ khớp của 2 hình chữ nhật

Trang 38

1.4.4.2 Kết quả của Faster R-CNN

Bước 2: Bản đồ đặc trưng được dùng cho Region proposal network

Bước 3: Sau đó lấy cấc vị trí khu vực

Bước 4: Thay đổi kích thước đặc trưng về một kích thước cố định

Bước 5: Lớp kết nối các đặc trưng lại với nhau

Bước 6: Chia ra hai lớp kết nối

Bước 7: Đầu ra là các lớp và khung ranh giới

Ngày đăng: 25/04/2021, 16:48

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] J. Bouvrie, “Notes on Convolutional Neural Networks,” Massachusetts Inst. Technol. Cambridge, MA 02139, 2006 Sách, tạp chí
Tiêu đề: Notes on Convolutional Neural Networks,” "Massachusetts Inst. "Technol. Cambridge, MA 02139
[2] S. Tang, “Object Detection based on Convolutional Neural Network,” p. 8, 2015 Sách, tạp chí
Tiêu đề: Object Detection based on Convolutional Neural Network
[3] T. Liu, S. Fang, Y. Zhao, P. Wang, and J. Zhang, “Implementation of Training Convolutional Neural Networks,” arXiv:1506.01195v2, 2015 Sách, tạp chí
Tiêu đề: Implementation of Training Convolutional Neural Networks,” "arXiv:1506.01195v2
[4] R. Girshick, J. Donahue, T. Darrell, and J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation,” Proc. IEEE Comput. Soc.Conf. Comput. Vis. Pattern Recognit., pp. 580–587, 2014 Sách, tạp chí
Tiêu đề: Rich feature hierarchies for accurate object detection and semantic segmentation,” "Proc. IEEE Comput. Soc. "Conf. Comput. Vis. Pattern Recognit
[6] J. Liu, D. Wang, Z. Wei, L. Lu, L. Kim, and R. Summers, “Colitis detection on computed tomography using regional convolutional neural networks,” 2016 IEEE 13th Int. Symp. Biomed. Imaging, pp. 863–866, 2016 Sách, tạp chí
Tiêu đề: Colitis detection on computed tomography using regional convolutional neural networks,” "2016 IEEE 13th Int. Symp. Biomed. Imaging
[7] R. Girshick, “Fast R-CNN,” Proc. IEEE Int. Conf. Comput. Vis., vol. 2015 Inter, pp. 1440–1448, 2015 Sách, tạp chí
Tiêu đề: Fast R-CNN,” "Proc. IEEE Int. Conf. Comput. Vis
[8] S. Ren, K. He, R. Girshick, and J. Sun, “Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks,” IEEE Trans. Pattern Anal.Mach. Intell., vol. 39, no. 6, pp. 1137–1149, 2017 Sách, tạp chí
Tiêu đề: Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks,” "IEEE Trans. Pattern Anal. "Mach. Intell
[9] R. Gavrilescu, C. Fo, C. Zet, and D. Cotovanu, “Faster R-CNN : an Approach to Real-Time Object Detection,” 2018 Int. Conf. Expo. Electr. Power Eng., pp.165–168, 2018 Sách, tạp chí
Tiêu đề: Faster R-CNN : an Approach to Real-Time Object Detection,” "2018 Int. Conf. Expo. Electr. Power Eng
[10] F. R.-C. R-CNN, Fast R-CNN, “R-CNN Test-Time Speed,” [Online].Available: https://towardsdatascience.com/r-cnn-fast-r-cnn-faster-r-cnn-yolo-object-detection-algorithms-36d53571365e Sách, tạp chí
Tiêu đề: R-CNN Test-Time Speed
[11] Internet, “‘Neural Networks and Deep learning,’” [Online].Available: http://neuralnetworksanddeeplearning.com/index.html, 2015. [Online].Available: http://neuralnetworksanddeeplearning.com/chap4.html Sách, tạp chí
Tiêu đề: ‘Neural Networks and Deep learning,’” "[Online].Available: "http://neuralnetworksanddeeplearning.com/index.html
[12] L. OpenCV, “Selective Search for Object Detection (C++ / Python),” 2017. [Online]. Available: https://www.learnopencv.com/selective-search-for-object-detection-cpp-python/ Sách, tạp chí
Tiêu đề: Selective Search for Object Detection (C++ / Python)
[13] W. Pages, “Phần mềm CUDA,” [Online].Available: https://developer.nvidia.com/cuda-gpus Sách, tạp chí
Tiêu đề: Phần mềm CUDA
[14] W. Pages, “Phần mềm Anaconda,” [Online].Available: https://nttuan8.com/huong-dan-cai-dat-anaconda/ Sách, tạp chí
Tiêu đề: Phần mềm Anaconda
[15] W. Pages, “Phần mềm Python,” [Online].Available: https://quantrimang.com/cach-cai-dat-python-tren-windows-macos-linux-140625 Sách, tạp chí
Tiêu đề: Phần mềm Python
[16] W. Pages, “Phần mềm Tensorflow,” [Online].Available: https://vn.apps- gcp.com/huong-da%CC%83n-cai-da%CC%A3t-tensorflow-tren-window/ Sách, tạp chí
Tiêu đề: Phần mềm Tensorflow
[17] G. Drive, “Hinh anh huan luyen mo hinh.rar,” [Online].Available: https://drive.google.com/open?id=1I5Fs9A9KmlcsjVrH2IH_0odIIZLABlBd Sách, tạp chí
Tiêu đề: Hinh anh huan luyen mo hinh.rar
[18] G. Drive, “Tap du lieu gan nhan hoan thien.rar,” [Online].Available: https://drive.google.com/open?id=1ZragyFEifpJb6I61MDzoiHe5aJpqQdFu Sách, tạp chí
Tiêu đề: Tap du lieu gan nhan hoan thien.rar

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w