- Trang Chủ
- Tự động hoá
- 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
Xem mẫu
- 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
Tóm tắt
2. Học sâu
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.
- 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.
- ặ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ó
L Yi Ti
2
(1) 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%) để
- 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
- ặ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,
https://www.mathworks.com.
[7] Deep Learning Toolbox Model for AlexNet Network,
www.mathworks.com.
[8] Pretrained Convolutional Neural Networks.
https://www.mathworks.com
nguon tai.lieu . vn