Tải bản đầy đủ (.doc) (38 trang)

BÁO CÁO CHUYÊN NGÀNH 2 Đề tài: Nhận diện khuôn mặt bằng Convolutional Neural Network. TS. Nguyễn Thanh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.02 MB, 38 trang )

ĐẠI HỌC ĐÀ NẴNG

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG VIỆT HÀN

BÁO CÁO CHUYÊN NGÀNH 2
Đề tài: Nhận diện khuôn mặt bằng
Convolutional Neural Network

Sinh viên thực hiện

: Lê Văn Ánh – 17IT2
Phùng Thế Hùng – 17IT3
Giảng viên hướng dẫn : TS. Nguyễn Thanh

Đà nẵng, tháng 05 năm 2021


MỞ ĐẦU
Trong Cách mạng Công Nghiệp 4.0, những yếu tố mà các nước đang phát triển
(Việt Nam, Lào, Indonesia….) tự hào là ưu thế như lực lượng lao động trẻ, dồi dào sẽ
khơng cịn là thế mạnh hơn nữa cịn có thể sớm bị thay thế bởi Trí tuệ nhân tạo (AI).
Trong tương lai, lực lượng lao động trong mọi lĩnh vực đều có thể mất việc làm bởi
cơng nghệ robot có thể tác động tới tất cả các ngành nghề từ dệt may, dịch vụ, giải trí
đến y tế, giao thơng, giáo dục...Chính vì vậy, đây là thời kỳ thuận lợi để sinh viên học
Công nghệ thông tin: Lập trình, Quản trị mạng, Bảo mật,.. thể hiện kiến thức, kỹ năng
và bản lĩnh trong thời đại mới – thời đại 4.0.
“Nhu cầu tuyển dụng nhân lực ngành CNTT cao nhất trong lịch sử" là nhận định
của VietnamWorks (Website tuyển dụng lớn nhất Việt Nam). Theo dự đoán của Top
Dev, năm 2020, Việt Nam sẽ cần 1.000.000 nhân lực ngành CNTT. Hơn 90% các nhà
tuyển dụng được khảo sát cũng chia sẻ, họ đang đấu tranh để tuyển dụng và giữ chân


các nhân viên IT giỏi.
Có thể thấy, ngành CNTT đang là “miền đất hứa” với cơ hội việc làm rộng mở và
mức lương hấp dẫn (khởi điểm 400$ - theo Vietnamworks). Chính vì vậy học CNTT
trong thời điểm hiện tại chính là lợi thế.
Đa số sinh viên đi học với mong muốn bổ sung kiến thức cho bản thân và đi sâu
vào các vấn đề liên quan. Do đó, em chọn đề tài Nhận dạng khuôn mặt bằng
Convolutional Neural Network.


LỜI CẢM ƠN
Trong thời gian làm đồ án, em đã nhận được nhiều sự giúp đỡ, đóng góp ý kiến và
chỉ bảo nhiệt tình của thầy cơ và bạn bè.
Em cũng xin chân thành cảm ơn các thầy cô trong Trường Đại học Công nghệ
Thông tin Và Truyền thông Việt Hàn, những người đã dạy dỗ và trang bị cho em khiến
thức để hoàn thành đề tài đồ án này.
Em xin cảm ơn giảng viên hướng dẫn TS. Nguyễn Thanh đã giúp đỡ em với sự
nhiệt huyết của mình, cũng như chỉ bảo những thiếu sót của em.


NHẬN XÉT TỪ GIẢNG VIÊN
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………

Chữ ký giảng viên


MỤC LỤC
Trang
MỞ ĐẦU................................................................................................................
Chương 1 Giới thiệu...................................................................................................1
1.1 Tổng quan.........................................................................................................1
1.2 Phương pháp, kết quả.......................................................................................1
1.3 Cấu trúc đồ án..................................................................................................1
Chương 2 Nghiên cứu tổng quan................................................................................3
2.1 Trí tuệ nhân tạo là gì ?......................................................................................3
2.2 Giới thiệu khái quát về ảnh...............................................................................3
2.2.1 Các khái niệm cơ bản về ảnh.....................................................................3
2.2.2 Các cách phân loại ảnh..............................................................................4
2.3 Tìm hiểu khái quát về ảnh................................................................................5
2.3.1 Nhận dạng hình ảnh là gì?.........................................................................5
2.3.2 Nguyên tắc làm việc của các mơ hình nhận dạng hình ảnh........................6
2.3.3 Thuật tốn sử dụng trong nhận dạng hình ảnh...........................................7
2.3.4 Những thách thức trong nhận dạng hình ảnh.............................................8
2.3.5 Cơng dụng của nhận dạng hình ảnh...........................................................8
2.4 Tìm hiểu Matlab.............................................................................................11
2.4.1 Khái niệm về Matlab................................................................................11
2.4.2 Hệ thống Matlab......................................................................................11
2.4.3 Ứng dụng của Matlab..............................................................................12
2.5 Tìm hiểu xử lý ảnh trong Matlab....................................................................12
2.5.1 Xử lý ảnh là gì?........................................................................................12
2.5.2 Các giai đoạn xử lý ảnh...........................................................................12
2.5.3 Xử lý ảnh trong Matlab............................................................................13
2.6 Tìm hiểu về Mạng nơ-ron tích chập (Convolutional Neural Network – CNN)

………………………………………………………………………………..16
2.6.1 Sơ lược về Mạng nơ-ron tích chập...........................................................16
2.6.2 Cấu trúc của mạng CNN.................................................................17
2.6.3 Mơ hình nhận dạng khn mặt dựa trên CNN.........................................18
Chương 3 Triển khai xây dựng.................................................................................21
3.1 Chương trình mơ phỏng..................................................................................21
3.1.1 Cơ sở dữ liệu ảnh...............................................................................21
3.1.2 Các bước thực hiện..................................................................................21
3.2 Kết quả mô phỏng..........................................................................................25
3.2.1 Kết quả train............................................................................................25
3.2.2 Kết quả test..............................................................................................26
3.3 Nhận xét kết quả đạt được..............................................................................28
Chương 4 Kết luận và hướng phát triển....................................................................29
4.1 Kết luận..........................................................................................................29
4.2 Hướng phát triển.............................................................................................29
TÀI LIỆU................................................................................................................


DANH MỤC HÌNH
Hình 1: Hình ảnh đối tượng đối với AI..........................................................................5
Hình 2: Hình ảnh và mức độ xác suất dự đốn..............................................................6
Hình 3: Một phần nhỏ của hình ảnh được biểu thị ở định dạng ma trận........................7
Hình 4: Hình ảnh máy bay khơng người lái...................................................................8
Hình 5: Hình ảnh máy móc trong khâu sản xuất ơ tơ.....................................................9
Hình 6: Hình ảnh xe tự hành..........................................................................................9
Hình 7: Hình ảnh áp dụng cộng nghệ giám sát tuần tra trong rừng..............................10
Hình 8: Các bước xử lý ảnh.........................................................................................12
Hình 9: Kiến trúc của một mạng CNN.........................................................................16
Hình 10: Phân lớp ảnh.................................................................................................17
Hình 11: Ví dụ Trường tiếp nhận cục bộ......................................................................17

Hình 12: Mơ phỏng Lớp tổng hợp...............................................................................18
Hình 13: Kiến trúc dạng khối của mơ hình CNN.........................................................19
Hình 14: Một ảnh đầu vào kích thước 100×90×1........................................................19
Hình 15: Hình ảnh sau khi xử lý của khối B2 và lớp nơron POOL..............................20
Hình 16: Tập ảnh.........................................................................................................21
Hình 17: Trained Network đã lưu................................................................................23
Hình 18: Kết quả truy cập Trained Network................................................................24
Hình 19: Kết quả squeezenet.......................................................................................25
Hình 20: Number of classes.........................................................................................25
Hình 21: Kết quả Train Progress..................................................................................26
Hình 22: Kết quả test lần 1..........................................................................................26
Hình 23: Kết quả test lần 2..........................................................................................27
Hình 24: Kết quả test lần 3..........................................................................................27


Chương 1

Giới thiệu

1.1 Tổng quan
Với sự phát triển nhanh chóng của ngành công nghệ thông tin và khả năng quay
video của các thiết bị như camera ngày càng tốt, kể cả trong điều kiện thiếu ánh sáng.
Thì việc áp dụng các hệ thống nhận dạng vào các thiết bị càng dễ dàng. Hiện nay, các
nước trên thế giới đã và đang xây dựng các hệ thống nhận dạng khuôn mặt có tỉ lệ sai
lệch rất nhỏ. Chẳng hạn như các quốc gia Mỹ, Australia, Áo, Bỉ, Pháp, Anh, Dubai...
Áp dụng kiến thức đã học để phát triển ứng dụng như trên là cần thiết. Bởi vì điều
này cho phép học thêm các công nghệ mới, rèn luyện kỹ năng lập trình, đồng thời
nâng cao kinh ngiệm và học thêm các kỹ năng quan trọng khác. Chính vì thế, em chọn
đề tài “Nhận dạng khuôn mặt bằng Convolutional Neural Network”.
Nhận dạng khuôn mặt bằng Convolutional Neural Network giúp người kiểm tra

biết được tên và thơng số nhận dạng chính xác theo tỷ lệ phần trăm của bức ảnh.

1.2 Phương pháp, kết quả
Phương pháp xây dựng ứng dụng sẽ bao gồm các bước sau:
 Tìm hiểu về các cơng nghệ đã và đang được ứng dụng để giải quyết bài tốn
trên.
 Tìm hiểu khái quát ảnh và xử lý ảnh.
 Nghiên cứu các ứng dụng về nhận dạng khn mặt đã có trong thực tế.
 Nghiên cứu các mã nguồn mở có hỗ trợ để giải quyết vấn đề nhận dạng khuôn
mặt có trong một bức ảnh

1.3 Cấu trúc đồ án
Phần tiếp theo của báo cáo bao gồm:
Chương 2: Nghiên cứu tổng quan
Trong chương này, em sẽ giới thiệu tổng quát về Trí tuệ nhân tạo (AI), nhận dạng
hình ảnh, OpenCV, Python, Matlab bao gồm:
 Trí tuệ nhân tạo (AI) là gì ?
 Giới thiệu khái quát về ảnh ?
 Tìm hiểu về nhận dạng ảnh ?
 Tìm hiểu về Matlab ?
 Tìm hiểu về xử lý ảnh với Matlab?
 Tìm hiểu về phân tích thành phần chính (Convolutional Neural Network CNN)

1


Chương 3: Triển khai xây dựng
Ở phần này em sẽ trình bày mơ hình tổng quan của đề tài và cách thức triển khai
nó.
Chương 4: Kết luận và hướng phát triển.

Trong chương này, em chia thành 2 phần. Phần 1 kết luận sẽ giới thiệu về những
gì đã đạt được và hạn chế. Phần 2 hướng phát triển đưa ra hướng đi tiếp theo của ứng
dụng.

2


Chương 2

Nghiên cứu tổng quan

2.1 Trí tuệ nhân tạo là gì ?

Trí tuệ nhân tạo (AI - Artificial Intelligence) là trí thơng minh của máy do con người
tạo ra. Ngay từ khi chiếc máy tính điện tử đầu tiên ra đời, các nhà khoa học máy tính
đã hướng đến phát hiển hệ thống máy tính (gồm cả phần cứng và phần mềm) sao cho
nó có khả năng thơng minh như loài người.
Mặc dù cho đến nay, theo quan niệm của người viết, ước mơ này vẫn còn xa mới thành
hiện thực, tuy vậy những thành tựu đạt được cũng không hề nhỏ: chúng ta đã làm được
các hệ thống (phần mềm chơi cờ vua chạy trên siêu máy tinh GeneBlue) có thể thắng
được vua cờ thế giới; chúng ta đã làm được các phần mềm có thể chứng minh được
các bài tốn hình học; v.v. Hay nói cách khác, trong một số lĩnh vực, máy tính có thể
thực hiện tốt hơn hoặc tương đương con người (tất nhiên không phải tất cả các lĩnh
vực).

2.2 Giới thiệu khái quát về ảnh
2.2.1 Các khái niệm cơ bản về ảnh

Ảnh số là tập hợp hữu hạn các điểm ảnh với mức xám phù hợp
dùng

để

tả ảnh gần với ảnh thật. Số điểm ảnh xác định độ phân giải của
ảnh. Ảnh có độ phân giải càng cao thì càng thể hiện rõ nét các
đặt điểm của tấm hình càng làm cho tấm ảnh trở nên thực và
sắc nét hơn.
a. Điểm ảnh (Picture Element)

Điểm ảnh (Pixel) là một phần tử của ảnh số tại toạ độ (x, y)
với độ xám hoặc màu nhất định. Kích thước và khoảng cách
giữa các điểm ảnh đó được chọn thích hợp sao cho mắt
người cảm nhận sự liên tục về không gian và mức xám
3


(hoặc màu) của ảnh số gần như ảnh thật. Mỗi phần tử
trong ma trận được gọi là một phần tử ảnh.

b. Mức xám của ảnh

Mức xám: Là kết quả của sự biến đổi tương ứng 1 giá trị độ sáng
của 1 điểm
ảnh với 1 giá trị nguyên dương. Thông thường nó xác định trong
[0, 255] tuỳ thuộc vào giá trị mà mỗi điểm ảnh được biểu diễn.
Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256
(Mức 256 là
mức phổ dụng. Lý do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để
biểu diễn mức xám. Mức xám dùng 1 byte biểu diễn: 28=256
mức, tức là từ 0 đến 255).
c. Độ phân giải của ảnh


Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh được
ấn định trên một ảnh số được hiển thị.
Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được
chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh.
Việc
lựa
chọn
khoảng
cách
thích
hợp
tạo nên một mật độ phân bổ, đó chính là độ phân giải và
được phân bố theo trục x và y trong khơng gian hai chiều.
Ví dụ: Độ phân giải của ảnh trên màn hình CGA (Color
Graphic
Adaptor)

một lưới điểm theo chiều ngang màn hình: 320 điểm chiều
dọc * 200 điểm ảnh (320*200). Rõ ràng, cùng màn hình
CGA 12” ta nhận thấy mịn hơn màn hình CGA 17” độ phân
giải 320*200. Lý do: cùng một mật độ (độ phân giải) nhưng
diện tích màn hình rộng hơn thì độ mịn (liên tục của các
điểm) kém hơn.
2.2.2 Các cách phân loại ảnh
Ảnh nhị phân: Giá trị xám của tất cả các điểm ảnh chỉ nhận giá trị
1
hoặc
0
như vậy mỗi điểm ảnh trong ảnh nhị phân được biểu diễn bởi 1 bit.

Ảnh xám: Giá trị xám nằm trong [0, 255] như vậy mỗi điểm ảnh
trong
ảnh
nhị phân được biểu diễn bởi 1 byte.
Ảnh màu:
4


 Hệ màu RGB: Một pixel được biểu diễn bằng 3 giá trị (R, G, B)
trong đó R, G, B là một giá trị xám và được biểu biểu diễn bằng
1 byte. Khi đó ta có một ảnh 24 bits. P(x, y) = (R, G, B)
 Hệ màu CMY: là phần bù của hệ màu RGB (C, M, Y) = (1, 1, 1) (R, G, B) Hay C+R=M+G=Y+B=1 => Hệ màu này thường được
dùng trong máy in.
 Hệ màu CMYK: trong đó K là độ đậm nhạt của màu K= min(C,
M, Y)
P(x, y) = (C-K, M-K, V-K, K).
 Ví dụ:
Với (C1, M1, Y1) ta sẽ có K=min(C1, M1, Y1)
Vậy CMYK=(C1-K, M1-K, Y1-K, K)

2.3 Tìm hiểu khái quát về ảnh
2.3.1 Nhận dạng hình ảnh là gì?
Nhận dạng hình ảnh ngày nay có thể so sánh với nhận thức thị giác của con
người. Nó đã đi vào cuộc sống hàng ngày và phục vụ các nhu cầu khác nhau.
Facebook và các nền tảng truyền thông xã hội khác sử dụng công nghệ này để tăng
cường tìm kiếm hình ảnh và hỗ trợ người dùng khiếm thị.
Các doanh nghiệp bán lẻ sử dụng nhận dạng hình ảnh để quét cơ sở dữ liệu lớn để
đáp ứng tốt hơn nhu cầu của khách hàng và cải thiện cả trải nghiệm khách hàng tại cửa
hàng và trực tuyến.
Trong chăm sóc sức khỏe, hệ thống nhận dạng và xử lý hình ảnh y tế giúp các

chuyên gia dự đoán rủi ro sức khỏe, phát hiện bệnh sớm hơn và cung cấp nhiều dịch
vụ tập trung vào bệnh nhân hơn. Danh sách này có thể đi và về.
Nhận dạng hình ảnh rơi vào nhóm các nhiệm vụ thị giác máy tính cũng bao gồm
tìm kiếm trực quan, phát hiện đối tượng, phân đoạn ngữ nghĩa và hơn thế nữa.
Bản chất của nhận dạng hình ảnh là trong việc cung cấp một thuật tốn có thể lấy
một hình ảnh đầu vào thơ và sau đó nhận ra những gì trên hình ảnh này và gán nhãn
hoặc các lớp cho mỗi hình ảnh.
Cần lưu ý rằng máy móc khơng thể nhìn thấy và cảm nhận hình ảnh như chúng ta
làm. Đối với họ, đó là tất cả về tốn học, và bất kỳ đối tượng nào sẽ trông như thế này:

5


Hình 1: Hình ảnh đối tượng đối với AI

2.3.2 Nguyên tắc làm việc của các mơ hình nhận dạng hình ảnh
Dựa trên dữ liệu được cung cấp, mơ hình sẽ tự động tìm các mẫu, lấy các lớp từ
danh sách được xác định trước và gắn thẻ cho mỗi hình ảnh với một, một vài hoặc
khơng có nhãn.
Vì vậy, các bước chính trong nhận dạng hình ảnh AI là thu thập và sắp xếp dữ
liệu, xây dựng mơ hình dự đốn và sử dụng nó để cung cấp đầu ra chính xác.
Đối với đào tạo mơ hình, điều quan trọng là thu thập và sắp xếp dữ liệu đúng
cách. Chất lượng dữ liệu là rất quan trọng để cho phép mơ hình tìm thấy các mẫu. Các
bộ dữ liệu phải bao gồm hàng trăm đến hàng ngàn ví dụ và được dán nhãn chính
xác. Sau đó, nó sẽ trở nên có thể xác định nhãn rời rạc. Trong trường hợp có đủ dữ liệu
lịch sử cho một dự án, dữ liệu này sẽ được dán nhãn tự nhiên. Ngoài ra, để làm cho
một dự án nhận dạng hình ảnh AI thành cơng , dữ liệu cần có sức mạnh dự
đốn . Các nhà khoa học dữ liệu chuyên gia luôn sẵn sàng cung cấp tất cả các hỗ trợ
cần thiết ở giai đoạn chuẩn bị dữ liệu.
Việc ghi nhãn sẽ được sử dụng để cho phép mơ hình dự đốn đối tượng nào trên

hình ảnh và mức độ xác suất dự đốn là chính xác. Nếu được hiển thị, q trình nhận
dạng hình ảnh trơng như thế này:

6


Hình 2: Hình ảnh và mức độ xác suất dự đốn

2.3.3 Thuật tốn sử dụng trong nhận dạng hình ảnh
Một số thuật tốn được sử dụng trong nhận dạng hình ảnh (Nhận dạng đối tượng)
là:
 Scale-Invariant Feature Transform/SIFT (Chuyển đổi tính năng bất biến tỷ
lệ):
- Là giải thuật trong lĩnh vực Computer Vision, dùng để nhận dạng và miêu tả
những điểm đặc trưng.
- Giải thuật này(cùng với giải thuật anh em là SURF) được ứng dụng rộng rãi
trong Nhận dạng đối tượng(object recognition), mơ hình hóa 3D(3D
modeling),...
- Điểm đặc biệt của SIFT là nó sẽ đưa ra các kết quả ổn định với những scale của
ảnh khác nhau, bên cạnh đó cũng có thể nói giải thuật này có tính rotationinvariant.
 Speeded Up Robust Features/SURF (Tính năng tăng tốc mạnh mẽ): cũng
giống như SIFT nhưng SURF sẽ có những sự cải thiện để cải thiện tốc độ xử lý
mà vẫn đảm bảo độ chính xác trong việc detection.
 Principal Component Analysis/PCA (Phân tích thành phần chính): Đây là
thuật tốn sinh ra để giải quyết vấn đề dữ liệu có quá nhiều chiều dữ liệu, cần
giảm bớt chiều dữ liệu nhằm tăng tốc độ xử lí, nhưng vẫn giữ lại thơng tin
nhiều nhất có thể.
7



 Linear Discriminant Analysis/LDA (Phân tích phân biệt tuyến tính): một
phương pháp được sử dụng trong thống kê , nhận dạng mẫu và học máy để tìm
ra sự kết hợp tuyến tính của các tính năng đặc trưng hoặc tách biệt hai hoặc
nhiều lớp đối tượng hoặc sự kiện.

Hình 3: Một phần nhỏ của hình ảnh được biểu thị ở định dạng ma trận

2.3.4 Những thách thức trong nhận dạng hình ảnh
Biến đổi quan điểm: Trong một thế giới thực, các thực thể trong ảnh được căn
chỉnh theo các hướng khác nhau và khi các hình ảnh đó được đưa vào hệ thống, hệ
thống dự đốn các giá trị khơng chính xác. Nói tóm lại, hệ thống khơng hiểu rằng việc
thay đổi căn chỉnh của hình ảnh (trái, phải, dưới, trên cùng) sẽ khơng làm cho nó khác
đi và đó là lý do tại sao nó tạo ra những thách thức trong nhận dạng hình ảnh.
Biến đổi tỷ lệ: Biến thể về kích thước ảnh hưởng đến việc phân loại đối
tượng. Bạn càng nhìn gần đối tượng, kích thước của nó càng lớn và ngược lại.
Biến dạng: Các đối tượng không thay đổi ngay cả khi chúng bị biến dạng. Hệ
thống học từ hình ảnh hồn hảo và hình thành một nhận thức rằng một đối tượng cụ
thể chỉ có thể có hình dạng cụ thể. Chúng ta biết rằng trong thế giới thực, hình dạng
thay đổi và kết quả là, có những điểm khơng chính xác khi hệ thống bắt gặp một hình
ảnh bị biến dạng của một vật thể.
Biến thể giữa các lớp: Đối tượng nhất định khác nhau trong lớp. Chúng có thể có
hình dạng, kích thước khác nhau, nhưng vẫn đại diện cho cùng một lớp. Ví dụ, nút,
ghế, chai, túi có kích cỡ và hình dáng khác nhau.
8


Loại trừ: Một số đối tượng nhất định cản trở chế độ xem tồn bộ hình ảnh và dẫn
đến thơng tin không đầy đủ được cung cấp cho hệ thống. Cần phải đưa ra một thuật
toán nhạy cảm với các biến thể này và bao gồm một loạt các mẫu dữ liệu.
2.3.5 Cơng dụng của nhận dạng hình ảnh

Máy bay không người lái: Máy bay không người lái được trang bị khả năng
nhận dạng hình ảnh có thể cung cấp khả năng giám sát, kiểm tra và kiểm soát tự động
dựa trên tầm nhìn.

Hình 4: Hình ảnh máy bay khơng người lái

Sản xuất: Kiểm tra dây chuyền sản xuất, đánh giá các điểm quan trọng một cách
thường xuyên trong cơ sở. Giám sát chất lượng của các sản phẩm cuối cùng để giảm
các khuyết tật. Đánh giá tình trạng của cơng nhân có thể giúp các ngành sản xuất kiểm
sốt hoàn toàn các hoạt động khác nhau trong các hệ thống.

Hình 5: Hình ảnh máy móc trong khâu sản xuất ô tô

9


Xe tự hành: Xe tự hành có nhận dạng hình ảnh có thể xác định các hoạt động
trên đường và thực hiện các hành động cần thiết. Robot mini có thể giúp các ngành
công nghiệp hậu cần định vị và chuyển các vật thể từ nơi này sang nơi khác. Nó cũng
duy trì cơ sở dữ liệu về lịch sử di chuyển sản phẩm để ngăn sản phẩm bị thất lạc hoặc
đánh cắp.

Hình 6: Hình ảnh xe tự hành

Giám sát quân sự: Phát hiện các hoạt động bất thường ở khu vực biên giới và
khả năng ra quyết định tự động có thể giúp ngăn chặn sự xâm nhập và dẫn đến cứu
sống các binh sĩ.

Hoạt động trong rừng: Máy bay khơng người lái có thể giám sát rừng, dự
đốn những thay đổi có thể dẫn đến cháy rừng và ngăn chặn nạn săn trộm. Nó cũng có

thể cung cấp một giám sát đầy đủ về các vùng đất rộng lớn, mà con người không thể
truy cập dễ dàng.

10


Hình 7: Hình ảnh áp dụng cộng nghệ giám sát tuần tra trong rừng

2.4 Tìm hiểu Matlab
2.4.1 Khái niệm về Matlab

Matlab là một ngơn ngữ lập trình thực hành bậc cao được sử dụng để
giải các bài toán về kỹ thuật. Matlab tích hợp được việc tính tốn, thể
11


hiện kết quả, cho phép lập trình, giao diện làm việc rất dễ dàng cho
người sử dụng. Dữ liệu cùng với thư viện được lập trình sẵn cho phép
người sử dụng có thể có được những ứng dụng sau đây:
 Sử dụng các hàm có sẵn trong thư viện, các phép tính tốn học
thơng thường.
 Cho phép lập trình tạo ra những ứng dụng mới.
 Cho phép mô phỏng các mơ hình thực tế.
 Phân tích, khảo sát và hiển thị dữ liệu.
 Với phần mềm đồ hoạ cực mạnh.
 Cho phép phát triển, giao tiếp với một số phần mềm khác như
C++, Fortran.
2.4.2 Hệ thống Matlab
Hệ thống giao diện của Matlab được chia thành 5 phần:
 Môi trường phát triển.

Đây là nơi đặt các thanh công cụ, các phương tiện giúp chúng
ta sử dụng các lệnh và các file, ta có thể liệt kê một số như sau:
- Desktop.
- Command Window.
- Command History.
- Browsers for viewinghelp.
 Thư viện, các hàm tốn học bao gồm các cấu trúc như tính
tổng, sin cosin atan, atan2 etc..., các phép tính đơn giản đến
các phép tính phức tạp như tính ma trận nghich đảo, trị riêng,
chuyển đổi fourier, laplace, symbolic library.
 Ngôn ngữ Matlab. Đó là các ngơn ngữ cao về ma trận và mảng,
với các dòng lệnh, các hàm, cấu trúc dữ liệu vào, có thể lập
trình hướng đối tượng.
 Đồ hoạ trong Matlab. Bao gồm các câu lệnh thể hiện đồ họa
trong mơi trường 2D và 3D, tạo các hình ảnh chuyển động,
cung cấp các giao diện tương tác giữa người sử dụng và máy
tính.
 Giao tiếp với các ngơn ngữ khác. Matlab cho phép tương tác với
các
ngôn
ngữ khác như C, Fortran …
2.4.3




Ứng dụng của Matlab
Các khoá học về toán học.
Các kỹ sư, các nhà nghiên cứu khoa học.
Dùng Matlab để tính tốn, nghiên cứu tạo ra các sản phẩm tốt

nhất trong sản xuất

12


2.5 Tìm hiểu xử lý ảnh trong Matlab
2.5.1 Xử lý ảnh là gì?

Hình 8: Các bước xử lý ảnh

Các bước cần thiết trong xử lý ảnh. Đầu tiên, ảnh tự nhiên từ thế giới
ngoài
được thu nhận qua các thiết bị thu (như Camera, máy chụp ảnh).
Trước đây, ảnh thu qua Camera là các ảnh tương tự (loại Camera ống
kiểu CCIR). Gần đây, với
sự phát triển của công nghệ, ảnh màu hoặc đen trắng được lấy ra từ
Camera, sau đó nó được chuyển trực tiếp thành ảnh số tạo thuận lợi
cho xử lý tiếp theo. Máy ảnh số hiện nay là một thí dụ gần gũi. Mặt
khác, ảnh cũng có thể tiếp nhận từ vệ tinh; có thể quét từ ảnh chụp
bằng máy quét ảnh.
2.5.2 Các giai đoạn xử lý ảnh
 Thu nhận ảnh (Image Acquisition)
- Ảnh được thu từ nhiều nguồn khác nhau: máy ảnh, máy
quay phim, máy quét, ảnh vệ tinh…
- Mục đích: biến đổi thơng tin hình ảnh về các cấu trúc
được lưu trữ trong máy tính, có thể hiển thị ra các thiết bị
ngoại vi như là máy in, màn hình…
- Gồm hai tiến trình:
 Biến đổi năng lượng quang học thành năng lượng
điện.

 Tổng hợp năng lượng điện thành ảnh hoặc ma trận
số.
 Tiền xử lý (Image Processing)
- Là quá trình sử dụng các kỹ thuật xử lý ảnh để làm ảnh
tốt lên theo mục đích sử dụng.
- Mục đích:
13










 Điều chỉnh độ chiếu sáng để khắc phục hậu quả của
việc chiếu sáng không đều.
 Giảm nhỏ thành phần nhiễu của ảnh tức là các đối
tượng xuất hiện ngoài ý muốn.
 Hiệu chỉnh giá trị độ sáng giữa nền và đối tượng.
 Chuẩn hoá độ lớn, màu, dạng của ảnh.
 Điều chỉnh bộ lọc để khuyếch đại và nén các tần số.
Phân đoạn (Segmentation)
- Là quá trình phân chia nội dung các đối tượng cần khảo
sát ra khỏi ảnh.
- Phân chia các đối tượng tiếp giáp nhau.
- Phân tách các đối tượng riêng biệt thành các đối tượng
con.

Biểu diễn ảnh (Image Representation)
- Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng
ảnh (ảnh đã phân đoạn) cộng với mã liên kết với các vùng
lận cận.
- Việc biến đổi các số liệu này thành dạng thích hợp là cần
thiết cho xử lý tiếp theo bằng máy tính.
- Việc chọn các tính chất để thể hiện ảnh gọi là trích chọn
đặc trưng (Feature Selection) gắn với việc tách các đặc
tính của ảnh dưới dạng các thơng tin định lượng hoặc làm
cơ sở để phân biệt lớp đối tượng này với đối tượng khác
trong phạm vi ảnh nhận được.
Nhận dạng và nội suy ảnh (Image Recognition and
Interpretation)
Nhận dạng ảnh là quá trình xác định ảnh. Quá trình này thường
thu
được
bằng cách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ
trước. Nội suy là phán đoán theo ý nghĩa trên cơ sở nhận dạng.
Cơ sở tri thức (Knowledge Base)
Trong nhiều khâu xử lý và phân tích ảnh ngồi việc đơn giản
hóa các phương pháp tốn học đảm bảo tiện lợi cho xử lý,
người ta mong muốn bắt chước quy trình tiếp nhận và xử lý ảnh
theo cách của con người. Trong các bước xử lý đó, nhiều khâu
hiện nay đã xử lý theo các phương pháp trí tuệ con người. Vì
vậy, ở đây các cơ sở tri thức được phát huy.

2.5.3 Xử lý ảnh trong Matlab
2.5.3.1 Các kiểu ảnh trong Matlab
 Ảnh được định chỉ số (Indexed Images):
- Một ảnh chỉ số bao gồm một ma trận dữ liệu X và ma trận

bản đồ màu map. Ma trận dữ liệu có thể có kiểu thuộc lớp
uint8, uint16 hoặc kiểu double.
14


Ma trận bản đồ màu là một mảng mx3 kiểu double bao gồm
các giá trị dấu phẩy động nằm giữa 0 và 1.
- Mỗi hàng của bản đồ chỉ ra các giá trị mà: red, green và blue
của một màu đơn.
- Một ảnh chỉ số sử dụng ánh xạ trực tiếp giữa giá trị của pixel
ảnh tới giá trị trong bản đồ màu.
- Màu sắc của mỗi pixel ảnh được tính tốn bằng cách sử dụng
giá trị tương ứng của X ánh xạ tới một giá trị chỉ số của map.
Giá trị 1 chỉ ra hàng đầu tiên, giá trị 2 chỉ ra hàng thứ hai
trong bản đồ màu …
 Ảnh cường độ (Intensity Images)
- Một ảnh cường độ là một ma trận dữ liệu ảnh I mà giá trị của
nó đại diện cho cường độ trong một số vùng nào đó của ảnh.
- Matlab chứa một ảnh cường độ như một ma trận đơn, với
mỗi phần tử của ma trận tương ứng với một pixel của ảnh.
Ma trận có thể thuộc lớp double, uint8 hay uint16.
- Trong khi ảnh cường độ hiếm khi được lưu với bản đồ màu,
Matlab sử dụng bản đồ màu để hiển thị chúng.
- Những phần tử trong ma trận cường độ đại diện cho các
cường độ khác nhau hoặc độ xám.
- Những điểm có cường độ bằng 0 thường được đại diện bằng
màu đen và cường độ 1,255 hoặc 65535 thường đại diện cho
cường độ cao nhất hay màu trắng.
 Ảnh nhị phân (Binary Images)
Trong một ảnh nhị phân, mỗi pixel chỉ có thể chứa một trong hai

giá
trị
nhị
phân 0 hoặc 1. Hai giá trị này tương ứng với bật hoặc tắt (on hoặc
off). Một ảnh nhị phân được lưu trữ như một mảng logic của 0 và
1.
-

 Ảnh RGB (RGB Images)
- Một ảnh RGB - thường được gọi là true-color, được lưu trữ
trong Matlab dưới dạng một mảng dữ liệu có kích thước 3
chiều mxnx3 định nghĩa các giá trị màu red, green và blue
cho mỗi pixel riêng biệt.
- Ảnh RGB không sử dụng palette. Màu của mỗi pixel được
quyết định bởi sự kết hợp giữa các giá trị R, G, B (Red,
Green, Blue) được lưu trữ trong một mặt phẳng màu tại vị trí
của pixel.
- Định dạng file đồ hoạ lưu trữ ảnh RGB giống như một ảnh 24
bits trong đó R, G, B chiếm tương ứng 8 bit một. Điều này
cho phép nhận được 16 triệu màu khác nhau.
2.5.3.2 Các hàm xử lý ảnh cơ bản trong Matlab
 Đọc và ghi dữ liệu ảnh
 Đọc một ảnh đồ hoạ
15


Hàm imread đọc một ảnh từ bất kì định dạng nào được
trợ giúp trong bất kì chiều sâu bit nào được trợ giúp. Hầu
hết các file ảnh sử dụng 8 bit để chứa giá trị của pixel.
- Khi chúng được đọc vào bộ nhớ, Matlab chứa chúng dưới

dạng uint8. Với các file trợ giúp 16 bít dữ liệu, PNG và
TIFF, Matlab chứachúng dưới dạng uint16.
 Ghi một ảnh đồ hoạ
- Hàm imwrite sẽ ghi một ảnh tới một file đồ hoạ dưới một
trong
các
định
dạng được trợ giúp.
- Cấu trúc cơ bản nhất của imwrite sẽ yêu cầu một biến
ảnh và tên file. Nếu ta gộp một phần mở rộng trong tên
file, Matlab sẽ nhận ra định dạng mong muốn từ nó.
 Hiển thị ảnh
 Dùng hàm imview
- Ta có thể sử dụng imview để hiển thị một ảnh mà đã
được nhập vào trong không gian làm việc của Matlab.
- Nếu ta gọi hàm imview mà khơng chỉ ra mất kì tham số
nào, nó sẽ hiển thị một hộp chọn file cho phép ta chỉ ra
tên file muốn hiển thị.
 Dùng hàm imshow
Để xem ảnh, ta có thể sử dụng hàm imshow thay cho imview.
Ta
sử
dụng
imshow để hiển thị một ảnh đã được nhập vào trong không
gian làm việc
 Các hàm chuyển đổi kiểu ảnh
 Danh sách sau đây sẽ liệt kê các hàm được sử dụng trong việc
chuyển
đổi
kiểu ảnh:

- dither: Tạo một ảnh nhị phân từ một ảnh cường độ đen
trắng bằng cách trộn, tạo một ảnh chỉ số từ một ảnh RGB
bằng cách trộn (dither).
- gray2id: Tạo một ảnh chỉ số từ một ảnh cường độ đen
trắng.
- grayslice: Tạo một ảnh chỉ số từ một ảnh cường độ đen
trắng bằng cách đặt ngưỡng.
- im2bw: Tạo một ảnh nhị phân từ một ảnh cường độ, ảnh
chỉ số hay ảnh RGB trên cơ sở của ngưỡng ánh sáng.
- ind2gray: Tạo một ảnh cường độ đen trắng từ một ảnh
chỉ số.
- ind2rgb: Tạo một ảnh RGB từ một ảnh chỉ số.
- mat2gray: Tạo một ảnh cường độ đen trắng từ dữ liệu
trong một ma trận bằng cách lấy tỉ lệ giữ liệu.
- rgb2gray: Tạo một ảnh cường độ đen trắng từ một ảnh
RGB.
- rgb2ind: Tạo một ảnh chỉ số từ một ảnh RGB.
-

16


 Ta cũng có thể thực hiện các phép chuyển đổi kiểu chỉ sử dụng
cú pháp của Matlab.
 Ảnh RGB thu được có các ma trận đồng nhất cho các mặt
phẳng R, G, B vì vậy ảnh hiển thị giống như bóng xám.

2.6 Tìm hiểu về Mạng nơ-ron tích chập (Convolutional Neural Network –
CNN)
2.6.1 Sơ lược về Mạng nơ-ron tích chập


Hình 9: Kiến trúc của một mạng CNN

Convolutional Neural Network (CNNs – 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 khn mặt người dùng, phát triển xe hơi tự lái hay drone
giao hàng tự động.
17


CNN được sử dụng nhiều trong các bài toán nhận dạng 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 nhận dạng (detection),
chúng ta hãy cùng tìm hiểu về thuật tốn này.
2.6.2
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.

Hình 10: Phân lớp ảnh

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)


trọng số chia sẻ (shared weights)




tổng hợp (pooling).

2.6.2.1

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

Hình 11: Ví dụ Trường tiếp nhận cục bộ

18


Đầ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 ANN truyền thống thì chúng ta sẽ kết nối các neuron đầu vào
vào tầng ảnh.
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 neuron đầu vào như một filter có kích thước 5x5 tương ứng (285 + 1) 24 đ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 neuron ẩ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ộ.
2.6.2.2 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 feature
map.
Một convolutional layer bao gồm các feature map khác nhau. Mỗi một feature map
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.

2.6.2.3 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 neuron.
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 12: Mơ phỏng Lớp tổng hợp

Như vậy qua lớp Max Pooling thì số lượng neuron giảm đi phân nửa. Trong một mạng
CNN có nhiều Feature Map nên mỗi Feature Map chúng ta sẽ cho mỗi Max Pooling khác
nhau.

2.6.3 Mơ hình nhận dạng khn mặt dựa trên CNN
Mơ hình CNN được thiết kế gồm hai phần chức năng là trích chọn đặc trưng của
ảnh khuôn mặt và phân lớp đối tượng dựa trên đặc trưng đã chọn. Mơ hình CNN bao
19


×