Do đó, ước tính tuổi tự động từ hình ảnh khuôn mặt trở thành một trongnhững nhiệm vụ pho biến và đầy thách thức trong nhiều lĩnh vực ứng dụng khác nhau như tương tác giữa nguoi-may, thị
Giới thiệu về thư viện Open 0
Thư viện OpenCV được Gary Bradski người làm việc ở Intel khởi tạo vào năm 1999, OpenCV ban đầu được viết bằng C và có thé hoạt động trên nhiều nền tảng hệ điều hành khác như: Windows, Linux và Mac OS X Và ngôn ngữ python và java cũng được hỗ trợ OpenCV đầu tiên được viết bằng ngôn ngữ C sau đó được cập nhật, tối ưu bằng ngôn ngữ C++ và tận dụng được xử lý nhiều core OpenCV là một thư viện mã nguồn mở hàng đầu cho thị giác máy tính (computer vision), xử lý ảnh và máy học, và các tính năng tăng tốc GPU trong hoạt động thời gian thực.OpenCV được phát hành theo giấy phép BSD, do đó nó hoàn toàn miễn phí cho cả học thuật và thương mại OpenCV được thiết kế cho việc tính toán hiệu quả và tập trung vào các ứng dụng chạy thời gian thực Cung cấp một giải pháp đơn giản dé sử dụng các thư viện xử lý thị giác máy tính giúp mọi người có thể tạo nhanh các ứng dụng Thư viện OpenCV có hơn 5000 thuật toán.
OpenCV Contrib Face, text, rgbd
OpenCV HAL SSE, NEON, IPP, OpenCL, CUDA, OpenCV4Tegra
Hình 2.2: Sơ đồ khối OpenCV với các hệ điều hành được hỗ trợ Thư viện OpenCV đươc xây dựng theo các lớp (layers) như thể hiện trong Hình 2.2 Lớp trên cùng là các hệ điều hành (Operating System — OS) được hỗ trợ và đưới đó là các toán tử OpenCV Lớp tiếp theo là ràng buộc (bindings) về ngôn ngữ và các mẫu ví dụ cho từng ngôn ngữ Bên dưới nữa là các mã nguồn được đóng góp của cộng đồng được gọi là opencv_contrib Sau đó là các phân lõi (core) của thư viện OpenCV Lớp OpenCV HAL là lớp dé tối ưu hóa tốc độ phần cứng xử lý.
Giới thiệu về bộ dữ liệu MegaAứ€-AASIa1 SG ST sen 8 2.4 Bài toán nhận dạng khuôn mặt con nBƯỜI - ô+5 ô++s<++e+sex+se+se+s 10 2.4.1 Giới thiệu về bài toán phát hiện khuôn mặt con người
Bài toán LH HH HH HT TH HH HH HH h 10 2.4.1.2 Những khó khăn phát hiện khuôn mặt người trong ảnh
a) Giới thiệu về bài toán phát hiện mặt người trong ảnh:
Nhận dạng khuôn mặt là một công nghệ máy tính dựa trên trí tuệ nhân tạo
(AD được sử dụng để tìm và nhận dạng khuôn mặt người trong các hình ảnh kỹ thuật SỐ Công nghệ nhận diện khuôn mặt có thé được áp dung cho nhiéu linh vực khác nhau bao gồm bảo mật, sinh trắc học, thực thi pháp luật, giải trí và an toàn cá nhân - dé cung cấp khả năng giám sát và theo doi mọi người trong thời gian thực.
Nhận dạng khuôn mặt đã phát triển từ các kỹ thuật thị giác máy tính thô sơ đến những tiến bộ trong học máy (machine learning) đến các mạng thần kinh nhân tạo ngày càng phức tạp (artificial neural network) và các công nghệ liên quan; kết quả là liên tục có những cải tiễn hiệu suất Bây giờ nó đóng một vai trò quan trọng như là bước đầu tiên trong nhiều ứng dụng chính, bao gồm theo dõi khuôn mặt, phân tích khuôn mặt và nhận dạng khuôn mặt Nhận dạng khuôn mặt có ảnh hưởng đáng kê đến cách các hoạt động tuần tự sẽ thực hiện trong ứng dụng.
Trong phân tích khuôn mặt, tính năng nhận dạng khuôn mặt giúp xác định những phan nào của hình ảnh hoặc video có xuất hiện khuôn mặt và từ đó tập trung vào dé xác định độ tuổi, giới tính và cảm xúc bằng cách sử dụng biểu cảm khuôn mặt Các ứng dụng nhận dạng khuôn mặt sử dụng thuật toán và học máy để tìm khuôn mặt người trong các hình ảnh lớn hơn, thường kết hợp các vật thể không phải khuôn mặt khác như phong cảnh, tòa nhà và các bộ phận cơ thê người khác như bàn chân hoặc bàn tay Các thuật toán nhận diện khuôn mặt thường bắt đầu bằng cách tìm kiếm mắt người - một trong những đặc điểm dễ phát hiện nhất Sau đó, thuật toán có thé cé gắng phát hiện lông mày, miệng, mũi, lỗ mũi và mống mắt Sau khi thuật toán kết luận rằng nó đã tìm thấy một vùng trên khuôn mặt, nó sẽ áp dụng các bài kiểm tra bổ sung để xác nhận rằng trên thực tế, nó đã phát hiện ra một khuôn mặt.
10 Đề giúp đảm bảo độ chính xác, các thuật toán cần được đào tạo trên các tập dữ liệu lớn kết hợp hàng trăm nghìn hình ảnh tích cực (có đối tượng) và tiêu cực (không có đối tượng) Mô hình huấn luyện cải thiện khả năng của các thuật toán để xác định xem có các khuôn mặt trong một hình ảnh và vi trí của chúng hay không.
Ban đầu chỉ là những bài toán đơn giản, mỗi ảnh chỉ có một khuôn mặt nhìn thăng và đầu luôn phải ở tư thế thăng đứng trong ảnh đen trắng, không đáp ứng được nhu cầu ngày càng cao trong cuộc sống, khoa học ngày nay Vì thế đã có những cải tiến nghiên cứu về bài toán phát hiện khuôn mặt người trong những môi trường phức tạp hơn, có nhiều khuôn mặt người trong ảnh hơn, và có nhiều tư thế thay đi trong ảnh. b) Các phương pháp chính phát hiện mặt người:
Dựa vào tính chất của các phương pháp xác định mặt người trên ảnh, các phương pháp này được chia thành bốn loại chính, tương ứng với bốn hướng tiếp cận khác nhau Ngoài ra cũng có rất nhiều nghiên cứu mà phương pháp xác định mặt người không chỉ dựa vào một hướng mà có liên quan đên nhiêu hướng: e _ Hướng tiếp cận dựa trên kiến thức: Dựa vào các thuật toán, mã hóa các đặc trưng và quan hệ giữa các đặc trưng của khuôn mặt thành các quy tắc. Thách thức của cách tiếp cận này là khó khăn trong việc đưa ra các quy tắc được xác định rõ ràng. e Huong tiếp cận dựa trên đặc trưng không thay đổi: Xây dựng các thuật toán đề tìm các đặc trưng của khuôn mặt như mắt, mũi mà các đặc trưng này không thay đổi khi tư thế khuôn mặt hay vị trí đặt camera thay đổi. Nhưng phương pháp này cũng có thể bị ảnh hưởng tiêu cực bởi ánh sáng. e _ Hướng tiếp cận dựa trên so sánh khớp mau: so sánh hình ảnh với các mẫu chuẩn của khuôn mặt (các mẫu này đã được chọn và lưu trữ) dé mô ta các khuôn mặt hay các đặc trưng của khuôn mặt có sự tương đồng Phuong pháp này có thé dùng dé xác định vị trí hay dò tìm khuôn mặt trên ảnh nhưng không giải quyết các biến thể về tư thế, tỷ lệ và hình dạng.
11 e Huong tiép can dua trén dién mao: su dung phan tich thong ké va hoc máy Trái với hướng tiếp cận dựa trên khuôn mau, các mô hình hay các mẫu sẽ được học từ một tập ảnh huấn luyện mà thể hiện tính chất tiêu biểu của sự xuất hiện của mặt người trong ảnh Sau đó hệ thong sé xác định mặt người. Phương pháp này cũng được chia thành nhiều phương pháp phụ khác.
2.4.1.2 Những khó khăn phát hiện khuôn mặt người trong ảnh
Phát hiện và nhận dạng khuôn mặt người trên ảnh là một bài toán thử thách với nhiều khó khăn từ chính đối tượng trên ảnh và cả tác động bên ngoài Hình 2.4 minh họa một số khó khăn thường gặp trong quá trình này.
Hình 2.4: Những yếu tố gây khó khăn trong việc phát hiện khuôn mặt. e Khuôn mặt trong ảnh có thé có những hướng nhìn khác nhau như: nhìn thăng, nhìn nghiêng hay nhìn lên nhìn xuống Cùng trong một ảnh nhưng sẽ có nhiều hướng nhìn khác nhau của khuôn mặt vì vậy việc nhận dạng sẽ rất khó khăn. e - Trong một khuôn mặt không chỉ có những đặc trưng là khuôn mặt ma còn có một số chỉ tiết không phải là đặc trưng của khuôn mặt nên việc nhận dạng khuôn mặt cũng có thể sai như kính, xỏ khuyên, băng gạc y tẾ. e - Một số khuôn mặt bị che khuất bởi các đối tượng khác cũng gây cản trở cho việc nhận dạng mặt người như che băng kính râm, khâu trang, nón.
12 e Su biểu cảm của khuôn mặt: biểu cảm của khuôn mặt có thé làm thay đổi đáng ké các đặc trưng và thông số của khuôn mặt Như cùng một người nhưng khi cười, tức giận hay sợ hãi cũng dẫn đến sự khác biệt của khuôn mặt. e § Giới hạn về số ảnh cần thiết cho tập huấn luyện, tập các ảnh khuôn mặt huấn luyện không thể bao quát được tat cả các biến đổi có thé có trên khuôn mặt của một người cần nhận dạng trong thế giới thực.
Giới thiệu về thuật toán nhận dang Haar Cascade
Haar Cascade được xuất bản lần đầu tiên bởi Paul Viola và Michael Jones trong bài báo vào năm 2001 [10] Thuật toán này phát hiện đối tượng nhanh bằng cách sử dụng một tầng tăng cường các tính năng đơn giản Công trình nghiên cứu này đã trở thành một trong những bài báo được trích dẫn nhiều nhất trong tài liệu về thị giác máy tính.
Trong bài báo của mình, Viola và Jones đề xuất một thuật toán có khả năng phát hiện các đối tượng trong ảnh, bất ké vị trí và ty lệ của chúng trong ảnh Hơn nữa, thuật toán này có thé chạy trong thời gian thực, giúp nó có thé phát hiện các đối tượng trong luồng video.
Cụ thể, Viola và Jones tập trung vào việc phát hiện khuôn mặt trong ảnh. Tuy nhiên, kết quả nghiên cứu này có thể được mở rộng cho các mô hình máy học dé dò tìm các “đối tượng” tùy ý, chang hạn như ô tô, tòa nhà, đồ dùng nhà bếp va thậm chí là quả chuối.
Hình 2.5 minh họa việc dò tìm đối tượng trong ảnh bang cửa số trượt, di chuyển từ trái sang phải và từ trên xuống dưới, đề định vị khuôn mặt trong hình ảnh Trong hình này, chúng ta có thé thay một cửa số trượt có kích thước cố định trên hình ảnh với nhiều tỷ lệ khác nhau Tại mỗi giai đoạn, cửa sé dừng lai, tính toán một số tính năng, sau đó phân loại nhận dạng vùng là “có” - vùng này có chứa một khuôn mặt - hoặc “không” - vùng này không chứa một khuôn mặt Để phân loại “có” hoặc
“không” có hình ảnh đối tượng cần nhận biết, một số mô hình máy học được áp dụng Chúng ta cần một bộ phân loại được đào tạo dé sử dụng các tiêu cực và tích cực của một khuôn mặt:
- Cac điểm dữ liệu tích cực (positive) là các vùng chứa một khuôn mặt (đối tượng cần nhận dạng).
- _ Điểm dữ liệu tiêu cực (negative) là các vùng không chứa khuôn mặt.
Những điêm dữ liệu tích cực va tiêu cực này sau đó có thê được sử dụng đê "huan luyện" trong mô hình máy học.
OpenCV cung cấp thư viện cho phép hiện thực hệ thong phat hiện khuôn mặt ngay lập tức bằng cách sử dụng một Haar Cascade được huấn luyện trước Mô hình này đảm bảo rằng không cần thiết phải cung cấp các mẫu tiêu cực và tích cực, bộ huấn luyện phân loại cụ thể và tinh chính các tham số chính xác Thay vào đó, chỉ cần tải bộ phân loại được huấn luyện trước và phát hiện khuôn mặt trong hình ảnh.
Hình 2.6: Phát hiện khuôn mặt trong ảnh bằng Haar Cascade được huấn luyện trước của OpenCV
Một số lợi ích của Haar Cascade là chúng rất nhanh trong việc tính toán các tính năng giống như Haar do sử dụng các hình ảnh tích phân (còn được gọi là bảng diện tích tổng hợp) Chúng cũng rất hiệu quả đề lựa chọn tính năng thông qua việc sử dụng thuật toán AdaBoost Bên cạnh đó, một đặc điểm quan trọng là Haar Cascade cho phép chúng ta phát hiện khuôn mặt trong ảnh bất kể vị trí nào và bất kỳ tỷ lệ khuôn mặt nào.
Bài toán phân loại nhóm tuôi - 2 ¿ £+s k+EE+EE+EE£EE+E£EeEEeEEeEkerxreee l6 1 Giới thiệu bài toán phân lỚp - - +5 + *kEeereresrreekrre 16 2 Giới thiệu về Convolutional Neural Network s- - sssss+¿ 17 3 Giới thiệu về mạng EfficientNetB3 phân loại nhóm tuổi
2.5.1 Giới thiệu bài toán phân lớp
Phân loại trong học máy và thống kê là một cách tiếp cận học có giám sát, trong đó chương trình máy tính học từ dữ liệu được cung cấp cho nó và thực hiện các quan sát hoặc phân loại mới Phân loại là một quá trình phân chia một tập hợp dữ liệu nhất định thành các lớp Quá trình này có thé được thực hiện trên cả dữ liệu có cấu trúc hoặc phi cau trúc Quá trình bat đầu với việc dự đoán lớp của các điểm dữ liệu đã cho Các lớp thường được gọi là mục tiêu, nhãn hoặc danh mục.
Mô hình dự báo phân loại là nhiệm vụ phỏng đoán hàm ánh xạ từ các biến đầu vào đến các biến đầu ra rời rạc Mục tiêu chính là xác định đữ liệu mới sẽ thuộc lớp hoặc danh mục nào.
Hình 2.7: Ví dụ đơn giản về việc phân loại
Một ví dụ đơn giản đó là phân loại thư điện tử rác như được minh họa trong
Hình 2.7 Phát hiện thư rác có thé được xác định là một van đề cần phân loại, đây là một phân loại nhị phân vì chỉ có thể có hai loại tức là thư rác hoặc không phải thư rác Bộ phân loại trong trường hợp này, cần dữ liệu huấn luyện dé hiểu các biến đầu vào đã cho có liên quan như thế nào với lớp Và một khi trình phân loại được huấn luyện chính xác, nó có thé được sử dụng để phát hiện xem một bức thư điện tử cụ thể có phải là thư rác hay không.
2.5.2 Giới thiệu về Convolutional Neural Network
Trung tâm của nhiều tác vụ thi giác máy tinh như phân loại hình ảnh, phát hiện đối tượng, phân đoạn, v.v là mạng nơ-ron tích chập (CNN-Convolutional
Neural Network) Trong mạng nơ-ron, mô hình mạng nơ-ron tích chập là một trong những mô hình kinh điển để nhận dang va phân loại hình ảnh Trong đó, xác định đối tượng và nhận dạng khuôn mặt là một trong số những lĩnh vực mà CNN được sử dụng rộng rãi.
CNN phân loại hình ảnh bằng cách lấy một hình ảnh đầu vào, xử lý và phân loại nó theo các hạng mục nhất định (Ví dụ: Chó, Méo, Hồ, ) Máy tính coi hình ảnh đầu vào là một mảng pixel và nó phụ thuộc vào độ phân giải của hình ảnh Dựa trên độ phân giải hình ảnh, máy tính sẽ xác định các thuộc tính kích thước của ảnh gồm Hx Wx D (H: Chiều cao, W: Chiều rộng, D: Độ dày) Ảnh RGB là một vi du điển hình cho mô hình này (Hình 2.8).
Hinh 2.8: Mang ma tran RGB 6x6x3
Về kỹ thuật, dé huấn luyện và kiểm tra với mô hình CNN, mỗi hình anh đầu vào sẽ chuyển qua một loạt các lớp tích chập với các bộ lọc (Kernals), tong hợp lại các lớp được kết nối đầy đủ (Full Connected) và áp dung hàm Softmax dé phân loại đối tượng có giá trị xác suất giữa 0 va 1 Hình 2.9 mô tả toàn bộ luồng CNN dé xử lý hình ảnh đầu vào và phân loại các đối tượng dựa trên giá trị.
INPUT {SONVOLUTION + miu POOLING CONVOLUTION + RLU POOLING ) FLATTEN Core SOFTMAX
Hình 2.9: Cấu trúc mạng nơ-ron tích chap (CNN)
Các mô hình CNN sẽ so sánh hình ảnh dựa theo từng mảnh và những mảnh này được gọi là đặc trưng (Feature) Thay vì phải khớp các bức ảnh lại với nhau thì
CNN sẽ nhìn ra sự tương đồng khi tìm kiếm các đặc trưng tương đồng trên các ảnh.
Mỗi đặc trưng được xem là một hình ảnh nhỏ, có nghĩa chúng là những mảng 2 chiều nhỏ Các đặc trưng này đều tương ứng với các khía cạnh nào đó của hình ảnh và chúng có thé khớp lại với nhau.
CNN bao gồm những phần lớp cơ bản là:
Convolutional layer: đây là lớp quan trọng nhất của CNN, lớp này có nhiệm vụ thực hiện mọi tính toán Những yếu tố quan trọng của một convolutional layer la: stride, padding, filter map, feature map Tích chập là lớp đầu tiên dé trích xuất các đặc trưng từ hình ảnh đầu vào Tích chập duy trì mỗi quan hệ giữa các pixel bằng cách tìm các đặc trưng hình ảnh thông qua các ô vuông nhỏ của đữ liệu đầu vào Nó là một phép toán có hai đầu vào như ma trận hình ảnh và một bộ lọc Sự kết hợp của một hình ảnh với các bộ lọc khác nhau có thé thực hiện các hoạt động như phát hiện cạnh, làm mờ và làm sắc nét bang cách áp dụng các bộ lọc như ví du trong
Sox blur La Ss (noenahrect 9 a
Hình 2.10: Hình ảnh tích chập khác nhau sau khi áp dụng các Kernel khác nhau
ReLU Layer: viết tắt của Rectified Linear Unit, là 1 hàm phi tuyến Với đầu ra là: ƒ (x) = max (0, x) Tại sao ReLU lại quan trọng: ReLU giới thiệu tính phi tuyến trong ConvNet Vi dé liệu trong thế giới mà chúng ta tìm hiểu là các giá trị tuyến tính không âm, như minh họa trong Hình 2.11.
Hình 2.11: Kết qua ma trận sau khi di qua lớp ReLU
Hiện nay, hàm ReLU được dùng phô biên và vô cùng thông dụng Nó được sử dụng nhiêu cho các nhu câu huân luyện mạng nơ-ron và mang lại rat nhiêu ưu điêm nôi bật như: việc tính toán sẽ trở nên nhanh hơn,
Pooling layer: khi đầu vào quá lớn, những lớp pooling layer sẽ được xếp vào giữa giữa những lớp Convolutional layer dé làm giảm số lượng tham số Không gian pooling còn được gọi là lấy mẫu con hoặc lấy mẫu xuống làm giảm kích thước của mỗi map nhưng vẫn giữ lại thông tin quan trọng (Hình 2.12) Các pooling có thé có nhiều loại khác nhau: max pooling, average pooling, sum pooling. max pool with 2x2 filters and stride 2 ey 2 |
Hình 2.12: Ví du max pooling lay phan tử lớn nhất từ ma trận đối tượng
Fully connected layer: Lớp này có nhiệm vụ đưa ra kết quả sau khi lớp convolutional layer và pooling layer đã nhận được ảnh truyền Lúc này, ta thu được kết quả là model đã đọc được thông tin của ảnh và đề liên kết chúng cũng như cho ra nhiều output hon thì ta sử dung fully connected layer.
2.5.3 Giới thiệu về mạng EfficientNetB3 phân loại nhóm tuổi
Mang thần kinh tích chập (CNN) thường được phát triển với chi phi tài nguyên cố định và sau đó được thay đổi các thông số hoặc mở rộng một số yêu tố dé đạt được độ chính xác tốt hơn khi có nhiều tài nguyên hơn Một sỐ tùy chọn dé thay đổi mô hình:
- M6 hình nén (compression model): Các thông số không giúp chính xác được loại bỏ một cách có hệ thống hoặc theo cách lượng tử hóa - kiểm tra sự phân bố của các tham số và lưu trữ các số 32 bit ở một số lượng bit nhỏ hơn ma không làm mắt nhiều độ chính xác.
XÂY DỰNG UNG DUNG QUAN LÝ THỜI GIAN DỰA VÀO )/2/9)899900277 1a
Giới thiệu về Tkin(er -¿225sSx+SE2EE£EEEEEEEEEEEEEEEEEEEEEErrkerkerrees 28 3.2 Giới thiệu về chức năng ứng dụng -¿-+2cx+x++zx++rxezrxees 28 3.3 Giới thiệu PyInstaller dé đóng gói ứng dụng ¿c2 s+cscse¿ 32 Chương 4 KET QUÁ THỰC NGHIEM VA HƯỚNG PHAT TRIÊN
Tkinter [20] là một thư viện GUI tiêu chuẩn cho Python mã nguồn mở được biết đến với sự đơn giản và linh hoạt, được cài đặt sẵn bằng Python 3 Tkinter trong Python cung cấp một cách nhanh chóng và dễ dàng để tạo các ứng dụng GUI. Tkinter cung cấp giao diện hướng đối tượng cho bộ công cụ Tk GUI Tk ban đầu được viết cho ngôn ngữ Tcl Sau đó Tkinter được viết ra dé sử dung Tk bằng trình thông dịch Tel trên nền Python Ngoài Tkinter ra còn có một số công cụ khác giúp tạo một ứng dụng GUI viết bằng Python như wxPython, PyQt, và PyGTK.
3.2 Giới thiệu về chức nang ứng dụng Ứng dụng sẽ có chức năng chính là quản lý thời gian sử dụng thiết bị và sẽ dựa trên kết quả nhóm tuổi duoc dự đoán ở giai đoạn trên Cu thể sau khi dự đoán được nhóm tuổi của đối tượng, ứng dụng sẽ cài đặt thời gian sử dụng tương ứng theo nhóm tuổi đã được dự đoán:
- _ Nhóm 0 - Š và 6 - 10 tuổi: Nhóm trẻ em, được sử dụng thiết bị liên tục 15 phút.
- Nhóm 11 - 17 tuéi: Nhóm vị thành niên, được sử dụng thiết bị 30 liên tục phút.
- Nhóm 18 - 35 va 36 - 50 tuéi: Nhóm người lớn, được sử dụng thiết bị liên tục 60 phút.
- _ Nhóm 51 - 59 và 60 - 69 tuổi: Nhóm người cao tuôi, được sử dụng thiết bị liên tục 30 phút. Ứng dụng ban đầu được người dùng khởi động và thao tác thủ công hoàn toàn, chỉ có chức năng khóa màn hình là tự động Ứng dụng có thé truy cập được camera của thiết bị và sẽ bắt đầu quay video của đối tượng để dự đoán dựa trên thao tác của người dùng khi bâm vào nút “Bật camera” Việc dự đoán sẽ diễn ra liên tục
28 trong 2 giây sau khi camera của thiết bị được bật, kết quả dự đoán sẽ lấy trung bình cộng 10 khung hình thu được đã phát hiện khuôn mặt dé dự đoán nhóm tuổi của đối tượng đang sử dụng thiết bị và cài đặt thời gian sử dụng sau đó, khi hết thời gian sử dụng, màn hình máy tính sẽ tự động khóa, đưa vào chế độ “lock screen” Quy trình xử lý của hệ thống được mô tả như trong Hình 3.1 Như thể hiện, khi camera được bật lên, quá trình xử lý diễn ra trong bốn bước: tải ảnh đối tượng, phát hiện và nhận dạng khuôn mặt, dự đoán tuổi và cuối cùng là thiết lập thời gian sử dụng tương ứng.
Tải ảnh của > Nhan dang Dự đoán Cài đặt thời gian Sử dụng doi trong khuôn mat nhóm tuoi thiết bị tủy vào nhóm tuoi
Hình 3.1: Luồng xử lý đơn giản của ứng dung
Hình 3.2: Giao diện ban đầu của ứng dụng
Hình 3.2 minh họa giao diện chính của ứng dụng khi mới khởi động Với giao diện ban đầu này, sẽ có hình ảnh mặt người ở giữa khung hình dé định hướng hành động cho người dùng, biểu thị ý nghĩa người dùng cần dé khuôn mặt của mình vào giữa khung hình như ví dụ.
Ngoài các nút của cửa sô ứng dụng trên windows, chỉ có duy nhât nút “Bật camera” đê khi bam vào đó sẽ chuyên qua màn hình khác đê quay video và thực hiện chức năng chính của ứng dụng. ¢ Age Detection
Hình 3.3: Giao diện chính của ứng dụng
Sau khi bam nút “Bật camera” ở giao diện khởi đầu, ứng dụng sẽ xuất hiện giao diện thứ hai được xem là giao diện chính như Hình 3.3 và tại đây sẽ thể hiện các tính năng chính của ứng dụng Cụ thé camera của thiết bi sẽ được bật và quay
30 video đôi tượng đang ở trước màn hình và dự đoán nhóm tuôi, sau đó sẽ cài đặt thời gian sử dụng thiết bị ứng theo nhóm tuôi được dự đoán.
Trong giao diện chính, khung hình camera quay được sẽ hiển thị ở vùng trung tâm Trong đó, ô vuông màu xanh là vùng có khuôn mặt được ứng dụng phát hiện và dùng để dự đoán nhóm tuổi Ô màu vàng sẽ hiển thị kết quả được dự đoán, cụ thé trên Hình 3.3 người này đang được dự đoán ở nhóm tuổi 18 — 35 tuổi.
Các nút bắm trên ứng dụng khi di chuột vào đều sẽ xuất hiện các khung giải thích ý nghĩa hay định hướng hành động cho người dùng dé hiểu và dé sử dụng hơn. Tại màn hình này còn có ba thành phần khác đó là đồng hồ đếm ngược, nút “Bật camera” và nut “Tam dừng” Nếu bam nút “Bật camera” lần nữa, việc quay video và dự đoán nhóm tuổi dé cài đặt thời gian sử dụng thiết bị sẽ được lặp lại lần nữa. Bam nút “Tam dừng” thì đồng hồ hiển thị đếm ngược sẽ tạm dừng việc đếm ngược thời gian sử dụng thiết bị Khi bam nút này xong, nút “Tiếp tục” sẽ xuất hiện và thé chỗ nút “Tạm dừng” trước đó và có tác dụng tiếp tục đếm ngược thời gian sử dụng thiết bị Khi đồng hồ đếm ngược về 0, màn hình máy tính sẽ bị khóa.
Hình 3.4: Giao điện khi bam tam dừng
3.3 Giới thiệu PyInstaller để đóng gói ứng dụng
PyInstaller [21] gói một ứng dung Python và tat cả các phần phụ thuộc của nó vào một gói duy nhất Người dùng có thê chạy ứng dụng đóng gói mà không cần cài đặt trình thông dịch Python hoặc bất kỳ mô-đun nào.
PyInstaller đọc một tập lệnh Python do bạn viết Nó phân tích mã của bạn dé khám phá mọi mô-đun và thư viện khác mà tập lệnh của bạn cần dé thực thi Sau đó, nó thu thập các bản sao của tất cả các tệp đó - bao gồm cả trình thông dịch
Python đang hoạt động và đặt chúng cùng với tập lệnh của bạn trong một thư mục hoặc tùy chọn trong một tệp thực thi duy nhất.
PyInstaller được thử nghiệm trên Windows, Mac OS X và GNU / Linux Tuy nhiên, nó không phải là một trình biên dịch chéo: để tạo một ứng dụng Windows,
32 chúng ta chạy PylInstaller trong Windows; dé tạo ứng dụng GNU / Linux, chúng ta chạy ứng dụng đó trong GNU / Linux, v.v PyInstaller đã được sử dụng thành công với AIX, Solaris, FreeBSD và OpenBSD, nhưng không được kiểm tra đối với chúng như một phần của thử nghiệm tích hợp liên tục.
Chương 4 KET QUÁ THỰC NGHIỆM VA HUONG PHÁT TRIEN
4.1.1 Kiểm tra kết quả dự đoán tuỗi trên tập dữ liệu MegaAge-Asia
Từ tập dữ liệu MegaAge-Asian nhóm đã trích xuất ra 40000 anh dé phục vụ cho việc huấn luyện mô hình ước tính độ tuổi Và cũng từ tập dữ liệu này nhóm đã trích xuất ra 3945 ảnh dé phục vụ cho việc kiểm tra độ chính xác mô hình ước tính độ tuôi Kết quả độ chính xác trung bình đạt được trên tập ảnh kiểm tra là 77.74%. Đây là một kết quả khá tốt khi so với các dự án khác hiện có [18][19] Bảng 4.1 mô tả số lượng ảnh được chia ở mỗi nhóm tuéi tương ứng với tập dữ liệu huấn luyện và tập dữ liệu kiểm tra.
Bảng 4.1: Bảng phân chia đữ liệu và kết quả độ chính xác
Nhận xét kết qua phương pháp:
Kết quả độ chính xác trung bình đạt được trên tập ảnh kiểm tra là 77.74% Đánh giá độ chính xác của bộ phân lớp rất quan trọng, bởi vì nó cho phép dự đoán được độ chính xác của các kết quả phân lớp những dữ liệu tương lai Em sử dụng phương pháp holdout, đữ liệu đưa ra được phân chia ngẫu nhiên thành 2 phần là: tập dữ liệu đào tạo và tập dữ liệu kiểm tra.
Toàn bộ tập ví dụ D được chia thành 2 tập con không giao nhau:
- Tập huấn luyện D_train — dé huấn luyện hệ thống
- Tập kiểm thử D_test — dé đánh giá hiệu năng của hệ thống đã học
—>D=D tran U D test, và thường là |D_trainl >> |D_ testl
- Bắt kỳ ví dụ nào thuộc vào tập kiểm thử D_ test đều không được sử dung trong quá trình huấn luyện hệ thống