Nâng cao chất lượng hệ thống nhận dạng cử chỉ tay sử dụng mạng tích chập với học chuyển đổi

pdf 5 trang Gia Huy 19/05/2022 1720
Bạn đang xem tài liệu "Nâng cao chất lượng hệ thống nhận dạng cử chỉ tay sử dụng mạng tích chập với học chuyển đổi", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfnang_cao_chat_luong_he_thong_nhan_dang_cu_chi_tay_su_dung_ma.pdf

Nội dung text: Nâng cao chất lượng hệ thống nhận dạng cử chỉ tay sử dụng mạng tích chập với học chuyển đổi

  1. Tuyển tập Hội nghị khoa học toàn quốc lần thứ nhất về Động lực học và Điều khiển Đà Nẵng, ngày 19-20/7/2019, tr. 147-151, DOI 10.15625/vap.2019000271 Nâng cao chất lượng hệ thống nhận dạng cử chỉ tay sử dụng mạng tích chập với học chuyển đổi Nguyễn Hoài Nam, Đặng Thanh Hải và Trần Gia Khánh Bộ môn Điều khiển tự động, Viện Điện, Đại học Bách khoa Hà Nội Số 1 Đại Cồ Việt, Quận Hai Bà Trưng, Hà Nội, Việt Nam E-mail: nam.nguyenhoai@hust.edu.vn 2. Học sâu Tóm tắt Trong bài báo này, chúng tôi sẽ nhận dạng cử chỉ tay bằng Học sâu là một nhánh của học máy dựa trên việc mạng tích chập (CNN) kết hợp với học chuyển đổi để nâng cao học các dữ liệu đại diện, trái ngược với các thuật toán cụ độ chính xác. Mục tiêu là nhận dạng 17 cử chỉ tay trong tập dữ thể theo nhiệm vụ. Việc học có thể là học giám sát, bán liệu của nhóm tác giả Xiao Sun, Yichen Wei, Shuang Liang, giám sát hoặc không giám sát. Xiaoou Tang và Jian Sun, CVPR 2015, và nâng cao độ chính Các mô hình học sâu được lấy cảm hứng từ các mô xác nhận dạng. Chúng tôi huấn luyện một mạng tích chập mới hình xử lý thông tin và giao tiếp trong các hệ thống bằng cách học kế thừa từ mạng Google Net. Toàn bộ việc huấn nơron sinh học nhưng có sự khác biệt khác nhau từ các luyện và kiếm tra mạng được thực hiện với tập dữ liệu được đặc tính cấu trúc và chức năng của bộ não sinh học (đặc chia sẻ công khai. Chúng tôi thấy rằng, mạng tích chập được biệt là bộ não con người). học chuyển đổi từ mạng đã được huấn luyện sẽ có khả năng Cấu trúc của học sâu thường được xây dựng cùng nhận dạng cử chỉ tay tốt hơn. Không những thế, học kế thừa với phương pháp lớp chồng lớp. Học sâu giúp tháo gỡ giúp giảm tài nguyên cần phải sử dụng, và tăng tốc độ học. những khái niệm trừu tượng này và chọn ra những đặc Từ khóa: CNN, tích chập, Deep Learning, Nhận dạng cử chỉ điểm cần thiết cho việc học. tay, mạng nơron. Trong học sâu, mỗi mức học cách chuyển đổi dữ liệu đầu vào của nó thành một đại diện tóm lược hơn một 1. Mở đầu chút. Trong ứng dụng nhận dạng hình ảnh, đầu vào thô có thể là một ma trận các điểm ảnh; lớp đại diện đầu tiên Con người hoàn toàn có khả năng nhận biết được có thể tóm lược các điểm ảnh và mã hóa các cạnh. Lớp những cử chỉ tay, cùng với những quyết định tiếp theo thứ 2 có thể tổng hợp và mã hóa sự sắp xếp của các cạnh. có thể đưa ra. Sau một thời gian học, chúng ta có thể Lớp thứ 3 có thể mã hóa mũi và mắt, và lớp thứ tư có giao tiếp gần như dễ dàng bằng cử chỉ tay. Trong thời thể nhận ra rằng hình ảnh chứa một khuôn mặt. Quan gian gần đây, nhiều nghiên cứu quan trọng đã được tiến trọng, một quá trình học sâu có thể tìm hiểu các đặc điểm hành trong việc phát triển các máy có khả năng phân loại để tối ưu hóa ở cấp độ cao. Tất nhiên, điều này không hình ảnh được chụp bằng cử chỉ tay vào các danh mục hoàn toàn làm giảm nhu cầu điều chỉnh bằng tay; ví dụ, được xem xét. Những hệ thống như vậy đã được tìm thấy số lượng lớp và kích cỡ lớp khác nhau có thể cung cấp các ứng dụng trong điều khiển trò chơi và điện tử, điều mức độ tích hợp khác nhau. khiển robot, môi trường thực tế ảo và giao tiếp ngôn ngữ tự nhiên. Trong nhiều công việc, việc nhận ra cử chỉ tay 3. Mạng tích chập tĩnh dựa trên cử chỉ quan trọng hoặc khác biệt tương đối Mạng tích chập – Convolutional neural networks giữa các cử chỉ, vì rõ ràng là một số cử chỉ tay khá giống (CNN) là công cụ được sử dụng rộng rãi đối với học sâu. nhau khi xem ở chế độ 2D. Do đó, tập hợp các dấu hiệu Nó đặc biệt thích hợp cho việc sử dụng hình ảnh làm đầu cử chỉ tay được tìm thấy trong cơ sở dữ liệu được trích vào mặc dù nó cũng được sử dụng cho các ứng dụng xuất cho nhiệm vụ nhận biết. Tuy nhiên, các đặc điểm khác như chữ viết, tín hiệu và các phản hồi liên tục khác. phân biệt nhỏ có mặt trong tất cả các cử chỉ, có thể được Tuy nhiên, trường hợp sử dụng cơ bản và phổ biến nhất cảm nhận bởi con người. Khả năng của các hệ thống của các mạng này là để nhận dạng hình ảnh. tương tác người – máy để mở rộng vốn từ vựng bằng Một mạng tích chập có nhiều lớp như là lớp tích cách có khả năng nhận ra nhiều cử chỉ tay hơn là rất quan chập, lớp max-pooling hoặc average-pooling, và lớp liên trọng, vì điều này cho phép mở rộng ở cấp độ của giao kết đủ [1]. Với một hình ảnh đầu vào, lớp đầu tiên của tiếp và điều khiển. mạng sẽ xác định kích thước tương ứng như chiều dài, chiều rộng và số kênh màu. Các nơron trong mỗi lớp tích Trong bài báo này, chúng tôi áp dụng học sâu, dựa chập sẽ học các đặc điểm trong ảnh. Đầu ra của một lớp trên mạng tích chập với học chuyển đổi sử dụng mạng tích chập là một bản đồ đặc trưng và là đầu vào của lớp GoogleNet để thực hiện nhiệm vụ phân loại 17 cử chỉ tiếp theo. Cuối cùng, những đặc điểm đã được học sẽ trở tay trong tập dữ liệu được chia sẻ công khai. thành đầu vào của lớp phân loại ở lớp cuối của mạng.
  2. Nguyễn Hoài Nam, Đặng Thanh Hải và Trần Gia Khánh 3.1. Lớp tích chập 3.4. Học kế thừa Xét một hình ảnh có kích thước đầu vào bằng Học kế thừa thông thường được sử dụng trong 32x32x3, đây là một mảng các giá trị pixels. Một hạt những ứng dụng của học sâu. Ta có thể lấy một mạng nhân có kích thước 5x5x3 được sử dụng để thực hiện tích chập đã được huấn luyện sẵn và sử dụng nó để thiết các phép tính tích chập. Xét vị trí đầu tiên của hạt nhân, kế một mạng tích chập mới để giải quyết bài toán mới. ở góc trên cùng bên trái của hình ảnh đầu vào. Nếu như Việc tinh chỉnh một mạng có sẵn đơn giản và nhanh hơn hạt nhân trượt dọc theo bức ảnh, nó sẽ nhân giá trị bên rất nhiều so với việc bắt đầu tạo và huấn luyện một mạng trong hạt nhân với giá trị của điểm ảnh của bức ảnh. Các mới. Ngoài ra lợi thế của học sâu là các mạng đã được phép nhân này tất cả sẽ được tổng hợp. Do đó, lúc này huấn luyện sẵn, đã học tập được rất nhiều những tính ta có một số duy nhất và số này đại diện cho hạt nhân năng phong phú. Do đó có thể được áp dụng cho số khi ở góc trên cùng bên trái của bức ảnh. Bây giờ ta lặp lượng lớn các bài toán tương tự khác. lại quy trình này cho toàn bộ đầu vào, bước tiếp theo ta Ví dụ, ta có thể lấy một mạng đã được huấn luyện sẽ dịch hạt nhân sang phải 1 đơn vị và sau đó lại sang với một vạn hay một triệu ảnh, ta có thể huấn luyện lại phải 1 đơn vị. Mỗi vị trí duy nhất trên đầu vào ta thu mạng đó với bài toán chỉ với dữ liệu gồm vài trăm ảnh. được một số. Sau khi trượt hạt nhân qua tất cả các vị trí, Ta có thể dễ dàng tinh chỉnh lại mạng đã huấn luyện sẵn những gì ta thu được là một mảng số 28x28x1 đó chính với tập dữ liệu nhỏ hơn rất nhiều so với dữ liệu huấn là bản đồ đặc trưng. luyện gốc. Và nếu ta có một tập dữ liệu rất lớn, thì học Giả sử rằng ta dùng 2 hạt nhân 5x5x3 thay vì một chuyển đổi có thể nhanh hơn rất nhiều so với huấn luyện khi đó kích thước của bản đồ đặc trưng sẽ là 28x28x2. một mạng mới từ đầu. Mỗi một hạt nhân sẽ giúp ta nhận biết được 1 đặc điểm Học chuyển đổi cho phép người dùng: của ảnh đầu vào. Càng có nhiều hạt nhân, độ sâu của bản . Chuyển đổi những tính năng đã được học của một mạng đồ đặc trưng càng lớn và chúng ta càng có nhiều thông đã được huấn luyện sẵn tới một mạng tích chập mới chưa tin về đầu vào. được huấn luyện. Trong ví dụ trên, hạt nhân di chuyển dọc đầu vào . Giảm thời gian huấn luyện và kích cỡ của tập dữ liệu. một đơn vị tại một thời điểm. Số lượng điểm ảnh mà hạt Thực hiện học sâu mà không cần học tạo một mạng mới nhân dịch chuyển qua được gọi là stride. Stride thường toàn bộ. được đặt sao cho kích thước đầu ra là một số chẵn. Với 3.5. Dữ liệu huấn luyện Stride bằng 1 như trên ta thu được một đầu ra có kích thước 28x28x1. Nếu Stride bằng 2 thì kích thước đầu ra Tập dữ liệu được sử dụng thu được từ cơ sở dữ liệu chỉ còn 15x15x1. Nếu chúng ta cố tăng stride lên 3, sau được chia sẻ công khai [4], bao gồm 17 cử chỉ tay. Hình đó chúng ta sẽ gặp vấn đề về khoảng cách và đảm bảo 4.1 biểu thị 17 cử chỉ tay tĩnh chưa được xử lý cho nhiệm hạt nhân trượt được trên toàn bộ đầu vào. vụ nhận dạng. Các cử chỉ biểu thị các kí tự, trên nền 3.2. Lớp Pooling phông tối và hiển thị cả các khớp tay (các chấm màu). Tập dữ liệu bao gồm tổng cộng các tay phải của 9 người. Lớp max-pooling và average–pooling theo sau lớp Mỗi người bao gồm 17 cử chỉ khác nhau và có 500 ảnh tích chập để trích mẫu, từ đó giảm số lượng kết nối tới cho mỗi cử chỉ. Kích thước mỗi ảnh là 320x240 pixel. lớp tiếp theo. Chúng không thực hiện bất kì việc tự học Để việc học được chính xác, 70% tổng số ảnh được nào, nhưng giảm số lượng tham số phải học ở lớp tiếp dùng để huấn luyện, 15% cho tập test và 15% cho tập theo. Đồng thời lớp pooling cũng giúp làm giảm hiện validation. tượng overfitting. Một lớp max-pooling trả về kết quả là Huấn luyện một mạng và thực hiện dự đoán với dữ giá trị lớn nhất trong một hình chữ nhật của đầu vào của liệu mới yêu cầu hình ảnh có kích thước bằng với kích nó. Kích cỡ hình chữ nhật này được xác định trước bởi thước ảnh đầu vào của mạng. Do đó trước khi huấn giá trị “poolsize”. Tương tự thì lớp average – pooling trả luyện mạng, ta cần điều chỉnh lại kích thước ảnh trong về kết quả là trung bình cộng các giá trị trong hình chữ tập dữ liệu bằng với kích thước đầu vào mạng. Hình ảnh nhật đó. cử chỉ tay gốc có kích thước 320x240 pixels. Một thuật Lớp pooling quét dọc theo chiều dài và rộng của đầu toán được sử dụng để thay đổi lại kích thước hình ảnh vào từng bước một với kích thước được xác định bằng bằng với kích thước của mạng được sử dụng để học kế giá trị “Stride”. Nếu giá trị “poolSize” nhỏ hơn hoặc chuyển đổi là 224x224. Thuật toán giúp tiền xử lý tất cả bằng giá trị “Stride” thì vùng pooling sẽ không bị chồng các tập ảnh trong tập dữ liệu huấn luyện, tập test và chéo. validations. 3.3. Lớp liên kết đủ 4. Huấn luyện mạng nơron Lớp liên kết đủ kết nối với tất cả các nơ-ron trong lớp trước. Cách thức hoạt động của lớp này là tổng hợp 4.1. Hàm mục tiêu tất cả các đặc điểm được học ở các lớp trước để nhận Hàm mục tiêu được sử dụng ở trong bài này là hàm biết các mẫu lớn hơn. Đối với bài toán phân loại, lớp liên tổng bình phương sai lệch (sum of squares error – SSE). kết đủ tổng hợp những tính năng giúp phân loại hình ảnh. SSE là một thước đo sai lệch giữa hai biến ngẫu nhiên Vì lí do này mà số đầu ra của lớp liên kết đủ cuối cùng của mạng bằng với số lượng các loại ảnh cần phân loại.
  3. ặng Thanh Hải Nâng cao chất lượng hệ thống nhận dạng cử chỉ tay sử dụng mạng tích chập với học chuyển đổi liên tục [1]. Đối với đầu ra mạng Y và đầu ra mẫu T, Mạng trong mạng tích chập có thể trích xuất thông hàm SSE được cho bởi: tin về các chi tiết nhỏ, trong khi hạt nhân 5x5 có thể bao k phủ một trường tiếp cận lớn của đầu vào, do đó cũng có 2 (1) LYT  ii thể trích xuất thông tin của nó. Ta cũng có một lớp i 1 pooling giúp giảm kích thước không gian và chống lại Trong đó, k là số lượng quan sát. [1] hiện tượng overfitting. Trên hết, ta cũng có lớp ReLU sau mỗi lớp conv, giúp cải thiện tính phi tuyến. Về cơ bản, mạng có thể thực hiện các chức năng của các hoạt động khác nhau này trong khi vẫn cân nhắc tính toán [5]. GoogleNet là một trong những mô hình đầu tiên đưa ra ý tưởng rằng các lớp CNN không phải luôn luôn được xếp chồng lên nhau. Cùng với môđun Inception, GoogleNet không chỉ giảm số lượng tham số và kích thước không gian, mà còn cải thiện hiệu suất và tốc độ tính toán. 4.3. Huấn luyện mạng mới Mạng tích chập trong bài này được huấn luyện trên 76500 hình ảnh với kích thước 224x224x3 mỗi ảnh. Tất cả việc huấn luyện và mô phỏng được thực hiện trên máy tính với cấu hình: CPU Intel(R) Core (TM) i5–5200 @2.20GHz (4CPUs), ~ 2.2GHz, GPU đơn GeForce 940 M VRAM 2020 MB, RAM 8192 MB trên môi trường Matlab. Thuật toán huấn luyện được sử dụng trong đề tài là Hình 4.1. 17 cử chỉ tay của một người Mini – Batch Gradient Descent với giá trị MinibatchSize = 84. Hình 6.1 mô tả quá trình huấn luyện mạng. 4.2. Mạng đã được huấn luyện Trong bài báo này, chúng tôi sử dụng học chuyển đổi từ mạng đã được huấn luyện là Google Net. Google Net là một mạng CNN có 22 lớp và đã giành chiến thắng tại ILSVRC 2014 với một top 5 tỉ lệ sai lệch bằng 6.7%. Hình 4.2. Quá trình huấn luyện mạng Đây là một trong những cấu trúc mạng tích chập đầu tiên thực sự lạc ra khỏi cách tiếp cận thông thường đơn giản Thay vì việc phải huấn luyện lại rất nhiều tham số là xếp chồng các lớp Conv và pooling lên nhau trong và một khối lượng tính toán khổng lồ, với học chuyển một cấu trúc tuần tự. Các tác giả cũng nhấn mạng rằng đổi chỉ cần phải huấn luyện những lớp cuối cùng, đó là cấu trúc mới này đặt sự cân nhắc đáng kể vào bộ nhớ và các lớp liên kết đủ. Do đó thời gian huấn luyện và khối sử dụng năng lượng. lượng tính toán sẽ được giảm đi rất nhiều. Về cơ bản, ở mỗi lớp tích chập truyền thống, ta phải Những lớp đầu của mạng đã được học những tính đưa ra lựa chọn về việc có một hoạt động pooling và một năng đơn giản nhất như là màu sắc hay những đốm màu, hoạt động Conv (cũng có cả lựa chọn kích thước hạt nên ta có thể giữ các lớp này bằng cách đóng băng tham nhân). Môđun Inception cho phép thực hiện tất cả các số. Sau đó, ta sẽ thay thế các lớp cuối để học những tính hoạt động trên song song. Trên thực tế đây chính là ý năng tương ứng với nhiệm vụ bài toán. tưởng “navie” mà các tác giả đã nghĩ ra. Các tham số của mạng được mô tả ở bảng dưới. Nếu làm theo cách này, chúng ta sẽ kết thúc với một kênh có độ sâu vô cùng lớn cho khối đầu ra. Các tác giả Bảng 4.1. Các siêu tham số mạng đã giải quyết vấn đề này bằng cách thêm các lớp 1x1 trước các lớp 3x3 và 5x5. Các lớp 1x1 (hay mạng trong Tham số Giá trị lớp mạng) cung cấp phương pháp giảm kích thước mạng. miniBatchSize 84 Chẳng hạn, giả sử rằng ta có một khối đầu vào Initial Learning-rate 0,0001 100x100x60 (đây không nhất thiết là đầu vào ảnh mà chỉ LearnRateDropFactor 0,5 là đầu vào bất kỳ của một lớp trong mạng). Áp dụng 20 LearnRateDropPeriod 4 hạt nhân tích chập 1x1 sẽ cho phép giảm kích thước khối ValidationFrequency 300 đầu vào xuống 100x100x20. Điều này có nghĩa là các maxEpoch 20 lớp 3x3 hay 5x5 sẽ không có nhiều khối lượng phải giải 4.4. Kết quả quyết. Điều này có thể được nghĩ như là một “pooling of features” bởi vì ta đã giảm độ sâu của khối tương tự Mạng được huấn luyện trên tập dữ liệu 76500 ảnh như cách ta giảm chiều dài và chiều rộng với lớp max – sau khoảng 2 ngày. Để kiểm tra hiệu quả của mạng, ta pooling bình thường. sử dụng một tập ảnh Test khoảng 11475 ảnh (15%) để
  4. Nguyễn Hoài Nam, Đặng Thanh Hải và Trần Gia Khánh kiểm tra mạng. Hiệu suất của công việc nhận dạng này, 5. Kết luận thể hiện ở giá trị độ chính xác được tính bằng công thức sau: Mạng tích chập tỏ ra vô cùng hiệu quả trong lĩnh 𝑡ổ𝑛𝑔 𝑠ố ả𝑛ℎ 𝑛ℎậ𝑛 𝑑ạ𝑛𝑔 đú𝑛𝑔 vực nhận dạng hình ảnh nói chung và nhận dạng cử chỉ 𝑎𝑐𝑐𝑢𝑟𝑎𝑐𝑦 tay nói riêng. Với việc nhận dạng được cử chỉ tay, ta có 𝑡ổ𝑛𝑔 𝑠ố ả𝑛ℎ 𝑐ủ𝑎 𝑡ậ𝑝 𝑡𝑒𝑠𝑡 thể thực hiện các ứng dụng khác như điều khiển thiết bị, Hình 4.3. Kết quả nhận dạng cử chỉ tay từ tập Test Bảng 4.1 biểu thị kết quả nhận dạng của mạng trên tập dữ liệu Test. Độ chính xác của mạng thu được khá cao 95,69% cho thấy hiệu suất của mạng rất tốt. Bảng 4.2. Kết quả nhận dạng ảnh Tham số Giá trị Tổng số ảnh tập Test 11475 Số ảnh nhận dạng đúng 10981 Độ chính xác 95.96% Hình 4.4. Accuracy Hình 4.3 biểu thị 25 cử chỉ được nhận dạng, bao gồm nhãn và xác suất nhận dạng cử chỉ đó. Hình 7.2 biểu thị hàm accuracy trong quá trình huấn luyện. Kết quá hàm đã được làm trơn bằng cách nối các điểm rời rạc sau mỗi bước lặp. Hình 4.2 là đồ thị hàm mục tiêu. Từ đồ thị, ta thấy sau khoảng hơn một vạn bước, giá trị hàm mục tiêu bám dần đến giá trị 0. Tương tự như hàm accuracy, hàm mục tiêu đã được làm trơn bằng cách nối các giá trị rời rạc sau mỗi bước lặp. Các chấm đen, là giá trị hàm ứng với tập Validation. Hình 4.2. Hàm mục tiêu
  5. ặng Thanh Hải Nâng cao chất lượng hệ thống nhận dạng cử chỉ tay sử dụng mạng tích chập với học chuyển đổi hay ứng dụng trong nhà thông minh. Tuy nhiên trong giai đoạn hiện nay, đặc biệt là tại Việt Nam, việc nghiên cứu và phát triển kỹ thuật học sâu nói chung còn có nhiều hạn chế. Chúng tôi đã thiết kế mạng tích chập sử dụng học chuyển đổi từ mạng Google Net nhận dạng cử chỉ tay trên một tập dữ liệu được chia sẻ công khai. Kết quả nhận dạng với độ chính xác là 95.96%, cao hơn so với bài báo [3]. Lời cảm ơn Nghiên cứu này được tài trợ bởi Trường Đại học Bách khoa Hà Nội trong đề tài mã số T2018-PC-052. Tài liệu tham khảo [1] Mark Hudson Beale, Martin T. Hagan, Howard B. Demuth, Neural Network Toolbox™ User's Guide, 2018. [2] Martin T. Hagan, Oklahoma State University; Stillwater, Oklahoma; Howard B. Demuth University of Colorado Boulder, Colorado; Mark Hudson Beal MHB Inc.Hayden, Idaho Orlando De Jesús Consut Fisc, Texas, Neuron Network Design, 1996. [3] Oyebade K. Oyedotun, Adnan Khashman, Deep learning in vision-based static hand gesture recognition ,2016. [4] Xiao Sun, Yichen Wei, Shuang Liang, Xiaoou Tang, Jian Sun, Cascaded Hand Pose Regression, CVPR 2015. [5] Christian Szegedy, Wei Liu, Chapel Hill, YangqingJia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhouckem, Andrew Rabinovich, Going deeper with convolution, 2014. [6] Classify Image Using GoogLeNet, [7] Deep Learning Toolbox Model for AlexNet Network, www.mathworks.com. [8] Pretrained Convolutional Neural Networks.