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ườimá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, ngoà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 (KNearest 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 đó
TÌM HIỂU VÀ PHÁT BIỂU BÀI TOÁN
Giới thiệu chung
1.1.1 Tổng quan về nhận dạng
Nhận dạng là quá trình ứng dụng công nghệ và kỹ thuật nhằm hỗ trợ máy tính trong việc xác định, gán nhãn và phân loại các yếu tố quan trọng có trong hình ảnh.
Con người có khả năng dễ dàng xử lý hình ảnh và phân loại các đối tượng, nhưng máy móc cần được đào tạo đặc biệt để thực hiện điều này Nhận dạng hình ảnh cho phép xác định chính xác và phân loại các đối tượng thành nhiều loại khác nhau, nhờ vào 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ừ các nguồn dữ liệu đa dạng như hình ảnh, video, âm thanh và dữ liệu vận động.
Các thuật toán nhận dạng hành vi và cử chỉ phổ biến bao gồm Convolutional Neural Networks (CNN) cho việc nhận dạng cử chỉ trong video và hình ảnh, Recurrent Neural Networks (RNN) cho nhận dạng cử chỉ trong video và dữ liệu thời gian, cùng với Support Vector Machines (SVM) cho nhận dạng cử chỉ trong dữ liệu không gian đặc trưng Những công nghệ này có nhiều ứng dụng thực tiễn trong cuộc sống hàng ngày.
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 giao tiếp sử dụng cử chỉ tay, biểu cảm khuôn mặt và chuyển động cơ thể để truyền đạt ý nghĩa giữa những người khiếm thính và người nghe Sự phát triển của ngôn ngữ ký hiệu đóng vai trò quan trọng trong việc kết nối cộng đồng khiếm thính với xã hội.
Nghệ thuật và khoa học đã cải thiện đáng kể việc nhận dạng ngôn ngữ cử chỉ, đặc biệt trong việc phát triển hệ thống nhận dạng cử chỉ tay cho người khiếm thính Nhiều nghiên cứu hiện nay tập trung vào việc tạo ra các công nghệ giúp người khiếm thính giao tiếp dễ dàng hơn với người bình thường Trong quá trình phát triển, các phương pháp thu thập dữ liệu về cử chỉ tay rất đa dạng, trong đó găng tay dữ liệu là một trong những phương pháp phổ biến Tuy nhiên, việc yêu cầu người sử dụng phải đeo thiết bị đặc biệt có thể làm hạn chế khả năng thực hiện cử chỉ tay một cách tự nhiên.
Các phương pháp sử dụng camera, webcam và 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, việc xác định khung hình chứa cử chỉ tay cuối cùng vẫn là một thách thức lớn Để khắc phục vấn đề này, nhiều nghiên cứu đã áp dụng các phương pháp phân tích chuyển động và các thuật toán phát hiện cử chỉ tay.
Sau khi thu thập dữ liệu về cử chỉ tay, giai đoạn tiếp theo là mô hình hóa cử chỉ, nơi các mô hình được tạo ra để biểu diễn cử chỉ tay dưới dạng số liệu và hình ảnh, đóng vai trò quan trọng trong việc phân tích và nhận dạng Tiếp theo, quá trình trích chọn đặc trưng diễn ra, trong đó các đặc trưng quan trọng như hình dạng, màu sắc, vị trí và chuyển động của ngón tay được lựa chọn để tạo ra các biểu diễn số liệu Cuối cùng, giai đoạn nhận dạng xác định cử chỉ tay dựa trên các mô hình và đặc trưng đã xác định, sử dụng các phương pháp máy học như SVM, KNN, CNN, Decision Tree và Deep Learning để nâng cao độ chính xác và độ tin cậy của hệ thống Tại Việt Nam, ngôn ngữ cử chỉ được sử dụng phổ biến trong cộng đồng người khiếm thính, nhưng vẫn thiếu nghiên cứu về ngôn ngữ cử chỉ Tiếng Việt VSL (Vietnamese Sign Language).
Hệ thống nhận dạng cử chỉ tay cho ngôn ngữ cử chỉ Tiếng Việt (VSL) đã được phát triển với độ chính xác cao nhờ vào các kỹ thuật xử lý ảnh để lọc nhiễu và loại bỏ các đối tượng không mong muốn Sau khi trích xuất các đặc trưng từ hình ảnh, chúng đượ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 này không chỉ đạt được độ chính xác cao mà còn có thể áp dụng hiệu quả trong các lĩnh vực giao tiếp và tương tác giữa người và máy.
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 cho người khiếm thính là phát triển một hệ thống giúp họ giao tiếp hiệu quả hơn bằng ngôn ngữ cử chỉ Tiếng Việt (VSL) với người nghe.
Phương pháp tiếp cận
Để phân tích dữ liệu 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 toán SVM và K-Nearest Neighbors (KNN).
Quá 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:
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:
Kiến trúc mạng CNN được thiết kế đặc biệt để nhận diện ký hiệu tay, bao gồm các lớp tích chập nhằm trích xuất đặc trưng và các lớp kết nối đầy đủ để thực hiện phân loại hiệu quả.
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
Để đào tạo mô hình CNN, cần sử dụng tập dữ liệu huấn luyện nhằm 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á:
Để đánh giá hiệu suất của mô hình, cần sử dụng tập kiểm tra và tập xác thực Việc đo lường các chỉ số như độ chính xác, độ nhạy, độ cụt và mất mát là rất quan trọng.
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á.
Cơ hội và thách thức
Phần mềm hỗ trợ người khiếm thính cung cấp công cụ hữu ích để cải thiện khả năng giao tiếp và tương tác của họ Nhờ vào ứng dụng này, người khiếm thính có thể dễ dàng biểu đạt ý kiến, kết nối với người khác và tham gia vào nhiều hoạt động trong cuộc sống.
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 là lĩnh vực quan trọng, và thực hiện đề tài này giúp bạn nắm vững kiến thức về học máy và mạng CNN Qua đó, bạn sẽ phát triển kỹ năng trong trí tuệ nhân tạo, mở ra nhiều cơ hội nghiên cứu và sự nghiệp trong ngành công nghệ.
Phát triển thành công phần mềm nhận dạng ký hiệu tay có thể mở ra cơ hội triển khai sản phẩm thương mại hoặc ứng dụng trong giáo dục, chăm sóc sức khỏe và hỗ trợ cộng đồng người khiếm thính.
Việc thực hiện đề tài này không chỉ mang lại lợi ích tài chính mà còn tạo ra giá trị xã hội quan trọng, giúp cải thiện cuộc sống cho người khiếm thính và góp phần xây dựng một xã hội công bằng, đa dạng hơn.
Việc tích hợp công nghệ mới, đặc biệt là mạng CNN, vào lĩnh vực nhận dạng ký hiệu tay có thể tạo ra những giải pháp hiệu quả và tiện lợi cho người khiếm thính, đồng thời tiên phong trong việc cải thiện khả năng giao tiếp cho cộng đồng này.
Tham gia tích cực vào cộng đồng công nghệ và xã hội, đặc biệt là trong việc hỗ trợ người khiếm thính, không chỉ giúp xây dựng mối quan hệ mà còn mở rộng mạng lưới xã hội Hành động này còn góp phần tạo ra những thay đổi tích cực trong cộng đồng, khẳng định vai trò quan trọng của mỗi cá nhân trong việc giải quyết các vấn đề xã hội.
Việc thu thập và gán nhãn dữ liệu ký hiệu tay gặp nhiều khó khăn do yêu cầu về số lượng lớn và sự đa dạng của các biểu hiện tay cùng cử chỉ khác nhau Để huấn luyện hiệu quả mô hình CNN, cần có một tập dữ liệu phong phú và đa dạng.
Overfitting là một vấn đề phổ biến trong mô hình CNN, xảy ra khi mô hình học quá mức từ dữ liệu huấn luyện cụ thể, dẫn đến khả năng tổng quát kém cho các dữ liệu mới Để tránh overfitting, việc kiểm soát quá trình huấn luyện là rất quan trọng.
Tương tác ngôn ngữ ký hiệu tay đòi hỏi không chỉ việc nhận dạng mà còn cần xem xét ngữ cảnh để hiểu rõ ý nghĩa của các biểu hiện tay Việc này yêu cầu phân tích cả hình ảnh lẫn chuỗi thời gian để nắm bắt đầy đủ thông điệp được truyền đạt.
Khả năng nhận diện ký hiệu tay có thể bị ảnh hưởng bởi nhiễu trong hình ảnh, ánh sáng yếu và nền phức tạp, tạo ra những thách thức cần được chú ý.
Tích hợp công nghệ mới như CNN yêu cầu người dùng cần có khả năng học hỏi liên tục và nắm vững kiến thức về trí tuệ nhân tạo cũng như học máy.
CÁC KỸ THUẬT GIẢI QUYẾT BÀI TOÁN
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à kiến trúc lý tưởng cho xử lý và phân loại hình ảnh, tự động học các đặc trưng từ dữ liệu hình ảnh Qua việc áp dụng các lớp tích chập và lớp gộp, CNN trích xuất thông tin đặc trưng hiệu quả Cuối cùng, thông tin này được đưa vào các lớp kết nối đầy đủ để thực hiện phân loại và nhận dạng kí hiệu tay.
Quá trình xây dựng mô hình CNN bao gồm thiết kế kiến trúc mạng, lựa chọn hàm kích hoạt và hàm mất mát phù hợp, cùng với tối ưu hóa thông qua huấn luyện trên tập dữ liệu gắn nhãn Sau khi hoàn tất huấn luyện, mô hình có khả năng phân loại ký hiệu tay trong các hình ảnh mới.
Quá trình nhận dạng kí hiệu tay bằng CNN thường bao gồm các bước sau:
Để phát triển một hệ thống nhận diện kí hiệu tay hiệu quả, việc thu thập dữ liệu là rất quan trọng Cần thu thập một tập dữ liệu đa dạng chứa hình ảnh kí hiệu tay từ nhiều nguồn khác nhau, đảm bảo rằng các loại kí hiệu tay được phản ánh đầy đủ và phong phú.
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
Chuyển đổi độ phân giải là quá trình điều chỉnh kích thước hình ảnh để phù hợp với kiến trúc mạng CNN Thông thường, các hình ảnh sẽ được chuyển đổi về cùng một kích thước đầu vào để đảm bảo tính nhất quán trong quá trình xử lý.
Xây dựng mạng neural tích chập (CNN):
Kiến trúc mạng CNN được thiết kế 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 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ác đặc trưng và tăng tính tổng quát Cuối cùng, lớp kết nối đầy đủ thực hiện phân loại dựa trên các đặc trưng đã được trích xuất.
Trong mạng CNN, mỗi lớp thường đi kèm với một hàm kích hoạt phi tuyến tính như ReLU (Rectified Linear Unit), giúp tạo ra độ không tuyến tính và khả năng học các đặc trưng phức tạp hơn.
Để xây dựng mô hình hiệu quả, việc chia tập dữ liệu thành tập huấn luyện và tập kiểm tra là rất quan trọng Tập huấn luyện được sử dụng để đào tạo mô hình, trong khi tập kiểm tra giúp đánh giá hiệu suất của mô hình trên dữ liệu mới, chưa từng được sử dụng trong quá trình huấn luyện.
Hàm mất mát là một công cụ quan trọng trong việc đo lường sự khác biệt giữa kết quả dự đoán và nhãn thực tế, với hàm cross-entropy thường được sử dụng Để tối ưu hóa mô hình, thuật toán gradient descent giúp điều chỉnh trọng số của mạng, từ đó giảm thiểu hàm mất mát Việc đánh giá mô hình là bước cần thiết để đảm bảo hiệu suất và độ chính xác của dự đoán.
Để đánh giá hiệu suất của mô hình, cần sử dụng tập kiểm tra với các độ đo thông thường như độ chính xác, độ phủ, chính xác trung bình và ma trận nhầm lẫn Những chỉ số này đóng vai trò quan trọng trong việc xác định khả năng phân loại các ký hiệu tay của mô hình.
Tinh chỉnh và kiểm tra:
Để cải thiện hiệu suất của mô hình, cần thực hiện việc tinh chỉnh kiến trúc mạng dựa trên kết quả đánh giá, bao gồm 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 và tỷ lệ học, cũng như áp dụng các kỹ thuật huấn luyện phù hợp.
Mô hình được đánh giá bằng cách sử dụng dữ liệu mới chưa từng gặp nhằm xác minh khả năng tổng quát và độ tin cậy trong việc nhận diện các ký hiệu tay.
Quá trình nhận dạng và phân loại hình ảnh ký hiệu tay 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 Mạng CNN đã chứng minh hiệu quả vượt trội trong xử lý hình ảnh và nhận dạng đối tượng, được ứng dụng rộng rãi trong lĩnh vực thị giác máy tính, đặc biệt là trong nhận dạng ký hiệu tay.
Mạng nơ ron tích chập
Mạng nơ-ron tích chập (CNN) là một thiết kế mạng học sâu, giúp học trực tiếp từ đầu vào mà không cần trích xuất đặc trưng thủ công CNN rất hiệu quả trong việc phát hiện mẫu trong hình ảnh để phân biệt đối tượng, khuôn mặt và cảnh quan, đồng thời cũng có thể phân loại dữ liệu không phải hình ảnh như âm thanh và dữ liệu tín hiệu CNN là mạng nơ-ron đa tầng được điều chuẩn, trong đó mỗi nơ-ron ở một tầng kết nối với tất cả nơ-ron ở tầng tiếp theo, nhưng điều này có thể dẫn đến hiện tượng quá mức Để ngăn chặn quá mức, CNN sử dụng mẫu phân cấp trong dữ liệu để xây dựng các mẫu phức tạp dần, bắt đầu từ các mẫu nhỏ và đơn giản hơn Nhờ đó, CNN hoạt động hiệu quả với cấu trúc kết nối và độ phức tạp thấp hơn.
CNN (Mạng nơ-ron tích chập) đang trở thành yếu tố chủ chốt trong lĩnh vực Deep Learning, đặc biệt trong thị giác máy tính và các nhiệm vụ học sâu khác Việc áp dụng mô hình CNN giúp giảm thiểu số lượng tham số, tạo ra một mạng lưới không kết nối hoàn toàn nhờ vào việc sử dụng lại các tham số trong quá trình đào tạo.
CNNs đã nhanh chóng mở rộng từ việc xử lý hình ảnh sang các lĩnh vực như văn bản và nhận diện giọng nói, trở thành tiêu chuẩn vàng trong trí tuệ nhân tạo Điều này không chỉ giúp giảm thời gian đào tạo mà còn nâng cao hiệu quả trong nhiều ứng dụng khác nhau.
Tích chập (convolution) là kỹ thuật đầu tiên được áp dụng trong xử lý tín hiệu số Nhờ vào nguyên lý biến đổi thông tin, kỹ thuật này đã được các nhà khoa học áp dụng hiệu quả trong xử lý ảnh và video số Hình 1 minh họa rõ ràng cơ chế hoạt động của tích chập.
Hình 2.1: Minh hoạ tích chập
Ma trận bên trái đại diện cho một ảnh xám, trong đó mỗi giá trị tương ứng với một điểm ảnh (pixel) có giá trị từ 0 đến 255 Sliding window, hay còn gọi là kernel, filter, hoặc feature detector, được sử dụng để áp dụng một ma trận filter kích thước 3×3 lên từng thành phần của ma trận ảnh Giá trị đầu ra được tính bằng cách cộng dồn tích của các thành phần tương ứng Kết quả của quá trình tích chập là một ma trận mới được tạo ra từ việc trượt ma trận filter và thực hiện tích chập trên toàn bộ ma trận ảnh bên trái.
Để dễ hình dung, chúng ta sẽ sử dụng ví dụ về ảnh xám, được biểu diễn dưới dạng ma trận A có kích thước m*n Kernel được định nghĩa là một ma trận vuông có kích thước k*k, trong đó k là số lẻ, có thể là 1, 3, 5, 7, 9, v.v Ví dụ, một kernel có 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
Ma trận A có phần tử xij làm trung tâm, lý do khiến kích thước của kernel thường là số lẻ Tiếp theo, tổng hợp các phần tử từ phép toán giữa ma trận A và ma trận W, sau đó ghi kết quả vào ma trận Y.
Khi tính giá trị tại x22 (ô khoanh đỏ), ma trận A có cùng kích thước với W, với x22 làm trung tâm, được đánh dấu bằng màu nền da cam Tính toán giá trị y11 bằng công thức y11 = sum(A⊗W) = x11*w11 + x12*w12 + x13*w13 + x21*w21 + x22*w22 + x23*w23 + x31*w31 + x32*w32 + x33*w33, kết quả là 4.
Và làm tương tự với các phần tử còn lại trong ma trận
Khi xử lý các phần tử ở viền ngoài như x11, thường thì chúng ta sẽ bỏ qua chúng trong quá trình tính toán, vì không thể xác định ma trận A từ trong X.
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)
Mỗi lần thực hiện phép tính convolution, kích thước ma trận Y sẽ nhỏ hơn ma trận X Để đảm bảo ma trận Y có kích thước bằng ma trận X, ta cần 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
Việc tìm A⊗W cho phần tử x11 đã được giải quyết, và ma trận Y thu được có kích thước giống như ma trận X ban đầu Phép tính này được gọi là convolution với padding=1, trong đó padding=k có nghĩa là thêm k vector 0 vào mỗi bên 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 đề cập đến việc bắt đầu từ vị trí x11 và nhảy k bước theo chiều dọc và ngang cho đến khi hết ma trận X Kích thước của ma trận Y là 3*3, giảm đáng kể so với ma trận X.
Công thức tổng quát 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:
Phép tính convolution trên ảnh được sử dụng để thực hiện các tác vụ như làm mờ, làm nét và xác định biên Mỗi kernel khác nhau sẽ tạo ra kết quả convolution với ý nghĩa khác nhau, ảnh hưởng đến chất lượng và đặc điểm của hình ảnh đầu ra.
2.1.3 Mô hình mạng nơ ron tích chập
Mô hình CNN bao gồm một số lớp convolution kết hợp với các hàm kích hoạt phi tuyến như ReLU hoặc tanh, giúp tạo ra thông tin trừu tượng hơn cho các lớp tiếp theo.
Mô hình mạng nơ-ron truyền thẳng (feedforward nơ-ron network) bao gồm các lớp kết nối trực tiếp với nhau thông qua trọng số w (weighted vector) Những lớp này thường được gọi là các lớp kết nối đầy đủ (fully connected layer) hoặc lớp affine.
THỰC NGHIỆM
Bộ dữ liệu nhận dạng ngôn ngữ ký hiệu
Bộ dữ liệu này chứa 550 file ảnh, thể hiện đầy đủ các ký hiệu tay của 5 chữ cái E, L, F, V, B trong ngôn ngữ ký hiệu, với mỗi chữ cái tương ứng 110 ảnh huấn luyện Các ảnh đã được tách nền, lọc nhiễu và chuyển đổi sang định dạng trắng đen.
Tư tưởng thuật toán nhận diện thủ ngữ
Bài toán này sẽ được làm theo các bước như sau: a Train
Chuẩn bị các ảnh đầu vào là những hình ảnh bàn tay thực hiện các ký tự đã đề cập và lưu trữ trong thư mục Data Mỗi ảnh được gán nhãn đầy đủ thông qua tên file tương ứng.
Chúng tôi đã chuyển đổi các hình ảnh về kích thước 224 x 224 và đưa chúng qua mạng VGG16, đã được bổ sung thêm một số lớp Dense (Fully Connected) và kết
Ta thực hiện train mạng của chúng ta với khoảng hơn 2000 ảnh train và gần
Ta thực hiện mở Webcam và khoanh 1 vùng sẽ phát hiện bàn tay ở trong vùng đó Gọi là detection region
Người dùng bỏ tay ra khỏi vùng detection region và nhấn phím B để máy thu nhận nền của vùng Nếu muốn thu nhận lại nền, người dùng bấm phím
Người dùng đưa tay vào trong vùng detection (sau khi đã capture nền) và tạo thành các hình ký tự Model sẽ hiển thị ký tự ra màn hình
Người dùng bấm Q để thoát.
Tiền xử lý dữ liệu
Thực hiện quá trình resize ảnh về kích thước 224x224 và chuyển đổi nó thành một mảng numpy
Figure 3.2 illustrates the process of resizing images to 224x224 pixels and converting them into a NumPy array This step involves preprocessing the input data by normalizing pixel values and transforming labels into one-hot encoding format.
Hình 3.4: Hàm duyệt thư mục ảnh để train
Sử dụng train_test_split để chia dữ liệu thành tập huấn luyện và tập kiểm thử với tỷ lệ 80/20
Hình 3.5: Chia dữ liệu huấn luyện và dữ liệu test Lưu lại mô hình khi nó có hiệu suất tốt nhất trên tập kiểm thử
Để tối ưu hóa quá trình huấn luyện mô hình CNN, việc đặt các checkpoint là rất quan trọng nhằm lưu lại model tốt nhất Các hàm tiền xử lý dữ liệu đóng vai trò then chốt trong việc chuẩn bị dữ liệu cho quá trình này.
Xây dựng thực nghiệm ứng dụng nhận dạng ngôn ngữ ký hiệu
Sử dụng một mô hình CNN đã được xây dựng trước (base_model)
Thêm một số lớp Fully Connected (Dense) và một lớp Dropout để tăng khả năng học sâu và ngăn chặn overfitting
Kết hợp mô hình cơ sở và các lớp đã thêm để tạo ra một mô hình hoàn chỉnh
Hình 3.7: Xây dựng mô hình CNN Tiến hành huấn luyện và lưu mô hình:
Kết quả thực nghiệm
Khi chạy chương trình, camera sẽ được kích hoạt
Nếu mọi thứ okie thì 1 cửa sổ webcam sẽ hiện ra Thực hiện các bước sau:
Né đầu ra khỏi vùng khung hình xanh, làm sao khung hình trống, và không có vật gì chuyển động trong đó
Hình 3.9: Giao diện ban đầu khi chạy chương trình
Nhấn phím B để thu nhận nền
Sau đó đưa tay vào trong khu vực khung hình xanh và tạo các ký tự nhé Máy sẽ hiển thị ký tự lên màn hình
Hình 3.10: Giao diện sau khi nhấn B
Hình 3.11: Giao diện khi đưa tay lên khung nhận diện
Nhấn Q để thoát hoặc R để khôi phục nền nếu kết quả không chính xác Kết quả chạy thường có độ chính xác cao, tuy nhiên, để đạt hiệu quả tốt nhất, nên sử dụng camera chất lượng cao và thực hành trong môi trường đủ ánh sáng để giảm thiểu nhiễu.