Ý nghĩa khoa học và thực tiễn [1] Đưa ra một bản lý thuyết với các nội dung tìm hiểu, phân tích về các phương pháp phát hiện làn da con người, các phép toán hình thái trong xử lý ảnh và
Trang 1PHẦN MỞ ĐẦU 1
1 Tính cấp thiết của đề tài 1
2 Ý nghĩa khoa học và thực tiễn [1] 1
3 Lịch sử nghiên cứu 1
3.1 Trên thế giới [3] 1
3.2 Trong nước 3
4 Mục tiêu nghiên cứu 3
5 Đối tượng và phạm vi nghiên cứu 4
6 Sơ lược về nội dung luận văn 4
7 Giới hạn đề tài 4
CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN 6
1.1 Giới thiệu về thiết bị Camera Kinect 6
1.2 Các giai đoạn xử lý ảnh 11
1.3 Giới thiệu về SVM (Support Vector Machine) 12
1.4 Các công thức liên quan 13
1.5 Giới thiệu về mô-men bất biến 17
1.6 Giới thiệu các phép toán hình thái học 17
1.7 Kết luận 18
CHƯƠNG 2 NỘI DUNG NGHIÊN CỨU 19
2.1 Phát hiện làn da thông qua màu sắc [2] 19
2.2 Thuật toán SVM 20
2.2.1 Huấn luyện SVM 21
2.2.2 Các ưu thế của SVM trong phân lớp bàn tay [5] 22
2.3 Phát hiện làn da 22
2.4 Mục tiêu ứng dụng của hình thái học 24
2.5 Các phép toán hình thái học [7] 25
2.6 Các thao tác với hình thái học nhị phân [9] 26
2.6.1 Phép Dilation (dãn nhị phân) [8] 27
2.6.2 Phép Erosion (bào mòn ảnh) [8] 29
2.6.3 Phép Opening và Closing (đóng và mở ảnh) [8] 31
2.6.4 Thuật toán tách các thành phần liên thông 32
2.6.5 Mô men bất biến [6] 34
2.7 Kết luận 39
CHƯƠNG 3 KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ 41
3.1 Quá trình thử nghiệm 41
3.2 Kết quả thử nghiệm 41
3.3 Đánh giá 44
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 45
PHỤ LỤC 46
TÀI LIỆU THAM KHẢO 46
Trang 2DANH MỤC CÁC HÌNH VẼ
Hình 1.1 : Camera Kinect của hàng Microsoft 6
Hình 1.2: Nhận diện hành động game thủ và điều khiển nhân vật trong game 7
Hình 1.3: Những thành phần chính của Kinect 7
Hình 1.4: Chiếc xe có khả năng giúp nhận biết các món hàng bạn mua 9
Hình 1.5: Chiếc xe thử nghiệm tại hệ thống siêu thị Whole Foods 10
Hình 1.6: Điều khiển máy tính bằng Kinect 11
Hình 1.7: Điều khiển máy tính bằng cử chỉ 11
Hình 1.8: Các giai đoạn xử lý ảnh 12
Hình 1.9: Quan hệ láng giềng 14
Hình 1.10: Quan hệ lân cận 14
Hình 1.11: Khoảng cách City-Block 15
Hình 1.12: Khoảng cách ChessBoard 15
Hình 2.1: Phần tử cấu trúc được chuyển đổi thành mảng vuông 24
Hình 2.2: Kết quả được xử lý bởi phần tử cấu trúc 25
Hình 2.3: Phép phản xạ và tịnh tiến của B 26
Hình 2.4: Phép Dilation 27
Hình 2.5: Ví dụ phép Dilation (dãn nhị phân) 28
Hình 2.6: Bàn tay xòe khi sử dụng Dilation 28
Hình 2.7: Các bàn tay sau khi phân ngưỡng bị nhiễu 29
Hình 2.8: Các bàn tay sau khi sử dụng Erosion 30
Hình 2.9: Phép Opening 31
Hình 2.10: Phép Closing 32
Hình 2.11: Bàn tay xòe khi sử dụng Opening và Closing 32
Hình 2.12: Tách thành phần liên thông 33
Hình 2.13: Bằng cách sử dụng các thành phần liên thông để phát hiện các đối tượng khác trong thực phẩm đóng gói 34
Hình 2.14: Các biến đổi hình dáng đối tượng 35
Hình 2.15: Ví dụ mô men bất biến 36
Hình 2.16: Quá trình truyền tín hiệu xuống Robot 38
Hình 2.17: Lưu đồ xử lý ảnh 39
Hình 3.1: Robot nhận tín hiệu mở kết nối 41
Hình 3.2: Robot nhận tín hiệu qua phải 41
Hình 3.3: Robot nhận tín hiệu tiến 42
Hình 3.4: Robot nhận tín hiệu lùi 42
Hình 3.5: Robot nhận tín hiệu qua trái 42
Hình 3.6: Robot nhận tín hiệu tắt kết nối 43
Trang 3Bảng 2.1: Bảng đánh giá thuật toán SVM 22 Bảng 2.2: Giá trị của 7 mô men bất biến 37 Bảng 3.1: Kết quả độ chính xác của chương trình sau khi kiểm nghiệm 43
Trang 4PHẦN MỞ ĐẦU
1 Tính cấp thiết của đề tài
Trong những năm gần đây, các ứng dụng về trí tuệ nhân tạo ngày càng phát triển và được đánh giá cao Một lĩnh vực đang được quan tâm của trí tuệ nhân tạo nhằm tạo ra các ứng dụng thông minh, mang tính tri thức con người đó là nhận dạng Với sự phát triển mạnh mẽ của công nghệ và nhu cầu của con người ngày càng cao Một bài toán được đặt ra là: Làm sao có thể điều khiển máy tính, các thiết
bị giải trí, robot…bằng những cử chỉ, hành động và lời nói của con người ?
Nhận dạng hình ảnh và âm thanh là một giải pháp để giải quyết bài toán này,
và một phần nhỏ trong lĩnh vực đó là nhận dạng cử chỉ bàn tay
Lý do chủ quan khi chọn đề tài: Những năm gần đây robot là một trong những thế mạnh của Trường Đại Học Lạc Hồng Và em muốn làm cho Đại Học Lạc Hồng sẽ trở nên mạnh hơn nữa về công nghệ chế tạo robot thông minh Để lại một cái gì đó quý báu cho những sinh viên khóa sau của trường phát triển tốt hơn về các công nghệ cao và các ngành khác liên quan
2 Ý nghĩa khoa học và thực tiễn [1]
Đưa ra một bản lý thuyết với các nội dung tìm hiểu, phân tích về các phương pháp phát hiện làn da con người, các phép toán hình thái trong xử lý ảnh và nhận dạng cử chỉ bàn tay của con người Nhằm mục đích góp một phần vào lĩnh vực ứng dụng của nhận dạng, cụ thể hơn ở đây là có thể ứng dụng vào việc điều khiển di chuyển robot… Ứng với mỗi cử chỉ bàn tay thì robot sẽ xử lý tiến, lùi, qua phải hay qua trái
Hình 1: Nơi làm việc tương tác của ứng dụng
Trang 5Hình 2: Giao diện ứng dụng và màu da đang học trong hình vuông
Hình 3: Công thức tính màu da
Ngoài ra, từ đường viền của bàn tay và bao lồi của tay chúng ta có thể tính toán chuỗi các đường viền giữa hai đỉnh lồi liên tiếp Trình tự này được gọi là góc lồi Từ độ sâu này, một số đặc điểm hình dạng bàn tay có thể được nhận được chiều sâu trung bình
Hình 4: Hình ảnh nhận dạng bao lồi của bàn tay
Hình 5: Công thức tính chiều sâu của bàn tay
b) Nhận dạng cử chỉ:
Cử chỉ của chúng ta cơ bản gồm 4 cử chỉ theo 4 hướng để thực hiện những yêu cầu của ứng dụng Những cử chỉ được định nghĩa với thứ tự như Start, Move, Stop, và No-Hand
Trang 6Bước đầu tiên trong nhận dạng xử lí cử chỉ là mô hình cử chỉ Start Chiều dài trung bình của góc lồi là một bàn tay mở với những ngón tay được tách rời rộng hơn ngón tay không tách rời Đặc điểm này sẽ khác những cử chỉ từ Stop sang Start, từ Start sang Move; và từ không bàn tay sang Start
3.2 Trong nước
Hiện nay trong nước có một số chương trình “Nhận dạng cử chỉ bàn tay” nhưng đa phần độ chính xác của chương trình chưa cao Một số công cụ hỗ trợ cho nhận dạng bàn tay như là webcame, camera thường… nhưng chưa hỗ trợ nhiều chức năng và thường khó thao tác
4 Mục tiêu nghiên cứu
- Nhận dạng cử chỉ bàn tay của con người để xây dựng chương trình điều khiển robot như 7 cử chỉ sau:
- No Hand: Không có bàn tay trong hình ảnh (robot sẽ không di chuyển)
- Start: Là bàn tay xòe (robot sẽ bắt đầu)
- Move: Là bàn tay khép (robot chuẩn bị di chuyển)
- Stop: Là bàn tay nắm (robot dừng lại)
- Front: Là bàn tay tiến gần Camera Kinect (robot tiến về phía trước)
- Left: Là bàn tay nghiêng sang trái (robot di chuyển qua trái)
- Right: Là bàn tay nghiêng phải (robot di chuyển qua phải)
- Back: Là bàn tay lùi xa Camera Kinect (robot lùi về phía sau)
Hình 6: Mô hình điều khiển và quá trình bàn tay chuyển đổi hợp lệ
Trang 7- Kết nối Kinect
- Lập trình với Kinect để lấy hình ảnh cần lấy
- Phân ngưỡng ảnh, xóa nhiễu với Opening và Closing
- Dùng bộ phân lớp SVM để xác định bàn tay khép, xòe, nắm
- Dùng 7 mô men bất biến để xác định cử chỉ bàn tay (khép trái, khép phải)
- Kết nối Robocon
- Viết báo cáo tổng kết đề tài
5 Đối tƣợng và phạm vi nghiên cứu
a) Đối tƣợng nghiên cứu:
- Về ứng dụng: Xây dựng ứng dụng phần mềm trên máy tính “Nhận dạng
cử chỉ của bàn tay để điều khiển robot”
- Điều kiện thực hiện: Nhận dạng để phát hiện bàn tay trong ảnh, trong đó
ảnh được lấy trong môi trường bình thường (không tối quá hoặc sáng
quá)
- Đối tượng nghiên cứu: Robot người LHU
6 Sơ lƣợc về nội dung luận văn
Luận văn gồm 3 chương:
Chương 1: Giới thiệu tổng quan
- Về thành phần cấu tạo của thiết bị cảm biến kinect, các thư viện hỗ trợ
- Giới thiệu các ứng dụng hỗ trợ nhận bàn tay
Chương 2: Nội dung nghiên cứu
- Phát hiện làn da thông qua màu sắc
- Các thao tác với hình thái học nhị phân
- Trích các đặc điểm bàn tay
- Kết nối robot
Chương 3: Kết quả và hướng phát triển
-Kết quả nghiên cứu
-Hướng phát triển trong tương lai
7 Giới hạn đề tài
Đề tài tập trung vào tìm hiểu các phương pháp xử lý ảnh và nhận dạng các cử chỉ của bàn tay
Trang 8Giới hạn luận văn: Vì thời gian có hạn nên Luận văn chỉ dừng lại ở việc tìm hiểu
lý thuyết về xử lý ảnh, nhận dạng và demo nhận dạng các cử chỉ bàn tay
Trong phần trình bày lý thuyết, em không tập trung vào vấn đề chứng minh, tối ưu các thuật toán mà trình bày các vấn đề, phương pháp và các thuật toán về xử lý ảnh
và nhận dạng được sử dụng trong chương trình demo
Trang 9Chương 1 Giới thiệu tổng quan
1.1 Giới thiệu về thiết bị Camera Kinect
a) Sự ra đời và phát triển
Kinect (hay còn biết với mã là Project Natal) là thiết bị thu nhận các cảm biến chuyển động, được phát triển bởi Microsoft Thời gian đầu, Kinect là thiết bị chuyên dụng của hệ máy Xbox 360, phục vụ cho việc chơi game (Hình 1.2)
Hình 1.1 : Camera Kinect của hàng Microsoft
Các mốc thời gian ra đời, phát triển của kinect và các thành phần liên quan:
5/30/2007: Microsoft nung nấu ý tưởng về một thiết bị dùng camera ghi nhận cử động điều khiển thay cho các thiết bị truyền thống
6/1/2009: Microsoft công bố “Project Natal” ở hội nghị thường niên E3
6/13/2010: Trong suốt hội nghị E3, đổi tên “Project Natal” thành Kinect, chính thức là thiết bị hỗ trợ cho Xbox 360
11/4/2010: Microsoft chính thức tung ra thị trường Kinect; cũng từ đây, nhưng kế hoạch phát triển driver nguồn mở cho Kinect của các tổ chức/hacker cũng bắt đầu thực hiện
11/10/2010: hacker trẻ tuổi Hector đã phát triển thành công driver cho Kinect
2/21/2011: Microsoft lên kế hoạch cho việc phát triển bộ SDK hỗ trợ cho Kinect
Kinect sử dụng webcam, thiết bị thu phát sóng hồng ngoại, và thiết bị thu nhận âm thanh để ghi nhận tín hiệu chuyển động của game thủ và nhận dạng các lệnh điều khiển thông qua giọng nói, giúp cho các game thủ tương tác với Xbox 360
mà không cần chạm vào bất kì thiết bị điều khiển nào Trong đó, game thủ có thể thao tác như thật
Trang 10Hình 1.2: Nhận diện hành động game thủ và điều khiển nhân vật trong game
Kinect, hỗ trợ các chức năng tương tác sau:
Ghi nhận chuyển động tay (hand gesture), bao gồm các hành động xoay vòng (circle), di chuyển tay (wave gesture), push,
Ghi nhận chuyển động toàn cơ thể (full body skeleton), xác định các vị trí chính của cơ thể như đầu, vai, cẳng tay, chân,…
Điều khiển bằng giọng nói
Nhận dạng số người đang chơi
Các thông số kỹ thuật:
- Khoảng cách hiệu quả: 0.83.5m
- RGB camera: độ phân giải 640 x 480, 30 frame/s, 32 bit màu
Trang 11- Góc quay hiệu quả: 57º ngang, 43º dọc, ± 27º nghiêng
Thư viện Libfreenect: Libfreenect là thư viện được phát triển bởi OpenKinect, do một cộng đồng những người quan tâm đến phần cứng Kinect viết ra và chia sẻ Cộng đồng OpenKinect làm việc hoàn toàn tự nguyện và không vì mục đích lợi nhuận, họ phát triển Libfreenect thành một mã nguồn mở cho các hệ điều hành khác nhau Windows, Linux và
OS X Hiện tại, Libfreenect được đóng gói cho việc sử dụng trên Python,
C, C++, C#, Java JNI, Java JNA, Javascript
Thư viện Code Laboratories Kinect: Code Laboratories (CL) là một công
ty phần mềm chuyên hỗ trợ các nhà phát triển, lập trình viên khai thác các tính năng của các thiết bị xử lý ảnh Trong số đó Kinect không phải là ngoại lệ, CL cung cấp cho người sử dụng những tính năng cơ bản nhất của Kinect về camera, audio và motor
Thư viện OpenNI: Thư viện OpenNI được xem là thư viện mạnh nhất trước sự có mặt của Kinect SDK 1.0, thư viện này hỗ trợ đa ngôn ngữ trên nhiều platform khác nhau, giúp cho các lập trình viên có thể viết các ứng dụng trên Kinect rất dễ dàng tương tác tự nhiên Natural Interaction (NI) Mục đích chính của OpenNI là xây dựng các hàm API chuẩn, cho phép thư viện có khả năng kết hợp với các middleware nhằm làm tăng sức mạng cho Kinect
Thư viện Kinect SDK: SDK cung cấp cho nhà phát triển những bộ cảm biến có chiều sâu, camera cảm biến màu sắc và xác định nguồn âm thanh theo chùm tia Các nhà phát triển cũng có thể theo dõi ảnh ở dạng khung sườn của một hay hai người đang di chuyển trong tầm ngắm Kinect, từ đó các nhà phát triển có thể tạo ra những ứng dụng hướng theo cử chỉ (gesture) SDK gồm tính năng âm thanh như giảm tiếng ồn và hạn chế tiếng vang Các nhà phát triển có thể truy cập vào công nghệ hình thành tia để nhận diện ra nguồn âm thanh hay có thể truy cập vào giao diện trình ứng dụng (API) để nhận diện giọng nói trong hệ thống Windows
Trang 12Các nhà phát triển có thể viết ứng dụng bằng ngôn ngữ C#, C++ và bất cứ ngôn ngữ Net nào
d) Một số ứng dụng của Kinect
Mua sắm vốn là một hoạt động xã hội và những kinh nghiệm mua sắm có thể hỗ trợ nhiều người dùng cùng một lúc bằng cách tận dụng các công cụ xã hội.Ví dụ, các hình ảnh được chụp với các sản phẩm ảo có thể được chia sẻ thông qua Facebook và Twitter để giúp thông tin đến và phản hồi từ bạn bè
Hệ thống điều khiển dựa trên camera theo dõi chuyển động, Kinect của Microsoft đã chứng minh giá trị ứng dụng cao của mình trong nhiều lĩnh vực từ y tế đến giáo dục Gần đây nhất, Microsoft đã giới thiệu một lĩnh vực ứng dụng mới cho công nghệ này đó chính là mua sắm
Hình 1.4: Chiếc xe có khả năng giúp nhận biết các món hàng bạn mua
Theo đó, một chiếc xe đẩy đã được thiết kế đặc biệt, tích hợp thiết bị Kinect và cùng một màn hình hiển thị đi kèm Chiếc xe này có khả năng giúp nhận biết các món hàng bạn mua, tự động kiểm tra chúng với danh sách đi chợ và thậm chí có thể
tự đi theo bạn loanh quanh trong siêu thị
Trang 13Hình 1.5: Chiếc xe thử nghiệm tại hệ thống siêu thị Whole Foods
Nguyên mẫu này chỉ mới là bước thử nghiệm ban đầu tại hệ thống siêu thị Whole Foods, Mỹ Microsoft hy vọng sẽ có thể phát hiện và khắc phục các hạn chế, đồng thời hoàn thiện sản phẩm trước khi chúng được đem ra ứng dụng trong thực tế Trong trò chơi: Vào hai ngày 6-7/12/2011 tại Kuala Lumpur (Malaysia), chuyên gia Jason Trump của Microsoft cho hay Kinect đang khiến mọi người thay đổi quan niệm không hay về game Không còn ngồi lỳ trước màn hình máy tính, Kinect giúp mọi người chơi vận động toàn bộ cơ thể như thể đang thực hiện một bài tập thể dục
Sử dụng Kinect, các nhà phát triển có thể tạo ra những trò chơi thú vị và mang đến những đột phá trong giáo dục Giáo viên có thể khiến bài học sinh động hơn khi điều khiển bằng tay các hình minh họa Chơi game sẽ giống như một quá trình liên tục khám phá, sửa sai, tìm tòi cái mới cho đến khi thành thục, nhuần nhuyễn mà không tạo cảm giác nhàm chán cho học sinh
Điều khiển màn hình máy tính không dùng chuột, bàn phím: Không cần dùng đến chuột và bàn phím, nhóm Fluid Interfaces Group của Viện công nghệ MIT (Mỹ) vẫn có thể cuộn thanh cuốn, bấm vào đường link, phóng to nội dung nhờ thiết
bị chơi game Kinect
Trang 14Hình 1.6: Điều khiển máy tính bằng Kinect
Đại học Nam California (Mỹ) giới thiệu bộ công cụ có tên Sloow kết hợp với sensor cảm ứng của Microsoft để điều khiển hòm thư bằng hành động như mở email với động tác như đang xé phong bì, trả lời thư bằng cách hất ngón cái ra phía sau, hoặc làm động tác dán tem để gửi email đi
Hình 1.7: Điều khiển máy tính bằng cử chỉ
1.2 Các giai đoạn xử lý ảnh
Quá trình xử lý ảnh được xem như là quá trình thao tác với ảnh đầu vào nhằm cho
ra kết quả mong muốn Kết quả đầu ra của quá trình xử lý ảnh là một ảnh tốt hơn hoặc là một kết luận
a) Các giai đoạn xử lý ảnh bao gồm:
- Thu nhận ảnh:
Ảnh được thu nhận chính là ảnh gốc để đưa vào xử lý ở các giai đoạn sau, nếu ảnh gốc có chất lượng kém thì các bước xử lý sau có hiệu quả thấp Ảnh đầu vào sẽ được thu nhận qua các thiết bị như camera, sensor, máy scanner…
- Tiền xử lý:
Trang 15Phân đọan Biểu diễn
ảnh
Nén ảnh
Tiền xử lý
Thu nhận ảnh
Nhận dạng
Cơ sở tri thức
- Biểu diễn:
Giai đoạn này tiếp theo sau giai đoạn phân đoạn, vì vậy mà ảnh đầu ra của phân đoạn chứa các đặc điểm của vùng ảnh và mã liên kết vùng lân cận Việc chọn các tính chất để thể hiện ảnh gọi là trích đặc trưng làm cơ sở cho việc phân biệt lớp đối tượng này với lớp đối tượng khác
- Nhận dạng:
Nhận dạng ảnh là quá trình xác định ảnh, là quá trình so sánh với mẫu chuẩn đã được học Theo lý thuyết về nhận dạng thì có 2 loại nhận dạng: Nhận dạng theo tham số và Nhận dạng theo cấu trúc
- Cơ sở trí thức:
Ngoài việc tối ưu, đơn giản hóa trong việc xử lý và phân tích ảnh Thì con người mong muốn tiếp nhận và xử lý ảnh theo phương pháp trí tuệ con người
Hình 1.8: Các giai đoạn xử lý ảnh
1.3 Giới thiệu về SVM (Support Vector Machine)
SVM sử dụng thuật toán học nhằm xây dựng một siêu phẳng làm cực tiểu hoá
độ phân lớp sai của một đối tượng dữ liệu mới Độ phân lớp sai của một siêu phẳng được đặc trưng bởi khoảng cách bé nhất tới siêu phẳng đấy SVM có khả năng rất lớn cho các ứng dụng được thành công trong bài toán nhận dạng
Trang 16Như đã biết, nhận dạng bàn tay là một cách tiếp cận mới để tạo ra tập phân lớp bàn tay từ các mẫu cho trước Cách tiếp cận này phối hợp với sự thực thi ở mức độ cao và hiệu suất cùng với những am hiểu về mặt lý thuyết, tính chất thô ngày càng được hoàn thiện Thông thường, hiệu quả ở mức độ cao không có các thành phần suy nghiệm Phương pháp SVM có khả năng tính toán sẵn sàng và phân lớp, nó trở thành lý thuyết học mà có thể chỉ dẫn những ứng dụng thực tế trên toàn cầu
Đặc trưng cơ bản quyết định khả năng phân lớp là khả năng phân lớp những dữ liệu mới dựa vào những tri thức đã tích lũy được trong quá trình huấn luyện Sau quá trình huấn luyện nếu hiệu suất tổng quát hóa của bộ phân lớp cao thì thuật toán huấn luyện được đánh giá là tốt Hiệu suất tổng quát hóa phụ thuộc vào hai tham số
là sai số huấn luyện hay và năng lực của máy học Trong đó sai số huấn luyện là tỷ
lệ lỗi phân lớptrên tập dữ liệu huấn luyện Còn năng lực của máy học được xác định bằng kích thước Vapnik-Chervonenkis (kích thước VC)
Kích thước VC là một khái niệm quan trọng đốivới một họ hàm phân tách (hay
là tập phân lớp) Đại lượng này được xác định bằng số điểm cực đại mà họ hàm có thể phân tách hoàn toàn trong không gian đối tượng Một tập phân lớp tốt là tập phân lớp có năng lực thấp nhất (có nghĩa là đơn giản nhất) và đảm bảo sai số huấn luyện nhỏ Phương pháp SVM được xây dựng trên ý tưởng này
a) Nh ng ƣu điểm khi sử dụng SVM:
- Cung cấp nhiều công cụ
- Phương pháp học mới
- Nền tảng lý thuyết học thống kê
- Tối ưu toàn cục, mô hình chất lượng cao, chịu đựng được nhiễu
- Thành công trong nhiều ứng dụng
b) Nh ng điểm hạn chế:
- Khó dịch kết quả
- Độ phức tạp vẫn cao
- Xử lý dữ liệu kiểu số
- Tham số đầu vào
1.4 Các công thức liên quan
Gọi f(x, y) là ảnh số, p và q là các điểm ảnh, S là một tập con các điểm ảnh Cho điểm ảnh p(x, y)
a) Quan hệ láng giềng (Neighborhood):
Các láng giềng theo hướng dọc và ngang được được định nghĩa:
- Kí hiệu: N4(p)
- Khi đó các điểm ảnh láng giềng của (x, y) là: (x+1, y), (x-1, y), (x, y+1), (x, y-1)
Trang 17Các láng giềng theo hướng chéo được định nghĩa:
b) Quan hệ lân cận (Adjacency):
Gọi V là tập các giá trị xám dùng để định nghĩa lân cận Ví dụ V = {1} là một tập
định nghĩa cho lân cận của các điểm ảnh có giá trị 1
4-Adjacency: p và q là 4-Adjacency nếu q N4(p)
8-Adjacency: p và q là 8-Adjacency nếu q N8(p)
m-Adjacency: p và q là m-Adjacency nếu q N4(p) hoặc q ND(p) và N4(p)
Trang 18Quan hệ liên thông giữa 2 điểm ảnh là quan trọng bởi vì nó được sử dụng để thiết lập các đường biên của đối tượng và các thành phần của các vùng ảnh
Hai điểm ảnh có quan hệ liên thông với nhau:
- Chúng là láng giềng của nhau
- Các giá trị xám của chúng thỏa mãn tiêu chuẩn nhất định về sự tương đồng Với thì tập các điểm ảnh trong S có liên thông với p thì được gọi là một thành phần liên thông của S
Nếu S chỉ có 1 thành phần liên thông thì S được gọi là 1 tập liên thông
Trang 19e) Độ lệch chuẩn:
Là một khái niệm thông dụng trong quá trình khảo sát ảnh Một trong những tham số thống kê quan trọng được tính cùng với giá trị trung bình, phương sai, giá trị và vị trí của điểm ảnh nhỏ nhất và lớn nhất, độ lệch…
Thuật toán: Cho một dãy n giá trị cho trước x1, x2,… xn
Bước 1: Tìm giá trị trung bình x của dãy số đã cho với công thức
1 2
1
n 1 N
i i
Bước 3: Tính bình phương của các giá trị thu được ở bước 2
Bước 4: Tìm giá trị trung bình của các bình phương độ lệch tìm được
ở bước 3 Các giá trị này được gọi là phương sai Ký hiệu: 2
Bước 5: Tính căn bậc hai của phương sai ta được kết quả theo công
thức:
2 1
1
N
i i
f) Ma trận hiệp phương sai
Nếu E X( ) là giá trị kỳ vọng của biến ngẫu nhiên X thì phương sai là:
2ar( ) (( ) )
v X E X Nghĩa là phương sai là giá trị kỳ vọng của bình phương
của độ lệch của X so với giá trị trung bình của nó
Nếu X và Y là hai vector, Xi và Yi là các thành phần của hai vector và là các biến ngẫu nhiên có phương sai xác định (không quá lớn tới vô cực)
Trang 201.5 Giới thiệu về mô-men bất biến
Khai thác các đặc điểm và phát hiện đối tượng là một trong những lĩnh vực nghiên cứu lớn của xử lý ảnh và đồ họa vi tính Phát hiện đối tượng cơ bản dựa trên phép kết hợp và mô tả của hình dạng đối tượng Một số kỹ thuật dùng để mô tả, thể hiện hình dạng của đối tượng như là: phân tích các đặc điểm vô hướng, nhận diện
mô tả Fourier, mô-men bất biến hay là chuỗi đường biên
Mô-men bất biến thường được dùng để trích đặc điểm trong xử lý ảnh, và ghi nhận hình dạng đối tượng và phân lớp Mô-men có thể cung cấp các ký tự của một đối tượng duy nhất mô tả hình dạng của đối tượng
Ghi nhận tính bất biến của hình dạng đối tượng được thực hiện bởi bộ phận lớp trong không gian mô men bất biến đa chiều Kỹ thuật này được phát triển từ việc ghi nhận các đặc điểm bất biến từ mô-men của đối tượng và mô tả đối tượng
Kỹ thuật dùng mô men bất biến trong việc trích đặc điểm của đối tượng ảnh đạt được sự thành công như là việc khai thác các loại dữ liệu, phương thức ghi nhận các giá trị bất biến của mô men ảnh
Hu (Hu, 1962) là người đầu tiên đặt nền tảng toán học cho mô men bất biến
2 chiều và đã chứng minh bằng cách ứng dụng phát hiện hình dáng đối tượng Hu định nghĩa 7 giá trị mô tả hình dạng đối tượng được tính toán từ những mô men trung tâm, và không phụ thuộc vào 3 dạng biến đổi đối tượng là chuyển đổi (chuyển đổi vị trí), co giãn (biến đổi kích thước) và hướng (biến đổi quay)
1.6 Giới thiệu các phép toán hình thái học
“Morphology” là hình thái và cấu trúc của đối tượng, hay nó diễn tả những phạm vi và các mối quan hệ giữa các phần của một đối tượng Trong sinh học, hình thái học chú trọng tới hình dạng của một cá thể hơn, chẳng hạn có thể phân tích hình dạng của một chiếc lá để từ đó có thể nhận dạng được loại cây đó là cây gì, nghiên cứu hình dạng của nhóm vi khuẩn, dựa trên đặc điểm nhận dạng của hình thái mà phân biệt chúng thuộc nhóm vi khuẩn nào…
Trong xử lý ảnh, Morphology là phương pháp dùng để trích dãn, trích những thành phần trong ảnh, các thành phần đó hữu ích trong việc biểu diễn và diễn tả hình dạng của miền như: biên, xương và bao gồm Tùy theo trường hợp cụ thể mà
có một cách phân lớp phù hợp với nó: Có thể phân lớp dựa trên những hình dạng bao quanh như (elip, tròn, ), kiểu và mức độ của những hình dạng bất quy tắc (lồi, lõm, ), những cấu trúc trong (lỗ, đường thẳng, đường cong, ) mà đã được tích lũy qua nhiều năm quan sát
Hình thái toán học là một tập các phép toán dùng để phân tích ảnh và xử lý tín hiệu đa chiều theo mẫu, hình dạng S được chọn Trong đó tín hiệu đầu vào được
so sánh một cách cục bộ với S (thành phần cấu trúc) có dạng bất kì, tại điểm tham chiếu R (thông thường R là tâm của S và ánh xạ tương ứng tới tín hiệu đang xét)
a) Phép Dilation
Phép Dilation thì mở rộng thêm điểm ảnh vào đối tượng ảnh, làm cho ảnh trở nên lớn hơn
Trang 21b) Phép Erosion
Phép Erosion thì làm cho đối tượng ảnh trở nên nhỏ hơn, ít điểm ảnh hơn Phép bào mòn thay những điểm đen thành điểm trắng khi mà lân cận của nó có ít nhất một điểm trắng
1.7 Kết luận
Phần này tìm hiểu về chức năng Kinect là một công cụ được sử dụng trong
đề tài vào việc điều khiển robot trên laptop, hoặc là chúng ta có thể dùng thao tác bằng tay để chuyển đổi giữa các ứng dụng, bật, tắt nhạc….Thậm chí, Kinect còn có thể được ứng dụng để làm công cụ bảo mật, giúp ngăn chặn người khác sử dụng máy tính của mình bất hợp pháp
Trang 22Chương 2 Nội dung nghiên cứu
2.1 Phát hiện làn da thông qua màu sắc[2]
- Hệ màu RGB và HSL: Mô hình màu RGB sử dụng ánh sáng đỏ, xanh lá cây và
xanh lam để tổ hợp theo nhiều phương thức khác nhau để tạo thành nhiều màu khác nhau Ba màu này độc lập tuyến tính với nhau vì không thể tạo màu còn lại bằng hai
R, G, B là đơn vị màu,r g', 'và b' là số lượng các màu cơ bản R, G, B
Tại một điểm ảnh ta thu được các giá trị của r g', ' và b', khi đó ta biết được số lượng tương đối giữa các thành phần màu RGB là:
g g
b b
r g và b' được gọi là tọa độ màu và F = rR + gG + bB
Mặt khác ta có: m = r’ + g’ + b’ được gọi là độ chói của màu và r+g+b = 1
Sử dụng hệ màu RGB tương đối tiện lợi nhưng có một số nhược điểm:
Trong ba tọa độ r g', ' và b' không có một tọa độ cho ta biết trực tiếp độ chói
Để tìm ra độ chói ta phải biết cả ba tọa độ màu r g', ' và b'
Ta quan tâm đến một hệ màu khác là hệ màu HSL, HSL là một không gian màu dựa trên 3 số liệu: Vùng màu (H), Độ bão hòa (S), và Độ sáng (L)
Ta có công thức chuyển đổi điểm ảnh từ hệ màu RGB sang hệ màu HSL:
ax
min
max( , , ) min( , , )
Trang 23 max min
max min max min
max max max
max min
, 0.5 2
- Các mẫu dương là các mẫu xi thuộc lĩnh vực quan tâm và được gán nhãn yi= 1
- Các mẫu âm là các mẫu xi không thuộc lĩnh vực quan tâm và được gán yi= - 1
- Thực chất phương pháp này là một bài toán tối ưu, mục tiêu là tìm ra một không
gian H và siêu mặt phẳng quyết định h trên H sao cho sai số phân lớp là thấp nhất
- Trong trường hợp này, tập phân lớp SVM là mặt siêu phẳng phân tách các mẫudương khỏi các mẫu âm với độ chênh lệch cực đại, trong đó độ chênh lệch –
còn gọi là Lề (margin) xác định bằng khoảng cách giữa các mẫu dương và các mẫu
âm gần mặt siêu phẳng nhất Mặt siêu phẳng này được gọi là mặt siêu phẳng lề tối
ưu
- Các mặt siêu phẳng trong không gian đối tượng có phương trình là:
C + w1x1+ w2x2+ … + wnxn= 0
- Tương đương với công thức : C + Σwi xi= 0( với i=1,…,n)
Với w = w1+ w2+ …+ wn là bộ hệ số siêu phẳng hay là vector trọng số, C là
độ dịch, khithay đổi w và C thì hướng và khoảng cách từ gốc toạ độ đến mặt siêu phẳng thay đổi
Tập phân lớp SVM được định nghĩa như sau:
f(x) = sign(C + Σwixi) Trong đó:
sign(z) = +1 nếu z ≥ 0, sign(z) = -1 nếu z < 0
Trang 24Nếu f(x) = +1 thì x thuộc về lớp dương (lĩnh vực được quan tâm)
Ngược lại,nếu f(x) = -1 thì x thuộc về lớp âm (các lĩnh vực khác)
Máy học SVM là một học các siêu phẳng phụ thuộc vào tham số vector trọng
số w và độ dịch C Mục tiêu của phương pháp SVM là ước lượng w và C để cực đại
hóa lề giữa các lớp dữ liệu dương và âm Các giá trị khác nhau của lề cho ta các họ siêu mặt phẳng khác nhau, và lề càng lớn thì năng lực của máy học càng giảm Như vậy, cực đại hoá lề thực chất là việc tìm một máy học có năng lực nhỏ nhất Quá trình phân lớp là tối ưu khi sai số phân lớp là cực tiểu
Ta có phương trình sau:
Tìm ra được vector trọng số w và sai số của mỗi điểm trong tập huấn luyện
là ηi từ đó tacó phương trình tổng quát của siêu phẳng tìm ra được bởi thuật toán SVM là:
f(x1, x2,…, xn) = C +Σ wi xi
Với i = 1,…, n Trong đó n là số dữ liệu huấn luyện
Sau khi đã tìm được phương trình của siêu phẳng bằng thuật toán SVM, áp dụng công thức này để tìm ra nhãn lớp cho các dữ liệu mới
2.2.1 Huấn luyện SVM
Huấn luyện SVM là việc giải bài toán quy hoạch toàn phương SVM Các phương pháp số giải bài toán quy hoạch này yêu cầu phải lưu trữ một ma trận có kích thước bằng bình phương của số lượng mẫu huấn luyện Trong những bài toán thực tế, điều này là không khả thi vì thông thường kích thước của tập dữ liệu huấn luyện thường rất lớn (có thể lên tới hàng chục nghìn mẫu) Nhiều thuật toán khác nhau được phát triển để giảiquyết vấn đề nêu trên Những thuật toán này dựa trên việc phân rã tập dữ liệu huấn luyện thành những nhóm dữ liệu Điều đó có nghĩa là bài toán quy hoạch toàn phương với kích thước nhỏ hơn Sau đó, những thuật toán này kiểm tra các điều kiện KKT (Karush-Kuhn-Tucker) để xác định phương án tối
ưu
Một số thuật toán huấn luyện dựa vào tính chất: Nếu trong tập dữ liệu huấn luyện của bài toán quy hoạch toàn phương con cần giải ở mỗi bước có ít nhất một mẫu vi phạm các điều kiện KKT, thì sau khi giải bài toán náy, hàm mục tiêu sẽ tăng Như vậy, một chuỗi các bài toán quy hoạch toàn phương con với ít nhất một mẫu vi phạm các điều kiện KKT được đảm bảo hội tụ đến một phương án tối ưu
Do đó, ta có thể duy trì một tập dữ liệu làm việc đủ lớn có kích thước cố định và tại mỗi bước huấn luyện, ta loại bỏ và thêm vào cùng một số lượng mẫu
Trang 252.2.2 Các ƣu thế của SVM trong phân lớp bàn tay[5]
Như đã biết, phân lớp bàn tay là một tiến trình đưa các bàn tay chưa biết vào các lớp bàn tay đã biết Để thực hiện quá trình phân lớp, các phương pháp huấn luyện được sử dụng để xây dựng tập phân lớp từ các mẫu bàn tay cĩ sẵn, sau đĩ dùng tập phân lớp này để dự đốn lớp của những bàn tay mới
Chúng ta cĩ thể thấy từ các thuật tốn phân lớp hai lớp như SVM đến các thuật tốn phân lớp đa lớp đều cĩ đặc điểm chung là yêu cầu bàn tay phải được biểu diễn dưới dạng vector đặc trưng, tuy nhiên các thuật tốn khác đều phải sử dụng các uớc lượng tham số và ngưỡng tối ưu trong khi đĩ thuật tốn SVM cĩ thể tự tìm ra các tham số tối ưu này Trong các phương pháp thì SVM là phương pháp sử dụng khơng gian vector đặc trưng lớn nhất (hơn 10.000 chiều) trong khi đĩ các phương pháp khác cĩ số chiều bé hơn nhiều (như Nạve Bayes là 2000, k-Nearest Neighbors
là 2415…)
Dữ liệu huấn luyện được sử dụng bao gồm 100 tấm hình đã được phân ngưỡng của bàn tay khép, 100 tấm hình đã được phân ngưỡng của bàn tay nắm, 100 tấm hình đã được phân ngưỡng của bàn tay xịe
Ta cĩ bảng đánh giá giữa thuật tốn SVM và các thuật tốn học khác:
FineSim (%)
Naive Bayes(%)
Bayes nets(%)
Bảng 2.1: Bảng đánh giá thuật tốn SVM
Với dữ liệu huấn luyện trên đây SVM đạt độ chính xác là 95% khi lựa chọn chức năng bàn tay nắm, độ chính xác 96.0% khi lựa chọn chức năng bàn tay khép