Giới thiệu Dự án "Sign language recognition" là một ứng dụng thú vị trong lĩnh vực xử lý dữ liệu thị giác và nhận biết cử chỉ bằng tay.. Dự án này chúng tôi sử dụng hai công nghệ chính:
Trang 1TRƯỜNG ĐẠI HỌC PHENIKAA
Đề tài thực hiện: Sign language recognition on the topic”Breakfast”
Lớp: Thị giác máy tính-1-1-23-(N01)
Người hướng dẫn: Nguyễn Văn Tới
Sinh viên thực hiện: Ngô Thế Cao Sơn 20010920 Nguyễn Khắc Quang 22010316
Đoàn Văn Tâm 20010921
Trang 2II Support Vector Machine (SVM) 10
III Công cụ lập trình và thư viện sử dụng 19
Chương 3: Thu thập và chuẩn bị dữ liệu 19
I Thu thập dữ liệu về cử chỉ tay 19
II Ghi dữ liệu video 20
III Xử lý dữ liệu và chuẩn bị cho huấn luyện 20
Chương 4: Xây dựng mô hình nhận dạng cử chỉ tay 25
I Huấn luyện SVM Classifier 25
II Tối ưu hóa siêu tham số 32
III Đánh giá hiệu suất và giải quyết 34
Chương 5: Ứng dụng thực tế và kết quả 35
I Xây dựng ứng dụng nhận dạng cử chỉ tay 35
II Giao diện người dùng 35
III Tương tác và kết quả thực tế 35
IV Đề xuất cho tương lai 35
Chương 6: Tài liệu tham khỏa 36
I Liên kết và tài liệu trực tuyến 36
Chương 7: Phụ lục 36
I Mã nguồn và tài liệu kỹ thuật 36
II Bảng phân công công việc 36
Trang 3Chương 1: Tổng quan
I Giới thiệu
Dự án "Sign language recognition" là một ứng dụng thú vị trong lĩnh vực xử lý dữ liệu thị giác và nhận biết cử chỉ bằng tay Dự án này chúng tôi sử dụng hai công nghệ chính: MediaPipe một framework mạnh mẽ của Google cho việc xử lý dữ liệu thị giác và âm thanh, và (SVM) một thuật toán học máy để phân loại và nhận biết cử chỉ từ dữ liệu bàn tay
Trong dự án này, chúng tôi sử dụng MediaPipe để trích xuất thông tin vị trí và cử chỉ từ tay trong thời gian thực MediaPipe đã xây dựng sẵn giải pháp nhận diện và theo dõi bàn tay, cho phép chúng ta xác định các điểm quan trọng trên tay và theo dõi chuyển động của nó
Sau khi chúng ta có thông tin cử chỉ từ bàn tay, chúng ta sử dụng SVM để phân loại các cử chỉ cụ thể SVM là một thuật toán học máy phân loại, cho phép chúng ta dự đoán hoặc nhận biết cử chỉ dựa trên dữ liệu đầu vào từ MediaPipe Ứng dụng của dự án có thể rất đa dạng, từ việc tạo ra ứng dụng nhận dạng ngôn ngữ ký hiệu cho người điếc đến việc điều khiển thiết bị bằng cử chỉ tay trong thời gian thực Dự án " Sign language recognition" thể hiện sự kết hợp giữa các công nghệ thú vị để tạo ra các ứng dụng thông minh và sáng tạo trong lĩnh vực xử lý dữ liệu thị giác
II Lý do chọn đề tài
Có một số lý do quan trọng để chúng tôi chọn đề tài " Sign language recognition " (Nhận dạng ngôn ngữ ký hiệu):
Ứng dụng trong thế giới thực: Nhận biết cử chỉ bằng tay là một khía cạnh
quan trọng của giao tiếp con người-máy tính và tương tác người dùng trong thế giới thực Điều này có thể được áp dụng rộng rãi trong nhiều lĩnh vực, bao gồm y tế, giáo dục, và công nghiệp
Hỗ trợ cho người khuyết tật: Công nghệ nhận biết cử chỉ bằng tay có thể cung
cấp giải pháp cho người khuyết tật, đặc biệt là người điếc, để tương tác với máy tính và các thiết bị di động Điều này có thể tạo ra một môi trường thân thiện và truy cập hơn cho tất cả mọi người
Tích hợp và điều khiển thiết bị: Nhận biết cử chỉ bằng tay có thể giúp người
dùng điều khiển và tương tác với các thiết bị và ứng dụng một cách trực quan và
Trang 4hiệu quả Ví dụ, bạn có thể dùng cử chỉ bằng tay để điều khiển trình phát truyền hình hoặc thiết bị điều hòa nhiệt độ
Nghiên cứu và phát triển: Lĩnh vực nhận biết cử chỉ bằng tay đang phát triển
mạnh mẽ, và nó là một thách thức thú vị cho các nhà nghiên cứu và phát triển Điều này thúc đẩy sự sáng tạo trong việc phát triển các giải pháp và ứng dụng mới
Sự phổ biến của các công nghệ liên quan: Cả MediaPipe và các thuật toán học
máy như SVM đã trở nên dễ dàng truy cập và phát triển Điều này giúp dự án nhận biết cử chỉ bằng tay trở nên thú vị và khả thi cho nhiều người
Như vậy, việc chọn đề tài "Sign language recognition " không chỉ mang tính thực tiễn mà còn đóng góp cho việc xây dựng các ứng dụng sáng tạo và hữu ích trong cuộc sống hàng ngày và cả lĩnh vực nghiên cứu
III Mục tiêu
Mục tiêu chính của đề tài " Sign language recognition " là phát triển hệ thống nhận biết và nhận dạng các cử chỉ bằng tay dựa trên các công nghệ thị giác máy tính và học máy:
Nhận dạng Các Cử Chỉ Bằng Tay: Xây dựng một hệ thống có khả nhận dạng
các cử chỉ bằng tay phổ biến Trong phạm vi dự án này chúng tôi sẽ dừng ở 10 cử chỉ mô tả bữa ăn sáng
Tích Hợp MediaPipe: Sử dụng MediaPipe để trích xuất thông tin từ hình ảnh
hoặc video, bao gồm việc xác định vị trí và cử chỉ của bàn tay Đây là công cụ sẽ đóng vai trò quan trọng trong việc lấy dữ liệu đầu vào cho hệ thống nhận dạng
Sử Dụng SVM: Để phân loại và nhận dạng các cử chỉ từ dữ liệu đầu vào từ
MediaPipe Huấn luyện mô hình dựa trên tập dữ liệu mà nhóm thu thập
Đánh Giá Hiệu Suất: Đánh giá hiệu suất của hệ thống bằng cách đo đạc khả
năng nhận biết và nhận dạng cử chỉ bằng tay Điều này giúp xác định độ chính xác và hiệu suất tổng thể của hệ thống
Nghiên Cứu và Phát Triển Tiếp: Tìm hiểu và phát triển mô hình, sao cho tối
ưu nhất Tăng phần trăm khả năng nhận dạng cử chỉ
Mục tiêu của dự án này là tạo ra một hệ thống mạnh mẽ và linh hoạt có thể được tích hợp vào nhiều ứng dụng
Trang 52 MediaPipe Toolkit
Bộ công cụ MediaPipe bao gồm Framework và các Solutions (giải pháp) Sơ đồ sau đây cho thấy các thành phần của Bộ công cụ MediaPipe
Hình 1: MediaPipe Toolkit 2.1 Framework
Framework được viết bằng C ++, Java và Obj-C, bao gồm các API sau -API Máy tính (C++)
-API xây dựng đồ thị (Protobuf)
-API thực thi đồ thị (C ++, Java, Obj-C) Graphs (đồ thị)
Trang 6Quy trình nhận dạng của MediaPipe được gọi là Graph Ví dụ:chúng tôi cung cấp một hình ảnh bàn tay làm đầu vào, kết quả đi ra với các mốc tay được hiển thị trên hình ảnh
Hình 2: Kết quả sau khi MediaPipe nhận dạng
Biểu đồ dưới đây đại diện cho đồ thị giải pháp Hands MP (viết tắt của MediaPipe)
Hình 3: đồ thị giải pháp Hands MediaPipe
Trong ngôn ngữ học máy tính, một đồ thị bao gồm các Nút được kết nối bởi các Cạnh Trong đồ thị giải pháp MediaPipe, các nút được gọi là Calculators (bộ tính toán), và các cạnh được gọi là Streams (luồng dữ liệu) Mỗi luồng dữ liệu chứa một chuỗi các Gói dữ liệu có thời gian tăng dần
Trong hình ảnh ở trên, chúng tôi đã biểu diễn các Calculators bằng các khối hình chữ nhật và Streams bằng các mũi tên
Trang 7MediaPipe Calculators
Đây là các đơn vị tính toán cụ thể được viết bằng C++ với các nhiệm vụ được gán để xử lý Các gói dữ liệu (khung hình video hoặc đoạn âm thanh) đi vào và ra thông qua các cổng trên một calculator Khi khởi tạo một calculator, nó xác định kiểu dữ liệu của gói dữ liệu sẽ đi qua cổng Mỗi khi một đồ thị chạy, Framework thực hiện các phương thức Open, Process và Close trong các
calculators Phương thức Open khởi tạo calculator; quá trình chạy lặp đi lặp lại khi một gói dữ liệu đi vào Quá trình này kết thúc sau khi một lần chạy đồ thị hoàn tất
Ví dụ, hãy xem xét calculator đầu tiên được hiển thị trong đồ thị ở trên Calculator, ImageTransform, nhận một hình ảnh tại cổng nhập và trả về một hình ảnh đã được biến đổi tại cổng xuất Trong khi đó, calculator thứ hai, ImageToTensor, nhận một hình ảnh làm đầu vào và xuất ra một tensor
2.2 MediaPipe Solutions
Các giải pháp là các ví dụ được xây dựng sẵn dựa trên một mô hình TensorFlow hoặc TFLite đã được huấn luyện cụ thể Bạn có thể kiểm tra các mô hình cụ thể cho từng giải pháp ở đây Các giải pháp của MediaPipe được xây dựng dựa trên Framework Hiện tại, nó cung cấp mười sáu giải pháp, được liệt kê dưới đây
-Face Detection -Face Mesh -Iris
-Hands -Pose -Holistic
-Selfie Segmentation -Hair Segmentation -Object Detection -Box Tracking
-Instant Motion Tracking -Objectron
Trang 8-KNIFT -AutoFlip
-MediaSequence -YouTube 8M 2 Cách hoạt động
Như đã nói ở trên nó hoạt động bằng cách kết hợp một loạt các giải pháp và tích hợp chúng để giúp xử lý và hiểu dữ liệu từ các nguồn như video, hình ảnh, âm thanh, và nhiều loại dữ liệu thị giác và âm thanh khác nhau Dưới đây là cách hoạt động cơ bản của MediaPipe:
-Định dạng dữ liệu đầu vào: MediaPipe có khả năng xử lý nhiều loại dữ liệu đầu vào, chẳng hạn như video, hình ảnh, luồng video từ camera, dữ liệu âm thanh,
-Chọn và tùy chỉnh giải pháp: Chúng ta chọn một hoặc nhiều giải pháp đã được xây dựng sẵn bởi MediaPipe (ví dụ: nhận diện khuôn mặt, theo dõi tay, nhận dạng âm thanh, v.v.) dựa trên nhiệm vụ cụ thể Mỗi giải pháp là một mô hình máy học đã được huấn luyện để thực hiện một tác vụ cụ thể
-Kết nối các giải pháp: Bạn có thể kết hợp các giải pháp lại với nhau trong một đồ thị (graph) Đồ thị này chỉ định cách dữ liệu chuyển từ một giải pháp sang giải pháp khác, cho phép bạn xử lý dữ liệu qua nhiều bước liên tiếp
-Tiền xử lý và xử lý chính: Mỗi giải pháp hoạt động dựa trên mô hình máy học hoặc thuật toán riêng, tiền xử lý dữ liệu đầu vào và trả ra kết quả sau khi xử lý
-Tích hợp với ứng dụng: Kết quả từ các giải pháp có thể được tích hợp vào ứng dụng của bạn, cho phép bạn hiển thị thông tin xử lý hoặc thực hiện hành động dựa trên dữ liệu đầu ra
-Triển khai trên nhiều nền tảng: MediaPipe hỗ trợ triển khai trên nhiều nền tảng, bao gồm máy tính, thiết bị di động và web
MediaPipe giúp đơn giản hóa việc phát triển các ứng dụng liên quan đến thị giác và âm thanh bằng cách cung cấp các giải pháp và cơ sở hạ tầng đã được xây dựng sẵn, từ việc xử lý dữ liệu đầu vào đến việc trình bày kết quả cho người dùng cuối
4 Kết luận và nhược điểm
Trang 94.1 Kết luận
MediaPipe là một framework mạnh mẽ phát triển bởi Google, được thiết kế để giúp xây dựng các ứng dụng và dự án xử lý dữ liệu thị giác và âm thanh Dưới đây là một số điểm kết luận về MediaPipe:
-Đa nhiệm và đa dạng: MediaPipe hỗ trợ xử lý nhiều loại dữ liệu đầu vào, chẳng hạn như video, hình ảnh, luồng video từ camera, dữ liệu âm thanh, và nhiều dạng dữ liệu thị giác và âm thanh khác Điều này giúp bạn xây dựng ứng dụng đa dạng và đa nhiệm
-Giải pháp được xây dựng sẵn: MediaPipe cung cấp nhiều giải pháp đã được xây dựng sẵn, từ nhận diện khuôn mặt, theo dõi tay, đến nhận dạng âm thanh Điều này giúp giảm thời gian và công sức cần thiết để phát triển ứng dụng
-Tùy chỉnh và kết hợp: Bạn có khả năng tùy chỉnh và kết hợp các giải pháp lại với nhau để tạo ra các đồ thị xử lý dữ liệu phức tạp Điều này cho phép bạn xử lý dữ liệu qua nhiều bước liên tiếp để đạt được kết quả mong muốn
-Tích hợp dễ dàng: Kết quả từ các giải pháp có thể được dễ dàng tích hợp vào ứng dụng của bạn, cho phép bạn hiển thị thông tin xử lý hoặc thực hiện hành động dựa trên dữ liệu đầu ra
-Hỗ trợ nhiều nền tảng: MediaPipe hỗ trợ triển khai trên nhiều nền tảng, bao gồm máy tính, thiết bị di động và web, giúp bạn đạt được đối tượng người dùng trên nhiều thiết bị
-Mạnh mẽ và hiệu quả: Framework này sử dụng mô hình máy học và thuật toán hiệu quả để xử lý dữ liệu thị giác và âm thanh một cách nhanh chóng và đáng tin cậy
Tóm lại, MediaPipe là một công cụ mạnh mẽ cho phát triển ứng dụng liên quan đến thị giác và âm thanh, với sự đa dạng, tích hợp dễ dàng, và khả năng tùy chỉnh cao, giúp đơn giản hóa quá trình phát triển và triển khai các ứng dụng xử lý dữ liệu thị giác và âm thanh
Trang 10này có thể dẫn đến hạn chế trong việc xây dựng các giải pháp hoàn toàn tùy chỉnh hoặc thực hiện các nhiệm vụ đặc biệt
Dữ liệu đầu vào và đầu ra tiêu chuẩn: MediaPipe yêu cầu dữ liệu đầu vào và đầu ra tuân theo một số tiêu chuẩn cụ thể Điều này có thể tạo ra khó khăn cho việc tích hợp với các nguồn dữ liệu hoặc mục tiêu đầu ra không tuân theo các tiêu chuẩn này
Cần hiểu biết về thị giác và âm thanh: Mặc dù MediaPipe giúp đơn giản hóa việc phát triển ứng dụng thị giác và âm thanh, nhưng để tận dụng đầy đủ tiềm năng của nó, bạn cần có kiến thức về thị giác và âm thanh, cũng như về các mô hình máy học liên quan
Yêu cầu phần cứng: Các giải pháp phức tạp trong MediaPipe có thể đòi hỏi tài nguyên phần cứng khá cao Điều này có thể gây khó khăn đối với các thiết bị có hiệu năng thấp hoặc ứng dụng web
Cập nhật và bảo trì: MediaPipe được phát triển liên tục, điều này có thể đòi hỏi bạn theo dõi các phiên bản mới và thực hiện các cập nhật để giữ cho ứng dụng của bạn hoạt động tốt và bảo mật
Giới hạn trong các lĩnh vực thị giác và âm thanh: MediaPipe tập trung vào xử lý dữ liệu thị giác và âm thanh, và có thể có giới hạn trong việc xử lý dữ liệu từ các lĩnh vực khác như xử lý ngôn ngữ tự nhiên hoặc dữ liệu thời gian thực Tổng cộng, MediaPipe là một công cụ mạnh mẽ, nhưng nhược điểm của nó có thể xuất phát từ sự hạn chế trong việc tùy chỉnh, yêu cầu kiến thức sâu rộng, và yêu cầu tài nguyên phần cứng Các nhược điểm này nên được xem xét cẩn thận khi lựa chọn và triển khai MediaPipe trong các dự án cụ thể
II Support Vector Machine (SVM)
1 SVM là gì?
SVM là một thuật toán giám sát, nó có thể sử dụng cho cả việc phân loại hoặc đệ quy Tuy nhiên nó được sử dụng chủ yếu cho việc phân loại Trong thuật toán này, chúng ta vẽ đồi thị dữ liệu là các điểm trong n chiều ( ở đây n là số lượng các tính năng bạn có) với giá trị của mỗi tính năng sẽ là một phần liên kết Sau đó chúng ta thực hiện tìm "đường bay" (hyper-plane) phân chia các lớp Hyper-plane nó chỉ hiểu đơn giản là 1 đường thẳng có thể phân chia các lớp ra thành hai phần riêng biệt
Trang 11Hình 4:"đường bay" (hyper-plane) phân chia các lớp 2 SVM làm việc như thế nào?
Ở trên, chúng ta đã thấy được việc chia hyper-plane Bấy giờ làm thế nào chúng ta có thể xác định "Làm sao để vẽ-xác định đúng hyper-plane" Chúng ta sẽ theo các tiêu chí sau:
Identify the right hyper-plane (Scenario-1):
Ở đây, có 3 đường hyper-lane (A,B and C) Bây giờ đường nào là hyper-lane đúng cho nhóm ngôi sao và hình tròn
Trang 12Hình 5: Trường hợp 1
Quy tắc số một để chọn 1 hyper-lane, chọn một hyper-plane để phân chia hai lớp tốt nhất Trong ví dụ này chính là đường B
Identify the right hyper-plane (Scenario-2):
Ở đây chúng ta cũng có 3 đường hyper-plane (A,B và C), theo quy tắc số 1, chúng đều thỏa mãn
Hình 6: Trường hợp 2
Quy tắc thứ hai chính là xác định khoảng cách lớn nhất từ điểu gần nhất của một lớp nào đó đến đường hyper-plane Khoảng cách này được gọi là "Margin", Hãy nhìn hình bên dưới, trong đấy có thể nhìn thấy khoảng cách margin lớn nhất đấy là đường C Cần nhớ nếu chọn lầm hyper-lane có margin thấp hơn thì sau này khi dữ liệu tăng lên thì sẽ sinh ra nguy cơ cao về việc xác định nhầm lớp cho dữ liệu
Identify the right hyper-plane (Scenario-3):
Sử dụng các nguyên tắc đã nêu trên để chọn ra hyper-plane cho trường hợp sau:
Trang 13Hình 7: Trường hợp 3
Có thể có một vài người sẽ chọn đường B bởi vì nó có margin cao hơn đường A, nhưng đấy sẽ không đúng bởi vì nguyên tắc đầu tiên sẽ là nguyên tắc số 1, chúng ta cần chọn hyper-plane để phân chia các lớp thành riêng biệt Vì vậy đường A mới là lựa chọn chính xác
Can we classify two classes (Scenario-4)?
Tiếp the hãy xem hình bên dưới, không thể chia thành hai lớp riêng biệt với 1 đường thẳng, để tạo 1 phần chỉ có các ngôi sao và một vùng chỉ chứa các điểm tròn
Trang 14Hình 8.1: Trường hợp 4
Ở đây sẽ chấp nhận, một ngôi sao ở bên ngoài cuối được xem như một ngôi sao phía ngoài hơn, SVM có tính năng cho phép bỏ qua các ngoại lệ và tìm ra hyper-plane có biên giới tối đa Do đó có thể nói, SVM có khả năng mạnh trong việc chấp nhận ngoại lệ
Hình 8.2: Trường hợp 4
Find the hyper-plane to segregate to classes (Scenario-5)
Trang 15Trong trường hợp dưới đây, không thể tìm ra 1 đường hyper-plane tương đối để chia các lớp, vậy làm thế nào để SVM phân tách dữ liệu thành hai lớp riêng biệt? Cho đến bây giờ chúng ta chỉ nhìn vào các đường tuyến tính hyper-plane
Hình 9.1: Trường hợp 5
SVM có thể giải quyết vấn đề này, Khá đơn giản, nó sẽ được giải quyết bằng việc thêm một tính năng, Ở đây chúng ta sẽ thêm tính năng z = x^2+ y^2 Bây giờ dữ liệu sẽ được biến đổi theo trục x và z như sau
Trang 16Hình 9.2: Trường hợp 5
Trong sơ đồ trên, các điểm cần xem xét là: • Tất cả dữ liệu trên trục z sẽ là số dương vì nó là tổng bình phương x và y • Trên biểu đồ các điểm tròn đỏ xuất hiện gần trục x và y hơn vì thế z sẽ nhỏ hơn => nằm gần trục x hơn trong đồ thị (z,x) Trong SVM, rất dễ dàng để có một siêu phẳng tuyến tính (linear hyper-plane) để chia thành hai lớp, Nhưng một câu hỏi sẽ nảy sinh đấy là, chúng ta có cần phải thêm một tính năng phân chia này bằng tay hay không Không, bởi vì SVM có một kỹ thuật được gọi là kernel trick ( kỹ thuật hạt nhân), đây là tính năng có không gian đầu vào có chiều sâu thấm và biến đổi nó thành không gian có chiều cao hơn, tức là nó không phân chia các vấn đề thành các vấn đề riêng biệt, các tính năng này được gọi là kernel Nói một cách đơn giản nó thực hiện một số biết đổi dữ liệu phức tạp, sau đó tìm ra quá trình tách dữ liệu dựa trên các nhãn hoặc đầu ra mà chúng ra đã xác định trước
3 Margin trong SVM
Trang 17Hình 10:Margin trong SVM
Margin là khoảng cách giữa siêu phẳng đến 2 điểm dữ liệu gần nhất tương ứng với các phân lớp Trong ví dụ quả táo quả lê đặt trên mặt bán, margin chính là khoảng cách giữa cây que và hai quả táo và lê gần nó nhất Điều quan trọng ở đây đó là phương pháp SVM luôn cố gắng cực đại hóa margin này, từ đó thu được một siêu phẳng tạo khoảng cách xa nhất so với 2 quả táo và lê Nhờ vậy, SVM có thể giảm thiểu việc phân lớp sai (misclassification) đối với điểm dữ liệu mới đưa vào
4 Kết luận về bài toán
Là một kĩ thuật phân lớp khá phổ biến, SVM thể hiện được nhiều ưu điểm trong số đó có việc tính toán hiệu quả trên các tập dữ liệu lớn Có thể kể thêm một số Ưu điểm của phương pháp này như:
-Xử lý trên không gian số chiều cao: SVM là một công cụ tính toán hiệu quả trong không gian chiều cao, trong đó đặc biệt áp dụng cho các bài toán phân loại văn bản và phân tích quan điểm nơi chiều có thể cực kỳ lớn
-Tiết kiệm bộ nhớ: Do chỉ có một tập hợp con của các điểm được sử dụng trong quá trình huấn luyện và ra quyết định thực tế cho các điểm dữ liệu mới nên chỉ có những điểm cần thiết mới được lưu trữ trong bộ nhớ khi ra quyết định
Trang 18-Tính linh hoạt - phân lớp thường là phi tuyến tính Khả năng áp dụng Kernel mới cho phép linh động giữa các phương pháp tuyến tính và phi tuyến tính từ đó khiến cho hiệu suất phân loại lớn hơn
Nhược điểm:
Bài toán số chiều cao: Trong trường hợp số lượng thuộc tính (p) của tập dữ liệu lớn hơn rất nhiều so với số lượng dữ liệu (n) thì SVM cho kết quả khá tồi Chưa thể hiện rõ tính xác suất: Việc phân lớp của SVM chỉ là việc cố gắng tách các đối tượng vào hai lớp được phân tách bởi siêu phẳng SVM Điều này chưa giải thích được xác suất xuất hiện của một thành viên trong một nhóm là như thế nào Tuy nhiên hiệu quả của việc phân lớp có thể được xác định dựa vào khái niệm margin từ điểm dữ liệu mới đến siêu phẳng phân lớp mà chúng ta đã bàn luận ở trên
Kết luận: SVM là một phương pháp hiệu quả cho bài toán phân lớp dữ liệu Nó
là một công cụ đắc lực cho các bài toán về xử lý ảnh, phân loại văn bản, phân tích quan điểm Một yếu tố làm nên hiệu quả của SVM đó là việc sử dụng Kernel function khiến cho các phương pháp chuyển không gian trở nên linh hoạt hơn
Hình 11: biểu diễn mặt phẳng trong không gian