TRƯỜNG ĐẠI HỌC VINH
VIỆN KỸ THUẬT VÀ CÔNG NGHỆ
————————–
ĐINH THỊ NHUNG
NGHIÊN CỨU PHƯƠNG PHÁP PHÂN LỚP NHỊ PHÂN TRONG NHẬN DẠNG GIỚI TÍNH QUA ẢNH
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
Nghệ An, 05 năm 2019
TRƯỜNG ĐẠI HỌC VINH
VIỆN KỸ THUẬT VÀ CÔNG NGHỆ
————————–
NGHIÊN CỨU PHƯƠNG PHÁP PHÂN LỚP NHỊ PHÂN TRONG NHẬN DẠNG GIỚI TÍNH QUA ẢNH
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
Sinh viên thực hiện: Đinh Thị Nhung
Mã sinh viên: 145D4802010033
Lớp: 55k1-CNTT
Giảng viên hướng dẫn: Võ Đức Quang
Nghệ An, 05/ 2019
LỜI CAM ĐOAN
Đồ án này là công trình nghiên cứu của cá nhân em, được thực hiện dưới sự hướng dẫn của Ths. Võ Đức Quang. Các số liệu, những kết luận nghiên cứu được trình bày trong đồ án này hoàn toàn trung thực. Em xin hoàn toàn chịu trách nhiệm về lời cam đoan này.
Nghệ An, ngày…. tháng…..năm 2019
Sinh viên thực hiện
Đinh Thị Nhung
DANH MỤC TỪ VIẾT TẮT
DANH MỤC BẢNG BIỂU
Hình 1: Ví dụ về bài toán phân lớp
Hình 2: Mô hình bài toán phân lớp
Hình 3: Bài toán Perceptron.
Hình 4: Bài toán SVM.
Hình 5: Sơ đồ tổng quan hệ thồng nhận dạng ảnh.
Hình 6: Mô hình nhận dạng giới tính qua ảnh.
Hình 7: Ví dụ về logistic regression.
Hình 8: Bảng dữ liệu hoạt động của chim cánh cụt.
Hình 9: Đồ thị sigmoid function.
Hình 10: Các ví dụ mẫu trong AR face database.
Hình 11: Ví dụ về kết quả tìm được bằng Logistic Regression
LỜI CẢM ƠN
Để hoàn thành đồ án tốt nghiệp, lời đầu tiên em xin chân thành cảm ơn đến toàn thể thầy cô trong trường Đại Học Vinh và các thầy cô trong Viện Kỹ Thuật và Công Nghệ, đặc biệt hơn là các thầy cô trong ngành công nghệ thông tin, bộ môn hệ thống thông tin nói riêng, những người đã tận tình hướng dẫn dạy dỗ và trang bị cho em những kiến thức bổ ích trong năm năm vừa qua.
Đặc biệt em xin chân thành gửi lời cảm ơn sâu sắc đến thầy giáo Ths. Võ Đức Quang, người đã tận tình hướng dẫn, trực tiếp chỉ bảo và tạo mọi điều kiện giúp đỡ em trong suốt quá trình làm đồ án tốt nghiệp.
Sau cùng em xin gửi lời cảm ơn chân thành tới gia đình, bạn bè, anh chị khóa trên đã động viên, cổ vũ và đóng góp ý kiến trong quá trình học tập, nghiên cứu cũng như quá trình làm đồ án tốt nghiệp.
Em xin chân thành cảm ơn!
MỞ ĐẦU
Lý do chọn đề tài
Ngày nay, trí tuệ nhân tạo đang phát triển mạnh mẽ và xâm nhập vào rất nhiều lĩnh vực trong cuộc sống như tự động dịch thuật, nhận dạng giọng nói, điều khiển tự động, nhận dạng khuôn mặt, nhận dạng chữ viết tay. v.v. Nó giờ được coi là xu hướng công nghệ thế giới và nhiều người cho rằng đó là cuộc cách mạng công nghiệp lần thứ 4.
Trong lĩnh vực AI, học máy (machine learning) là một lĩnh vực liên quan đến việc nghiên cứu các kỹ thuật và xây dựng các hệ thống có thể “học”tự động từ dữ liệu, từ đó giải quyết các vấn đề bài toán cụ thể. Hay nói cách khác học máy phần nào đó giúp cho máy tính có thể xử lý dữ liệu và đưa ra quyết định như con người. Ví dụ khi đưa một bức ảnh vào thì máy tính có thể xử lý bức ảnh xem ảnh đó là nam hay là nữ.
Trong các bài toán Machine learning có hai loại bài toán đặc trưng đó là bài toán phân lớp và phân cụm. Mỗi bài toán có những đặc trưng riêng và phạm vi áp dụng vào các loại bài toán thực tế khác nhau. Bên cạnh đó, bài toán nhận dạng và xử lý ảnh là một bài toán hấp dẫn và có tính ứng dụng cao. Trong khuôn khổ đồ này, em sẽ đi sâu vào nghiên cứu bài toán phân lớp và cụ hơn là thuật toán Logistic Regession để áp dụng vào nhận dạng giới tính qua dữ liệu ảnh đầu vào, xem ảnh đó là nam hay là nữ. Hơn nữa, đồ án cũng sẽ thử nghiệm đánh giá hiệu quả phân lớp của thuật toán trên một bộ dữ liệu cụ thể AR face database.
Mục đích nghiên cứu
Mục đích của đề tài là nghiên cứu bài toán phân lớp nhị phân để khi ta đưa một bức ảnh vào thì ta có thể dùng thuật toán trong bài toán phân lớp nhị phân để đưa ra giới tính của một bức ảnh là nam hay nữ.
Phạm vi thực hiện
Thực hiện đánh giá trên bộ dữ liệu AR face database.
Nội dung thực hiện
Để nghiên cứu phương pháp phân lớp nhị phân trong nhận dạng giới tính qua ảnh thì ta cần thực hiện các bước sau đây:
Tìm hiểu bài toán phân lớp nhị phân, bài toán nhận dạng và xử lý ảnh, bài toán nhận dạng giới tính qua ảnh.
Tìm hiểu thuật toán Logistic Regression để nhận dạng giới tính của mỗi bức ảnh.
Cuối cùng là đưa bộ dữ liệu vào thử nghiệm và đánh giá.
5. Cấu trúc đồ án
– Mở đầu.
– Chương 1: Cơ sở lý thuyết
– Chương 2: Nghiên cứu thuật toán Logistic Regression
– Chương 3: Thử nghiệm nhận dạng giới tính qua ảnh sử dụng bộ cơ sở dữ liệu AR face data base.
– Chương 4: Kết luận
CHƯƠNG I: CƠ SỞ LÝ THUYẾT
1. Học máy (Machine Learning)
1.1 Giới thiệu
Những năm gần đây, Trí tuệ nhân tạo (AI – Artificial Intelligence) đang phát triển mạnh mẽ và xâm nhập và trở thành những công nghệ cốt lõi trên nhiều lĩnh vực của đời sống con người. Ta có thể bắt gặp sự hiện diện của AI ở khắp nơi. Ví dụ: Xe tự hành của Google và Tesla, hệ thống tự tag khuôn mặt 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, …, chỉ là một vài trong vô vàn những ứng dụng của AI/Machine Learning.
Machine Learning là một lĩnh vực của AI, nó có khả năng tự học hỏi dựa trên dữ liệu đưa vào mà không cần phải được lập trình cụ thể. Machine learning còn cung cấp một phương pháp hiệu quả để học hỏi dữ liệu thay vì dựa vào con người để phân tích và dự đoán. Nhờ vào học máy, các máy tính có thể xử lý ảnh và đưa ra giới tính cho mỗi bức ảnh xem bức ảnh đưa vào là nam hay là nữ.
Các loại học máy:
Học có giám sát (Supervised Learning): Là phương pháp sử dụng những dữ liệu đã được gán nhãn từ trước để đưa ra các dự đoán giữa đầu vào và đầu ra. Các dữ liệu này được gọi là dữ liệu huấn luyện và chúng là cặp các đầu vào-đầu ra. Học có giám sát sẽ xem xét các tập huấn luyện này để từ đó có thể đưa ra dự đoán đầu ra cho 1 đầu vào mới chưa gặp bao giờ. Ví dụ một “email”có thể được gán nhãn “thứ rác” hoặc “không thư rác” và đưa vào mô hình Supervised Learing để phân loại.
Học không giám sát (Unsupervised Learning): Khác với học có giám sát, học không giám sát sử dụng những dữ liệu chưa được gán nhãn từ trước để suy luận. Phương pháp này thường được sử dụng để tìm cấu trúc của tập dữ liệu. Tuy nhiên lại không có phương pháp đánh giá được cấu trúc tìm ra được là đúng hay sai. Ví dụ như phân cụm dữ liệu, triết xuất thành phần chính của một chất nào đó.
Học nửa giám sát là một lớp của kỹ thuật học máy, sử dụng cả dữ liệu đã gán nhãn và chưa gán nhãn để huấn luyện – điển hình là một lượng nhỏ dữ liệu có gán nhãn cùng với lượng lớn dữ liệu chưa gán nhãn. Học nửa giám sát đứng giữa học không giám sát (không có bất kì dữ liệu có nhãn nào) và có giám sát (toàn bộ dữ liệu đều được gán nhãn). Nhiều nhà nghiên cứu nhận thấy dữ liệu không gán nhãn, khi được sử dụng kết hợp với một chút dữ liệu có gán nhãn, có thể cải thiện đáng kể độ chính xác. Để gán nhãn dữ liệu cho một bài toán học máy thường đòi hỏi một chuyên viên có kĩ năng để phân loại bằng tay các ví dụ huấn luyện.
Trong học máy thì có hai bài toán đặc trưng:
Bài toán phân cụm.
Bài toán phân lớp.
1.2 Bài toán phân cụm
Bài toán phân cụm là 1 trong những bài toán của lĩnh vực Unsupervised Learning (Học không giám sát), dữ liệu được mô tả trong bài toán không được dán nhãn hay nói cách khác thì bài toán này không có đầu ra. Trong trường hợp này, thuật toán sẽ tìm cách phân cụm – chia dữ liệu thành từng nhóm có đặc điểm tương tự nhau, nhưng đồng thời đặc tính giữa các nhóm đó lại phải càng khác biệt càng tốt.
Ví dụ: Dữ liệu của chúng ta có thể là bất cứ thứ gì, chẳng hạn như dữ liệu về khách hàng: Thuật toán phân cụm sẽ rất hữu ích trong việc đánh giá và chia thành các nhóm người dùng khác nhau, rồi từ đó ta có thể đưa ra những chiến lược marketing phù hợp trên từng nhóm người dùng đó.
1.3 Bài toán phân lớp
Bài toán phân lớp thuộc một nhánh ứng dụng chính của lĩnh vực Supervised Learning. Và bài toán là quá trình phân lớp một đối tượng dữ liệu vào hay nhiều lớp đã cho trước nhờ một mô hình phân lớp (model). Mô hình này được xây dựng dựa trên một tập dữ liệu được xây dựng trước đó có gián nhãn (hay còn gọi là huấn luyện). Quá trình phân lớp là quá trình gián nhãn cho đối tượng dữ liệu.
Hình 1: Ví dụ về bài toán phân lớp
Như vậy, nhiệm vụ của bài toán phân lớp là cần tìm một mô hình phân lớp để khi có dữ liệu mới thì có thể xác định được dữ liệu đó thuộc vào phân lớp nào.
Ví dụ: Ta có bộ dữ liệu traning bao gồm có hạt đậu, hạt lạc, hạt lúa sau đó ta xây dựng mô hình phân lớp để gán nhãn cho bộ dữ liệu đó là hạt đậu được gán nhãn là A, hạt lúa có gán nhãn là B, hạt lạc gán nhãn là C. tiếp theo nhiệm vụ của bài toán phân lớp là tìm mô hình phân lớp để khi ta đưa 1 dữ liệu bị che nhãn vào mô hình phân lớp để phân lớp xem dữ liệu đó thuộc vào hạt nào trong 3 hạt đã được gán nhãn.
Mô hình bài toán phân lớp:
Hình 2: Mô hình bài toán phân lớp