TỔNG QUAN
Đặt vấn đề
Trong bối cảnh khoa học kỹ thuật phát triển mạnh mẽ, chất lượng cuộc sống ngày càng được cải thiện nhờ vào thiết bị tích hợp trí thông minh nhân tạo Các công việc đơn giản và nhàm chán đang dần được thay thế bởi máy móc tự động, đánh dấu sự bùng nổ của công nghệ robot, đặc biệt là robot dịch vụ Đồng thời, thị giác máy tính đang được nghiên cứu và phát triển nhanh chóng tại các trung tâm nghiên cứu và trường đại học Một trong những lĩnh vực được quan tâm hàng đầu hiện nay là nhận diện khuôn mặt.
Khuôn mặt đóng vai trò quan trọng trong giao tiếp, cung cấp thông tin về giới tính, tuổi tác, chủng tộc và trạng thái cảm xúc Công nghệ nhận diện khuôn mặt đang ngày càng phổ biến, được Apple sử dụng để mở khóa thiết bị, Facebook áp dụng để gán tag bạn bè, và các công ty tài chính dùng để xác thực thanh toán Ngoài ra, sân bay và nhà ga áp dụng nhận diện khuôn mặt để kiểm soát an ninh, trong khi trường học và công ty sử dụng hệ thống này để điểm danh và chấm công tự động Những ứng dụng này minh chứng cho sự phát triển mạnh mẽ của công nghệ nhận diện khuôn mặt trong đời sống hiện đại.
Nhận diện khuôn mặt đã được nghiên cứu trong nhiều thập kỷ, đạt được những kết quả khả quan trong các tình huống kiểm soát Tuy nhiên, trong môi trường không giới hạn, việc nhận diện khuôn mặt vẫn gặp nhiều khó khăn Sau quá trình nghiên cứu, sinh viên đã đề xuất đề tài: “Nhận diện khuôn mặt ứng dụng trong robot tiếp tân” cho đồ án tốt nghiệp.
Mục tiêu đề tài
• Nghiên cứu, tìm hiểu về DCNN và cách thức hoạt động của trích xuất đặc điểm khuôn mặt
• Nghiên cứu, tìm hiểu cách thức hoạt động của thuật toán MTCNN phát hiện khuôn mặt bằng cách trích xuất đặc điểm khuôn mặt
• Nghiên cứu, tìm hiểu về thuật toán ArcFace là thuật toán dùng để phân loại và xác minh khuôn mặt
• Mục tiêu là xây dựng hệ thống nhận dạng khuôn mặt ứng dụng trong robot tiếp tân
Giới hạn đề tài
Đồ án này nhằm xây dựng hệ thống nhận dạng khuôn mặt thời gian thực sử dụng các thuật toán chuyên biệt Hệ thống được phát triển dựa trên bộ dữ liệu gồm 10 thành viên trong ISLab, với hình ảnh khuôn mặt đầu vào là hình ảnh mặt trước, có thể bị khuyết không quá một nửa và được thu thập trong điều kiện ánh sáng bình thường.
Phương pháp nghiên cứu
Dự án nghiên cứu này được chia thành các chương, mỗi chương đại diện cho một bước tiếp theo trong quá trình phát triển và xây dựng robot Cách tiếp cận này nhằm tiến triển từ nhiệm vụ này sang nhiệm vụ khác, với mỗi bước được định nghĩa để xây dựng dựa trên nhiệm vụ trước đó Nhờ đó, robot được phát triển phù hợp với các yêu cầu và mục tiêu đã đề ra, dẫn đến việc hoàn thành robot trong khung thời gian đã xác định.
Bước đầu tiên, sinh viên phải nghiên cứu các bài báo và khảo sát liên quan đến dự án đã chọn
Bước hai, sau khi đọc những bài báo và khảo sát đó, sinh viên phải chọn phương pháp muốn áp dụng cho dự án
Bước ba, sinh viên cần tìm kiếm và nghiên cứu các tài liệu liên quan đến dự án đã chọn, đặc biệt là các lý thuyết về CNN, Machine Learning, MTCNN và thuật toán ArcFace.
Bước bốn, sinh viên phải xây dựng phần cứng cho hệ thống và ghép chúng lại với nhau
Trong bước năm, sinh viên cần áp dụng các lý thuyết đã học ở bước ba vào hệ thống phần cứng Tiếp theo, bước sáu yêu cầu sinh viên kiểm tra và đo lường độ chính xác của hệ thống để đảm bảo hiệu suất hoạt động.
Giới thiệu nội dung
Chương này tóm tắt các yêu cầu chính của đồ án, bao gồm việc đặt vấn đề, xác định mục tiêu, giới hạn nghiên cứu, phương pháp thực hiện và nội dung tổng quát.
- Chương 2: Cơ sở lý thuyết
Chương này trình bày những kiến thức cơ bản về đồ án nhận dạng khuôn mặt, bao gồm cách thức hoạt động của hệ thống nhận diện, ứng dụng trí tuệ nhân tạo, mạng nơ-ron tích chập (CNN), mạng ResNet, và thuật toán ArcFace trong quá trình nhận dạng khuôn mặt.
- Chương 3: Thiết kế và xây dựng phần cứng
Chương này trình bày chi tiết phần cứng của mô hình, bao gồm hệ thống nhận diện khuôn mặt và mô hình robot được sử dụng
- Chương 4: Phần mềm và thuật toán
Nội dung của chương này bao gồm các phần mềm sử dụng, lưu đồ giải thuật và thuật toán cho từng bước trong hệ thống
- Chương 5: Kết quả thực nghiệm
Chương này được viết sau khi mô hình đã được lắp ráp hoàn chỉnh, hoạt động ổn định và đáp ứng các yêu cầu của đề tài này
- Chương 6: Kết luận và hướng phát triển
Chương này cung cấp kết luận về măt ưu điểm và nhược điểm của đồ án này Từ đó đề xuất ý tưởng hướng phát triển trong tương lai
CƠ SỞ LÝ THUYẾT
HỆ THỐNG NHẬN DẠNG KHUÔN MẶT
Nhận diện khuôn mặt là công nghệ xác định danh tính tự động dựa trên hình ảnh số hoặc video Công nghệ này đã phát triển từ những năm 60 của thế kỷ 20, mang lại nhiều ứng dụng hữu ích trong việc nhận diện và xác thực danh tính.
Khi nghiên cứu nhận dạng khuôn mặt bắt đầu, nhiều phương pháp khác nhau đã được đề xuất để giải quyết vấn đề này Tuy nhiên, chỉ đến cuối thế kỷ, những tiến bộ đáng kể mới được ghi nhận trong lĩnh vực này.
Công nghệ XX đã đạt được nhiều thành tựu đáng kể trong việc nhận dạng khuôn mặt Quy trình giải quyết bài toán này bao gồm bốn bước chính: nhận diện khuôn mặt, căn chỉnh khuôn mặt, trích xuất đặc trưng và so khớp các đặc trưng Hình 2.1 minh họa rõ ràng quy trình này.
Matching), được mô tả trong các phần bên dưới:
Hình 2 1: Hệ thống nhận dạng khuôn mặt
Nhận dạng khuôn mặt là bước quan trọng nhằm xác định sự xuất hiện của khuôn mặt con người trong hình ảnh và xác định vị trí của chúng Kết quả mong đợi từ quá trình này là các khung hình bao quanh từng khuôn mặt trong bức ảnh đầu vào.
Căn chỉnh khuôn mặt là quá trình quan trọng nhằm định hướng các khung hình khuôn mặt, giúp hệ thống nhận diện khuôn mặt hoạt động chính xác hơn và dễ dàng trong việc thiết kế.
Sau khi phát hiện các khuôn mặt trong hình ảnh, quá trình trích xuất đặc trưng diễn ra để lấy các khung hình mặt Việc này giúp đóng gói thông tin, giảm kích thước dữ liệu và loại bỏ nhiễu, tạo điều kiện cho các bước xử lý tiếp theo.
5 khung hình mặt thường được chuyển thành một vector với kích thước cố định hoặc một tập hợp các điểm fiducial và vị trí tương ứng của chúng
Sau khi trích xuất đặc trưng khuôn mặt, bước cuối cùng là nhận dạng danh tính của các khuôn mặt đó Để thực hiện nhận dạng tự động, cần xây dựng cơ sở dữ liệu khuôn mặt với nhiều hình ảnh của mỗi người, từ đó trích xuất và lưu trữ các đặc trưng Khi có hình ảnh khuôn mặt đầu vào, chúng ta sẽ phát hiện và trích xuất đặc trưng, sau đó so sánh với các khuôn mặt đã lưu trữ trong cơ sở dữ liệu Nhiều nghiên cứu và thuật toán đã được đề xuất để giải quyết vấn đề phân loại này.
Hình 2.2 mô tả một ví dụ về bốn bước này hoạt động trên một hình ảnh đầu vào
Hình 2.2 Các bước nhận diện khuôn mặt
Bài viết mô tả quy trình phát hiện khuôn mặt từ hình ảnh đầu vào, bắt đầu bằng việc xác định khuôn mặt với khung hình chữ nhật màu đỏ Sau đó, khuôn mặt được trích xuất và căn chỉnh để đảm bảo tính chính xác Cuối cùng, vector đặc trưng được trích xuất từ khung hình đã được căn chỉnh, tạo thành các dữ liệu quan trọng cho các ứng dụng tiếp theo.
So sánh vector được trích xuất với cơ sở dữ liệu và xác định lớp có thể xảy ra nhất (hình chữ nhật màu đỏ)
Các lý thuyết cần có để xây dựng hệ thống như trên được giới thiệu ở những phần sau.
TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO (AI)
Trí thông minh nhân tạo (AI) đang có sức mạnh to lớn trong việc cách mạng hóa nhiều ngành công nghiệp, trở thành một trong những chủ đề nóng nhất hiện nay Mặc dù vậy, AI thường bị hiểu lầm và chỉ được nhìn nhận như một điều tuyệt vời cho các lĩnh vực nhất định.
Trí thông minh nhân tạo (AI) đang được xem là một yếu tố tiên tiến có khả năng thay thế công nhân và làm biến đổi ngành công nghiệp như chúng ta đã biết AI có thể tự ra quyết định và mô phỏng nhận thức của con người, điều này đòi hỏi máy móc phải hiểu thông tin về môi trường xung quanh, bao gồm không gian vật lý, trạng thái trò chơi và dữ liệu liên quan.
Hình 2.3 Mối quan hệ giữa AI, Machine Learning, Neural Network và Deep learning
Trí thông minh nhân tạo (AI) là một lĩnh vực đa dạng, bao gồm nhiều trường con, kỹ thuật và thuật toán, với mục tiêu tạo ra máy móc có khả năng thông minh như con người Sự khởi đầu của trí tuệ nhân tạo diễn ra vào năm 1956 tại Dartmouth, nơi các nhà nghiên cứu đặt ra mục tiêu lập trình máy tính để hoạt động tương tự như con người Để làm rõ hơn về các mục tiêu của AI, các nhà nghiên cứu đã xác định sáu mục tiêu chính mà họ hướng tới.
• Lý luận logic: Cho phép máy tính thực hiện các nhiệm vụ phức tạp mà con người có khả năng thực hiện
• Trình bày kiến thức: Cho phép máy tính mô tả các đối tượng, con người và ngôn ngữ
• Lập kế hoạch và điều hướng: Cho phép máy tính đi từ điểm A đến điểm B
• Xử lý ngôn ngữ tự nhiên (NLP): Máy tính có thể tương tác thông qua hiểu ngôn ngữ tự nhiên được nói bởi con người
• Nhận thức: Cho phép máy tính tương tác với thế giới thông qua thị giác, thính giác, xúc giác và khứu giác
Trí thông minh mới nổi là một loại trí thông minh không được lập trình một cách rõ ràng, mà phát sinh từ các tính năng AI hiện có Mục tiêu của nghiên cứu này là phát triển những cỗ máy có khả năng thể hiện trí tuệ cảm xúc và lý luận đạo đức.
Bài viết này không phân loại các thuật toán và kỹ thuật cụ thể trong Trí tuệ nhân tạo, mà chỉ đề cập đến sáu thuật toán và kỹ thuật chính trong lĩnh vực này.
• Machine Learning là lĩnh vực trí tuệ nhân tạo cung cấp cho máy tính khả năng học mà không cần lập trình rõ ràng
• Tìm kiếm và tối ưu hóa: Các thuật toán như Gradient Descent để lặp lại tìm kiếm các điểm cực đại cục bộ và cực tiểu cục bộ
Lý luận xác suất kết hợp lý thuyết xác suất để quản lý sự không chắc chắn và khả năng suy luận logic nhằm khai thác cấu trúc của lập luận chính thức.
• Sự thỏa mãn ràng buộc: là quá trình tìm giải pháp cho một tập hợp các ràng buộc áp đặt các điều kiện mà các biến phải thỏa mãn
Lý thuyết điều khiển là một phương pháp chính thức nhằm xác định các bộ điều khiển với các thuộc tính có thể chứng minh Phương pháp này thường liên quan đến hệ thống các phương trình vi phân, thường được sử dụng để mô tả các hệ thống vật lý như robot hoặc máy bay.
Hình 2.3 mô tả mối quan hệ giữa Trí tuệ nhân tạo (AI), Machine Learning, Neural
Machine Learning là một nhánh của Trí tuệ nhân tạo, cho phép máy tính tự học từ dữ liệu mà không cần lập trình cụ thể Khái niệm này được Arthur Samuel giới thiệu vào năm 1959, đánh dấu một bước ngoặt quan trọng trong sự phát triển của Machine Learning, được thúc đẩy bởi sự ra đời của internet Internet tạo ra một khối lượng lớn thông tin kỹ thuật số, cung cấp nền tảng cho việc phân tích dữ liệu, dẫn đến sự phát triển của Big Data Các thuật toán Machine Learning đã chứng minh hiệu quả trong việc khai thác và sử dụng Big Data một cách tối ưu.
Các hình thức học tập trong Machine Learning bao gồm Học có giám sát, Học không giám sát, Học bán giám sát và Học củng cố Mỗi loại thuật toán này có những ưu điểm và nhược điểm riêng, phù hợp với các ứng dụng khác nhau trong việc đào tạo mạng lưới thần kinh nhân tạo.
Học có giám sát là một phương pháp trong Machine Learning, sử dụng các cặp dữ liệu (input, outcome) đã biết để dự đoán đầu ra cho dữ liệu mới Các cặp này thường được gọi là (data, label) và là nền tảng cho nhiều thuật toán phổ biến trong lĩnh vực này.
Thuật toán phân loại và hồi quy là hai ví dụ tiêu biểu trong lĩnh vực học máy Để xác định xem một bức ảnh có chứa xe máy hay không, cần chuẩn bị tập dữ liệu bao gồm các bức ảnh có xe máy và không có xe máy kèm theo nhãn tương ứng Dữ liệu này sẽ được sử dụng để huấn luyện mô hình phân loại.
Học có giám sát trong toán học xảy ra khi dự đoán mối quan hệ giữa đầu ra y và đầu vào x dựa trên các cặp dữ liệu trong tập huấn luyện Quá trình huấn luyện nhằm xây dựng hàm số 𝑓(𝑥) sao cho kết quả dự đoán gần nhất với giá trị thực tế 𝑦 cho mọi cặp dữ liệu Điều này cũng có nghĩa là khi gặp một điểm dữ liệu mới ngoài tập huấn luyện, đầu ra dự đoán 𝑓(𝑥) vẫn cần phải gần với giá trị thực tế 𝑦.
Trong thuật toán học không giám sát, nhãn của dữ liệu đầu vào không được biết đến Thuật toán này dựa vào cấu trúc của dữ liệu để thực hiện các nhiệm vụ như phân cụm (clustering) hoặc giảm số chiều của dữ liệu (dimension reduction), nhằm tối ưu hóa việc lưu trữ và tính toán.
Các bài toán học không giám sát được chia nhỏ thành hai loại:
Phân cụm: Một bài toán phân cụm toàn bộ dữ liệu X thành các nhóm nhỏ dựa trên sự liên quan giữa các dữ liệu trong mỗi nhóm
Asociation: Là bài toán khi chúng ta muốn khám phá ra một quy luật dựa trên nhiều dữ liệu cho trước
Học bán giám sát là một phương pháp học máy kết hợp giữa học có giám sát và học không giám sát Thuật toán này đặc biệt hữu ích khi bạn có một lượng lớn dữ liệu X, nhưng chỉ một phần nhỏ trong số đó được gán nhãn.
Học củng cố là một thuật toán Machine Learning cho phép mô hình ra quyết định mà không cần dữ liệu huấn luyện, thông qua việc tương tác với môi trường xung quanh Các thuật toán này liên tục đưa ra quyết định và nhận phản hồi từ môi trường, từ đó tự củng cố và cải thiện hành vi của mình.
CONVOLUTIONAL NEURAL NETWORK
Mạng nơ-ron tích chập (CNN) là mô hình học sâu hàng đầu trong lĩnh vực thị giác máy tính Công nghệ thị giác máy tính đã phát triển mạnh mẽ, đến mức hiện nay nó vượt trội hơn con người trong một số nhiệm vụ nhất định, và CNN đóng vai trò quan trọng trong thành công này.
Mạng nơ-ron tích chập (CNN) được sử dụng để đánh giá đầu vào thông qua các kết quả, với đầu vào được tích hợp cùng một bộ lọc Quá trình tích chập giúp mạng phát hiện các cạnh và tính năng cấp thấp trong các lớp trước, đồng thời nhận diện các tính năng phức tạp hơn trong các lớp sâu hơn CNN thường kết hợp với các lớp gộp và có các lớp kết nối đầy đủ ở cuối Quá trình đào tạo CNN diễn ra thông qua lan truyền ngược và giảm hàm mất mát, tương tự như trong các mạng nơ-ron truyền thống.
Phân loại hình ảnh là quá trình nhận diện và gán nhãn cho hình ảnh đầu vào, như mèo hay chó, dựa trên xác suất của các lớp mô tả Đối với con người, kỹ năng này là một trong những khả năng đầu tiên chúng ta phát triển từ khi sinh ra, diễn ra một cách tự nhiên và dễ dàng Chúng ta có thể nhanh chóng nhận diện môi trường xung quanh và các đối tượng mà không cần suy nghĩ nhiều Khi nhìn thấy một hình ảnh hay quan sát thế giới, chúng ta thường có thể ngay lập tức mô tả cảnh vật và gán nhãn cho từng đối tượng mà không hề nhận thức được điều đó.
Khi một máy tính tiếp nhận một hình ảnh, nó sẽ nhận diện một mảng giá trị pixel Độ phân giải và kích thước của hình ảnh quyết định rằng máy tính sẽ xử lý một dãy số 32 x 32 x 3, trong đó số 3 đại diện cho các giá trị màu RGB.
Hình 2.7 Máy tính nhìn hình ảnh dưới dạng ma trận số
(a) Con người thấy, (b) máy tính thấy
Mỗi pixel trong hình ảnh được gán một giá trị từ 0 đến 255, thể hiện cường độ ánh sáng tại điểm đó Mặc dù những con số này có vẻ vô nghĩa với con người khi phân loại hình ảnh, nhưng chúng là đầu vào duy nhất mà máy tính có thể sử dụng Mục tiêu là cung cấp cho máy tính một mảng các giá trị này, từ đó máy tính sẽ xuất ra các số liệu mô tả xác suất hình ảnh thuộc về một lớp cụ thể nào đó.
Máy tính cần có khả năng phân biệt giữa các hình ảnh khác nhau và nhận diện các đặc điểm độc đáo của chó và mèo Quá trình này tương tự như cách mà con người tự động phân loại hình ảnh dựa trên các đặc điểm nhận dạng như số lượng chân Máy tính thực hiện phân loại hình ảnh bằng cách tìm kiếm các tính năng cơ bản như cạnh và đường cong, từ đó xây dựng các khái niệm trừu tượng hơn thông qua các lớp chập.
2.3.2 Kiến trúc Convolutional Neural Network
Các mô hình CNN có kiến trúc tương tự nhau, được sử dụng để đào tạo và kiểm tra hình ảnh Mỗi hình ảnh đầu vào sẽ được xử lý qua nhiều lớp chập với các bộ lọc (Kernels) khác nhau.
- Lớp Convolutional: Dùng để trích xuất các đặc trưng
- Lớp non-linearity: Giới thiệu phi tuyến tính cho hệ thống
- Lớp Pooling: Giảm số lượng trọng số và kiểm soát overfitting
- Lớp Fully-Connected: Mạng thần kinh tiêu chuẩn để phân loại
Hình 2.8 Cấu trúc mạng CNN
Convolution là lớp đầu tiên trong quá trình trích xuất tính năng từ hình ảnh đầu vào, giúp duy trì mối quan hệ giữa các pixel Bằng cách sử dụng các ô vuông nhỏ của dữ liệu, convolution tìm hiểu các đặc trưng hình ảnh thông qua một hoạt động toán học với hai đầu vào: ma trận hình ảnh và bộ lọc hoặc hạt nhân.
Trong Hình 2.10, phía trên bên trái thể hiện đầu vào của lớp tích chập, minh họa cho hình ảnh đầu vào Phía bên phải là bộ lọc tích chập, hay còn gọi là kernel, và chúng ta sẽ sử dụng hai thuật ngữ này thay thế cho nhau Bộ lọc này được gọi là tích chập 3x3 do kích thước của nó.
Hình 2.9 Đầu vào và bộ lọc của convolutional layer
(a) Hình ảnh đầu vào, (b) kernel
Lớp chập là khối xây dựng chính của mạng nơ-ron tích chập (CNN), nơi phép toán tích chập được sử dụng để kết hợp hai bộ thông tin Cụ thể, tích chập được áp dụng lên dữ liệu đầu vào thông qua bộ lọc tích chập, nhằm tạo ra bản đồ đặc trưng, như minh họa trong hình 2.11 và hình 2.12.
Hình 2.10 Hoạt động tích chập CNN
Hình 2.11 Kết quả của hoạt động tích chập (a) Làm mờ ảnh, (b) Phát hiện cạnh
Công thức toán học của phép toán tích chập
ℎ 𝑗=1 𝑖=1 (2.1) Trong đó I là hình ảnh đầu vào, K là kích thước bộ lọc ℎ × 𝑤
Chúng ta thực hiện thao tác tích chập bằng cách trượt bộ lọc qua đầu vào, tại mỗi vị trí, thực hiện phép nhân ma trận phần tử và tính tổng kết quả Tổng này được đưa vào bản đồ đặc trưng, trong khi vùng màu đỏ nơi hoạt động tích chập diễn ra được gọi là trường tiếp nhận, có kích thước 3x3 tương ứng với kích thước của bộ lọc.
Kích thước đầu ra của lớp chập phụ thuộc vào kích thước đầu vào và kích thước của cửa sổ trượt nhân chập Giả sử kích thước đầu vào là ℎ × 𝑤 và kích thước của cửa sổ nhân chập là 𝑘 ℎ × 𝑘 𝑤, thì kích thước đầu ra sẽ được xác định dựa trên các thông số này.
Ví dụ như trong hình 2.11, hình ảnh đầu vào có kích thước là 7x7 và bộ lọc có kích thước là 3x3, đầu ra sẽ có kích thước là (7-3+1) × (7-3+1) hay 5×5
Khi sử dụng 10 bộ lọc khác nhau trong lớp tích chập, chúng ta sẽ thu được 10 bản đồ đặc trưng có kích thước 32x32x1 Khi xếp chúng theo chiều sâu, đầu ra cuối cùng sẽ có kích thước 32x32x10, như hiển thị trong hộp lớn màu xanh bên phải Chiều cao và chiều rộng của bản đồ đặc trưng giữ nguyên ở mức 32, điều này là nhờ vào phần đệm sẽ được giải thích trong phần sau.
Hình 2.12 Thực hiện nhiều phép tích chập trên một đầu vào
Hình 2.13 Hoạt động tích chập cho mỗi bộ lọc
Sau mỗi lớp convolutional, thường có một lớp phi tuyến, được gọi là lớp kích hoạt, để đảm bảo mạng nơ-ron không chỉ hoạt động như một hàm tuyến tính Điều này là cần thiết vì nếu không có lớp phi tuyến, đầu ra sẽ chỉ là sự kết hợp tuyến tính của các đầu vào Trước đây, các hàm kích hoạt như sigmoid và tanh thường được sử dụng, nhưng hàm ReLU đã chứng minh là hiệu quả nhất trong việc tăng tốc độ đào tạo của mạng nơ-ron Lớp kích hoạt này thường sử dụng hàm ReLU, loại bỏ các giá trị âm bằng cách đặt chúng về 0, theo công thức 𝑓(𝑥) = max (0, 𝑥).
Stride xác định mức độ di chuyển của bộ lọc tích chập tại mỗi bước, với giá trị mặc định là 1 Nếu muốn giảm thiểu sự chồng chéo giữa các trường tiếp nhận, chúng ta có thể tăng kích thước bước Điều này cũng dẫn đến việc bản đồ đặc trưng có kết quả nhỏ hơn.
MTCNN (Multi-task Cascade Convolutional Neural Networks)
Hình 2.21 Quá trình tổng thể của MTCNN
• Tạo một kim tự tháp hình ảnh:
Kích thước tỷ lệ được tính như sau:
Kích thước tối thiểu không thể nhỏ hơn 12 – nghĩa là thu nhỏ hình ảnh đến 12
Số n là số lượng hình ảnh có thể thu nhỏ
Phân loại khuôn mặt là một bài toán học máy được thiết kế như một vấn đề phân loại hai lớp Đối với mỗi mẫu 𝑥 𝑖, chúng ta áp dụng hàm mất mát entropy chéo để tối ưu hóa mô hình.
Trong đó 𝑝 𝑖 là xác suất được tạo bởi mạng chỉ ra mẫu 𝑥 𝑖 là một khuôn mặt Ký hiệu 𝑦 𝑖 𝑑𝑒𝑡 ∈ {0, 1} biểu thị nhãn thực sự
Trong mỗi cửa sổ ứng viên, chúng ta ước lượng độ lệch giữa nó và hộp giới hạn thực tế Mục tiêu học tập được định hình như một bài toán hồi quy, và chúng ta áp dụng hàm mất mát Euclidean cho từng mẫu 𝑥 𝑖.
Trong bài viết này, 𝑦̂ 𝑖 𝑏𝑜𝑥 đại diện cho mục tiêu hồi quy từ mạng, trong khi 𝑦 𝑖 𝑏𝑜𝑥 là tọa độ thực tế Có bốn tọa độ cần xem xét, bao gồm đỉnh trái, chiều cao và chiều rộng, dẫn đến 𝑦 𝑖 𝑏𝑜𝑥 𝑅 4.
Định vị mốc mặt là một nhiệm vụ quan trọng trong việc hồi quy hộp giới hạn, được xem như một vấn đề hồi quy Để thực hiện điều này, chúng ta sử dụng hàm mất mát Euclidean để tối ưu hóa kết quả.
Trong nghiên cứu này, 𝑦̂ 𝑖 𝑙𝑎𝑛𝑑𝑚𝑎𝑟𝑘 đại diện cho tọa độ mốc mặt được thu thập từ mạng, trong khi 𝑦 𝑖 𝑙𝑎𝑛𝑑𝑚𝑎𝑟𝑘 là tọa độ thực tế của mẫu thứ 𝑖 Tổng cộng có năm mốc mặt cần được xác định, bao gồm mắt trái, mắt phải, mũi, góc miệng trái và góc miệng phải, vì vậy 𝑦 𝑖 𝑙𝑎𝑛𝑑𝑚𝑎𝑟𝑘 thuộc không gian 𝑅 10.
2.4.2 Cấu trúc mạng MTCNN cho nhận diện
MTCNN hoạt động qua ba bước chính, mỗi bước sử dụng một mạng nơ-ron riêng biệt Đầu tiên, mạng đề xuất P-Net (Proposal Network) dự đoán các vùng có khả năng chứa khuôn mặt Tiếp theo, mạng tinh chế R-Net (Refine Network) sử dụng đầu ra từ P-Net để loại bỏ các vùng không phải khuôn mặt Cuối cùng, mạng đầu ra O-Net (Output Network) dựa vào kết quả từ R-Net để đưa ra kết quả cuối cùng.
22 cùng với 5 điểm đánh dấu khuôn mặt: 2 điểm mắt, 1 điểm mũi và 2 điểm khóe miệng (Hình 2.24)
Mạng P-Net được xây dựng trên kiến trúc CNN với 3 lớp tích chập và 1 lớp co Đầu vào của mạng là cửa sổ trượt có kích thước 12x12x3, trong đó 3 đại diện cho ba màu cơ bản trong hệ màu RGB: đỏ, xanh lục và xanh lam.
Lớp tích chập 1: Lớp tích chập với số bộ lọc:10, stride = 1, padding = 0, hàm kích hoạt = PReLU, kích thước bộ lọc: 3 x 3 x 10, số lượng tham số: (3 x 3 x 3 + 1) x 10 (0, đầu ra 10x10x10
Lớp co: Maxpooling kích thước 2x2, stride = 2, padding = 0 Khi đó kích thước đầu ra của dữ liệu giảm đi 1/2, với chiều sâu được giữ nguyên còn 5x5x10
Lớp tích chập 2: Kích thước đầu vào 5x5x10, số bộ lọc: 16, stride = 1, padding
= 0, hàm kích hoạt = PReLU, kích thước bộ lọc: 3 x 3 x 16, số tham số: (3x3x10+1) x 1656, đầu ra: 3x3x16
Lớp tích chập 3: Kích thước đầu vào 3x3x16, số bộ lọc: 32, stride = 1, padding
= 0, hàm kích hoạt Softmax, kích thước bộ lọc: 3x3x32, số lượng tham số: (3 x 3 x
Kết quả của P-Net cho thấy mạng đã phân chia thành 3 cụm Cụm đầu tiên bao gồm 2 bộ lọc kích thước 1x1 chuyên nhận dạng khuôn mặt, trong khi cụm thứ hai có 4 bộ lọc kích thước 1x1 được sử dụng để đóng khung.
4 vị trí hộp giới hạn và cụm còn lại có 10 bộ lọc kích thước 1x1 đóng khung 10 vị trí khuôn mặt
Trong bước R-Net, kiến trúc CNN được áp dụng với 3 lớp chập, 2 lớp co và 1 lớp kết nối đầy đủ Dữ liệu đầu vào là cửa sổ trượt có kích thước 24x24x3, trong đó 3 đại diện cho 3 màu cơ bản: đỏ, xanh lục và xanh lam theo hệ màu RGB.
Lớp tích chập 1: Kích thước đầu vào 24x24x3, số bộ lọc: 28, stride = 1, padding
= 0, hàm kích hoạt = PReLU, kích thước bộ lọc: 3x3x28, số tham số: (3x3x3+1) x 28
Lớp co: sử dụng kỹ thuật MP kích thước 3x3, stride = 2, padding = 1, kích thước đầu ra của dữ liệu giảm 1/2, chiều sâu dữ liệu giữ nguyên là 11x11x28
Lớp tích chập 2: Kích thước đầu vào 11x11x28, số bộ lọc: 48, stride = 1, padding
= 0, hàm kích hoạt = PReLU, kích hoạt bộ lọc: 3x3x28, số tham số: (3x3x28 + 1) x
Lớp co: sử dụng kỹ thuật MP kích thước 3x3, stride = 2, padding = 0, kích hoạt
= PReLU, kích thước bộ lọc: 2x2x64, số lượng tham số: (2x2x48+1) x 64 352, kích thước đầu ra: 3x3x64
Lớp kết nối đầy đủ: Kích thước đầu vào 3x3x64, hàm kích hoạt = Softmax, số tham số: (3x3x64+1) x 128s856, đầu ra 128
R-Net cho ra kết quả phân chia thành 3 cụm: cụm thứ nhất gồm 2 lớp nhận diện khuôn mặt, cụm thứ hai chứa 4 lớp đánh dấu vị trí hộp giới hạn, và cụm cuối cùng có 10 lớp xác định vị trí khuôn mặt.
Mạng O-Net được cấu trúc với 4 lớp tích chập, 2 lớp co và 1 lớp kết nối đầy đủ Đầu vào của mạng có kích thước 48x48x3, trong đó 3 đại diện cho ba màu cơ bản trong hệ màu RGB: đỏ, xanh lục và xanh lam.
Lớp tích chập 1: kích thước đầu vào 48x48x3, số bộ lọc: 32, stride = 1, padding
= 2, hàm kích hoạt = PReLU, kích thước bộ lọc: 3x3x32, số lượng tham số: (3x3x3+1) x 326, đầu ra: 46x46x32
Lớp co: sử dụng kỹ thuật MP kích thước 3x3, stride = 2, padding = 1 Khi đó kích thước đầu ra của dữ liệu giảm đi với chiều sâu được giữ nguyên còn 23x23x32
Lớp tích chập 2: Kích thước đàu vào: 23x23x32, số bộ lọc: 64, stride=2, padding
= 1, hàm kích hoạt = PReLu, kích thước bộ lọc: 3x3x28, số lượng tham số: (3x3x32+1) x 64 = 18496, đầu ra:12x12x64
Lớp co: sử dụng kỹ thuật MP kích thước 2x2, stride = 2, padding = 0, khi đó kích thước đầu ra của dữ liệu giảm với chiều sâu được giữ nguyên còn 10x10x64
Lớp tích chập 3: Kích thước đầu vào: 10x10x64, số bộ lọc: 64, stride = 1, padding
= 0, hàm kích hoạt = PReLU, kích thước bộ lọc: 3x3x32, số lượng tham số: (3x3x64+1) x 646928, đầu ra: 8x8x64
Lớp co: Sử dụng kỹ thuật MP kích thước 2x2, stride = 2, padding = 0, khi đó kích thước đầu ra của dữ liệu giảm 1/2 với chiều sâu được giữ nguyên tức là: 4x4x64
Lớp tích chập 4: Kích thước đầu vào 4x4x64, số bộ lọc: 128, stride = 1, padding
= 0, hàm kích hoạt = PReLu, kích thước bộ lọc: 2x2x128, số lượng tham số: (2x2x64+1) x 1242896, kích thước đầu ra: 3x3x128
Lớp kết nối đầy đủ với kích thước đầu vào 3x3x128, hàm kích hoạt Softmax, số lượng tham số: (3x3x128+1) x 256)5168, kích thước đầu ra lớp kết nối đầy đủ:
Kết quả của O-Net được phân chia thành ba cụm: cụm đầu tiên bao gồm hai lớp nhận dạng khuôn mặt, cụm thứ hai có bốn lớp đánh dấu vị trí hộp giới hạn, và cụm cuối cùng chứa mười vị trí khuôn mặt.
Mạng ResNet
2.5.1 Khái niệm về mạng ResNet
ResNet (mạng nơron dư) là một kiến trúc học sâu nổi bật từ năm 2012, đặc biệt sau thành công của cuộc thi LSVRC2012, và đã trở thành công cụ quan trọng trong lĩnh vực computer vision Kiến trúc này cho phép huấn luyện các mạng nơron với hàng trăm đến hàng nghìn lớp một cách hiệu quả Nhờ vào khả năng biểu diễn mạnh mẽ, ResNet không chỉ nâng cao hiệu suất của các ứng dụng phân loại hình ảnh mà còn cải thiện đáng kể các ứng dụng như phát hiện đối tượng và nhận dạng khuôn mặt.
Theo định lý gần đúng phổ quát, mạng nơron truyền thẳng có khả năng xấp xỉ mọi hàm với dữ liệu huấn luyện, miễn là không vượt quá sức chứa Tuy nhiên, mục tiêu không chỉ là xấp xỉ tốt dữ liệu mà còn cần một mô hình có khả năng tổng quát hóa Điều này giải thích tại sao các kiến trúc sâu ngày càng trở nên phổ biến trong cộng đồng nghiên cứu.
Kể từ AlexNet, các kiến trúc CNN ngày càng sâu hơn Trong khi AlexNet chỉ có
Mạng VGG và GoogleNet (Inception_v1) có 19 và 22 lớp tích chập tương ứng, nhưng việc tăng độ sâu của mạng không chỉ đơn thuần là xếp chồng các lớp lên nhau Việc này gặp khó khăn trong quá trình huấn luyện do vấn đề vanishing gradient, khi gradient được truyền ngược lại qua các lớp trước đó và phép nhân lặp lại có thể làm cho gradient trở nên cực nhỏ Kết quả là hiệu suất của mạng có thể bị bão hòa hoặc giảm nhanh chóng.
Hình 2.25 Mối tương quan giữa độ sâu và hiệu suất mạng [10]
Ý tưởng chính của ResNet là áp dụng kết nối tắt đồng nhất để vượt qua một hoặc nhiều lớp, tạo thành các mô-đun residual, như được minh họa trong hình 2.26.
ResNet không phải là kiến trúc đầu tiên áp dụng các kết nối tắt; trước đó, Highway Network đã sử dụng kiến trúc cổng để kiểm soát thông tin qua các kết nối này Các cổng tham số hóa trong Highway Network và LSTM đều có chức năng điều chỉnh lượng thông tin được truyền Mặc dù ResNet có thể được xem như một trường hợp đặc biệt của Highway Network, nhưng các thử nghiệm cho thấy Highway Network không hoạt động hiệu quả hơn ResNet, điều này gây khó hiểu vì Highway Network cung cấp một giải pháp tổng quát hơn.
Sau khi ResNet ra mắt, nhiều biến thể của kiến trúc này đã được phát triển, cho phép huấn luyện mạng nơron với độ sâu lên tới hàng nghìn lớp Nhờ vào những cải tiến này, ResNet nhanh chóng trở thành một trong những kiến trúc phổ biến nhất trong lĩnh vực thị giác máy tính.
Mô-đun Residual và Bottlenecks Residual
Mô-đun Residual, được giới thiệu vào năm 2015, sử dụng ánh xạ định danh để kết hợp đầu vào ban đầu với đầu ra của các hoạt động khác Kiến trúc của mô-đun này bao gồm một nhánh bên phải với kết nối tuyến tính giữa đầu vào và hoạt động bổ sung, trong khi nhánh bên trái thực hiện một chuỗi các lớp convolution 3x3, hàm Relu và batch normalization, tạo thành một cấu trúc chuẩn trong việc xây dựng mạng nơ-ron tích chập (CNN).
Mô-đun Residual và Bottlenecks Residual trong ResNet là điểm nổi bật, nơi đầu vào ban đầu được thêm vào đầu ra của lớp CONV, RELU và BN Khác với các mạng thần kinh truyền thống, mô-đun residual cố gắng xấp xỉ giá trị đầu ra y thông qua công thức 𝑓(𝑥) + 𝑖𝑑(𝑥) = 𝑓(𝑥) + 𝑥, trong đó 𝑖𝑑(𝑥) là hàm nhận dạng Bắt đầu từ hàm nhận dạng, các mô-đun residual phát triển dần để trở nên phức tạp hơn khi mạng học, cho phép đào tạo các mạng sâu hơn đáng kể so với các kiến trúc mạng trước đó.
Mạng ResNet có khả năng học nhanh hơn nhờ vào việc đầu vào được tích hợp trong mọi mô-đun, cho phép sử dụng tỷ lệ học lớn hơn, thường bắt đầu từ 1𝑒 −1 Tuy nhiên, với các kiến trúc như AlexNet hoặc VGGNet, tỷ lệ học cao này có thể dẫn đến tình trạng mạng không hội tụ.
Trong hình 2.27(b), một phần mở rộng của mô-đun residual được gọi là bottlenecks, với ánh xạ nhận dạng tương tự Các lớp CONV ở nhánh bên trái của mô-đun residual đã được điều chỉnh để cải thiện hiệu suất.
• Sử dụng ba lớp CONV thay vì hai lớp
• Các lớp CONV đầu tiên và cuối cùng có cấu trúc 1x1
• Số lượng bộ lọc đã học trong hai lớp CONV đầu tiên là 1/4 số lượng bộ lọc đã học trong CONV cuối cùng
Hình 2.28 mô tả một quá trình “bottleneck”, trong đó hai mô-đun residual xếp chồng lên nhau
Hình 2.28 Hình ảnh 2 mô-đun residual xếp chồng lên nhau
Mô-đun residual đầu tiên nhận đầu vào có kích thước 𝑀 × 𝑁 × 64 và bao gồm ba lớp CONV với các bộ lọc 𝐾 lần lượt là 32, 32 và 128 Sau khi xử lý qua mô-đun residual đầu tiên, kích thước đầu ra đạt 𝑀 × 𝑁 × 128, sau đó dữ liệu được tiếp tục đưa vào mô-đun residual thứ hai.
Trong mô-đun residual thứ hai, số lượng bộ lọc được giữ nguyên 𝐾 = 32, 32 và
128 Tuy nhiên 32 < 128 tương ứng giảm kích thước số chiều trong các lớp CONV
Mô-đun residual sử dụng cấu trúc 1 × 1 và 3 × 3, tạo ra nút cổ chai 3 × 3 với kích thước đầu vào nhỏ hơn kích thước đầu ra Cuối cùng, lớp CONV 1 × 1 áp dụng số lượng bộ lọc gấp 4 lần so với hai lớp CONV đầu tiên, dẫn đến việc tăng kích thước một lần nữa.
Trong quá trình đào tạo mạng ResNet, các biến thể bottleneck của mô-đun residual thường được ưa chuộng hơn so với phiên bản gốc, đặc biệt là trong các triển khai ResNet với số lượng lớp lớn hơn 50.
Xem xét lại mô-đun Residual
In 2016, He et al published their second paper on the residual module titled "Identity Mappings in Deep Residual Networks." This publication presents a comprehensive study, both theoretical and experimental, focusing on the arrangement of convolutional layers, activation functions, and batch normalization (BN) within the residual module featuring a bottleneck structure.
Hình 2.29 Mô-đun residual mới
(a) Mô-đun residual với bottleneck (b) Điều chỉnh mô-đun bottleneck để sử dụng tiền kích hoạt
Mô đun residual với bottleneck nhận đầu vào (hàm kích hoạt ReLU) và sau đó áp dụng một loạt (CONV => BN => RELU) => (CONV => BN => ReLU) => CONV
Trước khi thêm đầu ra vào đầu vào ban đầu và áp dụng hàm kích hoạt ReLU, BN được thực hiện Tuy nhiên, He và các cộng sự đã phát hiện ra một thứ tự lớp tối ưu hơn, giúp đạt được độ chính xác cao hơn, được gọi là phương pháp tiền kích hoạt.
Hàm mất mát ArcFace cho nhận dạng khuôn mặt
Hình 2.42 Đào tạo một DCNN nhận dạng khuôn mặt với hàm mất mát softmax
Hàm mất mát được sử dụng rộng rãi trong nhận dạng khuôn mặt [14] là hàm softmax, được trình bày như sau:
Trong đó 𝑥 𝑖 ∈ 𝑅 𝑑 biểu thị đặc trưng của mẫu thứ i, thuộc lớp 𝑦 𝑖 𝑊 𝑗 ∈ 𝑅 𝑑 biểu thị cột thứ j của các trọng số 𝑊 ∈ 𝑅 𝑑×𝑛 trong lớp được kết nối đầy đủ cuối cùng, và
𝑏 ∈ 𝑅 𝑛 là bias Batch size và số lớp lần lượt là m, n Tuy nhiên, hàm mất mát Softmax
36 không tối ưu hóa rõ ràng các đặc trưng có điểm tương tự cao hơn cho các cặp positive và điểm tương tự thấp hơn cho các cặp negative
Chuẩn hóa đặc trưng là một phương pháp phổ biến trong xác minh khuôn mặt, trong đó chuẩn 𝐿2 và khoảng cách cosin được sử dụng để đánh giá chất lượng khuôn mặt Nghiên cứu cho thấy chuẩn 𝐿2 của các đặc trưng học được qua hàm mất mát Softmax phản ánh chất lượng khuôn mặt, với các đặc trưng của khuôn mặt rõ nét có chuẩn 𝐿2 cao, trong khi các khuôn mặt mờ hoặc ở tư thế cực đoan có chuẩn 𝐿2 thấp Bằng cách thêm ràng buộc 𝐿2 vào các mô tả đặc trưng và giới hạn chúng trong một siêu cầu bán kính cố định, hiệu suất xác minh khuôn mặt có thể được cải thiện đáng kể thông qua việc áp dụng các framework deep learning.
Hình 2.43 Đào tạo một DCNN để nhận dạng khuôn mặt với hàm mất mát ArcFace
Bằng cách điều chỉnh trọng số 𝑊 𝑗 sao cho ‖𝑊 𝑗 ‖ = 1 theo chuẩn 𝐿 2 và nhúng đặc tính 𝑥 𝑖 thành s (sd), tức là bán kính siêu cầu, chúng ta có thể thiết lập các giới hạn dưới cho mẫu số Do đó, hàm mất mát sẽ được chuyển đổi tương ứng.
𝑚 𝑖=1 (2.11) Sau đó thêm một góc lề m vào cos 𝜃 ta được hàm mất mát ArcFace:
Hàm Softmax
Trong hàm softmax ban đầu, nó sẽ phân bổ đặc trưng nhúng 𝑥 𝑖 cho lớp j tương ứng với trọng lượng 𝑊 𝑗 gần nhất
Tuy nhiên, trong hàm mất mát ArcFace (với lề góc m), trọng số lớp thực sự
𝑊 𝑗 không chỉ cần là trọng số gần nhất với đặc trưng nhúng 𝑥 𝑖 mà còn là trọng lượng gần nhất trong khi thêm góc m
Hình 2.44 Ví dụ về sự mất mát của softmax và ArcFace trên 8 danh tính [17]
Các bài toán phân loại thường yêu cầu xử lý nhiều lớp dữ liệu, và hồi quy softmax là một phương pháp mở rộng hiệu quả để khắc phục những hạn chế của hồi quy logistic Mặc dù có tên gọi “hồi quy”, phương pháp này thực chất được áp dụng cho các bài toán phân loại Hồi quy softmax hiện đang là một trong những thành phần phổ biến nhất trong các bộ phân loại.
2.7.1 Entropy chéo Đầu ra của mạng softmax, 𝑎 = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥(𝑊 𝑇 𝑋), là một vector có số phần tử bằng số lớp dữ liệu Các phần tử của vector này là các số dương có tổng bằng một, thể hiện xác suất để điểm đầu vào rơi vào từng lớp dữ liệu Với một điểm dữ liệu huấn luyện thuộc lớp thứ c, mong muốn xác suất với lớp này càng cao càng tốt, tức càng gần một càng tốt Việc này kéo theo các phần tử còn lại gần với không Một cách tự nhiên, đầu ra thực sự y là một vector có tất cả các phần tử bằng không trừ phần tử ở vị trí thứ c bằng một Cách biểu diễn nhãn dưới dạng này được gọi là mã hóa one-hot
Hàm mất mát của hồi quy softmax được thiết kế để tối thiểu hóa sự khác biệt giữa đầu ra dự đoán 𝑎 và đầu vào thực sự 𝑦 dưới dạng one-hot Khi cả hai là vector xác suất, khoảng cách giữa chúng được đo bằng hàm entropy chéo 𝐻(𝑦, 𝑎) Đặc điểm nổi bật của hàm này là khi 𝒚 được cố định, giá trị của hàm sẽ đạt mức tối thiểu khi 𝒂 = 𝒚, và sẽ tăng lên nếu 𝑎 càng khác 𝑦.
Entropy chéo giữa hai vector phân phối rời rạc được định nghĩa bởi
Hình 2.45 So sánh hàm entropy chéo và hàm bình phương khoảng cách [19]
Hình 2.33 thể hiện ưu điểm của hàm entropy chéo so với hàm bình phương khoảng cách Euclid
• Giá trị nhỏ nhất của hai hàm số đạt được khi q = p tại hoành độ các điểm được đánh dấu
Hàm entropy chéo có giá trị cao khi phân phối p và q cách xa nhau, cho thấy mức độ mất mát thông tin lớn Ngược lại, sự mất mát thông tin khi p và q gần nhau theo hàm bình phương khoảng cách (𝑞 − 𝑝)² là không đáng kể.
Hình 2.46 Mô hình hồi quy Softmax dưới dạng NN [19]
Trong trường hợp có C lớp dữ liệu, mất mát giữa đầu ra dự đoán và đầu ra thực sự của một điểm dữ liệu 𝒙 𝒊 với nhãn 𝒚 𝒊 được tính bởi
Với 𝑦 𝑗𝑖 và 𝑎 𝑗𝑖 lần lượt là phần tử thứ j của vector xác suất 𝑦 𝑖 và 𝑎 𝑖 Đầu ra 𝑎 𝑖 phụ thuộc vào đầu vào 𝑥 𝑖 và ma trận trọng số 𝑊
Khi sử dụng toàn bộ tập huấn luyện 𝑥 𝑖 , 𝑦 𝑖 , 𝑖 = 1, 2, … , 𝑁, hàm mất mát của hồi quy softmax:
Biến đổi hình học trong xử lý ảnh
Biến đổi hình học là một ánh xạ một-một giữa hai tập hợp điểm, dựa trên cùng một quy tắc Điều này có nghĩa là phép biến đổi hình học chuyển đổi tọa độ của điểm hoặc vector này sang tọa độ hoặc vector khác.
Các phép biến đổi thường gặp
• Phép biến đổi tuyến tính- Linear transformation
Phép tỉ lệ - Scale: Thay đổi kích thước ảnh theo tỉ lệ của từng trục:
Ma trận kết hợp a, b có thể tìm được khi nhân ma trận tỉ lệ M có kích thước 2×2 cho ma trận tọa độ điểm ảnh có kích thước 2×1
Phép xoay – rotation: Xét một điểm 𝑥 trên ảnh làm đại diện, xoay 𝑥 một góc
𝜃 – góc tính từ tọa độ 𝑥 ban đầu đến 𝑥 ′ sau khi đã xoay
𝑦 ′ = 𝑥 sin 𝜃 + 𝑦 cos 𝜃 Tương tự tìm được ma trận M:
Phép trượt nghiêng – Shear: tương tự phép tỉ lệ thì phép trượt nghiêng có thể hiểu là thay đổi độ dài theo đường chéo:
Ta tìm được ma trận M:
Ngoài ra còn có các phép biến đổi lật ảnh theo trục Ox, lật ảnh theo trục Oy,
… Tổng quát công thức chung:
𝑋 ′ là điểm ảnh sau khi biến đổi, có tọa độ (𝑥 ′ , 𝑦 ′ )
𝑋 là điểm ảnh được biến đổi, có tọa độ (x, y) p là tham số - thường là ma trận 2×2 ký hiệu M f là phép biến đổi
Một số tính chất của phép biến đổi tuyến tính:
• Giữ nguyên gốc tọa độ
• Đường thẳng ánh xạ thành đường thẳng
• Bảo toàn tính song song
• Tỉ lệ được giữ nguyên
• Bảo toàn tổ hợp tuyến tính
Phép tịnh tiến là một phép biến đổi trong không gian, trong đó mặt phẳng hai chiều được mở rộng sang không gian ba chiều bằng cách thêm một đơn vị vào tọa độ (x, y), tạo thành hệ tọa độ đồng nhất (x, y, z).
1), hệ số này sẽ độc lập với x, y
Hệ tọa độ đồng nhất được xác định qua tỷ lệ, cho thấy rằng khi di chuyển một vật gần hoặc xa tầm nhìn, kích thước của vật sẽ thay đổi tương ứng với khoảng cách từ mắt đến vật.
𝑎 ] (2.19) Với hệ tọa độ đồng nhất, tìm được một ma trận 3×3 thoản mãn phép tịnh tiến sau:
Các phép đánh giá
• Phép đồng dạng – Similarity transformation
Phép đồng dạng là sự kết hợp giữa phép biến đổi Euclid và tỉ lệ đều Để tìm ma trận biến đổi, ta có thể lấy ma trận biến đổi Euclid và nhân các phần tử liên quan đến tỉ lệ với tỉ lệ s Công thức tổng quát cho phép đồng dạng là: Tương đồng = Xoay + Dịch chuyển + Tỉ lệ đều.
• Biến đổi Affine – Affine transformation
Phép biến đổi Affine là sự kết hợp giữa phép đồng dạng và phép trượt nghiêng Affine = Rotation + Translation + Unform Scale + Shear
Các tính chất của phép biến đổi Affine:
• Gốc tọa độ có thể thay đổi
• Đường thẳng ánh xạ thành đường thẳng
• Bảo toàn tính song song
• Tỉ lệ được giữ nguyên
• Bảo toàn tổ hợp biến đổi chính nó (tổ hợp các phép biến đổi Affine cũng là Affine)
2.9 Các phương pháp đánh giá
Intersection over Union (IoU) is a metric derived from the Jaccard index that assesses the overlap between two bounding boxes It requires a ground truth bounding box \( B_{gt} \) and a predicted bounding box \( B_{p} \) By utilizing IoU, one can determine the accuracy of object detection.
IoU (Intersection over Union) được tính bằng cách chia diện tích chồng chéo giữa bounding box dự đoán và bounding box thực tế cho diện tích hợp nhất của chúng Điều này giúp xác định độ chính xác của mô hình trong việc phân loại đúng (True Positive) và phân loại sai (False Positive).
Hình 2.47 minh họa IoU giữa bounding box thực sự (màu xanh lá cây) và bounding box được phát hiện (màu đỏ)
Loss là một giá trị không âm, thể hiện sự chênh lệch giữa nhãn thực của dữ liệu và nhãn do mô hình dự đoán Khi mô hình dự đoán sai lệch nhiều so với giá trị thực, Loss sẽ lớn, ngược lại, nếu dự đoán chính xác, Loss sẽ giảm dần về 0.
• n: Số sample dự đoán đúng
• N: Tổng số sample đưa ra dự đoán
Một số khái niệm cơ bản:
• True positive: Một phát hiện chính xác nhãn đúng
• False positive: Một phát hiện sai nhãn đúng
• True negative: Một phát hiện đúng nhãn sai
• False negative: Một phát hiện sai nhãn sai