1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thiết kế và thi công mô hình gương thông minh

109 16 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 109
Dung lượng 5,51 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tính cấp thiết của đề tài Mạng Internet ngày nay gắn liền với hầu hết công việc hằng ngày của chúng ta, internet đã và đang trở thành một thói quen không thể thiếu, với đó là sự xuất hiệ

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

THÀNH PHỐ HỒ CHÍ MINH

ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG

THIẾT KẾ VÀ THI CÔNG MÔ HÌNH GƯƠNG THÔNG

MINH (SMART MIRROR)

GVHD: NGUYỄN NGÔ LÂM SVTH: NGUYỄN HỮU ANH HUÂN MSSV:14141575

SVTH: HUỲNH CÔNG TÀI MSSV: 14141517

SKL 0 0 6 5 1 5

Trang 2

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc

***

Tp Hồ Chí Minh, ngày 15 tháng 12 năm 2017 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

2 Các số liệu, tài liệu ban đầu:

Kiến thức cơ bản về các môn học mạch điện, điện tử cơ bản, vi xử lý, điện tử thông tin, ngôn ngữ lập trình C và tham khảo nguồn tài liệu đồ án tốt nghiệp của khóa trước và các nguồn thông tin từ mạng internet

3 Nội dung thực hiện đề tài:

o Tìm hiểu về máy tính nhúng Raspberry Pi 3

o Tìm hiểu về module camera Raspberry Pi

o Tìm hiểu về phần mềm viết chương trình JavaScrit

o Tìm hiểu về nền tảng đám mây Google Cloud

o Viết chương trình điều khiển cho Raspberry Pi

o Thiết kế và thi công mô hình gương thông minh (Smart Mirror)

o Điều chỉnh để hệ thống hoạt động ổn định

o Viết báo cáo thực hiện đề tài tốt nghiệp

o Báo cáo đề tài tốt nghiệp

4 Sản phẩm: Mô hình gương thông minh (Smart Mirror) có khả năng hiển thị thông tin cần thiết đến người dùng như thời gian, thời tiết, tìm kiếm video, điều khiển đèn thông minh

TRƯỞNG NGÀNH GIẢNG VIÊN HƯỚNG DẪN

1 Tên đề tài: Thiết kế và thi công mô hình gương thông minh (Smart Mirror)

Ngành: CNKT ĐIỆN TỬ TRUYỀN THÔNG Lớp : 14141CLDT2

Giảng viên hướng dẫn: THẦY NGUYỄN NGÔ LÂM ĐT : 0908434763

Họ và tên sinh viên: NGUYỄN HỮU ANH HUÂN

Họ và tên sinh viên: HUỲNH CÔNG TÀI

MSSV: 14141575 MSSV: 14141517

Trang 3

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập – Tự do – Hạnh Phúc

*******

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Họ và tên Sinh viên : Nguyễn Hữu Anh Huân MSSV : 14141575

Họ và tên Sinh viên : Huỳnh Công Tài MSSV : 14141517 Ngành : Công nghệ kỹ thuật điện tử truyền thông

Tên đề tài : Thiết kế và thi công mô hình gương thông minh (Smart Mirror)

Họ và tên GVHD : Thầy NGUYỄN NGÔ LÂM

NHẬN XÉT

1 Về nội dung đề tài & khối lượng thực hiện:

2 Ưu điểm:

3 Khuyết điểm:

4 Đề nghị cho bảo vệ hay không?

5 Đánh giá loại:

6 Điểm:……….(Bằng chữ: )

Tp Hồ Chí Minh, ngày tháng năm 2018

Giáo viên hướng dẫn (Ký & ghi rõ họ tên)

Trang 4

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT

NAM Độc lập – Tự do – Hạnh Phúc

*******

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

Họ và tên Sinh viên : Nguyễn Hữu Anh Huân MSSV: 14141575

Họ và tên Sinh viên : Huỳnh Công Tài MSSV: 14141517 Ngành : Công nghệ kỹ thuật điện tử truyền thông

Tên đề tài : Thiết kế và thi công mô hình gương thông minh (Smart Mirror)

Họ và tên Giáo viên phản biện : ………

NHẬN XÉT

1 Về nội dung đề tài & khối lượng thực hiện:

2 Ưu điểm:

3 Khuyết điểm:

4 Đề nghị cho bảo vệ hay không?

5 Đánh giá loại:

6 Điểm:……….(Bằng chữ: )

Tp Hồ Chí Minh, ngày tháng năm 2018

Giáo viên phản biện (Ký & ghi rõ họ tên)

Trang 5

LỜI CẢM ƠN

Để hoàn thành đồ án tốt nghiệp này, lời đầu tiên chúng em xin bày tỏ lòng biết

ơn sâu sắc đến Thầy Nguyễn Ngô Lâm đã tận tình hướng dẫn nhóm trong suốt quãng thời gian thực hiện đồ án tốt nghiệp này

Chúng em cũng xin chân thành cảm ơn quý thầy, cô trường Đại Học Sư Phạm

Kỹ Thuật TP.HCM, đặc biệt là các thầy cô của khoa Đào Tạo Chất Lượng Cao, đã nhiệt tình giúp đỡ, truyền đạt kiến thức trong suốt khoảng thời gian học tập tại trường Vốn kiến thức được tiếp thu trong quá trình học không chỉ là nền tảng cho quá trình thực hiện đồ án tốt nghiệp mà còn là hành trang quý báu cho sự nghiệp của chúng em sau này

Tuy nhiên, nhóm chúng em vẫn còn hạn chế lớn về mặt kiến thức, còn nhiều thiếu sót, hay những kiến thức chưa nắm vững, nhưng đã được Thầy hướng dẫn tận tình giải đáp một cách kịp thời Vì thế nhóm có thể hiểu rõ vấn đề một cách chi tiết hơn để có thể hoàn thành tốt đồ án tốt nghiệp này

Cuối cùng, mặc dù nhóm đã cố gắng hoàn thành nhiệm vụ đề tài đặt ra và đảm bảo thời hạn đúng quy định nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, mong quý Thầy/Cô và các bạn sinh viên thông cảm Nhóm mong nhận được những

ý kiến của quý Thầy/Cô và các bạn sinh viên

Nhóm xin chân thành cảm ơn!

Tp.Hồ Chí Minh, Tháng 07 năm 2018 Nhóm sinh viên thực hiện Huỳnh Công Tài Nguyễn Hữu Anh Huân

Trang 6

LỜI MỞ ĐẦU

Hiện nay, việc phát triển của thế giới điện tử số phát triển một cách nhanh chóng và mạnh mẽ, điện tử số ngày càng trở nên đa dạng và các ứng dụng gần gũi với chúng ta hơn Cùng với sự phát triển đa dạng của ngành công nghiệp vi xử lý nên nguồn tài nguyên của vi xử lý cũng được nâng cao để đáp ứng các ứng dụng khác nhau trong thực tế

Công nghệ ngày càng phát triển đòi hỏi nhu cầu ứng dụng vào đời sống hằng ngày của con người, đem lại hiệu quả cao cho người sử dụng

Vì thế, nhóm lựa chọn đề tài THIẾT KẾ VÀ THI CÔNG MÔ HÌNH GƯƠNG THÔNG MINH (SMART MIRROR) nhằm tìm hiểu thêm về sự quan trọng của vi điều khiển, Web Server, cũng như đáp ứng nhu cầu cấp thiết của xã hội

Bên cạnh việc phản chiếu hình ảnh phía trước gương, thì hệ thống còn có thể cung cấp cho người sử dụng các thông tin về thời gian, thời tiết, tìm vị trí hay xem video một cách nhanh chóng nhất có thể

Trang 7

MỤC LỤC

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ii

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN iii

LỜI CẢM ƠN iv

LỜI MỞ ĐẦU v

MỤC LỤC vi

DANH MỤC TỪ VIẾT TẮT ix

DANH MỤC HÌNH ẢNH x

DANH MỤC CÁC BẢNG BIỂU xii

CHƯƠNG 1: TỔNG QUAN 1

1.1 Tình hình nghiên cứu hiện nay 1

1.2 Tính cấp thiết của đề tài 1

1.3 Mục tiêu nghiên cứu 1

1.4 Nhiệm vụ nghiên cứu 1

1.5 Đối tượng và phạm vi nghiên cứu 2

1.6 Phương pháp nghiên cứu 2

1.7 Bố cục của Đồ án 2

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4

2.1 Giới thiệu về module RASPBERRY PI 4

2.1.1 Giới thiệu về bo mạch RASPBERRY PI 3 4

2.1.2 Cấu hình RASPBERRY PI 3 5

2.1.3 Phần mềm 8

2.2 Tổng quan thư viện NODE.JS 8

2.2.1 Đặc điểm của thư viện NODE.JS 8

2.2.2 Các lĩnh vực Node.js được sử dụng phổ biến: 9

2.3 Tổng quan thư viện Angular.Js 9

2.3.1 Đặc trưng của Angular.Js 9

2.3.2 Các tính năng cơ bản của Angular.Js 10

2.3.3 Ưu điểm của Angular.Js 10

2.3.4 Nhược điểm 10

2.3.5 Cấu trúc MVC trong Angular.Js 11

2.3.6 Dependency Injection trong Angular.Js 11

2.4 Giới thiệu HDMI 12

2.4.1 Cấu tạo và nguyên tắc hoạt động của cáp HDMI 12

2.4.2 Ưu điểm của HDMI 12

Trang 8

2.4.3 Một số loại cáp HDMI: 12

2.5 Giới thiệu Raspberry Pi Camera Module NoIR V2 13

2.5.1 Thông số kỹ thuật: 13

2.6 Giới thiệu bóng đèn thông minh Xiaomi Philips Led 13

2.6.1 Thông số kỹ thuật: 14

CHƯƠNG 3: CÔNG NGHỆ NHẬN DẠNG GIỌNG NÓI, NHẬN DẠNG HÌNH ẢNH VÀ THƯ VIỆN OPENCV 15

3.1 Giới thiệu về công nghệ nhận dạng giọng nói 15

3.1.1 Sự cần thiết của nhận dạng giọng nói đối với con người 15

3.1.2 Lịch sử công nghệ nhận dạng giọng nói 16

3.1.3 Hoạt động của phần mềm nhận dạng giọng nói: 16

3.1.4 Cách thức xây dựng dịch vụ nhận dạng, điều khiển giọng nói 17

3.1.5 Mô hình triển khai công nghệ nhận dạng giọng nói 18

3.1.6 Các công nghệ nhận dạng giọng nói 18

3.1.7 Các thư viện giọng nói phổ biến 19

3.1.8 Ưu điểm và nhược điểm của công nghệ nhận dạng giọng nói hiện nay 20 3.2 Giới thiệu về công nghệ nhận dạng hình ảnh 20

3.2.1 Kỹ thuật xử lý hình ảnh 21

3.3 Giới thiệu nhận diện khuôn măt: 22

3.3.1 Cách nhận diện khuôn mặt: 23

3.3.2 Các yếu tố làm ảnh hưởng tới kết quả nhận dạng: 24

3.4 Giới thiệu thư viện OpenCV 24

3.4.1 Tổng quan về OPENCV 24

3.4.2 Các ứng dụng OpenCV 26

3.4.3 Các chức năng của OpenCV tập trung vào thu thập ảnh, xử lí ảnh và các thuật toán phân tích dữ liệu ảnh, bao gồm: 26

3.4.4 Sử dụng OpenCV 26

3.4.5 Một số tính năng của 3 phần cơ bản cấu thành nên OpenCV là CxCore, CV và HighGUI 27

3.4.6 Các thao tác trên dữ liệu động 32

3.4.6.1 CV 32

3.4.6.2 HighGUI 32

CHƯƠNG 4: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG 34

4.1 Giới thiệu và tóm tắt 34

4.1.1 Yêu cầu hệ thống 34

4.1.2 Phương án thiết kế 34

Trang 9

4.2 Xây dựng sơ đồ khối toàn hệ thống 35

4.3 Hoạt động của hệ thống: 36

4.4 Tính toán và thiết kế hệ thống 36

4.4.1 Khối hiển thị: 36

4.4.2 Khối thu âm thanh 37

4.4.3 Khối xử lý giọng nói 39

4.4.4 Khối thu hình ảnh 40

4.4.5 Khối nguồn: 41

4.4.6 Khối xử lý trung tâm 42

4.4.6.1 Phần cứng 42

4.4.6.2 Phần mềm 43

4.5 Sơ đồ nguyên lý hệ thống 48

4.6 Lập trình hệ thống 49

4.6.1 Lưu đồ chương trình chính 49

4.6.2 Lưu đồ chương trình con 50

4.6.2.1 SPEECH TO TEXT 50

4.6.2.2 Bản đồ ( MAP ) 51

4.6.2.3 Tìm kiếm video từ Youtube 53

4.6.2.4 Chương trình dừng video đang phát 54

4.6.2.5 Chương trình bảo mật bằng camera 55

4.6.2.6 Chương trình RSS Feeds 56

4.6.2.7 Chương trình điều khiển đèn thông minh Philips 57

4.6.2.8 Chương trình đếm Timer 59

4.6.2.9 Chương trình con cập nhật thời tiết 61

CHƯƠNG 5: KẾT QUẢ THỰC HIỆN VÀ THỰC NGHIỆM 62

5.1 Kết quả thiết kế phần cứng 62

5.2 Kết quả hoạt động của hệ thống 65

CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 70

6.1 Kết luận 70

6.2 Hạn chế và phương hướng phát triển trong tương lai 70

TÀI LIỆU THAM KHẢO 71

PHỤ LỤC 72

Trang 10

DANH MỤC TỪ VIẾT TẮT

3 MFCC Mel Frequency Cepstral Coeffcients

10 JSON JavaScript Object Noattion

Trang 11

DANH MỤC HÌNH ẢNH

Hình 2-1: Kit Raspberry Pi 3 4

Hình 2-2: Kết nối chân Raspberry Pi 3 5

Hình 2-3: Sơ đồ chân GPIO của Raspberry Pi 3 6

Hình 2-4: Kết nối Raspberry Pi 3 với các thiết bị cần thiết 8

Hình 2-5: Cấu tạo của cáp HDMI 12

Hình 2-6: Camera Module NOIR V2 13

Hình 2-7: Bóng đèn thông minh Xiaomi Philips Led 14

Hình 3-1: Công nghệ nhận dạng giọng nói trên di động 15

Hình 3-2: Hệ thống nhận dạng giọng nói đầu tiên 16

Hình 3-3: Hoạt động nhận dạng giọng nói 17

Hình 3-4: Google Assistant 18

Hình 3-5: Siri 19

Hình 4-1: Sơ đồ khối toàn hệ thống 35

Hình 4-2: Màn hình hiển thị 36

Hình 4-4: Micro điện dung 38

Hình 4-5: Kết nối Micro điện dung với Raspberry Pi 3 38

Hình 4-7: Giao diện API 39

Hình 4-8: Module Camera Pi 40

Hình 4-10: Cấu trúc phần cứng Raspberry Pi 3 42

Hình 4-11: Sơ đồ kết nối Raspberry Pi 3 43

Hình 4-12: Sơ đồ chân GPIO Raspberry Pi 3 43

Hình 4-13: Giao diện trang tải hệ điều hành Raspbian 44

Hình 4-14: Hướng dẫn cài hệ điều hành cho Raspberry Pi bằng Win32DiskImager 45

Hình 4-15: Giao diện sau khi khởi động lần đầu 45

Hình 4-16: Giao diện Terminal 46

Hình 4-17: Thiết lập VNC cho Pi 47

Trang 12

Hình 4-14: Thiết lập VNC cho Raspberry Pi 47

Hình 4-18: Giao diện VNC viewer 48

Hình 4-19: Lưu đồ chương trình chính 49

Hình 4-20: Lưu đồ chương trình Speech to text 50

Hình 4-21: Lưu đồ chương trình MAP 51

Hình 4-22: Lưu đồ chương trình Zoom in 52

Hình 4-23: Lưu đồ chương trình Zoom out 52

Hình 4-24: Lưu đồ chương trình tìm video 53

Hình 4-25: Lưu đồ chương trình dừng video 54

Hình 4-26: Lưu đồ chương trình bảo mật bằng camera 55

Hình 4-27: Lưu đồ chương trình RSS Feeds 56

Hình 4-28: Lưu đồ chương trình điều khiển đèn thông minh 57

Hình 4-29: Lưu đồ chương trình Light On 58

Hình 4-30: Lưu đồ chương trình Light Off 58

Hình 4-31: Lưu đồ chương trình đếm Timer 59

Hình 4-32: Lưu đồ chương trình Stop Timer 60

Hình 4-33: Lưu đồ chương trình Resume Timer 60

Hình 4-34: Lưu đồ chương trình con thời tiết 61

Hình 5-1: Phần mặt trước của mô hình gương thông minh 62

Hình 5-4: Giao diện khi khởi động hệ thống 65

Hình 5-5: Bảng danh sách các lệnh mà gương có thể thực hiện 66

Hình 5-6: Gương thực hiện tìm kiếm và phát video 67

Hình 5-7: Thực hiện lệnh đếm ngược thời gian 68

Trang 13

DANH MỤC CÁC BẢNG BIỂU Bảng 2-1: Cấu hình phần cứng Raspberry Pi 3 6Bảng 2-2: Thứ tự tên chân GPIO của Raspberry Pi 3 7

Trang 14

CHƯƠNG 1: TỔNG QUAN 1.1 Tình hình nghiên cứu hiện nay

Ngày nay trong mỗi gia đình, cơ quan, trường học đều có một vật dụng không thể thiếu và được rất nhiều người sử dụng thường xuyên trong ngày, đó là gương, gương có bề mặt đủ lớn để hiển thị nội dụng và phản chiếu lại hình ảnh phía trước

nó Cùng với đó là sự phát triển vượt bậc về công nghệ giúp cho cuộc sống của con người ngày càng hiện đại và tiện lợi hơn, các thiết bị hỗ trợ thông minh bắt đầu ra đời

và giúp ích rất nhiều cho con người trong lĩnh vực khoa học kỹ thuật và trong đời sống xã hội

Từ đó mà nhóm bắt đầu tìm hiểu và nghiên cứu thực hiện đề tài “Thiết kế và thi công mô hình gương thông minh (Smart Mirror)”

1.2 Tính cấp thiết của đề tài

Mạng Internet ngày nay gắn liền với hầu hết công việc hằng ngày của chúng

ta, internet đã và đang trở thành một thói quen không thể thiếu, với đó là sự xuất hiện các thiết bị thông minh như điện thoại, máy tính bảng, đồng hồ thông minh, vv giúp việc truy cập internet diễn ra ở bất kỳ thời gian và địa điểm khi chúng ta cần sử dụng

Trong đó thì các KIT nhúng đóng một vai trò vô cùng quan trọng, phổ biến hơn cả là KIT Raspberry Pi Đó một máy tính nhỏ với những tính năng vượt trội và cho phép người sử dụng dễ dàng truy cập internet thông qua mạng có dây hoặc wifi

Với mục đích nghiên cứu về lĩnh vực Home Automation tạo ra một sản phẩm

có tính ứng dụng, nhóm em xin thực hiện đề tài “Thiết kế và thi công mô hình gương thông minh (Smart Mirror)”

1.3 Mục tiêu nghiên cứu

Đề tài này sẽ mang lại cho người sử dụng giao diện trên gương thông minh có các chức năng xem thời gian, thời tiết, lịch biểu hằng ngày, tra địa điểm, tìm kiếm video hoặc điều khiển thiết bị thông minh (ví dụ đèn thông minh) mà người sử dụng

đã cài đặt trước và được điều khiển bằng giọng nói Hệ thống sử dụng module camera Raspberry Pi chuyên dùng được điều khiển bởi module Raspberry Pi 3

1.4 Nhiệm vụ nghiên cứu

o Tìm hiểu cách lập trình và điều khiển Raspberry Pi 3

o Tìm hiểu, lập trình giao tiếp giữa Raspberry Pi và module Camera

o Lập trình khối giao tiếp giữa Raspberry Pi và Wifi

o Tìm hiểu về công nghệ nhận dạng giọng nói ứng dụng trong cuộc sống hằng ngày

o Lắp đặt mô hình gương thông minh

o Chạy thử nghiệm hệ thống gương thông minh

o Viết báo cáo kết quả đã thực hiện được

Trang 15

1.5 Đối tượng và phạm vi nghiên cứu

o Thiết kế mô hình gương thông minh để hỗ trợ người dùng và điều khiển một

số thiết bị trong nhà

o Nghiên cứu sử dụng Raspberry Pi làm bộ điều khiển trung tâm

o Đề tài chỉ áp dụng khi nhà ở có kết nối hệ thống internet 3G hoặc mạng không dây wifi hoặc mạng có dây LAN

o Sử dụng module camera chuyên dụng để kết nối với Raspberry Pi 3

1.6 Phương pháp nghiên cứu

o Phương pháp tham khảo tài liệu: bằng cách thu thập thông tin về điện tử, viễn thông, truy cập từ mạng internet, các đồ án của khóa trước

o Phương pháp quan sát: khảo sát một số mô hình từ mạng internet, khảo sát

đề tài trước đó để chọn lựa phương án thiết kế phù hợp sau này

o Phương pháp thực nghiệm: từ ý tưởng và kiến thức của nhóm, cùng với sự hướng dẫn của giáo viên, nhóm đã lắp ráp thử nghiệm hệ thống để tìm cách hoạt động tối ưu nhất

1.7 Bố cục của Đồ án

o Chương 1: Tổng quan đề tài

Trình bày ngắn gọn về sự cần thiết đề tài đối với cuộc sống Đồng thời nêu ra được các phương pháp tiếp cận và thực hiện đề tài theo từng bước

o Chương 2: Cơ sở lý thuyết liên quan

Giới thiệu các kiến thức lý thuyết cơ bản về công nghệ Internet, giới thiệu Kit Raspberry Pi 3 với hệ điều hành Rasbian Nêu được các đặc điểm, giao thức truyền nhận dữ liệu, lựa chọn thiết bị thu âm, thiết bị thu hình ảnh, đèn thông minh và các thư viện hỗ trợ thực hiện đề tài

o Chương 3: Giới thiệu công nghệ nhận diện giọng nói, công ngệ nhận dạng hình ảnh và sơ lược về thư viện OPENCV

Giới thiệu sơ lược về các công nghệ nhận diện giọng nói, công nghệ nhận dạng hình ảnh và tóm tắt về thư viện mã nguồn mở OpenCV

o Chương 4: Tính toán và thiết kế hệ thống

Trình bày về hệ thống gương thông minh gồm xây dựng sơ đồ khối, sơ đồ nguyên

lý toàn hệ thống Đưa ra lưu đồ giải thuật cho ứng dụng và chương trình xử lý

o Chương 5: Kết quả so sánh, thực nghiệm, phân tích, tổng hợp

Chương này đưa ra các kết quả kiểm ra thực tế vào nhiều thời điểm trong ngày hoặc hoạt động trong các môi trường khác nhau

Trang 16

o Chương 6: Kết luận và hướng phát triển

Chương này sẽ đưa ra các kết quả đạt được sau khi thực hiện đồ án, các hướng phát triển và mở rộng đồ án cho nhu cầu sau này

Trang 17

CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu về module RASPBERRY PI

Hiện nay, trên thế giới nói chung và đối với Việt Nam nói riêng, có rất nhiều KIT điện tử được sử dụng phổ biến như Raspberry Pi, Arduino, STM32F103, … Trong đó, Raspberry Pi và Arduino là hai KIT được sử dụng phổ biến nhất với giá thành vừa phải và có thể đáp ứng được hầu hết các yêu cầu đặt ra cho việc thực hiện các đề tài điều khiển các thiết bị và truyền thông tin qua internet

Arduino thường áp dụng với hệ thống linh hoạt với khả năng giao tiếp với các thiết bị, đồng thời cũng là hệ thống để học cho người mới bắt đầu và cho các dự án quy mô nhỏ

Raspberry Pi là một máy tính nhúng có thể làm hầu hết mọi ứng dụng hằng ngày như đọc báo, giải trí, xem phim, học lập trình, hoặc thực hiện các dự án lớn như nhà thông minh, điều khiển Robot, …

Raspberry Pi chạy trên nền tảng hệ điều hành Linux, có các GPIO giúp ta có thể kết nối và điều khiển các thiết bị khác như đèn, camera, …

Với các ưu điểm và tính năng nổi trội nêu trên, Raspberry Pi đã trở thành thiết

bị được sử dụng phổ biến nhất cho các dự án lập trình Đó là cũng là lý do để nhóm nghiên cứu để thực hiện đề tài “THIẾT KẾ VÀ THI CÔNG MÔ HÌNH GƯƠNG THÔNG MINH (SMART MIRROR)”

2.1.1 Giới thiệu về bo mạch RASPBERRY PI 3

Raspberry Pi 3 là chiếc máy tính giá khoảng 35USD với kích cỡ như một chiếc Iphone và chạy hệ điều hành Linux Với mục tiêu chính của chương trình là giảng dạy máy tính cho trẻ em, được phát triển bởi Raspberry Pi Foundation _một tổ chức phi lợi nhuận với mục đích là xây dựng hệ thống mà nhiều người có thể sử dụng được trong những công việc khác nhau

Hình 2-1: Kit Raspberry Pi 3

Trang 18

Raspberry Pi 3 sản xuất bởi 3 OEM: Sony, Qsida, Egoman Và được phân phối chính thức bởi Element14, RS Components và Egoman

Nhiệm vụ của dự án là tạo ra máy tính giá thành rẻ có khả năng lập trình cho sinh viên, nhưng Raspberry Pi 3 đã nhận được sự quan tâm từ nhiều đối tượng khác nhau Đặc tính của Raspberry Pi 3 xây dựng quanh bộ xử lí SoC Broadcom BCM (thường được dùng trong điện thoại di động) bao gồm CPU, GPU, bộ xử lý âm thanh/video và các tính năng đa dạng khác nhau … đều được tích hợp trong chip có điện năng thấp này

Nhưng Raspberry Pi 3 không thể thay thế hoàn toàn một hệ thống máy để bàn hoặc máy tính xách tay Không thể chạy hệ điều hành Windows trên Raspberry Pi vì BCM dựa trên cấu trúc ARM không hỗ trợ mã x86/x64, nhưng có thể chạy bằng Linux với các tiện ích như lướt web, môi trường Desktop và các nhiệm vụ cơ bản khác Tuy nhiên Raspberry Pi 3 vẫn là một thiết bị đa năng có giá thành rẻ nhưng rất hoàn hảo cho những hệ thống điện tử, dự án DIY hoặc hệ thống tính toán cho những bài học trải nghiệm lập trình

Hình 2-2: Kết nối chân Raspberry Pi 3 2.1.2 Cấu hình RASPBERRY PI 3

Phiên bản Raspberry Pi đầu tiên được phát hành tháng 2 năm 2012, tới nay đã

có nhiều phiên bản khác nhau, với sự nâng cấp của phần cứng, cũng như phần mềm

để hướng tới những mục tiêu khác nhau

Trang 19

40 GPIO , 2 SPI BUS

6 Nguồn 5V qua cổng Micro USB – dòng 2500mA

12.5W

Raspberry Pi 3 cung cấp cho người lập trình 40 cổng GPIO, giao tiếp SPI, I2C, Serial Các cổng GPIO được sử dụng để xuất/ nhận giá trị 0/1 ra/vào từ bên ngoài Giao tiếp I2C, SPI, Serial được dùng để kết nối trực tiếp với các thiết bị khác

Hình 2-3: Sơ đồ chân GPIO của Raspberry Pi 3

Trang 20

Bảng 2-2: Thứ tự tên chân GPIO của Raspberry Pi 3

Trang 21

Hình 2-4: Kết nối Raspberry Pi 3 với các thiết bị cần thiết

2.1.3 Phần mềm

Trình quản lý cài đặt cho Raspberry Pi là NOOBS gồm các hệ điều hành đi kèm với đó là:

o Puppy Linux

o RISC OS – là hệ điều hành của máy tính dựa trên nền tảng ARM đầu tiên

o Raspbian – được bảo trì độc lập bởi Foundation dựa trên cổng kiến trúc Debian ARM được thiết kế ban đầu cho ARMv7, biên dịch các tập lệnh hạn chế hơn ARMv6 của Raspberry Pi 1 Thẻ nhớ có kích thước tối thiểu 8 GB là cần thiết cho các Raspbian image được cung cấp bởi Raspberry Pi Foundation

o Raspbian for Robots – một biến thể của Raspbian dành cho các dự án robot với Grove, Arduino

Trong các hệ điều hành nêu trên, Raspbian xem là hệ điều hành chính thức của Raspberry, được dùng phổ biến nhất hiện nay

2.2 Tổng quan thư viện NODE.JS

Node.js là một hệ thống phần mềm được thiết kế để viết các ứng dụng internet

có khả năng mở rộng, đặc biệt là máy chủ Web Chương trình được viết bằng JavaScript, sử dụng kỹ thuật điều khiển theo sự kiện, nhập/xuất không đồng bộ để tối thiểu chi phí và tối đại khả năng mở rộng Node.js gồm có V8 JavaScript engine của Google và một số thư viện khác

2.2.1 Đặc điểm của thư viện NODE.JS

o Không đồng bộ và Phát sinh sự kiện (Event Driven): Tất các các APIs của thư viện Node.js đều không đồng bộ, nghĩa là không blocking (khóa) Nó rất cần thiết vì Node.js không bao giờ đợi một API trả về dự liệu Server chuyển sang

Trang 22

một API sau khi gọi nó và có cơ chế thông báo về sự kiện của Node.js giúp Server nhận đựa phản hồi từ các API gọi trước đó

o Chạy rất nhanh: Dựa trên V8 Javascript Engine của Google Chrome, thư viện Node.js giúp tối ưu được code hơn các nền tảng khác

o Các tiến trình đơn giản nhưng hiệu năng cao: Node.js sử dụng một mô hình luồng đơn (single thread) với các sự kiện lặp Các cơ chế sự kiện giúp Server trả lại các phản hồi với một cách không khóa và tạo cho Server hiệu quả cao ngược lại với các cách truyền thống tạo ra một số lượng luồng hữu hạn để quản lý yêu cầu Node.js sử dụng các chương trình luồng đơn và các chương trình này cung cấp các dịch vụ cho số lượng yêu cầu nhiều hơn so với các Server truyền thống như Apache HTTP Server

o Không có bộ nhớ đệm: Ứng dụng Node.js không lưu trữ các dữ liệu buffer

o Có giấy phép: Node.js được phát hành dựa vào MIT License

2.2.2 Các lĩnh vực Node.js được sử dụng phổ biến:

o Các ứng dụng về I/O

o Các ứng dụng về luồng dữ liệu

o Các ứng dụng dựa vào JSON APIs

o Các ứng dụng Single Page Application

2.3 Tổng quan thư viện Angular.Js

Thư viện Angular.Js là một web framework JavaScript được phát triển bởi Google để giải quyết các vấn đề gặp phải trong việc phát triển ứng dụng đơn trang - Single Page Application (SPA) Angular.Js cho phép sử dụng HTML như là ngôn ngữ mẫu và có thể mở rộng cú pháp của HTML để diễn đạt các thành phần ứng dụng Hai tính năng cốt lỗi: Data binding và Dependency injection

2.3.1 Đặc trưng của Angular.Js

o Phát triển dựa trên Javascript

o Tạo các ứng dụng client-side theo mô hình MVC

o Khả năng tương thích cao, tự động xử lý mã Javascript để phù hợp với mỗi trình duyệt

o Mã nguồn mở, miễn phí hoàn toàn và được sử dụng rộng rãi

Trang 23

2.3.2 Các tính năng cơ bản của Angular.Js

o Scope: là đối tượng có nhiệm vụ giao tiếp giữa controller và view của ứng dụng

o Controller: xử lí dữ liệu cho đối tượng $scope, từ đây bên views sẽ sử dụng các dữ liệu trong scope để hiển thị ra tương ứng

o Data-binding: tự động đồng bộ dữ liệu giữa model và view

o Service: là singleton object được khởi tạo 1 lần duy nhất cho mỗi ứng dụng, cung cấp các phương thức lưu trữ dữ liệu có sẵn ($http, $httpBackend, $sce,

$controller, $document, $compile, $parse, $rootElement, $rootScope … )

o Filter: Lọc các tập con từ tập item trong các mảng và trả về các mảng mới

o Directive: dùng để tạo các thẻ HTML riêng phục vụ những mục đích riêng AngularJS có những directive có sẵn như ngBind, ngModel…

o Temple: một thành phần của view, hiển thị thông tin từ controller

o Routing: chuyển đổi giữa các action trong controller, qua lại giữa các view

o MVC & MVVM: mô hình thiết kế để phân chia các ứng dụng thành nhiều phần khác nhau (gọi là Model, View và Controller) mỗi phần có một nhiệm

vụ nhất định AngularJS không triển khai MVC theo cách truyền thống, mà gắn liền hơn với Model-View-ViewModel

o Deep link: Liên kết sâu, cho phép bạn mã hóa trạng thái của ứng dụng trong các URL để nó có thể bookmark với công cụ tìm kiếm Các ứng dụng có thể được phục hồi lại từ các địa chỉ URL với cùng một trạng thái

2.3.3 Ưu điểm của Angular.Js

o Cung cấp khả năng tạo ra các Single Page Application dễ dàng

o Cung cấp khả năng data binding tới HTML

Trang 24

2.3.5 Cấu trúc MVC trong Angular.Js

MVC (Model View Controller) là một mô hình thiết kế phần mềm cho các ứng dụng phát triển trên nền tảng web Một MVC được tạo thành bởi 3 thành phần chính sau:

Model: Là thành phần thấp nhất của mô hình có nhiệm vụ duy trì dữ liệu Nó phản hồi các yêu cầu từ phần view và thực hiện những phần lệnh từ controller để cập nhật các giá trị cho bản thân nó

View: Có nhiệm vụ hiển thị các phần dữ liệu theo một định dạng cụ thể, được trigger bởi phần controller để hiển thị dữ liệu

Controller: Là phần Code điều khiển sự tương tác giữa Model và View Phần Controller nhận các tham số đầu vào, làm cho các tham số

có hiệu lực, sau đó thực hiện các hoạt động logic mà trong đó có thể thay đổi trạng thái dữ liệu model

2.3.6 Dependency Injection trong Angular.Js

Dependency Injection là một mô hình thiết kế phần mềm mà trong đó các thành phần được đưa ra từ những phần phụ thuộc nó - dependencies thay cho việc hardcoding chúng trong các thành phần Điều này làm cho cách thành phần phụ thuộc nhau trong phần cấu hình Nó giúp việc làm có các thành phần có tính tái sử dụng cao, dễ bảo dưỡng và kiểm tra thử

Angular.js cung cấp kỹ thuật Dependency Injection, cho phép các thành phần lõi của Angular.js có thể được inject tới các thành phần phụ thuộc khác

Value: Là đối tượng JavaScript đơn giản và được sử dụng để thiết lập các giá trị tới controller trong các bước cấu hình

Factory: Là một hàm để sử dụng trả về giá trị Nó tạo ra giá trị theo yêu cầu mỗi khi service hoặc controller yêu cầu Người dùng thường dùng các hàm factory để tính và trả về giá trị

Service: Là một đối tượng singleton javascript chứa tập các hàm cho các mục đích cụ thể Service được định nghĩa sử dụng hàm service()

và sau đó inject nó đến controller

Provider: Được sử dụng bởi trong nội bộ AngularJS để tạo service, factory… trong quá trình cài đặt (quá trình mà AngularJS khởi tạo chính nó) Dưới đây mô tả script có thể tạo toanhocService trong đó chúng ta tạo trước đó Provider là một phương thức factory đặc biệt với phương thức get() trả về giá trị là value/service/factory

Constant: Được sử dụng thể truyền các giá trị trong tại giai đoạn cấu hình

Trang 25

2.4 Giới thiệu HDMI

HDMI là viết tắt của High-Definition Multimedia Interface nghĩa là giao diện

đa phương tiện độ phân giải cao Đây là một chuẩn kết nối cho phép truyền tải hình ảnh, âm thanh thông qua một sợi cáp đến một màn hình trình chiếu lớn hơn mà vẫn đảm bảo được độ phân giải cao

2.4.1 Cấu tạo và nguyên tắc hoạt động của cáp HDMI

Đầu cáp HDMI được cấu tạo bao gồm 19 chân, mỗi chân đảm nhiệm một nhiệm vụ khác nhau và trong quá trình truyền dữ liệu thì sẽ phải tuân thủ theo nguyên tắc nhất định

Cáp HDMI thường được hỗ trợ chất lượng âm thanh chuẩn phòng thu, nên có thể yên tâm khi sử dụng nó để chuyện sang thiết bị khác

Hình 2-5: Cấu tạo của cáp HDMI 2.4.2 Ưu điểm của HDMI

HDMI cho phép truyền tải hình ảnh ở độ phân giải full HD 60 khung hình/giây

Đủ băng thông cho video HD 1080p, tốc độ 50/60Hz

Với 8 kênh âm thanh 24bit ở 192Hz chất lượng phòng thu, sẽ giúp âm thanh

có chất lượng cao nhất

2.4.3 Một số loại cáp HDMI:

Theo HDMI Licensing (tổ chức đại diện cho các nhà phát minh HDMI) đã chia dây cáp HDMI làm 5 loại:

o Cáp HDMI chuẩn- chỉ hỗ trợ tới độ phân giải mức 1080i/60Hz

o Cáp HDMI tốc độ cao- hỗ trợ độ phân giải lên đến 1080p, tính năng Deep Color, định dạng 3D (theo chuẩn 1.4)

o Cáp HDMI chuẩn có Ethernet- giống cáp HDMI chuẩn nhưng có thêm đường Ethernet

o Cáp HDMI tốc độ cao có Ethernet- giống cáp HDMI tốc độ cao nhưng có thêm đường Ethernet

Trang 26

o Cáp HDMI Automotive- hỗ trợ kết nối nhiều thiết bị phát HDMI với thiết bị HDMI trong xe ô tô

2.5 Giới thiệu Raspberry Pi Camera Module NoIR V2

Tháng 4/2016, Raspberry Pi Foundation cho ra mắt thế hệ thứ hai của sản phẩm Camera Module với nâng cấp quan trọng nhất là sử dụng cảm biến Sony IMX219 8 Megapixel

Raspberry Pi Camera Module V2 có một cảm biến 8-Megapixel của Sony (so với cảm biến 5-Megapixel OmniVision OV5647 trên phiên bản cũ)

Camera Module được sử dụng để có thể chụp ảnh tĩnh, quay video với độ nét cao Được hỗ trợ quay video lên đến 1080p30, 720p60 và video mode VGA90

Camera Module sử dụng đoạn cáp 15cm qua cổng CSI trên Raspberry Pi

Camera Module này tương thích với tất cả các phiên bản của Raspberry Pi

Hình 2-6: Camera Module NOIR V2 2.5.1 Thông số kỹ thuật:

Kết nối với Raspberry Pi thông qua cáp ribbon đi kèm

2.6 Giới thiệu bóng đèn thông minh Xiaomi Philips Led

Philips là một nhà sản xuất đi tiên phong trong lĩnh vực thiết bị điện, với thế mạnh là các thiết bị chiếu sáng với khả năng tiết kiệm điện cực kỳ hiệu quả Hãng vừa hợp tác với Xiaomi để cho ra sản phẩm bóng đèn thông minh kết nối wifi Một chiếc bóng đèn LED được trang bị khả năng kết nối wifi và có thể điều khiển từ xa

Trang 27

Giao tiếp: thủ công, hoặc Mihome App

Đèn có thiết kế như những bóng đèn sợi đốt đang được bán trên thị trường Phần bóng đèn hình tròn Bóng đèn không dùng đầu đèn từ thủy tinh, thay vào đó là nhựa PC đạt quang thông UL90 V0 Thân đèn sử dụng chất liệu nhựa 66 với độ bền cao, chống oxy hóa

Hình 2-7: Bóng đèn thông minh Xiaomi Philips Led

Trang 28

CHƯƠNG 3: SƠ LƯỢC VỀ CÔNG NGHỆ NHẬN DẠNG GIỌNG NÓI, NHẬN DẠNG HÌNH ẢNH

VÀ THƯ VIỆN OPENCV 3.1 Giới thiệu về công nghệ nhận dạng giọng nói

Trong thời đại công nghệ ngày nay, giọng nói là một thứ rất “quyền lực” Các

thiệt bị hiện đại đều có thể nhận diện giọng nói của bạn để thực hiện nhiều tính năng

và hành động khác nhau Những chiếc smartphone, tablet, thiết bị hỗ trợ thông minh

giờ đây đều có tính năng điều khiển bằng giọng nói, một số sản phẩm thậm chí có thể

trả lời lại người dùng như hai người đang nói chuyện với nhau Sự ra đời của công

nghệ này đã trở thành một xu hướng phát triển mới trong thị trường ứng dụng di động,

đặc biệt là những ứng dụng trước đây đòi hỏi người dùng phải gõ và nhập liệu nhiều

3.1.1 Sự cần thiết của nhận dạng giọng nói đối với con người

Hiện nay có cả trăm nghìn ứng dụng cho phép người dùng tìm kiếm, viết email,

ghi chú và đặt lịch hẹn Thế nhưng đối với một số người, việc sử dụng bàn phím nhỏ

là không tiện lợi, hay gây khó chịụ

Giọng nói là giải pháp hợp lý nhất tính đến thời điểm hiện tại Người dùng

không chỉ sử dụng giọng nói của mình như một phương thức nhập liệu mà chính thiết

bị cũng có thể sử dụng giọng nói để đọc ra những thông tin cần thiết

Càng ngày những phần mềm nhận dạng giọng nói càng thông minh hơn, khả

năng nhận dạng chính xác hơn, thông tin trả về cũng hữu ích và đa dạng hơn Nhằm

cải thiện hiệu suất làm việc của công nghệ nhận dạng giọng nói có thể áp dụng những

kỹ thuật như data mining (khai thác dữ liệu theo chiều sâu, đưa ra những phân tích về

nhiều mặt), machine learning (cho phép máy móc tự học hỏi thói quen, hành vi của

người dùng)

Hình 3-1: Công nghệ nhận dạng giọng nói trên di động

Trang 29

3.1.2 Lịch sử công nghệ nhận dạng giọng nói

Nhận dạng giọng nói xuất hiện lần đầu trên các thiết bị điện toán cá nhân từ khoảng 20 năm trước, khi Windows 98 được giới thiệu Hệ thống nhận diện giọng nói ban đầu chỉ hiểu chữ số vì các kỹ sư cho rằng ngôn ngữ con người quá phức tạp Năm 1952, Bell Laboratories thiết kế ra “Audrey”, hệ thống nhận diện chữ số từ một giọng nói nhất định 10 năm sau tại triển lãm World Fair, IBM trình diễn hệ thống

“Shoebox” có thể nhận diện 16 từ tiếng Anh khác nhau

Hình 3-2: Hệ thống nhận dạng giọng nói đầu tiên Nhận dạng giọng nói là một bộ máy hoặc hệ thống có khả năng nhận và dịch (hoặc hiểu và thực hiện) các lệnh thu được từ giọng nói con người

Nhận dạng giọng nói gồm 2 thuật ngữ chính: Voice recognition và Speech recognition

o Voice recognition liên quan đến việc xác định giọng nói chính xác của một cá nhân nào đó, như một phương pháp nhận diện sinh trắc học

o Speech recognition là việc xác định những từ ngữ trong câu nói rồi dịch chúng sang ngôn ngữ máy tính

3.1.3 Hoạt động của phần mềm nhận dạng giọng nói:

Để chuyển giọng nói sang văn bản hoặc câu lệnh máy tính, hệ thống phải thực hiện một quá trình gồm nhiều bước phức tạp Khi nói, bạn sẽ tạo ra những rung động trong không khí Bộ chuyển đổi tín hiệu tương tự sang số (Analog to Digital Converter, ADC) chuyển các sóng tương tự (analog) thành dữ liệu máy tính có thể hiểu được

Để làm điều này, hệ thống sẽ thu thập các mẫu âm thanh bằng cách đo chính xác sóng âm ở các khoảng thời gian gần nhau, sau đó lọc âm thanh đã được số hóa

để loại bỏ tiếng ồn, tách chúng thành các dải tần số khác nhau và tinh chỉnh âm thanh

Trang 30

đến một mức âm lượng không thay đổi hoặc sắp xếp theo thời gian Không phải lúc nào con người cũng nói với tốc độ như nhau nên âm thanh phải được điều chỉnh cho phù hợp với tốc độ mà âm thanh mẫu được ghi nhận trong bộ nhớ máy

Tiếp theo, tín hiệu được chia thành nhiều phần nhỏ với thời gian khoảng vài phần trăm giây Chương trình sẽ đặt những phần âm thanh này vào các âm vị có sẵn trong ngôn ngữ thích hợp

Âm vị là phân đoạn nhỏ nhất của âm thanh dùng để cấu tạo nên sự phân biệt giữa các cách phát âm Do đó, âm vị là một nhóm các âm thanh với sự khác biệt tương đối nhỏ cùng đảm nhận một chức năng ý nghĩa theo người nói và phương ngữ

Hình 3-3: Hoạt động nhận dạng giọng nói 3.1.4 Cách thức xây dựng dịch vụ nhận dạng, điều khiển giọng nói

Thông thường một bộ máy giọng nói sẽ có hai phần:

o Phần thứ nhất gọi là speech synthesizer (còn gọi với tên khác là Text to Speech hay TTS) Đây là một trình tổng hợp giọng nói và thiết bị hoặc ứng dụng để tương tác với người dùng, ví dụ như đọc văn bản trên màn hình, thông báo về tiến độ chạy một tác vụ nào đó

o Phần thứ hai là một công nghệ nhận dạng cho phép ứng dụng biết được người dùng đang nói gì, từ đó chuyển thành lệnh để thiết bị thực thi hoặc chuyển đổi thành các kí tự nhập liệu Một ứng dụng nhận dạng giọng nói lý tưởng sẽ bao gồm cả hai phần nói trên

Các nhà phát triển phải xây dựng một công nghệ có thể lắng nghe, phân tích và phiên dịch một cách chính xác giọng nói của người dùng

Trang 31

3.1.5 Mô hình triển khai công nghệ nhận dạng giọng nói

Có nhiều cách thức mà các công ty hiện nay đang triển khai công nghệ nhận dạng giọng nói, có thể kể đến hai phương pháp phổ biến sau:

Điện toán đám mây: Trong trường hợp này, việc nhận dạng, xử lý ngôn ngữ

sẽ diễn ra trên máy chủ của các công ty cung cấp dịch vụ Phương pháp đám mây giúp việc nhận dạng được chính xác hơn, ứng dụng thì có dung lượng nhỏ, nhưng thiết bị của người dùng phải luôn được kết nối internet

Tích hợp thẳng vào ứng dụng: Với phương pháp này, quá trình xử lý giọng nói sẽ diễn ra bên trong ứng dụng, không cần giao tiếp bên ngoài, vì thế tốc độ sẽ nhanh hơn Người sử dụng không bắt buộc phải kết nối mạng internet thường xuyên 3.1.6 Các công nghệ nhận dạng giọng nói

Đã có nhiều nghiên cứu hoặc giới thiệu thành công những ứng dụng giọng nói

Có thể nhắc đến Ask.com, một dịch vụ cho phép người dùng hỏi và nhận câu trả lời, tích hợp công nghệ nhận dạng giọng nói do Nuance phát triển vào ứng dụng iOS và Android của mình

Một ứng dụng khác như DriveSafe.ly có thể đọc tin nhắn và email dành cho những người khiếm thị, hay một số khác cho phép tìm kiếm hoặc nhắn tin bằng giọng nói dành cho người bị liệt

Nhận dạng giọng nói còn được sử dụng rất nhiều trong lĩnh vực trí tuệ nhân tạo (Artificial Intelligence) Siri hay Google Assistant là các ví dụ điển hình

Google Assistant là hệ thống trợ lý cá nhân ảo được phát triển bởi Google, ra mắt tháng 5/2016 Assistant lần đầu xuất hiện rộng rãi trong ứng dụng nhắn tin Allo, sau một thời gian độc quyền trên Pixel, tháng 2/2017 Assistant chính thức có mặt trên các thiết bị Android, 3 tháng sau xuất hiện trên iOS trong một ứng dụng độc lập

Hình 3-4: Google Assistant

Trang 32

Siri là trợ lý cá nhân được Apple ra mắt cùng iPhone 4s năm 2011 Nó được tích hợp sâu vào hệ điều hành và phản hồi lại người dùng bằng giọng nói Bạn có thể

ra lệnh cho Siri gọi điện, nhắn tin SMS, đặt lịch hẹn, báo thức Siri có thể học tập sở thích, phong cách, giọng nói để đưa ra thông tin phù hợp cho chủ nhân

Hình 3-5: Siri Amazon cũng cập nhật ứng dụng Kindle trên iOS để hỗ trợ tính năng VoiceOver trong iOS VoiceOver sẽ tự động đọc nội dung trên màn hình để giúp cho việc xem sách của những người bị khiếm thị được dễ dàng và thuận tiện hơn Hãng cho biết có khoảng 1.8 triệu đầu sách e-book tương thích với tính năng này Bản thân Amazon cũng từng mua lại công ty IVONA SoftWare vốn cung cấp giải pháp chuyển đổi từ chữ sang giọng nói cho các đầu sách mua từ Amazon

Sự phổ biến của công nghệ nhận dạng giọng nói trong các ứng dụng chat/nhắn tin Facebook Messenger đã có tính năng chia sẻ giọng nói từ lâu, còn nhiều dịch vụ Over-The-Top như Zalo, Viber và WhatsApp của nước ngoài cũng đã nhanh chóng đón đầu xu hướng để tích hợp tính năng chat giọng nói vào sản phẩm của mình 3.1.7 Các thư viện giọng nói phổ biến

Nuance là cái tên phổ biến nhất trong việc cung cấp thư viện giọng nói cho các ứng dụng đi động Chính nhờ vào những thư viện như thế mà các lập trình viên không cần phải tự mình thiết kế hệ thống nhận dạng, phiên dịch cho ứng dụng mà chỉ cần sử dụng lại cái có sẵn, tiết kiệm được nhiều thời gian, công sức Nuance có hỗ trợ cho tiếng Việt trong ứng dụng Dragon Dictation do chính hãng này phát triển

OpenEars cũng là một thư viện khác nhưng nó thuộc dạng nguồn mở và hoạt động offline, hạn chế ở điểm chỉ hỗ trợ tiếng Anh và Tây Ban Nha

Một số thư viện khác có thể kể đến là Ivona, iSpeech, Vocalkit và Acapela Một cách khác mà nhiều phần mềm hiện nay đang sử dụng là tận dụng bộ nguồn nhận dạng có sẵn trên các hệ điều hành di động Người dùng kích hoạt tính năng này ở những chỗ cần nhập văn bản Google đã bắt đầu hỗ trợ nhập liệu tiếng

Trang 33

Việt cho Android khoảng 2 năm về trước Ngoài ra, Apple, Google cũng có cung cấp thêm các hàm API giúp ứng dụng biết nói chỉ với vài dòng mã nguồn

3.1.8 Ưu điểm và nhược điểm của công nghệ nhận dạng giọng nói hiện nay

o Ưu điểm:

Khả năng truy cập: Với những người khuyết tật không thể dùng chuột hay bàn phím, họ có thể dùng giọng nói để hệ thống chuyển thành văn bản, giúp nhập liệu hay điều khiển một cách dễ dàng

Kiểm tra chính tả: Người dùng có thể truy cập vào các công cụ chỉnh sửa tương

tự một giải pháp xử lý văn bản chuẩn Tuy nhiên, mọi thứ không thể chính xác 100% nhưng phần mềm có thể nhận diện và xử lý phần lớn lỗi chính tả, ngữ pháp

Tốc độ nhanh: Phần mềm có thể nắm bắt giọng nói của bạn với tốc độ nhanh hơn so với khi nhập liệu bằng bàn phím, vì vậy tốc độ khi nhập liệu bằng giọng nói

sẽ cải thiện đáng kể

o Nhược điểm:

Thiết lập và "dạy": Mặc dù các nhà phát triển đều hứa hẹn phần mềm có thể hoạt động sau vài phút thiết lập, nhưng thực sự quá trình ghi nhận, làm quen với giọng nói, âm điệu và tốc độ nói của người dùng có phần phức tạp và tốn thời gian Một số phần mềm còn yêu cầu người dùng nói lại, hay không thể nhận diện được người dùng đang nói gì

Chưa thực sự ổn định: Việc đang nói mà bị ngắt giữa chừng có thể khiến người dùng bị quên, đặc biệt phần mềm có thể không nhận ra khi người dùng lên xuống giọng hay nói nhỏ lại một cách đột ngột

Kho từ vựng hạn chế: Người dùng phải sẵn sàng chấp nhận trường hợp phần mềm xử lý quá lâu vì những từ vừa nói không nằm trong từ điển được thiết lập từ trước Đó cũng là điều đang được cải tiến từng ngày từng giờ

3.2 Giới thiệu về công nghệ nhận dạng hình ảnh

Công nghệ nhận dạng hình ảnh có tiềm năng lớn trong việc áp dụng rộng rãi trong các ngành công nghiệp khác nhau Các công ty lớn như Tesla, Google, Adobe Systems cũng sử dụng công nghệ nhận dạng hình ảnh Để nhận dạng hình ảnh được

mở rộng như ngày nay, đó là dựa vào các công cụ mã nguồn mở giúp lập trình dễ dàng hơn, giá cả cũng thấp hơn Các khung công tác và thư viện nguồn mở ngày nay làm cho các công ty có thể hưởng lợi từ công nghệ nhận dạng hình ảnh theo cấp số nhân Ví dụ, các cơ sở dữ liệu mở lớn như Pascal VOC và ImageNet cung cấp quyền truy cập vào hàng triệu hình ảnh được gắn thẻ

Trên thực tế, họ giúp các công ty công nghệ hình ảnh phát triển và cải tiến các ứng dụng thuật toán máy học (Machine learning) Đối với các nhà phát triển chuyên

Trang 34

nghiệp nhận dạng hình ảnh thời gian thực cũng sử dụng một thư viện đa nền tảng được gọi là OpenCV Đây được xem là điểm giải quyết đầu tiên và là nguồn tài nguyên có thẩm quyền nhất cho các chuyên gia nhận dạng hình ảnh

Trong công nghệ nhận dạng hình ảnh phát triển phần mềm di động, web và phần mềm phục vụ cho các lý do sau:

o Cải thiện ứng dụng di động UX

Tính ứng dụng là không giới hạn Với những tiến bộ trong công nghệ mở ra nhiều cơ hội mới cho các công ty Phân tích hình ảnh được đưa đến một cấp độ hoàn toàn mới nhờ vào các giải pháp nguồn mở và các công cụ học sâu (deep learning)

Nhận dạng hình ảnh hoặc tầm nhìn máy tính là một kỹ thuật đề cập đến việc tìm kiếm các cách để tự động hóa tất cả công việc mà một hệ thống thị giác của con người có thể làm TensorFlow của Google, DeepFace của Facebook, Dự án Oxford của Microsoft là những ví dụ điển hình về hệ thống nhận dạng hình ảnh học sâu Mặt khác, các API được lưu trữ như Google Cloud Vision, Clarifai, Imagga cho phép các doanh nghiệp tiết kiệm một số tiền lớn cho các nhóm phát triển

Ưu điểm của các dịch vụ mã nguồn mở được đề cập rất nhiều Họ tiến hành tính toán nhận dạng hình ảnh trong đám mây khiến cho hoạt động kinh doanh của người sử dụng trở nên hiệu quả hơn và rẻ hơn rất nhiều Ngoài ra, các nhà phát triển nội bộ tại công ty có thể tích hợp API của họ vào ứng dụng của người dùng mà không gặp sự cố Hơn nữa, các nhà phát triển API mở này có thể sử dụng để phát triển một doanh nghiệp mới trong lĩnh vực nhận dạng hình ảnh

3.2.1 Kỹ thuật xử lý hình ảnh

Xử lý ảnh gồm nhiều giai đoạn: Nhập ảnh, phân tích, thao tác và tạo ảnh Có hai phương pháp xử lý hình ảnh: kỹ thuật số (Digital) và kỹ thuật tương tự (analog) Thuật toán máy tính đóng một vai trò quan trọng trong xử lý hình ảnh kỹ thuật số Nhà phát triển sử dụng nhiều thuật toán để giải quyết các tác vụ khác nhau, bao gồm phát hiện hình ảnh, phân tích, xây dựng lại, khôi phục, nén dữ liệu hình ảnh, tăng cường hình ảnh và ước tính quang phổ hình ảnh

o Các kỹ thuật chính về xử lý hình ảnh:

Chỉnh sửa hình ảnh: về cơ bản có nghĩa là thay đổi hình ảnh kỹ thuật số bằng các công cụ phần mềm đồ họa như Photoshop, Lightroom, Gimp,

Trang 35

Phục hồi hình ảnh: trong đó đề cập đến việc ước tính của một hình ảnh ban đầu sạch ra khỏi hình ảnh tham nhũng được thực hiện để lấy lại các thông tin bị mất

Phân tích thành phần độc lập: phân tách tín hiệu đa biến tính toán thành các thành phần phụ cộng

Nhiễu xạ không đẳng hướng: thường được gọi là khuếch tán Perona-Malik, giúp giảm nhiễu hình ảnh mà không phải loại bỏ các phần quan trọng của hình ảnh

Lọc tuyến tính: Đó là một kỹ thuật xử lý hình ảnh kỹ thuật số khác, dùng để chỉ các tín hiệu đầu vào biến đổi theo thời gian và tạo ra các tín hiệu đầu ra phụ thuộc vào ràng buộc của tuyến tính

Mạng nơron: là các mô hình tính toán được sử dụng rộng rãi trong máy học

để giải quyết các nhiệm vụ khác nhau

Pixelation: thường đề cập đến việc chuyển hình ảnh đã in thành những hình ảnh được số hóa (chẳng hạn như GIF)

Phân tích thành phần chính: một kỹ thuật xử lý hình ảnh kỹ thuật số có thể được sử dụng để trích xuất tính năng

Một phần phương trình vi phân: nó giúp khử nhiễu hình ảnh

Các mô hình Markov ẩn: một kỹ thuật được sử dụng để phân tích hình ảnh theo hai chiều (2D)

Wavelets: viết tắt của một hàm toán học được sử dụng trong nén hình ảnh Bản đồ tự tổ chức: kỹ thuật xử lý hình ảnh kỹ thuật số để phân loại hình ảnh thành một số layer (lớp)

3.3 Giới thiệu về nhận diện khuôn mặt:

Con người rất giỏi trong việc nhận diện khuôn mặt và các hình mẫu phức tạp Ngay cả khi một thời gian trôi qua vẫn không ảnh hưởng đến khả năng này và con người muốn máy tính trở nên thông minh như họ trong việc nhận diện khuôn mặt

Có rất nhiều công trình nghiên cứu về bài toán xác định khuôn mặt người từ ảnh đen trắng, ảnh xám, đến ảnh màu Các nghiên cứu đi từ bài toán đơn giản là ảnh chỉ chứa một khuôn mặt người nhìn thẳng vào thiết bị thu hình và đầu ở tư thế thẳng đứng, cho đến ảnh màu với nhiều khuôn mặt người trong cùng ảnh, khuôn mặt có quay một góc nhỏ, hay bị che khuất một phần, và với ảnh nền của ảnh phức tạp (ảnh chụp ngoài thiên nhiên) nhằm đáp ứng nhu cầu thật sự cần thiết của con người

Bài toán xác định khuôn mặt người là một kỹ thuật máy tính để xác định các

vị trí và các kích thước của khuôn mặt trong ảnh bất kỳ (ảnh kỹ thuật số) Kỹ thuật này nhận biết các đặt trưng khuôn mặt và bỏ qua những thứ khác như: toà nhà, cây cối, cơ thể…

Trang 36

Hệ thống nhận diện khuôn mặt có thể giúp:

o Tra cứu thông tin tội phạm

o Giám sát bằng camera để phát hiện tội phạm tại các khu vực công cộng

o Tìm trẻ thất lạc dựa vào các camera đặt ở các nơi công cộng

o Phát hiện các nhân vật VIP đặt chân vào khách sạn

o Phát hiện tội phạm tại các nơi công cộng

o Có thể dùng trong khoa học để so sánh một thực thể với nhiều thực thể khác

3.3.1 Cách nhận diện khuôn mặt:

Nhận diện khuôn mặt là tự động xác định (detection) khuôn mặt và nhận diện (recognition) một người cụ thể từ ảnh hoặc một đoạn video Một trong những cách làm là so sánh đặc tính của khuôn mặt với những hình trong cơ sở dữ liệu

Cho đến năm 2000, có rất nhiều kỹ thuật khác nhau để tìm khuôn mặt, nhưng tất cả đều phản hồi chậm hoặc không đưa ra kết quả đáng tin tưởng hoặc là cả hai

Một sự thay đổi lớn vào năm 2001 khi Viola và Jones phát minh ra Haar-based cascade classifier dùng để xác định đối tượng, và vào năm 2002 nó được cải thiện bởi Lienhart và Maydt

Kết quả là việc xác định đối tượng đã đủ nhanh (nhận diện real-time trên máy tính dùng web cam) và đủ tin tưởng (độ chính xác hơn 95%)

Có hai phương pháp tiếp cận với nhận dạng khuôn mặt 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 (Feature Based Face Recognition), và nhận dạng dựa trên xét tổng thể toàn khuôn mặt (Appearance Based Face Recognition)

Các đặc trưng haar-like (haar-like features) là các hình chữ nhật được phân thành các vùng khác nhau

Đầu tiên đưa ảnh về xám hóa (gray), sau đó cho các đặc trưng haar-like chạy khắp bức ảnh, những khu vực so sánh giống với nhiều đặc trưng haar-like nhất được đánh dấu lại

Sau đây là 3 bước chính trong việc nhận diện khuôn mặt theo phương pháp haar-like

Bước 1 Phát hiện “vị trí của khuôn mặt”

Bước 2 Tìm “vị trí những điểm đặc trưng trên khuôn mặt”

Bước 3 Tìm kiếm và nhận diện khuôn mặt dựa trên các đặc trưng

Trang 37

3.3.2 Các yếu tố làm ảnh hưởng tới kết quả nhận dạng:

Ánh sáng: Ảnh kỹ thuật số biểu diễn cường độ sáng của đối tượng, do đó khi ánh sáng thay đổi, thông tin về đối tượng sẽ bị ảnh hưởng

Cự ly của đối tượng so với camera: khoảng cách đối tượng so với camera sẽ xác định số pixel ảnh quy định nên khuôn mặt

Cảm xúc biểu cảm trên khuôn mặt: các nét biểu cảm cảm xúc trên khuôn mặt gây ra nhiễu, việc loại nhiễu này vẫn chưa có phương pháp hiệu quả

Tư thế đứng của đối tượng (nghiêng, xoay, …): tư thế của đối tượng sẽ xác định thông tin của đối tượng đó Việc tư thế thay đổi quá lớn sẽ làm thay phần lớn thông tin về đối tượng, dẫn đến kết quả nhận dạng sai

Trang phục của đối tượng: Kết quả nhận dạng có thể bị ảnh hưởng lớn nếu như đối tượng có các trang phục khác biệt so với mẫu như đeo kính, đội mũ, … 3.4 Giới thiệu sơ lược thư viện OpenCV

3.4.1 Tổng quan về OPENCV

OpenCV (Open Computer Vision library) do Intel phát triển, được giới thiệu năm 1999 và hoàn thiện thành phiên bản 1.0 năm 2006 Thư viện OpenCV – gồm khoảng 500 hàm là một thư viện mã nguồn mở hàng đầu cho xử lý về thị giác máy tính, machine learning hay xử lý ảnh OpenCV được viết bằng ngôn ngữ C/C++, nên

có tốc độ tính toán rất nhanh, có thể sử dụng với các ứng dụng liên quan đến thời gian thực OpenCV có các interface cho C/C++, Python Java vì vậy hỗ trợ được cho Window, Linux, MacOs….đóng vai trò xác lập chuẩn giao tiếp, dữ liệu, thuật toán cho lĩnh vực CV và tạo điều kiện cho mọi người tham gia nghiên cứu và phát triển ứng dụng

Trước OpenCV không có một công cụ chuẩn nào cho lĩnh vực xử lý ảnh Các đoạn code đơn lẻ do các nhà nghiên cứu tự viết thường không thống nhất và không

có sự ổn định Ngoài ra còn có các giải pháp kèm theo thiết bị phần cứng mà phần lớn là mã nguồn đóng và được thiết kế cho từng thiết bị, rất khó trong việc mở rộng ứng dụng

OpenCV là công cụ hữu ích cho xử lý ảnh với các ưu điểm sau:

OpenCV là công cụ chuyên dụng: được Intel phát triển theo hướng tối ưu hóa cho các ứng dụng xử lí và phân tích ảnh, với cấu trúc dữ liệu hợp lý, thư viện tạo giao diện, truy xuất thiết bị phần cứng được tích hợp sẵn OpenCV thích hợp để phát triển nhanh ứng dụng

OpenCV là công cụ mã nguồn mở: không chỉ là một công cụ miễn phí, việc xây dựng trên mã nguồn mở giúp OpenCV trở thành công cụ thích hợp cho nghiên cứu và phát triển, với khả năng thay đổi và mở rộng các mô hình thuật toán

Trang 38

OpenCV đã được sử dụng rộng rãi: Từ năm 1999 đến nay, OpenCV đã thu hút được một lượng lớn người dùng, trong đó có các công ty lớn như Microsoft, IBM, Sony, Google Nhiều diễn đàn hỗ trợ và cộng đồng người dùng đã được thành lập, tạo nên kênh thông tin hữu ích cho việc tham khảo tra cứu

Thư viện có hơn 2500 thuật toán được tối ưu hóa, bao gồm một tập hợp toàn diện các thuật toán máy học Các thuật toán này có thể được sử dụng để phát hiện và nhận diện khuôn mặt, xác định đối tượng, phân loại hành động của con người trong video, theo dõi chuyển động của camera, trích xuất mô hình 3D của đối tượng, tìm hình ảnh tương tự từ cơ sở dữ liệu hình ảnh,… OpenCV có hơn 47 nghìn người dùng cộng đồng và số lượt tải vượt quá 14 triệu Thư viện được sử dụng rộng rãi trong các công ty, nhóm nghiên cứu và cơ quan chính phủ

Tổ chức thư viện OpenCV khá đơn giản có cấu trúc module, có nghĩa là gói bao gồm một số thư viện được chia sẻ hoặc tĩnh Các module sau đây có sẵn:

o CxCore: Core chứa đựng rất nhiều thành phần cơ bản cấu thành nên toàn

bộ OpenCv Bao gồm xác định các cấu trúc dữ liệu cơ bản, mảng đa chiều dày đặc và các chức năng cơ bản được sử dụng bởi tất cả các module khác

o CV: chứa các thuật toán về xử lý ảnh và định kích cỡ camera Các chức năng hình họa máy tính cũng được đặt ở đây

o CVCAM: chứa các giao diện cho video truy cập qua DirectX trên nền Windows 32 bits

o Imgproc: đây là một module xử lý hình ảnh của OpenCV bao gồm các bộ lọc (filter) linear và non-linear và các phép biến đổi hình học (tranformation) như resize hoặc các phép biến đổi affine, các thuật toán liên quan đến histogram (biểu đồ) của hình ảnh

o Highgui: đây là một module cho phép tương tác với người dùng trên UI (User Interface) như hiển thị hình ảnh, video capturing

o Video: bao gồm ước tính chuyển động, phép trừ nền và thuật toán theo dõi đối tượng

o Calib3d: thuật toán hình học nhiều lớp cơ bản, hiệu chỉnh máy ảnh đơn và stereo, thuật toán tương ứng âm thanh nổi và các phần tử tái tạo 3D

o Features2d: bộ dò tìm tính năng nổi bật, bộ mô tả và bộ so khớp mô tả

o Objdetect: phát hiện các đối tượng và các thể hiện của các lớp được xác định trước như khuôn mặt, mắt

o ml: Module này chứa các thuật toán về Machine Learning phục vụ cho các bài toán phân lớp (Classfitication) và bài toán gom cụm (Clustering)

Trang 39

3.4.2 Các ứng dụng OpenCV

o OpenCV được sử rộng rãi trong các ứng dụng bao gồm:

o Hình ảnh street view

o Kiểm tra và giám sát tự động

o Robot và ôtô tự lái

o Phân tích hình ảnh y tế

o Tìm kiếm và phục hồi hình ảnh/video

o Phim – cấu trúc 3D từ chuyển động

o Nghệ thuật sắp đặt tương tác

3.4.3 Các chức năng chính của OpenCV tập trung vào thu thập ảnh, xử lí ảnh

và các thuật toán phân tích dữ liệu ảnh, bao gồm:

o Truy xuất ảnh và phim: đọc ảnh số từ camera, từ file, ghi ảnh và phim

o Cấu trúc dữ liệu ảnh số và các dữ liệu hỗ trợ cần thiết: ma trận, vector và chuỗi

o Xử lý ảnh căn bản: các bộ lọc có sẵn, tìm chi tiết cạnh, góc, chỉnh đổi màu, phóng to hoặc thu nhỏ, và hiệu chỉnh histograms

o Xử lý cấu trúc: tìm viền, nhận chuyển động, thay đổi trong không gian 3D, đối chiếu bản mẫu

o Phân tích dữ liệu ảnh: nhận dạng thực thể, theo dõi các chi tiết và phân tích chuyển động

o Tạo giao diện đơn giản: hiển thị ảnh, thao tác bàn phím, chuột, thanh trượt

để chỉnh thông số

o Chức năng vẽ, chú thích lên ảnh

o Image/video I/O, xử lý, hiển thị (core, imgproc, highgui)

o Phát hiện các vật thể (objdetect, features2d, nonfree)

o Machine learning và clustering (ml, flann)

3.4.4 Sử dụng OpenCV

Tất cả các cấu trúc và các hàm của OpenCV đều được đặt tên theo các quy định sau:

Tất cả từ khóa, các hằng đều được viết hoa toàn bộ, bắt đầu bởi tiếp đầu ngữ

“CV”, các từ cách nhau bởi dấu gạch dưới (_)

Tên của hàm và cấu trúc được viết hoa chữ cái đầu mỗi chữ có nghĩa và sử dụng tiếp đầu ngữ “cv” cho hàm và “Cv” cho cấu trúc

Ví dụ: hàm cvFindContours và cấu trúc CvPoint

Trang 40

Tên của một hàm có cấu trúc như sau:

cv <hành động> <đối tượng> <kiểu>

o <hành động>: Thao tác nào được sử dụng Ví dụ như –Set–, –Convert–

o <đối tượng>: Chỉ định đối tượng mà hành động được hướng tới

Ví dụ như –FindContours, -ApproxPoly

Nếu đối tượng có tên dài hơn 1 chữ thì các chữ được viết hoa ký tự đầu

Ở các hàm thuộc HighGUI, tiếp đầu ngữ sẽ là “cvv” thay cho “cv”

3.4.5 Một số tính năng của 3 phần cơ bản cấu thành nên thư viện OpenCV

là CxCore, CV và HighGUI

o CxCore

CxCore chứa đựng rất nhiều các thành phần cơ bản cấu thành nên toàn bộ OpenCV CxCore bao gồm các cấu trúc dữ liệu cơ bản, các thao tác lên array, các cấu trúc động, các hàm vẽ, các hàm tác động lên dữ liệu, các hàm quản lý lỗi và sự kiện

int x; /* x-coordinate, usually zero-based */

int y; /* y-coordinate, usually zero-based */

} CvPoint;

/* the constructor function */

inline CvPoint cvPoint( int x, int y );

/* conversion from CvPoint2D32f */

inline CvPoint cvPointFrom32f( CvPoint2D32f point );

Cùng họ với CvPoint còn có: CvPoint2D32f chứa tọa độ thực, CvPoint3D32f chứa tọa độ thực của điểm trong không gian Ngoài ra còn có CvPoint2D64f, CvPoint3D64f

Ngày đăng: 28/11/2021, 09:24

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w