You are on page 1of 22

ĐẠI HỌC DUY TÂN

TRƯỜNG ĐẠI HỌC KHOA HỌC MÁY TÍNH


KHOA KHOA HỌC MÁY TÍNH
---------------------------

ĐỀ TÀI:
NHẬN DIỆN LỬA BẰNG YOLO

Giáo viên hướng dẫn: T.S Lê Thanh Long


• Nhóm sinh viên thực hiện : Phạm Đức Bình
Nguyễn Trường Thanh Lộc
Nguyễn Doãn Thành Long
Lớp : K25-TBM2

Đà Nẵng, tháng 8 năm 2022


MỤC LỤC

MỞ ĐẦU
1.Tính cấp thiết của đề tài.................................................................................................4
2. Mục tiêu nghiên cứu......................................................................................................5
3. Đối tượng và phạm vi nghiên cứu.................................................................................5
3.1. Đối tượng.................................................................................................................5
3.2. Phạm vi nghiên cứu................................................................................................5
4. Phương pháp nghiên cứu..............................................................................................5
4.1. Phương pháp lý thuyết...........................................................................................5
4.2. Phương pháp lý thuyết...........................................................................................5
5. Ý nghĩa của đề tài..........................................................................................................5
CHƯƠNG 1. TỔNG QUAN VỀ DEEP LEARNING VÀ BÀI TOÁN NHẬN DIỆN
HÀNH ĐỘNG TRONG THỊ GIÁC MÁY TÍNH........................................................6
1.1. Tổng quan về Deep Learning.....................................................................................6
1.1.1. Deep Learning là gì?............................................................................................6
1.1.2. Mạng nơron nhân tạo..........................................................................................7
1.1.3. Một số ứng dụng của Deep Learning.................................................................7
1.2. Bài toán nhận diện hành động trong thị giác máy tính............................................7
1.2.1. Tổng quan thị giác máy tính...............................................................................7
1.2.2. Thế nào là thị giác máy tính................................................................................7
1.2.3. Nhận diện hành động của con người..................................................................8
CHƯƠNG 2. ỨNG DỤNG DEEP LEARNING TRONG NHẬN DIỆN HÀNH ĐỘNG
CON NGƯỜI..................................................................................................................9
2.1. Giới thiệu Recurrent Neural Network......................................................................9
2.1.1. Tổng quan.............................................................................................................9
2.1.2. Ý tưởng căn bản...................................................................................................9
2.1.3. Hạn chế của RNN...............................................................................................10
2.2. Mô hình LSTM và Mediapipe pose.........................................................................11
2.2.1. Mô hình LSTM..................................................................................................11
2.2.2. Ý tưởng cốt lõi của LSTM.................................................................................12

Trang | 2
2.2.3. Bên trong LSTM................................................................................................13
2.2.4. LSTM chống vanishing gradient......................................................................15
2.2.5. Một số phép tích chập thường sử dụng trong xử lý ảnh.................................16
CHƯƠNG 3. XÂY DỰNG VÀ TRIỂN KHAI CHƯƠNG TRÌNH..........................17
3.1. Bài toán nhận dạng...................................................................................................17
3.2. Mô hình tổng quan....................................................................................................17
3.3. Chuẩn bị dữ liệu........................................................................................................17
3.4. Xây dựng chương trình thử nghiệm........................................................................18
3.4.1. Khởi tạo mô hình khung xương trên ảnh.............................................................18
3.4.2. Nhận diện pose, ghi nhận số khung, vẽ khung xương lên ảnh........................18
3.4.3. Tạo label và lưu vào file csv..............................................................................19
3.4.4. Khởi tạo model...................................................................................................19
3.4.5. Train model và lưu vào weight thành file .h5..................................................19
3.4.6. Thực hiện và kiểm chứng..................................................................................20
3.5. Kết quả thử nghiệm..................................................................................................20
KẾT LUẬN
TÀI LIỆU THAM KHẢO...........................................................................................21

Trang | 3
MỞ ĐẦU
1.Tính cấp thiết của đề tài
Ngày nay, dữ liệu video dễ dàng đươc tạo ra bởi các thiết bi ̣như: điện thoại di động, máy
tính xách tay, máy ảnh kỹ thuật số, các hệ thống camera quan sát (CCTV)…bên canh đó các
trang web chia sẻ video cũng không ngừng tăng trưởng về số lượng lẫn chất lượng.

Bài toán nhận diện hành động của con người trong video đóng góp một phần tự độ ng hóa
khai thác tài nguyên dữ liệu nhiều thông tin này. Các ứng dụng liên quan đến bài toán nhận
diện hành động như:

- An ninh và các hệ thống giám sát truyền thống gồm mang lưới các camera và đươc giám
sát bởi con người.

- Tương tác giữa người và máy vẫn còn nhiều thách thức, những dấu hiệu thi ̣giác là
phương thức quan trong nhất giao tiếp phi ngôn ngữ.

Khai thác hiệu quả phương thức giao tiếp này: Thông qua cử chỉ, hành động, hoat động
hứa hẹn tạo ra thế hệ máy tính tương tác chính xác và tư nhiên hơn với con người.

Bên cạnh đó nhận diện hành động của con người trong video còn đươc ̣ ứng dụng trong
tóm tắt, truy vấn video, phân tích thể thao.

Deep Learning là một chủ đề Trí truệ nhân tạo, tập trung giải quyết các vấn đề liên quan
đến mạng nơron nhân tạo nhằm nâng cấp các công nghệ như nhận diện giọng nói, thị giác
máy tính và xử lý ngôn ngữ tự nhiên…

Đã có nhiều nghiên cứu về bài toán nhận diện hành động của con người trong video như:
nhóm tác giả Karpathy, Toderici, Shetty, Leung, Sukthankar & Fei-Fei sử dụng CNNs để
phân loại Video theo hành động của con người, hoặc nhóm tác giả Ji, Xu, Yang, & Yu sử 3D
CNN để nhận diện hành động con người. Vì lý do đó, luận văn này nghiên cứu ứng dụng
Deep Learning vào bài toán nhận diện hành động của con người trong video, đồng thời đề
xuất cải tiến các tham số đầu vào của thuật toán để tăng hiệu quả nhận diện so với các thuật
toán hiện tại.

Nội dung luận văn gồm 3 chương: Chương 1 giới thiệu tổng quan về deep learning và bài
toán nhận diện hành động trong thị giác máy tính. Chương 2 giới thiệu ứng dụng deep
learning trong nhận diện hành động con người, bao gồm tổng quan, thuật toán CNN và các
giải thuật Optimazation trong Deep Learning. Khái quát về mạng nơron trong xử lý ảnh và
nêu kiến trúc mạng CNN được xem xét trong nghiên cứu. Chương 3 xây dựng và triển khai
chương trình. Bao gồm mô tả về dư liệu và giải thuật được nghiên cứu. Cách thưc nghiệm
cho các mô hình, sau đó đánh giá độ chính xác của các giải thuật

2. Mục tiêu nghiên cứu


Mục tiêu chính của đề tài này là sử dụng kỹ thuật Deep learning để xây dựng chương trình
nhận diện hành động con người
Trang | 4
3. Đối tượng và phạm vi nghiên cứu
3.1. Đối tượng
- Các hành động có trong video.
- Các phương pháp, giải thuật về nhận dạng.
- Kỹ thuật Deep Learning

3.2. Phạm vi nghiên cứu


- Nghiên cứu kỹ thuật xử lý ảnh
- Mediapipe pose và LSTM model
4. Phương pháp nghiên cứu
4.1. Phương pháp lý thuyết
- Các tài liệu về cơ sở lý thuyết: xử lý ảnh số, lọc trích ảnh số, nhận diện cơ thể người
- Nghiên cứu mạng Nơ ron nhận cơ thể người qua các nút.
- Phương pháp Deep Learning
- Các tài liệu liên quan tới lập trình
4.2. Phương pháp lý thuyết
- Xây dựng chương trình thử nghiệm.
- Kiểm thử tính hiệu quả của chương trình với các nội dung khác nhau.
5. Ý nghĩa của đề tài
Về khoa học: Đề tài sẽ mang ý nghĩa cung cấp về mặt lý thuyết để làm rõ các phương
pháp và kỹ thuật nhận dạng hành động của con người.
Về thực tiễn: Góp phần hỗ trợ cho nhiều lĩnh vực khác nhau như giám sát, thể dục, thể
thao.

Trang | 5
CHƯƠNG 1. TỔNG QUAN VỀ DEEP LEARNING
VÀ BÀI TOÁN NHẬN DIỆN HÀNH ĐỘNG
TRONG THỊ GIÁC MÁY TÍNH

1.1. Tổng quan về Deep Learning


1.1.1. Deep Learning là gì?
Deep Learning là một chủ đề Trí truệ nhân tạo (AI) và là một phạm trù nhỏ
của máy học. Deep Learning tập trung giải quyết các vấn đề liên quan đến mạng
nơron nhân tạo nhằm nâng cấp các công nghệ như nhận diện giọng nói, thị giác máy
tính và xử lý ngôn ngư tư nhiên.
Deep Learning đang trở thành một trong nhưng lĩnh vưc quan trọng trong
khoa học máy tính. Chỉ trong vài năm, Deep Learning đã thúc đẩy tiến bộ trong đa
dạng các lĩnh vưc như nhận thức sư vật (object perception), dịch tư động (machine
translation), nhận diện giọng nói - đó là nhưng vấn đề từng rất khó khăn với các
nhà nghiên cứu trí tuệ nhân tạo.
1.1.2. Mạng nơron nhân tạo
Trong công nghệ thông tin, mạng nơron nhân tạo là một hệ thống các chương
trình và cấu trúc dư liệu mô phỏng cách vận hành của não người. Một mạng nơron
như vậy thường bao gồm một lượng lớn các vi xử lý hoạt động song song, mỗi vi
xử lý chứa đưng một vùng kiến thức riêng và có thể truy cập vào các dư liệu trong
bộ nhớ riêng của mình.
Trong mạng nơron nhân tạo, các nơron chính là các node (node là đơn vị
nơron trong mạng nơron nhân tạo – mỗi chiếc máy tính trong mạng nơron có thể
được xem như 1 node) được kết nối với nhau trong một mạng lưới lớn. Bản thân
từng node này chỉ trả lời được nhưng câu hỏi hết sức cơ bản chứ không hề thông
minh, nhưng khi được gộp chung với nhau thì chúng lại có sức mạnh xử lý được cả
nhưng tác vụ khó. Và điều quan trọng ở đây là bằng nhưng thuật toán phù hợp,
chúng ta có thể dạy và huấn luyện được chúng

Trang | 6
1.1.3. Một số ứng dụng của Deep Learning
- Hệ thống gợi ý trên các nền tảng
- Nhận diện hình ảnh
- Xử lý ngôn ngư tư nhiên
1.2. Bài toán nhận diện hành động trong thị giác máy tính
1.2.1. Tổng quan thị giác máy tính
Thị giác máy tính (Computer Vision) là một lĩnh vưc đã và đang rất phát
triển. Khái niệm thị giác máy tính có liên quan tới nhiều ngành học và hướng
nghiên cứu khác nhau. Từ nhưng năm 1970 khi mà năng lưc tính toán của máy tính
ngày càng trở nên mạnh mẽ hơn, các máy tính lúc này có thể xử lý được nhưng tập
dư liệu lớn như các hình ảnh, các đoạn phim thì khái niệm và kỹ thuật về thị giác
máy tính ngày càng được nhắc đến và nghiên cứu nhiều hơn cho tới ngày nay. Hiện
tại lĩnh vưc được các chuyên gia đánh giá là vẫn còn “non nớt” và có rất nhiều sư
thay đổi trong thời gian tới.
1.2.2. Thế nào là thị giác máy tính
Thị giác máy tính bao gồm lý thuyết và các kỹ thuật liên quan nhằm mục
đích tạo ra một hệ thống nhân tạo có thể tiếp nhận thông tin từ các hình ảnh thu
được hoặc các tập dư liệu đa chiều. Đối với mỗi con người chúng ta, quá trình nhận
thức thế giới bên ngoài là một điều dễ dàng. Quá trình nhận thức đó được “học”
thông qua quá trình sống của mỗi người. Tuy nhiên với các vật vô tri vô giác như
như các máy tính, robot… thì điều đó quả thưc là một bước tiến rất gian nan. Các
thiết bị ngày nay không chỉ nhận thông tin ở dạng tín hiệu đơn lẻ mà nay còn có thể
có cái “nhìn” thật với thế giới bên ngoài. Cái “nhìn” này qua quá trình phân tích, kết
hợp với các mô hình như máy học, mạng nơron… sẽ giúp cho thiết bị tiến dần tới
một hệ thống nhân tạo có khả năng ra quyết định linh hoạt và đúng đắn hơn rất
nhiều.
Một vài lĩnh vưc mà Computer Vision được ứng dụng có thể kể tới như sau:
- Điều khiển tiến trình (ví dụ: trong các robot công nghiệp, hay các thiết
bị, xe tư hành)
- Phát hiện sư thay đổi (ví dụ: các thiết bị giám sát)
- Tổ chức thông tin (ví dụ: chỉ số kho dư liệu các ảnh hoặc chuỗi ảnh
liên tục)
- Mô hình hoá đối tượng (ví dụ: quá trình kiểm tra trong môi trường
công nghiệp, xử lý ảnh trong y học)
- Tương tác (đóng vai trò làm đầu vào cho thiết bị trong quá trình tương
tác giưa người và máy)
1.2.3. Nhận diện hành động của con người
Nhận diện hành động của con người là một lĩnh vưc nghiên cứu rộng rãi
trong thị giác máy tính. Các ứng dụng của nó bao gồm các hệ thống giám sát, phân
tích video, robot và một loạt các hệ thống có liên quan đến sư tương tác giưa người
và các thiết bị điện tử như giao diện người-máy tính.

Trang | 7
Nhận diện hành động của con người được phát triển bắt đầu vào đầu năm
1980. Hiện nay, các nghiên cứu chủ yếu tập trung vào việc học và nhận biết các
hành động từ chuỗi video.
Một hành động là một chuỗi các chuyển động cơ thể con người, và có thể
bao gồm nhiều bộ phận cơ thể đồng thời. Từ quan điểm của thị giác máy tính, việc
nhận dạng hành động này là để phù hợp với các quan sát với các mẫu
được xác định trước đó và sau đó gán cho nó một nhãn là loại hành động. Tùy thuộc
vào độ phức tạp, hoạt động của con người có thể được phân loại thành bốn cấp độ:
cử chỉ, hành động, tương tác và hoạt động của nhóm, và nhiều nghiên cứu theo
hướng một cấu trúc từ dưới lên về nhận dạng hoạt động của con người. Các phần
chính của hệ thống như vậy bao gồm trích xuất đặc trưng, học tập hành động, phân
loại, nhận dạng hành động và phân đoạn. Một quy trình đơn giản gồm ba bước,
cụ thể là phát hiện của con người hoặc các bộ phận cơ thể, theo dõi, và sau đó nhận
bằng cách sử dụng kết quả theo dõi. Ví dụ, để nhận ra hành động “bắt tay”, cánh tay
và bàn tay của hai người được phát hiện trước tiên và theo dõi để tạo ra một mô tả
không gian-thời gian của chuyển động của họ. Mô tả này được so sánh với các mẫu
hiện có trong dư liệu huấn luyện để xác định loại hành động. Mô hình này dưa rất
nhiều vào tính chính xác của việc theo dõi, điều này không đáng tin cậy trong
nhưng cảnh lộn xộn.

CHƯƠNG 2. ỨNG DỤNG DEEP LEARNING


TRONG NHẬN DIỆN HÀNH ĐỘNG CON NGƯỜI

Trang | 8
2.1. Giới thiệu Recurrent Neural Network
2.1.1. Tổng quan
Ý tưởng chính của RNN (Recurrent Neural Network) là sử dụng chuỗi các thông tin.
Trong các mạng nơ-ron truyền thống tất cả các đầu vào và cả đầu ra là độc lập với nhau. Tức
là chúng không liên kết thành chuỗi với nhau. Nhưng các mô hình này không phù hợp trong
rất nhiều bài toán. Ví dụ, nếu muốn đoán từ tiếp theo có thể xuất hiện trong một câu thì ta
cũng cần biết các từ trước đó xuất hiện lần lượt thế nào chứ nhỉ? RNN được gọi là hồi quy
(Recurrent) bởi lẽ chúng thực hiện cùng một tác vụ cho tất cả các phần tử của một chuỗi với
đầu ra phụ thuộc vào cả các phép tính trước đó. Nói cách khác, RNN có khả năng nhớ các
thông tin được tính toán trước đó. Trên lý thuyết, RNN có thể sử dụng được thông tin của
một văn bản rất dài, tuy nhiên thực tế thì nó chỉ có thể nhớ được một vài bước trước đó (ta
cùng bàn cụ thể vấn đề này sau) mà thôi. Về cơ bản một mạng RNN có dạng như sau:
2.1.2. Ý tưởng căn bản
Một cách nôm na, đối với mạng neural thông thường, chúng ta cho tất cả dữ liệu vào
cùng một lúc. Nhưng đôi khi, dữ liệu của chúng ta mang ý nghĩa trình tự, tức nếu thay đổi
trình tự dữ liệu, kết quả sẽ khác.
Dễ thấy rõ nhất ở dữ liệu văn bản. Ví dụ, “Con ăn cơm chưa” và “Con chưa ăn cơm”,
nếu tách mỗi câu theo từ, ta được bộ vocab [ ‘con’, ‘ăn’, ‘cơm’, ‘chưa’], one hot encoding và
cho tất cả vào mạng neural , có thể thấy ngay, không có sự phân biệt nào giữa 2 câu trên.
Việc đảo thứ tự duyệt các từ làm sai lệch ý nghĩ của câu.
Nói cách khác, chúng ta cần một mạng neural có thể xử lí tuần tự.

Các x ở đây đại diện cho dữ liệu đầu vào lần lượt (được chia theo time step).

xt đại diện cho time step thứ t, và yt là output của một step. Ví dụ, x2 sẽ là vector đại
diện của từ thứ 2 trong câu văn bản.

Hình ảnh dưới đây cho thấy rõ hơn điều gì thực sự xảy ra trong một step.

Trang | 9
 Hidden state ht (trong một số tài liệu tường ký hiện st). Đây chính là bộ nhớ của
mạng. ht là tổng hợp thông tin của hidden state trước (ht−1) cộng với input tại time
step t (xt). Activation function ở đây chủ yếu là tanh hoặc ReLu.

ht=g1(Whh∗ht−1+Whx∗xt+bh)

 Output của từng time step yt : Tại 1 block của mạng RNN có 2 đầu ra. Trong
đó,  ht là tổng hợp thông tin của các state trước để tiếp tục truyền đi trong chuỗi
mạng, và ta có thêm  yt là output của từng time step một. Ở đây  g2 thường là hàm
softmax.
yt=g2(Wyh∗ht+by)

2.1.3. Hạn chế của RNN


Phải thực hiện tuần tự:
 Không tận dụng được khả năng tính toán song song của máy tính (GPU/TPU).
Vanishing gradient (Đạo hàm bị triệt tiêu):
 Vì hàm kích hoạt (tanh hay sigmoid) của ta sẽ cho kết quả đầu ra nằm trong
đoạn [-1, 1][−1,1] (với sigmoid là [0, 1][0,1]) nên đạo hàm của nó sẽ bị đóng
trong khoảng [0, 1][0,1] (với sigmoid là [0, 0.25][0,0.25]).
 Ở trên, chúng ta đã dùng chain rule để tính đạo hàm. Có một vấn đề ở đây là,
hàm tanh lẫn sigmoid đều có đạo hàm bằng 0 tại 2 đầu. Mà khi đạo hàm bằng 0
thì nút mạng tương ứng tại đó sẽ bị bão hòa. Lúc đó các nút phía trước cũng sẽ
bị bão hoà theo. Nên với các giá trị nhỏ trong ma trận, khi ta thực hiện phép
nhân ma trận sẽ đạo hàm tương ứng sẽ xảy ra Vanishing gradient, tức đạo hàm
bị triệt tiêu chỉ sau vài bước nhân. Như vậy, các bước ở xa sẽ không còn tác
dụng với nút hiện tại nữa, làm cho RNN không thể học được các phụ thuộc xa.
Vấn đề này không chỉ xảy ra với mạng RNN mà ngay cả mạng neural truyền
thống với nhiều lớp cũng có hiện tượng này.
 Với cách nhìn như trên, ngoài Vanishing gradient, ta còn gặp phải Exploding
Gradient (bùng nổ đạo hàm). Tùy thuộc vào hàm kích hoạt và tham số của
Trang | 10
mạng, vấn đề này xảy ra khi các giá trị của ma trận là lớn (lớn hơn 1). Tuy
nhiên, người ta thường nói về vấn đề Vanishing nhiều hơn là Exploding, vì 2 lý
do sau.
 Thứ nhất, bùng nổ đạo hàm có thể theo dõi được vì khi đạo hàm bị bùng nổ thì
ta sẽ thu được kết quả là một giá trị phi số NaN làm cho chương trình của ta bị
dừng hoạt động.

 Thứ hai, bùng nổ đạo hàm có thể ngăn chặn được khi ta đặt một ngưỡng giá trị
trên (tham khảo kỹ thuật Gradient Clipping). Còn rất khó để theo dõi sự mất
mát đạo hàm cũng như tìm cách xử lí nó.

Để xử lý Vanishing Gradient, có 2 cách phổ biến:

 Cách thứ nhất, thay vì sử dụng activation function là tanh và sigmoid, ta thay
bằng ReLu (hoặc các biến thể như Leaky ReLu). Đạo hàm của ReLu hoặc là 0
hoặc là 1, nên ta có thể kiểm soát phần nào vấn đề mất mát đạo hàm.

 Cách thứ hai, ta thấy RNN thuần không hề có thiết kế nào để lọc đi những
thông tin không cần thiết. Ta cần thiết kế một kiến trúc có thể nhớ dài hạn hơn,
đó là LSTM và GRU.
2.2. Mô hình LSTM và Mediapipe pose
2.2.1. Mô hình LSTM

Mạng bộ nhớ dài-ngắn (Long Short Term Memory networks), thường được gọi là LSTM
- là một dạng đặc biệt của RNN, nó có khả năng học được các phụ thuộc xa. LSTM được giới
thiệu bởi Hochreiter & Schmidhuber (1997), và sau đó đã được cải tiến và phổ biến bởi rất nhiều
người trong ngành. Chúng hoạt động cực kì hiệu quả trên nhiều bài toán khác nhau nên dần đã trở
nên phổ biến như hiện nay.

LSTM được thiết kế để tránh được vấn đề phụ thuộc xa (long-term dependency). Việc
nhớ thông tin trong suốt thời gian dài là đặc tính mặc định của chúng, chứ ta không cần phải huấn
luyện nó để có thể nhớ được. Tức là ngay nội tại của nó đã có thể ghi nhớ được mà không cần bất
kì can thiệp nào.

Mọi mạng hồi quy đều có dạng là một chuỗi các mô-đun lặp đi lặp lại của mạng nơ-ron.
Với mạng RNN chuẩn, các mô-dun này có cấu trúc rất đơn giản, thường là một tầng tanh.

Trang | 11
LSTM cũng có kiến trúc dạng chuỗi như vậy, nhưng các mô-đun trong nó có cấu trúc
khác với mạng RNN chuẩn. Thay vì chỉ có một tầng mạng nơ-ron, chúng có tới 4 tầng tương tác
với nhau một cách rất đặc biệt.

2.2.2. Ý tưởng cốt lõi của LSTM


Chìa khóa của LSTM là trạng thái tế bào (cell state) - chính đường chạy thông ngang
phía trên của sơ đồ hình vẽ.

Trạng thái tế bào là một dạng giống như băng truyền. Nó chạy xuyên suốt tất cả các
mắt xích (các nút mạng) và chỉ tương tác tuyến tính đôi chút. Vì vậy mà các thông tin có thể
dễ dàng truyền đi thông suốt mà không sợ bị thay đổi.

Trang | 12
LSTM có khả năng bỏ đi hoặc thêm vào các thông tin cần thiết cho trạng thái tế báo,
chúng được điều chỉnh cẩn thận bởi các nhóm được gọi là cổng (gate).

Các cổng là nơi sàng lọc thông tin đi qua nó, chúng được kết hợp bởi một tầng mạng
sigmoid và một phép nhân.

2.2.3. Bên trong LSTM

Bước đầu tiên của LSTM là quyết định xem thông tin nào cần bỏ đi từ trạng thái tế bào.
Quyết định này được đưa ra bởi tầng sigmoid - gọi là “tầng cổng quên” (forget gate layer). Nó sẽ
lấy đầu vào là ht−1 và xt rồi đưa ra kết quả là một số trong khoảng [0, 1][0,1] cho mỗi số trong
trạng thái tế bào Ct−1. Đẩu ra là 1 thể hiện rằng nó giữ toàn bộ thông tin lại, còn 0 chỉ rằng toàn
bộ thông tin sẽ bị bỏ đi.

Quay trở lại với ví dụ mô hình ngôn ngữ dự đoán từ tiếp theo dựa trên tất cả các từ trước
đó, với những bài toán như vậy, thì trạng thái tế bào có thể sẽ mang thông tin về giới tính của một
nhân vật nào đó giúp ta sử dụng được đại từ nhân xưng chuẩn xác. Tuy nhiên, khi đề cập tới một
người khác thì ta sẽ không muốn nhớ tới giới tính của nhân vật nữa, vì nó không còn tác dụng gì
với chủ thế mới này.

Trang | 13
Bước tiếp theo là quyết định xem thông tin mới nào ta sẽ lưu vào trạng thái tế bào. Việc
này gồm 2 phần. Đầu tiên là sử dụng một tầng sigmoid được gọi là “tầng cổng vào” (input gate
layer) để quyết định giá trị nào ta sẽ cập nhập. Tiếp theo là một tầng tanh tạo ra một véc-tơ cho
giá trị mới ~c t  nhằm thêm vào cho trạng thái. Trong bước tiếp theo, ta sẽ kết hợp 2 giá trị đó lại để
tạo ra một cập nhập cho trạng thái.

Chẳng hạn với ví dụ mô hình ngôn ngữ của ta, ta sẽ muốn thêm giới tính của nhân vật
mới này vào trạng thái tế bào và thay thế giới tính của nhân vật trước đó.

Giờ là lúc cập nhập trạng thái tế bào cũ c t −1  thành trạng thái mới C t Ở các bước trước đó
đã quyết định những việc cần làm, nên giờ ta chỉ cần thực hiện là xong.

Ta sẽ nhân trạng thái cũ với ft để bỏ đi những thông tin ta quyết định quên lúc trước. Sau
đó cộng thêm it ~c t Trạng thái mơi thu được này phụ thuộc vào việc ta quyết định cập nhập mỗi
¿

giá trị trạng thái ra sao.

Với bài toàn mô hình ngôn ngữ, chính là việc ta bỏ đi thông tin về giới tính của nhân vật
cũ, và thêm thông tin về giới tính của nhân vật mới như ta đã quyết định ở các bước trước đó.

Trang | 14
Cuối cùng, ta cần quyết định xem ta muốn đầu ra là gì. Giá trị đầu ra sẽ dựa vào trạng thái
tế bào, nhưng sẽ được tiếp tục sàng lọc. Đầu tiên, ta chạy một tầng sigmoid để quyết định phần
nào của trạng thái tế bào ta muốn xuất ra. Sau đó, ta đưa nó trạng thái tế bảo qua một hàm tanh để
cho giá trị nó về khoảng [-1, 1][−1,1], và nhân nó với đầu ra của cổng sigmoid để được giá trị
đầu ra ta mong muốn.

Với ví dụ về mô hình ngôn ngữ, chỉ cần xem chủ thể mà ta có thể đưa ra thông tin về một
trạng từ đi sau đó. Ví dụ, nếu đầu ra của chủ thể là số ít hoặc số nhiều thì ta có thể biết được dạng
của trạng từ đi theo sau nó phải như thế nào.

2.2.4. LSTM chống vanishing gradient

Ta cũng áp dụng thuật toán back propagation through time cho LSTM tương tự như
RNN.

Trang | 15
∂ δt + 1
Thành phần chính gây là vanishing gradient trong RNN là  . =( t s2t )∗W, trong
∂ st
đó st,W<1.

Tương tự trong LSTM ta quan tâm đến \displaystyle \frac{\partial c_t}{\partial c_{t-


1}} =f_t∂ct−1∂ct=ft. Do 0 < f_t < 10<ft<1 nên về cơ bản thì LSTM vẫn bị vanishing gradient
nhưng bị ít hơn so với RNN. Hơn thế nữa, khi mang thông tin trên cell state thì ít khi cần
phải quên giá trị cell cũ, nên f_t \approx 1ft≈1 => Tránh được vanishing gradient.

Do đó LSTM được dùng phổ biến hơn RNN cho các toán thông tin dạng chuỗi.
2.2.5. Một số phép tích chập thường sử dụng trong xử lý ảnh
Ước tính tư thế con người từ video đóng một vai trò quan trọng trong các ứng dụng
khác nhau như định lượng các bài tập thể chất , nhận dạng ngôn ngữ ký hiệu và điều khiển
cử chỉ toàn thân. Ví dụ, nó có thể tạo nền tảng cho các ứng dụng yoga, khiêu vũ và thể dục.
Nó cũng có thể cho phép phủ thông tin và nội dung kỹ thuật số lên trên thế giới vật lý trong
thực tế tăng cường.

MediaPipe Pose là một giải pháp ML để theo dõi tư thế cơ thể có độ trung thực cao,
suy ra 33 điểm mốc 3D và mặt nạ phân đoạn nền trên toàn bộ cơ thể từ các khung video
RGB sử dụng nghiên cứu BlazePose của chúng tôi cũng hỗ trợ API phát hiện tư thế ML Kit .
Các phương pháp tiếp cận hiện đại nhất chủ yếu dựa vào môi trường máy tính để bàn mạnh
mẽ để suy luận, trong khi phương pháp của chúng tôi đạt được hiệu suất thời gian thực trên
hầu hết các điện thoại di động , máy tính để bàn / máy tính xách tay hiện đại , trong python
và thậm chí trên web .

Mô hình điểm mốc trong MediaPipe Pose dự đoán vị trí của 33 cột mốc tư thế (xem
hình bên dưới).

Trang | 16
CHƯƠNG 3. XÂY DỰNG VÀ TRIỂN KHAI CHƯƠNG
TRÌNH

3.1. Bài toán nhận dạng


Nhiệm vụ chính của chương trình là nhận dạng hoạt động của con người trong video
xem người đó đang làm gì. Và đặc biệt hơn là nhận diện trực tiếp từ wedcam hoặc trên
camera giám sát.

Các chức năng của chương trình bao gồm:

 Lấy một hành động từ kết nối webcam hiển thị lên
 Thực hiện nhận diện hoạt động của cơ thể người
 Thực hiện lưu hành động vào CSDL
 Nhận dạng hành động qua webcam, hiển thị tên hành động đó lên màn hình

Trang | 17
3.2. Mô hình tổng quan

3.3. Chuẩn bị dữ liệu


Đối với ứng dụng này, chúng ta chỉ cần huấn luyện mạng LSTM để phân loại các hành
động, còn phần Pose Estimation thì chúng ta sẽ sử dụng pre-trained có sẵn cung cấp bởi
Detectron2. Đọc ảnh trực tiếp từ wedcam laptop và các framework huấn luyên được lưu dưới
dạng .txt

Trang | 18
3.4. Xây dựng chương trình thử nghiệm
3.4.1. Khởi tạo mô hình khung xương trên ảnh

3.4.2. Nhận diện pose, ghi nhận số khung, vẽ khung xương lên ảnh

3.4.3. Tạo label và lưu vào file csv

Trang | 19
3.4.4. Khởi tạo model

3.4.5. Train model và lưu vào weight thành file .h5

 Kết quả sau khi training:

3.4.6. Thực hiện và kiểm chứng

Trang | 20
3.5. Kết quả thử nghiệm
Vì không có thời gian và không gian để thực hiện việc chuẩn bị dữ liệu nên kết quả
chúng tôi đưa ra chỉ có cử động tay và cử động cơ thể nhưng kết quả đưa ra vẫn có độ chính
xác cao:

KẾT LUẬN

Kết luận

Qua dự án này, tác giả đã tìm hiểu và nắm được những kiến thức của mạng neural
nhân tạo. Sử dụng mô hình LSTM trong công việc xây dựng nhận dạng hành động của con
người.

Những vấn đề còn tồn tại

Tuy đã hoàn thành về nội dung và chương trình nhận dạng nhưng vẫn còn một số hạn
chế cần được khắc phục như:

Chương trình đang ở mức thử nghiệm, chưa áp dụng vào thực tế.

Trang | 21
Với những thay đổi nhỏ trong hành động hoặc những hành động gần giống nhau thì
kết quả vẫn chưa được như mong muốn

Tốn nhiều thời gian cho việc chuẩn bị dữ liệu

Hướng phát triển

Xây dựng chương trình giám sát trong việc thi cử (quay cóp hoặc sự dụng tài liệu)
hoặc nhận biết sự té ngã của người già thông qua camera

TÀI LIỆU THAM KHẢO

https://miai.vn/2022/02/14/nhan-dien-hanh-vi-con-nguoi-bang-
mediapipe-pose-va-lstm-model-mi-ai/

Trang | 22

You might also like