Tải bản đầy đủ (.pdf) (34 trang)

Nhận diện ngôn ngữ bằng ký hiệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.27 MB, 34 trang )

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐÀO TẠO CHÂT LƯƠNG CAO

BÁO CÁO CUỐI KÌ

NHẬN DIỆN NGÔN NGỮ BẰNG KÝ HIỆU


LỜI NÓI ĐẦU

Cùng với sự phát triển mạnh mẽ của khoa học cơng nghệ, việc ứng dụng trí tuệ nhân
tạo đang dần trở thành một xu thế. Việc sử dụng trí tuệ nhân tạo hỗ trợ đời sống con
người đang ngày càng phát triển và xác nhận chỗ đứng riêng cho mình như một ngành
nghề độc lập. Một cơng cụ hổ trợ đắc lực AI không thể không kể đến máy học (Machine
Learning).
Con người đặc biệt bởi khả những khả năng giao tiếp khác nhau. Trong nền kinh tế
thị trường, việc tìm hiểu cũng như xem xét ngơn ngữ khách hàng chính là một cơng cụ hỗ
trợ đắc lực cho các nhà phát triển có thể hoạch định được chiến lược cụ thể. Những cảm
nhận về sản phẩm và dịch vụ sẽ biểu hiện thơng qua lời nói hoặc cử chỉ của khách hàng
và đó ln là sự phản hồi chân thật nhất. Tuy nhiên, ngôn ngữ giao tiếp con người là
mn hình vạn trạng. Đơi lúc, việc đánh giá ngơn ngữ hình thể giao tiếp con người có thể
được hỗ trợ đắc lực với cơng nghệ trí tuệ nhân tạo. Với những ứng dụng rộng rãi như thế,
nhóm chúng tơi đã tìm hiểu về mạng Nơ-ron tính chập (Convolutional Neural Network:
CNN) để nhận diện kí hiệu thơng qua ngơn ngữ con người. Dữ liệu thu được từ webcam,
video hay hình ảnh sẽ được định vị vùng tay bằng phương pháp từ thư viện được xây
dựng sẵn OpenCV. Kết quả được lưu lại để kiểm tra và đánh giá ngôn ngữ hình thể đúng
nhất, đúng với kết quả mong muốn của người dùng.


LỜI CẢM ƠN
Trong thời gian thực hiện báo cáo môn học, nhóm thực hiện đã nhận được nhiều sự


giúp đỡ, đóng góp ý kiến và chỉ bảo nhiệt tình từ thầy và các bạn.
Nhóm thực hiện xin gửi lời cảm ơn chân thành đến TS Trần Vũ Hoàng, người đã tận
tình hướng dẫn, chỉ bảo nhóm trong q trình làm báo cáo mơn học.
Trong q trình nghiên cứu, tìm hiểu và thực hiện đề tài sẽ không tránh khỏi những
sai sót. Nhóm thực hiện mong nhận được sự góp ý từ Thầy để đề tài được hồn thiện hơn
và có thể ứng dụng.
Cuối cùng, nhóm thực hiện xin chân thành cảm ơn thầy và bạn bè, đã luôn quan tâm,
giúp đỡ, động viên trong suốt quá trình học tập và hồn thành báo cáo mơn học.


MỤC LỤC

DANH MỤC HÌNH............................................................................................................... i
DANH MỤC BẢNG............................................................................................................. ii
CÁC TỪ VIẾT TẮT............................................................................................................ iii
CHƯƠNG 1: TỔNG QUAN................................................................................................. 1
1.1.Giới thiệu tình hình nghiên cứu hiện nay............................................................... 1
1.2.Mục tiêu đề tài......................................................................................................... 2
1.3.Đối tượng nghiên cứu..............................................................................................2
1.4.Phương pháp nghiên cứu.........................................................................................2
1.5.Bố cục báo cáo.........................................................................................................2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT..................................................................................... 4
2.1. Tổng quan về phần mềm........................................................................................ 4
2.1.1. Tổng quan về trí tuệ nhân tạo, machine learning....................................... 4
2.1.2 Neural Network - Mạng neural.................................................................... 5
2.2. Mơ hình CNN...................................................................................................... 10
2.2.1. Cấu trúc mạng Convolutional Neural Network........................................11
2.3 Tổng quan về phần cứng....................................................................................... 12
2.3.1. GPU........................................................................................................... 12
CHƯƠNG 3: THIẾT KẾ HỆ THỐNG............................................................................... 15

3.1. Yêu cầu bài toán................................................................................................... 15
3.2. Tổng quan............................................................................................................. 15
3.2.1. Hệ thống phần mềm.................................................................................. 15
3.3. Xây dựng mơ hình CNN...................................................................................... 17
3.3.1. Mơ hình ConvNet V2................................................................................17
3.3.2. So sánh và lựa chọn các thông số..................................................................... 19
CHƯƠNG 4: KẾT QUẢ..................................................................................................... 21
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN................................................... 24
5.1. Kết luận.................................................................................................................24
5.1.1. Ưu điểm..................................................................................................... 24
5.1.2. Nhược điểm....................................................................................................... 24
5.2. Hướng phát triển đề tài.........................................................................................24


TÀI LIỆU THAM KHẢO................................................................................................... 29


DANH MỤC HÌNH
Hình 2. 1: Phạm vi ứng cụng của AI.............................................................................4
Hình 2. 2: Quá trình phát triển của AI. ........................................................................ 5
Hình 2. 3: Neural sinh học ........................................................................................... 6
Hình 2. 4: Perceptron [4]...............................................................................................6
Hình 2. 6: Mơ hình tổng qt của mạng neural ........................................................... 8
Hình 2. 7: Mạng neural truyền thẳng nhiều lớp ...........................................................9
Hình 2. 8: Mạng neural hồi quy.................................................................................. 10
Hình 2. 9: Mơ hình học có giám sát............................................................................ 10
Hình 2. 10: Minh họa tích chập ..................................................................................11
Hình 2. 11: Hiệu suất của GPU và CPU..................................................................... 13
Hình 2. 12: Cấu trúc cơ bản của CPU và GPU...........................................................14
Hình 3. 1: Lưu đồ phần mềm...................................................................................... 16

Hình 3. 2: Cấu trúc mạng CNN...................................................................................17
Hình 3. 3: Kết quả độ chính xác của 3 bộ optimizer cơ bản...................................... 19
Hình 3. 4: Độ chính xác của model thay đổi theo Learning rate...............................20
Hình 4. 1: Kết quả sau khi train và validation............................................................ 21
Hình 4. 2: Tập dữ liệu..................................................................................................21
Hình 4. 3: Kết quả khơng có ký hiệu.......................................................................... 22
Hình 4. 4: Kết quả số 1................................................................................................22
Hình 4. 5 Kết quả số 4................................................................................................. 23

i


DANH MỤC BẢNG
Bảng 2. 1: Các hàm truyền và đồ thị tương ứng .......................................................... 7
Bảng 3. 1: Kích thước ngõ ra và tham số của các lớp trong mạng CNN................... 17

ii


CÁC TỪ VIẾT TẮT
Từ viết tắt

Cụm từ đầy đủ

CNN

Convolutional Neural Network

AI


Artificial Intelligence

DL

Deep Learning

NN

Neural Network

GPU

Graphics Processing Unit

VPU

Visual Processing Unit

iii


CHƯƠNG 1: TỔNG QUAN
1.1.Giới thiệu tình hình nghiên cứu hiện nay
Ngôn ngữ ký hiệu hay ngôn ngữ dấu hiệu, thủ ngữ là ngôn ngữ chủ yếu được
cộng đồng người câm điếc sử dụng nhằm chuyển tải thông tin qua cử chỉ, điệu bộ của
cơ thể và nét mặt thay cho lời nói.
Cũng như ngơn ngữ nói, ngơn ngữ ký hiệu của từng quốc gia, thậm chí là từng
khu vực trong một quốc gia rất khác nhau. Điều đó là do mỗi quốc gia, khu vực có
lịch sử, văn hóa, tập quán khác nhau nên ký hiệu để biểu thị sự vật hiện tượng cũng
khác nhau. Chẳng hạn, cùng chỉ tính từ màu hồng thì ở Hà Nội người ta xoa vào má

(má hồng), cịn tại Thành phố Hồ Chí Minh lại chỉ vào môi (môi hồng). Điều tương tự
cũng diễn ra khi có sự khác biệt lớn hơn trên tầm quốc gia, dẫn tới sự khác biệt của hệ
thống từ vựng và ngữ pháp ngôn ngữ ký hiệu giữa các nước. [1]
Tuy nhiên, ký hiệu tất cả mọi nơi trên thế giới đều có những điểm tương đồng
nhất định. Ví dụ: ký hiệu đồng ý bằng những hình ảnh “1 ngón tay cái” hoặc những
cuộc gặp gỡ bắt ngờ thường sử dụng các giao tiếp với nhau thông qua hành động chào
bằng hình ảnh “2 ngón tay, cái và trỏ” để thể hiện thay cho lời nói. Do ngơn ngữ ký
hiệu phát triển hơn trong cộng đồng người khiếm thính, nên những người thuộc cộng
đồng này của hai nước khác nhau có thể giao tiếp với nhau tốt hơn hai người bình
thường nhưng mà khơng biết ngoại ngữ. [1]
Từ những năm 2000, Việt Nam bắt đầu triển khai những nỗ lực của mình nhằm
hồn thiện và hệ thống hóa Ngơn ngữ Ký hiệu Việt Nam. Các câu lạc bộ, nhóm dạy,
sinh hoạt ngơn ngữ kí hiệu bắt đầu hình thành và nở rộ. Một số tài liệu khá công phu
xuất hiện như: bộ 3 tập Ký hiệu cho người điếc Việt Nam, từ điểm ngôn ngữ ký hiệu
Việt Nam,....
Ưu điểm
Giúp cải thiện ngôn ngữ thông qua những cử chỉ giữa các môi trường giao tiếp
Tạo môi trường giao tiếp, học tập cho những người khiếm thính
Nhược điểm
Cịn hạn chế về kí hiệu giao tiếp
Mơi trường tiếp xúc chưa được rộng rãi
Tính độc lập thấp, phụ thuộc vào vị trí và môi trường

1


1.2.Mục tiêu đề tài
Nghiên cứu và phát triển mơ hình nhận có khả năng nhận diện 10 loại kí hiệu
bằng tay bằng cách biểu diễn từ 1 ngón tay đến 10 ngón tay của con người.
Model được xây dựng đạt được độ chính xác cao (trên 65% cho cả quá trình phát

hiện và nhận dạng ký hiệu ).
Tối ưu dữ liệu để cải thiện tốc độ và bộ nhớ hoàn thiện nhất
Xây dựng giao diện trực quan và thân thiện với người dùng
1.3.Đối tượng nghiên cứu
Ngơn ngữ ký hiệu chính là cuộc sống, vì nó bắt nguồn từ cuộc sống. Dù có hay
khơng nhận thức ra, nhưng chúng ta vẫn đã và đang sử dụng ngơn ngữ kí hiệu rất
nhiều trong cuộc sống hàng ngày. Khoa học đã chứng minh chúng ta truyền tải ngôn
ngữ 70% thông qua các biện pháp không lời, tức là cử chỉ, điệu bộ, nét mặt…
Như thế, ngơn ngữ kí hiệu tràn ngập trong cuộc sống của chúng ta, chúng ta có thể
khơng nhận thức, nhưng nó vẫn tồn tại, phát triển và giúp cho cuộc sống tiện lợi, thoải
mái hơn. Nói cách khác, chính những người bình thường “phát minh” ra ngơn ngữ kí
hiệu, người câm điếc làm một việc là mô phỏng và hệ thống hóa tất cả lại thành một
thứ ngơn ngữ của riêng họ.
1.4.Phương pháp nghiên cứu
Nghiên cứu cơ sở lý thuyết về thuật toán nhận diện ký hiệu sử dụng CNN. Mục
đích của đề tài là lựa chọn thuật tốn, phương pháp có độ chính xác tương đối để nhận
diện ký hiệu và tăng độ chính xác cho mơ hình.
Tìm hiểu các lý thuyết có liên quan như ngơn ngữ Python, thư viện OpenCV…
Nghiêm cứu về tập dữ liệu, các thuật toán sử dụng để xử lý dữ liệu, loại bỏ những
dữ liệu dư thừa (hình ảnh nhiễu đèn…) Thực hiện các phương pháp đánh giá để lựa
chọn các thông số dataset_path, test_size, train_size, validation_split, batch_size,
epochs, để tăng độ chính xác cho mơ hình.
1.5.Bố cục báo cáo
Nơi dung của báo cáo gồm có 5 phần chính:
Chương 1: Tổng quan

2


Nêu tầm tính cấp thiết của đề tài, xu hướng và tình hình khoa học và cơng nghệ

hiện nay. Sự phát triển của máy học công nghiệp và đời sống hằng ngày và từ đó đưa
ra lý do chọn đề tài và xác định mục tiêu cho đề tài.
Chương 2: Cở sở lý thuyết
Trình bày tổng quan về Deep learning, thuật toán CNN trong nhận dạng ký hiệu.
Nghiên cứu tổng quan về những phương pháp, lựa chọn thuật toán
Chương 3: Thiết kế hệ thống
Từ yêu cầu đề tài, nhóm tác giả trình bày về sơ đồ hệ thống CNN. Nêu ra các
phương pháp xử lý dữ liệu rồi từ đó huấn luyện mơ hình CNN. Thiết kế giao diện từ
thư viện python.
Chương 4: Kết quả
Trình bày về kết quả nhận diện ký hiệu trên giao diện đã xây dựng từ hình ảnh
hoặc, từ camera thơng qua camera. Đưa ra các trường hợp nhận diện đúng, nhận diện
sai rồi từ đó so sánh đưa ra kết quả, đánh giá ưu nhược điểm của hệ thống.
Chương 5 : Kết luận và hướng phát triển
Dựa vào kết quả có được từ chương 4, nhóm tác giả đưa ra kết luận tổng quan về
những gì đạt được và chưa đạt được của đề tài. Từ đó đưa ra hướng phát triển để cải
thiện hệ thống.

3


CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. Tổng quan về phần mềm
2.1.1. Tổng quan về trí tuệ nhân tạo, machine learning
AI là viết tắt của Artificial Intelligence, dịch ra thành Trí tuệ nhân tạo. Trong lịch
sử phát triển AI, các nhà nghiên cứu phân thành 4 hướng tiếp cận chính:
Hành động như người (acting humanly)
Suy nghĩ như người (thinking humanly)
Hành động hợp lý (acting rationally)
Suy nghĩ hợp lý (thinking rationally)


Hình 2. 1: Phạm vi ứng cụng của AI
Đến nay thì hướng tiếp cận AI đã đạt được một số thành quả nhất định như: [2]
Natural language processing: máy có khả năng đọc hiểu và giao tiếp bằng ngôn
ngữ tự nhiên với người.
Knowledge representation: máy có khả năng lưu trữ tri thức thơng qua thị giác,
thính giác, hay văn bản.
Automated reasoning: máy có khả năng sử dụng tri thức đã lưu trữ để trả lời câu
hỏi hay đưa ra kết luận hữu ích.
Machine learning: máy có khả năng thích nghi với các điều kiện mơi trường xung
quanh để rút trích ra các nguyên lý từ tri thức thu nhận được phục vụ cho việc ra quyết
định.
Computer vision: máy có khả năng quan sát và xác định được các đối tượng xung
quanh.

4


Robotics: máy có khả năng tương tác với đối tượng và di chuyển trong môi trường
xung quanh.
Thinking humanly là mục tiêu hướng tới của trí tuệ nhân tạo, tuy nhiên với hướng
tiếp cận đó lại rất khó đạt được nên mục tiêu tiếp cận trong thời gian ngắn hạn có thể
giới hạn lại theo hướng Thinking rationally. Hướng tiếp cận này gặp vài trắc trở. Thứ
nhất, máy khó diễn đạt được tri thức từ thế giới khơng chính tắc (informal) sang ngơn
ngữ chính tắc (formal) đặc biệt khi tri thức đó khơng chắc chắn 100% là đúng. Thứ
hai, có sự khác biệt lớn giữa giải quyết bài toán trên lý thuyết và bài tốn ngồi thực tế.
Do trong thực tế cần rất nhiều dữ kiện để giải quyết vấn đề nên nhiêu đây cũng đủ
khiến cho các hệ thống tính tốn bị q tải.

Hình 2. 2: Q trình phát triển của AI. [2]

2.1.2 Neural Network - Mạng neural
Mạng neural nhân tạo (Neural Network) là một mơ hình lập trình lấy cảm hứng từ
mạng neural thần kinh. Kết hợp với các kĩ thuật học sâu (Deep Learning - DL), NN
đang trở thành một công cụ rất mạnh mẽ mang lại hiệu quả tốt nhất cho nhiều bài tốn
khó như nhận dạng ảnh, giọng nói hay xử lý ngơn ngữ tự nhiên.
Perceptrons
Một mạng neural được cấu thành bởi các neural đơn lẻ được gọi là các perceptron
[4]

5


Hình 2. 3: Neural sinh học [4]
Ở hình 2.5, một neural có thể nhận nhiều đầu vào và cho ra một kết quả duy nhất.
Mơ hình của perceptron cũng tương tự với mơ hình neural sinh học: [4]

Hình 2. 4:Perceptron [4]
Cấu tạo mạng neural nhân tạo. [5]

Hình 2. 5 Cấu tạo mạng Neural nhân tạo [5]
- Inputs (dữ liệu vào): Mỗi Input tương ứng với 1 thuộc tính (attribute) của dữ
liệu (patterns).
- Output (kết quả): Kết quả của một mạng neural network là một giải pháp cho
một vấn đề.
- Connection Weights (Trọng số liên kết) : Đây là thành phần rất quan trọng của
một mạng neural network, nó thể hiện mức độ quan trọng (độ mạnh) của dữ liệu đầu
vào đối với q trình xử lý thơng tin (q trình chuyển đổi dữ liệu từ Layer này sang
6



layer khác). Quá trình học (Learning Processing) của mạng neural thực ra là quá trình
điều chỉnh các trọng số (Weight) của các input data để có được kết quả mong muốn.
- Summation Function (Hàm tổng): Tính tổng trọng số của tất cả các input được
đưa vào mỗi neural (phần tử xử lý PE). Hàm tổng của một neural đối với n input được
tính theo cơng thức sau: [5]
�=


�=1

�� ��

- Transfer Function (Hàm truyền): Dùng để giới hạn phạm vi đầu ra của mỗi
neural. Đầu vào là kết quả của hàm tổng và ngưỡng.
Như vậy mạng neural nhân tạo nhận các tín hiệu đầu vào, xử lý (nhân các tín hiệu
này với trọng số liên kết, tính tổng các tích thu được rồi gửi kết quả tới hàm truyền),
và cho một tín hiệu đầu ra ( là kết quả của hàm truyền).
Bảng 2. 1: Các hàm truyền và đồ thị tương ứng [6]
Hàm truyền

Symmetrical

Đồ thị

Hard

Limit
(hardlims)

Linear

(purelin)

7


Saturating Linear
(satlin)

Log-Sigmoid
(logsig)

Mơ hình tổng qt. [7]

Hình 2. 6Mơ hình tổng quát của mạng neural [7]
Layer đầu tiên là input layer, các layer ở giữa được gọi là hidden layer, layer cuối
cùng được gọi là output layer. Các hình trịn được gọi là node. [7]
Mỗi mơ hình ln có 1 input layer, 1 output layer, có thể có hoặc khơng các
hidden layer. Tổng số layer trong mơ hình được quy ước là số layer – 1 (Khơng tính
input layer).[7]
Mỗi node trong hidden layer và output layer : [7]
Liên kết với tất cả các node ở layer trước đó với các hệ số w riêng.
Mỗi node có 1 hệ số bias b riêng.
Diễn ra 2 bước: tính tổng linear và áp dụng activation function.

8


d) Một số kiểu mạng Neural.
Cách thức kết nối các neural trong mạng xác định kiến trúc (topology) của mạng.
Các neural trong mạng có thể kết nối đầy đủ (fully connected) tức là mỗi neural đều

được kết nối với tất cả các neural khác, hoặc kết nối cục bộ (partially connected)
chẳng hạn chỉ kết nối giữa các neural trong các tầng khác nhau. [6]
Với việc giả lập các hệ thống sinh học, các cấu trúc tính tốn, mạng neural có thể
giải quyết được các lớp bài toán nhất định như: Bài tốn xếp loại, bài tốn lập lịch, bài
tốn tìm kiếm, bài toán nhận dạng mẫu... Các bài toán phức tạp cao, không xác định.
Tuy nhiên, sự liên kết giữa một bài toán bất kỳ trong thực tế với một giải pháp mạng
neural lại là một việc không dễ dàng. Cấu trúc của mạng neural được xác định bởi : số
lớp, số neural trên mỗi lớp, và sự liên kết giữa các neural. Dựa trên cách thức liên kết
các neural người ta chia làm hai loại : [6]
- Mạng neural truyền thẳng : dòng dữ liệu từ neural đầu vào đến neural đầu ra
chỉ được truyền thẳng. Khơng có các liên kết từ neural đầu ra đến các neural đầu vào
trong cùng một lớp hay của các lớp trước đó.

Hình 2. 7: Mạng neural truyền thẳng nhiều lớp [8]
- Mạng neural hồi quy : có chứa các liên kết ngược, nghĩa là các neural lớp ra tới
neural lớp vào trong cùng một lớp hoặc các lớp trước đó.

9


Hình 2. 8: Mạng neural hồi quy
Quy luật.
Thành phần quan trọng nhất và khơng thể thiếu của mạng neural đó là quy luật,
được dùng để điều chỉnh các trọng số để mạng nhận biết được quan hệ giữa đầu vào
và đích mong muốn. Có nhiều thuật tốn học đã được phát minh để tìm ra tập trọng số
tối ưu để làm giải pháp cho các bài toán. Các thuật toán đó có thể chia làm hai nhóm
chính: học có giám sát và học khơng giám sát.
Học có giám sát: Mạng được huấn luyện dựa trên tập ví dụ huấn luyện(các cặp
mẫu đầu vào x và đầu ra mong muốn t). Sự khác biệt giữa các đầu ra thực tế với đầu
ra mong muốn được thuật toán sử dụng để điều chỉnh các trọng số. Điều này thường

được đưa ra như một bài toán xấp xỉ hàm số - cho dữ liệu huấn luyện, mục đích là tìm
ra hàm f(x) thoả mãn tất cả các mẫu học đầu vào.

Hình 2. 9: Mơ hình học có giám sát
Học khơng giám sát: Với phương pháp học khơng có giám sát khơng có phản hồi
từ môi trường để chỉ ra rằng đầu ra của mạng là đúng hay sai. Mạng sẽ phải khám phá
các đặc trưng, các điều chỉnh, các mối tương quan, hay các lớp trong dữ liệu vào một
cách tự động. Trong thực tế, phần lớn các biến thể của học không có giám sát, các
đích trùng với đầu vào. Nói cách khác, học không giám sát luôn thực hiện một công
việc tương tự như một mạng tự liên hợp, cô đọng thơng tin từ dữ liệu vào.
2.2. Mơ hình CNN
Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) là một trong
những mơ hình Deep Learning tiên tiến giúp cho chúng ta xây dựng được những hệ
thống thơng minh với độ chính xác cao như hiện nay như hệ thống xử lý ảnh lớn như
10


Facebook, Google hay Amazon đã đưa vào sản phẩm của mình những chức năng
thơng minh như nhận diện, phát triển xe hơi tự lái hay drone giao hàng tự động. CNN
được sử dụng nhiều trong các bài toán nhận dạng các object trong ảnh. [3]

Hình 2. 10: Minh họa tích chập [9]
Convolutional: Là một cửa sổ trượt (Sliding Windows) trên một ma trận lấy ra
những thơng tin chính xác nhất mà khơng cần chọn các feature.Convolution hay tích
chập là nhân từng phần tử trong ma trận 3. Sliding Window hay còn gọi là kernel,
filter hoặc feature detect là một ma trận có kích thước nhỏ như trong ví dụ trên là 3×3.
2.2.1. Cấu trúc mạng Convolutional Neural Network
Mạng CNN là một tập hợp các lớp Convolution chồng lên nhau và sử dụng các
hàm nonlinear activation như ReLU và tanh để kích hoạt các trọng số trong các node.
Mỗi một lớp sau khi thơng qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng

hơn cho các lớp tiếp theo. Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra
các thơng tin trừu tượng hơn cho các lớp tiếp theo. Trong mơ hình mạng truyền ngược
(feedforward neural network) thì mỗi neural đầu vào (input node) cho mỗi neural đầu
ra trong các lớp tiếp theo.
Mơ hình này gọi là mạng kết nối đầy đủ (fully connected layer) hay mạng tồn
vẹn (affine layer). Cịn trong mơ hình CNNs thì ngược lại. Các layer liên kết được với
nhau thông qua cơ chế convolution [3]
Mỗi một lớp được sử dụng các filter khác nhau thơng thường có hàng trăm hàng
nghìn filter như vậy và kết hợp kết quả của chúng lại. Ngồi ra có một số layer khác
như pooling/subsampling layer dùng để chắt lọc lại các thông tin hữu ích hơn (loại bỏ
11


các thơng tin nhiễu). Trong q trình huấn luyện mạng (traning) CNN tự động học các
giá trị qua các lớp filter dựa vào cách thức thực hiện.
Trong mơ hình CNN có 2 khía cạnh cần quan tâm là tính bất biến (Location
Invariance) và tính kết hợp (Compositionality). Với cùng một đối tượng, nếu đối
tượng này được chiếu theo các gốc độ khác nhau (translation, rotation, scaling) thì độ
chính xác của thuật toán sẽ bị ảnh hưởng đáng kể. Pooling layer sẽ cho bạn tính bất
biến đối với phép dịch chuyển (translation), phép quay (rotation) và phép co giãn
(scaling). Tính kết hợp cục bộ cho ta các cấp độ biểu diễn thông tin từ mức độ thấp
đến mức độ cao và trừu tượng hơn thơng qua convolution từ các filter. Đó là lý do tại
sao CNNs cho ra mơ hình với độ chính xác rất cao
2.3 Tổng quan về phần cứng
2.3.1. GPU
Bộ xử lý đồ họa (GPU, graphics processing unit), đôi khi được gọi là bộ xử lý
hình ảnh (VPU, visual processing unit), là một mạch điện tử tích hợp chuyên dụng
được thiết kế để thao tác và truy cập bộ nhớ đồ họa một cách nhanh chóng, để tăng tốc
việc tạo ra các hình ảnh trong bộ đệm khung hình dành cho ngõ ra tới màn hình hiển
thị. Ngồi ra GPU cịn có thể dùng để xử lý các dữ liệu khác ngồi hình ảnh mà CPU

u cầu xử lý. [10]
GPU được sử dụng trong các hệ thống nhúng, điện thoại di động, máy tính cá
nhân, máy trạm, máy chơi game console và hệ thống cần xử lý các tệp lệnh lớn. GPU
hiện đại rất hiệu quả trong việc thao tác đồ họa máy tính và xử lý hình ảnh, và các cấu
trúc song song mức cao của nó làm cho nó hiệu quả hơn so với các CPU đa dụng, mà
việc xử lý khối lượng lớn các dữ liệu được thực hiện song song. Trong một máy tính
cá nhân một GPU có thể có mặt trên một card video, được nhúng trên bo mạch chủ,
hoặc tích hợp trong một số CPU. [10]
Vai trị của GPU trong máy tính:
Trước khi có sự xuất hiện của GPU, thì CPU vừa phải xử lý các chương trình vi
tính, dữ kiện vừa kiêm ln cơng việc xử lý đồ họa, hình ảnh. Lượng công việc quá
nhiều nên CPU hoạt động theo xu hướng ban phát đồng đều mức tài nguyên. Công

12


việc đồ họa và cơng việc văn phịng đều nhận được lượng tài ngun như nhau. Chính
vì vậy, các sản phẩm đồ họa khi ra đời đều đạt chất lượng khơng cao.
Nhưng từ khi GPU ra đời thì mọi thứ đã hoàn toàn thay đổi, GPU giúp giảm bớt
khối lượng cơng việc cho CPU, CPU chỉ cịn nhiệm vụ kéo hệ thống chạy theo hoạt
động của GPU và dành các xung của mình cho các nhiệm vụ khác của hệ thống, tiết
kiệm thời gian đáng kể, giải quyết những áp lực trong việc cung cấp một sản phẩm
chất lượng cao cho thị trường,… Không chỉ dừng lại ở việc xuất tín hiệu ra màn hình
hay hỗ trợ chơi game 3D mà việc tận dụng nhân đồ hoạ GPU tham gia hỗ trợ xử lý
cùng nhân CPU. [10]
GPU còn xử lý thông tin đa luồng, song song và bộ nhớ ở tốc độ cao. Kỹ thuật
GPU đang dần trở nên dễ lập trình, cung cấp nhiều tiềm năng cho việc tăng tốc xử lí
cho nhiều chương trình với nhiều mục đích khác nhau, hơn cả chíp xử lí thơng thường
(CPUs).


Hình 2. 11: Hiệu suất của GPU và CPU
Sự khác biệt giữa khả năng xử lí dữ liệu (floating-point) của 2 loại chíp này là:
GPU được thiết kế riêng chỉ để tính tốn, mà cịn là tính tốn, xử lí thơng tin luồng
song song - đúng như những gì kỹ thuật làm sắc nét hình ảnh cần. Đến 80% transistors
của chíp được nó sử dụng để chun tính tốn dữ liệu chứ không phải để nhận dữ liệu
và điều khiển luồng thông tin. Vì các chức năng này đã được thực hiện trên mỗi thuộc
tính của dữ liệu với thuật tốn cao cấp dữ dội rồi.

13


Hình 2. 12: Cấu trúc cơ bản của CPU và GPU

14


CHƯƠNG 3 THIẾT KẾ HỆ THỐNG
3.1. Yêu cầu bài toán.
Bài toán nhận diện ký hiệu là một bài toán được đặt ra cho các máy tính sao cho
các máy tính có khả năng tự động nhận dạng và phân loại ký hiệu ngôn ngữ của một
người với đầu vào là một ảnh bất kỳ ( dạng ảnh kỹ thuật số) hoặc video (webcam theo
thời gian thực). Bài toán này đặt ra yêu cầu cần phải nhận biết các đặc trưng ký hiệu,
bỏ qua môi trường xung quanh như đèn, quần áo,..., và sau đó là phân tích ký hiệu đối
tượng. Một trong những cách để thực hiện điều này là so sánh các đặc tính của ký hiệu
với những hình ảnh trong cơ sở dữ liệu đã tạo hoặc có sẵn (trong cơ sở dữ liệu đó có
chứa các hình ảnh phân loại theo từng nhãn ký hiệu riêng biệt) và trả về kết quả.
Để thực hiện hệ thống, nhóm tác giả đã sử dụng nhận dạng ký hiệu tay bằng trích
xuất đặc trưng, sau đó là phân tích ký hiệu đối tượng dựa trên kiến trúc mơ hình CNN.
Mơ hình sau khi huấn luyện tiến hành lựa chọn mơ hình tối ưu nhất cho hệ thống, mơ
hình này phải đạt độ chính xác hơn 70%. Cuối cùng là nhận dạng ký hiệu tay dùng

thơng qua hình ảnh và video trực tiếp từ webcam. Hiển thị kết quả có được lên giao
diện thiết kế. Kết quả hiển thị trên giao diện cần đạt độ trễ phù hợp với phần cứng.
Khung hình trên giây cần đạt ít nhất 20fps để đạt hiệu quả ổn định nhất.
3.2. Tổng quan
3.2.1. Hệ thống phần mềm
Hệ thống chia làm 2 quá trình:
Phần thu thập dữ liệu hình ảnh và: tập dữ liệu thu thập được là các hình ảnh chứa
khn mặt có các biểu hiện khác nhau, sau đó tiền xử lý các hình ảnh. Hệ thống sử
dụng cơ sở dữ liệu gồm 2400 ảnh do nhóm tự thu thập. Hình ảnh được chuyển sang
ảnh xám với kích thước 200x200 pixel được lọc trước vùng chứa tay và phân loại
thành 6 lớp ký hiệu từ số 1 đến số 5 và một tập không phải ký hiệu
Phần tiền xử lý: Thay đổi kích thước ảnh sang 180x180 pixel chia tập dữ liệu gồm
20% test và 20% validation và 60% cịn lại để train.
Phần trích xuất đặc trưng là dựa vào tập dữ liệu, cho hình ảnh qua các lớp của mơ
hình Conv V2.

15


Tiến hành đánh giá mơ hình đã được lưu lại sau mỗi epoch, tiến hành phân tích ký
hiệu: kiểm tra kết quả trên hình ảnh hoặc video theo thời gian thực trên giao diện.
Lưu đồ phần mềm:

Hình 3. 1: Lưu đồ phần mềm

16


3.3. Xây dựng mơ hình CNN
3.3.1. Mơ hình ConvNet V2.


Hình 3. 2: Cấu trúc mạng CNN
Bảng 3. 1: Kích thước ngõ ra và tham số của các lớp trong mạng CNN
Layer (type)

Output Shape

Param #

conv2d_1 (Conv2D)

46x46x32

320

conv2d_2 (Conv2D)

46x46x32

9248

batch_normalization

46x46x32

128

MaxPooling1

23x23x32


0

dropout

23x23x32

0

conv2d_3 (Conv2D)

23x23x64

18496

conv2d_4 (Conv2D)

23x23x64

36928

batch_normalization

23x23x64

256

MaxPooling2

12x12x64


0

dropout

12x12x64

0

conv2d_5 (Conv2D)

12x12x128

73856

conv2d_6 (Conv2D)

12x12x128

147584

batch_normalization

12x12x128

512

MaxPooling2

6x6x128


0

dropout

6x6x128

0

flatten_1 (Flatten)

4608

0

17


×