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

NHẬN DẠNG KÝ HIỆU TAY CỦA NGƯỜI KHIẾM THÍNH SỬ DỤNG MẠNG NƠ RON TÍCH CHẬP

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 (3.13 MB, 36 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

------------

-

ĐỒ ÁN CHUYÊN NGÀNH
NGÀNH: KHOA HỌC MÁY TÍNH
CHỦ ĐỀ: NHẬN DẠNG KÝ HIỆU TAY CỦA NGƯỜI
KHIẾM THÍNH SỬ DỤNG MẠNG NƠ RON TÍCH CHẬP
.

Giáo viên hướng dẫn: TS. Nguyễn Mạnh Cường
Nhóm sinh viên thực hiện:
1, Trịnh Thế Khánh

Mã SV: 2021602271

2, Lê Tuấn Anh

Mã SV: 2021601643

3, Mai Thị Hường

Mã SV: 2020606386

Mã Lớp: 20231IT6052002

Nhóm: 1


Hà Nội - Năm 2023


MỤC LỤC
MỤC LỤC...................................................................................................................................... 1
DANH MỤC CÁC TỪ VIẾT TẮT: ............................................................................................ 2
DANH MỤC HÌNH ẢNH, BIỂU ĐỒ:......................................................................................... 2
LỜI CẢM ƠN ................................................................................................................................ 3
LỜI NĨI ĐẦU ............................................................................................................................... 4
CHƯƠNG 1: TÌM HIỂU VÀ PHÁT BIỂU BÀI TOÁN ......................................................... 7
1.1.

Giới thiệu chung ............................................................................................................. 7

1.1.1. Tổng quan về nhận dạng ............................................................................................ 7
1.1.2. Tổng quan về ngôn ngữ ký hiệu................................................................................. 7
1.2.

Mục tiêu bài toán ............................................................................................................ 9

1.3.

Phương pháp tiếp cận .................................................................................................... 9

1.4.

Cơ hội và thách thức .................................................................................................... 10

1.4.1. Cơ hội ......................................................................................................................... 10
1.4.2. Thách thức ................................................................................................................. 11

CHƯƠNG 2: CÁC KỸ THUẬT GIẢI QUYẾT BÀI TOÁN ................................................ 12
2.1.

Hướng tiếp cận ............................................................................................................. 12

2.2.

Mạng nơ ron tích chập ................................................................................................. 14

2.1.1. Tổng quan .................................................................................................................. 14
2.1.2. Tích chập.................................................................................................................... 15
2.1.3. Mơ hình mạng nơ ron tích chập .............................................................................. 20
2.1.4. Hoạt động mơ hình CNN .......................................................................................... 24
CHƯƠNG 3: THỰC NGHIỆM ............................................................................................... 25
3.1.

Bộ dữ liệu nhận dạng ngơn ngữ ký hiệu..................................................................... 25

3.2.

Tư tưởng thuật tốn nhận diện thủ ngữ..................................................................... 25

3.3.

Tiền xử lý dữ liệu .......................................................................................................... 26

3.4.

Xây dựng thực nghiệm ứng dụng nhận dạng ngôn ngữ ký hiệu.............................. 28


3.5.

Kết quả thực nghiệm .................................................................................................... 32

KẾT LUẬN .................................................................................................................................. 34
TÀI LIỆU THAM KHẢO .......................................................................................................... 35


DANH MỤC CÁC TỪ VIẾT TẮT:
CNN

Convolutional Neural Networks

RNN

Recurrent Neural Networks

SVM

Support Vector Machines

DANH MỤC HÌNH ẢNH, BIỂU ĐỒ:
Hình 2.1: Minh hoạ tích chập ............................................................................................ 15
Hình 2.2: Minh hoạ kiến trúc CNN dùng trong phân loại ảnh .......................................... 21
Hình 2.3: Tính tích chập với các bộ lọc ............................................................................ 22
Hình 2.4: Tính tốn với phương pháp MaxPooling .......................................................... 23
Hình 3.1: Bộ dữ liệu nhận dạng ngơn ngữ ký hiệu ........................................................... 25
Hình 3.2: Hàm xử lý ảnh resize về 224x224 và chuyển về numpy array ......................... 26
Hình 3.3: Hàm xử lý dữ liệu đầu vào ................................................................................ 27
Hình 3.4: Hàm duyệt thư mục ảnh để train ....................................................................... 27

Hình 3.5: Chia dữ liệu huấn luyện và dữ liệu test ............................................................. 28
Hình 3.6: Đặt các checkpoint để lưu lại model tốt nhất .................................................... 28
Hình 3.7: Xây dựng mơ hình CNN ................................................................................... 29
Hình 3.8: Train và lưu mơ hình ......................................................................................... 29
Hình 3.9: Giao diện ban đầu khi chạy chương trình ......................................................... 32
Hình 3.10: Giao diện sau khi nhấn B ................................................................................ 33
Hình 3.11: Giao diện khi đưa tay lên khung nhận diện ..................................................... 33

2


LỜI CẢM ƠN
Trước tiên, chúng em muốn gửi lời tri ân chân thành đến TS. Nguyễn Mạnh
Cường, với lòng biết ơn sâu sắc vì những kiến thức quý báu mà thầy đã truyền đạt cho
chúng em và sự tận tâm trong việc hướng dẫn chúng em hoàn thành đề tài.
Sự giúp đỡ và sự đồng hành của thầy đã đóng vai trị vơ cùng quan trọng trong q
trình nghiên cứu của chúng em. Chúng em rất mong muốn nhận được ý kiến đóng góp từ
thầy để hồn thiện đề tài của chúng em. Sự phản hồi và góp ý từ thầy sẽ giúp chúng em
nắm bắt được các khía cạnh cần cải thiện và phát triển thêm ý tưởng mới. Chúng em rất
trân trọng mọi đóng góp và mong được học hỏi thêm từ sự chuyên môn và kinh nghiệm
của thầy.
Một lần nữa, chúng em xin chân thành cảm ơn TS. Nguyễn Mạnh Cường vì sự tận
tâm và kiến thức mà thầy đã dành cho chúng em. Sự hướng dẫn của thầy đã thúc đẩy
chúng em tiến bộ và trở thành những người học viên tự tin hơn. Chúng em rất biết ơn và
sẽ ln mang trong lịng sự tri ân này.
Nhóm chúng em xin chân thành cảm ơn!
Nhóm thực hiện
Trịnh Thế Khánh
Mai Thị Hường
Lê Tuấn Anh


3


LỜI NĨI ĐẦU
Trong những năm gần đây, vì sự phát triển nhanh chóng của cơng nghệ và ứng
dụng trí tuệ nhân tạo trong thời gian gần đây. Trong lĩnh vực nhận dạng cử chỉ tay,
CNN (Convolutional Neural Network) là một trong những mơ hình Deep Learning
tiên tiến. 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.
Dưới tác động của sự phát triển công nghệ, việc nhận dạng cử chỉ tay đang trở
thành một lĩnh vực quan trọng và tiềm năng, có thể được ứng dụng rộng rãi trong
nhiều lĩnh vực khác nhau. Ví dụ, nhận dạng cử chỉ tay có thể được sử dụng trong hệ
thống giao tiếp người-máy, điều khiển robot, thể thao ảo, y tế, an ninh, và nhiều ứng
dụng khác. Mơ hình mạng nơ-ron tích chập (Convolutional Neural Network - CNN)
đã chứng tỏ được hiệu quả của nó trong xây dựng các hệ thống thơng minh với độ
chính xác cao.
Trong thực tế hiện nay, các bài toán nhận dạng đang tập trung vào việc nhận dạng
mẫu, nhận dạng tiếng nói và nhận dạng chữ viết tay, ký hiệu tay. Việc nhận dạng ký
hiệu tay đang nhận được sự quan tâm đặc biệt, vì nó có ứng dụng rộng trong nhiều
lĩnh vực thực tế. Nhận dạng ký hiệu tay có thể được sử dụng để giúp cho chúng ta có
thể giao tiếp với nhau thơng qua các hành động, điều này đặc biệt hữu ích khi giao tiếp
với người khiếm thính. Nó cũng có thể được áp dụng vào việc giao tiếp với người
khiếm thính, ngồi ra có thể mở rộng ra để tạo ra một thứ ngơn ngữ ký hiệu riêng,
giúp tăng tính bảo mật cho thơng tin.
Hiện nay, đã có một số phương pháp nghiên cứu để giải quyết bài toán nhận dạng
ký hiệu tay, bao gồm K láng giềng gần nhất (K-Nearest Neighbor - KNN), máy hỗ trợ
vector (Support Vector Machine - SVM) và mơ hình Markov ẩn (Hidden Markov
Model - HMM). Tuy nhiên, các phương pháp này không đạt được kết quả nhận dạng
cao và tốn nhiều thời gian cho việc trích rút đặc trưng từ ảnh. Do đó, nghiên cứu này

đề xuất xây dựng một mơ hình mới để tự động trích rút đặc trưng từ ảnh và cải thiện
kết quả nhận dạng so với các mơ hình trước đó.
4


Dựa trên thành công của mạng nơ-ron trong lĩnh vực xử lý ảnh, nghiên cứu này đề
xuất sử dụng mô hình Convolutional Neural Network (CNN) để giải quyết bài tốn
nhận dạng ký hiệu tay.
Bài toán nhận dạng ký hiệu tay có thể được thực hiện theo hai hình thức: nhận
dạng online và nhận dạng offline. Nhận dạng online là khi máy tính nhận dạng ký hiệu
tay ngay khi hành động đó được thực hiện trước camera. Trong trường hợp này, máy
tính sẽ lưu lại thơng tin về ký hiệu đó và ý nghĩa của nó, hướng và tốc độ của tay. Cịn
nhận dạng offline là khi máy tính nhận dạng ký hiệu sau khi hành động ký hiệu được
chụp lại hoặc in ra giấy, và thông tin đầu vào là hình ảnh văn bản hoặc ký hiệu cần
nhận dạng.
Trong phạm vi bài báo này, chúng em chỉ tập trung vào nhận dạng offline cho các
ký hiệu tay.
Nội dung quyển báo cáo đồ án tốt nghiệp sẽ bao gồm các chương như sau:
Chương 1: Tìm hiểu và phát biểu bài tốn
Trong chương này chúng em sẽ trình bày những khái niệm tổng quan về bài toán
nhận diện ký hiệu tay, các khái niệm về mạng nơ ron tích chấp, data input và output,
các ứng dụng, khó khăn và thách thức trong quá trình xây dựng chương trình nhận
dạng ký hiệu tay của người khiếm thính.
Chương 2: Các kỹ thuật giải quyết bài toán
Sau khi đã phát biểu và xác định rõ ràng được u cầu bài tốn, chúng em sẽ trình
bày các kỹ thuật giải quyết bài tốn hiện có cùng các ưu và nhược điểm của chúng,
cũng như các nghiên cứu nổi bật đã đạt được thành công nhất định từ những kỹ thật
đó. Tiếp theo, chúng em sẽ đề xuất giải pháp của mình cho bài tốn được đặt ra.
Chương 3: Thực nghiệm
Tại chương 3, chúng em tập trung trình bày về quá trình thực nghiệm cũng như các

kết quả đạt được với kỹ thuật giải quyết bài toán được đề xuất ở chương 2. Chúng em
cũng sẽ tiến hành so sánh kết quả thực nghiệm thu được từ phương pháp chúng em đề
xuất giải quyết bài với một số phương pháp phổ biến hiện nay và đưa ra nhận xét.
Phần kết luận:
5


Cuối cùng trong phần kết luật, chúng em tổng hợp các kết quả đạt được, các hướng
phát triển và mở rộng đề tài nghiên cứu trong tương lai.
Bài tập lớn này có vai trị quan trọng trong cuộc sống hàng ngày, là tiền đề giúp tạo
ra các hệ thống nhận dạng tiên tiến hơn trong tương lai giúp cải cho người khiếm thính
dần có thể hồ nhập được với cuộc sống hàng ngày một cách dễ dàng, giúp cho mối
quan hệ giữa người với người trở nên gần gửi hơn.

6


CHƯƠNG 1: TÌM HIỂU VÀ PHÁT BIỂU BÀI TỐN
1.1. Giới thiệu chung
1.1.1. Tổng quan về nhận dạng
Nhận dạng là sử dụng cơng nghệ và kỹ thuật để giúp máy tính xác định, gắn
nhãn và phân loại các yếu tố quan tâm trong một hình ảnh.
Trong khi con người xử lý hình ảnh và phân loại các đối tượng bên trong
hình ảnh khá dễ dàng, thì điều tương tự là khơng thể đối với máy móc trừ khi
nó được đào tạo đặc biệt để làm như vậy. Kết quả của nhận dạng hình ảnh là
xác định chính xác và phân loại các đối tượng được phát hiện thành nhiều loại
khác nhau được xác định trước với sự trợ giúp của công nghệ học sâu.
Nhận dạng cử chỉ hành vi là quá trình xác định và hiểu các cử chỉ, động tác,
và hành vi từ dữ liệu đa dạng như hình ảnh, video, âm thanh, hoặc dữ liệu vận
động.

Các thuật toán nhận dạng hành vi, cử chỉ phổ biến: Convolutional Neural
Networks (CNN) - Nhận dạng cử chỉ trong video, hình ảnh, Recurrent Neural
Networks (RNN) - Nhận dạng cử chỉ trong video, dữ liệu thời gian, Support
Vector Machines (SVM) - Nhận dạng cử chỉ trong dữ liệu không gian đặc
trưng.
Ứng dụng của nhận dạng trong cuộc sống:
 Tương Tác Máy: Nhận dạng cử chỉ để tương tác với các thiết bị điện tử
hoặc máy tính.
 Y Tế: Theo dõi và nhận dạng cử chỉ vận động để đánh giá sức khỏe và
chăm sóc.
 An Ninh: Nhận dạng hành vi đe dọa hoặc gây rối từ dữ liệu video an
ninh.
1.1.2. Tổng quan về ngôn ngữ ký hiệu
Ngơn ngữ ký hiệu là một hình thức ngôn ngữ sử dụng cử chỉ bàn tay, biểu
cảm khuôn mặt và chuyển động của cơ thể để truyền đạt ý nghĩa giữa những
người khiếm thính với nhau và với người bình thường. Sự phát triển của cơng
7


nghệ và khoa học đã giúp cho việc nhận dạng ngôn ngữ cử chỉ trở nên thuận
tiện và hiệu quả hơn. Hiện nay, nhiều nghiên cứu trong lĩnh vực này tập trung
vào việc phát triển các hệ thống nhận dạng cử chỉ tay để giúp cho những người
khiếm thính có thể giao tiếp với người bình thường một cách dễ dàng hơn.
Trong quá trình nghiên cứu và phát triển các hệ thống nhận dạng cử chỉ tay, đã
có nhiều phương pháp được sử dụng để thu thập dữ liệu về cử chỉ tay. Một
trong những phương pháp phổ biến nhất là sử dụng găng tay dữ liệu. Tuy
nhiên, phương pháp này đòi hỏi người sử dụng phải sử dụng thiết bị đặc biệt,
điều này có thể gây khó khăn trong việc thực hiện cử chỉ tay một cách tự nhiên.
Do đó, các phương pháp sử dụng camera/webcam/Kinect 3D để thu thập dữ
liệu về cử chỉ tay đã được nghiên cứu và phát triển. Tuy nhiên, để tìm ra khung

hình chứa cử chỉ tay cuối cùng là một vấn đề khó khăn. Để giải quyết vấn đề
này, nhiều nghiên cứu đã sử dụng các phương pháp phân tích chuyển động và
giải thuật phát hiện cử chỉ tay.
Sau khi thu thập được dữ liệu về cử chỉ tay, giai đoạn tiếp theo là mơ hình
hóa cử chỉ. Trong giai đoạn này, các mơ hình được tạo ra để biểu diễn các cử
chỉ tay dưới dạng số liệu và dữ liệu hình ảnh. Đây là bước quan trọng để phân
tích và nhận dạng các cử chỉ tay. Giai đoạn tiếp theo là trích chọn đặc trưng,
trong đó các đặc trưng quan trọng của cử chỉ tay được chọn lọc để tạo ra các
biểu diễn số liệu của cử chỉ tay. Các đặc trưng này có thể được trích xuất từ các
đặc tính về hình dạng, màu sắc, vị trí và chuyển động của các ngón tay. Cuối
cùng, giai đoạn nhận dạng được thực hiện để xác định cử chỉ tay dựa trên các
mô hình và đặc trưng đã được xác định trước đó. Các phương pháp nhận dạng
có thể dựa trên các kỹ thuật máy học như SVM, KNN, CNN, Decision Tree
hay Deep Learning. Các kỹ thuật này giúp tăng độ chính xác và độ tin cậy của
hệ thống nhận dạng cử chỉ tay.
Ở Việt Nam, ngôn ngữ cử chỉ được sử dụng rộng rãi trong cộng đồng người
khiếm thính. Tuy nhiên, chưa có nhiều nghiên cứu đề cập đến ngơn ngữ cử chỉ
Tiếng Việt VSL (Vietnamese Sign Language). Vì vậy, chúng em đưa ra một đề
8


xuất về một hệ thống nhận dạng cử chỉ tay cho ngôn ngữ cử chỉ Tiếng Việt
VSL. Để đạt được độ chính xác cao, hệ thống sử dụng một số kỹ thuật xử lý
ảnh để lọc nhiễu và loại bỏ các đối tượng ngồi khung hình. Sau đó, các đặc
trưng được trích xuất từ hình ảnh và sau đó được sử dụng để huấn luyện một
mơ hình nhận dạng chữ cái. Kết quả thực nghiệm cho thấy hệ thống nhận dạng
cử chỉ tay được đề xuất đạt được độ chính xác cao và có thể áp dụng trong các
ứng dụng thực tế như giao tiếp và tương tác người-máy.
1.2. Mục tiêu bài toán
Mục tiêu của bài toán nhận dạng ký hiệu tay của người khiếm thính là nhằm xây

dựng một hệ thống đem lại hy vọng cho những người khiếm thính có thể sử dụng ngơn
ngữ cử chỉ Tiếng Việt VSL để giao tiếp với người bình thường một cách dễ dàng và
hiệu quả hơn.
1.3. Phương pháp tiếp cận
Để phân tích dữ liệu về cử chỉ tay, các phương pháp phổ biến bao gồm mạng nơron tích chập, thuật tốn SVM, và thuật tốn K-Nearest Neighbors (KNN).
Q trình phân tích dự báo số lượng nhà bán được thường bao gồm các bước sau:
 Chuẩn bị dữ liệu:
 Thu thập dữ liệu hình ảnh hoặc video của ngơn ngữ ký hiệu tay từ
người khiếm thính hoặc nguồn dữ liệu khác.
 Gắn nhãn cho mỗi biểu hiện tay hoặc cử chỉ trong dữ liệu, xác định
từ hoặc cụm từ tương ứng.
 Tiền xử lý dữ liệu:
 Chuyển đổi hình ảnh hoặc video thành định dạng phù hợp cho mạng
CNN.
 Xây dựng mô hình CNN:
 Thiết kế kiến trúc mạng CNN phù hợp cho bài toán nhận dạng ký
hiệu tay. Kiến trúc này bao gồm các lớp tích chập để trích xuất đặc
trưng và các lớp kết nối đầy đủ để phân loại.
9


 Chọn số lớp tích chập, kích thước bộ lọc, hàm kích hoạt, và số lớp ẩn
dựa trên yêu cầu cụ thể của dự án.
 Huấn luyện mơ hình:
 Sử dụng tập dữ liệu huấn luyện để đào tạo mô hình CNN. Điều này
địi hỏi việc tối ưu hóa hàm mất mát và cập nhật trọng số của mạng.
 Cân nhắc việc sử dụng các kỹ thuật như data augmentation để tăng
cường dữ liệu huấn luyện và giảm overfitting.
 Kiểm tra và đánh giá:
 Sử dụng tập kiểm tra và tập xác thực để đánh giá hiệu suất của mơ

hình. Đo lường các chỉ số như độ chính xác, độ nhạy, độ cụt, và mất
mát.
 Tinh chỉnh kiến trúc mô hình hoặc siêu tham số dựa trên kết quả
đánh giá.
1.4. Cơ hội và thách thức
1.4.1. Cơ hội
 Hỗ trợ người khiếm thính: Đề tài này giúp cung cấp một cơng cụ hữu ích
cho người khiếm thính để tương tác và giao tiếp dễ dàng hơn. Họ có thể sử
dụng phần mềm này để biểu đạt ý kiến, tương tác với người khác và tham
gia vào nhiều khía cạnh của cuộc sống hơn.
 Phát triển kỹ năng giao tiếp: Học được các kỹ năng giao tiếp bằng ngôn ngữ
ký hiệu.
 Học máy và trí tuệ nhân tạo: Thực hiện đề tài này là một cơ hội để nắm
vững kiến thức về học máy và mạng CNN, cũng như phát triển kỹ năng
trong lĩnh vực trí tuệ nhân tạo. Điều này có thể mở ra cơ hội nghiên cứu và
sự nghiệp trong lĩnh vực công nghệ.
 Phát triển sản phẩm và ứng dụng thương mại: Nếu phát triển thành công
một phần mềm nhận dạng ký hiệu tay, có thể cân nhắc triển khai sản phẩm
thương mại hoặc ứng dụng trong lĩnh vực giáo dục, chăm sóc sức khỏe,
hoặc trong cộng đồng người khiếm thính.
10


 Tạo giá trị xã hội: Ngồi lợi ích tài chính, việc thực hiện đề tài này có thể
mang lại giá trị xã hội bằng cách giúp cải thiện cuộc sống của người khiếm
thính và đóng góp vào việc xây dựng một xã hội cơng bằng và đa dạng.
 Tích hợp công nghệ mới: Sử dụng công nghệ mới như mạng CNN trong
lĩnh vực nhận dạng ký hiệu tay có thể làm tiên phong trong việc tạo ra các
giải pháp hiệu quả và tiện lợi cho người khiếm thính.
 Tích cực tham gia cộng đồng công nghệ và xã hội: Tham gia vào việc giải

quyết các vấn đề xã hội như hỗ trợ người khiếm thính có thể giúp xây dựng
mối quan hệ, mở rộng mạng lưới xã hội, và tạo ra sự thay đổi tích cực trong
cộng đồng.
1.4.2. Thách thức
 Dữ liệu hạn chế: Thu thập và gắn nhãn dữ liệu ký hiệu tay có thể đầy rẫy
khó khăn. Có thể cần nhiều dữ liệu để huấn luyện mơ hình CNN hiệu quả,
và dữ liệu này phải bao gồm nhiều biểu hiện tay và cử chỉ khác nhau.
 Đa dạng biểu hiện tay: Ký hiệu tay có thể thay đổi tùy theo ngữ cảnh và
người thực hiện. Điều này tạo ra thách thức trong việc xây dựng mơ hình có
khả năng tổng quát hóa cho các biểu hiện tay đa dạng.
 Overfitting: Mơ hình CNN có thể dễ bị overfitting nếu khơng kiểm sốt tốt.
Overfitting có thể xảy ra khi mơ hình học q nhiều từ dữ liệu huấn luyện
cụ thể và khơng thể tổng qt hóa cho các dữ liệu mới.
 Tương tác ngôn ngữ ký hiệu tay: Khơng chỉ nhận dạng, mà cịn cần xem xét
ngữ cảnh để hiểu ý nghĩa của các biểu hiện tay. Điều này u cầu phân tích
khơng chỉ hình ảnh mà cịn cả chuỗi thời gian.
 Khả năng đối mặt với nhiễu: Nhiễu trong hình ảnh, ánh sáng yếu hoặc nền
phức tạp có thể ảnh hưởng đến khả năng nhận dạng ký hiệu tay và là một
thách thức cần xem xét.
 Tích hợp công nghệ mới: Sử dụng công nghệ mới như CNN có thể địi hỏi
khả năng tiếp tục học và nắm vững kiến thức về trí tuệ nhân tạo và học máy.
11


CHƯƠNG 2: CÁC KỸ THUẬT GIẢI QUYẾT BÀI TOÁN
2.1.

Hướng tiếp cận

Hướng tiếp cận của bài toán là sử dụng một mơ hình CNN để học và nhận dạng

các đặc trưng của kí hiệu tay trong hình ảnh.
Mạng neural tích chập (CNN) là một kiến trúc mạng thích hợp cho việc xử lý và
phân loại hình ảnh. CNN tự động học các đặc trưng từ dữ liệu hình ảnh thơng qua việc
áp dụng các lớp tích chập và lớp gộp để trích xuất thơng tin đặc trưng. Sau đó, thơng
tin đặc trưng được đưa vào các lớp kết nối đầy đủ để phân loại và nhận dạng kí hiệu
tay.
Q trình xây dựng mơ hình CNN bao gồm việc thiết kế kiến trúc mạng, chọn các
hàm kích hoạt và hàm mất mát phù hợp, và tối ưu hóa mơ hình thơng qua huấn luyện
trên tập dữ liệu được gắn nhãn. Sau khi mơ hình được huấn luyện, nó có thể được sử
dụng để phân loại kí hiệu tay trong các hình ảnh mới.
Hướng tiếp cận này dựa trên giả định rằng các đặc trưng quan trọng để phân biệt
các kí hiệu tay nằm trong các vùng cụ thể của hình ảnh và có thể được học thơng qua
mạng neural tích chập. Qua q trình huấn luyện, mơ hình học cách trích xuất và sử
dụng các đặc trưng này để phân loại kí hiệu tay.
Q trình nhận dạng kí hiệu tay bằng CNN thường bao gồm các bước sau:
Chuẩn bị dữ liệu:
 Thu thập dữ liệu: Thu thập tập dữ liệu chứa hình ảnh kí hiệu tay. Đảm bảo
rằng dữ liệu được thu thập từ nhiều nguồn và chứa đủ đa dạng các loại kí
hiệu tay.
 Gắn nhãn: Gắn nhãn cho mỗi hình ảnh trong tập dữ liệu, xác định loại kí
hiệu tay mà hình ảnh đại diện.
Tiền xử lý dữ liệu:
 Chuẩn hóa giá trị pixel: Đối với hình ảnh RGB, chuẩn hóa giá trị pixel bằng
cách chia mỗi giá trị pixel cho 255 để đưa về khoảng từ 0 đến 1.

12


 Chuyển đổi độ phân giải: Điều chỉnh kích thước hình ảnh cho phù hợp với
kiến trúc mạng CNN. Thơng thường, các hình ảnh được chuyển đổi thành

cùng một kích thước đầu vào.
Xây dựng mạng neural tích chập (CNN):
 Kiến trúc mạng: Thiết kế kiến trúc CNN bằng cách xếp chồng các lớp tích
chập, lớp gộp và lớp kết nối đầy đủ. Các lớp tích chập sẽ học các bộ lọc để
trích xuất đặc trưng từ hình ảnh, trong khi lớp gộp giúp giảm kích thước của
đặc trưng và tăng tính tổng quát. Cuối cùng, lớp kết nối đầy đủ sẽ thực hiện
phân loại dựa trên đặc trưng đã trích xuất.
 Hàm kích hoạt: Mỗi lớp trong mạng CNN thường được kết hợp với một
hàm kích hoạt phi tuyến tính như ReLU (Rectified Linear Unit) để tạo độ
khơng tuyến tính và khả năng học đặc trưng phức tạp hơn.
Huấn luyện mơ hình:
 Tạo tập huấn luyện và tập kiểm tra: Chia tập dữ liệu thành tập huấn luyện
và tập kiểm tra. Thông thường, tập huấn luyện được sử dụng để huấn luyện
mơ hình, trong khi tập kiểm tra được sử dụng để đánh giá hiệu suất của mơ
hình trên dữ liệu chưa từng thấy.
 Hàm mất mát và tối ưu hóa: Định nghĩa hàm mất mát (loss function) phù
hợp, như hàm cross-entropy, để đo lường sự khác biệt giữa kết quả dự đoán
và nhãn thực tế. Sử dụng thuật toán tối ưu hóa như gradient descent để điều
chỉnh trọng số của mạng và giảm thiểu hàm mất mát.
Đánh giá mô hình:
 Đánh giá hiệu suất: Sử dụng tập kiểm tra để đánh giá hiệu suất của mơ hình.
Các độ đo thơng thường bao gồm độ chính xác (accuracy), độ phủ (recall),
chính xác trung bình (average precision) và ma trận nhầm lẫn (confusion
matrix). Những độ đo này giúp đánh giá khả năng của mơ hình trong việc
phân loại các kí hiệu tay.
Tinh chỉnh và kiểm tra:
13


 Tinh chỉnh mơ hình: Dựa trên kết quả đánh giá, có thể tinh chỉnh kiến trúc

mạng, thay đổi siêu tham số (như số lượng lớp, số lượng bộ lọc, kích thước
lớp gộp, tỷ lệ học) và kỹ thuật huấn luyện để cải thiện hiệu suất của mơ
hình.
 Kiểm tra trên dữ liệu mới: Cuối cùng, mơ hình được kiểm tra với dữ liệu
mới mà chưa từng thấy để đảm bảo tính tổng qt và độ tin cậy của nó trong
việc nhận dạng kí hiệu tay.
Q trình này sử dụng mạng neural tích chập (CNN) cho phép mơ hình tự động
học và trích xuất các đặc trưng quan trọng từ hình ảnh kí hiệu tay, từ đó nhận dạng và
phân loại chúng. Mạng CNN đã được chứng minh là rất hiệu quả trong xử lý hình ảnh
và nhận dạng đối tượng, và được áp dụng rộng rãi trong nhiều ứng dụng, bao gồm
nhận dạng kí hiệu tay trong lĩnh vực thị giác máy tính.
2.2. Mạng nơ ron tích chập
2.1.1. Tổng quan
Mạng nơ-ron tích chập (CNN) là một thiết kế mạng học sâu mà học trực
tiếp từ đầu vào, loại bỏ nhu cầu về việc trích xuất đặc trưng từ con người. CNN
rất hiệu quả trong việc phát hiện các mẫu trong hình ảnh để phân biệt các đối
tượng, khn mặt và cảnh quan. Chúng cũng hữu ích trong việc phân loại dữ
liệu khơng phải hình ảnh như âm thanh, dãy số thời gian và dữ liệu tín hiệu.
CNN là mạng nơ-ron đa tầng được điều chuẩn. Mạng nơ-ron đa tầng thường là
mạng kết nối hồn tồn, có nghĩa là mỗi nơ-ron ở một tầng liên kết với tất cả
các nơ-ron ở tầng tiếp theo. Do sự "kết nối hoàn toàn" này, các mạng này dễ bị
quá mức với dữ liệu. Điều chuẩn, hoặc ngăn chặn quá mức, thường được thực
hiện bằng cách trừng phạt các tham số trong quá trình huấn luyện (như giảm
trọng lượng) hoặc giảm kết nối (kết nối bỏ qua, dropout, v.v.). CNN giải quyết
vấn đề điều chuẩn một cách khác: chúng sử dụng mẫu phân cấp trong dữ liệu
để xây dựng các mẫu có độ phức tạp tăng dần bằng cách sử dụng các mẫu nhỏ
và đơn giản hơn in vào các bộ lọc của chúng. Do đó, CNN ở dải thấp nhất của
phổ kết nối và độ phức tạp.
14



CNN (Convolutional Neural Network) dần chiếm lĩnh vai trò quan trọng
trong lĩnh vực Deep Learning. Nó được sử dụng rộng rãi trong thị giác máy
tính và các nhiệm vụ học nơ-ron khác. Để giới hạn số lượng tham số, việc sử
dụng mơ hình CNN là một chiến lược khơn ngoan. Khi đào tạo một CNN, cùng
một tham số được sử dụng nhiều lần, dẫn đến một mạng không kết nối đầy đủ.
Do đó, đây là một cách hợp lý để giảm thời gian đào tạo. Kể từ khi ra đời,
CNNs nhanh chóng phát triển từ xử lý hình ảnh sang văn bản, nhận dạng giọng
nói và trở thành tiêu chuẩn vàng trong những lĩnh vực này và nhiều lĩnh vực trí
tuệ nhân tạo khác.
2.1.2. Tích chập
Tích chập (convolution) được sử dụng đầu tiên trong xử lý tín hiệu số
(signal processing). Nhờ vào nguyên lý biến đổi thông tin, các nhà khoa học đã
áp dụng kĩ thuật này vào xử lý ảnh và video số. Hình 1 minh họa cơ chế của
tích chập.

Hình 2.1: Minh hoạ tích chập

Ma trận bên trái là một ảnh xám, mỗi giá trị của ma trận tương đương với
một điểm ảnh (pixel) có giá trị biến thiên từ 0 đến 255. Sliding window cịn có
tên gọi là kernel, filter hay feature detector. Ở đây, ta dùng một ma trận filter
kích thước 3×3 nhân từng thành phần tương ứng với ma trận ảnh bên trái. Giá
trị đầu ra do tích của các thành phần này cộng lại. Kết quả của tích chập là một
ma trận sinh ra từ việc trượt ma trận filter và thực hiện tích chập cùng lúc lên
toàn bộ ma trận ảnh bên trái.
15


Để cho dễ hình dung mình sẽ lấy ví dụ trên ảnh xám, tức là ảnh được biểu
diễn dưới dạng ma trận A kích thước m*n. Ta định nghĩa kernel là một ma trận

vng kích thước k*k trong đó k là số lẻ. k có thể bằng 1, 3, 5, 7, 9,… Ví dụ
kernel kích thước 3*3:

Kí hiệu phép tính convolution (⊗), kí hiệu Y =X⊗W. Với mỗi phần tử xij
trong ma trận X lấy ra một ma trận có kích thước bằng kích thước của kernel
W có phần tử xij làm trung tâm (đây là vì sao kích thước của kernel thường lẻ)
gọi là ma trận A. Sau đó tính tổng các phần tử của phép tính của ma trận A và
ma trận W, rồi viết vào ma trận kết quả Y.

Ví dụ khi tính tại x22 (ơ khoanh đỏ trong hình), ma trận A cùng kích thước
với W, có x22 làm trung tâm có màu nền da cam như trong hình. Sau đó tính:
y11 = sum(A⊗W) = x11*w11 + x12*w12 + x13*w13 + x21*w21 + x22*w22 +
x23*w23 + x31*w31 + x32*w32 + x33*w33 =4
Và làm tương tự với các phần tử cịn lại trong ma trận.
Thế thì sẽ xử lý thế nào với phần tử ở viền ngoài như x11? Bình thường khi
tính thì sẽ bỏ qua các phần tử ở viền ngồi, vì khơng tìm được ma trận A ở
trong X.
16


Nên ta để ý thấy ma trận Y có kích thước nhỏ hơn ma trận X. Kích thước
của ma trận Y là (m-k+1) * (n-k+1).

Như ở trên thì mỗi lần thực hiện phép tính convolution xong thì kích thước
ma trận Y đều nhỏ hơn X. Tuy nhiên, để ma trận Y thu được có kích thước
bằng ma trận X, ta thêm giá trị 0 ở viền ngoài ma trận X.

Ma trận X khi thêm viền 0 bên ngoài
17



Rõ ràng là giờ đã giải quyết được vấn đề tìm A⊗W cho phần tử x11 , và ma
trận Y thu được sẽ bằng kích thước ma trận X ban đầu. Phép tính này gọi là
convolution với padding=1. Padding=k nghĩa là thêm k vector 0 vào mỗi phía
của ma trận.
Như ở trên ta thực hiện tuần tự các phần tử trong ma trận X, thu được ma
trận Y cùng kích thước ma trận X, ta gọi là stride=1.

Stride=1, Padding=1
Tuy nhiên nếu stride=k (k > 1) thì ta chỉ thực hiện phép tính convolution
trên các phần tử x1+i∗k,1+j∗k. Ví dụ k = 2.

Padding=1, Stride=2
Hiểu đơn giản là bắt đầu từ vị trí x11 sau đó nhảy k bước theo chiều dọc và
ngang cho đến hết ma trận X. Kích thước của ma trận Y là 3*3 đã giảm đi đáng
kể so với ma trận X.
18


Cơng thức tổng qt cho phép tính convolution của ma trận X kích thước
m*n với kernel kích thước k*k, stride = s, padding = p ra ma trận Y sẽ có kích
thước là:

Stride thường dùng để giảm kích thước của ma trận sau phép tính
convolution.
Ý nghĩa của phép tính convolution:
Mục đích của phép tính convolution trên ảnh là làm mờ, làm nét ảnh, xác
định biên… Mỗi kernel khác nhau sẽ cho ra phép convolution có ý nghĩa khác
nhau. Ví dụ:


19


2.1.3. Mơ hình mạng nơ ron tích chập
Mơ hình CNN chỉ đơn giản gồm một vài layer của convolution kết hợp với
các hàm kích hoạt phi tuyến như ReLU hay tanh để tạo ra thông tin ở mức trừu
tượng hơn cho các layer tiếp theo.
Trong mơ hình mạng nơ-ron truyền thẳng (feedforward nơ-ron network),
các layer kết nối trực tiếp với nhau thông qua một trọng số w (weighted vector).
Các layer này cịn được gọi là có kết nối đầy đủ (fully connected layer) hay
affine layer.
20


Trong mơ hình CNN thì ngược lại. Các layer liên kết được với nhau thông
qua cơ chế convolution. Layer tiếp theo là kết quả convolution từ layer trước
đó, nhờ vậy mà ta có được 110 các kết nối cục bộ. Nghĩa là mỗi nơ-ron ở layer
tiếp theo sinh ra từ filter áp đặt lên một vùng ảnh cục bộ của nơ-ron layer trước
đó. Mỗi layer như vậy được áp đặt các filter khác nhau, thơng thường có vài
trăm đến vài nghìn filter như vậy. 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ỏ các thơng tin
nhiễu).
Trong suốt q trình huấn luyện, CNN sẽ tự động học được các thông số
cho các filter. Ví dụ, trong nhiệm vụ phân lớp ảnh như được minh họa trong
hình 2, CNN sẽ cố gắng tìm ra thơng số tối ưu cho các filter tương ứng theo thứ
tự raw pixel > edges > shapes > facial > high-level features. Layer cuối cùng
được dùng để phân lớp ảnh.

Hình 2.2: Minh hoạ kiến trúc CNN dùng trong phân loại ảnh
CNN có tính bất biến và tính kết hợp cục bộ (Location Invariance and

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 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
CNN cho ra mơ hình với độ chính xác rất cao. Tiếp theo, chúng em sẽ trình bày
chi tiết các lớp trong mơ hình.
21


a) Convolutional Layer
Layer này chính là nơi thể hiện tư tưởng ban đầu của CNN. Thay vì kết
nối tồn bộ điểm ảnh, layer này sẽ sử dụng một tập các bộ lọc (filters) có
kích thước nhỏ so với ảnh (thường là 5×5 hoặc 3×3) áp vào một vùng trong
ảnh và tiến hành tính tích chập giữa bộ lọc và giá trị điểm ảnh trong vùng
cục bộ đó. Bộ lọc sẽ lần lượt được dịch chuyển theo một giá trị bước trượt
(stride) chạy dọc theo ảnh và qt tồn bộ ảnh.

Hình 2.3: Tính tích chập với các bộ lọc
Như vậy, với một bức ảnh 32×32 và một filter 3×3, ta sẽ có kết quả là
một tấm ảnh mới có kích thước 32×32 (với điều kiện đã thêm padding vào
ảnh gốc để tính tích chập cho các trường hợp filter quét ra các biên cạnh) là
kết quả tích chập của filter và ảnh. Với bao nhiêu filter trong lớp này thì ta sẽ
có bấy nhiêu ảnh tương ứng mà lớp này trả ra và được truyền vào lớp tiếp
theo. Các trọng số của filter ban đầu sẽ được khởi tạo ngẫu nhiên và sẽ được
học dần trong q trình huấn luyện mơ hình. Hình 3 minh họa của một phép
tính convolution với bộ lọc có kích thước 3×3.
b) Rectified Linear Unit (ReLU) Layer
Layer này thường được cài đặt ngay sau layer Convolution. Layer này

sử dụng hàm kích hoạt f(x) = max(0, x). Nói một cách đơn giản, layer này có
nhiệm vụ chuyển toàn bộ giá trị âm trong kết quả lấy từ lớp Convolution
thành giá trị 0. Ý nghĩa của cách cài đặt này chính là tạo nên tính phi tuyến
cho mơ hình. Tương tự như trong mạng truyền thẳng, việc xây dựng dựa trên
22


các phép biến đổi tuyến tính sẽ khiến việc xây dựng đa tầng đa lớp trở nên
vơ nghĩa. Có rất nhiều cách để khiến mơ hình trở nên phi tuyến như sử dụng
các hàm kích hoạt sigmoid, tanh,… nhưng hàm f(x) = max(0, x) dễ cài đặt,
tính tốn nhanh mà vẫn hiệu quả.
c) Pooling Layer
Layer này sử dụng một cửa sổ trượt quét qua toàn bộ ảnh dữ liệu, mỗi
lần trượt theo một bước trượt (stride) cho trước. Khác với layer Convolution,
layer Pooling khơng tính tích chập mà tiến hành lấy mẫu (subsampling). Khi
cửa sổ trượt trên ảnh, chỉ có một giá trị được xem là giá trị đại diện cho
thơng tin ảnh tại vùng đó (giá trị mẫu) được giữ lại. Các phương thức lấy phổ
biến trong layer Pooling là MaxPooling (lấy giá trị lớn nhất), MinPooling
(lấy giá trị nhỏ nhất) và AveragePooling (lấy giá trị trung bình).
Xét một ảnh có kích thước 32×32 và layer Pooling sử dụng bộ lọc có
kích thước 2×2 với bước trượt stride là 2, phương pháp sử dụng là
MaxPooling. Bộ lọc sẽ lần lượt trượt qua ảnh, với mỗi lần trượt chỉ có giá trị
lớn nhất trong 4 giá trị nằm trong vùng cửa sổ 2×2 của bộ lọc được giữ lại và
đưa vào ma trạn đầu ra. Như vậy, sau khi qua layer Pooling, ảnh sẽ giảm
kích thước xuống cịn 16×16 (kích thước mỗi chiều giảm 2 lần).

Hình 2.4: Tính tốn với phương pháp MaxPooling
Pooling Layer có vai trị giảm kích thước dữ liệu. Với một bức ảnh kích
thước lớn qua nhiều Pooling Layer sẽ được thu nhỏ lại tuy nhiên vẫn giữ
được những đặc trưng cần cho việc nhận dạng (thông qua cách lấy mẫu).

Việc giảm kích thước dữ liệu sẽ làm giảm lượng tham số, tăng hiệu quả tính
tốn và góp phần kiểm sốt hiện tượng q khớp (overfitting).
23


d) Fully Connected (FC) Layer
Layer này tương tự với layer trong mạng nơ-ron truyền thẳng, các giá trị
ảnh được liên kết đầy đủ vào các nơ-ron trong layer tiếp theo. Sau khi ảnh
được xử lý và rút trích đặc trưng từ các layer trước đó, dữ liệu ảnh sẽ khơng
cịn q lớn so với mơ hình truyền thẳng nên ta có thể sử dụng mơ hình
truyền thẳng để tiến hành nhận dạng.
2.1.4. Hoạt động mơ hình CNN
Mơ hình CNN được hình thành bằng cách kết nối các layer nêu trên lại với
nhau. Mơ hình bắt đầu với Convolutional Layer. ReLU Layer thường được cài
đặt ngay sau Convolutional Layerhoặc thậm chí kết hợp cả hai layer này thành
một layer. Các layer tiếp theo có thể là Convolutional hay Pooling tùy theo kiến
trúc mà ta muốn xây dựng. Cuối cùng sẽ là Fully-Connected Layer để tiến hành
phân lớp.

24


×