LỜI CAM ĐOAN .i
LỜI CẢM ƠN. ii
MỤC LỤC . iii
DANH MỤC HÌNH VẼ.vi
DANH MỤC BẢNG BIỂU.x
DANH MỤC VIẾT TẮT.xi
LỜI MỞ ĐẦU.1
Lý do chọn đề tài.1
Cơ sở khoa học và thực tiễn của đề tài.1
Mục tiêu của luận văn.2
Cấu trúc luận văn.3
CHƯƠNG 1. .4
TỔNG QUAN VỀ MẠNG NƠ RON .4
VÀ GIỚI THIỆU VỀ MẠNG NƠ RON TÍCH CHẬP.4
1.1. Nơ ron nhân tạo .4
1.1.1 Lịch sử của nơ ron nhân tạo.4
1.1.2 Cấu tạo và quá trình xử lý của một nơ ron sinh học.5
1.1.3 Cấu tạo và quá trình xử lý của một nơ ron nhân tạo .5
1.1.4. Các mô hình hàm kích hoạt của mạng nơ ron nhân tạo .8
1.2 Mạng nơ ron nhân tạo .11
1.2.1 Giới thiệu mạng nơ ron nhân tạo.11
1.2.2 Một số kiểu mạng nơ ron .11
1.2.3 Mạng nơ ron lan truyền ngược.13
1.3 Mạng nơ ron tích chập .18
1.3.1 Khái niệm về mạng nơ ron tích chập.18
86 trang |
Chia sẻ: honganh20 | Ngày: 15/03/2022 | Lượt xem: 358 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Luận văn Nghiên cứu về mạng neural convolutional, áp dụng vào bài toán nhận dạng đối tượng trong lĩnh vực thị giác máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
i đầu vào x. Để đạo hàm dễ dàng, ta
nhân tổng của (4) với một hằng số 1/2.
Để tìm ra mức tối thiểu. Trước tiên, ta tính toán các đạo hàm riêng của hàm chi phí
đối với bất kỳ trọng số nào, với công thức sau:
Có hai trường hợp: Nút là một nút đầu ra hoặc trong một tầng ẩn. Trong trường
hợp ở tầng đầu ra, trước tiên chúng ta tính đạo hàm chênh lệch:
Phương trình cuối cùng dựa trên quy tắc chuỗi. Nút là nút duy nhất có trọng số
nên các giá trị khác sẽ bằng 0. Và là đầu ra của hàm kích hoạt (hàm Sigmoid). Do
đó, phương trình mới thu được là:
Trong đó
L
kx sự kết hợp tuyến tính của tất cả các đầu vào của nút j trong tầng L với
các trọng số. Hàm sigmoid là đạo hàm có dạng sau:
15
Do đó, hàm trên trở thành:
Vì
1
1
L L
ik i
L
k
i L
x yW
. Vì vậy, (9) trở thành:
(10)
Vì liên quan đến và không liên quan khi khác . Do đó, có mối
quan hệ giữa nút của tầng và nút của tầng . Ta có công thức:
để biểu diễn nút của tầng . Do vậy, phương trình mới thu được là:
Ta xem xét các nút của tầng ẩn . Ở lớp ngay trước lớp đầu ra. Áp dụng đạo
hàm riêng một phần trên trọng số cho hàm chi phí. Các trọng số cho các nút của tầng ẩn
này:
16
Vì có một tổng trên tầng. Do thay đổi của các trọng số cho các nút của các
tầng ẩn sẽ ảnh hưởng đến đầu ra mạng nơ ron. Do đó, áp dụng quy tắc chuỗi (chain rule):
Sau đó, đạo hàm theo quy tắc chuỗi:
Dòng thứ 2 của (14) dựa vào đầu vào của là sự kết hợp tuyến tính giữa các đầu
ra của nút của lớp trước với trọng số. Vì đạo hàm không liên quan đến nút của lớp L.
Do đó, ta đơn giản hóa đạo hàm dựa trên quy tắc chuỗi:
Chuyển thành . Do đó phương trình trở thành:
Ta xét 2 trường hợp:
17
Đối với tầng đầu ra nút k: , trong đó:
Đối với tầng ẩn nút j: , trong đó:
Áp dụng quy trình tương tự. Ví dụ, Tính đạo hàm riêng cho độ lệch của nút k trong
lớp cuối cùng và thu được:
Bởi vì nên . Phương trình có thể được cập nhật
thành:
Công thức trên áp dụng với bất kể đầu ra nào. Vì vậy, độ dốc của hàm chi phí so
với độ lệch là:
Rút ra từ công thức trên, giải thuật loan truyền ngược sẽ được mô tả như sau:
Bước 1: Chạy mạng tính toán với dữ liệu đầu vào để có được đầu ra mạng
Bước 2: Đối với mỗi nút đầu ra, ta thực hiện phép tính:
Bước 3: Đối với mỗi nút ở tầng ẩn, ta thực hiện phép tính:
18
Bước 4: Cập nhật các trọng số và thiên lệch như sau:
Giả thiết:
Áp dụng:
Tham số trong thuật toán được gọi là tốc độ học tập. Thuật toán này lặp lại cho
đến khi đạt sai số tối thiểu hoặc dưới ngưỡng chấp nhận được để hoàn thành quá trình
huấn luyện.
1.3 Mạng nơ ron tích chập
1.3.1 Khái niệm về mạng nơ ron tích chập
Mạng nơ ron tích chập là một trong những mạng truyền thẳng đặc biệt. Mạng nơ
ron tích chập là một mô hình học sâu phổ biến và tiên tiến nhất hiện nay. Hầu hết các hệ
thống nhận diện và xử lý ảnh hiện nay đều sử dụng mạng nơ ron tích chập vì tốc độ xử lý
nhanh và độ chính xác cao. Trong mạng nơ ron truyền thống, các tầng được coi là một
chiều, thì trong mạng nơ ron tích chập, các tầng được coi là 3 chiều, gồm: chiều cao,
chiều rộng và chiều sâu (Hình 1.11). Mạng nơ ron tích chập có hai khái niệm quan trọng:
kết nối cục bộ và chia sẻ tham số. Những khái niệm này góp phần giảm số lượng trọng số
cần được huấn luyện, do đó tăng nhanh được tốc độ tính toán.
Hình 1.16: Các tầng (layer) trong CNN là 3 chiều
19
Hình 1.17: Hình minh họa một ví dụ sử dụng CNN để phân lớp đồ vật [20]
1.3.2 Mô hình mạng nơ ron tích chập
Có ba tầng chính để xây dựng kiến trúc cho một mạng nơ ron tích chập:
1. Tầng tích chập;
2. Tầng gộp (pooling layer);
3. Tầng được kết nối đầy đủ (fully-connected).
Tầng kết nối đầy đủ giống như các mạng nơ ron thông thường, và tầng chập thực
hiện tích chập nhiều lần trên tầng trước. Tầng gộp có thể làm giảm kích thước mẫu trên
từng khối 2x2 của tầng trước đó. Ở các mạng nơ ron tích chập, kiến trúc mạng thường
chồng ba tầng này để xây dựng kiến trúc đầy đủ. Ví dụ minh họa về một kiến trúc mạng
nơ ron tích chập đầy đủ:
Hình 1.18: Ví dụ minh họa về cấu trúc CNNs – LeNet – 5[19]
20
1.3.2 Xây dựng mạng nơ ron tích chập
1.3.2.1 Mạng được kết nối cục bộ
Trong xử lý hình ảnh, thông tin của hình ảnh là các điểm ảnh (pixel). Nếu sử dụng
mạng được kết nối đầy đủ, chúng ta sẽ có rất nhiều tham số. Ví dụ, một hình ảnh RGB có
kích thước 512x512 pixel sẽ có 786432 (= 512 x 512 x 3) tham số đầu vào. Vì vậy, nếu
chúng ta sử dụng kiến trúc mạng nơ ron trong hình sau:
Hình 1.19: Hình ảnh một mạng nơ ron được kết nối đầy đủ
Hình trên cho thấy nếu áp dụng mạng nơ ron được kết nối đầy đủ, toàn bộ kiến trúc
mạng sẽ cần tính toán hơn 3 triệu nơ ron. Số lượng lớn các nơ ron làm cho toàn bộ quá
trình học rất chậm và dẫn đến quá tải so với khả năng tính toán của máy tính hiện tại.
Qua một vài nghiên cứu về xử lý ảnh, các nhà nghiên cứu nhận thấy rằng các tính
năng trong một hình ảnh thường là cục bộ, và các nhà nghiên cứu chú ý đến các tính năng
cấp thấp đầu tiên khi xử lý ảnh. Vì vậy, kiến trúc mạng có thể chuyển mạng được kết nối
đầy đủ sang mạng được kết nối cục bộ, nhằm làm giảm độ phức tạp của tính toán. Đây là
một trong những ý tưởng chính trong CNN. Chúng ta có thể thấy rõ hơn qua hình sau:
Hình 1.20: Tích chập một ma trận nhỏ để tạo ra dữ liệu đầu vào cho một nơ ron
tầng ẩn
Giống như xử lý hình ảnh thông thường, chúng ta có thể kết nối cục bộ một khối
vuông ma trận với nơ ron. Kích thước khối thông thường là 3x3, 5x5, hoặc 7x7. Ý nghĩa
vật lý của khối giống như một cửa sổ trượt (cửa sổ trượt là một trong những phương pháp
21
xử lý ảnh). Bằng cách đó, số lượng tham số có thể giảm xuống rất nhỏ nhưng không gây
ra giảm hoặc mất thông tin, vì hình ảnh thông thường thường có tính lặp trong không
gian. Để trích xuất nhiều thông tin hơn, các mạng nơ ron kết nối khối cùng với một nơ ron
khác. Độ sâu trong các tầng là số lần chúng ta kết nối một khu vực với các nơ ron khác
nhau. Ví dụ, mạng kết nối cùng một khu vực với 5 nơ ron khác nhau. Vì vậy, độ sâu là
năm trong tầng mới. Chúng ta có thể thấy rõ hơn qua hình sau:
Hình 1.21: Ví dụ về lớp tích chập
Trong thực tế, có thể kết nối tất cả thông tin độ sâu (ví dụ: kênh 3 RGB) với nơ ron
tiếp theo vì kết nối là cục bộ trong không gian và có chiều sâu đầy đủ. Tuy nhiên ở ví dụ
này chỉ kết nối thông tin cục bộ về chiều cao và chiều rộng. Vì vậy, có thể có
các tham số trong hình trên cho nơ ron sau lớp màu xanh nếu chúng ta sử dụng cửa sổ
. Biến thứ nhất và thứ hai là chiều cao và chiều rộng của kích thước cửa sổ và biến
thứ ba là độ sâu của lớp.
Ví dụ này di chuyển cửa sổ bên trong hình ảnh và làm cho tầng tiếp theo cũng có
chiều cao và chiều rộng, và là một hai chiều. Ví dụ: nếu chúng ta di chuyển cửa sổ 1 pixel
mỗi lần, gọi là bước nhảy là 1, trong một hình ảnh và kích thước cửa sổ là
sẽ có các nơ ron ở tầng tiếp theo. Có thể thấy rằng, kích
thước đã giảm từ 32 xuống 28. Vì vậy, để bảo toàn kích thước, chúng ta thêm phần trống
vào đường viền. Quay lại ví dụ trên, nếu chúng ta đệm với 2 pixel, có
các nơ ron ở lớp tiếp theo để giữ kích thước chiều cao và chiều
rộng. Như ví dụ trên, nếu chúng ta sử dụng kích thước cửa sổ w, chúng ta sẽ có 1 vùng
được tích chập với kích cỡ của cửa sổ mới là pixel. Thông tin đường viền sẽ
không ảnh hưởng nhiều vì những giá trị đó chỉ được sử dụng một lần.
22
Phần kế tiếp sẽ chi tiết hơn về bước nhảy của cửa sổ trượt, tức khoảng cách thay
đổi của cửa sổ mỗi lần. Ví dụ: giả sử bước nhảy là 2 và cửa sổ trượt bao phủ vùng
Sau đó, cửa sổ thứ hai bao phủ vùng và cửa sổ thứ 3 bao phủ vùng
Ví dụ, nếu chúng ta sử dụng bước nhảy 1 và kích thước cửa sổ trong hình
ảnh và không sử dụng bù viền (pad-zero), thì chúng ta sẽ có
các nơ ron ở lớp tiếp theo. Nếu chúng ta thay đổi bước nhảy 1 thành
bước nhảy 2 và những tham số khác vẫn giữ nguyên, thì chúng ta sẽ có có
những nơ ron ở lớp tiếp theo. Chúng ta có thể kết luận rằng nếu chúng
ta sử dụng bước nhảy s, kích thước cửa sổ trong ảnh , thì sẽ có
các nơ ron ở lớp tiếp theo. Khi
chúng ta sử dụng bước nhảy 3 và những tham số khác vẫn giữ nguyên thì chúng ta sẽ
nhận được Vì kết quả không phải là số nguyên, nên bước nhảy 3
không thể dùng vì chúng ta không thể có được một khối hoàn chỉnh trong một mạng nơ
ron.
1.3.2.2 Chia sẻ tham số
Trong ví dụ minh họa của mục 1.3.2.1, ta sẽ có số lượng là nơ ron
ở tầng tiếp theo có bước nhảy 1, kích thước cửa sổ 5 x 5 và không có đệm, với độ sâu là 5.
Mỗi nơ ron sẽ có tham số. Vì vậy, trong tầng tiếp theo sẽ có
tham số. Ở đây, chúng ta có thể chia sẻ các tham số
theo từng độ sâu, do đó nơ ron ở mỗi tầng ẩn sẽ sử dụng tham số giống nhau là
, và tổng tham số sử dụng cho mỗi tầng là . Điều này làm số
lượng tham số giảm một cách đáng kể. Tương tự, các nơ ron ở mỗi độ sâu trong tầng tiếp
theo sẽ áp dụng tích chập cho tầng trước đó. Và quá trình học tập giống như học lõi (core)
tích chập. Đây là lý do mà các mạng nơ ron này được gọi là mạng nơ ron tích chập.
1.3.2.3 Hàm kích hoạt
Trong mô hình nơ ron truyền thống, các mạng thường sử dụng hàm sigmoid cho
hàm kích hoạt. Tuy nhiên Krizhevsky [21] đã thử với hàm kích hoạt RELU. Sau khi so
23
sánh hiệu quả của hàm kích hoạt RELU và hàm kích hoạt sigmoid trong CNNs. Họ thấy
rằng mô hình với RELU cần ít thời gian lặp hơn trong khi đạt tỷ lệ lỗi khi huấn luyện
tương đương. Chúng ta có thể thấy kết quả trong hình sau:
Hình 1.22: So sánh giữa ReLU và Sigmoid.
Như hình trên, đường liền nét là mô hình sử dụng RELU và đường đứt nét là sử
dụng hàm Sigmoid. Có thể dễ dàng thấy rằng, RELU cần ít vòng lặp hơn để đạt tỉ lệ lỗi
chấp nhận được. Do đó, ngày nay đa số các mô hình CNN gần đây sử dụng RELU để làm
hàm kích hoạt.
1.3.2.4. Tầng gộp
Tầng gộp sẽ giảm kích cỡ của hình ảnh ngay sau khi thực hiện tích chập, giúp giữ
lại các đặc điểm, tính chất nổi bật nhất của ảnh. Điều này cho phép giảm mức độ tính toán
khi hình ảnh có kích thước quá lớn, đồng thời không làm mất đi các đặc điểm quan trọng
của ảnh.
Tuy đã sử dụng các mạng được kết nối cục bộ và chia sẻ tham số, tuy nhiên số
lượng tham số trong mang nơ ron vẫn là quá lớn. So với một tập dữ liệu tương đối nhỏ, nó
có thể gây ra tình trạng quá khớp (overfitting). Vì vậy, mạng nơ ron nhân tạo thường chèn
các tầng gộp vào mạng. Tầng gộp xử lý để giảm dần số lượng tham số nhằm cải thiện thời
gian tính toán trong mạng nơ ron. Tầng gộp áp dụng lấy mẫu xuống cho tầng trước bằng
cách sử dụng hàm max. Tầng gộp hoạt động độc lập trên mỗi tầng trước đó. Ngoài ra, có
24
thể đặt lượng pixel khi chúng ta di chuyển cửa sổ trượt hoặc bước nhảy, như làm với tầng
tích chập. Ví dụ, trong hình sau:
Hình 1.23: Ví dụ minh họa đơn giản về tầng gộp
Ở ví dụ trên, kích thước cửa sổ trượt là và bước nhảy mỗi lần trượt là 2. Tại
mỗi cửa sổ, hàm max sẽ lấy giá trị tối đa để đại diện cho giá trị của tầng tiếp theo. Có hai
loại tầng gộp: Nếu kích thước cửa sổ trượt bằng bước nhảy, đó là gộp chung (traditional
pooling). Nếu kích thước cửa sổ trượt lớn hơn bước nhảy, đó là gộp nhóm (overlapping
pooling). Trong thực tế, các mạng nơ ron thường sử dụng kích thước cửa sổ cùng
kích thước bước nhảy là 2 trong gộp chung và sử dụng kích thước cửa sổ cùng
kích thước bước nhảy là 2 trong gộp nhóm, vì nếu tăng kích cỡ cửa sổ sẽ rất dễ làm mất
các đặc tính của dữ liệu.
Ngoài việc gộp sử dụng hàm max, người ta có thể sử dụng các hàm khác. Ví dụ
người ta có thể sử dụng hàm tính trung bình của cửa sổ trượt để tính toán giá trị cho tầng
tiếp theo, được gọi là gộp trung bình.
1.3.2.5. Tầng được kết nối đầy đủ
Tầng thứ ba là tầng được kết nối đầy đủ. Tầng này giống như mạng nơ ron truyền
thống: các nơ ron ở tầng trước sẽ kết nối với một nơ ron ở tầng tiếp theo và tầng cuối
cùng là đầu ra. Để có thể đưa hình ảnh từ những tầng trước vào, ta phải dàn phẳng dữ liệu
ra thành một véc tơ nhiều chiều. Cuối cùng là sử dụng hàm softmax để thực hiện phân
loại đối tượng
25
Hình 1.24: Một ví dụ của lớp được kết nối đầy đủ
1.3.2.6 Mô hình quá khớp
Cấu trúc của một mạng CNN rất lớn, trong mạng có rất nhiều nơ ron, kết nối,
cũng như có rất nhiều trọng số cần thiết để huấn luyện. Nhưng lượng dữ liệu huấn luyện
thường không đủ để huấn luyện hoàn thiện cho một mạng nơ ron lớn. Nó có thể gây ra
một số vấn đề về quá khớp, khiến cho khi huấn luyện có kết quả rất cao, nhưng áp dụng
thực tế gây ra sai số lớn. Có một số kỹ thuật để cải thiện điều này.
Hình 1.25: Ví dụ về trường hợp quá khớp (bên trái) và trường hợp chuẩn (bên phải)
Một trong những phương pháp đó là là giảm trọng số trong lúc huấn luyện.
Dropout là một trong những kỹ thuật nổi tiếng và khá phổ biển để khắc phục vấn đề này.
Dropout đặt đầu ra của mỗi nơ ron ẩn thành 0 với xác suất 0,5. Vì vậy, các nơ ron này sẽ
không đóng góp vào lan truyền tiến, do đó và sẽ không tham gia vào lan truyền ngược.
Thông thường, đối với các đầu vào khác nhau, mạng nơ ron xử lý dropout theo một cấu
trúc khác nhau.
Một cách khác để cải thiện việc việc quá khớp là tăng lượng dữ liệu. Chúng ta có
thể phản chiếu hình ảnh, lộn ngược hình ảnh, lấy mẫu hình ảnh, v.v. Những cách này sẽ
tăng số lượng dữ liệu huấn luyện. Vì vậy, nó có khả năng ngăn chặn quá khớp. Với ví dụ
thực tế, trong một vài dự án, các bức ảnh được sử dụng để huấn luyện đã được xử lý thêm
26
bước xoay, với mỗi lần từ 15 đến 20 độ cũng như áp dụng thêm phương pháp phản chiếu
bức ảnh. Kết quả, hệ thống AI đã phát hiện cải thiện đáng kể việc nhận diện.
1.3.2.7. Một số mạng tích chập nổi tiếng
Có một số kiến trúc mạng nơ ron tích chập nổi tiếng. Một số thử nghiệm cho thấy
chúng có hiệu suất tốt hơn. Vì vậy, đôi khi nhiều người sử dụng mạng được thiết kế sẵn
thay vì tự thiết kế mạng. Ở các phần sau luận văn sẽ giới thiệu một vài mạng tích chập nổi
tiếng và thông dụng hiện nay.
AlexNet
Hình 1.26: Cấu trúc của AlexNet
Alex đã phát triển mạng này vào năm 2012. Cho tới thời điểm hiện tại, AlexNet
vẫn còn đang được sử dụng phổ biến và rộng rãi. Mạng AlexNet có năm lớp chập và ba
lớp kết nối đầy đủ. Cấu trúc trong AlexNet được chia thành hai khối. Nguyên nhân vì tác
giả đã sử dụng hai GPU để huấn luyện dữ liệu song song. Mạng này được sử dụng trong
phân loại đối tượng quy mô lớn. Lớp đầu ra có một nghìn nơ ron. Đó là bởi vì kiến trúc
ban đầu được thiết kế để phân loại một nghìn nhãn. Thông thường, những người áp dụng
kiến trúc mạng nơ ron AlexNet sẽ thay thế lớp cuối cùng, phụ thuộc vào mục đích của họ.
Tác giả của mạng này đã làm nhiều thử nghiệm để có thể ra được mô hình này có kết quả
tốt nhất. Vì vậy, hiệu suất của cấu trúc này rất ổn định và mạng này được sử dụng rộng rãi
trong nhiều ứng dụng.
VGGNet
VGGNet [10] được phát triển vào năm 2014 và đã giành chiến thắng trong cuộc thi
ILSVRC-2014. Mạng này mạnh hơn mạng AlexNet nhưng rất sâu. Mạng này có 16 đến
19 tầng (Hình 1.21). Mạng này đã được thiết kế với 5 cấu trúc. Sau một số thí nghiệm, D
và E là cấu trúc tốt nhất. Hiệu suất của E tốt hơn một chút so với B. Nhưng các tham số
trong E lớn hơn D. Vì vậy, người sử dụng có thể chọn một trong số cấu trúc mạng dựa
trên những gì họ cần. Đặc điểm của VGGNet là việc áp dụng nhiều lớp chập với kích
27
thước cửa sổ nhỏ thay vì lớp chập với kích thước cửa sổ lớn, sau đó là lớp gộp. Nó làm
cho mạng linh hoạt hơn.
Hình 1.27: Cấu trúc của VGGNet
1.4 Kết luận
Mạng nơ ron nhân tạo là một chuỗi các thuật toán được sử dụng để tìm ra mối
quan hệ của một tập dữ liệu thông qua cơ chế vận hành của bộ não sinh học. Mạng nơ ron
nhân tạo thường được huấn luyện qua một tập dữ liệu chuẩn cho trước, từ đó có thể đúc
rút được kiến thức từ tập dữ liệu huấn luyện, và áp dụng với các tập dữ liệu khác với độ
chính xác cao.
Các phương pháp sử dụng để huấn luyện mạng nơ ron nhân tạo ngày càng tối ưu
hơn về mặt tính toán và phục vụ cho nhiều mục đích khác nhau. Hiện nay, kiến trúc mạng
nơ ron ngày càng được hoàn thiện cho nhiều nhiệm vụ, trong đó mạng nơ ron tích chập
được chú ý rất nhiều vì tính hiệu quả trong thị giác máy tính. Mạng nơ ron tích chập với
các cải tiến góp phần giảm thời gian tính toán và tăng độ chính xác hứa hẹn sẽ là một
trong những phương pháp được áp dụng rất nhiều vào thực tế trong tương lai.
28
CHƯƠNG 2.
BÀI TOÁN NHẬN DẠNG BẰNG MẠNG NƠ RON TÍCH CHẬP
2.1 Khái niệm về nhận dạng
Nhận dạng là một ngành thuộc lĩnh vực trí tuệ nhân tạo. Nhận dạng mẫu là khả
năng phát hiện sự sắp xếp các đặc tính hoặc dữ liệu mang lại thông tin về một hệ thống
hoặc tập dữ liệu nhất định. Nhận dạng mẫu chia thành nhiều lĩnh vực trong công nghệ
thông tin, bao gồm phân tích dữ liệu lớn, nhận dạng sinh trắc học, bảo mật và trí tuệ nhân
tạo. Nhận dạng đối tượng trong hình ảnh là một nhánh của nhận dạng mẫu. Nhận dạng đối
tượng trong hình ảnh thể hiện qua các công nghệ máy tính có thể nhận ra người, động vật,
vật thể hoặc các đối tượng mục tiêu khác thông qua việc sử dụng các thuật toán và khái
niệm học máy.
2.1.1 Nhận dạng đối tượng
Một số khái niệm liên quan:
Nhận dạng đối tượng (object recognition) là một thuật ngữ chung để mô tả
một tập hợp các cách xử lý trong thị giác máy tính có liên quan đến việc xác
định các đối tượng trong ảnh kỹ thuật số.
Phân loại hình ảnh (image classification) liên quan đến việc dự đoán, phân
loại các lớp thông tin của một đối tượng trong một hình ảnh.
Khoanh vùng đối tượng (object localization) là việc xác định vị trí của một
hoặc nhiều đối tượng trong một hình ảnh bằng hình chữ nhật xung quanh
phạm vi của đối tượng bằng hộp chứa (bounding box).
Phát hiện đối tượng (object detection) kết hợp cả hai nhiệm vụ nhận dạng
đối tượng và khoanh vùng đối tượng. Phát hiện đối tượng là việc khoanh
vùng và phân loại một hoặc nhiều đối tượng khác nhau trong một hình ảnh.
Nhận dạng đối tượng khác với phát hiện đối tượng ở chỗ nhận dạng đối tượng
mang ý nghĩa rộng hơn, bao gồm cả việc phân loại hình ảnh (đòi hỏi thuật toán xác định
các lớp của đối tượng xuất hiện trong hình ảnh), cũng như phát hiện đối tượng (đòi hỏi
thuật toán khoanh vùng, định vị được tất cả các đối tượng có trong hình ảnh)
29
Hình 2.1: Sự khác biệt giữa nhận dạng đối tượng và phát hiện đối tượng
2.1.2 Nhận dạng khuôn mặt
Nhận dạng khuôn mặt là khả năng nhận diện, lưu trữ,so sánh và phân tích các mẫu
dựa trên đường nét khuôn mặt để nhận dạng người từ hình ảnh hoặc video. Hệ thống
thường sử dụng các công nghệ để thực hiện nhận dạng khuôn mặt như sử dụng sinh trắc
học để ánh xạ các đặc điểm khuôn mặt từ ảnh hoặc video. Hệ thống so sánh thông tin này
với một cơ sở dữ liệu đã lưu trữ về các khuôn mặt để tìm ra một kết quả khớp chính xác
Nhận dạng khuôn mặt ngày càng được quan tâm trong nhiều lĩnh vực, như Trung
Quốc có hệ thống Skynet để chấm điểm công dân, hay nhiều chuỗi cửa hàng lớn cũng sử
dụng nhận dạng khuôn mặt khách hàng thân thiết để phân tích thói quen tiêu dùng. Trên
thực tế, công nghệ nhận dạng khuôn mặt đã nhận được sự chú ý đáng kể vì nó có tiềm
năng cho một loạt các ứng dụng liên quan đến thực thi pháp luật cũng như các doanh
nghiệp khác.
Hình 2.2: Một minh họa về một số bản đồ đặc trưng của các lớp DC12, conv22, conv32, conv42 và
conv52 được đào tạo cho nhiệm vụ nhận dạng khuôn mặt.
30
2.2. Lịch sử và phát triển
Nhận dạng khuôn mặt tự động là một khái niệm tương đối mới, được phát triển vào
những năm 1960. Hệ thống bán tự động đầu tiên cho nhận dạng khuôn mặt cần quản trị
viên phải xác định được vị trí các điểm cần được đánh dấu (như mắt, tai, mũi và miệng)
trên các bức ảnh, sau đó tính toán khoảng cách và tỷ lệ đến một điểm tham chiếu chung,
cuối cùng đó được so sánh với dữ liệu để ra kết quả.
Vào những năm 1970, Goldstein, Harmon và Lesk1 sử dụng 21 loại thông tin cụ
thể, chẳng hạn như màu tóc và độ dày môi để tự động nhận dạng. Vấn đề với cả hai giải
pháp ban đầu này là các phép đo dựa trên vị trí, và cần sự tính toán thủ công của con
người để có thể vận hành.
Năm 1988, Kirby và Sirovich áp dụng phân tích các thành phần nổi bật, một kỹ
thuật đại số tuyến tính tiêu chuẩn vào việc nhận dạng khuôn mặt. Đây được coi là một
phần của cột mốc thay đổi vì dưới một trăm giá trị được yêu cầu mã hóa chính xác một
hình ảnh khuôn mặt được căn chỉnh và chuẩn hóa phù hợp.
Vào năm 1991, Turk và Pentland phát hiện ra rằng trong khi sử dụng kỹ thuật
thành phần riêng, lỗi dư (residual error) có thể được sử dụng để phát hiện khuôn mặt
trong hình ảnh - một khám phá có thể tạo ra được một hệ thống nhận diện khuôn mặt tự
động, thời gian thực và đáng tin cậy. Mặc dù cách tiếp cận có phần bị hạn chế bởi các yếu
tố máy móc của giai đoạn đó, nhưng nó đã tạo ra sự quan tâm đáng kể trong việc phát
triển công nghệ nhận dạng khuôn mặt tự động.
Công nghệ đầu tiên đã thu hút được sự chú ý rất lớn của truyền thông khi triển khai
thử nghiệm tại Super Bowl tháng 1 năm 2001, trong đó ghi lại hình ảnh từ camera giám
sát và so sánh chúng với một cơ sở dữ liệu kỹ thuật số. Sau sự kiện này, đã có các phân
tích về tính cần thiết của việc sử dụng công nghệ để hỗ trợ nhu cầu quốc gia, trong khi
vẫn quan tâm đến các mối quan tâm xã hội và quyền riêng tư của cộng đồng. Ngày nay,
công nghệ nhận dạng khuôn mặt đang được sử dụng để chống lại gian lận hộ chiếu, hỗ trợ
thực thi pháp luật, xác định trẻ em mất tích, và giảm thiểu gian lận danh tính.
2.3. Cách thức hoạt động
Phương pháp bao gồm các bước khác nhau để thực hiện nhận diện khuôn mặt tự
động. Đầu tiên là thực hiện phát hiện khuôn mặt để khoanh vùng khuôn mặt trong từng
khung hình ảnh và video. Sau đó, dữ liệu ở bước trên đuợc liên kết với các khuôn mặt
được phát hiện với danh tính chung trên các video và căn chỉnh các khuôn mặt thành tọa
độ bằng cách sử dụng các mốc được phát hiện. Cuối cùng, hệ thống thực hiện xác minh
31
khuôn mặt để tính toán độ tương tự giữa một cặp hình ảnh / video. Sơ lược phương pháp
được minh họa trong hình 2.3.
Hình 2.3: Tổng quan về phương pháp nhận dạng khuôn mặt người
bằng mạng nơ ron tích chập
Cụ thể, ta có thể xem xét ví dụ với thiết kế mạng ở hình 2.4 để rõ hơn về tổng quan
cách thức hoạt động:
Hình 2.4: Thiết kế mạng nơ ron để xử lý ảnh
Từ mạng nơ ron trên, ta có thể thấy các bước xử lý ảnh từ trái sang phải. Lần lượt,
ta có thể thấy hình ảnh các cửa sổ dò tìm (ô vuông màu xanh) đang giảm dần và hiệu
chỉnh dần theo từng giai đoạn dò tìm:
32
Hình 2.5: Các giai đoạn dò tìm và hiệu chỉnh
2.4 Phương pháp nhận dạng đối tượng từ ảnh chụp của camera
2.4.1 Nhận diện khuôn mặt
Tất cả các khuôn mặt trong khung hình ảnh / video được phát hiện bằng hệ thống
dò khuôn mặt dựa trên mạng nơ ron tích chập sâu (Deep Convolutional Neural Network –
DCNN), được gọi là Mô hình tháp sâu để phát hiện khuôn mặt (Deep Pyramid
Deformable Parts Model for Face Detection - DP2MFD) [38], bao gồm hai mô-đun. Mô-
đun đầu tiên tạo ra một hình tháp sâu được chuẩn hóa bảy cấp cho bất kỳ hình ảnh đầu
vào nào có kích thước tùy ý, như đã minh họa trong hình ảnh 2.3. Kiến trúc mạng nơ ron
tích chập tương tự như Alexnet, được sử dụng để trích xuất các tính năng sâu. Mạng hình
tháp này tạo ra một tháp gồm 256 bản đồ đặc trưng ở lớp tích chập thứ 5 (conv5). Bộ lọc
được áp dụng để có được lớp max5. Thông thường, cường độ kích hoạt cho một
vùng khuôn mặt giảm theo kích thước của cấp độ của tháp. Do đó, một khuôn mặt lớn
được phát hiện bởi cửa sổ trượt có kích thước cố đinh ở cấp độ tháp thấp hơn sẽ có điểm
phát hiện cao so với khuôn mặt nhỏ được phát hiện ở cấp độ tháp cao hơn. Để giảm độ
lệch này cho kích thước khuôn mặt, hệ thống áp dụng bước chuẩn hóa điểm z trên các
tính năng max5 ở mỗi cấp. Đối với vectơ đặc trưng 256 chiều ở cấp tháp i và vị trí
(j, k), tính năng chuẩn hóa được tính như sau:
Trong đó, là vectơ đặc trưng trung bình và là độ lệch chuẩn cho cấp độ tháp
i. Các tính năng max5 được chuẩn hóa là . Sau đó, các tính năng có độ dài từ mỗi
vị trí trong tháp được trích xuất bằng cách sử dụng phương pháp cửa sổ trượt. Mô-đun thứ
hai là một SVM tuyến tính (linear SVM), lấy các tính năng này làm đầu vào để phân loại
từng vị trí là mặt, hoặc không phải là mặt, dựa trên điểm được tính toán. Mô hình tháp sâu
33
để phát hiện khuôn mặt - DP2MFD có khả năng nhận diện rất tốt trên các độ sáng ảnh
khác nhau, cũng như kích cỡ khuôn mặt. Chúng ta có thể thấy thông qua ví dụ sau:
Hình 2.6: Kết quả phát hiện mẫu trên ảnh IJB-A bằng phương pháp tháp sâu
2.4.2 Phát hiện các điểm quan trọng trên khuôn mặt
Khi các khuôn mặt được phát hiện, thuật toán thực hiện phát hiện các điểm quan
trọng để căn chỉnh khuôn mặt. Thuật toán sẽ tìm cách khôi phục mặt về hình dáng mặc
định ban đầu: gọi khuôn mặt là I, hình dạng ban đầu là S0, thuật toán sẽ tính toán mức
tăng hình dạng ∆S từ các mô tả sâu (deep descriptors) và cập nhật bằng công thức sau:
Các tính năng CNN (được biểu thị là Φ trong công thức trên) đượ
Các file đính kèm theo tài liệu này:
- luan_van_nghien_cuu_ve_mang_neural_convolutional_ap_dung_vao.pdf