Nhận dạng bảng chữ cái ngôn ngữ ký hiệu
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA TPHCM
KHOA ĐIỆN-ĐIỆN TỬ
ĐỀ TÀI: Nhận dạng bảng chữ cái ngôn ngữ ký hiệu
Giảng viên hướng dẫn : TS Hà Hoàng Kha
Trang 2
TPHCM 9-2016 LỜI MỞ ĐẦU
Tương tác người - máy là một lĩnh vực nghiên cứu thu hút nhiều sự quan tâm của cácnhà khoa học trên thế giới cũng như trong nước trong thời gian gần đây Mục tiêu của các nghiêncứu này nhằm hướng tới các hệ tương tác người – máy, nghĩa là có thể dùng các phương tiệntương tác thông qua cử chỉ, điệu bộ, tiếng nói,… để tương tác giữa người và máy
Hiện tại, con người chủ yếu tương tác với máy tính thông qua chuột và bàn phím Với sựphát triển nhanh chóng của công nghệ và khoa học máy tính, người ta muốn có những sự tươngtác mới dễ dàng hơn, nhanh hơn, tiện lợi hơn cho người sử dụng giống như sử dụng những cửchỉ thông thường của con người hoặc bằng tiếng nói Trên thực tế, một số kỹ thuật trong lĩnh vựcThị giác máy tính và Học máy có thể cho phép máy tính biểu diễn và nhận dạng cử chỉ tay haygiọng nói của con người
Trong đồ án này, chúng em đã phát triển phương pháp sử dụng dữ liệu video độ sâu từkinect, sử dụng thông tin xương (Skeleton) để nhận dạng bảng chữ cái theo cử chỉ bàn tay
Bài báo cáo đồ án này gồm 6 chương
Chương 1: Giới thiệu chung
Chương 2: Hệ thống xử lý ảnh
Chương 3: Nhận dạng với thuật toán Support Vector Machine
Chương 4: Khái quát về nhận dạng và trích chọn đặc trưng theo phương pháp PCAChương 5: Tìm hiểu và ứng dụng của Kinect
Chương 6: Xây dựng hệ thống nhận dạng bảng chữ cái theo ngôn ngữ ký hiệu
Để hoàn thành tốt đồ án này, chúng em xin chân thành cảm ơn tới thầy Hà Hoàng Kha,
đã tạo điều kiện thuận lợi và giúp đỡ chúng em trong suốt quá trình thực hiện
Trang 3MỤC LỤC 1
CHƯƠNG 1 GIỚI THIỆU CHUNG 1
1.1 Bài toán phát hiện đối tượng 1
1.2 Nhiệm vụ của đề tài 2
1.3 Tổng quát về bài toán nhận dạng ký hiệu bàn tay 3
1.3.1 Các đề tài trong nước 4
1.3.2 Các đề tài trên thế giới 5
CHƯƠNG 2 HỆ THỐNG XỬ LÝ ẢNH 7
2.1 Giới thiệu về hệ thống xử lý ảnh 7
2.2 Cơ bản về ảnh và các hàm xử lý ảnh cơ bản trong matlab 9
2.2.1 Các kiểu ảnh trong matlab 9
2.2.1.1 Ảnh index 9
2.2.1.2 Ảnh grayscale 10
2.2.1.3 Ảnh nhị phân 11
2.2.1.4 Ảnh RGB 11
2.2.2 Các hàm xử lý ảnh 12
2.2.2.1 Đọc và ghi dữ liệu ảnh 12
2.2.2.2 Chuyển đổi giữ các kiểu dữ liệu, kiểu ảnh 12
2.2.2.3 Các hàm chuyển đổi giữa các kiểu ảnh 13
2.2.2.4 Thay đổi kích thước ảnh 14
2.2.2.5 Phép quay ảnh 15
2.2.2.6 Trích xuất ảnh 15
CHƯƠNG 3 NHẬN DẠNG VỚI THUẬT TOÁN SUPPORT VECTOR MACHINE 17
3.1 Bài toán phân lớp 17
3.2 Bài toán phân 2 lớp cho SVM 17
3.2.1 SVM cho bài toán phân lớp tuyến tính 19
3.2.2 SVM cho bài toán phân lớp phi tuyến 22
CHƯƠNG 4 KHÁI QUÁT VỀ NHẬN DẠNG THEO PHƯƠNG PHÁP PCA 24
4.1 Khái quát về nhận dạng ngôn ngữ ký hiệu 24
4.1.1 Hệ thống nhận dạng tổng quát 24
Trang 44.2 Đặc trưng PCA và bài toán nhận dạng ngôn ngữ ký hiệu 25
4.2.1 Giới thiệu 25
4.2.2 Đặc trưng PCA 25
4.3 Trích chọn đặc trong PCA và huấn luyện 25
4.3.1 Nhận các cử chỉ bàn tay từ cơ sở dữ liệu – tập luyện 25
4.3.2 Tính toán giá trị trung bình 26
4.3.3 Tính ma trận hiệp biến 26
4.3.4 Tính các trị riêng và vector đặc trưng của ma trận hiệp biến 26
4.3.5 Lựa chọn các thành phần và xây dựng vector đặc trưng 27
4.4 Nhận dạng dựa trên đặc trưng PCA ( Gesture Recoginition) 27
4.4.1 Trích rút đặc trưng PCA 27
4.4.2 Chuẩn hóa, trừ đi vector trung bình 27
4.4.3 Đưa vào không gian đặc trưng 27
4.4.4 Tương ứng Φ với 28
4.4.5 Tính khoảng cách er 28
4.4.6 So sánh khoảng cách ngưỡng và rút ra kết luận 28
CHƯƠNG 5 TÌM HIỂU VÀ ỨNG DỤNG CỦA KINECT 29
5.1 Giới thiệu về Kinect 29
5.2 Thư viện SDK 1.0 29
5.3 Tương tác Kinect với Matlab 30
CHƯƠNG 6 HỆ THỐNG NHẬN DẠNG BẢNG CHỮ THEO NGÔN NGỮ KÝ HIỆU 33
6.1 Thiết kế hệ thống theo phương pháp SVM 33
6.2 Phân tích mô hình 33
Trang 5CHƯƠNG 1 GIỚI THIỆU CHUNG 1.1 Bài toán phát hiện đối tượng
Từ xưa con người luôn mong muốn chế tạo một thiết bị "biết suy nghĩ và làm việc giống
như con người" Hiện nay trên thế giới, nhiều nước phát triển đã chế tạo được những con Robot
có khả năng "suy nghĩ" và "tự hoạt động độc lập" gần giống như con người Để Robot có khả năng
như trên, ngoài các yêu cầu về phần cứng và phần mềm điều khiển thì yếu tố quan trọng không
thể thiếu đó là "thị giác máy tính (Computer Vision)" "Thị giác máy tính" tương tự như "đôi mắt" của con người, nhờ đó Robot có thể "quan sát" được thế giới xung quanh chúng để có thể đưa ra phản
ứng với bên ngoài Đây là hướng nghiên cứu đang được quan tâm hiện nay trên thế giới cũngnhư ở Việt Nam
Nhận dạng cử chỉ (Gesture Recognition) là một hướng nghiên cứu trong lĩnh vực Thị giác máy tính với mục tiêu giúp máy tính có thể hiểu được cử chỉ con người thông qua việc sử
dụng các mô hình toán học Cử chỉ có thể xuất phát từ chuyển động của nhiều bộ phận khác nhautrên cơ thể, nhưng thường thấy nhất là từ gương mặt hoặc bàn tay.Ở nước ta, hoạt động nghiêncứu và thiết kế các hệ thống nhận dạng đang có những bước đầu phát triển trong các trường đạihọc Các đề tài nghiên cứu khoa học và luận văn trước đây chủ yếu tập trung vào các mảng nhưnhận dạng khuôn mặt và cảm xúc trên khuôn mặt, nhận dạng dấu vân tay để hỗ trợ điều khiểntrong các hệ thống an ninh… Tuy nhiên, các đề tài liên quan tới giao tiếp giữa người và máy tínhthông qua cử chỉ bàn tay vẫn còn chưa được phát triển đầy đủ
Hình 1.1 Điều khiển máy tính từ xa bằng tay
Trang 6CHƯƠNG 1 GIỚI THIỆU CHUNG
Nhận thấy đây là hướng phát triển mới và có tiềm năng ứng dụng cao, đồ án tốt nghiệp đãtập trung vào việc kết hợp những kiến thức về thị giác máy tính và xử lí ảnh số để nhận dạng cửchỉ bàn tay, từ đó sử dụng cho việc nhận dạng bảng chữ cái giúp người khuyết tật giao tiếp vớingười bình thường
Do ưu điểm nổi trội về tốc độ nhận dạng và độ chính xác cao, mô hình machine learning
dùng Principal Component Analysis (PCA) và Support Vector Machine (SVM) được chọn đểthực hiện bộ nhận dạng trong đồ án này Đây là mô hình đủ mạnh để có thể dùng trong các ứngdụng giao tiếp thời gian thực giữa người và máy tính, đồng thời cũng là mô hình được hỗ trợ đầy
đủ trong phần mềm MATLAB do công ty MathWorks cung cấp và phát triển Đồng thời thiết bịđược sử dụng trong việc nhận dạng người trong môi trường thật là Kinect, đây là thiết bị cảmbiến ngoại vi thu chuyển động phát triển bởi Microsoft Với dữ liệu chiều sâu, có thể lấy đượckhung xương của một người khi đứng trước cảm biến Với bộ khung xương đó có thể nhận biếtđược cử chỉ của người sử dụng
Hình 1.1 Thiết bị Kinect Xbox Version 1
1.2 Nhiệm vụ của đề tài
Tìm hiểu tổng quan về xử lý ảnh số, các thuật toán lọc nhiễu, bắt ảnh động cũng như pháthiện chuyển động, xử lý và nhận dạng Tìm hiểu thư viện xử lý ảnh dùng phần mềm MATLAB
Nghiên cứu cơ sở lý thuyết của thuật toán nhận dạng PCA và thuật toán SVM cũng nhưcác quá trình xử lý ảnh số Từ đó thu thập ảnh mẫu và huấn luyện bộ nhận dạng
Tìm hiểu so sánh ưu, khuyết điểm của 2 thuật toán PCA và SVM trong nhận dạng cử chỉ tay
Ý nghĩa thực tế và phạm vi ứng dụng
Hiện nay vấn đề giúp người tàn tật hoà nhập cuộc sống là một vấn đề rất được xã hộ quantâm và ủng hộ Với đề tài này, người câm có thể hoàn toàn giao tiếp với người bình thường thôngqua việc sử dụng ký hiệu ngôn ngữ tay để diễn đạt
Trang 7Ngoài ra, nhận diện cử chỉ tay có thể được ứng dụng vào công nghiệp, ta có thể chế tạođược các Robot có thể bám theo các cử động của bàn tay để hoạt động trong các môi trường khắcnghiệt mà con người khó tiếp cận như khu vực có phóng xạ cao, khu vực dễ xảy ra tai nạn.Trong lĩnh vực giải trí, ta có thể tích hợp công nghệ xử lý ảnh lên các Smart House, Smart TV,Smart Phone, laptop, v.v… giúp chúng ta tương tác với các thiết bị này hay điều khiển các thiết
bị trong gia đình với các cử chỉ của bàn tay
1.3 Tổng quát về bài toán nhận dạng ký hiệu bàn tay
Bài toán nhận dạng cử chỉ bàn tay có độ khó khá cao do bàn tay là một cấu trúc rất phứctạp với nhiều đốt và khớp khác nhau Điều này đặt ra nhiều thách thức cho quá trình xây dựng đềtài
Để tương tác hiệu quả với người dùng, hệ thống phải đạt được tốc độ nhận dạng đủ nhanh
để có thể hoạt động ở chế độ thời gian thực Kết quả sẽ không được chấp nhận nếu người câmphải chờ nhiều giây để cử chỉ của họ được hiện lên màn hình Đáp ứng nhanh là một trong nhữngyêu cầu quan trọng nhất Bài toán nhận dạng cử chỉ có thể phân thành hai loại chính là nhận dạng
cử chỉ tĩnh và nhận dạng cử chỉ động
di chuyển của bàn tay
liên tục của bàn tay trong một khoảng thời gian xác định
Hệ thống nhận dạng cử chỉ bàn tay trong luận văn này được xây dựng để có khả năng nhậndạng và phân loại các cử chỉ tĩnh khác nhau: trong phạm vi của đồ án hệ thống nhận dạng gồm
26 cử chỉ tương đương với 26 ký tự trong bảng chữ cái
Trang 8CHƯƠNG 1 GIỚI THIỆU CHUNG
Hình 1.2 Bảng chữ cái ngôn ngữ ký hiệu
1.3.1 Các đề tài trong nước
Ở nước ta, công trình thực hiện nhận dạng cử chỉ bàn tay còn chưa nhiều Đáng chú ý nhất là các đề tài:
Tìm hiểu kỹ thuật phát hiện người trong video để giám sát lớp học" của Nguyễn Xuân
Tường Huy và Nguyễn Hoàng Vũ
Trong luận văn này, họ đã dùng nhiều phương pháp khác nhau như: rút trích đặc trưng, phương pháp phát hiện màu để phát hiện có bàn tay đưa lên trong lớp học
Trang 91.3.2 Các đề tài trên thế giới
Ở các nước, các nhà nghiên cứu đã tiếp cận bài toán nhận dạng cử chỉ bàn tay theo rất nhiều hướng khác nhau như dựa vào màu sắc bàn tay, hình dáng bàn tay hay công trình của Viola & Jones dùng các đặc trưng Haar-like
Công trình của J Yao et al
Ứng dụng này tập trung vào việc phát hiện chuyển động của cánh tay trong môi trường lớp học Đây là bài toán khó do phông nền phức tạp và bị tác động bởi nhiễu, điều kiện ánh sáng thay đổi, vật thể cần nhận dạng có số lượng nhiều và kích thước nhỏ Một hệ thống quan sát tinh
vi có khả năng phát hiện khi sinh viên đưa tay lên muốn đặt câu hỏi trong lớp được thực hiện trong công trình này Hệ thống thực hiện khá tốt chức năng phát hiện cánh tay đưa lên trong lớp học, mặc dù cần nhiều cải tiến nữa để tăng độ tin cậy để áp dụng vào thực tế Nhận dạng sai thường rơi vào những trường hợp đặc biệt, ví dụ như sinh viên đứng lên hay đi lại trong lớp, hay khi phông nền có những mảng màu trùng với màu da Độ chính xác 80% còn khá thấp, khó ứng dụng trong điều khiển
Công trình của L Bretzner et al
Công trình giới thiệu các thuật toán và hệ thống dùng để nhận biết và theo dõi cử chỉ bàn tay.Bàn tay được biểu thị thông qua sự phân tầng các đặc điểm màu sắc của hình ảnh ở những kích thước khác nhau cùng những quan hệ về kích thước, vị trí và hướng Với mỗi hình ảnh nhận vào,
hệ thống sẽ phân tích và phát hiện những đặc điểm màu sắc ở những kích thước khác nhau Các trạng thái của bàn tay được phát hiện đồng bộ và theo dõi dùng phương pháp lọc từng phần, dùng kĩ thuật lấy mẫu theo lớp phân tầng Tuy nhiên, công trình này vẫn còn tồn tại nhiều những
khuyết điểm chung của việc nhận dạng thông qua màu da giống như công trình của J Yao et al
đã nêu ở trên
Công trình của B Ionescu et al
Theo phương pháp được đề xuất bởi Freeman and Roth, những kí hiệu tĩnh dùng biểu đồ định hướng cục bộ để phân loại những cử chỉ bàn tay khác nhau Ở đây, ta cần thực hiện một số thao tác huấn luyện, theo đó biểu đồ định hướng được tính toán trên tập huấn luyện có tối thiểu 3mẫu cho mỗi kí hiệu bàn tay Biểu đồ cử chỉ nhận vào sẽ được so sánh với thông số của tập huấn luyện Mỗi cử chỉ được biểu hiện thông qua một chuỗi những những hình ảnh Những kí hiệu động phản ánh những chuyển động và vị trí trong không gian của cử chỉ
Trang 10CHƯƠNG 1 GIỚI THIỆU CHUNG
Thuật toán cho kết quả nhận dạng 100%, nhưng chỉ làm việc được trong điều kiện đơn giản hóa phông nền và tốc độ nhận dạng vẫn còn chậm
Công trình của P Viola et al.
Công trình này mô tả phương pháp nhận dạng vật thể có thể xử lí ảnh với tốc độ rất nhanh tỉ
lệ phát hiện đúng vật thể rất cao Viola và Jones đã đề xuất 3 điểm nổi bật
Thứ nhất là khái niệm "Integral Image" cho phép tính toán các đặc điểm nhận dạng rất nhanh Thứ hai là thuật toán AdaBoost cho phép lựa chọn những đặc điểm quan trọng và những tầng phân loại hoạt động hiệu quả
Cuối cùng là phương pháp kết hợp những bộ phân loại thành những tầng cho phép những vùng phông nền không chứa vật thể bị loại nhanh ngay từ những tầng đầu và dành nhiều thời gian hơn vào việc tính toán những vùng ảnh có khả năng chứa vật thể Cách tiếp cận mới này chophép giảm thời gian tính toán trong khi vẫn đảm bảo được tỉ lệ nhận dạng cao khoảng gần 94%, tốc độ tăng khoảng 15 lần so với các công trình trước đó Do những đặc điểm nổi trội trên nên
mô hình có thể được áp dụng cho các ứng dụng nhận dạng thời gian thực
Trang 11CHƯƠNG 2 HỆ THỐNG XỬ LÝ ẢNH2.1 Giới thiệu về hệ thống xử lý ảnh
Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ Nó là một ngành khoa học mới
mẻ so với các ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu ứng dụng, đặc biệt là máy tính chuyên dụng cho nó
Hình 2.1 Hệ thống xử lý ảnh
Thường ảnh nhận qua camera là ảnh tương tự, cũng có loại camera đã số hoá
cần đưa vào bộ tiền xử lý để nâng cao chất lượng Chức năng chính của bộ tiền xử lý là lọc nhiễu, nâng độ tương phản để làm ảnh rõ hơn, nét hơn
phần để biểu diễn phân tích, nhận dạng ảnh Ví dụ: để nhận dạng chữ (hoặc mã vạch) trênphong bì thư cho mục đích phân loại bưu phẩm, cần chia các câu, chữ về địa chỉ hoặc tên người thành các từ, các chữ, các số (hoặc các vạch) riêng biệt để nhận dạng Đây là phần phức tạp khó khăn nhất trong xử lý ảnh và cũng dễ gây lỗi, làm mất độ chính xác của ảnh Kết quả nhận dạng ảnh phụ thuộc rất nhiều vào công đoạn này
vùng ảnh (ảnh đã phân đoạn) cộng với mã liên kết với các vùng lận cận Việc biến đổi các số liệu này thành dạng thích hợp là cần thiết cho xử lý tiếp theo bằng máy tính Việc chọn các tính chất để thể hiện ảnh gọi là trích chọn đặc trưng (Feature Selection) gắn với việc tách các đặc tính của ảnh dưới dạng các thông tin định lượng hoặc làm cơ sở để phânbiệt lớp đối tượng này với đối tượng khác trong phạm vi ảnh nhận được Ví dụ: trong
Trang 12CHƯƠNG 2 HỆ THỐNG XỬ LÝ ẢNH
nhận dạng ký tự trên phong bì thư, chúng ta miêu tả các đặc trưng của từng ký tự giúp phân biệt ký tự này với ký tự khác
các khâu tiếp theo để phân tích Nếu lưu trữ ảnh trực tiếp từ các ảnh thô, đòi hỏi dung lượng bộ nhớ rất lớn và không hiệu quả theo quan điểm ứng dụng và công nghệ Thông thường các ảnh thô đó được đặc tả (biểu diễn) lại (hay đơn giản là mã hóa) theo các đặc điểm của ảnh được gọi là các đặc trưng ảnh (Image Features) như: biên ảnh (Boundary), vùng ảnh (Region)
trình xác định ảnh Quá trình nà y thường thu được bằng cách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước Nội suy là phán đoán theo ý nghĩa trên cơ sở nhận dạng Vídụ: một loạt chữ số và nét gạch ngang trên phong bì thư có thể được nội su y thành mã điện thoại Có nhiều cách phân loại ảnh khác nhau về ảnh Theo lý thuyết về nhận dạng, các mô hình toán học về ảnh được phân theo hai loại nhận dạng ảnh cơ bản:
Nhận dạng theo tham số
Nhận dạng theo cấu trúc
Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng trong khoa học và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản (Text), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người…
về đường nét, độ sáng tối, dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu Trong nhiều khâu xử lý và phân tích ảnh ngoài việc đơn giản hóa các phương pháp toán học đảm bảo tiện lợi cho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận và xử lý ảnh theo cách của con người Trong các bước xử lý đó, nhiều khâu hiện nay đã xử lý theo các phương pháp trí tuệ con người Vì vậy, ở đây các cơ sở tri thức được phát huy
Trang 13Hình 2.2: Sơ đồ phân tích, xử lí ảnh và lưu đồ thông tin giữa các khối
2.2 Cơ bản về ảnh và các hàm xử lý ảnh cơ bản trong matlab
2.2.1 Các kiểu ảnh trong matlab
2.2.1.1 Ảnh index
Ảnh được biểu diễn bởi hai ma trận, một ma trận dữ liệu ảnh X và một ma trận màu (còn gọi là bản đồ màu) map Ma trận dữ liệu có thể thuộc kiểu uint8, uint16 hoặc double Ma trận màu là một ma trận kich thước m x 3 gồm các thành phần thuộc kiểu double có giá trị trong khoảng [0 1] Mỗi hàng của ma trận xác định thành phần red, green, blue của một màu trong tổng
số m màu được sử dụng trong ảnh Giá trị của một phần tử trong ma trận dữ liệu ảnh cho biết màu của điểm ảnh đó nằm ở hàng nào trong ma trận màu
Trang 14Hình 2.4 Ảnh xám
Trang 15Hình 2.6 Biểu diễn ảnh RGB
Trang 16CHƯƠNG 2 HỆ THỐNG XỬ LÝ ẢNH
2.2.2 Các hàm xử lý ảnh
2.2.2.1 Đọc và ghi dữ liệu ảnh
Hàm imread đọc các file ảnh với bất kỳ các định dạng ảnh đã biết hiện nay và lưu lại
dưới dạng một ma trận biểu diễn ảnh trong Matlab
Cú pháp : A=imread(filename,fmt)
Hàm imwrite cho phép lưu một ảnh biểu diễn bằng một ma trận trong Matlab thành một
file ảnh dưới một trong các định dạng đã biết
Cú pháp : imwrite(A,filename,fmt)
Hàm imfinfo dùng để xem các thông số của một file ảnh nào đó
Cú pháp :imfinfo(filename,fmt) Các thông tin được cung cấp bởi hàm imfinfo là :
filename, filemoddate, filesize, format, formatversion, width, height, bitdepth, colortype
2.2.2.2 Chuyển đổi giữ các kiểu dữ liệu, kiểu ảnh
Chuyển đổi giữa các kiểu dữ liệu ảnh
Matlab cung cấp sẵn các hàm thực hiện chuyển kiểu cho các ma trận biểu diễn ảnh, bao
gồm : im2double, im2uint8 và im2uint16 Tuy nhiên, khi thực hiện chuyển kiểu giữa các dữ
liệu ảnh cần lưu ý một số điều sau:
Khi chuyển từ một kiểu dữ liệu dùng nhiều bit sang một kiểu dữ liệu dùng it bit hơn thì một số thông tin chi tiết về bức ảnh ban đầu sẽ bị mất
Không phải lúc nào cũng có thể chuyển đổi kiểu dữ liệu đối với kiểu ảnh indexed, vì các giá trị của ma trận ảnh xác định một địa chỉ trong bản đồ màu chứ không phải là giá trị màu, do
đó không thể lượng tử hóa được
Trang 172.2.2.3 Các hàm chuyển đổi giữa các kiểu ảnh
Gray2ind [X,MAP] = gray2ind(I,N)
[X,MAP] = gray2ind(BW,N)
Chuyển đổi ảnh nhị phân BW hoặc ảnhintensity thành ảnh index thông qua ma trận màu tuyến tính gray(N)
grayslice X=grayslice(I,N)
X=grayslice(I,V
Chuyển đổi ảnh trắng đen thành ảnh indexbằng cách lấy ngưỡng Các giá trị ngưỡng được xác định bởi vector V hoặc bởi N (khi đó các giá trị ngưỡng là 1/n, 2/n, (n-1)/n)
ind2gray i = ind2gray(x,map) Chuyển đổi ảnh index I với ma trận màu
rgb2ind(rgb,tol)
Chuyển ảnh RGB rgb thành ảnh index [x,map]:
TH1: N<=65535, số màu tối đa là NTH2: mỗi pixel được xấp xỉ đến màu gần giống nhất trong bản màu map
TH3: tol ∈ [0,1], số màu tối đa:
(floor(1/tol)+1)^3
Trang 18CHƯƠNG 2 HỆ THỐNG XỬ LÝ ẢNH
2.2.2.4 Thay đổi kích thước ảnh
Hàm imresize cho phép người sử dụng thay đổi kích thước của ảnh Ngoài kích thước
ảnh mới, người sử dụng còn có thể xác định phương pháp nội suy sẽ dùng và loại bộ lọc dùng để chống aliasing
b = imresize(a,m,Method)
Dòng lệnh trên tạo ảnh mới b có kích thước gấp m lần ảnh gốc a Method là một chuỗi xác định phương pháp nội suy sẽ dùng: ‘nearest’ (lân cận gần nhất), ‘bilinear’ (song tuyến tính) hoặc ‘bicubic’ Phương pháp mặc định là ‘nearest’ Thay vì xác định tỷ số m,
ta có thể xác định trực tiếp kích thước ảnh mới theo đơn vị pixel bằng cách dùng cú pháp:
b = imresize(a,[mrows mcols],method)
Trong đó mrows và mcols là số cột và số hàng của ảnh mới Hoặc ta cũng có thể xác định cụ thể bậc của bộ lọc chống aliasing (kích thước mặc định là 11x11) hoặc cung cấp cụ thể đáp ứng xung h của bộ lọc theo các cú pháp dưới đây:
Trang 192.2.2.5 Phép quay ảnh
Để thực hiện các phép quay ảnh, ta có thể sử dụng hàm imrotate Ngoài hai thông số cơ
bản là ảnh gốc và góc quay, người sử dụng cũng có thể xác định phương pháp nội suy sẽ dùng,
và kích thước của ảnh mới (đủ lớn để chứa ảnh mới hay chỉ bằng kích thước ảnh cũ).Thông số mặc định là ‘nearest’ (lân cận gần nhất) và ‘loose’ (tăng kích thước nếu cần) Trong trường hợp tăng kích thước, các điểm ảnh ở ngoải phần ảnh gốc sẽ được set về 0 (màu đen) Dưới đây là
cú pháp của hàm này, với Bbox là chuỗi xác định kích thước ảnh mới
Cú pháp:
b = imrotate(a,angle,Method,Bbox)
Hình 2.8 Minh hoạ phép quay ảnh
2.2.2.6 Trích xuất ảnh
Khi cần trích xuất một phần của ảnh gốc, ta dùng hàm imcrop Khi sử dụng hàm này,
người sử dụng có thể có hai lựa chọn: xác định cụ thể vị trí của phần ảnh cần trích (dưới dạng hình chữ nhật) bằng cách cung cấp các thông số vị trí khi gọi hàm hoặc sử dụng mouse để chọn phần ảnh cần trích xuất Nếu chọn cách thứ nhất, ta dùng cú pháp như sau:
x2 = imcrop(x,map,rect) % Ảnh indexed
a2 = imcrop(a,rect) % Ảnh grayscale hoặc RGB
Trong đó rect = [Xmin Ymin width height], với (Xmin,Ymin) là toạ độ góc trên bên trái của phần ảnh cần trích, width và height là chiều rộng và chiều cao của phần ảnh cần trích
Nếu dùng cách thứ hai, ta không cần cung cấp thông số rect, khi thực hiện hàm này, con trỏ sẽ chuyển sang dạng chữ thập, người dùng sẽ drag chuột để chọn phần ảnh cần trích sao đó
thả chuột Hàm imcrop sẽ trả về phần ảnh nằm trong phạm vi xác định bởi mouse
Trang 20CHƯƠNG 2 HỆ THỐNG XỬ LÝ ẢNH
Nếu không cung cấp thông số ảnh gốc, hàm imcrop sẽ mặc định chọn ảnh trên hệ trục
tọa độ hiện hành Ngoài ra, trong trường hợp xác định bằng mouse, người sử dụng có thể truy xuất các thông tin về vị trí và kích thước của phần ảnh đã chọn bằng cách yêu cầu thêm các output của hàm này:
[A2,rect] = imcrop(A)
[X2,rect] = imcrop(X,map)
Trang 21CHƯƠNG 3 NHẬN DẠNG VỚI THUẬT TOÁN SUPPORT
VECTOR MACHINE 3.1 Bài toán phân lớp
Phân lớp (classification) là một tiến trình xử lý nhằm xếp các mẫu dữ liệu hay các đối tượng vào một trong các lớp đã được định nghĩa trước Các mẫu dữ liệu hay các đối tượng được xếp vào các lớp dựa vào giá trị của các thuộc tính (attributes) cho một mẫu dữ liệu hay đối tượng Sau khi đã xếp tất cả các đối tượng đã biết trước vào các lớp tương ứng thì mỗi lớp được đặc trưng bởi tập các thuộc tính của các đối tượng chứa trong lớp đó
Quá trình phân lớp còn được gọi là quá trình gán nhãn cho các tập dữ liệu Nhiệm vụ của bài toán phân lớp dữ liệu là cần xây dựng mô hình (bộ) phân lớp để khi có một dữ liệu mới vào thì mô hình phân lớp sẽ cho biết dữ liệu đó thuộc lớp nào Có nhiều cách để biểu diễn một mô hình phân lớp và có rất nhiều thuật toán giải quyết nó Các thuật toán phân lớp tiêu biểu bao gồmnhư mạng neural, cây quyết định, suy luận quy nạp, mạng Beyesian, Support V ector Machine (SVM), … Trong các kỹ thuật đó, SVM được coi là công cụ mạnh, phổ biến và đặc biệt thích hợp cho phân lớp dữ liệu lớn và nhiều chiều
3.2 Bài toán phân 2 lớp cho SVM
Hình thức đơn giản của việc phân lớp là phân lớp nhị phân: phân biệt giữa các đối tượng thuộc về một trong hai lớp: dương (+1) hoặc âm (-1) SVMs sử dụng hai khái niệm để giải quyết vấn đề này: phân lớp biên rộng và hàm kernel Ý tưởng của phân lớp biên rộng có thể được minhhọa bởi sự phân lớp của các điểm trong không gian hai chiều (Hình 1) Một cách đơn giản để phân lớp các điểm này là sử dụng một đường thẳng để phân tách các điểm nằm ở một bên là dương và các điểm bên kia là âm Mục tiêu của SVM là xây dựng một siêu phẳng giữa hai lớp sao cho khoảng cách từ nó tới các điểm gần siêu phẳng của hai lớp là cực đại