1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng sản phẩm kính thông minh cho người khiếm thị bằng ứng dụng trí tuệ nhân tạo và internet vạn vật

105 65 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 105
Dung lượng 3,97 MB

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

Nội dung

DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT Viết tắt Giải thích AI Artificial Intelligence Trí tuệ nhân tạo IoT Internet of Thing Internet vạn vật CPU Central Processing Unit Bộ xử lí trung tâm G

Trang 1

BÁO CÁO KHÓA LUẬN TỐT NGHIỆP

Mã sinh viên : 312024161110

Trang 2

LỜI CẢM ƠN

Em xin chân thành gửi lời cảm ơn đến các thầy cô trong Khoa Tin học, Trường Đại học Sư Phạm – Đại học Đà Nẵng đã truyền đạt những kiến thức quý báu trong những năm học vừa qua để em có kiến thức thực hiện đề tài khóa luận này

Em xin chân thành cảm ơn thầy giáo hướng dẫn Th.S Đoàn Duy Bình đã trực tiếp hướng dẫn, tận tình góp ý, giúp đỡ và tạo điều kiện thuận lợi nhất cho em trong suốt quá trình thực hiện đề tài này

Trong quá trình thực hiện chắc hẳn sẽ không tránh những thiếu sót Em rất mong nhận được sự thông cảm, góp ý và tận tình chỉ bảo của quý Thầy Cô và các bạn để đề tài được hoàn thiện hơn

Một lần nữa em xin chân thành cảm ơn!

Trang 3

DANH MỤC CÁC BẢNG

Bảng 0.1 Một số thiết bị kính thông minh trên thế giới 2

Bảng 1.1 Đánh giá một số mạng nơ-ron Object detection cơ sở [5] 17

Bảng 1.2 Đánh giá một số mạng nơ-ron Object detection [5] 17

Bảng 1.3 So sánh Arduino và Raspberry Pi 25

Bảng 2.1 Đặc tả tổng quát các tác nhân hệ thống 33

Bảng 2.2 Đặc tả bảng User 37

Bảng 2.3 Đặc tả bảng Glasses 38

Bảng 2.4 Đặc tả bảng SoftwareVersion 38

Bảng 2.5 Đặc tả bảng Group 39

Bảng 2.6 Đặc tả bảng GroupMember 39

Bảng 2.7 Đặc tả bảng GlassesLink 39

Bảng 2.8 Đặc tả ca sa sử dụng chức năng Nhận dạng đồ vật 44

Bảng 2.9 Đặc tả ca sử dụng chức năng Phân loại đồ vật nguy hiểm 45

Bảng 2.10 Đặc tả ca sử dụng chức năng Cảnh báo tự động vật nguy hiểm 46

Bảng 2.11 Đặc tả ca sử dụng chức năng Cảnh báo tự động chướng ngại vật 48 Bảng 2.12 Đặc tả ca sử dụng chức năng Phát âm thanh tên của tất cả vật thể 49 Bảng 2.13 Đặc tả ca sử dụng chức năng Tìm đồ vật bằng giọng nói 50

Bảng 2.14 Đặc tả ca sử dụng chức năng Gửi tín hiệu SOS 52

Bảng 2.15 Đặc tả ca sử dụng chức năng Liên kết với ứng dụng mobile 53

Bảng 2.16 Đặc tả ca sử dụng chức năng Gửi dữ liệu ảnh chụp và tọa độ GPS 55

Bảng 2.17 Đặc tả ca sử dụng chức năng kiểm tra và cập nhật phiên bản phần mềm mới 56

Bảng 2.18 Đặc tả ca sử dụng chức năng Đăng kí 58

Bảng 2.19 Đặc tả ca sử dụng chức năng Đăng nhập 58

Trang 4

Bảng 2.21 Đặc tả ca sử dụng chức năng Chỉnh sửa thông tin cá nhân 60

Bảng 2.22 Đặc tả tác nhân con của tác nhân "Người thân" 62

Bảng 2.23 Đặc tả ca sử dụng chức năng Quản lí nhóm cho Quản trị viên 63

Bảng 2.24 Đặc tả ca sử dụng chức năng Quản lí nhóm cho Thành viên 63

Bảng 2.25 Đặc tả ca sử dụng chức năng Quản lí kính cho Quản trị viên 65

Bảng 2.26 Đặc tả ca sử dụng chức năng Quản lí kính cho Thành viên 66

Bảng 2.27 Đặc tả ca sử dụng chức năng Thiết lập ngôn ngữ ứng dụng 68

Bảng 2.28 Đặc tả ca sử dụng chức năng Nhận thông báo SOS 69

Bảng 3.1 Danh sách các vật huấn luyện thêm 75

Bảng 3.2 Đánh giá model huấn luyện trên tập dữ liệu Test 79

Bảng 3.3 Danh sách các vật sau khi điều chỉnh tập dữ liệu huấn luyện 82

Bảng 3.4 Phần cứng và giá thành sản phẩm 83

Trang 5

DANH MỤC HÌNH VẼ

Hình 1.1 AI và các lĩnh vực thuộc AI 7

Hình 1.2 Một nơ-ron đơn giản 9

Hình 1.3 Minh hoạ tính chất mong muốn của mạng nơ-ron 10

Hình 1.4 Đồ thị hàm bước nhảy 11

Hình 1.5 Đồ thị hàm sigmoid 12

Hình 1.6 Mạng nơ-ron cơ bản 13

Hình 1.7 Bộ lọc cạnh là các ma trận kích thước 3x3 của -1, 0 và 1 15

Hình 1.8 Ví dụ về bộ lọc cạnh (đứng phải, đứng trái, ngang dưới, ngang trên) với đầu vào là ảnh số viết tay 16

Hình 1.9 Bài toán Object detection 16

Hình 1.10 Kết quả dự đoán sau 21 lớp 19

Hình 1.11 Khác biệt giữa máy học truyền thống và học chuyển 21

Hình 1.12 Ứng dụng học chuyển (Transfer Learning) 22

Hình 1.13 Thiết bị Raspberry Pi 4 B 26

Hình 2.1 Minh họa quá trình liên kết Smart Glasses với Family App 32

Hình 2.2 Sơ đồ ca sử dụng tổng quát 34

Hình 2.3 Sơ đồ kiến trúc hệ thống tổng quát 35

Hình 2.4 Mô hình ER 36

Hình 2.5 Mô hình dữ liệu quan hệ 37

Hình 2.6 Cấu trúc ảnh và các thông tin về thời gian, tọa độ GPS được lưu trữ trên AWS S3 41

Hình 2.7 Topic và mô hình hoạt động của SNS, mỗi client là một subscriber 42

Hình 2.8 Mô hình phần cứng Kính thông minh 43 Hình 2.9 Sơ đồ ca sử dụng chức năng Nhận dạng tên đồ vật và Phân loại vật

Trang 6

Hình 2.10 Sơ đồ tuần tự chức năng Nhận dạng và Phân loại đồ vật 45

Hình 2.11 Sơ đồ ca sử dụng chức năng Cảnh báo tự động vật nguy hiểm 46

Hình 2.12 Sơ đồ tuần tự chức năng Cảnh báo tự động vật nguy hiểm 47

Hình 2.13 Sơ đồ ca sử dụng chức năng Cảnh báo tự động chướng ngại vật 47

Hình 2.14 Sơ đồ tuần tự chức năng Cảnh báo tự động chướng ngại vật 48

Hình 2.15 Sơ đồ ca sử dụng chức năng Phát âm thanh tên tất cả vật thể 49

Hình 2.16 Sơ đồ tuần tự chức năng Phát âm thanh tên tất cả vật thể 50

Hình 2.17 Sơ đồ ca sử dụng chức năng Tìm đồ vật bằng giọng nói 50

Hình 2.18 Sơ đồ tuần tự chức năng Tìm đồ vật bằng giọng nói 51

Hình 2.19 Sơ đồ ca sử dụng chức năng gửi tín hiệu SOS 52

Hình 2.20 Sơ đồ ca sử dụng chức năng Liên kết với ứng dụng mobile 53

Hình 2.21 Sơ đồ tuần tự chức năng liên kết với ứng dụng mobile và chức năng Gửi tín hiệu SOS 54

Hình 2.22 Sơ đồ ca sử dụng chức năng gửi dữ liệu ảnh và tọa độ GPS 54

Hình 2.23 Sơ đồ tuần tự chức năng Gửi ảnh chụp và tọa độ SOS 55

Hình 2.24 Sơ đồ ca sử dụng chức năng kiểm tra và cập nhật phiên bản phần mềm mới 55

Hình 2.25 Sơ đồ tuần tự chức năng kiểm tra và cập nhật phần mềm 56

Hình 2.26 Sơ đồ ca sử dụng chức năng Đăng kí, Đăng nhập, Đăng xuất 57

Hình 2.27 Sơ đồ tuần tự chức năng Đăng kí, Đăng nhập 59

Hình 2.28 Sơ đồ tuần tự chức năng Đăng xuất 60

Hình 2.29 Sơ đồ ca sử dụng chức năng Chỉnh sửa thông tin cá nhân 60

Hình 2.30 Sơ đồ tuần tự chức năng Chỉnh sửa thông tin cá nhân 61

Hình 2.31 Sơ đồ ca sử dụng chức năng Quản lí nhóm 62

Hình 2.32 Sơ đồ tuần tự chức năng Quản lí nhóm của Quản trị viên 64

Hình 2.33 Sơ đồ tuần tự chức năng Quản lí nhóm của Thành viên 64

Hình 2.34 Sơ đồ ca sử dụng chức năng Quản lí kính thông minh 65

Trang 7

Hình 2.35 Sơ đồ tuần tự chức năng Quản lí kính cho Quản trị viên 67

Hình 2.36 Sơ đồ tuần tự chức năng Quản lí kính cho Thành viên 67

Hình 2.37 Sơ đồ ca sử dụng chức năng Thiết lập ngôn ngữ ứng dụng 68

Hình 2.38 Sơ đồ tuần tự chức năng Thiết lập ngôn ngữ ứng dụng 69

Hình 2.39 Sơ đồ ca sử dụng chức năng Nhận thông báo SOS 69

Hình 2.40 Sơ đồ tuần tự chức năng Nhận thông báo SOS 70

Hình 2.41 Sơ đồ lớp hệ thống 71

Hình 3.1 Quy trình huấn luyện dữ liệu 72

Hình 3.2 Các phương pháp làm "giàu" tập dữ liệu huấn luyện 75

Hình 3.3 Gán nhãn thủ công cho từng hình ảnh 77

Hình 3.4 File XML sinh ra sau quá trình gán nhãn 77

Hình 3.5 Cấu trúc thư mục chuẩn bị 78

Hình 3.6 Biểu đồ thay đổi độ tổn thất trong quá trình huấn luyện 79

Hình 3.7 Kính thông minh sau lắp đặt 85

Hình 3.8 Các thành phần Kính thông minh sau lắp đặt 85

Hình 3.9 Chức năng nhận diện đồ vật trên kính 1 86

Hình 3.10 Chức năng nhận diện đồ vật trên kính 2 86

Hình 3.11 Chức năng nhận diện đồ vật trên kính 3 87

Hình 3.12 Chức năng nhận diện đồ vật trên kính 4 87

Hình 3.13 Giao diện đăng nhập và trang chủ 88

Hình 3.14 Giao diện Quản lí nhóm 89

Hình 3.15 Giao diện Quản lí kính 89

Hình 3.16 Giao diện nhận tín hiệu SOS và thiết lập ngôn ngữ 90

Trang 8

DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT Viết tắt Giải thích

AI Artificial Intelligence (Trí tuệ nhân tạo)

IoT Internet of Thing (Internet vạn vật)

CPU Central Processing Unit (Bộ xử lí trung tâm)

GPU Graphical Processing Unit (Bộ xử lí đồ họa)

API Application Programming Interface (Giao diện lập trình

ứng dụng) ANNS Artificial Neural Networks (Mạng nơ-ron nhân tạo)

CNN Convolutional Neural Network (Mạng nơ-ron tích chập) SSD Single Shot Multibox Detector (Tên gọi 1 mạng nơ-ron) RAM Random Access Memory (Bộ nhớ truy cập ngẫu nhiên)

IDE Integrated Development Environment (Môi trường tích

hợp phát triển ứng dụng)

UI User Interface (Giao diện người dùng)

AWS Amazon Web Service (Dịch vụ máy chủ)

S3 Simple Storage Service (Dịch vụ lưu trữ của AWS)

SNS Simple Notification Service (Dịch vụ quản lí tin nhắn của

AWS)

RDS Relational Database Service (Dịch vụ hệ quản trị cơ sở dữ

liệu quan hệ của AWS) CSDL Cơ sở dữ liệu

ER Entity–Relationship model (Mô hình thực thể-quan hệ) GPS Global Positioning System (Hệ thống định vị toàn cầu) SOS Tín hiệu cầu cứu

Trang 9

MỤC LỤC

LỜI CẢM ƠN i

DANH MỤC CÁC BẢNG ii

DANH MỤC HÌNH VẼ iv

DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT vii

MỤC LỤC viii

MỞ ĐẦU 1

1 Giới thiệu 1

2 Tính cấp thiết và mục tiêu của đề tài 2

3 Chức năng chính 3

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

5 Phương pháp thực hiện 4

6 Bố cục báo cáo khóa luận tốt nghiệp 6

CHƯƠNG 1 7

CƠ SỞ LÝ THUYẾT 7

1.1 Trí tuệ nhân tạo và máy học 7

1.1.1 Trí tuệ nhân tạo (AI) 7

1.1.2 Máy học (Machine Learning) 8

1.1.3 Mạng nơ-ron nhân tạo (Artificial Neural Networks - ANNs) 8

1.1.4 Mạng nơ-ron tích chập xử lí hình ảnh 14

1.1.5 Các mạng nơ-ron ứng dụng trong việc nhận dạng vật thể (object detection) 16

1.1.6 Mạng nơ-ron Single Shot MultiBox Detector MobileNet (SSD MobileNet) 18

Trang 10

1.1.8 Python và các thư viện hỗ trợ 22

1.2 Internet vạn vật (IoT) 24

1.2.1 Khái niệm 24

1.2.2 Các loại phần cứng đảm nhiệm vai trò điểu khiển 24

1.2.3 Chip Raspberry Pi và hệ điều hành Raspbian 26

1.3 Lập trình di động Android 27

1.4 Dịch vụ máy chủ 27

1.4.1 Giới thiệu về Amazon Web Service 27

1.4.2 Giới thiệu về Firebase 28

CHƯƠNG 2 29

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 29

2.1 Phân tích hệ thống 29

2.1.1 Mục tiêu và chức năng 29

2.1.2 Phân tích chức năng 30

2.1.3 Đặc tả tổng quát các tác nhân trong hệ thống 33

2.1.4 Sơ đồ ca sử dụng tổng quát 34

2.2 Thiết kế hệ thống phía máy chủ (Backend) 35

2.2.1 Sơ đồ kiến trúc hệ thống tổng quát 35

2.2.2 Cơ sở dữ liệu 36

2.2.3 Thành phần lưu dữ liệu ảnh 40

2.2.4 Thành phần gửi thông báo đến ứng dụng di động 41

2.3 Thiết kế Kính thông minh (Smart Glasses) 42

2.3.1 Thiết kế phần cứng 42

2.3.2 Thiết kế chức năng 43

2.4 Thiết kế ứng dụng di động cho người nhà (Family App) 57

Trang 11

2.4.1 Chức năng đăng kí, đăng nhập, đăng xuất 57

2.4.2 Chức năng Chỉnh sửa thông tin cá nhân 60

2.4.3 Chức năng Quản lí nhóm gia đình 61

2.4.4 Chức năng Quản lí các kính liên kết với nhóm gia đình 65

2.4.5 Chức năng Thiết lập ngôn ngữ sử dụng 68

2.4.6 Chức năng Nhận thông báo đẩy SOS 69

2.5 Sơ đồ lớp hệ thống 71

CHƯƠNG 3 72

TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 72

3.1 Môi trường module huấn luyện dữ liệu 72

3.1.1 Thuật toán huấn luyện 72

3.1.2 Môi trường huấn luyện 75

3.1.3 Đánh giá kết quả mô hình huấn luyện 79

3.2 Môi trường hoạt động và các chức năng trên Kính thông minh 83

3.2.1 Tối ưu model nhận diện 83

3.2.2 Lắp ráp phần cứng và triển khai phần mềm 83

3.3 Môi trường hoạt động và các chức năng trên ứng dụng di động cho người nhà 88

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 91

1 Kết luận 91

2 Hướng phát triển 92

TÀI LIỆU THAM KHẢO 93

Trang 12

MỞ ĐẦU

1 Giới thiệu

Ngày nay, xã hội đã và đang bước vào công cuộc cách mạng khoa học -

kĩ thuật lần thứ 4 (cuộc cách mạng 4.0) Với sự rộ lên của Trí tuệ nhân tạo (AI), Internet vạn vật (IoT) và Giao dịch chuỗi khối (block-chain) Công nghệ được ứng dụng và thay đổi hầu hết cách thức làm việc của mọi ngành nghề Đặc biệt với sự phát triển mạnh mẽ của Trí tuệ nhận tạo, việc khiến công cụ trở nên

“thông minh” và hữu ích hơn không còn là một vấn đề khó

Trong cuộc sống của chúng ta, bên cạnh những người được sinh ra lành lặn thì vẫn còn tồn tại một bộ phận người mang trong mình những khiếm khuyết Họ luôn gặp rất nhiều vấn đề khó khăn trong cuộc sống, đặc biệt là những người khiếm thị Việc mất đi thị lực đã buộc họ sử dụng những cách khác nhau để khám phá thế giới xung quanh (nghe, sờ) và trong một số trường hợp, họ có thể bị tổn thương bởi những yếu tố nguy hiểm xung quanh bởi họ thường phản xạ chậm hoặc chạm vào những vật sắc nhọn, có nhiệt độ cao

Từ đó, đề tài “Xây dựng Sản phẩm Kính thông minh cho Người khiếm thị bằng Ứng dụng Trí tuệ nhân tạo và Internet vạn vật” đã mở ra

một hướng đi mới, đẩy mạnh việc ứng dụng sự phát triển công nghệ để phần nào cải thiện, bù đắp khả năng quan sát, nhận biết thế giới cho người khiếm thị

Sử dụng trí tuệ nhân tạo để mang đến cho người khiếm thị một “đôi mắt kĩ thuật số”

Trang 13

2 Tính cấp thiết và mục tiêu của đề tài

Hiện nay, trí tuệ nhân tạo (AI) và máy học machine learning vẫn còn là

1 lĩnh vực mới, chưa thực sự có nhiều sản phẩm có thể đưa vào ứng dụng thực

tiễn trong cuộc sống, đặc biệt là ở thị trường Việt Nam

Trên thế giới, cũng đã có nhiều sản phẩm kính thông minh hỗ trợ cho người mù tuy nhiên chúng chỉ hỗ trợ một số tính năng cơ bản như: dự báo khoảng cách trước mặt, đọc văn bản, kết nối internet để đọc tin tức Chưa thực

sự có 1 sản phẩm ứng dụng trí tuệ nhân tạo để nhận dạng đồ vật giúp người khiếm thị biết được thế giới xung quanh của họ và hỗ trợ họ tìm kiếm đồ vật nhanh hơn

Mặt khác, giá cả của các thiết bị tương đối cao:

Bảng 0.1 Một số thiết bị kính thông minh trên thế giới

STT Tên thiết bị Giá (USD) Tính năng

1 IrisVision 2950 Chụp ảnh, trợ lí ảo đọc tin tức online,

nhận dạng đọc văn bản

2 Acesight 4995 Chụp ảnh, giải trí ứng dụng thực tế

tăng cường (AR)

3 NuEyes Pro 5995 Chụp ảnh, điều khiển bằng giọng nói,

nhận dạng đọc văn bản, quét mã vạch

và mã QR

4 MyEye2 3500 Chụp ảnh, kết nối internet đọc tin tức,

nhận dạng đọc văn bản, nhận dạng khuôn mặt, nhận dạng thông tin sản phẩm nhờ đọc mã vạch

5 eSight 5950 Chụp ảnh, nhận dạng đọc văn bản

Từ đó, đề tài “Xây dựng sản phẩm Kính thông minh cho người khiếm thị

Trang 14

- Xây dựng hệ thống IoT Kính thông minh, gồm 1 kính thông minh hỗ trợ

người khiếm thị trong việc nhận dạng, tìm kiếm đồ vật, cảnh báo nguy hiểm và 1 ứng dụng di động hỗ trợ người thân của người khiếm thị theo dõi, quan sát và có thể nhận các tín hiệu khẩn cấp khi người khiếm thị gặp tai nạn

- Sản phẩm kính thông minh sản xuất với giá thành hợp lí, phù hợp với thị

trường Việt Nam

3 Chức năng chính

*Kính thông minh:

- Nhận dạng vật thể xung quanh theo thời gian thực

- Phân loại vật thể nhận dạng và cảnh báo người khiếm thị khi có vật thể

nguy hiểm

- Cảnh báo người khiếm thị khi đến gần chướng ngại vật

- Đọc tên toàn bộ vật thể xung quanh khi người khiếm thị yêu cầu

- Hỗ trợ người khiếm thị tìm kiếm đồ vật bằng giọng nói

- Gửi tín hiệu khẩn cấp (SOS) đến ứng dụng cho người thân

*Ứng dụng cho người thân:

- Quản lí nhóm gia đình

- Liên kết và hủy liên kết kính

- Quan sát vị trí GPS và ảnh chụp từ kính thông minh đã liên kết

- Nhận các thông báo SOS từ kính thông minh

Trang 15

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

Đối tượng nghiên cứu:

- Trí tuệ nhân tạo (máy học)

- Tìm hiểu về các loại thiết bị phần cứng và cách thức lập trình trên chúng

- Phân tích thiết kế và phát triển chức năng phần mềm ở kính thông minh,

ứng dụng di động, máy chủ, truyền nhận dữ liệu đa nền tảng

5 Phương pháp thực hiện

Quá trình nghiên cứu được thực hiện thông qua các phương pháp sau:

- Phương pháp điều tra, khảo sát thực tiễn để tìm hiểu về các sản phẩm

hiện có, các loại thiết bị phần cứng sẽ sử dụng

- Nghiên cứu các công nghệ phù hợp với quy mô đề tài, để áp dụng hiện

thực hóa đề tài

- Phương pháp thu thập, tổng hợp dữ liệu huấn luyện máy học bằng việc

ghi hình thực tế và đánh nhãn thủ công

Trang 16

- Các phương pháp huấn luyện mô hình nhận diện thông qua dữ liệu thu

thập được, các phương pháp cải thiện độ chính xác và tăng tốc huấn luyện như fine-tuning, transfer-learning

- Tổng hợp kiến thức để xây dựng hệ thống Internet of Thing

- Phân tích, thiết kế và lập trình ứng dụng trên kính, ứng dụng mobile và

ứng dụng máy chủ

- Triển khai hệ thống trong thực tế

- Kiểm thử và đưa vào hoạt động

Trang 17

6 Bố cục báo cáo khóa luận tốt nghiệp

MỞ ĐẦU

Nêu lên vấn đề trong cuộc sống là động lực thúc đẩy nên đề tài, qua đó nêu lên mục đích, phương pháp thực hiện và công cụ giải quyết một cách tổng quát

Chương 1: CƠ SỞ LÝ THUYẾT

Chương này giới thiệu các lý thuyết quan trọng là nền tảng kiến thức và cơ sở

để xây dựng đề tài lần này

Chương 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

Chương này xây dựng giải pháp và mô hình cho hệ thống từ tổng quát kiến trúc

hệ thống đến mô tả chi tiết chức năng trên 3 nền tảng: máy chủ, kính thông minh và ứng dụng di động cho người thân thông qua các mô hình kiến trúc hệ thống, mô hình ER, mô hình dữ liệu quan hệ, sơ đồ ca sử dụng, sơ đồ hoạt động,

sơ đồ tuần tự, sơ đồ lớp

Chương 3: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ

Chương này giới thiệu môi trường cài đặt, thu thập dữ liệu, huấn luyện máy học, xây dựng phần mềm và lắp đặt hệ thống theo phân tích và thiết kế ở

Chương 2, đồng thời đánh giá kết quả đạt được

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Kết quả đạt được của đề tài, nêu ra thành công và thất bại của đồ án lần này và đặt ra các kế hoạch trong tương lai

TÀI LIỆU THAM KHẢO

Trang 18

CHƯƠNG 1

CƠ SỞ LÝ THUYẾT 1.1 Trí tuệ nhân tạo và máy học

1.1.1 Trí tuệ nhân tạo (AI)

Trí tuệ nhân tạo hay trí thông minh nhân tạo (Artificial intelligence – viết tắt là AI) là một ngành thuộc lĩnh vực khoa học máy tính (Computer science)

Là trí tuệ do người lập trình tạo nên với mục tiêu giúp máy tính có thể tự động hóa các hành vi thông minh như con người

Trí tuệ nhân tạo khác với việc lập trình logic trong các ngôn ngữ lập trình

là ở việc biết phân tích dữ liệu xung quanh, “suy nghĩ” và đưa ra giải pháp tối

ưu nhất so với việc đi theo một lối logic cố định

Cụ thể, trí tuệ nhân tạo giúp máy tính có được những trí tuệ của con người như: biết suy nghĩ và lập luận để giải quyết vấn đề, biết giao tiếp do hiểu ngôn ngữ, tiếng nói, biết học và tự thích nghi, …

Hình 1.1 AI và các lĩnh vực thuộc AI

1 số lĩnh vực của trí tuệ nhân tạo có thể kể đến như:

- Điện toán nhận thức (Cognitive Computing)

- Thị giác máy tính (Computer Vision)

- Máy học (Machine Learning)

- Mạng nơ-ron nhân tạo (Nerural Networks)

Trang 19

- Học sâu (Deep Learning)

- Xử lí ngôn ngữ tự nhiên (Natural Language Processing)

1.1.2 Máy học (Machine Learning)

Máy học (Machine Learning) là một bộ phận của trí tuệ nhân tạo, là quá trình học hỏi hình thành tư duy từ tập dữ liệu hoặc kinh nghiệm cho trước Khi ứng dụng Machine Learning, ta phải chuẩn bị tập dữ liệu huấn luyện Quá trình huấn luyện sẽ sinh ra 1 model mạng nơ ron - chính là lối tư duy hình thành từ tập huấn luyện Sau đó ứng dụng model sinh ra cho các công việc thực tế

Thông thường khi đã đưa vào ứng dụng, model mạng nơ ron Machine Learning không thể thay đổi sau khi đã huấn luyện

Deep Learning chính là 1 bộ phận nâng cao từ Machine Learning, cho phép máy xử lí và tự huấn luyện trực tiếp trong quá trình ứng dụng model

1.1.3 Mạng nơ-ron nhân tạo (Artificial Neural Networks - ANNs)

Mạng nơ-ron nhân tạo được phát triển lấy cảm hứng từ mạng lưới thần kinh sinh học, tức là bộ não, là bộ phận quan trọng nhất trong lĩnh vực trí tuệ nhân tạo, được ứng dụng để phát triển các bộ phận khác của trí tuệ nhân tạo

Mạng nơ-ron là cơ sở logic, là cơ chế đưa ra quyết định kết quả đầu ra

Có nhiều kiến trúc mạng nơ-ron được nghiên cứu và phát triển để phù hợp với từng lĩnh vực ứng dụng Sử dụng 1 kiến trúc mạng nơ-ron, từ tập dữ liệu huấn luyện, ta có thể sử dụng machine learning để huấn luyện sinh ra 1 model mạng nơ-ron

1.1.3.1 Giới thiệu mạng Perceptron

Nhắc tới mạng nơ-ron nhân tạo ta không thể không nhắc đến một thành

phần cơ bản của nó: một nơ-ron nhân tạo có tên là Perceptron Perceptron

được phát triển vào năm 1950 và 1960 bởi một nhà khoa học Frank Rosenblatt, được tạo cảm hứng bởi các nghiên cứu từ trước của Warren McCulloch và

Trang 20

Một perceptron nhận một số dữ liệu vào dưới dạng nhị phân 𝑥1, 𝑥2,…

và cho ra một dữ liệu ra nhị phân duy nhất:

Hình 1.2 Một nơ-ron đơn giản

Trong ví dụ trên ta có thể thấy perceptron có 3 input là 𝑥1, 𝑥2, 𝑥3 RoseBlatt đã đưa ra một quy luật đơn giản để tính toán được dữ liệu ra Ông ấy gọi 𝑤1, 𝑤2,…

là các trọng số, các số thực biểu diễn độ quan trọng của từng dữ liêu vào đối

với dữ liệu ra Dữ liệu ra của nơ-ron, 0 hoặc 1, được quyết định bởi phép so sánh tổng các phép nhân 𝑤𝑗𝑥𝑗 lớn hơn hay nhỏ hơn một giá trị ngưỡng nào đó

Và như các trọng số, giá trị ngưỡng là một số thực đóng vai trò là tham số của nơ-ron Các nơ-ron hoạt động được biểu diễn dưới hạng hàm số toán học như sau:

1 Thời tiết hôm đó có tốt không?

2 Đường đi đến nơi dã ngoại có khó khăn hay không?

3 Có bạn bè đi cùng hay không?

Trang 21

Ta có thể coi 𝑥1, 𝑥2, 𝑥3 là các biến được gán cho 3 yếu tố và output = 1 là đi và

0 là không đi Sau đó ta đặt các trọng 𝑤1= 0.05, 𝑤2 = 0.4 và 𝑤3 = 0.55 tương ứng với 𝑥1, 𝑥2, 𝑥3 và giá trị ngưỡng là 0.5 thì ta có thể thấy việc thời tiết có tốt hay không chỉ chiếm việc ra quyết định có đi dã ngoại hay không chỉ 5% và nếu như có bạn bè đi cùng thì hay 𝑥3 = 1 thì ta chắc chắn sẽ đi nhậu

Ở công thức nói trên, nếu ta viết lại các trọng số wj và các dữ liệu đầu vào 𝑥𝑗dưới dạng vector 𝑤 và 𝑥và tổng 𝑤𝑗𝑥𝑗 dưới dạng tích vô hướng, giá trị ngưỡng

ta chuyển vế, thay nó bằng độ thiên vị (bias) b với 𝑏 = − 𝑛𝑔ưỡ𝑛𝑔 Ta có thể viết lại công thức biểu diễn nơ-ron ban đầu như sau [4]:

𝑜𝑢𝑡𝑝𝑢𝑡 = {0 𝑛ế𝑢 𝑤 ∙ 𝑥 + 𝑏 ≤ 0

1 𝑛ế𝑢 𝑤 ∙ 𝑥 + 𝑏 > 0

1.1.3.2 Hàm sigmoid cho nơ-ron

Để một mạng perceptron có thể học được, mạng perceptron đó phải có được tính chất mà ta mong muốn sau: nếu có một sự thay đổi nhỏ ở trọng số và bias thì có sẽ có một sự thay đổi nhỏ tương ứng ở đầu ra

Hình 1.3 Minh hoạ tính chất mong muốn của mạng nơ-ron

Trang 22

Ví dụ, khi mô hình mạng của chúng ta phân loại một chữ viết tay là “8” trong khi kết quả là “9” Ta có thể dựa vào tính chất mong muốn nêu trên, thay đổi dần dần trọng số và bias cho đến khi mô hình mạng đưa ra được kết quả tốt hơn, gần “9” hơn là “8”, khi đó mô hình mạng của chúng ta được gọi là đang học Tuy nhiên với mô hình mạng được cấu tạo từ các perceptron thì điều đó không thể xảy ra Đơn giản là vì perceptron là một step function, sự thay đổi nhỏ ở trọng số và bias có thể thay đổi đột ngột đầu ra của nó, như việc bật tắt công tắc đèn

Hình 1.4 Đồ thị hàm bước nhảy

Để vượt qua vấn đề này, người ta đề ra một loại nơ ron nhân tạo mới được gọi

là nơ-ron sigmoid Nơ ron sigmoid tương tự với perceptron cũng có các đầu vào là 𝑥1, 𝑥2,… Tuy nhiên đầu ra của chúng, được quyết định bởi một hàm sigmoid, nằm trong khoảng [0,1] và có công thức [4]:

𝜎(𝑧) ≡ 1

1 + 𝑒−𝑧

Trang 23

Đồ thị của hàm sigmoid cũng thể hiện được tính chất mà chúng ta mong muốn

để có thể khiến cho mô hình mạng học được

Hình 1.5 Đồ thị hàm sigmoid

Như vậy đầu ra của một nơ-ron sigmoid sẽ có dạng [4]:

1

1 + exp (− ∑ 𝑤𝑗 𝑗𝑥𝑗 − 𝑏)Ngoài hàm sigmoid, còn có nhiều hàm khác có dạng đồ thị tương ứng như tanh, ReLU có thể thay thế Một cách tổng quát chúng được gọi là các hàm kích hoạt (activation function) và perceptron được biểu diễn qua hàm kích hoạt như sau:

𝑂 = 𝐹(𝑧) = 𝑓(𝑤 ∙ 𝑥 + 𝑏)

1.1.3.3 Kiến trúc chung của một mạng nơ-ron

Mạng nơ-ron là sự kết hợp giữa các tầng perceptron với nhau hay còn được gọi là perceptron đa tầng (multilayer perceptrons) mặc dù thực chất các nơ-ron là nơ-ron sigmoid

Trang 24

Hình 1.6 Mạng nơ-ron cơ bản

Mạng nơ-ron sẽ có 3 tầng:

- Tầng vào (input layer):nằm ở bên trái nhất của mạng thể hiện cho các

đầu vào của mạng

- Tầng ra (output layer):nằm ở bên phải nhất của mạng thể hiện cho các

đầu ra

- Tầng ẩn (hidden layer):nằm ở giữa tầng ra và tầng vào

Mỗi mạng nơ-ron chỉ có 1 tầng ra và 1 tầng vào, tuy nhiên sẽ có thể có nhiều tầng ẩn Ở mỗi tầng, số lượng các nút mạng (nơ-ron) có thể khác nhau tuỳ thuộc vào bài toán và cách giải quyết Nhưng thường khi làm việc người ta để các tầng ẩn có số lượng nơ-ron bằng nhau Ngoài ra, các nơ-ron ở các tầng thường được liên kết đôi một với nhau tạo thành mạng kết nối đầy đủ (full-connected network) Khi đó ta có thể tính được kích cỡ của mạng dựa vào số tầng và số nơ-ron Ví dụ ở hình trên ta có:

- Ba tầng mạng

- 9 nút mạng

- (3 × 4 + 4 × 2) + (4 + 2) = 26 tham số

Trang 25

1.1.4 Mạng nơ-ron tích chập xử lí hình ảnh

1.1.4.1 Mạng nơ-ron tích chập xử lí hình ảnh

Theo như cách tính số lượng tham số trên của mạng nơ-ron truyền thống,

có thể dễ nhận thấy rằng chúng hoạt động không thực sự hiệu quả với dữ liệu đầu vào là hình ảnh Nếu coi mỗi điểm ảnh là một thuộc tính (feature), một ảnh RBG kích thước (64 × 64) có đến 12288 (= 64 × 64 × 3) thuộc tính Nếu kích thước ảnh tăng lên 300 x 300, chúng ta có khoảng 900 nghìn thuộc tính cho mỗi ánh đầu vào Nếu sử dụng mạng nơ-ron liên kết đầy đủ (fully connected neural network) truyền thống và giả sử lớp thứ 2 có 1000 nơ-ron, ma trận trọng

số sẽ có kích thước 1000 × 900000 tương đương với 90 triệu trọng số cần huấn luyện (learning) Điều này yêu cầu khối lượng tính toán cực lớn (expensive computational cost) và thường dẫn đến overfitting (overfitting là tình trạng mô hình rất khớp với tập huấn luyện nhưng không phù hợp với thực tế) do không đủ dữ liệu huấn luyện

Mạng nơ-ron tích chập (Convolutional neural network) viết tắt là CNN hay ConvNet, là mạng nơ-ron phổ biến nhất được dùng cho dữ liệu ảnh Bên cạnh các lớp liên kết đầy đủ của mạng nơ-ron truyền thống, CNN còn đi cùng với các lớp ẩn đặc biệt giúp phát hiện và trích xuất nhưng đặc trưng – hình mẫu (patterns) xuất hiện trong ảnh gọi là Lớp Tích chập (Convolutional Layers) Chính những lớp tích chập này làm CNN trở nên khác biệt so với mạng nơ-ron truyền thống và hoạt động cực kì hiệu quả trong bài toán phân tích hình ảnh

1.1.4.2 Lớp tích chập

Giống như các lớp ẩn khác, lớp tích chập lấy dữ liệu đầu vào, thực hiện các phép chuyển đổi để tạo ra dữ liệu đầu vào cho lớp kế tiếp (đầu ra của lớp này là đầu vào của lớp sau) Phép biến đổi được sử dụng là phép tính tích chập

Trang 26

feature detector) cho phép phát hiện và trích xuất những đặc trưng khác nhau của ảnh [6]

Độ phức tạp và trừu tượng của đặc trưng được phát hiện bởi bộ lọc tỉ lệ thuận với độ sâu của lớp tích chập mà nó thuộc về Trong mạng CNN, những lớp tích chập đầu tiên sử dụng bộ lọc hình học (geometric filters) để phát hiện những đặc trưng đơn giản như cạnh ngang, dọc, chéo của bức ảnh Những lớp tích chập sau đó được dùng để phát hiện các đối tượng nhỏ, bán hoàn chỉnh như mắt, mũi tóc, v.v Những lớp tích chập sâu nhất dùng để phát hiện đối tượng hoàn chỉnh như: chó, mèo, chim, ô tô, v.v

F3: Phát hiện cạnh ngang dưới

F4: Phát hiện cạnh ngang trên

Trang 27

Hình 1.8 Ví dụ về bộ lọc cạnh (đứng phải, đứng trái, ngang dưới, ngang trên)

với đầu vào là ảnh số viết tay

1.1.5 Các mạng nơ-ron ứng dụng trong việc nhận dạng vật thể (object detection)

Nhận dạng đồ vật là một trong những bài toán thuộc lĩnh vực Machine Learning được nghiên cứu nhiều năm trên thế giới

Yêu cầu của bài toán đặt ra là phân tích hình ảnh để tìm ra tọa độ của vật thể, đồng thời phân loại để tìm ra nhãn tên của vật thể

- Đầu vào: Hình ảnh

- Đầu ra: Tọa độ và nhãn tên của vật thể

Hình 1.9 Bài toán Object detection

Tập dữ liệu huấn luyện là tập hình ảnh, đi kèm tập dữ liệu chứa tên và tọa độ của các vật thể trong ảnh

Trang 28

Các kiến trúc mạng nơ-ron cơ sở phổ biến có thể kể đến để giải quyết bài toán Object detection là: MobileNet, VGG, GoogleNet/Inception

Bảng 1.1 Đánh giá một số mạng nơ-ron Object detection cơ sở [5]

ImageNet

Số phép nhân – cộng (triệu)

Số tham số (triệu)

Bảng 1.2 Đánh giá một số mạng nơ-ron Object detection [5]

Số phép nhân – cộng (tỉ)

Số tham số (triệu)

Trang 29

thường)

1.1.6 Mạng nơ-ron Single Shot MultiBox Detector MobileNet (SSD MobileNet)

SSD MobileNet là một mạng nơ-ron được thiết kế hướng đến thời gian

thực (real-time), được tạo ra nhằm hướng đến sự tối ưu về tốc độ, có thể triển

khai trên các thiết bị phần cứng có cấu hình thấp với độ chính xác chấp nhận

Bộ phát hiện vật thể SSD gồm 2 phần:

- Trích xuất các bản đồ đặc trưng (feature maps)

- Áp dụng các bộ lọc chập (covolution filters) để phát hiện vật thể

Ở đây, SSD sẽ sử dụng mạng cơ sở MobileNet để chiết xuất các bản đồ đặc trưng sau đó sử dụng các bộ lọc chập (covolution filters) để phát hiện và phân loại (classification) tên gọi vật thể

Trang 30

Hình 1.10 Kết quả dự đoán sau 21 lớp

Mỗi dự đoán, SSD MobileNet sẽ đưa ra 21 khung giới hạn và 21 điểm

số tin cậy (confidence scores) cho mỗi khung giới hạn tương ứng với 21 lớp filter

Để đánh giá tổn thất, các dự đoán của SSD được phân loại thành positive (tích cực-đúng) hoặc negative (tiêu cực-sai) SSD chỉ sử dụng các dự đoán positive để tính tổn thất (loss) Nếu như khung giới hạn mặc định tương ứng có phần giao của hợp (IoU – Intersection of Union) lớn hơn 0,5 so với khung giới hạn thật (được định nghĩa bởi tập huấn luyện) thì đó được coi là positive, ngược lại là negative Một khi ta xác định được các cặp positive, ta sử dụng các khung giới hạn được dự đoán tương ứng (với khung giới hạn mặc định) để tính toán tổn thất

Trang 31

Mục tiêu huấn luyện của SSD là tự điều chỉnh các lớp filters để đạt được

độ tổn thấp(loss) nhỏ nhất Với tập dữ liệu ảnh huấn luyện kích thước 300x300 thì SSD MobileNet khuyến nghị độ tổn thất xấp xỉ bằng 1 là chính xác

1.1.7 Học chuyển (transfer learning), hiệu chỉnh mạng nơ-ron

Con người vốn có một khả năng có thể chuyển dịch các tri thức giữa các công việc khác nhau Điều mà chúng ta thu được dưới dạng kiến thức khi đang thực hiện một công việc, có thể được sử dụng thể giải quyết một công việc khác Một số ví dụ cơ bản:

- Biết cách lái xe máy → Học cách lái xe ô tô

- Biết cách chơi đàn guitar → Học cách chơi đàn ukulele

- Biết toán và thống kê → Học máy học

Trong các trường hợp trên, con người không học mọi thứ bắt đầu từ trang giấy trắng Chúng ta chuyển dịch và nâng tầm các tri thức mà chúng ta đã học trong quá khứ

Học máy được thiết kế một cách truyền thống để hoạt động độc lập Các thuật toán này được huấn luyện để giải quyết một số công việc cụ thể Các mô hình phải được xây dựng lại từ đầu một khi các phân phối không gian thay đổi Học chuyển (transfer-learning) là ý tưởng vượt qua các mô hình học độc lập và lợi dụng các kiến thức có được thông qua một công việc này để giải quyết công việc khác liên quan

Học chuyển không phải là một khái niệm mới riêng biệt đối với học sâu

Có một sự khác biệt lớn giữa hướng tiếp cận truyền thống trong việc xây dựng

và huấn luyện một mô hình máy học, và sử dụng các phương pháp dựa trên cơ

sở là học chuyển

Trang 32

Hình 1.11 Khác biệt giữa máy học truyền thống và học chuyển

Máy học truyền thống thường độc lập và hoàn toàn xảy ra dựa trên các công việc, tập dữ liệu riêng biệt Các mô hình được huấn luyện một cách độc lập dựa trên các công việc và tập dữ liệu ấy Các kiến thức không được giữ lại mặc dù có thể chuyển dịch giữa một mô hình này sang mô hình khác Trong học chuyển, chúng ta có thể lợi dụng các tri thức (đặc trưng, trọng số…) từ mô hình đã được huấn luyện từ trước sang việc huấn luyện các mô hình mới hơn

và thâm chí giải quyết thành công các vấn đề như không đủ lượng dữ liệu cho công việc mới

Mạng nơ-ron SSD MobileNet cũng đã ứng dụng học chuyển để phát triển, nó áp dụng các lớp định nghĩa bởi MobileNet để rút trích các bản đồ đặc

trưng để nhận biệt thế nào là thẳng, cong, sự khác biệt về màu sắc, tỉ lệ kích thước…

Giờ đây, ta lại sử dụng học chuyển trên nền mạng nơ-ron SSD MobileNet để định nghĩa ra những đặc trưng nào là của vật thể nào qua quá trình huấn luyện Machine Learning

Trong tương lai, chúng ta có thể tái sử dụng model đã train trước đó để huấn luyện chi tiết hóa hơn các vật thể, tiết kiệm được thời gian và dữ liệu huấn luyện

Trang 33

1.1.8 Python và các thư viện hỗ trợ

1.1.8.1 Python

Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng, do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991 Python được thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình Cấu trúc của Python cho phép người sử dụng viết mã lệnh với số lần

gõ phím tối thiểu [7]

Python hỗ trợ cả lập trình hướng đối tượng và lập trình hướng cấu trúc, ngoài ra nhiều tính năng của nó còn hỗ trợ cả lập trình hướng chức năng và lập trình hướng (aspect-orientated programming) Python sử dụng kiểu gõ động và kết hợp đếm tham chiếu và trình thu gom rác để quản lí bộ nhớ Thiết kế của Python còn cung cấp một số hỗ trợ cho lập trình theo hướng chức năng theo phong cách truyền thống như ngôn ngữ Lisp Như vậy Python vừa thừa hưởng

Model nhận diện

chó

SSD MobileNet

Model nhận diện các loài chó Husky, Bull, Pug, Chihuahua…

Hình 1.12 Ứng dụng học chuyển (Transfer Learning)

Trang 34

các đặc điểm của các ngôn ngữ truyền thống vừa có những đặc điểm của một ngôn ngữ bậc cao hiện đại

Mặc dù tốc độ của một ngôn ngữ thông dịch như Python luôn chậm hơn

C, C++ Tuy nhiên ta có thể sử dụng C để phát triển và tích hợp các hàm vào Python theo nhu cầu, qua đó tăng tốc độ xử lí của chương trình

Python là ngôn ngữ chủ đạo trong việc phát triển các sản phẩm ứng dụng A.I

và Machine Learning

1.1.8.2 Các thư viện hỗ trợ

TensorFlow: là một thư viện phần mềm mã nguồn mở cung cấp khả

năng xử lí tính toán số học dựa trên biểu đồ mô tả sự thay đổi của dữ liệu dành cho máy học trong nhiều loại hình tác vụ nhận thức và hiểu ngôn ngữ Nó hiện đang được sử dụng cho cả nghiên cứu lẫn sản xuất bởi 50 đội ngũ khác nhau trong hàng loạt các sản phẩm thương mại của Google, như nhận dạng giọng nói, Gmail, Google Photos, và tìm kiếm, nhiều trong số đó đã từng sử dụng chương trình tiền nhiệm DistBelief của nó TensorFlow nguyên thủy được phát triển bởi Google Brain cho mục đích nghiên cứu và sản xuất của Google và sau

đó được phát hành theo giấy phép mã nguồn mở Apache 2.0 vào ngày 9/11/2015 Hiện Tensorflow

Tensorflow Object Detection API: là một framework mã nguồn mở xây

dựng dựa trên thư viện Tensorflow, giúp việc xây dựng, huấn luyện và triển khai một mô hình phát hiện vật thể trở nên dễ dàng Được phát hành vào tháng

7 năm 2017, framework này cung cấp các cài đặt của các thuật toán, mô hình

hỗ trợ phát hiện vật thể có thể sử dụng ngay mà không cần trải qua quá trình cài đặt phần cứng phức tạp SSD, Faster R-CNN, Mask R-CNN với các mạng

cơ sở như là MobileNet, Inception, ResNet, … được huấn luyện trên các bộ dữ liệu nổi tiếng như COCO, Kitti, Open Images, iNaturalist và AVA Tổng cộng

Trang 35

có 38 mô hình có thể lựa chọn để tiếp tục sử dụng phương pháp học chuyển, huấn luyện mô hình thực hiện các công việc nhận diện khác

OpenCV: một bộ thư viện mã nguồn mở cho thị giác máy tính và xử lí

hình ảnh Đượ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 Nó có các interface C++, C, Python, Java và

hỗ trợ Windows, Linux, Mac OS, iOS và Android

Google Text-to-Speech, Google Speech Recognition: là thư viện cung

cấp tính năng chuyển văn bản thành giọng nói và thư viện nhận dạng chuyển giọng nói thành văn bản được phát triển và cung cấp bởi Google Với việc ứng dụng machine learning trên bộ dữ liệu khổng lồ hơn 120 ngôn ngữ, Google cung cấp cho người dùng khả năng làm việc với giọng nói con người (human voice) dễ dàng và miễn phí

1.2 Internet vạn vật (IoT)

1.2.1 Khái niệm

Internet of Things, hay IoT, Internet vạn vật là đề cập đến hàng tỉ thiết

bị vật lý trên khắp thế giới hiện được kết nối với internet, thu thập và chia sẻ

dữ liệu Nhờ bộ xử lý giá rẻ và mạng không dây, có thể biến mọi thứ, từ viên thuốc sang máy bay, thành một phần của IoT Điều này bổ sung sự “thông minh

kỹ thuật số” cho các thiết bị, cho phép chúng giao tiếp mà không cần có con người tham gia và hợp nhất thế giới kỹ thuật số và vật lý

1.2.2 Các loại phần cứng đảm nhiệm vai trò điểu khiển

Với các thiết bị hỗ trợ IoT có 2 loại phần cứng đảm nhiệm vài trò là bộ

xử lí phổ biến là Adruino và Raspberry Pi

Trang 36

Bảng 1.3 So sánh Arduino và Raspberry Pi

Giá cả và kích thước của 2 thiết bị là gần giống nhau tuy nhiên về sức mạnh phần cứng Raspberry Pi là nổi bật hơn cả Với tốc độ xử lí nhanh hơn 40 lần, dung lượng ram gấp 128.000 lần Có thể xem Raspberry Pi là một máy tính mini có thể chạy 1 hệ điều hành độc lập, hỗ trợ đa ngôn ngữ lập trình so với Adruino chỉ được lập trình trên IDE của hãng dựa trên C/C++

• Với các dự án thiên về phần cứng và xử lí logic đơn giản, Arduino là sự lựa chọn tốt với hỗ trợ chi tiết và tính tương thích cao, ổn định nhờ Arduino IDE

• Với các dự án phức tạp, thiên về xử lí, Raspberry Pi là lựa chọn thích hợp hơn với khả năng tùy biến cao cùng cấu hình mạnh

Vì yêu cầu thực hiện chức năng machine learning, cùng các tác vụ gửi nhận tín hiệu song song, nên đề tài sẽ sử dụng Raspberry Pi làm board xử lí chính

Trang 37

1.2.3 Chip Raspberry Pi và hệ điều hành Raspbian

Hình 1.13 Thiết bị Raspberry Pi 4 B

- Raspberry Pi: được Eben Upton và các đồng nghiệp của ông tại Phòng

thí nghiệm máy tính của trường đại học Cambridge phát minh, với mục đích ban đầu là 1 máy tính giá rẻ, phù hợp cho sinh viên sử dụng học tập Nhờ lược bỏ đi các thành phần cần thiết của 1 máy tính cơ bản nên thay vào đó, Raspberry Pi có thêm các cổng I/O kết nối tới phần lớn các linh kiện phần cứng Sau này Raspberry Pi được đầu tư phát triển để trở thành một trong nhưng thiết bị xử lí IoT phổ biến [8]

- Raspbian: là hệ điều hành được phát triển riêng cho thiết bị Raspberry

Pi trên nền nhân Linux và Debian Hệ điều hành ngoài xử lí các tác vụ

cơ bản còn cung cấp các phương thức giao tiếp trên các chân I/O của thiết bị Raspberry Pi Các ứng dụng C/C++, Java, Python, NodeJS đều

có thể chạy được trên Raspbian

Trang 38

1.3 Lập trình di động Android

Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng Ban đầu, Android được phát triển bởi Android, Inc với sự hỗ trợ tài chính từ Google và sau này được chính Google mua lại vào năm 2005 Hiện nay Android là nền tảng di động phổ biến nhất với 86% thị phần các thiết

bị di động

Để lập trình Android, Google hỗ trợ IDE Android Studio cùng kho thư viện mã nguồn và asset UI để lập trình viên khai thác và sử dụng các tính năng trên thiết bị di động dễ dàng nhanh chóng Java và Kotlin là 2 ngôn ngữ phổ biến có thể sử dụng trong Android Studio

1.4 Dịch vụ máy chủ

1.4.1 Giới thiệu về Amazon Web Service

Amazon Web Services (AWS) là nền tảng đám mây toàn diện và được

sử dụng rộng rãi nhất, cung cấp trên 175 dịch vụ đầy đủ tính năng từ các trung tâm dữ liệu trên toàn thế giới Hàng triệu khách hàng—bao gồm các công ty khởi nghiệp tăng trưởng nhanh nhất, các tập đoàn lớn nhất cũng như các cơ quan hàng đầu của chính phủ—đều tin tưởng vào AWS để giảm chi phí, trở nên linh hoạt hơn và đổi mới nhanh hơn

Một số dịch vụ của AWS mà đề tài sử dụng:

- Simple Storage Service (S3): dịch vụ lưu trữ và chia sẻ file trực tuyến

- Relational Database Service (RDS): dịch vụ tạo lập hệ quản trị CSDL

trực tuyến

- Simple Notification Service (SNS): dịch vụ quản lí và gửi tin nhắn/ thông

báo

- Lambda: dịch vụ xử lí không máy chủ, cho phép tạo và chạy trực tuyến

các chương trình bằng ngôn ngữ NodeJS hoặc Python mà không cần

Trang 39

đăng kí máy ảo riêng (VPS) hay máy chủ (Server), là nền tảng để xây dựng hệ thống Backend không máy chủ (Serverless)

1.4.2 Giới thiệu về Firebase

Firebase là một nền tảng để phát triển ứng dụng di động và trang web, bao gồm các API đơn giản và mạnh mẽ mà không cần backend hay server do Google cung cấp Các dịch vụ mà Firebase hỗ trợ có thể kể đến: CSDL thời gian thực (Real-time Database), Xác thực người dùng (Authentication) và quản

lí thông báo đẩy (Cloud Messaging)

Đề tài sử dụng Cloud Messaging để gửi các thông báo đẩy đến ứng dụng

di động Android

Trang 40

CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 2.1 Phân tích hệ thống

2.1.1 Mục tiêu và chức năng

2.1.1.1 Mục tiêu

Mục tiêu xây dựng hệ thống Kính thông minh với 3 thành phần:

1) Kính thông minh (Smart Glasses): là sản phẩm hỗ trợ cho người khiếm

thị các chức năng nhận dạng vật thể, cảnh báo nguy hiểm và cung cấp khả năng liên kết tới người thân trong gia đình người khiếm thị, giúp người khiếm thị có thể thông báo các tín hiệu khẩn cấp SOS đến người thân

2) Ứng dụng di động cho người thân (Family App): là ứng dụng hỗ trợ

người thân trong gia đình của người khiếm thị quan sát, quản lí các kính thông minh, nhận dữ liệu về thời gian, địa điểm, hình ảnh và các tín hiệu khẩn cấp từ kính

3) Máy chủ: đảm nhiệm bộ phận giao tiếp trung gian, lưu trữ và truyền nhận

dữ liệu từ kính với ứng dụng di động

2.1.1.2 Chức năng

Các chức năng trên Smart Glasses và Family App:

a Kính thông minh (Smart Glasses):

1) Nhận dạng tên và phân loại vật thể nguy hiểm

2) Cảnh báo tự động về vật nguy hiểm / chướng ngại vật

3) Phát âm thanh tên của tất cả các vật thể

4) Tìm đồ vật bằng giọng nói và trả lời có đồ vật trước mặt hay không

5) Gửi tín hiệu cấp cứu SOS đến ứng dụng mobile

6) Gửi dữ liệu ảnh chụp được đến ứng dụng mobile

7) Lấy dữ liệu GPS từ vệ tinh và gửi đến ứng dụng mobile

8) Nhận yêu cầu, mã xác nhận liên kết với ứng dụng mobile

Ngày đăng: 24/05/2021, 20:45

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