Tải bản đầy đủ (.docx) (51 trang)

PHÁT HIỆN đối TƯỢNG TRONG ẢNH sử DỤNG PHƯƠNG PHÁP MACHINE LEARNING (có code)

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 (2.08 MB, 51 trang )

ĐỒ ÁN TỐT NGHIỆP

PHÁT HIỆN ĐỐI TƯỢNG TRONG ẢNH
SỬ DỤNG PHƯƠNG PHÁP MACHINE
LEARNING

1


MỤC LỤC
DANH MỤC CÁC HÌNH VẼ............................................................................................IV
DANH MỤC CÁC BẢNG BIỂU.......................................................................................VI
DANH MỤC CÁC TỪ VIẾT TẮT..................................................................................VII
CHƯƠNG 1. GIỚI THIỆU VỀ ĐỀ TÀI............................................................................1
1.1

GIỚI THIỆU..................................................................................................................1

1.2

YÊU CẦU CỦA ĐỀ TÀI.................................................................................................1

1.3

HƯỚNG GIẢI QUYẾT....................................................................................................2

CHƯƠNG 2. LÝ THUYẾT LIÊN QUAN.........................................................................3
2.1

MACHINE LEARNING...................................................................................................3


2.1.1 Machine learning.....................................................................................................3
2.1.2 Các thuật toán của machine learning.....................................................................8
2.2

ẢNH SỐ.......................................................................................................................9

CHƯƠNG 3. PHÁT HIỆN ĐỐI TƯỢNG DÙNG PHƯƠNG PHÁP MACHINE
LEARNING ........................................................................................................................12
3.1

ĐẶC TRƯNG HAAR LIKE VÀ BỘ PHÂN LOẠI ADABOOST..........................................12

3.1.1 Đặc trưng Haar Like.............................................................................................12
3.1.2 Bộ phân loại Adaboost..........................................................................................14
3.2

PHÂN TÍCH THÀNH PHẦN CHÍNH PCA (PRINCIPAL COMPONENT ANALYSIS)............16

3.2.1 Các khái niệm........................................................................................................17
3.2.2 Các bước thực hiện trong Principal Component Analysis....................................20
3.3

NHẬN DẠNG ĐỐI TƯỢNG..........................................................................................23

3.4

PHÂN TÍCH THÀNH PHẦN ĐỘC LÂP ICA (INDEPENDENT COMPONENT ANALYSIS)...24

CHƯƠNG 4. KẾT QUẢ MÔ PHỎNG.............................................................................26
4.1


MATLAB.................................................................................................................26

4.2

SƠ ĐỒ HOẠT ĐỘNG CHUNG.......................................................................................28

2


4.3

XÁC ĐỊNH VỊ TRÍ ĐỐI TƯỢNG....................................................................................28

4.4

TẠO CƠ SỞ DỮ LIỆU..................................................................................................29

4.5

NHẬN DẠNG ĐỐI TƯỢNG..........................................................................................30

4.6

KẾT QUẢ...................................................................................................................31

CHƯƠNG 5. KẾT LUẬN..................................................................................................35
5.1

NHẬN XÉT................................................................................................................35


5.2

KẾT LUẬN.................................................................................................................35

5.3

HƯỚNG PHÁT TRIỂN.................................................................................................35

TÀI LIỆU THAM KHẢO..................................................................................................36
PHỤ LỤC

........................................................................................................................37

3


DANH MỤC CÁC HÌNH V
HÌNH 2-1: ỨNG DỤNG SIRI TRÊN IPHONE CỦA APPLE.............................3
HÌNH 2-2: XE TỰ HÀNH CỦA GOOGLE...........................................................4
HÌNH 2-3: MÁY CHƠI CỜ VÂY CỦA ALPHAGO VỚI LEE SEDOL.............4
HÌNH 2-4: ỨNG DỤNG GỢI Ý PHIM TRÊN NETFLIX...................................5
HÌNH 2-5: ỨNG DỤNG TAG KHUÔN MẶT TRÊN FACEBOOK....................5
HÌNH 2-6: TRÍ TUỆ NHÂN TẠO AI, MACHINE LEARNING VÀ DEEP
LEARNING.............................................................................................................6
HÌNH 2-7: ĐIỂM ẢNH (PIXEL).........................................................................10
HÌNH 2-8: ẢNH TRẮNG ĐEN VÀ ẢNH XÁM..................................................11
HÌNH 2-9: ẢNH MÀU...........................................................................................11
Y


HÌNH 3-1: ĐẶC TRƯNG CƠ BẢN CỦA HAAR LIKE.....................................12
HÌNH 3-2: CÁC ĐẶC TRƯNG MỞ RỘNG.......................................................12
HÌNH 3-3: CÁCH TÌM INTEGRAL IMAGE CỦA ẢNH..................................13
HÌNH 3-4: XÁC ĐỊNH MỨC XÁM TẠI VÙNG S.............................................13
HÌNH 3-5: MÔ HÌNH PHÂN TẦNG KẾT HỢP VỚI BỘ PHẬN LOẠI..........14
HÌNH 3-6: KẾT HỢP CÁC BỘ PHÂN LOẠI YẾU THÀNH BỘ PHÂN LOẠI
MẠNH.................................................................................................................... 15
HÌNH 3-7: MÔ HÌNH XÁC ĐỊNH VỊ TRÍ ĐỐI TƯỢNG.................................15
HÌNH 3-8: XÁC ĐỊNH VỊ TRÍ CỦA ĐỐI TƯỢNG (KHUÔN MẶT)..............16
HÌNH 3-9: CHUYỂN ĐỔI MA TRẬN NXN THÀNH N2X1.............................20
HÌNH 3-10: SỰ THAY ĐỔI KHÔNG GIANC CỦA DỮ LIỆU.........................25

HÌNH 4-1: MATLAB.............................................................................................26
HÌNH 4-2: GIAO DIỆN MATLAB KHI CHẠY ỨNG DỤNG...........................27
HÌNH 4-3: GIAO DIỆN THIẾT KẾ TRÊN GUI................................................27

4


HÌNH 4-4: SƠ ĐỒ HOẠT ĐỘNG CHUNG........................................................28
HÌNH 4-5: XÁC ĐỊNH VỊ TRÍ CỦA ĐỐI TƯỢNG...........................................28
HÌNH 4-6: TẠO CƠ SỞ DỮ LIỆU......................................................................29
HÌNH 4-7: NHẬN DẠNG ĐỐI TƯỢNG.............................................................30
HÌNH 4-8: XÁC ĐỊNH VỊ TRÍ ĐỐI TƯỢNG....................................................31
HÌNH 4-9:TÁCH TỪNG ĐỐI TƯỢNG RA KHỎI ẢNH BAN ĐẦU................31
HÌNH 4-10: CHỌN ĐỐI TƯỢNG VÀ NHẬN DẠNG........................................32
HÌNH 4-11: NHẬN DẠNG ĐƯỢC ĐỐI TƯỢNG...............................................32
HÌNH 4-12: PHÁT HIỆN ĐỐI TƯỢNG LỖI.....................................................33
HÌNH 4-13: PHÁT HIỆN ĐỐI TƯỢNG KHÔNG MONG MUỐN..................33
HÌNH 4-14: KHÔNG XÁC ĐỊNH ĐƯỢC ĐỐI TƯỢNG KHI NGHIÊNG

SANG TRÁI...........................................................................................................34
HÌNH 4-15: KHÔNG XÁC ĐỊNH KHI NGHIÊNG SANG PHẢI....................34

5


DANH MỤC CÁC BẢNG BIỂU
BẢNG 4-1: BẢNG SỐ LIỆU THỐNG KÊ..........................................................34

6


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

Artificial Intelligence

GUI

Graphical User Interface

ICA

Independent Component Analysis

MATLAB
PCA

Matrix Laboratory
Principal Component Analysis


7


ĐỒ ÁN TỐT NGHIỆP
Trang 1/44

CHƯƠNG 1.

GIỚI THIỆU VỀ ĐỀ TÀI

1.1 Giới thiệu
Với sự tiến bộ của khoa học – kĩ thuật - công nghệ, những thuật toán về khoa học
máy tính đã cho phép con người có thể dùng máy móc thay thế cho những việc
tưởng chừng như phức tạp thành đơn giản, những việc không những đòi hỏi tốc độ
xử lý nhanh mà còn mang lại sự hiệu quả cao.
Phát hiện và nhận dạng đối tượng là một trong những ứng dụng tuyệt vời với những
giá trị mà nó mang lại. Để tra thông tin về một đối tượng, có thể mất hàng giờ để
tìm ra được đó là khi trong phạm vi tìm kiếm nhỏ, vậy khi tìm người nào đó ở một
phạm vi quốc gia thì sao, điều đó là bất khả thi. Nhưng với một thuật toán để phát
hiện và nhận dạng đối tượng (khuôn mặt của người), chỉ mất vài phút có thể lâu khi
cơ sở dữ liệu lớn nhưng tính hiệu quả vẫn tốt hơn.
Ứng dụng về phát hiện và nhận dạng qua khuôn mặt đã xuất hiện trên các sản phẩm
công nghệ như điện thoại thông minh (smartphone) hay laptop để mở khóa màn
hình, cũng có thể dùng điểm danh tại các trường học, công ty.
1.1 Yêu cầu của đề tài
Machine learning – phương pháp đang là xu hướng nguyên cứu được nhiều chuyên
gia và nhà nguyên cứu tìm hiểu trong nhiều năm qua, hàng loạt các ứng dụng sử
dụng machine learning được áp dụng vào các lĩnh vực trong đời sống xã hội bao
gồm như trong dịch vụ tài chính, chăm sóc sức khỏe, marketing và sales, vận tải…

Do đó, vấn đề tìm hiểu về machine learning, tìm hiểu những thuật toán của
machine learning được đề ra trong đề tài này. Áp dụng những thuật toán mà
machine learning mang lại để đơn giản hóa các vấn đề phức tạp và mang lại hiệu
quả cao. Phương pháp PCA được cho là có cách giải quyết không những đơn giản
mà còn mang hiệu quả. Tìm hiểu về thuật toán PCA để giải quyết các vấn đề đặt ra.
Một bức ảnh bao gồm các đối tượng, xác định ví trí của đối tượng, tách đối tượng
khỏi ảnh ban đầu và xác định các đặc trưng riêng. Ảnh được sử dụng là ảnh màu

Phát Hiện Đối Tượng Trong Ảnh Sử Dụng
Phương Pháp Machine Learning


ĐỒ ÁN TỐT NGHIỆP
Trang 2/44

RGB, ảnh đầu vào (input) là ảnh có chất lượng khá tốt, ảnh đầu ra (output) sau khi
xác nhận các đặc trưng được giữ nguyên kích thước.
MATLAB – một phần mềm được sử dụng phổ biến hiện nay, là công cụ dùng để
thực hiện các mô phỏng, đánh giá và thực nghiệm, vì thế lựa chọn MATLAB để
thực hiện giải thuật phát hiện và nhận dạng đối tượng trên. Xây dựng giải thuật để
nhận dạng các đối tượng trong ảnh và trong đó các đối tượng đã được xây dựng trên
cơ sở dữ liệu. Sử dụng các toolbox hổ trợ trong MATLAB như: image processing
toolbox, computer vision toolbox…
Thiết kế một giao diện người dùng với các phím chức năng được mô phỏng trên
GUI của MATLAB.
1.2 Hướng giải quyết
Ảnh đầu vào được thực hiện các phép biến đổi để phát hiện đối tượng, xác định vị
trí của từng đối tượng, tách đối tượng thành những phần riêng. Trích xuất những
thành phần đặc trưng của đối tượng bằng thuật toán. Sau đó, xây dựng cơ sở dữ liệu
cho tập ảnh để nhận dạng đối tượng.

Ảnh đầu ra thể hiện những thành phần từ những thành phần đặc trưng của ảnh vào,
và hiển thị một số thông tin về đối tượng.
MATLAB được sử dụng làm công cụ hỗ trợ và GUI dùng để hiện thực quá trình mô
phỏng.

Phát Hiện Đối Tượng Trong Ảnh Sử Dụng
Phương Pháp Machine Learning


ĐỒ ÁN TỐT NGHIỆP
Trang 3/44

CHƯƠNG 2.

LÝ THUYẾT LIÊN QUAN

1.3 Machine learning
1.1.1 Machine learning
Trong thời gian gần đây, AI - Artificial Intelligence (trí tuệ nhân tạo), và cụ thể hơn
là machine learning (học máy hoặc máy học) đang nổi lên như một bằng chứng của
cuộc cách mạng công nghiệp lần thứ tư (1 - động cơ hơi nước, 2 - năng lượng điện,
3 - công nghệ thông tin). Trí tuệ thân tạo đang len lỏi vào mọi lĩnh vực trong đời
sống: xe tự hành của Google và Tesla, hệ thống tự tag đối tượng trong ảnh của
Facebook, trợ lý ảo Siri của Apple, hệ thống gợi ý sản phẩm của Amazon, hệ thống
gợi ý phim của Netflix, máy chơi cờ vây AlphaGo của Google DeepMind… là một
vài trong vô vàn những ứng dụng của AI/Machine learning.

Hình 2-1: Ứng dụng Siri trên Iphone của Apple

Machine Learning là một tập con của AI - Artificial Intelligence (trí tuệ nhân tạo),

nơi mà các thuật toán máy tính được sử dụng để tự học từ dữ liệu và thông tin.
Trong machine learning, các máy tính không cần phải được lập trình một cách rõ
ràng nhưng có thể tự thay đổi và cải thiện các thuật toán của chúng. Machine
Phát Hiện Đối Tượng Trong Ảnh Sử Dụng
Phương Pháp Machine Learning


ĐỒ ÁN TỐT NGHIỆP
Trang 4/44

learning là một phương pháp phân tích dữ liệu mà sẽ tự động hóa việc xây dựng mô
hình phân tích. Sử dụng các thuật toán lặp để học từ dữ liệu, machine learning cho
phép máy tính tìm thấy những thông tin giá trị ẩn sâu mà không được lập trình một
cách rõ ràng nơi để tìm.

Hình 2-2: Xe tự hành của Google

Hình 2-3: Máy chơi cờ vây của AlphaGo với Lee Sedol

Những năm gần đây, khi mà khả năng tính toán của các máy tính được nâng lên một
tầm cao mới và lượng dữ liệu khổng lồ được thu thập bởi các hãng công nghệ lớn,
Phát Hiện Đối Tượng Trong Ảnh Sử Dụng
Phương Pháp Machine Learning


ĐỒ ÁN TỐT NGHIỆP
Trang 5/44

machine learning đã tiến thêm một bước dài và một lĩnh vực mới được ra đời gọi là
deep learning. Deep learning đã giúp máy tính thực thi những việc tưởng chừng như

không thể vào 10 năm trước: phân loại các vật thể khác nhau trong các bức ảnh, tự
tạo chú thích cho ảnh, bắt chước giọng nói và chữ viết của con người, giao tiếp với
con người, hay thậm chí cả sáng tác văn hay âm nhạc.

Hình 2-4: Ứng dụng gợi ý phim trên Netflix

Hình 2-5: Ứng dụng tag khuôn mặt trên Facebook

Phát Hiện Đối Tượng Trong Ảnh Sử Dụng
Phương Pháp Machine Learning


ĐỒ ÁN TỐT NGHIỆP
Trang 6/44

Hình 2-6: Trí tuệ nhân tạo AI, machine learning và deep learning

Sơ lược theo thời gian về lịch sự hình thành của machine learning và các sự kiện
quan trọng:
Năm 1950 - nhà bác học Alan Turing đã tạo ra "Turing Test (phép thử Turing)" để
xác định xem liệu một máy tính có trí thông minh thực sự hay không. Để vượt qua
bài kiểm tra đó, một máy tính phải có khả năng đánh lừa một con người tin rằng nó
cũng là con người.
Năm 1952 - Arthur Samuel đã viết ra chương trình học máy (computer learning)
đầu tiên. Chương trình này là trò chơi cờ đam, và hãng máy tính IBM đã cải tiến trò
chơi này để nó có thể tự học những nước đi lập nên chiến lược để giành chiến
thắng.
Năm 1957 - Frank Rosenblatt đã thiết kế mạng nơron (neural network) đầu tiên cho
máy tính (gọi là perceptron), mô phỏng quá trình suy nghĩ của bộ não con người.
Năm 1967 - thuật toán điểm lân cận gần nhất (nearest neighbor) đã được viết, cho

phép các máy tính bắt đầu sử dụng những mẫu nhận dạng (pattern recognition) rất
cơ bản. Nó được sử dụng để vẽ ra lộ trình cho một người bán hàng có thể bắt đầu đi
từ một thành phố ngẫu nhiên nhưng đảm bảo anh ta sẽ đi qua tất cả các thành phố
khác theo một quãng đường ngắn nhất.

Phát Hiện Đối Tượng Trong Ảnh Sử Dụng
Phương Pháp Machine Learning


ĐỒ ÁN TỐT NGHIỆP
Trang 7/44

Năm 1979 - sinh viên tại trường đại học Stanford đã phát minh ra giỏ hàng
"Stanford Cart" có thể điều hướng để tránh các chướng ngại vật trong một căn
phòng.
Năm 1981 - Gerald Dejong giới thiệu về khái niệm Học qua giải thích “Explanation
Based Learning (EBL)”, trong đó một máy tính phân tích dữ liệu huấn luyện và tạo
ra một quy tắc chung để nó có thể làm theo bằng cách loại bỏ đi những dữ liệu
không quan trọng.
Năm 1985 - Terry Sejnowski đã phát minh ra NetTalk, học cách phát âm các từ
giống như cách một đứa trẻ tập nói.
Những năm 1990 trở đi - machine learning đã dịch chuyển từ cách tiếp cận hướng
kiến thức (knowledge driven) sang cách tiếp cận hướng dữ liệu (data driven). Các
nhà khoa học bắt đầu tạo ra các chương trình cho máy tính để phân tích một lượng
lớn dữ liệu và rút ra các kết luận - hay là học từ các kết quả đó.
Năm 1997 – máy tính Deep Blue của hãng IBM đã đánh bại nhà vô địch cờ vua thế
giới.
Năm 2006 - Geoffrey Hinton đã đưa ra một thuật ngữ "deep learning" để giải thích
các thuật toán mới cho phép máy tính "nhìn thấy" và phân biệt các đối tượng và văn
bản trong các hình ảnh và video.

Năm 2010 – máy Microsoft Kinect có thể theo dõi 20 hành vi của con người ở một
tốc độ 30 lần mỗi giây, cho phép con người tương tác với máy tính thông qua các
hành động và cử chỉ.
Năm 2011 - máy tính Watson của hãng IBM đã đánh bại các đối thủ là con người tại
Jeopardy.
Năm 2011 - Google Brain đã được phát triển, và mạng deep nơron (deep neural
network) của nó có thể học để phát hiện và phân loại nhiều đối tượng theo cách mà
một con mèo thực hiện.
Năm 2012 - X Lab của Google phát triển một thuật toán machine learning có khả
năng tự động duyệt qua các video trên YouTube để xác định xem video nào có chứa
những con mèo.
Phát Hiện Đối Tượng Trong Ảnh Sử Dụng
Phương Pháp Machine Learning


ĐỒ ÁN TỐT NGHIỆP
Trang 8/44

Năm 2014 - Facebook phát triển DeepFace, một phần mềm thuật toán có thể nhận
dạng hoặc xác minh các cá nhân dựa vào hình ảnh ở mức độ giống như con người.
Năm 2015 - Amazon ra mắt nền tảng machine learning riêng của mình.
Năm 2015 - Microsoft tạo ra Distributed Machine Learning Toolkit, trong đó cho
phép phân phối hiệu quả các vấn đề machine learning trên nhiều máy tính.
Năm 2015 - hơn 3.000 nhà nghiên cứu AI và Robotics, được sự ủng hộ bởi những
nhà khoa học nổi tiếng như Stephen Hawking, Elon Musk và Steve Wozniak (và
nhiều người khác), đã ký vào một bức thư ngỏ để cảnh báo về sự nguy hiểm của vũ
khí tự động trong việc lựa chọn và tham gia vào các mục tiêu mà không có sự can
thiệp của con người.
Năm 2016 - thuật toán trí tuệ nhân tạo của Google đã đánh bại nhà vô địch trò chơi
cờ vây, được cho là trò chơi phức tạp nhất thế giới. Thuật toán AlphaGo được phát

triển bởi Google DeepMind đã giành chiến thắng 5/5 trước nhà vô địch cờ vây.
1.1.2 Các thuật toán của machine learning
Có hai cách phổ biến phân nhóm các thuật toán machine learning. Một là dựa trên
phương thức học (learning style), hai là dựa trên chức năng (function) của mỗi thuật
toán.
Theo phương thức học, các thuật toán machine learning được chia làm 4 nhóm:
supervised learning (học có giám sát), unsupervised learning (học không có giám
sát), semi-supervised lerning (học bán giám sát) và reinforcement learning (học
củng cố).


Supervised learning (học có giám sát)

Supervised learning là thuật toán dự đoán đầu ra (outcome) của một dữ liệu mới
(new input) dựa trên các cặp (input, outcome) đã biết từ trước. Cặp dữ liệu này còn
được gọi là (data, label) (dữ liệu, nhãn). Một cách toán học, supervised learning là
khi có tập hợp biến đầu vào X = {x1, x2,…xn} và tập hợp nhãn tương ứng Y = {y1, y2,
….yn}, trong đó xi, yi là các vector. Cặp dữ liệu biết trước (xi ,yi) X, Y được gọi là tập
tranning data (dữ liệu huấn luyện). Từ tập dữ liệu huấn luyện này, tạo ra một hàm số
ánh xạ mỗi phần tử tập X sang một phần tử tương ứng của tập Y:
Phát Hiện Đối Tượng Trong Ảnh Sử Dụng
Phương Pháp Machine Learning


ĐỒ ÁN TỐT NGHIỆP
Trang 9/44

Mục đích là xấp xỉ hàm số f để khi một dữ liệu x mới thì có thể tính được nhãn
tương ứng của nó y = f(x).



Unsupervised learning (học không có giám sát)

Trong thuật toán unsepervised learning, không biết được đầu ra (outcome) hay nhãn
mà chỉ có dữ liệu đầu vào. Thuật toán unsupervised learning sẽ dựa vào cấu trúc của
dữ liệu để thực hiện một công việc nào đó, ví dụ như phân nhóm (clustering) hoặc
giảm số chiều của dữ liệu (dimension reduction) để thuận tiện trong việc lưu trữ và
tính toán.
Một cách toán học, unsupervised learning là chỉ biết dữ liệu vào X mà không biết
nhãn Y tương ứng.


Semi – supervised learning (học bán giám sát)

Các bài toán khi có một lượng lớn dữ liệu X nhưng chỉ một phần trong chúng được
gán nhãn được gọi là học bán giám sát (semi-supervised learning). Những bài toán
thuộc nhóm này nằm giữa hai nhóm được nêu ở trên.


Reinforcement learning (học củng cố)

Reinforcement learning là các bài toán giúp cho một hệ thống tự động xác định
hành vi dựa trên hoàn cảnh để đạt được lợi ích cao nhất (maximizing the
performance).
Phân nhóm dựa theo chức năng (function), các thuật toán machine learning thường
được chia thành các loại đa dạng khác nhau: hồi quy (regression algorithms), phân
loại (classification algorithms), phân nhóm (clustering algorithms), giảm số chiều
(dimensionality reduction algorithms)…
1.4 Ảnh số
Ảnh số (digital image) là tập hợp tất cả các điểm ảnh (pixel) với mức xám phù hợp

được dùng để mô tả ảnh sao cho gần với hình ảnh thật.


Điểm ảnh

Phát Hiện Đối Tượng Trong Ảnh Sử Dụng
Phương Pháp Machine Learning


ĐỒ ÁN TỐT NGHIỆP
Trang 10/44

Điểm ảnh (pictrure element, pixel) là một phần tử của ảnh số có toạ độ (x, y) với độ
xám hoặc màu nhất định.


Độ phân giải

Độ phân giải (resolution) tức là mật độ điểm ảnh của ảnh đó. Độ phân giải của ảnh
càng cao thì bức ảnh mà ta nhìn thấy càng rõ nét.


Mức xám

Mức xám của điểm ảnh là cường độ sáng của nó được gán bằng giá trị số tại điểm
đó, là kết quả của sự biến đổi tương ứng một giá trị độ sáng của một điểm ảnh với
một 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.


Hình 2-7: Điểm ảnh (pixel)



Phân loại ảnh

Ảnh nhị phân là ảnh mà mức xám của mỗi điểm ảnh có giá trị 1 hoặc 0, được biểu
diễn bằng một bit.
Ảnh xám là ảnh có giá trị mức xám nằm trong khoảng từ 0 đến 255, mỗi điểm ảnh
được biểu diễn bằng một byte.
Ảnh màu là ảnh mà mỗi điểm ảnh đượ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 một byte. Khi đó, một ảnh
có 24 bits.

Phát Hiện Đối Tượng Trong Ảnh Sử Dụng
Phương Pháp Machine Learning


ĐỒ ÁN TỐT NGHIỆP
Trang 11/44

Hình 2-8: Ảnh trắng đen và ảnh xám

.
Hình 2-9: Ảnh màu

Phát Hiện Đối Tượng Trong Ảnh Sử Dụng
Phương Pháp Machine Learning



ĐỒ ÁN TỐT NGHIỆP
Trang 12/44

CHƯƠNG 3.

PHÁT HIỆN ĐỐI TƯỢNG DÙNG PHƯƠNG PHÁP
MACHINE LEARNING

1.5 Đặc trưng Haar Like và bộ phân loại Adaboost
1.1.3 Đặc trưng Haar Like
Đặc trưng Haar Like do Jones và Viola công bố, gồm 4 đặc trưng cơ bản. Mỗi đặc
trưng Haar Like là sự kết hợp của hai hay ba hình chữ nhật trắng hoặc đen:

Hình 3-1: Đặc trưng cơ bản của Haar Like

Bốn đặc trưng Haar Like cơ bản được mở rộng và chia thành các đặc trưng: đặc
trưng cạnh, đặc trưng đường và đặc trưng xung quanh tâm.

Hình 3-2: Các đặc trưng mở rộng

Giá trị của đặc trưng Haar Like là sự chênh lệch giữa tổng của các pixel của các
vùng đen và các vùng trắng theo công thức sau:
F(x)= tổng vùng đen (các mức xám của pixel) - tổng vùng trắng (các mức xám của
pixel)
Phát Hiện Đối Tượng Trong Ảnh Sử Dụng
Phương Pháp Machine Learning


ĐỒ ÁN TỐT NGHIỆP
Trang 13/44


Giá trị này dùng để so sánh với giá trị của các vùng pixel thô, các đặc trưng Haar
Like có thể tăng hoặc giảm sự thay đổi bên trong hay bên ngoài lớp khuôn mặt,
nhằm giúp việc phân loại đơn giản hơn.
Tuy nhiên, việc tính tổng các pixel trên ảnh đòi hỏi khả năng tính toán khá lớn. Do
đó, Jones và Viola đưa ra khái niệm về integral image, là mảng hai chiều với kích
thước bằng với kích thước của ảnh cần tính các đặc trưng Haar Like. Mỗi phần tử
mảng này được tính bằng tổng của pixel ở phía trên (dòng 1) và bên trái (cột 1) của
nó, bắt đầu từ pixel phía trên, bên trái đến vị trí phía dưới, phải của ảnh.

Hình 3-3: Cách tìm integral image của ảnh

Hình 3-4: Xác định mức xám tại vùng S

Giá trị mức xám tại S được tính như sau :
S=A-B-C+D

1.1.4 Bộ phân loại Adaboost

Phát Hiện Đối Tượng Trong Ảnh Sử Dụng
Phương Pháp Machine Learning

(3.1)


ĐỒ ÁN TỐT NGHIỆP
Trang 14/44

Bộ phân loại Adaboost là bộ phân loại mạnh phi tuyến dựa trên hướng tiếp cận
boosting được Freund và Schapire đưa ra năm 1995.

Adaboost hoạt động trên nguyên tắc kết hợp tuyến tính các weak classifiers (phân
loại yếu) để hình thành strong classifiers (phân loại mạnh). Adaboost sử dụng việc
đánh trọng số (weight), với mỗi weak classifiers được xây dựng sẽ được cập nhật lại
trọng số để chuẩn bị xây dựng weak classifiers kế tiếp, bằng việc tăng trọng số khi
nhận dạng sai và giảm trọng số khi nhận dạng đúng. Sau đó, các weak classifiers
được kết hợp để hình thành strong classifiers.
Mô hình phân tầng (cascade) là sự kết hợp giữa bộ phân loại Adaboost với các đặc
trưng Haar Like.

Hình 3-5: Mô hình phân tầng kết hợp với bộ phận loại

Trong đó, hk là các phân loại yếu, và được biểu diễn:
(3.2)
Với:





x : cửa sổ con cần xét
: ngưỡng
fk : giá trị của đặc trưng Haar Like
pk : hệ số xác định chiều của phương trình

Adaboost kết hợp các bộ phân loại yếu thành bộ phân loại mạnh:
Phát Hiện Đối Tượng Trong Ảnh Sử Dụng
Phương Pháp Machine Learning


ĐỒ ÁN TỐT NGHIỆP

Trang 15/44

H(x) = sign[ 1 h1(x) + 2 h2(x) +…+ n hn(x)]

Hình 3-6: Kết hợp các bộ phân loại yếu thành bộ phân loại mạnh

Hình 3-7: Mô hình xác định vị trí đối tượng

Phát Hiện Đối Tượng Trong Ảnh Sử Dụng
Phương Pháp Machine Learning

(3.3)


ĐỒ ÁN TỐT NGHIỆP
Trang 16/44

Hình 3-8: Xác định vị trí của đối tượng (khuôn mặt)

1.6 Phân tích thành phần chính PCA (Principal Component Analysis)
Phân tích thành phần chính PCA được giới thiệu lần đầu tiên bởi Karl Pearson vào
năm 1901, và được phát triển bởi H.Hotelling (1933), sau đó là T.W.Anderson
(1958) và A.M.Kshirsagar (1972). Hiện nay, phương pháp phân tích thành phần
chính PCA được sử dụng như công cụ để phân tích dữ liệu nghiên cứu và thực hiện
các mô hình dự đoán. Phương pháp PCA còn bao gồm cả việc tính toán phân tích
các giá trị đặc trưng của một ma trận tuơng quan dữ liệu hay phân tính các giá trị
đơn của ma trận dữ liệu thường sau khi tính trung bình dữ liệu của mỗi thuộc tính.
PCA là phương pháp đơn giản nhất phân tích đa biến dựa trên các vector đặc trưng.
Thông thường hoạt động của nó có thể được hiểu nhằm khám phá ra cấu trúc bên
trong của dữ liệu. Nếu một tập dữ liệu đa biến được xem xét như tập các tọa độ

trong một không gian dữ liệu nhiều chiều (mỗi trục biểu diễn một biến) thì phương
pháp PCA cung cấp cho chúng ta một bức ảnh ít chiều, một cái bóng của vật thể khi
quan sát từ chính những đặc trưng cơ bản nhất của vật thể đó.
Mục đích chính của phương pháp PCA là “giảm số chiều” của một tập vector sao
cho vẫn đảm bảo được tối đa thông tin quan trọng nhất so với tập dữ liệu ban đầu.
Phát Hiện Đối Tượng Trong Ảnh Sử Dụng
Phương Pháp Machine Learning


ĐỒ ÁN TỐT NGHIỆP
Trang 17/44

Phương pháp PCA sẽ giữ lại K thuộc tính “mới” từ M các thuộc tính ban đầu
(KMột số đặc tính của PCA như sau:


Giúp giảm số chiều dữ liệu, giúp visualization khi dữ liệu có quá nhiều chiều



thông tin.
Do dữ liệu ban đầu có số chiều lớn (nhiều biến) thì PCA giúp xoay trục tọa
độ xây dụng một trục tọa độ mới đảm bảo độ biến thiên của dữ liệu và giữ lại
được nhiều thông tin nhất mà không ảnh hưởng tới chất lượng của các mô



hình dự báo.
Do PCA giúp tạo một hệ trục tọa độ mới nên về mặt ý nghĩa toán học, PCA




giúp xây dựng những biến mới là tổ hợp tuyến tính của những biến ban đầu.
Trong không gian mới, có thể giúp khám phá thêm những thông tin quý giá
mới khi mà tại chiều thông tin cũ những thông tin quý giá này bị che mất.

1.1.5 Các khái niệm
1.1.1.1 Kỳ vọng, phương sai
Cho N giá trị x1, x2, …xN. Kỳ vọng là đơn giản trung bình cộng của tất cả các giá trị.
(3.4)
Với N là số ảnh trong tập huấn luyện (tranning data), x n là vector một chiều đại diện
cho mỗi ảnh.
Phương sai là là trung bình cộng của bình phương khoảng cách từ mỗi điểm tới kỳ
vọng. Phương sai mà càng nhỏ thì khoảng cách đến kỳ vọng của các dữ liệu càng
gần, tức các điểm dữ liệu càng giống nhau. Phương sai của một biến ngẫu nhiên
được xác định theo công thức sau:
(3.5)
Căn bậc hai của phương sai, được gọi là độ lệch chuẩn (standard deviation) của dữ
liệu.
1.1.1.2 Hiệp phương sai (convariance)
Hiệp phương sai là thước đo mức độ biến thiên cùng nhau của hai biến ngẫu nhiên
(phân biệt với phương sai – đo mức độ biến thiên của một biến). Nếu hai biến có xu
Phát Hiện Đối Tượng Trong Ảnh Sử Dụng
Phương Pháp Machine Learning


ĐỒ ÁN TỐT NGHIỆP
Trang 18/44


hướng thay đổi cùng nhau (nghĩa là, khi một biến có giá trị cao hơn giá trị kỳ vọng
thì biến kia cũng có xu hướng cao hơn giá trị kỳ vọng), thì hiệp phương sai giữa hai
biến có giá trị dương. Mặt khác, nếu một biến nằm trên giá trị kì vọng còn biến kia
có xu hướng nằm dưới giá trị kì vọng, thì hiệp phương sai của hai biến này có giá trị
âm. Hiệp phương sai giữa hai biến được tính dựa vào công thức tính phương sai của
một biến.


Hiệp phương sai của biến đang xét với chính nó:
var (X,X) =



(3.6)

Hiệp phương sai của hai biến khác nhau:
var (X,Y) =

(3.7)

Các biến có hiệp phương sai bằng không được gọi là không tương quan
(uncorrelated).
Hiệp phương sai là thước đo độ biến thiên cùng nhau giữa hai biến ngẫu nhiên, tuy
nhiên trong nhiều trường hợp, một tập hợp có nhiều hơn hai phần tử thì sẽ có nhiều
giá trị hiệp phương sai giữa các biến. Để biểu diễn các giá trị đó người ta đặt tất cả
các giá trị hiệp phương sai giữa các biến vào một ma trận.
Ma trận hiệp phương sai (convariance matrix) của n biến ngẫu nhiên là một ma trận
vuông hạng (n x n), trong đó các phần tử nằm trên đường chéo chính (từ trái sang
phải, từ trên xuống dưới) lần lượt là hiệp phương sai tương ứng của các biến này


(var(X)= cov (X,X)), trong khi các phần tử còn lại (không nằm trên đường chéo) là
hiệp phương sai của một cặp biến ngẫu nhiên khác nhau trong tập hợp, các giá trị
này có thể dương, âm hay bằng 0. Nếu giá trị đó bằng 0 thì hai biến đó không tương
quan với nhau. Ma trận hiệp phương sai có dạng đơn giản như sau:
(3.8)
1.1.1.3

Trị riêng và vector riêng

Phát Hiện Đối Tượng Trong Ảnh Sử Dụng
Phương Pháp Machine Learning


×