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

báo cáo bài tập lớn thị giác máy tính đề tài nhận diện ngôn ngữ ký hiệu

23 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Nội dung

Giải phápQua quá trình học hỏi và tìm hiểu thì chúng em có đề xuất một số mô hình choviệc nhận diện ngôn ngữ ký hiệu:3DCNN Convolutional Neural Networks 3D:Mô tả: 3DCNN là một biến thể c

Trang 1

TRƯỜNG ĐẠI HỌC PHENIKAAKHOA CÔNG NGHỆ THÔNG TIN

- -BÁO CÁO BÀI TẬP LỚNHỌC PHẦN: THỊ GIÁC MÁY TÍNHĐỀ TÀI: “NHẬN DIỆN NGÔN NGỮ KÝ HIỆU”

NHÓM 1

Giảng viên hướng dẫn: TS Nguyễn Văn Tới Sinh viên : Nguyễn Văn Hưng

Trần Trọng Đài Trần Dương

Hà Nội, ngày 20 tháng 03 năm 2024

Trang 2

3 Các mô hình thuật toán 14

CHƯƠNG IV: KẾT QUẢ 19

Trang 3

BẢNG PHÂN CÔNG NHIỆM VỤ LÀM VIỆC Mã sinh

Trang 4

CHƯƠNG I: TỔNG QUAN1 Đặt vấn đề

Trong thế giới hiện đại, việc giao tiếp và truyền đạt thông tin là một phần khôngthể thiếu của cuộc sống hàng ngày Tuy nhiên, đối với những người khiếmthính, việc giao tiếp qua ngôn ngữ bản ngữ có thể gặp nhiều khó khăn Ngônngữ ký hiệu đã trở thành một phương tiện quan trọng để họ truyền đạt ý nghĩa,cả trong giao tiếp hàng ngày và trong môi trường giáo dục và làm việc.Ngôn ngữ ký hiệu không chỉ là một hệ thống biểu đạt, mà còn là cầu nối giữangười khiếm thính và thế giới xung quanh Nhưng việc giao tiếp giữa ngườikhiếm thính và người không khiếm thính thực sự là một thách thức, đặc biệt làkhi sự hiểu biết về ngôn ngữ ký hiệu và các phương tiện giao tiếp thích hợpkhông phổ biến Vì vậy, chúng em muốn tập trung vào việc phát triển các giảipháp công nghệ như hệ thống nhận diện ngôn ngữ ký hiệu.

Qua việc phát triển và áp dụng các công nghệ mới này, chúng em mong muốntạo ra những cơ hội giao tiếp mới cho người khiếm thính và giúp họ tham giavào các hoạt động xã hội và công việc một cách tự tin và linh hoạt hơn Đồngthời, chúng em cũng muốn góp phần xây dựng một cộng đồng thông cảm và hỗtrợ, nơi mọi người đều được đón nhận và tôn trọng, không phân biệt khuyết tật.

2 Giải pháp

Qua quá trình học hỏi và tìm hiểu thì chúng em có đề xuất một số mô hình choviệc nhận diện ngôn ngữ ký hiệu:

3DCNN (Convolutional Neural Networks 3D):

Mô tả: 3DCNN là một biến thể của mô hình CNN, được thiết kế để xử lý dữliệu không gian và thời gian trong các tập dữ liệu video hoặc chuỗi hình ảnh.Thay vì chỉ sử dụng các bộ lọc 2D, 3DCNN sử dụng các bộ lọc 3D để xác địnhcác đặc trưng không gian và thời gian của dữ liệu.

Ưu điểm: 3DCNN có khả năng học các đặc trưng không gian và thời gian từ dữliệu video một cách hiệu quả, giúp cải thiện khả năng nhận diện trong các chuỗi

Trang 5

hình ảnh động như ngôn ngữ ký hiệu.

Hạn chế: 3DCNN có thể đòi hỏi lượng dữ liệu lớn và tài nguyên tính toán cao,đặc biệt là khi xử lý các video dài.

ConvLSTM (Convolutional Long Short-Term Memory Networks):

Mô tả: ConvLSTM là một biến thể của mô hình LSTM, được kết hợp với cấutrúc convolutional để xử lý dữ liệu không gian và thời gian Nó giúp mô hìnhhọc được các mẫu không gian và thời gian từ dữ liệu chuỗi một cách hiệu quả.Ưu điểm: ConvLSTM giúp mô hình nhớ và xử lý thông tin từ quá khứ trong quátrình dự đoán, phù hợp với việc nhận diện ngôn ngữ ký hiệu trong các videohoặc chuỗi hình ảnh động.

Hạn chế: ConvLSTM có thể đòi hỏi chi phí tính toán cao, đặc biệt là khi xử lýcác chuỗi dữ liệu lớn và phức tạp.

Mô tả: Mô hình 2DPlus1D là một phương pháp phổ biến trong lĩnh vực xử lývideo, kết hợp cả cấu trúc CNN 2D và cấu trúc Convolutional 3D để xử lý cảthông tin không gian và thời gian Cụ thể, 2DPlus1D sử dụng hai luồng dữ liệu:một luồng xử lý thông tin không gian (2D CNN) và một luồng xử lý thông tinthời gian (1D Convolution).

Ưu điểm: Sự kết hợp của cả 2D CNN và 1D Convolution giúp mô hình2DPlus1D có khả năng học được cả các đặc trưng không gian và thời gian từ dữliệu video một cách hiệu quả Đồng thời, việc tách riêng hai luồng dữ liệu cũnggiúp tăng cường khả năng hiểu biết và tinh tế trong quá trình nhận diện.Hạn chế: Mô hình 2DPlus1D có thể đòi hỏi nhiều tài nguyên tính toán hơn sovới một số phương pháp khác, đặc biệt là khi xử lý các video có độ phức tạpcao.

3 Phạm vi đề tài

Nghiên cứu về ngôn ngữ ký hiệu: Trong đề tài này chúng em được tìm hiểu vềngôn ngữ ký hiệu, bao gồm các biểu hiện cử chỉ, hành động Cụ thể là 21 từ ngữký hiệu khác nhau

5

Trang 6

Nghiên cứu về công nghệ: Trong đề tài này chúng em tìm hiểu các công nghệvà các mô hình học sâu như CNN, LSTM và các biến thể của nó như 3DCNN,2D+1D, ConvLSTM, cũng như cách áp dụng nó vào nhạn diện, phân loại videoXây dựng mô hình nhận diện: Trong đề tài này chúng em đã ứng dụng và thửnghiệm 3 mô hình học sâu 3DCNN, 2D+1D, ConvLSTM để nhận diện ngônngữ ký hiệu từ dữ liệu đã được thu.

So sánh và đánh giá: So sánh hiệu suất của các mô hình khác nhau và đánh giátính khả thi và hiệu quả của từng phương pháp Điều này giúp xác định các môhình có hiệu quả nhất trong việc nhận diện ngôn ngữ ký hiệu.

Hạn chế và hướng phát triển: Đánh giá các hạn chế của các phương pháp hiệntại và đề xuất các hướng phát triển tiếp theo để cải thiện hiệu suất và ứng dụngthực tế của nhận diện ngôn ngữ ký hiệu.

Trang 7

CHƯƠNG II: CƠ SỞ LÝ THUYẾT1 3D-CNN

Mạng neural tích chập 3D-CNN là một mạng tích chập CNN sử dụng phép tíchchập khối (ma trận 3 chiều, thêm trục thời gian), thường được sử dụng trong cácbài toán nhận dạng (hành động, phân lớp) trong các video Chuyển động trongcác video được hiểu là bao 9 gồm tập các hình ảnh được biểu diễn trong mộttrục thời gian nhất định, do đó phát sinh thêm trục thời gian (chiều thời gian).Phép tích chập 3D-CNN

Kích thước kernel trong 3D theo thời gian là 3, các bộ kết nối cùng màu có cùngtrọng số chia sẽ (shared weights) Trong tích chập 3D, các kernel giốn nhaucùng được áp dung khối 3D chồng lền nhau trong video đầu vào để trích xuấtcác tính năng chuyển động Trong phép tích chập 3D kernel chỉ có thể trích xuấtmột trong các đặc trưng của khung hình khối lập phương đó, các trọng số kernelđược tính toán trong hình khối lập phương Nguyên tắc chung trong mô hìnhCNNs là số các feature map được tăng lên ở các lớp sau bằng cách sinh ra từnhiều đặc trưng từ một tập các feature map lớp trước đó Tương tự trường hợptích chập 2D, 3D cũng thực hiện nhiều phép tích chập với các kernel khác nhauđến từ cùng một vị trí lớp trước đó.

7

Trang 8

Đầu vào (Input):

Dữ liệu đầu vào là các video chứa các cử chỉ và biểu hiện của ngôn ngữ ký hiệu.Mỗi video được biểu diễn dưới dạng một chuỗi các khung hình (frames), trongđó mỗi khung hình thể hiện trạng thái của ngôn ngữ ký hiệu tại một thời điểmnhất định.

Pooling Layers:

Sau mỗi lớp convolutional, các lớp pooling 3D (ví dụ: max pooling) thườngđược sử dụng để giảm kích thước của các feature maps và tạo ra một biểu diễnsâu hơn và thu gọn của dữ liệu.

Fully Connected Layers:

Sau khi trích xuất các đặc trưng từ dữ liệu video thông qua các lớpconvolutional và pooling, các đặc trưng này sẽ được làm phẳng và đưa vào cáclớp fully connected để phân loại các ngôn ngữ ký hiệu.

Các lớp fully connected thường kết thúc bằng một lớp softmax để dự đoán xácsuất của mỗi lớp ngôn ngữ ký hiệu.

Trang 9

Dropout Layers:

Để tránh tình trạng overfitting, các lớp dropout có thể được thêm vào giữa cáclớp fully connected để ngẫu nhiên loại bỏ một số nơ-ron trong quá trình huấnluyện.

2 ConvLSTM

ConvLSTM là một loại mạng nơ-ron kết hợp giữa Mạng Nơ-ron Tích chập(CNN) và mô hình Long Short-Term Memory (LSTM) CNN thường được sửdụng cho các nhiệm vụ xử lý hình ảnh, trong đó chúng xác định và trích xuấtđặc trưng từ các hình ảnh Mô hình LSTM, ngược lại, được sử dụng cho phântích chuỗi thời gian, trong đó chúng sử dụng các ô nhớ để lưu trữ thông tin quathời gian ConvLSTM được thiết kế để kết hợp hai mô hình này để xử lý dữ liệukhông gian thời gian có sự phụ thuộc cả về không gian và thời gian.

ConvLSTM được giới thiệu lần đầu tiên bởi Xingjian Shi và các cộng sự trongmột bài báo năm 2015 có tựa đề "Convolutional LSTM Network: A MachineLearning Approach for Precipitation Nowcasting." Bài báo đề xuất sử dụng môhình ConvLSTM để dự báo lượng mưa sử dụng hình ảnh radar, đã chứng minh

9

Trang 10

rằng mô hình này vượt trội hơn so với các mô hình LSTM truyền thống về độchính xác và xử lý dữ liệu không gian thời gian.

Cách ConvLSTM Hoạt Động

Kiến trúc ConvLSTM hoạt động bằng cách duy trì thông tin không gian của đầuvào đồng thời học các phụ thuộc thời gian Thông thường, CNN mất thông tinkhông gian khi chúng xử lý các hình ảnh đầu vào do các lớp tích chập và lớpgộp Mô hình LSTM, ngược lại, cần duy trì thông tin thời gian, có nghĩa làchúng yêu cầu các chuỗi đầu vào phải được sắp xếp Mô hình ConvLSTM sửdụng sự kết hợp của các lớp tích chập và LSTM để duy trì cả thông tin khônggian và thời gian.

3 2Dplus1D-CNN

Đầu vào (Input):

Dữ liệu đầu vào là các video, mỗi video bao gồm một chuỗi các khung hình.Convolutional 2D Layers (2D CNN):

Các lớp Convolutional 2D được sử dụng để trích xuất các đặc trưng không giantừ từng khung hình của video.

Các bộ lọc tích chập được áp dụng lên từng khung hình để tạo ra các bản đồ đặctrưng.

Pooling 2D Layers (2D Pooling):

Trang 11

Các lớp Pooling 2D (ví dụ: Max Pooling hoặc Average Pooling) được sử dụngsau mỗi lớp Convolutional 2D để giảm kích thước của các bản đồ đặc trưngtheo không gian.

Quá trình này giúp giảm số lượng tham số và tính toán của mô hình, đồng thờigiữ lại thông tin quan trọng trong các bản đồ đặc trưng.

Pooling 1D Layers (1D Pooling):

Tương tự như Pooling 2D, các lớp Pooling 1D được sử dụng để giảm kíchthước của các bản đồ đặc trưng 1D.

Fully Connected Layers (FC):

Các đặc trưng thu được từ các lớp Convolutional được làm phẳng và đưa vàocác lớp Fully Connected để phân loại video.

Cuối cùng, một lớp Softmax được sử dụng để dự đoán xác suất của mỗi lớpphân loại.

Kiến trúc 2DPlus1D kết hợp cả thông tin không gian và thời gian từ dữ liệuvideo, giúp cải thiện hiệu suất của mô hình trong việc phân loại và hiểu biết vềsự biến đổi của video qua thời gian.

11

Trang 12

CHƯƠNG III: TRIỂN KHAI1 Thu thập dữ liệu

Đối với đề tài này thì chúng em đã được học các từ ngữ ký hiệu khác nhau, sauđó đối với mỗi từ thì sẽ có 10 đến 20 bạn thu hình tại cùng một địa điểm với cácthiết bị máy móc, ánh sang giống nhau Tổng tất cả có 21 từ ngữ ký hiệu, mỗi từký hiệu có trên 10 video.

2 Xử lý dữ liệu

Đối việc xử lý dữ liệu thì chúng em đã đọc và gán nhãn đúng cho từng videotrong, sau đó chia dữ liệu thành 3 tập train, validation, test với tỷ lệ 0.7, 0.15,0.15.

data = []labels = []

for i, class_name in enumerate(classes): class_dir = os.path.join(base_dir, class_name) for video_file in os.listdir(class_dir):

video_path = os.path.join(class_dir, video_file) data.append(video_path)

labels.append(class_name)

from sklearn.model_selection import train_test_split

train_data, temp_data, train_labels, temp_labels = train_test_split(data, labels, test_size=0.3, random_state=42)

valid_data, test_data, valid_labels, test_labels = train_test_split(temp_data, temp_labels, test_size=0.5, random_state=42)

Sau đó chúng em xây dựng hai hàm

Trang 13

Hàm preprocess_video (video_path, target_size=(64, 64)):

Mục đích: Hàm này được sử dụng để tiền xử lý video trước khi đưa vào môhình.

Đầu vào:

video_path: Đường dẫn đến video cần xử lý.

target_size: Kích thước mục tiêu của các khung hình sau khi được resize.Đầu ra: Một mảng các khung hình được xử lý.

Hàm preprocess_video đầu tiên mở video từ đường dẫn đã cho bằng OpenCV.Sau đó, nó thực hiện quá trình resize các khung hình trong video đó về kíchthước mục tiêu (truyền vào qua tham số target_size) Nếu video có ít hơn sốlượng khung hình mong muốn (num_frames), hàm sẽ lặp lại khung hình cuốicùng cho đến khi đủ số lượng khung hình Nếu video có nhiều hơn num_frames,hàm sẽ cắt bớt đi số lượng khung hình dư thừa.

13

Trang 14

Hàm video_data_generator(data, labels, batch_size, num_frames):

Mục đích: Hàm này được sử dụng để tạo dữ liệu đầu vào cho mô hình trong quátrình huấn luyện.

Đầu vào:

data: Danh sách các đường dẫn đến các video.labels: Nhãn tương ứng với mỗi video.batch_size: Kích thước của các batch dữ liệu.

num_frames: Số lượng khung hình mong muốn trong mỗi video.

Đầu ra: Một generator tạo ra các batch dữ liệu và nhãn tương ứng cho mỗibatch.

Hàm video_data_generator tạo một generator vô hạn bằng cách lặp lại quá trìnhsau: lựa chọn ngẫu nhiên một batch kích thước batch_size từ tập dữ liệu, tiền xửlý mỗi video trong batch bằng cách gọi hàm preprocess_video, chuyển đổi nhãnthành dạng số và one-hot encoding Cuối cùng, generator trả về một batch dữliệu và nhãn tương ứng.

3 Các mô hình thuật toán

3.1 3D-CNN

Mô hình mạng nơ-ron này là một mô hình Convolutional Neural Network 3D(Conv3D) được xây dựng bằng cách sử dụng Sequential API trong thư viện

Trang 15

Keras/TensorFlow Dưới đây là mô tả chi tiết về các layer và cấu trúc của môhình:

Conv3D Layer (64 filters, kernel size (3, 3, 3), activation 'relu'):Input Shape: (16, 64, 64, 3)

16: Số lượng khung hình trong mỗi video.

64x64: Kích thước của mỗi khung hình (đã được resize).3: Số kênh màu (RGB).

64 filters với kích thước kernel là (3, 3, 3) được áp dụng trên các khung hình đểtrích xuất các đặc trưng không gian và thời gian.

Activation function 'relu' được sử dụng để kích hoạt các đầu ra của layer.MaxPooling3D Layer (pool_size (2, 2, 2)):

Sử dụng để giảm kích thước của các feature maps thu được từ Conv3D layer,giúp giảm chi phí tính toán và làm tăng tính bất biến của mô hình đối với việcdịch chuyển không gian.

Pooling kích thước (2, 2, 2) được áp dụng trên các khối 3D để giảm kích thướccủa chúng.

Conv3D Layer (128 filters, kernel size (3, 3, 3), activation 'relu'):

Một Conv3D layer khác được thêm vào mô hình với 128 filters và kích thướckernel (3, 3, 3).

Activation function 'relu' được sử dụng.MaxPooling3D Layer (pool_size (2, 2, 2)):

Tương tự như layer MaxPooling3D trước đó, layer này cũng giảm kích thướccủa các feature maps bằng cách áp dụng pooling với kích thước (2, 2, 2).Flatten Layer:

15

Trang 16

Layer này được sử dụng để làm phẳng các feature maps thành một vector 1D,chuẩn bị cho việc đưa vào các lớp Fully Connected (Dense).

Dense Layer (256 units, activation 'relu'):

Một lớp Dense với 256 units được thêm vào để học các đặc trưng phức tạp từcác đặc trưng trích xuất từ Conv3D layers.

Activation function 'relu' được sử dụng.Dropout Layer (dropout rate 0.5):

Layer Dropout với tỷ lệ dropout là 0.5, giúp tránh hiện tượng overfitting bằngcách ngẫu nhiên loại bỏ một phần các nơ-ron trong quá trình huấn luyện.Dense Layer (num_classes units, activation 'softmax'):

Lớp Dense cuối cùng với số lượng units bằng số lượng lớp phân loại(num_classes), được kích hoạt bằng hàm softmax để dự đoán xác suất của mỗilớp.

Trang 17

Activation function 'tanh' được sử dụng.

recurrent_dropout=0.2: Dropout được áp dụng cho các trạng thái ẩn trong quátrình huấn luyện.

return_sequences=True: Trả về chuỗi các output thay vì chỉ output cuối cùng.MaxPooling3D Layer (pool_size=(1, 2, 2), padding='same'):

Pooling kích thước (1, 2, 2) được áp dụng trên các khối 3D để giảm kích thướccủa chúng.

padding='same' được sử dụng để duy trì kích thước của đầu ra.TimeDistributed Layer (Dropout (0.2)):

Dropout với tỷ lệ 0.2 được áp dụng lên các khung hình của mỗi video.ConvLSTM2D Layer (filters = 8, kernel_size = (3, 3), activation = 'tanh'):ConvLSTM2D tiếp theo với 8 filters và kích thước kernel là (3, 3).MaxPooling3D Layer và TimeDistributed Layer (Dropout):

Lặp lại quá trình tương tự cho các lớp ConvLSTM2D tiếp theo với số filterstăng dần (14 và 16).

Flatten Layer:

Layer này được sử dụng để làm phẳng các feature maps thành một vector 1D,chuẩn bị cho việc đưa vào lớp Dense.

Dense Layer (21 units, activation = 'softmax'):

Lớp Dense cuối cùng với 21 units, tương ứng với số lớp phân loại.

Activation function 'softmax' được sử dụng để dự đoán xác suất của mỗi lớp.3.3 2Dplus1D-CNN

17

Ngày đăng: 23/07/2024, 17:20

w