TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
LUẬN VĂN THẠC SĨ
Nghiên cứu phát triển các thuật toán nhận dạng
cử chỉ hành động ứng dụng cho nhà thông minh
PHÙNG NGỌC TÂN
Ngành: Kỹ thuật viễn thơng
Giảng viên hướng dẫn: TS. Trần Mạnh Hồng
Viện:
Điện tử - Viễn thông
HÀ NỘI, 6/2021
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
LUẬN VĂN THẠC SĨ
Nghiên cứu phát triển các thuật toán nhận dạng
cử chỉ hành động ứng dụng cho nhà thông minh
PHÙNG NGỌC TÂN
Ngành: Kỹ thuật viễn thơng
Giảng viên hướng dẫn: TS. Trần Mạnh Hồng
Chữ ký của GVHD
Viện:
Điện tử - Viễn thông
HÀ NỘI, 6/2021
LỜI CẢM ƠN
Sau một thời gian học tập và thực hiện đề tài luận văn tốt nghiệp, đến nay
tôi đã hoàn thành luận văn thạc sĩ khoa học thuộc chuyên ngành Kỹ thuật viễn
thông với đề tài “Nghiên cứu phát triển các thuật toán nhận dạng cử chỉ
hành động ứng dụng cho nhà thông minh”.
Tôi xin chân thành cảm ơn sự giúp đỡ tận tình, sự yêu thương đến từ các
thầy Viện Điện, đặc biệt là thầy hướng dẫn khoa học của tơi là TS. Trần Mạnh
Hồng. Xin chúc các thầy, cô luôn luôn mạnh khỏe, nhiệt huyết để dạy bảo các
thế hệ sinh viên, học viên tiếp theo thành tài.
Chúc mọi người sức khỏe và thành công.
Xin trân trọng cảm ơn!
Hà Nội, ngày
tháng
năm 2021
Tác giả
Phùng Ngọc Tân
MỤC LỤC
Chương I: Giới thiệu chung ...........................................................................1
1.1. Giới thiệu chung ..................................................................................1
1.2. Bài tốn nhận dạng cử chỉ ...................................................................3
1.2.1. Ngơn ngữ cử chỉ trong tương tác người - máy ...............................3
1.2.2. Phân tích bài tốn nhận dạng cử chỉ trong điều khiển nhà thơng
minh ........................................................................................................4
1.2.3. Các kỹ thuật chính trong nhận dạng ...............................................6
1.2.4. Những vấn đề đặt ra .......................................................................7
1.3. Ý tưởng xây dựng hệ thống và các kỹ thuật sử dụng ..........................8
1.4. Các kỹ thuật đề xuất ..........................................................................11
1.4.1. Kỹ thuật phát hiện đối tượng ........................................................11
1.4.2. Kỹ thuật bám đối tượng................................................................12
1.4.3. Kỹ thuật phân loại đối tượng ........................................................13
1.5. Kết luận..............................................................................................13
Chương II: Cơ sở lý thuyết ..........................................................................14
2.1. Ảnh số và xử lý ảnh số ......................................................................14
2.1.1. Các loại ảnh số .............................................................................14
2.1.2. Xử lý ảnh số..................................................................................16
2.1.3. Các ví dụ về kỹ thuật xử lý ảnh ....................................................18
2.1.4. Các phép toán trong xử lý ảnh .....................................................19
2.2. Thị giác máy tính ...............................................................................22
2.3. Trí tuệ nhân tạo, học máy và học sâu ................................................25
2.4. Kỹ thuật phát hiện và phân vùng đối tượng ......................................27
2.4.1. Phương pháp mô tả đặc trưng HOG .............................................27
2.4.2. Mơ hình SVM...............................................................................31
2.4.3. Kỹ thuật kim tự tháp, cửa sổ trượt và triệt tiêu không cực đại ....38
i
2.5. Kỹ thuật bám đối tượng theo thời gian thực..................................... 41
2.6. Kỹ thuật phân loại, định dạng đối tượng .......................................... 42
2.6.1. Giới thiệu mạng nơ-ron tích chập................................................ 42
2.6.2. Bài tốn phân loại ảnh ................................................................. 43
2.6.3. Cấu trúc CNN .............................................................................. 44
2.7. Kết luận ............................................................................................. 50
Chương III: Xây dựng chương trình nhận dạng cử chỉ .............................. 51
3.1. Các công cụ....................................................................................... 51
3.1.1. Ngôn ngữ lập trình Python .......................................................... 51
3.1.2. Cơng cụ lập trình ......................................................................... 51
3.1.3. Các thư viện hỗ trợ ...................................................................... 52
3.2. Quá trình thực hiện ........................................................................... 53
3.2.1. Tiền xử lý..................................................................................... 54
3.2.2. Xây dựng tập mẫu huấn luyện. .................................................... 56
3.2.3. Huấn luyện mô hình phát hiện tư thế bắt đầu.............................. 60
3.2.4. Huấn luyện mơ hình nhận dạng cử chỉ ........................................ 61
3.3. Xây dựng chương trình chính ........................................................... 63
3.4. Kết luận ............................................................................................. 63
Chương IV: Kết quả thử nghiệm chương trình ........................................... 65
4.1. Kết quả phát hiện tay người.............................................................. 65
4.2. Kết quả nhận dạng tư thế .................................................................. 65
4.3. Kết quả nhận dạng cử chỉ của chương trình ..................................... 67
4.4. Đánh giá kết quả ............................................................................... 67
Kết luận và hướng phát triển....................................................................... 68
TÀI LIỆU THAM KHẢO .......................................................................... 69
ii
Danh mục các ký hiệu, các chữ viết tắt
Ký hiệu,
Tên đầy đủ
viết tắt
AI
Artificial Intelligence
AOI
Automated Optical Inspection
CLAHE
CNN
Contrast Limited Adaptive
Histogram Equalization
Convolutional Neural
Network
Giải thích
Trí tuệ nhân tạo
Hệ thống kiểm tra quang học tự
động
Cân bằng biểu đồ histogram
thích ứng có giới hạn độ tương
phản
Mạng thần kinh tích chập
Central Processing Unit
Bộ xử lý trung tâm
Channel and Spatial
Theo dõi độ tin cậy của kênh
Reliability Tracking
và không gian
Generic Object Tracking
Theo dõi đối tượng bằng mạng
Using Regression Networks
hồi quy
GPU
Graphics Processing Unit
Bộ xử lý hình ảnh
HCI
Human–computer interaction
Tương tác người - máy
Histogram of Oriented
Đặc trưng hướng và cường độ
Gradients
biến thiên mức xám
KCF
Kernelized Correlation Filter
Bộ lọc tương quan Kernelized
MIL
Multiple instance learning
Học nhiều trường hợp
CPU
CSRT
GOTURN
HOG
Modified National Institute of
MNIST
Standards and Technology
database
MOSSE
Một cơ sở dữ liệu lớn chứa các
chữ số viết tay
Minimum Output Sum of
Tổng kết quả tối thiểu của bình
Squared Error
phương lỗi
iii
MRI
Magnetic Resonance Imaging
Ảnh chụp cộng hưởng từ
Thuật toán chọn kết quả tốt
NMS
Non-maximum Suppression
nhất (trong phát hiện đối
tượng)
ORC
RGB
ROI
SIFT
Optical Character Recognition Nhận dạng ký tự quang học
Red - Green - Blue color
Mô hình màu dựa trên ánh sáng
model
đỏ, xanh lục và xanh lam
Region Of Interest
Vùng quan tâm
Scale-invariant feature
Thuật tốn mơ tả đặc trưng đối
transform
tượng của David Lowe
Phương pháp phát hiện đối
SSD
Single Shot Detector
SVM
Support-vector machine
Máy vector hỗ trợ
Tracking – Learning –
Theo dõi - Học tập - Phát hiện
TLD
YOLO
Detection
You only look once
tượng SSD
Phương pháp phát hiện đối
tượng YOLO
iv
Danh mục các bảng
Bảng 3. 1 Kết quả đào tạo mẫu phân loại tư thế ..........................................63
Bảng 4. 1 Kết quả thử nghiệm phát hiện đối tượng.....................................65
Bảng 4. 2 Kết quả thử nghiệm nhận dạng tư thế .........................................66
Bảng 4. 3 Kết quả thử nghiệm nhận dạng cử chỉ.........................................67
v
Danh mục các hình vẽ, đồ thị
Hình 1.1 Tương tác người – người và tương tác người – máy. .................... 4
Hình 1.2 Các cử chỉ khi điều khiển............................................................... 9
Hình 1.3 Quá trình nhận dạng cử chỉ ............................................................ 9
Hình 1.4 Thuật toán nhận dạng cử chỉ và các kỹ thuật được áp dụng........ 10
Hình 2.1 Hệ thống xử lý ảnh số cơ bản ...................................................... 16
Hình 2.2 Cân bằng biểu đồ mức xám [25] .................................................. 21
Hình 2.3 Ảnh gốc (trái) và ảnh đã Lọc Gaussian (phải) ............................. 22
Hình 2.4 Ứng dụng thị giác máy tính trong nhận dạng biển số xe [26] ..... 24
Hình 2.5 Ứng dụng thị giác máy tính trong kiểm tra bảng mạch điện tử tự
động (AOI) [27] .......................................................................................... 25
Hình 2.6 Mạng nơ-ron nhân tạo .................................................................. 27
Hình 2.7 Các bước tính tốn đặc trưng HOG ............................................. 28
Hình 2.8 Minh họa tính tốn giá trị “vector gradient” [28] ........................ 29
Hình 2.9 Hình minh họa cho sự chia các khối chồng lấp [29] ................... 30
Hình 2.10 Minh họa cho HOG của 1 ơ với p = 9 [28] ................................ 31
Hình 2.11 Ví dụ về bộ dữ liệu cần phân loại đơn giản. .............................. 32
Hình 2.12 Ánh xạ dữ liệu từ khơng gian hai chiều sang ba chiều. ............. 33
Hình 2.13 Các siêu phẳng trên khơng gian 2 chiều. ................................... 34
Hình 2.14 Trường hợp có điểm gây nhiễu do tập dữ liệu khơng chính xác 36
Hình 2.15 Điều kiện khơng gian dữ liệu là phi tuyến. ................................ 37
Hình 2.16 Kim tự tháp hình ảnh với các mức thu phóng [30] .................... 39
Hình 2.17 Kết quả xử lý trước (trái) và sau (phải) khi áp dụng NMS [31] 40
Hình 2.18 Sơ đồ khối quá trình bám đối tượng của phương pháp KCF..... 42
Hình 2.19 Hình ảnh thực tế và ảnh số máy thu được [32] .......................... 44
Hình 2.20 Cấu trúc mơ hình CNN .............................................................. 45
Hình 2.21 Ví dụ về lớp tích chập ................................................................ 46
Hình 2.22 Bộ lọc phát hiện góc, cạnh ......................................................... 47
Hình 2.23 Q trình xử lý ở lớp tích chập .................................................. 48
vi
Hình 2.24 Ví dụ lớp gộp ..............................................................................49
Hình 3.1 Lưu đồ thuật tốn nhận dạng cử chỉ .............................................54
Hình 3.2 Hình ảnh trước và sau cân bằng histogram thích ứng ..................56
Hình 3.3 Hình ảnh trước và sau khi lọc trung vị .........................................56
Hình 3.4 Tập ảnh chứa mẫu tay ở các vị trí khác nhau ...............................58
Hình 3.5 Đánh giá kết quả xây dựng mẫu huấn luyện ................................58
Hình 3.6 Mẫu huấn luyện nhận dạng tư thế tay hướng lên .........................59
Hình 3.7 Ví dụ kết quả huấn luyện với sự thay đổi tham số của C .............60
Hình 3.8 Mơ hình CNN cho bài tốn nhận dạng cử chỉ ..............................62
Hình 4.1 Ví dụ kết quả khơng nhận dạng tư thế ..........................................67
vii
CHƯƠNG I: GIỚI THIỆU CHUNG
Trong phần này tác giả sẽ đưa ra bài toán nhận dạng cử chỉ và các
yêu cầu đặt ra cũng như những vấn đề cần giải quyết. Cụ thể tác giả sẽ tiếp
cận các kỹ thuật hiện tại và lựa chọn các kỹ thuật ứng dụng giải quyết bài
toán điều khiển bằng cử chỉ cho các ứng dụng trong nhà thông minh.
1.1.
Giới thiệu chung
Ngày nay, khoa học kỹ thuật phát triển rất nhanh tạo điều kiện cho
các công nghệ và ý tưởng mới được ra đời. Cùng với đó là nhu cầu tận
hưởng sự tiện dụng của cơng nghệ trong đời sống ngày càng tăng. Vì vậy
yêu cầu đặt ra cho quá trình ứng dụng khoa học cơng nghệ vào đời sống là
cấp thiết. Trong đó, các hệ thống tương tác giữa con người và máy tính
HCI đã dần trở thành một lĩnh vực được tập trung nghiên cứu.
Trong kỹ thuật ứng dụng ngày nay, nhà thông minh được hiểu là
kiểu nhà được lắp đặt các thiết bị điện và điện tử có thể được điều khiển
một cách tự động hoặc bán tự động. Nó giúp thay thế con người trong thực
hiện một hoặc một số thao tác quản lý và điều khiển. Hệ thống điện tử này
giao tiếp với người dùng thông qua hệ thống điều khiển đặt trong nhà, ứng
dụng trên điện thoại di động, máy tính bảng hoặc một giao diện trình duyệt
web. Một hệ thống nhà thông minh thường bao gồm những yếu tố cốt lõi
như sau:
• Hệ thống cảm biến thơng minh: cảm nhận tác động môi trường, các
yếu tố chủ quan để chuyển thông tin cần thiết tới hệ thống điều khiển
tự động hoặc thông báo tới người dùng; tiếp nhận yêu cầu của người
sử dụng bằng các yếu tố hình ảnh hoặc giọng nói…
• Hệ thống xử lý, điều khiển: thu thập các dữ liệu cần thiết để ra quyết
định điều khiển, hiệu chỉnh các thiết bị trong nhà sao cho phù hợp
với kịch bản hoặc theo yêu cầu của người sử dụng.
• Hệ thống kết nối, đồng bộ: trợ giúp con người trong việc quản lý nhà
thông minh một cách tiện lợi, đồng bộ, tích hợp. Giúp việc quản lý
1
nhà đơn giản hơn, thông thường chỉ qua một thiết bị quản lý như
điện thoại, máy tính hoặc một số thiết bị di động thơng minh khác.
Trong đó, việc tương tác giữa người và hệ thống điều khiển trong
nhà thông minh là một trong những vấn đề cốt lõi tạo ra sự chính xác,
thuận tiện và thân thiện với người dùng. Hiện nay, vấn đề tương tác giữa
người và thiết bị trong nhà thông minh chủ yếu sử dụng các phương thức
trực tiếp, thiết bị trung gian hoặc sử dụng giọng nói, một số phương thức
điều khiển qua cử chỉ cũng đang được phát triển. Tuy nhiên, việc tương tác
trong nhà thơng minh cịn một số hạn chế như:
• Giá thành cao;
• Điều khiển chưa thực sự gần gũi, tiện dụng;
• Khả năng phối hợp các cơng nghệ trong nhà thơng minh
• Cịn sơ khai và đơi khi chưa phù hợp với các kịch bản sử dụng đa
dạng trong thực tế.
Các phương thức giao tiếp qua giọng nói và cử chỉ hiện nay đang rất
được chú trọng nghiên cứu vì sự tiện dụng và thân thiện của nó. Trong đó
việc sử dụng giọng nói đang rất phổ biến, tuy nhiên vấn đề xử lý nhiễu âm
thanh do khách quan người dùng hoặc mơi trường là một vấn đề khó xử lý.
Việc sử dụng cử chỉ trong các hệ thống HCI được xem là một ý
tưởng hiệu quả, giống như việc con người giao tiếp với nhau bằng cử chỉ
trong thế giới thực. Trong đó cử chỉ là hành động của một hay nhiều sự kết
hợp của nhiều bộ phận khác nhau trên cơ thể mang hàm ý truyền đạt thông
tin. Trong đó tay người (cụ thể là bàn tay) là dạng cử chỉ, là một loại ngôn
ngữ cơ thể được sử dụng phổ biến so với các bộ phận khác vì sự linh hoạt
của tay người. Các hình dạng, tư thế đa dạng của tay mang lại một lượng
lớn các thông tin cần truyền đạt trong giao tiếp.
Phương thức điều khiển bằng cử chỉ hiện nay đã có nhiều phương án
sử dụng cảm biến chuyển động để xử lý, tuy nhiên cũng gặp nhiều khó
khăn trong vấn đề chi phí và việc đảm bảo sự thuận tiện khi sử dụng. Ban
2
đầu các phương án điều khiển đưa ra là sử dụng các cảm biến gắn trên cơ
thể để nhân biết cử chỉ, tuy nhiên điều này hồn tồn khơng mang lại sự
tiện dụng cho người sử dụng. Ngày này, khoa học máy tính phát triển, các
kỹ thuật thị giác máy tính đang được ứng dụng trong đời sống, việc xử lý
hình ảnh trở nên khơng q khó khăn và phức tạp. Trong luận văn này, tác
giả sẽ trình bày phương án áp dụng nhận dạng cử chỉ trong việc điều khiển
nhà thông minh với điều kiện sử dụng các camera thơng thường với chất
lượng trung bình.
1.2.
Bài tốn nhận dạng cử chỉ
1.2.1. Ngôn ngữ cử chỉ trong tương tác người - máy
Ngôn ngữ cơ thể là một dạng của truyền thông phi ngơn ngữ trong
đó các hành vi của cơ thể, được sử dụng để thể hiện hoặc truyền đạt thông
tin. Hành vi như vậy bao gồm các biểu hiện trên khuôn mặt, tư thế cơ thể,
cử chỉ, cử động của mắt, của tay, chân trong không gian cá nhân. Trong
một số tình huống nhất định, con người khơng thể sử dụng ngơn ngữ nói
mà phải sử dụng ngơn ngữ cử chỉ và ngược lại.
Cử chỉ tay được xem là một phương pháp hữu hiệu trong việc truyền
đạt, vì sự đa dạng và linh hoạt của tay, cụ thể là bàn tay. Do đó, có thể
truyền đạt nhiều thơng tin. Cử chỉ cũng thường được sử dụng trong giao
tiếp giữa con người với con người. Trong cuộc sống, đôi khi con người vẫn
sử dụng các cử chỉ tay trong giao tiếp để biểu đạt thơng tin mà khơng nhất
thiết phải nói ra.
Ngày nay, việc áp dụng cử chỉ trong tương tác người – máy
(Human–computer interaction - HCI) đã được ứng dụng trong một số thiết
bị như ti vi, thiết bị chơi trị chơi điện tử hay robot cơng nghiệp, tuy nhiên
chưa có tiêu chuẩn cụ thể nào. Các cơng nghệ, kỹ thuật cũng rất đa dạng
ln phải đảm bảo tính hiệu quả cũng như giảm thiểu độ phức tạp cũng như
chi phí. Nhìn chung, sử dụng cử chỉ trong tương tác giữa con người và máy
tính đem lại sự trực quan và dễ dàng như khi tương tác giữa người với
3
người trong thế giới thực. Ứng dụng cử chỉ tay người trong các hệ thống
HCI cũng đang là hướng được quan tâm nghiên cứu hiện nay.
Giao tiếp người - người
Thông qua các giác quan:
thị giác, thính giác...
Giao tiếp người - máy
Thơng qua các cảm biến:
Cảm biến âm thanh, cảm
biến hình ảnh...
Hình 1.1 Tương tác người – người và tương tác người – máy.
Các cử chỉ có thể được phân loại thành hai loại chính:
• Cử chỉ tĩnh là một tư thế tĩnh của tay, là một sự kết hợp cụ thể về vị
trí và hướng của tay được quan sát tại một thời điểm nhất định. Một
tư thế tĩnh đơn giản của cử chỉ vẫn có thể truyền đạt thơng tin đầy đủ
nếu cử chỉ tĩnh đó là thơng dụng và phổ biến trong cuộc sống.
• Cử chỉ động là sự kết hợp nhiều tư thế khác nhau trong thời gian
ngắn, có thể là sự kết hợp của nhiều cử chỉ tĩnh.
1.2.2. Phân tích bài tốn nhận dạng cử chỉ trong điều khiển nhà thông
minh
Kết quả mong muốn của đề tài này là nghiên cứu, ứng dụng các công
nghệ mới hoặc sẵn có trong việc điều khiển trong nhà thơng minh sử dụng
ngơn ngữ cử chỉ với chi phí và chất lượng phần cứng ở mức giới hạn. Cùng
với đó là sự thân thiện, tiện dụng cho người sử dụng.
4
Trong lịch sử nghiên cứu nhận dạng cử chỉ tay người, đã có nhiều
hướng phát triển khác nhau. Ban đầu, hướng nghiên cứu điển hình là sử
dụng thiết bị có dạng găng tay cơ khí để nhận dạng cử chỉ, đó có thể là một
găng tay mỏng trang bị các cảm biến từ trường được sử dụng để phát hiện
vị trí và hướng của tay. Tuy nhiên các thiết bị dạng này gặp phải nhiều vấn
đề liên quan đến nhiễu trong mơi trường điện từ ở hầu hết các phịng thí
nghiệm máy tính. Do đó các nghiên cứu này dần bị hạn chế.
Trong q trình phát triển của cơng nghệ máy ảnh và thị giác máy
tính, các nghiên cứu nhận dạng cử chỉ tay người sử dụng phương pháp xử
lý hình ảnh dần được quan tâm nghiên cứu, điển hình của phương pháp này
là sử dụng cảm biến camera. Ưu điểm của phương pháp là chi phí, giá
thành cho thiết bị rẻ và dễ lắp đặt. Người tương tác không phải đeo bất kỳ
thiết bị nào nên việc thực hiện cử chỉ sẽ trở nên trực quan và tự nhiên hơn,
qua đó ứng dụng xử lý hình ảnh trong nhận dạng cử chỉ tay người dần trở
thành một chủ đề quan trọng. Áp dụng các kỹ thuật xử lý hình ảnh, phân
tích dữ liệu đầu vào từ các khung hình thu được để đưa ra kết quả nhận
dạng, thậm chí một số yếu điểm phần cứng cũng có thể được khắc phục
nhờ các thuật tốn xử lý hình ảnh.
Đối với bài toán đặt ra trong luận văn, tác giả lựa chọn phương án
nhận dạng cử chỉ động, nghĩa là nhận dạng cử chỉ dựa trên tư thế tay ở
trạng thái bắt đầu và kết thúc. Phương án này sẽ mang lại chất lượng cho
bộ xử lý, tránh được các cử chỉ nhiễu do thao tác khơng chủ đích của người
sử dụng. Tuy nhiên vấn đề nhận dạng cử chỉ này cũng sẽ phức tạp hơn
nhiều so với cử chỉ tĩnh. Q trình xử lý để giải quyết bài tốn nhận dạng
cử chỉ động thơng thường gồm ba phần:
• Q trình phát hiện: là quá trình hệ thống phát hiện được tư thế bắt
đầu của cử chỉ, từ đó phân vùng chứa đối tượng (trong bài toán này
là tay người) và tách riêng. Kể từ các khung hình tiếp theo việc xử lý
ảnh sẽ dựa trên phân vùng đó đến khi kết thúc.
5
• Q trình bám mục tiêu: điều này có thể thực hiện bằng một bộ phát
hiện, tuy nhiên nếu như vậy sẽ tiêu tốn tài nguyên có thể gặp phải sai
số trong quá trình bám mục tiêu cũng như khả năng bị ngắt liên tục.
Vì vậy cần có thuật tốn riêng để đảm bảo tính liên tục và hiệu quả.
• Quá trình nhận dạng cử chỉ: quá trình này là quá trình quyết định
xem cử chỉ đưa ra là cử chỉ gì, cơ sở phân loại cử chỉ dựa trên phân
vùng đã được tách riêng ở quá trình phát hiện.
1.2.3. Các kỹ thuật chính trong nhận dạng
Có nhiều thuật tốn xử lý ảnh hiện đại được áp dụng trong phát hiện
và nhận dạng mục tiêu:
• Các kỹ thuật học máy truyền thống (machine learning) [1]: Thường
sử dụng các phương pháp trích xuất đặc trưng như các thuật tốn bên
dưới sau đó kết hợp với thuật tốn vector máy hỗ trợ [2] (SVM) để
nhận dạng.
- Kỹ thuật phát hiện mục tiêu của Viola–Jones [3]: được coi là kỹ
thuật đầu tiên trong việc phát hiện mục tiêu thời gian thực dựa
trên trích xuất đặc trưng Haar. Thường được áp dụng trong phát
hiện khuôn mặt
- Scale-Invariant Feature Transform (SIFT) [4]: Điểm đặc biệt của
SIFT nằm ngay trong cái tên của nó Scale-Invariant, tức là nó sẽ
đưa ra các kết quả ổn định với những mức thu phóng của ảnh
khác nhau. Bên cạnh đó cũng có thể nói giải thuật này có khả
năng nhận dạng đối tượng bị xoay, lệch.
- HOG (Histogram of Oriented Gradients) [5]: HOG được tính tốn
trên một lưới dày đặc các ơ và chuẩn hóa sự tương phản giữa các
khối để nâng cao độ chính xác. HOG được sử dụng chủ yếu để
mơ tả hình dạng và sự xuất hiện của một đối tượng trong ảnh.
• Các kỹ thuật học sâu (Deep learning) [1]:
6
- Region Proposals (R-CNN [6], Fast R-CNN [7], Faster R-CNN
[8]) Phương pháp này đề xuất các khu vực có khả năng chứa đối
tượng và tiến hành nhận dạng nhằm tiết kiệm thao tác tính tốn.
- Single Shot Multi Box Detector (SSD) [9]: Ý tưởng chính của
SSD đến từ việc sử dụng các vùng giới hạn, bằng việc khởi tạo
sẵn các vùng tại mỗi vị trí trên ảnh, SSD sẽ tính tốn và đánh giá
thơng tin tại mỗi vị trí xem vị trí đó có vật thể hay khơng, nếu có
thì là vật thể nào, và dựa trên kết quả của các vị trí gần nhau, SSD
sẽ tính tốn được một vùng phù hợp nhất bao trọn vật thể.
- You Only Look Once (YOLO) [10]: phương pháp này chỉ sử
dụng duy nhất một mạng nơ ron cho toàn bộ ảnh, trong q trình
nhận dạng, YOLO sẽ "nhìn" tồn bộ bức ảnh (thay vì từng phần
bức ảnh) nên tiết kiệm tính tốn.
- Single-Shot Refinement Neural Network (RefineDet [11]): Là
phương pháp hướng tới hạn chế các hình bao khơng chứa đối
tượng cũng như tối ưu kích thước và vị trí hình bao. Từ đó tăng
tốc độ tính tốn cũng như cải thiện độ chính xác.
- RetinaNet [12] là nghiên cứu của Facebook AI Research có độ
chính xác tương đối cao.
Các kỹ thuật bám mục tiêu: Có rất nhiều thuật tốn bám mục tiêu
trong xử lý ảnh như BOOSTING [13], MIL, KCF [14], TLD,
MEDIANFLOW [15], GOTURN [16], MOSSE [17], CSRT [18]. Tùy từng
bài toán hướng tới độ chính xác hay tốc độ xử lý mà có thể lựa chọn thuật
tốn phù hợp.
1.2.4. Những vấn đề đặt ra
Trong sinh hoạt hàng ngày, cử chỉ tay người rất đa dạng và có thể
thay đổi trong các ngữ cảnh khác nhau, các kỹ thuật nhận dạng cử chỉ có
thể áp dụng thành cơng trong bài tốn này nhưng chưa chắc đã thành cơng
trong trường hợp khác. Vì vậy cần đảm bảo một số yếu tố sau:
7
• Xây dựng bộ dữ liệu: Việc xây dựng bộ dữ liệu đào tạo ban đầu là rất
quan trọng. Như đã trình bày ở trên, các kỹ thuật đều sử dụng các
phương pháp máy học, nên bộ dữ liệu ban đầu (cơ sở để đào tạo) sẽ
quyết định phần lớn độ chính xác, độ nhạy của hệ thống.
• Độ chính xác xử lý: Vì điều kiện xử lý trong mơi trường đa dạng,
ánh sáng, màu sắc có thể thay đổi nên phải đảm bảo lựa chọn thuật
tốn phù hợp.
• Tốc độ xử lý: Bài toán đặt ra xử lý nhận dạng trong điều kiện thời
gian thực nên tốc độ xử lý cần đảm bảo nhanh, tiết kiệm tài nguyên
hệ thống trong điều kiện cho phép.
• Sự tiện lợi cho người sử dụng: Các kỹ thuật phải nhận dạng các cử
chỉ một cách tự nhiên nhất.
1.3.
Ý tưởng xây dựng hệ thống và các kỹ thuật sử dụng
Mục tiêu của thuật toán là phát hiện được cử chỉ với tốc độ xử lý
trong thời gian thực, giảm thiểu tối đa các nhiễu, giảm khả năng bắt các cử
chỉ khơng có chủ đích. Trong nội dung luận văn, tác giả thực hiện nghiên
cứu và thử nghiệm dựa trên một số cử chỉ đơn giản và mơ phỏng trên máy
tính dựa trên hình ảnh thu được từ camera máy tính.
Các lệnh điều khiển bằng cử chỉ tác giả đề xuất trong đề tài này bao
gồm: bật, tắt, tăng, giảm. Trong đó sử dụng các cử chỉ động như sau:
• Lệnh chuyển trạng thái (bật/tắt): bàn tay từ trạng thái xòe ra hướng
lên, chuyển sang trạng thái nắm lại;
• Lệnh tăng: bàn tay từ trạng thái xịe ra hướng lên chuyển sang hướng
sang trái;
• Lệnh giảm: bàn tay từ trạng thái xòe ra hướng lên chuyển sang
hướng sang phải.
Các cử chỉ được mô tả như hình 1.2:
8
Chuyển trạng
thái (bật/tắt)
Tăng
Giảm
Hình 1.2 Các cử chỉ khi điều khiển.
Với các cử chỉ như trên mơ hình thuật tốn chương trình nhận dạng
sẽ thực hiện theo phương án như hình 1.3. Trong đó, việc xử lý ảnh trước
khi thực hiện nhận dạng sẽ dựa trên mỗi khung hình trong thời gian thực.
Sau đó chương trình tiến hành phát hiện khu vực chứa tay người dựa trên
mơ hình phát hiện đã được đào tạo từ trước, từ đó trích xuất vùng quan tâm
trong khung hình (Region Of Interest – ROI). Mơ-đun bám đối tượng sẽ
nhận toạ độ vùng quan tâm và khóa đối tượng theo dõi để vùng ROI bám
theo trong các khung hình tiếp theo. Tiếp theo, mơ-đun nhận dạng sẽ được
kích hoạt, đánh giá trong ROI có phải cử chỉ bắt đầu, từ kết luận mà tiếp
tục bám ROI ở các khung hình tiếp theo để tìm cử chỉ kết thúc và đưa ra
kết luận cử chỉ.
Quá trình nhận dạng cơ bản được tham khảo từ bài báo của B. P.
Pradeep Kumar và M. B. Manjunatha [19] mô tả như hình 1.3. Dựa trên
phương pháp cơ bản này, tác giả sử dụng một số thuật toán để đảm bảo tốc
độ cũng như độ chính xác khi nhận dạng cử chỉ.
Video
Tiền xử lý
Phát hiện vùng tay
Bám vùng tay
Nhận dạng cử chỉ
bắt đầu và kết thúc
Kết luận cử chỉ
Hình 1.3 Quá trình nhận dạng cử chỉ
9
Khung hình từ camera
thời gian thực
Resize
CLAHE
Median Blurring
Tiền xử lý
HOG & SVM
Phát hiện vùng tay
Detect Multi scale
NMS
No
Yes
No
KCF
Bám vùng tay
Yes
Nhận dạng
cử chỉ bắt đầu
CNN
No
Yes
No
Bám vùng tay
Yes
No
Nhận dạng
cử chỉ kết thúc
Yes
Đưa ra kết luận
loại cử chỉ
Hình 1.4 Thuật tốn nhận dạng cử chỉ và các kỹ thuật được áp dụng.
10
Như mơ tả trong hình 1.4, trước khi thực hiện vùng ảnh chứa tay
người, tác giả thực hiện tiền xử lý ảnh. Đầu tiên, hình ảnh được thay đổi
kích thước về dạng tiêu chuẩn để đồng bộ quá trình xử lý. Tiếp theo hình
ảnh được xử lý bằng phương pháp Cân bằng biểu đồ thích ứng có giới hạn
tương phản (CLAHE [20]) để cân bằng hình ảnh và cuối cùng được làm
mịn bằng bộ lọc Median Blur [21].
Quá trình phát hiện mục tiêu (tay người) được tác giả sử dụng
phương pháp trích xuất đặc trưng HOG [5] và thuật tốn SVM [2]. Cùng
với đó là kỹ thuật Multi-scale và Sliding window [22]và Non-maximum
Suppression (NMS) [23]. Kết quả của quá trình này là vị trí vùng quan tâm
ROI (Region of interest) chứa hình ảnh bàn tay.
Khi đã có vùng ROI, tác giả sẽ sử dụng phương pháp bám mục tiêu
KCF [14] để theo dõi vùng ROI khi bàn tay di chuyển trong quá trình thực
hiện cử chỉ động.
Cuối cùng hình ảnh được phân loại, nhận dạng bằng mơ hình CNN
[24] và đưa ra quyết định cuối cùng về loại cử chỉ của người dùng. Các
lệnh điều khiển được đưa ra dựa trên các cử chỉ đã được quy ước từ trước.
1.4.
Các kỹ thuật đề xuất
1.4.1. Kỹ thuật phát hiện đối tượng
Phát hiện đối tượng là bài toán với hai yêu cầu đặt ra. Thứ nhất là
phát hiện trong ảnh có chứa đối tượng hay khơng? Thứ hai là cần tìm ra vị
trí của đối tượng trong ảnh. Như đã giới thiệu trong mục 1.2.3, có rất nhiều
thuật tốn để thực hiện điều này, mỗi thuật tốn có ưu và nhược điểm khác
nhau. Trong bài toán đang nghiên cứu, yêu cầu đặt ra là độ chính xác của
kết quả cũng như đủ nhanh để hoạt động trong thời gian thực. Trong đó
thao tác phải thực hiện nhiều nhất, gần như liên tục là thao tác phát hiện đối
tượng, vì vậy cần phải lựa chọn các kỹ thuật với tốc độ tính tốn tương đối
nhanh.
Trong luận văn này, ý tưởng thực hiện của tác giả là sử dụng kỹ
thuật Multi-scale và Sliding window [22] để tách hình ảnh ra các vùng
11
quan tâm (ROI) là một phần của ảnh. Sau đó cắt ảnh từ các vùng ROI đó và
rút trích đặc trưng HOG và kỹ thuật SVM để phân loại ảnh có chứa đối
tượng hay khơng. Từ đó đưa ra kết luận các vùng có khả năng chứa đối
tượng. Cuối cùng, sử dụng kỹ thuật Non Maximum Suppression để tìm ra
vùng ROI phù hợp nhất.
Như vậy các kỹ thuật cần tìm hiểu để nhận dạng đối tượng bao gồm:
• Multi-scale và Sliding window;
• Đặc trưng HOG;
• Mơ hình SVM;
• Kỹ thuật Non Maximum Suppression;
1.4.2. Kỹ thuật bám đối tượng
Khi chương trình đã phát hiện được khung hình chứa đối tượng cũng
như vùng ROI chứa đối tượng trong khung hình đó thì việc tiếp theo là phải
khóa mục tiêu và bám theo khi mục tiêu chuyển động hoặc có thể có biến
dạng một phần trong các khung hình tiếp theo.
Việc dùng kỹ thuật bám đối tượng sẽ là cần thiết trong bài tốn, vì cử
chỉ của người dùng sẽ diễn ra trong thời gian một vài giây, nếu tiếp tục sử
dụng kỹ thuật phát hiện và phân loại để kết luận sẽ khó đạt được tốc độ xử
lý mong muốn, hoặc có thể mang lại kết luận sai. Ví dụ trường hợp hành
động bắt đầu cử chỉ và hành động kết thúc cử chỉ lại đến từ hai đối tượng
hoàn toàn khác nhau. Đặc biệt giai đoạn trung gian giữa bắt đầu và kết thúc
cử chỉ thì đối tượng (tay người) có thể biến dạng một phần, có thể ở trạng
thái khó có thể dùng kỹ thuật phát hiện được, sẽ dễ dàng hơn khi bám đối
tượng với đầu vào là thông tin vùng ROI chứa đối tượng trong các khung
hình trước đó.
Yêu cầu đối với kỹ thuật bám đối tượng trong bài toán này là độ bám
tương đối nhanh, với độ chính xác khơng q cao. Trong luận văn này, tác
giả lựa chọn thuật toán Kernelized Correlation Filter (KCF) để bám đối
tượng. Thuật tốn này có tốc độ tương đối tốt và độ chính xác phù hợp, sẽ
12
không khôi phục bám đối tượng khi mất mục tiêu, điều này sẽ giảm được
nhiễu cho hệ thống điều khiển bằng cử chỉ.
1.4.3. Kỹ thuật phân loại đối tượng
Các kỹ thuật phân loại đối tượng đặc biệt được chú ý trong xử lý
ảnh, nó là một bài tốn lớn trong các ứng dụng trí tuệ nhân tạo. Trong nội
dung bài toán của đề tài này, các yêu cầu đặt ra cho bộ phân loại là có thể
phân biệt được các cử chỉ bắt đầu với nhau, các cử chỉ kết thúc với nhau.
Về độ chính xác yêu cầu phải cao, điều này sẽ đảm bảo mức chính xác
mong muốn của việc điều khiển. Còn lại, đối với tốc độ xử lý khơng u
cầu q cao vì thơng tin vùng ROI chứa đối tượng đã được biết và việc
phân loại không diễn ra liên tục trong mọi khung hình.
Khi đã phát hiện vùng chứa đối tượng (cử chỉ bắt đầu của bàn tay) và
bám theo mục tiêu, công việc tiếp theo là nhận dạng cử chỉ đó là bắt đầu
cho hành động gì hay khơng phải là một cử chỉ. Sau khi nhận dạng được cử
chỉ bắt đầu, tiếp tục nhận kết quả bám mục tiêu và nhận dạng cử chỉ kết
thúc.
Để làm nhiệm vụ này, tác giả nghiên cứu và lựa chọn mơ hình mạng
thần kinh tích chập (CNN), đây là một trong những mơ hình học sâu phổ
biến nhất và có ảnh hưởng nhiều nhất trong cộng đồng nghiên cứu thị giác
máy tính nói chung và học máy nói riêng. Mơ hình CNN được dùng trong
nhiều bài tốn như nhận dạng ảnh, phân tích video, ảnh MRI (Magnetic
Resonance Imaging), hoặc cho các bài toán của lĩnh vực xử lý ngôn ngữ tự
nhiên, và hầu hết đều giải quyết tốt các bài toán này.
1.5.
Kết luận
Trong phần này, tác giả đã phân tích những vấn đề đặt ra của bài
tốn và hướng tiếp cận các phương án xử lý dựa trên các nghiên cứu đã
được công bố để lựa chọn hướng đi phù hợp với bài toán. Phần tiếp theo tác
giả sẽ tìm hiểu mơ tả chi tiết về cơ sở lý thuyết của các kỹ thuật được sử
dụng, từ đó hiểu thêm về cách sử dụng và thiết lập sao cho hợp lý và đạt
hiệu quả cao cho bài toán.
13
CHƯƠNG II: CÁC KỸ THUẬT XỬ LÝ ẢNH
2.1. Ảnh số và xử lý ảnh số
Ảnh kỹ thuật số là dữ liệu được các thiết bị ghi hình kỹ thuật số như
máy ảnh số, camera số ghi lại từ phép chiếu hình ảnh ba chiều của vật thể
từ thế giới thực lên mặt phẳng hai chiều. Ánh sáng từ nguồn sáng phản xạ
trên bề mặt vật thể, đi qua thấu kính đến bề mặt cảm biến điện tử. Cảm biến
này tiếp nhận ánh sáng và chuyển đổi thành tín hiệu điện tử dạng tương tự.
Sau đó bộ phận chuyển đổi tương tự - số thực hiện việc lấy mẫu (sampling)
để chuyển tín hiệu tương tự sang tín hiệu số và lưu xuống thiết bị lưu trữ.
Ảnh số bao gồm một lưới các điểm ảnh (pixel), được lưu trữ dưới dạng
mảng hai chiều. Trong đó, mỗi điểm ảnh là một thành phần ảnh nhỏ nhất
biểu diễn giá trị cường độ sáng tại vị trí của nó. Giá trị của mỗi điểm ảnh là
rời rạc. Mảng hai chiều lưu trữ dữ liệu ảnh gồm một số lượng hữu hạn số
hàng và số cột.
2.1.1. Các loại ảnh số
Ảnh nhị phân
Mỗi điểm ảnh chỉ là màu đen hoặc trắng, được biểu diễn bằng 0 và 1.
Vì chỉ có hai giá trị có thể cho mỗi điểm ảnh, chúng ta chỉ cần một bit cho
mỗi điểm ảnh. Như vậy, việc lưu trữ khá hiệu quả. Ảnh nhị phân có thể phù
hợp với văn bản (in hoặc viết tay), dấu vân tay, thiết kế kiến trúc.
Ảnh đa mức xám (Grayscale)
Giá trị cường độ điểm ảnh được mã hóa trong L mức. Trong đó mức
độ đen hay trắng được chia thành L khoảng đều nhau. Giá trị mỗi điểm ảnh
nằm trong L khoảng này, là giá trị rời rạc biểu diễn mức cường độ sáng tại
vị trí điểm ảnh. Giá trị điểm ảnh càng cao, cường độ sáng càng lớn và
ngược lại. Ngày nay các thiết bị thường sử dụng mỗi 8bit để mã hóa giá trị
một điểm ảnh, nghĩa là L = 256 khoảng. Giá trị điểm ảnh nằm giữa 0 và
255. Trong trường hợp L = 2, một điểm ảnh chỉ có 2 mức giá trị 0 và 1, ta
được ảnh nhị phân với mức 0 biểu diễn màu đen tuyệt đối và mức 1 biểu
14