ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT HÀN ĐỒ ÁN CƠ SỞ 5 Đề tài NHẬN DẠNG BIỂN SỐ XE BẰNG PYTHON Lời mở đầu Sự phát triển mạnh mẽ của công nghệ thông tin tron[.]
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 2Lời mở đầu
Sự phát triển mạnh mẽ của công nghệ thông tin trong những năm gần đây đã tạonên những thay đổi to lớn đối với cuộc sống con người Nó ngày càng khẳng địnhđược vai trò của mình trong sự phát triển chung của xã hội.Trong thời đại ngày naymọi việc con người có thể làm thì hầu như máy móc cũng có thể làm được đó là nhờnhững người lập trình viên đã biến những chiếc máy tính và những ngoại vi của nó trởthành những hệ thống thông minh có thể thực hiện bất cứ công việc gì
Đơn giản như công việc gửi xe, chỉ vài năm trước đây khi đi đến bất kì bãi gửi xenào chúng ta cũng thấy tất cả xe đều phải được nhân viên coi xe gi bằng giấy, việc này
là vô cũng bất tiện và nhiều rủi ro như giấy rất dễ bị hư hao, rách hoặc dính nước…không những vậy việc ghi giấy không thể tránh khỏi sai sót khi người nhân viên coi xemột thoáng mất tập trung và ghi sai, vì vậy rất mất thời gian Trong khuôn khổ chươngtrình đã học, cũng như yêu cầu của đồ án kết thúc môn, em đã viết một chương
trình : “ NHẬN DẠNG BIỂN SỐ XE BẰNG PYTHON”
Song vì thời gian có hạn, và còn thiếu nhiều kinh nghiệm và kỹ năng còn hạn chế Nên chắc chắn không tránh khỏi những thiếu sót Vì vậy em rất mong nhận được nhiều ý kiến đóng góp từ thầy cô và bạn bè để chúng em hoàn thành tốt
đề tài này Chân thành cảm ơn thầy cô và các bạn.
Trang 3Lời cảm ơn
Để đồ án này đạt kết quả tốt đẹp, em đã nhận được sự hỗ trợ, giúp đỡ của thầy
cô Với tình cảm sâu sắc, chân thành, cho phép em được bày tỏ lòng biết ơn sâu sắcđến tất cả quý thầy cô đã tạo điều kiện giúp đỡ trong quá trình học tập và nghiên cứu
đề tài
Trước hết chúng em xin gửi tới quý thầy cô Khoa Công Nghệ Thông Tin và TruyềnThông - Đại Học Đà Nẵng lời chào trân trọng, lời chúc sức khỏe và lời cảm ơn sâu sắcnhất Với sự quan tâm, dạy dỗ, chỉ bảo tận tình chu đáo và những kiến thức mà cácthầy cô đã truyền đạt đã giúp em có thể hoàn thành đề tài môn học lập trình mạng
Đặc biệt em xin gửi lời cảm ơn chân thành nhất đến giảng viên ThS Lê KimTrọng đã quan tâm giúp đỡ tận tình chúng em hoàn thành tốt đồ án này trong thờigian qua
Với điều kiện thời gian cũng như kinh nghiệm còn hạn chế, đồ án này sẽkhông thể tránh được những thiếu sót Em rất mong nhận được sự chỉ bảo, đónggóp ý kiến của các thầy cô, để em có thể bổ sung, nâng cao kinh nghiệm và kỹ năngcủa bản thân để phục vụ cho công việc thực tế sau này
em xin chân thành cảm ơn!
Trang 4
MỤC LỤC
Trang Chương 1 GIỚI THIỆU TỔNG QUAN 11.1 Tổng quan đề tài 1
1.2 Mục tiêu nghiên cứu đề tài 1
1.3 Phương pháp nghiên cứu 1
1.4 PyQt5 và Qt Designer: 2
1.4.1 Qt: 2
1.4.2 PyQt: 2
1.4.3 Qt Designer: 3
1.5 Sơ lược về ngôn ngữ lập trình Python 3
1.5.1 Nguồn gốc cái tên “python”: 4
1.5.2 Tính năng của Python: 4
1.5.3 Công cụ lập trình Python-Pycharm: 4
Chương 2 NGHIÊN CỨU TỔNG QUAN 6
2.1 Trí tuệ nhân tạo - AI ? 6
2.1.1 AI là gì ? 6
2.1.2 Ứng dụng của AI trong thực tế : 6
2.2 Nhận dạng biển số 7
Trang 52.2.1 Sự phát triển của nhận dạng biển số 7
2.2.2 Nhận dạng biển số xe như nào ? 8
2.3 Kiến trúc mạng WPOD 8
2.3.1 Tại sao lại chọn mạng WPOD ? 8
2.3.2 Cách hoạt động của mạng WPOD 10
2.3.3 Chi tiết về kiến trúc mạng WPOD 11
2.4 Phương pháp nhận dạng Support Vector Machine (SVM) 12
2.4.1 Tổng quan về SVM 12
2.4.2 Các vector hỗ trợ 13
2.4.3 Thủ thuật Kernel 15
Chương 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 17
3.1 Phân tích yêu cầu 17
3.1.1 Yêu cầu chức năng 17
3.1.2 Yêu cầu hệ thống 17
3.2 Biểu đồ ca sử dụng 17
3.2.1 Chức năng đưa dữ liệu vào 17
3.2.2 Chức năng đưa ra ảnh đã threshold 17
3.2.3 Chức năng đưa ra các contour tìm được 18
3.2.4 Chức năng nhận dạng và hiển thị biển số xe 18
3.3 Thiết kế hệ thống 19
3.3.1 Phương pháp nhận dạng biển số xe thông thường 20
3.3.2 Giải quyết bài toán bằng WPOD và SVM 21
Chương 4 CHƯƠNG TRÌNH DEMO 24
4.1 Một số hình ảnh của chương trình 24
4.2 Code của chương trình 26
Chương 5 Kết lu n ậ 30
5.1 Kết quả đạt được: 30
Trang 65.2 Hạn chế: 30 5.3 Hướng phát triển: 30 TÀI LIỆU THAM KHẢO 31
Trang 7DANH MỤC HÌNH ẢNH
Trang
Hình 1: Hình ảnh ví dụ về nhận dạng biển số 7
Hình 2: Kết quả detect dùng YOLO trên ảnh với hướng nhìn chính diện và hướng
nghiêng khi chụp biển số xe 9
Hình 3: Kết quả dectect khi sử dụng WPOD cho trường hợp biển số xe bị nghiêng 9
Hình 4: Hoạt động của mạng WPOD 10
Hình 5: Kiến trúc mạng WPOD 11
Hình 6: SVM 12
Hình 7: SVM trong không gian hai chiều và ba chiều 13
Hình 8: Siêu phẳng tối ưu có lề cực đại 13
Hình 9: Vector hỗ trợ 14
Hình 10: Dữ liệu được phân tách phi tuyến tính 14
Hình 11: ví dụ Φ(x) = x2+x 15
HÌnh 12: Biểu diễn trực quan của thủ thuật Kernel 15
Hình 13: Biểu đồ use-case 19
Hình 14: Lưu đồ chi tiết của hệ thống nhận diện biển số xe 20
Hình 15: Các bước xử lý bài toán 20
Hình 15: Data dùng để train 22
Hình 16: Code model SVM 23
Hình 17: Predict biển số 24
Hình 18: Ảnh biển số sau threshold 24
Hình 19: Các contour tìm được 25
Hình 20 Kết quả nhận dạng được 26
Hình 21: Lấy dữ liệu 26
Hình 22: Tách biển số 27
Hình 23: Chuyển ảnh về gray và threshold 28
Trang 8Hình 24: Tìm contour và nhận dạng 29
Trang 9Chương 1 GIỚI THIỆU TỔNG QUAN
1.1 Tổng quan đề tài
Sự phát triển mạnh mẽ của công nghệ thông tin trong những năm gần đây đã tạonên những thay đổi to lớn đối với cuộc sống con người Nó ngày càng khẳng địnhđược vai trò của mình trong sự phát triển chung của xã hội.Trong thời đại ngày naymọi việc con người có thể làm thì hầu như máy móc cũng có thể làm được đó là nhờnhững người lập trình viên đã biến những chiếc máy tính và những ngoại vi của nó trởthành những hệ thống thông minh có thể thực hiện bất cứ công việc gì
Đơn giản như công việc gửi xe, chỉ vài năm trước đây khi đi đến bất kì bãi gửi xenào chúng ta cũng thấy tất cả xe đều phải được nhân viên coi xe gi bằng giấy, việc này
là vô cũng bất tiện và nhiều rủi ro như giấy rất dễ bị hư hao, rách hoặc dính nước…không những vậy việc ghi giấy không thể tránh khỏi sai sót khi người nhân viên coi xemột thoáng mất tập trung và ghi sai, vì vậy rất mất thời gian Để bắt kịp với xu thếhiện nay, em muốn nghiên cứu cũng như tiếp cận bài toán nhận dạng này Vì thế emmuốn thực hiện đề tài nhận dạng biển số xe bằng ngôn ngữ lập trình Python .Mụctiêu dự kiến của em là hiểu thêm về bài toán nhận dạng, ứng dụng được nó vào thực
tế
1.2 Mục tiêu nghiên cứu đề tài
- Xây dựng được chương trình giúp người dùng nhận dạng được các biển số thôngqua các hình ảnh hoặc camera đầu vào
- Chương trình có thể nhận dạng được số xe một cách chính xác và in nó ra mànhình
- Hiểu rõ hơn về các thuật toán nhận dạng và cách hoạt động nhằm nâng cao hiểubiết về công nghệ hiện nay
1.3 Phương pháp nghiên cứu
- Tìm hiểu về ngôn ngữ lập trình Python
Trang 10- Tìm hiểu về công cụ lập trình Pycharm
- Tìm hiểu về các thư viện hỗ trợ lập trình
- Tham khảo các chức năng, các điểm ưu nhược của các ứng dụng đã có, từ đóquyết định các ứng dụng và hướng phát triển
- Tham khảo và l p trình giao di n cho ứng dụngậ ệ
- Phân tích các chức năng và yêu cầu cần có
- Nghiên cứu về cách thức hoạt động của bài toán nhận dạng
- Nghiên cứu và hiểu được thuật toán của bài toán nhận dạng biển số xe
- Kiểm thử phần mềm, sửa chữa và phát triển thêm các ý tưởng mới
- Xây dựng báo cáo hoàn chỉnh
1.4 PyQt5 và Qt Designer:
1.4.1 Qt:
Qt là một Application framework đa nền tảng viết trên ngôn ngữ C++ , được dùng
để phát triển các ứng dụng trên desktop, hệ thống nhúng và mobile Hỗ trợ cho cácplatform bao gồm : Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry,Sailfish OS và một số platform khác
1.4.2 PyQt:
PyQt là Python interface của Qt, kết hợp của ngôn ngữ lập trình Python và thư
viện Qt, là một thư viện bao gồm các thành phần giao diện điều khiển (widgets , graphical control elements).
PyQt được phát triển bởi Riverbank Computing Limited.
Các class của PyQt5 được chia thành các module, bao gồm :
QtCore : là module bao gồm phần lõi không thuộc chức năng GUI, ví dụdùng để làm việc với thời gian, file và thư mục, các loại dữ liệu, streams,URLs, mime type, threads hoặc processes
Trang 11 QtGui : bao gồm các class dùng cho việc lập trình giao diện (windowingsystem integration), event handling, 2D graphics, basic imaging, fonts vàtext.
QtWidgets : bao gồm các class cho widget, ví dụ : button, hộp thoại, … được
sử dụng để tạo nên giao diện người dùng cơ bản nhất
QtMultimedia : thư viện cho việc sử dụng âm thanh, hình ảnh, camera,…
QtBluetooth : bao gồm các class giúp tìm kiếm và kết nối với các thiết bị cógiao tiếp với phần mềm
QtNetwork : bao gồm các class dùng cho việc lập trình mạng, hỗ trợ lậptrình TCP/IP và UDP client , server hỗ trợ việc lập trình mạng
QtPositioning : bao gồm các class giúp việc hỗ trợ xác định vị
Enginio : module giúp các client truy cập các Cloud Services của Qt
QtWebSockets : cung cấp các công cụ cho WebSocket protocol
QtWebKit : cung cấp các class dùng cho làm việc với các trình duyệt Web ,dựa trên thư viện WebKit2
QtWebKitWidgets : các widget cho WebKit
QtXml : các class dùng cho làm việc với XML file
QtSvg : dùng cho hiển thị các thành phần của SVG file
QtSql : cung cấp các class dùng cho việc làm việc với dữ liệu
QtTest : cung cấp các công cụ cho phép test các đơn vị của ứng dụng vớiPyQt5
1.4.3 Qt Designer:
Qt Designer là m t công cụ Qt để thiết kế và xây dựng giao diện người dùng đồộ
họa (GUI) với Qt Widget Bạn có thể soạn và tùy chỉnh các cửa sổ hoặc hộp thoại của
mình theo cách bạn sẽ thấy (What you see is what you get – Những gì bạn đang thấy
là những gì bạn sẽ nhận được) và kiểm tra chúng bằng các kiểu và độ phân giải khác
nhau
Trang 12Các tiện ích và biểu mẫu được tạo bằng Qt Designer tích hợp liền mạch với mã
được lập trình, sử dụng cơ chế vị trí và tín hiệu của Qt để bạn có thể dễ dàng gán
hành vi cho các phần tử đồ họa Tất cả các thuộc tính được đặt trong Qt Designer có
thể được thay đổi động trong mã Hơn nữa, các tính năng như quảng cáo widget và
plugin tùy chỉnh cho phép bạn sử dụng các thành phần của riêng mình với Qt
Designer
1.5 Sơ lược về ngôn ngữ lập trình Python
Phiên bản sử dụng trong đồ án: Python 3.7.8
Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng,
do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991 Python được thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ Python là ngôn ngữ có hình thức rất
sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình Cấu trúc của
Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu.
1.5.1 Nguồn gốc cái tên “python”:
Rossum – Tác giả của Python, là fan của một sê-ri chương trình hài cuối những
năm 1970, và cái tên “Python” được lấy từ tên một phần trong sê-ri đó “Monty
Python’s Flying Circus”.
1.5.2 Tính năng của Python:
Đơn giản, dể học
Miễn phí với mã nguồn mở
Có thể chạy python trên hầu hết các nền tảng khác nhau
Ngôn ngữ thông dịch cấp cao
Thư vi n tiêu chuẩn lớnệ
Hướng đối tượng
1.5.3 Công cụ lập trình Python-Pycharm:
Phiên bản sử dụng trong đồ án: PyCharm 2020.2.3 (Community Edition)
Trang 13PyCharm là môi trường phát triển tích hợp đa nền tảng (IDE) được phát triển bởi Jet Brains và được thiết kế đặc biệt cho Python PyCharm có mặt trên cả 3 nền tảng
Windows, Linux và Mac OS
Hiện tại PyCharm có 2 phiên bản:
Phiên bản Professional: đầy đủ tất cả các tính năng, hỗ trợ Python Web với HTML,
JS, và SQL Mức giá hiện tại 199$ / năm đầu tiên
Phiên bản Community: hỗ trợ Python development Miễn phí.
2.1 Trí tuệ nhân tạo - AI ?
2.1.1 AI là gì ?
AI (Artificial intelligence) là trí thông minh nhân tạo Nó là sự mô phỏng các quátrình trí tuệ của con người bằng máy móc, đặc biệt là các hệ thống hệ máy tính Cácứng dụng cụ thể của AI bao gồm xử lý các ngôn ngữ tự nhiên, nhận dạng giọng nói vàthị giác, quản lý hệ thống
Bản chất của AI là mô hình, thuật toán được huấn luyện trên một tập dữ liệu
để giải quyết một bài toán rất cụ thể AI giống như một đứa bé sơ sinh vậy, nó bắtđầu thu nhận hình ảnh và học cách phân loại Nó chỉ có thể nhận diện gương mặt ba,
mẹ hoặc ông bà chứ không thể làm gì khác nữa
Hiện nay, công nghệ AI có 3 hướng chính:
Xử lý hình ảnh (Computer Vision)
Xử lý ngôn ngữ tự nhiên (Natural Language Processing)
Xử lý tín hiệu âm thanh (Audio Signal Processing)
Trong đồ án này, đề tài em thực hi n chủ yếu phát triển theo hướng xử lý hìnhệảnh
Trang 14xe thông minh Nó hỗ trợ các nhà quản lý rất nhiều trong việc giám sát giao thông và
xử lý các sai phạm
Trang 15Với công nghệ tiến bộ với tốc độ chóng mặt, các thành phần của hệ thống tự độngnhận dạng biển số đã được cải thiện vô cùng Ngày nay, ngành công nghiệp đã pháttriển vượt ra ngoài máy ảnh, nơi có thể nhận dạng bằng các cảm biến và thiết bị diđộng.
Với các cảm biến hình ảnh có độ phân giải cao và khả năng xử lý dữ liệu nhanhhơn, độ chính xác phát hiện của hệ thống tự động nhận dạng biển số đã được cảithiện đáng kể Những tiến bộ trong phần cứng hiệu suất đã tăng cường khả năng củaphần mềm, từ đó cải thiện kết quả phân tích sau khi chụp và cảnh báo hoạt độngtheo thời gian thực
Bây giờ, ngành công nghiệp đang vượt ra ngoài máy ảnh truyền thống; nó có thểthực hiện nhân dạng biển số chỉ với một chiếc điện thoại thông minh
Một công nghệ mà việc sử dụng đã từng bị hạn chế trong việc xác định đăng ký xe
đã hết hạn và tìm kiếm những chiếc xe bị đánh cắp giờ đây trở thành một phần quantrọng trong các hoạt động đỗ xe thông minh trên toàn cầu Với camera nhân dạngbiển số được cài đặt trên các phương tiện thực thi, cảnh sát viên có thể nhận đượccảnh báo theo thời gian thực về việc chiếm chỗ, thời gian đỗ xe, khu vực dễ tuân thủthấp, tranh chấp vé qua đó giúp họ xác định và xác định vị trí lái xe và hướng lái xeđến chỗ đỗ xe để đảm bảo luồng giao thông liền mạch
2.2.2 Nhận dạng biển số xe như nào ?
Để giải quyết được bài toán nhận dạng biển số xe, yêu cầu đặt ra phải giải quyếtđược 3 bài toán con:
Bài toán con thứ 1: Xác định vùng chứa biển số xe và tách biển số
Bài toán con thứ 2: Phân đoạn từng ký tự
Bài toán con thứ 3: Nhận dạng ký tự
Ở bài toán này, chúng ta sử dụng WPOD để tách biển số xe ra khỏi ảnh và sử dụngTrain model SVM để nhận diện với :
Input : là một ảnh có chưa biển số xe hoặc video chứ ảnh số xe
Trang 16 Ouput: biển số xe bằng chữ số và được in lên màn hình
2.3 Kiến trúc mạng WPOD
2.3.1 Tại sao lại chọn mạng WPOD ?
Vấn đề của các phương pháp object detection được áp dụng vào bài toán phát hiệnbiển số xe là nó chỉ đưa về kết quả là một vùng chứa biển số xe (vùng này có thể baogồm cả biển số xe và phần chi tiết của thân xe) Những trường hợp trả về cả biển số lànhững trường hợp biển số được chụp thẳng chính diện với camera ví dụ như ở các bãigửi xe tự động thì camera sẽ được lắp sao cho camera sẽ hướng thẳng đến vùng cóbiển số Tuy nhiên trong một số trường hợp không phải lúc nào biển số xe cũng đượcchụp ở hướng chính diện Ví dụ trong trường hợp một chú cảnh sát giao thông vớimột thiết bị máy quay di động ( hoặc smartphone) dẫn đến góc nhìn tới biển số bịnghiêng gây ảnh hưởng đến việc trích xuất thông tin biển số ở các bước sau
Các bạn có thể nhìn hình 3 dưới đây, có thể nhìn thấy ngay là với trường hợphướng nhìn chính diện (hình trái) thì vùng biển số phát hiện được hầu như không cóchi tiết của thân xe, với trường hợp hướng nhìn hơi nghiêng một chút (hình phải) thìvùng biển số đã có rất nhiều các chi tiết thừa ở thân xe
Hình 2: Kết quả detect dùng YOLO trên ảnh với hướng nhìn chính diện và hướng nghiêng khi chụp biển số
Trang 17không gian xung quanh biển số xe là như thế nào thì WPOD có thể trả về một vùng tứgiác bao quanh biển số xe và đưa biển số về hướng nhìn chính diện.
Hình 3: Kết quả dectect khi sử dụng WPOD cho trường hợp biển số xe bị nghiêng
Hình 3 là kết quả detect khi sử dụng WPOD, ta có thể thấy vùng biển số xe detect rakhông có các chi tiết thừa từ thân xe và WPOD đã chuyển đổi vùng biển số xe này vềhướng chính diện
2.3.2 Cách hoạt động của mạng WPOD
Hình 4: Hoạt động của mạng WPOD
Hình bên trên thể hiện cách thức hoạt động của mạng WPOD Ta có thể thấy từ 1ảnh đầu vào thông qua quá trình lan truyền tiến qua mạng ta thu được outputfeatures map gồm 8 channels trong đó 2 channels đầu tiên là xác suất có/không cóbiển số xe và 6 channels còn lại là những thông số để tính toán ma trận transform (là
ma trận được sử dụng để chuyển đổi góc nhìn của biển số xe)
Để trích xuất ra được vùng biển số xe thì nhóm tác giả đã xét một hình vuông vớikích thước cố định (phần hình vuông viền trắng trên hình) xung quanh từng cell trênoutput features map Nếu xác suất có đối tượng của cell đó lớn hơn ngưỡng quy địnhthì những giá trị của 6 channels còn lại của cell đó sẽ được sử dụng để tính toán ma
Trang 18trận tranform từ vùng hình vuông về vùng biển số xe (đa giác viền đỏ trên hình) Và tacũng sẽ sử dụng ma trận này để đưa biển số xe về hướng nhìn chính diện.
2.3.3 Chi tiết về kiến trúc mạng WPOD
Hình 5: Kiến trúc mạng WPOD
Kiến trúc của mạng bao gồm 21 lớp convolutional trong đó có 14 lớp là nằm trongcác khối residual Tất cả các lớp đều dùng filter với kích thước 3x3 và dùng hàm kíchhoạt là Relu ngoại trừ khối Detection Khối Detection là khối đáng chú ý nhất trongkiến trúc mạng này
Như đã đề cập ở trên thì output features map sẽ bao gồm 8 channels trong đó 2channels đầu là xác suất có/không có đối tượng, 6 channels sau chứa các giá trị để tạo
ra ma trận affine transform Và để tạo ra được output features map như vậy thìkhối Detection có 2 luồng riêng biệt, luồng thứ nhất dành cho việc tính toán xác suấtcó/không có đối tượng (2 channels đầu tiên của output features map) với luồng nàythì sử dụng activations là softmax, luồng thứ 2 phục vụ cho việc tính toán các thông số
để tạo ra ma trận transform với luồng này ta không sử dụng hàm kích hoạt hay nóicách khác hàm kích hoạt cho luồng này là hàm \mathbf{f(x) = x}f(x)=x Kết quả của 2luồng nay sau đó sẽ được gộp với nhau để đưa ra output
Trang 192.4 Phương pháp nhận dạng Support Vector Machine (SVM)
2.4.1 Tổng quan về SVM
Support Vector Machines (có tài liệu dịch là Máy véctơ hỗ trợ) là một trong sốnhững thuật toán phổ biến và được sử dụng nhiều nhất trong học máy trước khimạng nơ ron nhân tạo trở lại với các mô hình deep learning Nó được biết đến rộngrãi ngay từ khi mới được phát triển vào những năm 1990
Mục tiêu của SVM là tìm ra một siêu phẳng trong không gian N chiều (ứng với
N đặc trưng) chia dữ liệu thành hai phần tương ứng với lớp của chúng Nói theo ngônngữ của đại số tuyển tính, siêu phẳng này phải có lề cực đại và phân chia hai baolồi và cách đều chúng
Hình 6: SVM
Trong không gian N chiều, một siêu phẳng là một không gian con có kích thước N-1chiều Một cách trực quan, trong một mặt phẳng (2 chiều) thì siêu phẳng là mộtđường thẳng, trong một không gian 3 chiều thì siêu phẳng là một mặt phẳng
Siêu phẳng tạo ra một biên giới phân chia 2 lớp của dữ liệu