Chương 1 GIỚI THIỆU: giới thiệu chung về đề tài, mục tiêu nghiên cứu, giới hạn đề tài, phương pháp nghiên cứu, đối tượng và phạm vi nghiên cứu. • Chương 2 GIỚI THIỆU VỀ MOBILENET: giới thiệu về các lý thuyết cơ bản của MobileNet. 3 • Chương 3 THIẾT KẾ HỆ THỐNG: đưa ra mô hình chung của toàn hệ thống, các khối của hệ thống, thiết kế từng khối và các thiết bị được sử dụng trong các khối. • Chương 4 KẾT QUẢ: trình bày kết quả thi công của mô hình hệ thống.
• Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN: rút ra các kết luận, điểm mạnh điểm yếu và hướng phát triển của mô hình. 4 CHƯƠNG 2 GIỚI THIỆU MẠNG MOBILE NET 2.1 GIỚI THIỆU KIẾN TRÚC MOBILENET V1 Kiến trúc MobileNet V1 được giới thiệu vào năm 2017, điểm đáng chú ý của kiến trúc này là khả năng tối ưu khả năng khả năng accuracy có tỉ lệ rất cao, song song đó vẫn có thể hoạt động tốt trên hệ thống có nguồn tài nguyên hạn chế như các thiết bị di động hay các hệ thống nhúng. Hai mục đích mà kiến trúc này hướng tới là: kích thước model nhỏ hơn (ít parameter hơn) và ít phức tạp hơn (ít phép cộng và phép nhân hơn). MobileNet V1 dựa trên một kiến trúc được sắp xếp hợp lí sử dụng các lớp tích chập có thể phân tách theo chiều sâu (Depthwise Separable Convolution: DSC) để xây dựng mạng nơ ron có số lượng trọng số và độ phức tạp ít hơn.1 Lớp tích chập phân tách theo chiều sâu (DSC) Ý tưởng của DSC là tách phép tích chập làm 2 phần: tích chập theo chiều sâu (Depthwise Convolution: DC) và tích chập theo điểm (Pointwise Convulution: PC).1 Mô tả phép chập Depthwise Convolution [1] Depthwise Convulution là một phép tích chập bằng cách cho một kernel duy nhất chập với từng kênh của đầu vào, từ đó giúp giữ được sự đặc trưng của từng kênh.
Điều này ngược lại với phép tích chập thường thấy là số lượng kênh của 5 kernel bằng với số lượng kênh của đầu vào, việc thực hiện chập theo phương pháp này làm trộn lẫn các kênh và tạo ra được ảnh đầu ra. Ngược lại, sự biến đổi theo chiều sâu giữ cho mỗi kênh riêng biệt. Các bước thực hiện: 1) Tách ảnh đầu vào và bộ lọc thành M kênh 2) Tích chập M kênh đầu vào với M bộ lọc tương ứng 3) Xếp chồng M fearture map vào lại với nhau Như vậy, độ phức tạp của DC là: • 1 kênh: DG*DG*DK*DK • M kênh: DG*DG*DK*DK*M Pointwise Convulution là một phép tích chập sử dụng một kernel có kích thước 1x1 để trượt qua từng điểm của đầu vào và có độ sâu bằng với số lượng kênh của đầu vào.2 Mô tả phép chập Pointwise Convolution [1] Như vậy, độ phức tạp của PC là: • 1 kênh: DG*DG*M • N kênh: DG*DG*N*M Độ phức tạp của DSC = PC + DC = DG*DG*DK*DK*M + DG*DG*N*M = DG2*M(DK2*N) So sánh tích chập thông thường và DSC: Độ 𝑝ℎứ𝑐 𝑡ạ𝑝 𝑐ủ𝑎 𝐷𝑆𝐶 𝐷𝐺 2 ∗ M(𝐷𝐾 2 ∗ N) 1 1 = = + Độ 𝑝ℎứ𝑐 𝑡ậ𝑝 𝑡í𝑐ℎ 𝑐ℎậ𝑝 𝑡ℎườ𝑛𝑔 𝐷𝐺 2 ∗ 𝐷𝐾 2 ∗ M ∗ N 𝑁 𝐷𝐾 2 6 Như vậy, phương pháp tích chập DSC có độ phức tạp thấp hơn tích chập 1 1 thông thường + lần. Ta thử với 64 bộ lọc (3x3) ta thu được kết quả 0.127, 𝑁 𝐷𝐾2 nhỏ hơn khoảng 8 lần và đây cũng là số lần nhỏ hơn của số parametter DSC so với tích chập thường.2 Kiến trúc mạng MobileNet V1 Hình 2.3 Bảng mô tả kiến trúc của mạng MobileNetV1 [1] Như chúng ta thấy, kiến trúc MobileNet có 30 lớp, ảnh ngõ vào là ảnh màu 224x224x3, phần lớn các lớp là DSC để giảm số lượng trọng số.
Ngõ ra là 1 trong 1000 lớp đã được đưa ra phân loại từ lớp softmax. Sau các lớp chập Depthwise và Pointwise mạng sử dụng hàm kích hoạt ReLU và Batch Normalization (BN).4 So sánh giữa phép chập thường và phép chập theo DSC [1] Theo như hình đã so sánh thì khác phép chập thông thường, phép chập theo DSC sẽ có phép chập ở ngõ vào khác nhau và có thêm một vài lớp trung gian khác nữa.2 GIỚI THIỆU KIẾN TRÚC MOBILENET V2 Mạng MobileNetV2 được giới thiệu vào đầu năm 2018, là mạng được cải tiến từ MobileNet V1, mạng đã cải tiến về mặt tốc độ và accuracy tốt hơn, nhưng vẫn giữ được sự đơn giản, không yêu cầu bất kì toán tử phức tạp nào để hạn chế sử dụng tài nguyên phần cứng. Để giải quyết vấn đề đó, ở mạng MobileNetV2 đã được đề xuất một lớp mới là khối Inverted Residual với Linear Bottleneck.1 Loại bỏ non-linear Xem xét một mạng nơ ron học sâu bao gồm n lớp (Li), mỗi lớp có một tensor kích hoạt có kích thước Hi * Wi * Di. Những tensor này chúng ta sẽ xem như là nơi chứa Hi * Wi pixel với Di chiều, Với tập hình ảnh thực ở ngõ vào sẽ có tương ứng tập các lớp kích hoạt ở mỗi lớp tạo thành “maniford interest”, có thể được hiểu là một ma trận nhiều chiều phức tạp.
Đã có giả định rằng các “maniford interest” trong mạng nơ ron có thể được đưa vào một không gian phụ kích thước nhỏ hơn nếu xem xét tất cả các pixel của 1 kênh riêng trong một lớp tích chập, điều này đã được áp dụng thành công ở mạng MobileNet. Theo cách đó, bằng cách tiếp cận để hệ số chiều rộng để giảm kích thước tensor kích hoạt cho đến khi maniford interest 8 trải dài hết toàn bộ. Tuy nhiên cách đó đã thất bại vì ở mỗi lớp trong mạng nơ ron học sâu có các phép biến đổi phi tuyến tính, ví dụ như ReLU, hàm ReLU được áp dụng cho một đường thẳng trong không gian 1 chiều tạo ra một tia, trong không gian Rn, nó tạo ra một đường cong tuyến tính với n điểm. Có thể dễ dàng hiểu rằng nếu kết quả của lớp biến đối ReLU có ngõ ra khác không, các giá trị được ánh xạ ở trong ngõ ra đã thu được với phép biến đổi tuyến tính của ngõ vào.
Điều đó chỉ ra rằng một phần của không gian ngõ vào tương ứng với tất cả chiều của ngõ ra được giới hạn bởi biến đổi tuyến tính.5 Biểu diễn của hàm phi tuyến tác động lên sự mất mát của dữ liệu [2] Điều này cho thấy khi maniford ngõ vào có kích thước thấp thì ReLU vẫn có khả năng giữ nguyên thông tin nhưng ngược lại khi maniford có kích thước lớn thì các biến đổi phi tuyến sẽ làm mất mát thông tin. Do đó, bằng sử dụng các lớp Linear Bottleneck vào các khối tích chập, bằng chứng trên thực nghiệm cho rằng việc sử dụng các lớp tuyến tính rất quan trọng vì nó ngăn các lớp phi tuyến tính làm mất mát dữ liệu.2 Khối Inverted Residual với Linear Bottleneck. Với kiến trúc mạng MobileNetV2 sử dụng Inverted Residual vì cấu trúc này tiết kiệm bộ nhớ hơn. Điểm khác biệt có thể dễ dàng nhận thấy là Residual này có số lượng kênh ở input và output của một block sẽ có số lượng kênh nhiều hơn khi so với lớp trung gian, điều này trái ngược hoàn toàn với khối Residual truyền thống.
Đối với layer trung gian nguyên nhân do có nhiều lớp hơn là để thực hiện chức năng biến đổi phi tuyến để tạo ra nhiều phép biến đổi hơn. Tại đây, các layer trung gian này sử dụng phương pháp chập tách biệt theo chiều sâu để (DSC) mục đích để giảm số lượng tham số sử dụng trong kiến trúc này. Các layer input và input không cần thực hiện việc biến đổi phi tuyến, vì sẽ có một kết nối tắt giữa các 9 bottleneck input và output mà không cần thực hiện trên các layer trung gian. Các kết nối sẽ được điều chỉnh sao cho số lượng kênh ở input và output bị thu hẹp lại, chính vì vậy mới được gọi là bottleneck layers.6 So sánh sự khác nhau giữa khối Residual Block và Inverted Residual Block [2] Đối với mạng MobileNetV2 thì sẽ sử dụng theo khối bên phải, với đặc điểm khá dễ để nhận ra là kích thước ngõ vào và ngõ ra nhỏ, còn kích thước lớp trung gian sẽ to ra.3 Kiến trúc mạng MobileNetV2 Hình 2.7 Bảng mô tả kiến trúc của mạng Mobile Net V2 và khối Inverted Residual Block [2] Theo như bảng ở trên thì MobileNetV2 là một kiến trúc mạng nơ ron tích chập dựa trên cấu trúc inverted residual, là nơi các kết nối residual nằm giữa các lớp bottleneck.
Lớp trung gian sử dụng tích chập theo chiều sâu để lọc các feature map không tuyến tính. Kiến trúc mạng MobileNetV2 bao gồm 1 lớp chập truyền thống với 32 bộ lọc, tiếp theo là 19 lớp residual bottleneck 10 Cấu trúc một khối bottleneck residual gồm ngõ vào có kích thước h * w, độ sâu d’, hệ số mở rộng t và kích thước kernel k và độ sâu d’’ ở ngõ ra. Tổng độ phức tạp của một khối bottleneck residual là h × w × d’ × t × (d’+ k2 + d’’). So sánh với lớp DSC ở mạng MobileNet thì khối bottleneck nhiều hơn một lớp tích chập theo điểm vì bản chất của mạng cần thu hẹp kích thước ngõ vào và ngõ ra.
Ở bên trong các bottleneck, ta sử dụng ReLU6 là một hàm phi tuyến vì tính ưu việt của nó khi tính toán trên số có precision thấp. Ở lớp tích chập theo chiều sâu, ta sử dụng bộ lọc có kích thước 3x3 đồng thời vẫn sử dụng droppout và batch normalization. Để tạo bottleneck sử dụng tích chập với kernnel 1x1, số kênh của output được mở rộng để tạo thành layer trung gian, sau đó tích chập theo chiều sâu với kernel 3x3 để rút trích đặc trưng, kích thước của ngõ ra có chiều sâu bằng với lớp chập cuối, và cuối là tích chập với kernel 1x1 để giảm số kênh xuống tạo thành output cho khối residual. Ngoại trừ lớp đầu tiên, kiến trúc mạng sử dụng hằng số mở rộng cho các lớp để ở rộng thành các layer trung gian.
Trong quá trình nghiên cứu, nhận thấy rằng hệ số mở rộng khoảng từ 5 đến 10 có hiệu suất gần giống nhau, tuy thuộc vào kích thước mạng, với mạng nhỏ thích hợp với hệ số mở rộng nhỏ và mạng lớn thích hợp với hệ số mở rộng lớn. 11 CHƯƠNG 3 THIẾT KẾ HỆ THỐNG MỞ CỬA TỰ ĐỘNG THÔNG QUA NHẬN DIỆN CÓ ĐEO KHẨU TRANG VÀ NHIỆT ĐỘ CƠ THỂ THẤP 3.1 THIẾT KẾ PHẦN CỨNG 3.1 Sơ đồ khối hệ thống Hệ thống nhận diện khẩu trang và nhiệt độ này phục vụ tại những vị trí có nhiều người qua lại thường xuyên, do đó hệ thống cần đạt được một số yêu cầu kỹ thuật. Hệ thống cần có điện năng tiêu thụ nhỏ và có thể hoạt động liên tục trong khoảng thời gian dài. Sơ đồ khối của hệ thống được mô tả trong hình dưới đây: Hình 3.