TÓM TẮT LUẬN VĂN Đã có rất nhiều công trình công bố, đưa ra các hướng tiếp cận khác nhau cho việc giải quyết bài toán nhận dạng khuôn mặt như nhận dạng dựa trên đặc trưng của các phần tử
Trang 1UBND TỈNH BÌNH DƯƠNG
TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT
NGUYỄN THANH TÙNG
ỨNG DỤNG PHƯƠNG PHÁP HỌC SÂU ĐỂ NHẬN DIỆN
KHUÔN MẶT QUA CAMERA GIÁM SÁT
LUẬN VĂN THẠC SĨ CHUYÊN NGÀNH: HỆ THỐNG THÔNG TIN
MÃ SỐ: 8 48 01 04
BÌNH DƯƠNG – 2019
Trang 2UBND TỈNH BÌNH DƯƠNG
TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT
NGUYỄN THANH TÙNG
ỨNG DỤNG PHƯƠNG PHÁP HỌC SÂU ĐỂ NHẬN DIỆN
KHUÔN MẶT QUA CAMERA GIÁM SÁT
LUẬN VĂN THẠC SỸ
CHUYÊN NGÀNH: HỆ THỐNG THÔNG TIN
MÃ SỐ: 8 48 01 04
NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS BÙI THANH HÙNG
BÌNH DƯƠNG – 2019
Trang 3LỜI CAM ĐOAN
Tên tôi là: Nguyễn Thanh Tùng
Sinh ngày: 15/01/1983
Học viên lớp cao học CH17HT - Trường Đại học Thủ Dầu Một
Xin cam đoan: Đề tài “Ứng dụng phương pháp học sâu để nhận diện khuôn mặt qua camera giám sát.” do Thầy TS Bùi Thanh Hùng hướng dẫn là
công trình nghiên cứu của riêng tôi Tất cả tài liệu tham khảo đều có nguồn gốc, trích dẫn rõ ràng
Tác giả xin cam đoan tất cả những nội dung trong luận văn đúng như nội dung trong đề cương và yêu cầu của thầy giáo hướng dẫn Nếu sai tôi hoàn toàn chịu trách nhiệm trước hội đồng khoa học
Bình Dương, tháng 10 năm 2019
Tác giả luận văn
Nguyễn Thanh Tùng
Trang 4Tôi xin bày tỏ lòng biết ơn sâu sắc đến:
Thầy hướng dẫn TS Bùi Thanh Hùng đã tận tình chỉ dẫn, giúp đỡ tôi hoàn
thành luận văn này Đồng thời tôi gửi lời cảm ơn đến các thầy, cô đã giảng dạy truyền đạt kiến thức quý báo cho tôi trong suốt thời gian học tập và nghiên cứu
Tôi chân thành cảm ơn bạn bè, đồng nghiệp và gia đình đã động viên, khích
lệ, tạo điều kiện giúp đỡ tôi trong suốt quá trình học tập, thực hiện và hoàn thành luận văn này
Trang 5TÓM TẮT LUẬN VĂN
Đã có rất nhiều công trình công bố, đưa ra các hướng tiếp cận khác nhau cho việc giải quyết bài toán nhận dạng khuôn mặt như nhận dạng dựa trên đặc trưng của các phần tử trên khuôn mặt bao gồm biển đổi sóng Wavelet (Gabor Wavelet), phương pháp đồ thị đàn hồi (Elastic Bunch Graph Matching - EBGM), mạng Nơron (Neural Network - NN), học máy vector hỗ trợ (Support Vector Machine –SVM)… nhận dạng dựa trên xét tổng thể toàn khuôn mặt bao gồm phương pháp phân tích thành phần chính (Principal Component Analysis– PCA) phương pháp phân tích sự khác biệt tuyến tính (Linear Discriminant Analysis – LDA) Trong đó, nhận dạng khuôn mặt dùng mạng Nơron mang lại hiệu quả nhận dạng cao bởi nó hoạt động ổn định và có tính thích nghi cao khi dữ liệu đầu vào thay đổi nhiều
Luận văn trình bày khảo sát một số thuật toán nhận dạng khuôn mặt và đề xuất một mô hình hiệu quả để giải quyết bài toán nhận dạng khuôn mặt và có thể áp dụng để nhận dạng trực tiếp từ camera Trong đó, luận văn tập trung chính vào hai công đoạn: phát hiện và nhận dạng khuôn mặt Trong việc phát hiện và canh chỉnh khuôn mặt được đề xuất sử dụng phương pháp mô tả đặc trưng (Histogram of Oriented Gradients – HOG) và việc phân lớp, nhận dạng khuôn mặt sử dụng mô hình CNN cụ thể là thuật toán FaceNet Hiệu quả của mô hình nhận dạng được kiểm nghiệm trên tập cơ sở dữ liệu chuẩn ORL (Olivetti Research Laboratory) của AT&T, và bộ dữ liệu của cá nhân thu thập hình ảnh của 15 người Các kết quả thực nghiệm cho thấy mô hình đề xuất đạt độ chính xác cao và ổn định trên các tập dữ liệu
Trang 6MỤC LỤC
LỜI CAM ĐOAN iii
LỜI CẢM ƠN iv
TÓM TẮT LUẬN VĂN v
MỤC LỤC vi
DANH MỤC THUẬT NGỮ VÀ CÁC TỪ VIẾT TẮT ix
DANH MỤC CÁC BẢNG x
DANH MỤC HÌNH VẼ, ĐỒ THỊ xi
CHƯƠNG 1: TỔNG QUAN VỀ LĨNH VỰC NGHIÊN CỨU 1
1.1 Lý do chọn đề tài 1
1.2 Mục tiêu nghiên cứu 2
1.3 Đối tượng, phạm vi nghiên cứu 2
1.4 Phương pháp nghiên cứu 2
1.5 Ý nghĩa khoa học và ý nghĩa thực tiễn 3
1.6 Bố cục luận văn 3
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN 5
2.1 Mạng Nơron tích chập 5
2.1.1 Mạng Nơron 5
2.1.2 Mạng nơron tích chập 15
2.2 Trích chọn đặc trưng 21
2.2.1 Tổng quan trích chọn đặc trưng 21
Trang 72.2.2 Phương pháp mô tả đặc trưng (Histogram of Oriented Gradients – HOG)
22
2.2.3 Phương pháp phân tích thành phần chính (Principal Component Analysis - PCA) 23
2.2.4 Phương pháp mẫu nhị phân địa phương (Local Binary Pattern - LBP ) 26
2.3 Nhận dạng khuôn mặt 32
2.3.1 Tổng quan 32
2.3.2 Các hướng tiếp cận 35
2.3.3 Hướng đề xuất nghiên cứu 36
Tiểu kết chương 37
CHƯƠNG 3: MÔ HÌNH ĐỀ XUẤT 38
3.1 Tổng quan mô hình đề xuất 38
3.2 Các đặc trưng của mô hình đề xuất 40
3.2.1 Phát hiện khuôn mặt 40
3.2.2 Nhận dạng khuôn mặt 47
3.2.3 Mô hình kết hợp HOG-CNN 56
3.2.4 Phương pháp đánh giá mô hình 57
CHƯƠNG 4: THỰC NGHIỆM VÀ KẾT LUẬN 58
4.1 Dữ liệu 58
4.2 Huấn luyện mô hình 62
4.3 Đánh giá 64
4.4 Xây dựng ứng dụng 65
Trang 84.5 Kết luận và hướng phát triển 69 CÔNG TRÌNH CÔNG BỐ 70 TÀI LIỆU THAM KHẢO 71
Trang 9DANH MỤC THUẬT NGỮ VÀ CÁC TỪ VIẾT TẮT
Trang 10DANH MỤC CÁC BẢNG
Bảng 4.1 Đánh giá độ chính xác trên dữ liệu cá nhân 63 Bảng 4.2 Đánh giá độ chính xác trên dữ liệu ORL 64
Trang 11DANH MỤC HÌNH VẼ, ĐỒ THỊ
Hình 2.1: Mạng nơron sinh học 5
Hình 2.2: Cấu trúc của mạng nơron nhân tạo 6
Hình 2.3: Quá trình xử lý của một nơron trong ANN 6
Hình 2.4: Đồ thị các hàm kích hoạt 8
Hình 2.5: AlphaGo của Google 11
Hình 2.6: Mô phỏng cách tính lan truyền ngược 13
Hình 2.7: Mô hình các lớp cơ bản CNN 16
Hình 2.8: Ví dụ một mô hình CNN 17
Hình 2.9: Minh họa tích chập trên ma trận ảnh 18
Hình 2.10: Phương thức Avarage Pooling và Max Pooling 20
Hình 2.11: Ví dụ về cấu trúc CNN 21
Hình 2.12: R-HOG và C-HOG 23
Hình 2.13: Ảnh sau khi biến đổi theo PCA 25
Hình 2.14: Ví dụ về phương pháp LBP 27
Hình 2.15: Ví dụ về ảnh khuôn mặt và các đặc trưng LBP 27
Hình 2.16: Tập hợp các điểm xung quanh Ptt 28
Hình 2.17: Các biến thể của LBP, LBP đồng dạng 29
Hình 2.18: Bảng thống kê các mẫu của LBP đồng dạng 30
Hình 2.19: Ví dụ về quá trình tính toán đặc trưng 31
Hình 2.20: Mô hình bài toán nhận dạng mặt người 33
Trang 12Hình 2.21: Cấu trúc tổng quát của hệ thống nhận dạng khuôn mặt 33
Hình 3.1: Mô hình đề xuất 39
Hình 3.2: Số ảnh nhậndạng được 40
Hình 3.3: Biểu đồ tuyến tính HOG 40
Hình 3.4: Biểu đồ tuyến tính LBP 41
Hình 3.5: So sánh phát hiện khuôn mặt HOG và LBP 42
Hình 3.6: Chia khối trích đặc trưng HOG 43
Hình 3.7: Ví dụ về trích chọn đặc trưng bởi HOG 46
Hình 3.8: Ảnh input và kết quả phát hiện và canh chỉnh ảnh mặt với HOG 47
Hình 3.9: Hình minh họa output khoảng cách khi sử dụng FaceNet giữa các cặp khuôn mặt 48
Hình 3.10: Tóm tắt quy trình nhận dạng khuôn mặt sử dụng FaceNet 49
Hình 3.11: Cấu trúc mô hình FaceNet 50
Hình 3.12: Ví dụ về bộ ba sai số 51
Hình 3.13: Bộ ba sai số tối thiểu hóa khoảng cách giữa ảnh vào (Anchor) và ảnh cùng loại với ảnh vào (Positive) và tối đa hóa khoảng cách giữa ảnh vào và ảnh khác loại với ảnh vào (Negative) 52
Hình 3.14: Ảnh vào sau khi huấn luyện, thu được vector 128 chiều 54
Hình 3.15: Cấu trúc mạng do Zeiler và Fergus đề xuất 55
Hình 3.16: Module Inception dạng nguyên thủy và dạng giảm chiều 55
Hình 3.17: FaceNet sử dụng mô hình Inception tương tự với 56
Hình 3.18: Sơ đồ mô hình nhận dạng kết hợp HOG-FaceNet 57
Trang 13Hình 4.1: Ví dụ các mẫu data đã cắt khuôn mặt 58
Hình 4.2: Phương pháp Xoay ngẫu nhiên tăng dữ liệu ảnh 59
Hình 4.3: Phương pháp độ sáng ngẫu nhiên tăng dữ liệu ảnh 60
Hình 4.4: Phương pháp phóng to thu nhỏ ngẫu nhiên tăng dữ liệu ảnh 60
Hình 4.5: Phương pháp dịch chuyển dọc tăng dữ liệu ảnh 61
Hình 4.6: Phương dịch chuyển ngang tăng dữ liệu ảnh 61
Hình 4.7: Tiền xử lý ảnh khuôn mặt 62
Hình 4.8: Kết quả huấn luyện mô hình 63
Hình 4.9: Các thông số huấn luyện mô hình 64
Hình 4.10: Giao diện chính của chương trình 65
Hình 4.11: Cửa sổ thêm người mới 66
Hình 4.12: Cửa sổ chụp ảnh người mới 66
Hình 4.13: Thực hiện huấn luyện lại mô hình 67
Hình 4.14: Cửa sổ nhận dạng khuôn mặt 67
Hình 4.15: Mô tả dữ liệu và kết quả 68
Trang 14CHƯƠNG 1 TỔNG QUAN VỀ LĨNH VỰC NGHIÊN CỨU 1.1 Lý do chọn đề tài
Với sự phát triển nhanh chóng của các loại máy móc hiện đại như máy ảnh
số, máy quay phim kỹ thuật số, máy vi tính,… thì lượng thông tin con người thu được dưới dạng hình ảnh là khá lớn Xử lý ảnh là một trong những lĩnh vực ngày càng được phổ biến trong đời sống xã hội Không chỉ dừng lại ở việc xử lý những vết nhòe, tái chế và phục hồi các ảnh cũ, ngày nay các kỹ thuật, phương pháp xử lý ảnh đã mang lại những tiến bộ vượt bậc như nhận dạng vân tay, nhận dạng khuôn mặt, nhận dạng đối tượng khi nó kết hợp với lĩnh vực trí tuệ nhân tạo
Bên cạnh đó, vấn đề an ninh bảo mật đang được yêu cầu khắc khe tại mọi quốc gia trên thế giới Các hệ thống xác định, nhận dạng con người được ra đời với
độ tin cậy cao Một trong những bài toán nhận dạng con người được quan tâm nhất hiện nay đó là nhận dạng qua khuôn mặt
Các phương pháp nhận dạng phổ biến hiện nay là nhận dạng dựa trên đặc trưng của các phần tử trên khuôn mặt và nhận dạng dựa trên xét tổng thể toàn khuôn mặt như phương pháp Phân tích thành phần chính (Principal Component Analysis – PCA) phương pháp Phân tích sự khác biệt tuyến tính (Linear Discriminant Analysis – LDA), phương pháp mẫu nhị phân địa phương (Local Binary Pattern - LBP), phương pháp mô tả đặc trưng (Histogram of Oriented Gradients – HOG) và hiện nay việc áp dụng các phương pháp học sâu của mạng nơron (Neural Network) cho ra kết quả nhận dạng rất tốt Các nghiên cứu gần đây cho thấy việc kết hợp giữa phương pháp phân tích đặc trưng và mạng học sâu nơron mang lại hiệu quả nhận dạng cao bởi nó hoạt động ổn định và có tính thích nghi cao khi dữ liệu đầu vào thay đổi
nhiều Vì vậy tôi chọn đề tài: “Ứng dụng phương pháp học sâu để nhận diện
Trang 15khuôn mặt qua camera giám sát” để nghiên cứu cho luận văn tốt nghiệp cao học
của mình
1.2 Mục tiêu nghiên cứu
Luận văn “Ứng dụng phương pháp học sâu để nhận diện khuôn mặt qua camera giám sát” Hướng tới một chương trình có chức năng phát hiện ra khuôn mặt người và nhận dạng ra đó là ai thông qua các phương pháp phát hiện và nhận dạng Thông qua nghiên cứu các phương pháp học sâu cho bài toán nhận dạng khuôn mặt
và ngôn ngữ lập trình Python luận văn muốn xây dựng một chương trình có thể nhận dạng được khuôn mặt người thông qua camera theo thời gian thực
1.3 Đối tượng, phạm vi nghiên cứu
Với mục tiêu đã đề ra ở trên, luận văn thực hiện những vấn đề sau:
- Đối tượng nghiên cứu là các phương pháp phát hiện khuôn mặt người và nhận dạng khuôn mặt qua đó lựa chọn một phương pháp phù hợp Tìm hiểu và đề xuất một phương pháp cụ thể
- Nghiên cứu và sử dụng phương pháp học sâu trên nền tảng Python
- Phạm vi thực hiện: trên camera và video giám sát theo thời gian thực
1.4 Phương pháp nghiên cứu
- Phương pháp nghiên cứu lý thuyết: Tổng hợp, nghiên cứu các tài liệu về
nhận dạng khuôn mặt; nghiên cứu các phương pháp, thuật toán nhận dạng khuôn mặt; nghiên cứu các phương pháp học sâu Tìm hiểu các kiến thức liên quan như lý thuyết xử lý ảnh, học máy, kỹ thuật lập trình
- Phương pháp nghiên cứu thực nghiệm: Sau khi nghiên cứu lý thuyết, phát
biểu bài toán, đề xuất mô hình; xây dựng và phát triển ứng dụng dựa trên mô hình đề xuất; cài đặt thử nghiệm chương trình, đánh giá các kết quả đạt được; công bố kết quả nghiên cứu trong các Hội thảo
Trang 161.5 Ý nghĩa khoa học và ý nghĩa thực tiễn
Ý nghĩa khoa học:
Luận văn góp phần giới thiệu các bước tiến hành để xây dựng hệ thống nhận dạng nói chung và nhận dạng khuôn mặt nói riêng
Nghiên cứu về phương pháp trích chọn đặc trưng nhận dạng khuôn mặt HOG
và mạng Nơron trong việc nhận dạng khuôn mặt
Cài đặt thử nghiệm và đánh giá bằng thực nghiệm các kỹ thuật trong trích chọn đặc trưng HOG và phân loại đối tượng dựa trên mạng nơron
Nghiên cứu này tạo tiền đề cho những nghiên cứu tiếp theo trong tương lai
Ý nghĩa thực tiễn:
Luận văn nghiên cứu một số kỹ thuật, các thuật toán hỗ trợ cho việc phát hiện
và nhận dạng khuôn mặt người
Luân văn đã xây dựng thành công hệ thống nhận dạng khuôn mặt dựa trên
trích chọn đặc trưng HOG và mạng nơron
Bên cạnh đó, luận văn này góp phần xây dựng chương trình nhận dạng khuôn mặt người để áp dụng cho nhiều ứng dụng thực tiễn, nhằm đáp ứng cho các yêu cầu như nhận dạng, bảo mật ngày càng cao
Ngoài ra, luận văn đã xây dựng cơ sở dữ liệu trong thực tế trên khuôn mặt người cán bộ công chức tạo tiền đề cho việc xây dựng cơ sở dữ liệu nhận dạng cán
bộ công chức một cách tự động
1.6 Bố cục luận văn
Nội dung của luận văn được chia thành các phần như sau:
Chương 1: Tổng quan về lĩnh vực nghiên cứu Chương này trình bày khái quát về bài toán nhận dạng khuôn mặt, những ứng dụng cũng như yêu cầu đề tài
Trang 17Chương 2: Cơ sở lý thuyết và các nghiên cứu liên quan: Chương này trình bày các thuật toán nhận dạng khuôn mặt và các nghiên cứu liên quan
Chương 3: Mô hình đề xuất: Chương này trình bày phương pháp nhận dạng khuôn mặt kết hợp giữa phương pháp phân tích đặc trưng HOG và mạng nơron tích chập (CNN)
Chương 4: Thực nghiệm: Chương 4 trình bày quá trình và kết quả đạt được khi thực nghiệm, phân tích và đánh giá các kết quả đạt được
Chương 5: Kết luận và hướng phát triển
Trang 18CHƯƠNG 2
CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN
2.1 Mạng Nơron tích chập
2.1.1 Mạng Nơron
Mạng Nơron nhân tạo (Artificial Neural Network – ANN) là mô hình xử lý
thông tin được mô phỏng dựa trên hoạt động của hệ thống thần kinh của sinh vật hay còn gọi là mạng Nơron sinh học (hình 2.1) [1] Cấu tạo từ số lượng lớn các nơron được kết nối với nhau để xử lý thông tin ANN giống như bộ não con người, được học bởi kinh nghiệm thông qua huấn luyện, có khả năng lưu giữ những kinh nghiệm tri thức và sử dụng những tri thức đó trong việc dự đoán các dữ liệu chưa biết ANN được giới thiệu năm 1943 bởi nhà thần kinh học Warren McCulloch và nhà logic học Walter Pits [1]
Hình 2.1: Mạng nơron sinh học [1]
Các ứng dụng của Mạng neuron được sử dụng trong rất nhiều lĩnh vực như điện, điện tử, kinh tế, quân sự,… để giải quyết các bài toán có độ phức tạp và đòi hỏi
có độ chính xác cao như điều khiển tự động, khai phá dữ liệu, nhận dạng,…
Một ANN gồm ba tầng lớp đầu vào (input layer), các lớp ẩn (hidden layers)
và cuối cùng là lớp đầu ra (output layer) được mô tả trong hình 2.2 [1], trong đó,
lớp ẩn gồm nhiều nơron nhận dữ liệu đầu vào từ các lớp trước đó để xử lý và chuyển
Trang 19đổi các dữ liệu này cho các lớp tiếp theo Một ANN có thể có nhiều lớp ẩn hoặc không có lớp ẩn
Hình 2.2: Cấu trúc của mạng nơron nhân tạo [1]
Mỗi node trong mạng gọi là một nơron Mỗi nơron nhận các dữ liệu đầu vào
xử lý chúng và trả ra một kết quả duy nhất Kết quả đầu ra của nơron này có thể làm
dữ liệu đầu vào của các nơron khác
Hình 2.3 [1] mô tả quá trình xử lý của một nơron trong ANN Trong đó input
là dữ liệu đầu vào, output là kết quả đầu ra Trọng số liên kết hay trọng số (connection weights hay gọi tắt là weights) là thành phần rất quan trọng, thể hiện mức độ quan trọng đối với quá trình xử lý dữ liệu từ lớp này sang lớp khác Quá trình học của ANN thực ra là quá trình điều chỉnh trọng số của các dữ liệu đầu vào
Hình 2.3: Quá trình xử lý của một nơron trong ANN [1]
Trang 20Hàm tổng Σ tính tổng của tích trọng số và dữ liệu vào Hàm tính tổng một nơron của k dữ liệu đầu vào của lớp thứ i
𝑎𝑖 = ∑ 𝑥𝑘𝜔𝑖,𝑘 (2.1) Hàm kích hoạt hay hàm chuyển đổi 𝑓 tính toán đầu ra của một nơron để chuyển đến lớp tiếp theo trong mạng nơron Hàm kích hoạt phi tuyến được sử dụng
vì mạng chỉ sử dụng các hàm kích hoạt tuyến tính có thể lược giản thông qua các biến đổi đại số thành mô hình perceptron một lớp (là mô hình ANN đơn giản nhất, không có lớp ẩn) Một số hàm kích hoạt phi tuyến thường dùng là ReLU (Rectified Linear Unit), sigmoid, logistic, Gaussian, tanh, softmax Hình 2.4 [1]
Trang 21Hình 2.4: Đồ thị các hàm kích hoạt: (a) Hàm Tanh; (b) Hàm ReLU;
(c) Hàm Sigmoid Kết quả xử lý đầu ra hàm tổng của nơron đôi khi quá lớn, hàm kích hoạt thường dùng để xử lý đầu ra này trước khi chuyển đến lớp tiếp theo Đôi khi thay vì
sử dụng hàm kích hoạt, ta thường sử dụng giá trị ngưỡng để kiểm soát đầu ra của
Trang 22nơron Nếu đầu ra của một nơron nhỏ hơn ngưỡng thì sẽ không được chuyển đến lớp tiếp theo
Một số dạng mạng nơron:
Mạng liên kết đầy đủ (fully connected-FC) nếu mọi đầu ra của một lớp liên kết với mọi nơron của lớp tiếp theo
Mạng lan truyền thẳng (feedforward network) nếu không tồn tại liên kết giữa các nơron thuộc cùng một lớp
Mạng phản hồi (feedback network) nếu tồn tại đầu ra của một nơron liên kết ngược lại làm đầu vào của một nơron cùng lớp
Mạng hồi quy (recurrent network) nếu các mạng phản hồi có các vòng lặp kín
Quá trình học của mạng nơron là quá trình lan truyền thông tin để làm thay
đổi các trọng số tốt nhất có thể Mạng nơron được huấn luyện hay được học theo ba
phương pháp học có giám sát, học không giám sát và học tăng cường:
Học có giám sát (supervised learning) là phương pháp học từ một tập dữ liệu
huấn luyện ta đã biết trước nhãn của dữ liệu cần học và số lớp cần phân loại của bộ
dữ liệu được đem đi huấn luyện Đây là phương pháp học phổ biến nhất trong các phương pháp học của mạng nơron Mục đích của phương pháp này là từ tập dữ liệu
đã gán nhãn qua quá trình học tạo ra một hàm số thật tốt để khi có dữ liệu mới ta có thể tính hay dự đoán được nhãn tương ứng của dữ liệu đó [1]
Phương pháp học giám sát chia ra thành hai loại chính là:
- Phân loại (classification): Nếu nhãn của các dữ liệu đầu vào được chia thành một số hữu hạn nhóm Như các bài toán nhận dạng chữ số viết tay, dò tìm khuôn mặt người, …
Trang 23- Hồi quy (regression): Nếu nhãn của các dữ liệu đầu vào không được chia thành các nhóm mà là một giá trị thực cụ thể Ví dụ như bài toán dự đoán giá của một căn nhà, giá trị dinh dưỡng của một món ăn,…
Học không giám sát (Unsupervised Learning) là phương pháp học từ một tập
dữ liệu cần học ta không biết trước nhãn của dữ liệu, cũng như số lớp đầu ra Thuật toán sẽ dựa vào cấu trúc của dữ liệu để phân nhóm hay giảm chiều của dữ liệu,… Học không giám sát có liên quan chặt chẽ đến việc ước lượng mật độ trong thống
kê Cách học này không sử dụng tri thức từ bên ngoài trong quá trình học nên còn được gọi là tự tổ chức
Mạng nơron điển hình cho cách học này là Self – Organizing Map (SOM) Một số thuật toán học không giám sát khác như k-means, Hierarchical Agglomerative Clustering (HAC), Fuzzy Cognitive Map (FCM),….[1]
Phần lớn ứng dụng học không giám sát vào các bài toán ước lượng như mô hình hóa thống kê, nén, lọc, phân nhóm,…
Học tăng cường (Reinforcement Learning) là phương pháp học giúp cho một
hệ thống tự động xác định hành động dựa trên hoàn cảnh để đạt lợi ích cao nhất Học tăng cường bằng cách thử nghiệm dữ liệu để khám phá ra hành động nào là tốt nhất Hành động đó không chỉ có lợi ích tốt cho bước hiện tại mà còn cho các bước tiếp theo Hai đặc điểm quan trọng để phân biệt học tăng cường là tìm kiếm thử - sai (trialand-error search) và bồi dưỡng chậm (delayed reward).[1]
Môi trường học thường được biểu diễn dưới dạng quy trình quyết định markov (Markov Decision Process - MDP) trạng thái hữu hạn Và các thuật toán học tăng cường liên quan đến các kỹ thuật quy hoạch động
Hiện tại, học tăng cường chủ yếu được áp dụng vào Lý thuyết trò chơi, thuật toán cần xác định hành động tiếp theo để đạt số điểm tốt nhất Ví dụ, AlphaGo của
Trang 24Google đánh cờ vây thắng con người, trong khi cờ vây có độ phức tạp cao xấp xỉ
10761 AlphaGo kết hợp cả học có giám sát và học tăng cường, Hình 2.5
Hình 2.5: AlphaGo của Google1
Thuật toán lan truyền ngược
Với thuật toán lan truyền ngược (Backpropagation Algorithm), giả sử L(W,b,X,Y) là một hàm lỗi của bài toán, trong đó W,b là tập hợp tất cả các ma trận trọng số giữa các lớp và hướng của mỗi lớp X,Y là cặp dữ liệu huấn luyện, X là tập hợp các điểm dữ liệu, Y là nhãn của các điểm dữ liệu tương ứng trong X Đầu ra dự đoán 𝑦̂ của dữ liệu đầu vào x của mạng neural truyền thẳng đa lớp được tính như sau:
Trang 25Với 𝑙 = 1, … , 𝐿 là số thứ tự của lớp, a là kết quả của hàm kích hoạt tại mỗi node của một lớp
Bước này được gọi là truyền thẳng vì cách tính toán được thực hiện từ lớp đầu tiên đến lớp cuối của mạng nơron
Phương pháp phổ biến nhất để tối ưu mạng nơron truyền thẳng đa lớp là trượt dốc Để có thể áp dụng trượt dốc, ta cần tính được đạo hàm của hàm lỗi theo từng
Với N là số cặp dữ liệu (X,Y) trong tập huấn luyện
Theo công thức (2.12) thì việc tính đạo hàm của hàm lỗi theo trọng số và hướng một cách trực tiếp là cực kỳ phức tạp, vì hàm lỗi không phụ thuộc trực tiếp vào các hệ số
Phương pháp phổ biến nhất để tính đạo hàm của hàm lỗi có tên là lan truyền ngược Lan truyền ngược giúp tính đạo hàm ngược từ lớp cuối cùng đến lớp đầu tiên Lớp cuối cùng được tính trước vì nó gần hơn với đầu ra dự đoán và hàm lỗi Việc tính toán đạo hàm của các lớp trước được thực hiện dựa trên nguyên tắc xích, tức là đạo hàm của hàm hợp
Trang 26Với một cặp điểm dữ liệu huấn luyện (x,y) và hàm lỗi L chỉ xét cho cặp điểm này, ta có thể tính đạo hàm của hàm lỗi theo ma trận trọng số và hướng Đạo hàm của hàm lỗi theo chỉ một thành phần của ma trận trọng số của lớp cuối cùng
𝜕𝑤𝑖,𝑗(𝐿) thường là một đại lượng dễ tính toán và
Trang 27Dựa vào hình 2.6 [1], ta có thể tính được đạo hàm của hàm lỗi theo hệ
Tương tự suy ra
𝜕𝐿
Trang 28Từ các công thức trên, thấy rằng việc tính 𝑒𝑗(𝑙) là rất quan trọng Và theo công thức (2.25) để tính được 𝑒𝑗(𝑙) ta cần tính được các 𝑒𝑗(𝑙+1) hay nói cách khác thì ta cần tính ngược giá trị này từ lớp cuối đến lớp đầu
2.1.2 Mạng nơron tích chập
Mạng nơron tích chập (Convolutional Neural Network - CNN) [2] là một
trong những mô hình học sâu tiên tiến giúp 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, các 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 dạng khuôn mặt người dùng, phát triển xe hơi tự lái hay máy bay giao hàng tự động,…
Mô hình mạng nơron truyền thẳng ra đời đã được áp dụng nhiều vào các bài toán nhận dạng Tuy nhiên, đối với dữ liệu hình ảnh, mạng nơron truyền thẳng thể hiện không thực sự tốt Chính sự liên kết quá đầy đủ tạo nên những hạn chế cho mô hình Dữ liệu ảnh có kích thước khá lớn, một bức ảnh xám 32x32 điểm ảnh sẽ cho ra vector đặc trưng có 1024 chiều, đối với ảnh màu cùng kích thước sẽ có 3072 chiều Điều này cũng có nghĩa là cần tới 3072 trọng số 𝜃 nối giữa lớp đầu vào và một node trong lớp ẩn tiếp theo Số lượng trọng số sẽ càng nhân rộng hơn nếu số lượng node trong lớp ẩn tăng lên và số lượng lớp ẩn tăng lên Như vậy chỉ với một bức ảnh nhỏ 32x32 thì cũng cần đến một mô hình mạng nơron truyền thẳng khá đồ sộ, điều này khiến cho việc thao tác với các bức ảnh lớn hơn khá khó khăn
Hơn nữa, việc liên kết đầy đủ các điểm ảnh vào một node trong mạng là dư thừa vì sự phụ thuộc lẫn nhau giữa các điểm ảnh xa nhau là không nhiều, mà chủ yếu là sự phụ thuộc giữa các điểm ảnh lân cận nó Dựa trên tư tưởng này, mạng nơron tích chập ra đời với cấu trúc khác hẳn mạng nơron truyền thẳng Thay vì toàn
bộ ảnh nối trực tiếp với một node thì chỉ có một phần cục bộ trong ảnh nối với một
Trang 29node trong lớp tiếp theo Dữ liệu hình ảnh ban đầu qua các lớp của mô hình mạng nơron tích chập sẽ học được ra các đặc trưng để tiến hành phân lớp hiệu quả
Về cơ bản, CNN bao gồm các lớp sau: lớp tích chập (Convolutional layer), lớp hàm kích hoạt (Activation layer), lớp pooling (Pooling layer) hay còn gọi là lớp subsampling, lớp kết nối đầy đủ (Fully Connected layer) Hình 2.7 [2]
Hình 2.7: Mô hình các lớp cơ bản CNN [2]
Trong mô hình CNN (Hình 2.8), các lớp được liên kết với nhau thông qua cơ chế tích chập Lớp tiếp theo là kết quả của tích chập của lớp trước đó, nhờ vậy mà ta
có được các kết nối cục bộ Nghĩa là mỗi nơron ở lớp tiếp theo được sinh ra từ các
bộ lọc áp đặt lên một vùng ảnh cục bộ của nơron ở lớp trước đó
Mỗi lớp như vậy được áp đặt các bộ lọc khác nhau, thông thường có vài trăm đến vài nghìn bộ lọc như vậy Một số lớp khác như pooling/subsampling được dùng
để chắt lọc lại các thông tin hữu ích hơn
Trong suốt quá trình huấn luyện, mạng nơron tích chập tự động học được các thông số cho các bộ lọc Như trong phân loại ảnh, CNN sẽ cố gắng tìm ra thông số
tối ưu cho các bộ lọc tương ứng theo thứ tự Điểm ảnh ban đầu > cạnh > hình dạng
> mặt > đặc trưng mức cao Lớp cuối cùng thường được dùng để phân loại ảnh
Trang 30Hình 2.8: Ví dụ một mô hình CNN2
Lớp tích chập:
Tích chập (Convolution) là phép toán thực hiện với hai hàm số, kí hiệu là * Phép tích chập được ứng dụng trong thống kê, thị giác máy tính, xử lý ảnh và xử lý tín hiệu,…
Tích chập của hàm số f và g được viết là f * g, là một phép biến đổi tích phân đặc biệt:
Trang 31Tích chập trong xử lý ảnh
Tích chập lần đầu tiên được sử dụng trong xử lý tín hiệu số (Signal processing) Nhờ vào nguyên lý biến đổi thông tin, các nhà khoa học đã áp dụng kỹ thuật này vào xử lý ảnh và video
Để dễ hình dung, ta có thể xem tích chập như một cửa sổ trượt (sliding window) áp lên một ma trận Cửa sổ trượt còn được gọi là nhân (kernel)
Hình 2.9 minh họa cách tính tích chập trên ma trận ảnh đen trắng Ma trận ảnh đen trắng có mỗi ô giá trị là một điểm ảnh, 1 là màu đen, 0 là màu trắng Ta dùng một ma trận nhân, nhân từng thành phần tương ứng với ma trận ảnh Giá trị đầu ra do tích các thành phần này cộng lại Kết quả của tích chập là một ma trận sinh
ra từ việc trượt ma trận nhân và thực hiện tích chập cùng lúc lên toàn bộ ma trận ảnh gốc
Hình 2.9: Minh họa tích chập trên ma trận ảnh [3]
Trang 32Lớp hàm kích hoạt
Lớp này được xây dựng với ý nghĩa đảm bảo tính phi tuyến của mô hình huấn luyện sau khi đã thực hiện một loạt các phép tính toán tuyến tính qua các lớp Tích chập Lớp Kích hoạt phi tuyến nói chung sử dụng các hàm kích hoạt phi tuyến như ReLU hoặc sigmoid, tanh… để giới hạn phạm vi biên độ cho phép của giá trị đầu ra Trong số các hàm kích hoạt này, hàm ReLU được chọn do cài đặt đơn giản, tốc độ
xử lý nhanh mà vẫn đảm bảo được tính toán hiệu quả Cụ thể, phép tính toán của hàm ReLU chỉ đơn giản là chuyển tất cả các giá trị âm thành giá trị 0
Thông thường, lớp ReLU được áp dụng ngay phía sau lớp Tích chập, với đầu
ra là một ảnh mới có kích thước giống với ảnh đầu vào, các giá trị điểm ảnh cũng hoàn toàn tương tự trừ các giá trị âm đã bị loại bỏ
Lớp pooling
Một thành phần tính toán chính khác trong mạng CNN là lấy mẫu (Pooling), thường được đặt sau lớp Tích chập và lớp ReLU để làm giảm kích thước kích thước ảnh đầu ra trong khi vẫn giữ được các thông tin quan trọng của ảnh đầu vào Việc giảm kích thước dữ liệu có tác dụng làm giảm được số lượng tham số cũng như tăng hiệu quả tính toán Lớp lấy mẫu cũng sử dụng một cửa sổ trượt để quét toàn bộ các vùng trong ảnh tương tự như lớp Tích chập, và thực hiện phép lấy mẫu thay vì phép tích chập – tức là ta sẽ chọn lưu lại một giá trị duy nhất đại diện cho toàn bộ thông tin của vùng ảnh đó
Hình 2.10 [2] thể hiện các phương thức lấy mẫu thường được sử dụng nhất hiện nay, đó là Max Pooling (lấy giá trị điểm ảnh lớn nhất) và Average Pooling (lấy giá trị trung bình của các điểm ảnh trong vùng ảnh cục bộ)
Trang 33Hình 2.10: Phương thức Average Pooling và Max Pooling [2]
Như vậy, với mỗi ảnh đầu vào được đưa qua lấy mẫu ta thu được một ảnh đầu
ra tương ứng, có kích thước giảm xuống đáng kể nhưng vẫn giữ được các đặc trưng cần thiết cho quá trình tính toán sau này
Lớp kết nối đầy đủ
Lớp kết nối đầy đủ này được thiết kế hoàn toàn tương tự như trong mạng nơron truyền thống, tức là tất cả các điểm ảnh được kết nối đầy đủ với node trong lớp tiếp theo So với mạng nơron truyền thống, các ảnh đầu vào của lớp này đã có kích thước được giảm bớt rất nhiều, đồng thời vẫn đảm bảo các thông tin quan trọng cho việc nhận dạng Do vậy, việc tính toán nhận dạng sử dụng mô hình truyền thẳng
đã không còn phức tạp và tốn nhiều thời gian như trong mạng nơron truyền thống
Nguyên lý hoạt động
CNN được hình thành bằng cách ghép các lớp đã nêu ở trên lại CNN bắt đầu với lớp tích chập Theo sau lớp tích chập luôn là một lớp hàm kích hoạt, đôi khi ta
có thể ghép cả hai lớp lại thành một lớp Các lớp tiếp theo có thể là lớp pooling hoặc lớp tích chập tùy theo kiến trúc mà ta muốn xây dựng Cuối cùng sẽ là lớp FC, để tiến hành phân lớp dữ liệu Hình 2.11 là ví dụ về cấu trúc của CNN [2]
Trang 34Hình 2.11: Ví dụ về cấu trúc CNN [2]
2.2 Trích chọn đặc trưng
2.2.1 Tổng quan trích chọn đặc trưng
Mỗi đối tượng nói chung đều có những đặc trưng riêng, đặc trưng chính là yếu tố giúp phân biệt đối tượng này với đối tượng khác Ví dụ đặc trưng của xe ô tô
là có 4 bánh, có vô lăng,… còn đặc trưng của xe máy là có hai bánh; đặc trưng của mỗi con người thể hiện là chiều cao, cân nặng, màu tóc, màu da,… Tóm lại đặc trưng là các yếu tố xác định nên đối tượng Một đối tượng chỉ được xác định khi có
đủ số đặc trưng xác định nên nó
Trong lĩnh vực nhận dạng mặt người nói chung bài toán trích chọn đặc trưng
là khâu vô cùng quan trọng, nó sẽ quyết định đến các pha tiếp theo như phân lớp đối tượng, phân cụm đối tượng Về mặt bản chất ảnh được biểu diễn qua một ma trận kích thước mn trong đó m là số hàng và n là số cột của ảnh Cách đơn giản nhất khi xây dựng vector đặc trưng cho ảnh là đem mn điểm ảnh xếp vào vector một chiểu sau đó có thể thực hiện các phép toán trên vector đó Tuy nhiên cách làm này có hạn chế rất lớn là sẽ làm mất đi tính chất không gian của ảnh tức là mất đi thuộc tính vô cùng quan trọng của mỗi điểm ảnh là những điểm hàng xóm của chúng Chính vì vậy rất nhiều phương pháp trích chọn đặc trưng được nghiên cứu và giới thiệu, các phương pháp này nhằm mục đích tận dụng tối đa tính chất không gian của ảnh trong việc xây dựng các vector đặc trưng
Trang 352.2.2 Phương pháp mô tả đặc trưng (Histogram of Oriented Gradients – HOG)
Nguyên lý chung
Phương pháp HOG (Histogram of Oriented Gradients) là một mô tả đặc trưng được sử dụng trong ngành thị giác máy tính và xử lý hình ảnh, ban đầu được thiết kế
để phát hiện người (human detection) trong dữ liệu ảnh nhưng sau đó được mở rộng
và sử dụng rộng rãi cho các bài toán dùng để phát hiện đối tượng nói chung (object detection) Các khái niệm về HOG được nêu ra từ năm 1986 tuy nhiên cho đến năm
2005 HOG mới được sử dụng rộng rãi sau khi Navneet Dalal và Bill Triggs công bố những bổ sung về HOG [4] HOG tương tự như các biểu đồ edge orientation, scale-invariant feature transform descriptors(như sift, surf, ), shape contexts nhưng HOG được tính toán trên một lưới dày đặc các cell và chuẩn hóa sự tương phản giữa các block để nâng cao độ chính xác
Mục đích của mô tả đặc trưng là trừu tượng hóa đối tượng bằng cách trích xuất ra những đặc trưng của đối tượng đó và bỏ đi những thông tin không hữu ích Vì vậy, HOG được sử dụng chủ yếu để mô tả hình dạng và sự xuất hiện của một đối tượng trong ảnh
Bản chất của phương pháp HOG là sử dụng thông tin về sự phân bố của các cường độ gradient (intensity gradient) hoặc của hướng biên (edge directions) để mô
tả các đối tượng cục bộ trong ảnh Các toán tử HOG được cài đặt bằng cách chia nhỏ một bức ảnh thành các vùng con, được gọi là “tế bào” (cells) và với mỗi cell, ta sẽ tính toán một biểu đồ về các hướng của gradients cho các điểm nằm trong cell Ghép các biểu đồ lại với nhau ta sẽ có một biểu diễn cho bức ảnh ban đầu Để tăng cường hiệu năng nhận dạng, các biểu đồ cục bộ có thể được chuẩn hóa về độ tương phản bằng cách tính một ngưỡng cường độ trong một vùng lớn hơn cell, gọi là các khối (blocks) và sử dụng giá trị ngưỡng đó để chuẩn hóa tất cả các cell trong khối Kết quả sau bước chuẩn hóa sẽ là một vector đặc trưng có tính bất biến cao hơn đối với các thay đổi về điều kiện ánh sáng
Trang 36Đặc trưng HOG có một số biến thể thường gặp như: R-HOG, R2-HOG, C-HOG Các đặc trưng này khác nhau ở cách phân bố và hình dạng của các ô như trong hình 2.12.[4]
Trang 37những đặc trưng cơ bản nhất của ảnh cần nhận dạng PCA không cần quan tâm đến việc tìm ra các đặc điểm cụ thể của thực thể cần nhận dạng và mối quan hệ giữa các đặc điểm đó Tất cả các chi tiết đó đều được thể hiện ở ảnh mới được tạo ra từ PCA [5]
Về bản chất, PCA tìm ra một không gian mới theo hướng biến thiên mạnh nhất của một tập hợp các vector trong không gian cho trước Trong không gian mới, người ta hy vọng rằng việc phân loại sẽ mang lại kết quả tốt hơn so với không gian ban đầu
Ý tưởng chính của phương pháp phân tích thành phần chính (Principal Component Analysis - PCA) là tìm các vector biểu diễn những sự phân bố đặc trưng nhất của các ảnh trong toàn bộ không gian ảnh Những vector này hình thành nên một không gian con của các ảnh được gọi là “không gian mặt người” [6]
Nội dung thuật toán PCA
Không gian mới được tạo bởi PCA được cấu thành từ K vector đơn vị có chiều là N Mỗi vector được gọi là một Eigenface
Với T là ma trận chuyển đổi, T có kích thước KxN
Gọi M là số ảnh đầu vào, mỗi ảnh được chuyển thành vector N chiều Ta có tập hợp đầu vào X={x1,x2,…,xM} (xi Є RN)
Trung bình của các vector đầu vào: 𝑥 = 1
Sai lệch so với tâm: ∅𝑖 = 𝑥𝑖− 𝑥 (2.32)
Gọi A=[Ф1,Ф2,…,ФM] ta có ma trận tương quan của A là:
𝐶 = 1
Trang 38Gọi các giá trị riêng của C là λ1, λ2,…, λN sắp xếp theo thứ tự giảm dần, tương ứng với N vector riêng u1, u2,…, uN Các vector riêng này trực giao từng đôi một Mỗi vector riêng ui được gọi là một eigenface Tập hợp các vector ban đầu được biểu diễn trong không gian tạo bởi N eigenface theo mô tả:
𝑥 − 𝑥 = 𝑤1𝑢1+ 𝑤2𝑢2+ ⋯ + 𝑤𝑁𝑢𝑁 = ∑𝑁𝑖=1𝑤𝑖𝑢𝑖 (2.34) Vấn đề cần giải quyết ở đây là ma trận tương quan C=A.AT có kích thước N2 Với N=180x200=36000, khối lượng tính toán sẽ rất lớn Do đó để tính được các eigenface mà không cần tính cả ma trận C, người ta đưa ra phương pháp tính nhanh dựa vào vector riêng và giá trị riêng của ma trận L=AT.A có kích thước MxM với M
là số ảnh đầu vào Ta có thể chứng minh như sau: gọi vi, µi lần lượt là vector riêng
và giá trị riêng của ma trận L:
𝐴𝑇 𝐴 𝑣𝑖 = 𝜇𝑖 𝑣𝑖 (2.35) Nhân cả 2 vế với A ta có:
𝐴 𝐴𝑇 𝐴 𝑣𝑖 = 𝜇𝑖 𝐴 𝑣𝑖 (2.36)
Ta thấy A.v i chính là vector riêng của C=A.A T ứng với giá trị riêng µi
Hình 2.13: Ảnh sau khi biến đổi theo PCA [5]
Trang 39Ưu điểm của phương pháp PCA:
- Tìm được các đặc tính tiêu biểu của đối tượng cần nhận dạng mà không cần phải xác định các thành phần và mối quan hệ giữa các thành phần đó
- Thuật toán có thể thực hiện tốt với các ảnh có độ phân giải cao, do PCA sẽ thu gọn ảnh thành một ảnh có kích thước nhỏ hơn
- PCA có thể kết hợp với các phương pháp khác như mạng Nơron, Support Vector Machine … để mang lại hiệu quả nhận dạng cao hơn
Nhược điểm của PCA:
- PCA phân loại theo chiều phân bố lớn nhất của tập vector Tuy nhiên, chiều phân bố lớn nhất không phải lúc nào cũng mang lại hiệu quả tốt nhất Đây là nhược điểm cơ bản của PCA
- PCA rất nhạy với nhiễu
2.2.4 Phương pháp mẫu nhị phân địa phương (Local Binary Pattern - LBP )
Nguyên lý chung
Local Binary Pattern (LBP) được Ojala trình bày vào năm 1996 như là một cách đo độ tương phản cục bộ của ảnh [7] Phiên bản đầu tiên của LBP được dùng với 8 điểm ảnh xung quanh và sử dụng giá trị của điểm ảnh ở trung tâm làm ngưỡng Giá trị LBP được xác định bằng cách nhân các giá trị ngưỡng với trọng số ứng với mỗi điểm ảnh sau đó cộng tổng lại Hình dưới minh họa cách tính độ tương phản trực giao (C) là hiệu cấp độ xám trung bình của các điểm ảnh lớn hơn hoặc bằng ngưỡng với các điểm ảnh thấp hơn ngưỡng
Kể từ khi được đưa ra, theo định nghĩa là bất biến với những thay đổi đơn điệu trong ảnh đen trắng Để cải tiến phương pháp, bổ sung thêm phương pháp tương phản trực giao địa phương Hình dưới minh họa cách tính độ tương phản trực giao (C) là ký hiệu cấp độ xám trung bình của các điểm ảnh lớn hơn hoặc bằng
Trang 40ngưỡng với các điểm ảnh thấp hơn ngưỡng Phân phối hai chiều của mã LBP và độ tương phản cục bộ được lấy làm đặc trưng gọi là LBP/C
Hình 2.14: Ví dụ về phương pháp LBP [8]
Hình 2.15: Ví dụ về ảnh khuôn mặt (trái) và các đặc trưng LBP (phải) [8]
Nội dung thuật toán LBP:
Dãy LBP được Ojala trình bày vào năm 2002 Định nghĩa một cấu trúc điểm ảnh T là một phân phối đại số của cấp độ xám của P +1 (P > 0) điểm ảnh
Với gc ứng với cấp độ xám của điểm ảnh trung tâm Ptt, gp (p = 0,…,1) tương ứng với P điểm ảnh xung quanh, P điểm ảnh này nằm trên đường tròn bán kính R và tâm là Ptt