Ngoài ra, xử lý ảnh còn xử dụng rộng rãitrong viễn thám, sinh học, y tế, hạt nhân, quân sự, công nghiệp,…Những vấn đề cơ bản của kỹ thuật xử lý ảnh được ứng dụng nhiều trong thực tế có t
Trang 1Chương 1 GIỚI THIỆU
1.Giới thiệu chung
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ànhkhoa học khá mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ pháttriển của nó rất nhanh; kích thích các trung tâm nghiên cứu, ứng dụng, đặcbiệt là máy tính chuyên dụng riêng của nó
Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng chính: nâng cao chấtlượng ảnh và phân tích ảnh Ứng dụng đầu tiên được biết đến là việc nâng caochất lượng hình ảnh báo truyền qua giữa đường cáp London và NewYork vàonăm 1920 Tuy nhiên việc xử lý, nâng cao chất lượng ảnh ban đầu còn rất sơkhai, chỉ đơn giản là xử lý phân bố các mức sáng (Mức xám và độ phân giảicủa ảnh)
Việc nâng cao chất lượng ảnh được phát triển vào khoảng những năm 1955.Điều này có thể giải thích được vì sau thế chiến thứ hai, máy tính phát triểnnhanh tạo điều kiện cho quá trình xử lý ảnh số thuận lợi
Năm 1964, máy tính đã có khả năng xử lý và nâng cao chất lượng ảnh từ mặttrăng và vệ tinh Ranger 7 của Mỹ bao gồm: làm nổi đường biên, lưu ảnh
Từ năm 1964 đến nay, các phương tiện xử lý, nâng cao chất lượng, nhận dạngảnh phát triển không ngừng Các phương pháp tri thức nhân tạo như mạngneural nhân tạo, các thuật toán xử lý hiện đại và cải tiến, các công cụ nén ảnhngày càng được áp dụng rộng rãi và thu nhiều kết quả khả quan
Trong y học, các thuật toán máy tính nâng cao độ tương phản, hoặc mã hóacác mức sáng thành các màu để nội suy ảnh X-quang và các ảnh y sinh học dễdàng Các nhà địa vật lý dùng kỹ thuật tương tự để nghiên cứu các mẫu vậtchất từ ảnh vệ tinh Trong thiên văn học, các phương pháp xử lý ảnh nhằmkhôi phục ảnh bị nhiễu hoặc bị mất do bóng sau khi chụp Trong vật lý, người
ta dùng kỹ thuật xử lý ảnh để nâng cao chất lượng ảnh trong các lĩnh vực như
Trang 2plasmas và microscopy điện tử Ngoài ra, xử lý ảnh còn xử dụng rộng rãitrong viễn thám, sinh học, y tế, hạt nhân, quân sự, công nghiệp,…
Những vấn đề cơ bản của kỹ thuật xử lý ảnh được ứng dụng nhiều trong thực
tế có thể kể đến như: tự động nhận dạng đặc trưng, máy nhìn công nghiệp đểđiều khiển và kiểm tra sản phẩm, nhận dạng mục tiêu quân sự, nhận dạng vântay, hiển thị lên màn hình ảnh X-quang và các mẫu máu, xử lý ảnh chụp từ vệtinh để dự báo thời tiết, nén ảnh để lưu trữ và truyền dữ liệu trong truyền hìnhMột trong những ứng dụng của xử lý ảnh là nhận dạng mặt người Lĩnh vựcnày ngày càng thu hút sự quan tâm của nhiều nhà khoa học Trên thế giới lĩnhvực này đã được nghiên cứu từ lâu song ở Việt Nam đây là một lĩnh vực mới,tài liệu còn rất hạn chế
2 Giới thiệu đề tài
Từ khi sinh ra, con người đã có khả năng nhận diện và phân biệt các khuônmặt Tuy nhiên, việc xây dựng các thuật toán nhận dạng mặt người ứng dụngtrên các hệ thống tự động rất khó bởi vì gương mặt người rất phức tạp, nhiềuchiều và nhiều trạng thái cảm xúc phức tạp…
Góp phần tìm hiểu vấn đề này tôi thực hiện đề tài “ Nhận dạng mặt người
Trang 33 Một số kết quả đạt được về nhận dạng mặt người
Cho đến nay, thế giới vẫn đang tiến hành nghiên cứu về nhận dạng mặt ngườivới độ mong muốn đạt được độ chính xác cao nhất cho hệ thống nhận dạng,đạt được độ tin cậy tốt nhất để đưa hệ thống đi vào hoạt động thực tiễn Tuynhiên nhình chung kết quả đạt được cũng chỉ ở độ chính xác trên dưới 90%
Chương 2
MATLAB và XỬ LÝ ẢNH
Trang 41 Giới thiệu chung về matlab
MATLAB có nguồn gốc từ chữ matrix laboratory, được Cleve Moler phátminh vào cuối thập niên 1970, là chủ nhiệm khoa máy tính tại Đại học NewMexico, là ngôn ngữ máy tính dùng để tính toán kỹ thuật
Trải qua nhiều phiên bản, năm 2004 MATLAB 7 phát hành, có khả năngchính xác đơn và kiểu nguyên, hỗ trợ hàm lồng nhau, công cụ vẽ điểm, vàphát triển thuật toán tương tác
Ban đầu MATLAB được lập ra để giải quyết các phép toán trên ma trận,chính điều này làm cho MATLAB có ứng dụng rất lớn trong nhiều ngành kỹthuật khác nhau so với các ngôn ngữ lập trình khác tính toán trên số vôhướng MATLAB kết hợp tính toán và lập trình đồ họa trong môi trường pháttriển tương tác, thời gian lập trình chỉ bằng một phần nhỏ so với các ngôn ngữlập trình khác nhờ vào các hàm có sẵn MATLAB là sản phẩm của công tyThe Mathworks Inc với địa chỉ www.mathworks.com và sử dụng MATLABphải có bản quyền Tuy nhiên có rất nhiều hàm MATLAB được viết bởingười sử dụng và phổ biến trên mạng giúp MATLAB ngày càng phong phúhơn
1.1 Các đặc điểm cơ bản của MATLAB
Là ngôn ngữ bậc cao dùng cho các tính toán kỹ thuật
Là môi trường phát triển để quản lý dữ liệu
Gồm nhiều công cụ tương tác cho việc khai thác và xử lý dữ liệu, thiết kế
và giải quyết vấn đề
Các hàm đồ thị đối với ảnh 2 hoặc 3 chiều cho phép hình ảnh hóa dữ liệu.Chứa các công cụ để xây dựng các giao diện đồ thị của người sử dụng.Gồm nhiều hàm chức năng dựa trên các giải thuật cơ sở nhằm tích hợpMATAB với các ứng dụng và ngôn ngữ lập trình khác như: C, C++,Fortran, Java, Microsoft excel…
1.2 Phát triển giải thuật và ứng dụng
Trang 5MATLAB là một ngôn ngữ bậc cao được tích hợp các công cụ phát triểngiúp người sử dụng phát triển và phân tích các giải thuật và ứng dụng mộtcách nhanh chóng.
Ngôn ngữ lập trình MATLAB hỗ trợ các phép toán đối với ma trận vàvector cơ sở cho các vấn đề kỹ thuật và khoa học
Việc lập trình và phát triển giải thuật trong MATLAB có tốc độ nhanhhơn so với các ngôn ngữ lập trình truyền thống do MATLAB bỏ qua cáccông việc điều khiển bậc thấp như khai báo biến, khai báo mẫu dữ liệu vàxác định vùng nhớ Trong nhiều trường hợp, MATLAB còn bỏ qua cả sựcần thiết của các vòng lặp “for” Kết quả là, một dòng lệnh được viếttrong MATLAB có thể tương đương với nhiều dòng lệnh trong C hay C++
Là một công cụ lập trình mạnh, MATLAB vẫn hỗ trợ những đặc tính củamột ngôn ngữ lập trình truyền thống như: toán tử số học, cấu trúc vòng,các cấu trúc và dạng dữ liệu cùng đặc tính gỡ rối
VD: Chương trình biểu diễn thuật toán điều chế tín hiệu truyền thông tạo
ra 1024 điểm, thực hiện điều chế, thêm nhiễu phức Gauss và vẽ lại kếtquả
% tạo một vector N bit
Trang 6Hình 1.1Trong khi đối với phần lớn các ngôn ngữ lập trình truyền thống phải trảiqua giai đoạn dịch (compilation) và liên kết (linking) thì MATLAB chophép người sử dụng có thể thực thi ngay các lệnh hoặc nhóm lệnh cùnglúc Điều này làm cho tốc độ xử lý trên MATLAB nhanh hơn đáng kể sovới trên các ngôn ngữ truyền thống
1.3 Phân tích và tiếp cận dữ liệu
Trong quá trình phân tích dữ liệu, MATLAB hỗ trợ hầu hết các công đoạnnhư: thu nhận dữ liệu từ thiết bị ngoại vi, các phân tích số học, tiền xử lý,hình ảnh hóa…
Phân tích dữ liệu: Chương trình MATLAB cung cấp các công cụ tươngtác cũng như các hàm điều khiển theo dòng cho việc tính toán trong phântích dữ liệu bao gồm:
Các phép nội suy
Trích chọn tính chất
Chọn ngưỡng và lọc nhiễu
Tương quan, phân tích Fourier và lọc
Phát hiện các điểm đỉnh, đáy và điểm không
Thống kê cơ bản và chuẩn hóa các đường cong
Phân tích ma trận
Trang 71.4 Tiếp cận dữ liệu
Việc tiếp cận dữ liệu từ các thư mục, ứng dụng, cơ sở dữ liệu và thiết bịngoại vi bởi MATLAB là hết sức dễ dàng MATLAB hỗ trợ nhiều loạiđịnh dạng file: ASCII, nhị phân, các file hình ảnh và âm thanh hay thậmchí các file định dạng HDF
Trong MATLAB có nhiều hộp công cụ (toolbox) hỗ trợ cho việc tiếp cận
dữ liệu như: hộp công cụ cơ sở dữ liệu (Database Toolbox), hộp công cụthu nhận dữ liệu (Data Acquisition Toolbox) hay hộp công cụ điều khiểnthiết bị (Instrument Control Toolbox)
1.5 Hình ảnh hóa dữ liệu
Tất cả các đặc tính về hình ảnh cần thiết cho hình ảnh hóa các dữ liệukhoa học kỹ thuật đều được tích hợp trong MATLAB Những đặc tính nàybao gồm: các hàm vẽ ảnh 2 và 3 chiều, các hàm vẽ thể tích 3 chiều, cáccông cụ tương tác tạo ảnh, khả năng xuất kết quả dưới các dạng file ảnhthông thường
VD: vẽ hàm y= sin(x) với -pi < x < pi
Trang 81.6 Xuất kết quả và triển khai ứng dụng
MATLAB đưa ra nhiều đặc tính giúp báo cáo và chia sẻ công việc Cácđoạn code viết trên MATLAB có thể được tích hợp với các ngôn ngữ vàứng dụng khác Đồng thời cũng có thể triển khai các thuật toán cũng nhưứng dụng của nó như một chương trình hoặc các khối phần mềm riêngbiệt
Xuất kết quả:
Sau khi hoàn thành công việc, người sử dụng cần xuất kết quả rathường là dưới dạng hình ảnh hoặc báo cáo MATLAB có hỗ trợ filehình ảnh với nhiều định dạng khác do đó việc xuất kết quả dưới dạng
đồ thị hay file ảnh là hết sức dễ dàng Ngoài ra, nếu muốn thì cũng cóthể chuyển code từ MATLAB ra các dạng khác: HTML, Word,Latex…
Kết hợp mã MATLAB với các loại ngôn ngữ và ứng dụng khác:
MATLAB cung cấp sẵn các hàm cho việc kết hợp mã của các ngônngữ lập trình khác như C, C++, Fortran hay Java với mã chương trìnhcủa nó Sử dụng thư viện công cụ (engine library) của MATLAB,người sử dụng có thể gọi các đoạn mã từ C, C++ hay Fortran
Triển khai ứng dụng:
Các sản phẩm sau khi xử lý bằng MATLAB thường là các đoạn mã.Các đoạn mã này có thể được cung cấp cho những người khác hoặcứng dụng vào các sản phẩm phần cứng hoặc phần mềm cụ thể
2 Xử lý ảnh (số) và các khái niệm liên quan
Trang 9xử lý hình ảnh như là một tín hiệu hai chiều rồi sử dụng các kỹ thuật xử lýtín hiệu để xử lý nó.
Hình dưới đây mô tả các bước cơ bản trong xử lý ảnh
Hình 1.3 Các bước cơ bản trong xử lý ảnh
2.1.1 Phần thu nhận ảnh (Image Acquisition)
Ảnh có thể nhận qua camera màu hoặc đen trắng Thường ảnh nhậnqua camera là ảnh tương tự cũng có loại camera đã số hoá
Camera thường dùng là loại quét dòng; ảnh tạo ra có dạng hai chiều.Chất lượng một ảnh thu nhận được phụ thuộc vào thiết bị thu, vào môitrường (ánh sáng, phong cảnh)
Do ảnh đầu ra của các thiết bị thu nhận ảnh có thể là ảnh số hay ảnhtương tự nên ta cần chuẩn hóa chúng về ảnh số để tiện sử lý Tiếp theoảnh được mã hóa và lưu lại trước khi vào quá trình tiền sử lý Đây làquá trình định dạng cho ảnh Quá trình này phải đảm bảo cho cácthông tin quan trọng của ảnh như cấu trúc, kích thước, màu sắc…không bị sai lệch so với ảnh gốc Lúc này ảnh có thể được xử lý trênmáy tính dưới dạng số Tùy thuộc vào các tiêu chuẩn khác nhau chúng
ta có các cách định dạng khác nhau
Dưới đây là một số định dạng:
Ảnh Bitmap – Microsoft Windows Bitmap (*.bmp): Ảnh Bitmap
là ảnh được định dạng theo chuẩn của Microsoft đưa ra Với địnhdạng này ảnh chỉ đươc chuyển mã và lưu lại đầy đủ các thông tin.Tuy nhiên định dạng này các thông tin của ảnh không được nén lại
Trang 10nên dung lượng thường rất lớn Dung lượng tập tin Bitmap phụthuộc nhiều vào số lượng màu sắc của ảnh.
Ảnh GIF – Graphic Interchanger Format (*.gif): Ảnh Gif là ảnh
được định dạng theo chuẩn nén LZW dựa trên sự lặp lại của một sốnhóm điểm ảnh thay vì các mã loạt dài như các định dạng khác nêndung lượng lưu trữ nhỏ hơn Ảnh gif thường được dùng để lưu trữcác ảnh đơn giản và có ít sự chuyển đổi màu giữa các vùng ảnh nhưảnh đồ họa hay đồ thị, biểu đồ…Tuy nhiên định dạng này cho chấtlượng ảnh cao, độ phân giải cao, có thể hiển thị trên hầu hết cácphần mềm đồ họa
Ảnh JPEG – Joint Photographic Expert Group ( *.JPEG hay
*.JPG): Ảnh JPEG là chuẩn nén ảnh tĩnh có mất mát, thường đượcdùng để lưu các ảnh màu hoặc các ảnh đa mức xám khi không cóyêu cầu cao về ảnh giải nén phải gần giống ảnh gốc Dung lượngảnh Jpeg thường rất nhỏ, người dùng có thể chủ động định dunglượng của ảnh bằng cách chọn tỉ lệ nén nhiều hay nén ít Ảnh lưuvới định dạng Jpg có thể lưu được 24 bits/picxel dữ liệu màu( tương đương 16 triệu màu)
2.1.2 Tiền xử lý (Image Processing)
Sau bộ thu nhận, ảnh có thể nhiễu độ tương phản thấp nên 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 Nhưvậy tiền xử lý ảnh là một phép biến đổi ảnh nhưng đảm bảo các thôngtin quan trọng của ảnh vẫn được lưu giữ như ảnh gốc ban đầu, đồngthời làm nổi bật một số đặc tính của ảnh Tiền xử lý ảnh không phải làlàm tăng lượng thông tin vốn có trong ảnh mà làm nổi bậc các đặc tính
đã chọn, tạo tiền đề cho cho quá trình phân tích ảnh
Tùy theo các ứng dụng cụ thể, quá trình tiền xử lý có thể bao gồm toàn
bộ các quá trình hay chỉ một phần Một số bước tiền xử lý như: cânbằng sáng tối, nâng cao độ tương phản, khử nhiễu…
Trang 112.1.3 Phân đoạn (Segmentation) hay phân vùng ảnh
Phân vùng ảnh là tách một ảnh đầu vào thành các vùng thành 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ên phong 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ênngười thành các từ, các chữ, các số (hoặc các vạch) riêng biệt để nhậndạ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
2.1.4 Biểu diễn ảnh (Image Representation)
Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của 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 đổicác số liệu này thành dạng thích hợp là cần thiết cho xử lý tiếp theobằng máy tính Việc chọn các tính chất để thể hiện ảnh gọi là tríchchọ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ân biệtlớp đối tượng này với đối tượng khác trong phạm vi ảnh nhận được
Ví dụ: trong 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
2.1.5 Nhận dạng & nội suy ảnh (Image Recognition - Interpretation)
Nhận dạng ảnh là quá 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 suy thành mã điện thoại
Có nhiều cách phân loai ảnh khác nhau về ảnh Theo lý thuyết về nhậndạ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ố
Trang 12Nhậ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ụngtrong 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ậndạng mã vạch, nhận dạng mặt người…
2.1.6 Cơ sở tri thức (Knowledge Base)
Như đã nói ở trên, ảnh là một đối tượng khá phức tạp về đường nét, độsáng tối, dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéotheo nhiễu Trong nhiều khâu xử lý và phân tích ảnh ngoài việc đơngiả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áchcủ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
2.2 Các khái niệm liên quan
2.2.1 Điểm ảnh(Picture Element)
Gốc của ảnh (ảnh tự nhiên) là ảnh liên tục về không gian và độ sáng
Để xử lý bằng máy tính (số), ảnh cần phải được số hoá Số hoá ảnh là
sự biến đổi gần đúng một ảnh liên tục thành một tập điểm phù hợp vớiảnh thật về vị trí (không gian) và độ sáng (mức xám) Khoảng cáchgiữa điểm ảnh đó được thiết lập sao cho mắt người không phân biệtđược ranh giới giữa chúng Mỗi một điểm như vậy gọi là điểm ảnh(PEL: Picture Element) hay gọi tắt là Pixel Trong khuôn khổ ảnh haichiều, mỗi Pixel ứng với cặp tọa độ (x,y)
Như vậy, điểm ảnh (Pixel) là một phần tử của ảnh số tại toạ độ (x,y)với độ xám hoặc màu nhất định Kích thước và khoảng cách giữa cácđiểm ảnh đó được chọn thích hợp sao cho mắt người cảm nhận sự liêntục về không gian và mức xám (hoặc màu) của ảnh số gần như ảnhthật Mỗi phần tử trong ma trận được gọi là một phần tử ảnh
2.2.2 Độ phân giải của ảnh
Trang 13Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh được ấn địnhtrên một ảnh số được hiển thị.
Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được chọn saocho mắt người vẫn thấy được sự liên tục của ảnh Việc lựa chọnkhoảng cách thích hợp tạo nên một mật độ phân bổ, đó chính là độphân giải và được phân bố theo trục x và y trong không gian hai chiềumỗi Pixel gồm một cặp toạ độ (x,y) và màu Độ phân giải của ảnhchính là tích số của giá trị lớn nhất của x với giá trị lớn nhất của y
Ví dụ: Độ phân giải của ảnh trên màn hình CGA (Color GraphicAdaptor) là một lưới điểm theo chiều ngang màn hình: 320 điểm chiềudọc * 200 điểm ảnh (320*200) Rõ ràng, cùng màn hình CGA 12” tanhận thấy mịn hơn màn hình CGA 17” độ phân giải 320*200 Lý do:cùng một mật độ (độ phân giải) nhưng diện tích màn hình rộng hơn thì
độ mịn (liên tục của các điểm) kém hơn
2.2.3 Mức xám (Gray level)
Mức xám là kết quả sự mã hoá tương ứng một cường độ sáng của mỗiđiểm ảnh với một giá trị số – kết quả của quá trình lượng tử hoá Các thang giá trị mức xám thông thường: 16,32,64,128,256 Trong đómức 256 được dùng rất phổ biến do máy tính dùng 1 byte (8 bit) đểbiểu diễn mức xám, mà mức xám lại dùng 1 byte để biểu diễn: 28=256mức, tức là từ mức 0 đến mức 255
Ảnh đen trắng: là ảnh có hai màu đen, trắng (không chứa màu khác )với mức xám ở các điểm ảnh có thể khác nhau
Ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt tức dùng 1 bit mô
tả 2 mức khác nhau hay mỗi điểm ảnh nhị phân chi có 1 trong 2 giá trịhoặc là 0 hoặc là 1
Ảnh màu: với mỗi điểm ảnh thì người ta dung 3 byte để mô tả mứcmàu (do thế giới màu được tạo nên từ 3 màu cơ bản: đỏ (red), lục(blue) và lơ (green)) Do đó có 28*3 =224=16,7 triệu màu
Trang 142.2.4 Nhận dạng ảnh (recognition and classification of image
partterns)
Khi một bức ảnh đã được phân đoạn, nhiệm vụ tiếp theo là nhận dạngvật thể hoặc vùng đã được phân đoạn Mỗi một vật thể là một thànhphần ở trong ảnh và các giá trị đo được là các đặc tính của thành phần
đó Một tập các vật thể cùng có các đặc tính giống nhau được gọi làmột “lớp vật thể” (pattern class)
Theo đó có thể định nghĩa, nhận dạng là quá trình phân loại các đốitượng được biểu diễn theo một mô hình nào đó và gán cho chúng vàomột lớp (gán cho đối tượng một tên gọi) dựa theo những quy luật vàcác mẫu chuẩn
Sự nhận dạng ảnh thường dựa trên nhiều tính chất của vật và với mỗitính chất đều có các kỹ thuật nhận dạng khác nhau
VD: Mỗi chữ cái trong tiếng Anh đều là một tập các đường thẳngđứng, ngang, chéo hoặc cong Trong khi chữ “A” được mô tả bởi 2đường chéo và một đường nằm ngang thì chữ “B” được mô tả bởi mộtđường thẳng đứng với 2 đoạn cong Một số tính chất của các vật thể 2hoặc 3 chiều là diện tích, thể tích, chu vi, bề mặt,… có thể đo đượcthông qua việc tính toán số “pixel” Tương tự như vậy, bang của mộtvật được đặc trưng bởi đường biên của nó Một số tham số để xác địnhbang của một vật là các mô-ment bất biến (invariant moment), đườngtrung bình (medial axis) của vật thể …
Màu của một vật cũng là đặc điểm hết sức quan trọng được dùng trongnhận dạng Kỹ thuật dùng để phát hiện các đặc tính của vật thể gọi là
kỹ thuật trích chọn đặc tính (feature extraction) Khi đó vật thể đượcmiêu tả như một tập các đặc tính Sự lựa chọn và tách lấy các tính chấtthích hợp được coi như là vấn đề cơ bản đầu tiên trong nhận dạng ảnh
a Phương pháp phân loại dựa trên việc thu nhận có giám sát(supervised learning)
Trang 15b Phương pháp phân loại sử dụng các kỹ thuật không cần giám sát(nonsupervised learning).
Các giải thuật phân loại có giám sát có thể được phân thành các loạinhỏ hơn:
* Phân loại dựa vào tham số (Parametric classifiers)
* Phân loại không cần tham số (Nonparametric classifiers)
Đối với phân loại có giám sát dựa trên tham số, thiết bị phân loại lấymẫu với một tập gồm nhiều mẫu thành phần xác định nhằm tính toáncác thông số thống kê của mỗi loại thành phần như: trung bình số học,công sai…
Các giải thuật không cần giám sát thường được sử dụng trong các bộphân loại theo khoảng cách nhỏ nhất (minimum distance classifer) và
bộ phân loại tương đồng lớn nhất (maximum likelihood classifier).Ngược lại, một số thông số không được quan tâm trong phương phápphân loại có giám sát không cần tham số Một số kỹ thuật của loại nàylà: K điểm lân cận gần nhất (K-nearest neighbors), cửa sổ Parzen(Parzen window)…
Đối với các phương pháp phân loại không cần giám sát, bộ phân loại
sẽ chia toàn bộ tập thông tin dựa trên một số tiêu chuẩn tương đồng.Điều này cho kết quả là một tập các thành phần trong đó mỗi thànhphần thuộc về một lớp cụ thể nào đó
3 Matlab và xử lý ảnh
Các kiểu ảnh , các thao tác ảnh cơ bản trong Toolbox [3]
3.1 Ảnh được định chỉ số ( Indexed Images )
Một ảnh chỉ số bao gồm một ma trận dữ liệu X và ma trận bản đồ màumap Ma trận dữ liệu có thể có kiểu thuộc lớp uint8, uint16 hoặc kiểudouble Ma trận bản đồ màu là một mảng mx3 kiểu double bao gồm cácgiá trị dấu phẩy động nằm giữa 0 và 1 Mỗi hàng của bản đồ chỉ ra các giátrị mà : red, green và blue của một màu đơn Một ảnh chỉ số sử dụng ánh
Trang 16xạ trực tiếp giữa giá trị của pixel ảnh tới giá trị trong bản đồ màu Màusắc của mỗi pixel ảnh được tính toán bằng cách sử dụng giá trị tương ứngcủa X ánh xạ tới một giá trị chỉ số của map Giá trị 1 chỉ ra hàng đầu tiên,giá trị 2 chỉ ra hàng thứ hai trong bản đồ màu …
Một bản đồ màu thường được chứa cùng với ảnh chỉ số và được tự động
nạp cùng với ảnh khi sử dụng hàm imread để đọc ảnh.Tuy nhiên, ta
không bị giới hạn khi sử dụng bản đồ màu mặc định, ta có thể sử dụngmất kì bản đồ màu nào
Lớp và độ lệch của bản đồ màu ( Colormap Offsets )
Quan hệ giữa giá trị trong ma trận ảnh và giá trị trong bản đồ màu phụthuộc vào kiểu giá trị của các phần tử ma trận ảnh Nếu các phần tử matrận ảnh thuộc kiểu double, giá trị 1 sẽ tương ứng với giá trị trong hàngthứ nhất của bản đồ màu, giá trị 2 sẽ tương ứng với giá trị trong hàngthứ 2 của bản đồ màu… Nếu các phần tử của ma trận ảnh thuộc kiểuuint8 hay uint16 sẽ có một độ lệch (offset ) – giá trị 0 trong ma trậnảnh sẽ tương ứng với giá trị trong hàng đầu tiên của bản đồ màu, giá trị
1 sẽ tương ứng với giá trị trong hàng thứ 2 của bản đồ màu …
Độ lệch cũng được sử dụng trong việc định dạng file ảnh đồ hoạ đểtăng tối đa số lượng màu sắc có thể được trợ giúp
Giới hạn trong việc trợ giúp ảnh thuộc lớp unit16
Toolbox xử lý ảnh của Matlab trợ giúp có giới hạn ảnh chỉ số thuộclớp uint16 Ta có thể đọc những ảnh đó và hiển thị chúng trong Matlabnhưng trước khi xử lý chúng, ta phải chuyển đổi chúng sang kiểu uint8hoặc double Để chuyển đổi ( convert ) tới kiểu double ta dùng hàm
im2double Để giảm số lượng màu của ảnh xuống 256 màu (uint8 ) sử
dụng hàm imapprox
3.2 Ảnh cường độ ( Intensity Images )
Một ảnh cường độ là một ma trận dữ liệu ảnh I mà giá trị của nó đại diệncho cường độ trong một số vùng nào đó của ảnh Matlab chứa một ảnhcường độ như một ma trận đơn, với mỗi phần tử của ma trận tương ứng
Trang 17với một pixel của ảnh Ma trận có thể thuộc lớp double , uint8 hay uint16.Trong khi ảnh cường độ hiếm khi được lưu với bản đồ màu, Matlab sửdụng bản đồ màu để hiển thị chúng.
Những phần tử trong ma trận cường độ đại diện cho các cường độ khácnhau hoặc độ xám Những điểm có cường độ bằng 0 thường được đại diệnbằng màu đen và cường độ 1,255 hoặc 65535 thường đại diện cho cường
độ cao nhất hay màu trắng
3.3 Ảnh nhị phân (Binary Images )
Trong một ảnh nhị phân, mỗi pixel chỉ có thể chứa một trong hai giá trịnhị phân 0 hoặc 1 Hai giá trị này tương ứng với bật hoặc tắt ( on hoặcoff ) Một ảnh nhị phân được lưu trữ như một mảng logic của 0 và 1
3.4 Ảnh RGB ( RGB Images )
Một ảnh RGB - thường được gọi là true-color, được lưu trữ trong Matlabdưới dạng một mảng dữ liệu có kích thước 3 chiều mxnx3 định nghĩa cácgiá trị màu red, green và blue cho mỗi pixel riêng biệt Ảnh RGB không
sử dụng palette Màu của mỗi pixel được quyết định bởi sự kết hợp giữacác giá trị R,G,B ( Red, Green , Blue ) được lưu trữ trong một mặt phẳngmàu tại vị trí của pixel Định dạng file đồ hoạ lưu trữ ảnh RGB giống nhưmột ảnh 24 bit trong đó R,G,B chiếm tương ứng 8 bit một Điều này chophép nhận được 16 triệu màu khác nhau
Một mảng RGB có thể thuộc lớp double, uint8 hoặc uint16 Trong mộtmảng RGB thuộc lớp double, mỗi thành phần màu có giá trị giữa 0 và 1 Một pixel mà thành phần màu của nó là (0,0,0) được hiển thị với màu đen
và một pixel mà thành phần màu là (1,1,1 ) được hiển thị với màu trắng
Ba thành phần màu của mỗi pixel được lưu trữ cùng với chiều thứ 3 củamảng dữ liệu Chẳng hạn, giá trị màu R,G,B của pixel (10,5) được lưu trữtrong RGB(10,5,1) , RGB(10,5,2) và RGB(10,5,3) tương ứng
Để tính toán màu sắc của pixel tại hàng 2 và cột 3 chẳng hạn , ta nhìn vào
bộ ba giá trị được lưu trữ trong (2,3,1:3) Giả sử (2,3,1) chứa giá trị
Trang 180.5176 ; (2,3,2) chứa giá trị 0.1608 và (2,3,3) chứa giá trị 0.0627 thì màusắc của pixel tại (2,3 ) sẽ là (0.5176,0.1608,0.0627)
Để minh hoạ xa hơn khái niệm ba mặt phẳng màu riêng biệt được sử dụngtrong một ảnh RGB, đoạn mã sau đây tạo một ảnh RGB đơn giản chứa cácvùng liên tục của R,G,B và sau đó tạo một ảnh cho mỗi mặt phẳng riêngcủa nó ( R,G,B ) Nó hiển thị mỗi mặt phẳng màu riêng rẽ và cũng hiển thịảnh gốc
RGB=reshape(ones(64,1)*reshape(jet(64),1,192),[64,64,3]); R=RGB(:,:,1);
G=RGB(:,:,2);
B=RGB(:,:,3);
imshow(R) figure, imshow(G) figure, imshow(B) figure, imshow(RGB)
Các mặt phẳng màu riêng rẽ của một ảnh RGB
Chú ý rằng mỗi mặt phẳng màu riêng rẽ chứa một khoảng trắng Khoảngtrắng tương ứng với giá trị cao nhất của mỗi màu riêng rẽ Chẳng hạntrong ảnh mặt phẳng R, vùng trắng đại diện cho sự tập trung cao nhất củamàu đỏ thuần khiết Nếu R được trộn với G hoặc B ta sẽ có màu xám.Vùng màu đen trong ảnh chỉ ra giá trị của pixel mà không chứa màu đỏR=0 Tương tự cho các mặt phẳng màu G và B
3.5 Các hàm chuyển đổi kiểu ảnh
Với các thao tác nhất định, sẽ thật hữu ích khi có thể chuyển đổi ảnh từdạng này sang dạng khác Chẳng hạn, nếu ta muốn lọc một màu ảnh đượclưu trữ dưới dạng ảnh chỉ số, đầu tiên, ta nên chuyển đổi nó thành dạngảnh RGB Khi ta áp dụng phép lọc tới ảnh RGB, Matlab sẽ lọc giá trịcường độ trong ảnh tương ứng Nếu ta cố gắng lọc ảnh chỉ số, Matlab đơngiản chỉ áp đặt phép lọc tới ma trận ảnh chỉ số và kết quả sẽ không có ýnghĩa
Trang 19Chú ý : Khi convert một ảnh từ dạng này sang dạng khác, ảnh kết quả có
thể khác ảnh ban đầu Chẳng hạn, nếu ta convert một ảnh màu chỉ số sangmột ảnh cường độ, kết quả ta sẽ thu được một ảnh đen trắng
Danh sách sau đây sẽ liệt kê các hàm được sử dụng trong việc convert ảnh:
dither : Tạo một ảnh nhị phân từ một ảnh cường độ đen trắng bằng
cách trộn, tạo một ảnh chỉ số từ một ảnh RGB bằng cách trộng(dither )
gray2id : Tạo một ảnh chỉ số từ một ảnh cường độ đen trắng
grayslice : Tạo một ảnh chỉ số từ một ảnh cường độ đen trắng bằng
cách đặt ngưỡng
im2bw : Tạo một ảnh nhị phân từ một ảnh cường độ , ảnh chỉ số hay
ảnh RGB trên cơ sở của ngưỡng ánh sáng
ind2gray : Tạo một ảnh cường độ đen trắng từ một ảnh chỉ số
ind2rgb : Tạo một ảnh RGB từ một ảnh chỉ số
mat2gray : Tạo một ảnh cường độ đen trắng từ dữ liệu trong một ma
trận bằng cách lấy tỉ lệ giữ liệu
rgb2gray : Tạo một ảnh cường độ đen trắng từ một ảnh RGB.
rgb2ind : Tạo một ảnh chỉ số từ một ảnh RGB.
Ta cũng có thể thực hiện các phép chuyển đổi kiểu chỉ sử dụng cú phápcủa Matlab Chẳng hạn, ta có thể convert một ảnh cường độ sang ảnhRGB bằng cách ghép nối 3 phần copy của ma trận ảnh gốc giữa 3 chiều :
Trang 203.6 Chuyển đổi không gian màu
Toolbox xử lý ảnh biểu diễn màu sắc như các giá trị RGB ( trực tiếp trongảnh RGB hoặc gián tiếp trong ảnh chỉ số ) Tuy nhiên, có các phươngpháp khác cho việc biểu diễn màu sắc Chẳng hạn, một màu có thể được
đại diện bởi các giá trị hue, saturation và các giá trị thành phần (HSV )
Các phương pháp khác cho việc biểu diễn màu được gọi là không gianmàu
Toolbox cung cấp một tập các thủ tục để chuyển đổi giữa các không gianmàu Các hàm xử lý ảnh tự chúng coi dữ liệu màu sắc dưới dạng RGB tuynhiên, ta có thể xử lý một ảnh mà sử dụng các không gian màu khác nhaubằng cách chuyển đổi nó sang RGB sau đó chuyển đổi ảnh đã được xử lýtrở lại không gian màu ban đầu
và TIFF, Matlab chứa chúng dưới dạng uint16
Chú ý : Với ảnh chỉ số, imread luôn luôn đọc bản đồ màu vào trong
một chuỗi thuộc lớp double, thậm chí mảng ảnh tự nó thuộc lớp uint8hay uint16
Chẳng hạn, đoạn mã sau sẽ đọc một ảnh RGB vào không gian làm việccủa Matlab lưu trong biến RGB
RGB=imread(‘football.jpg’);
Trong ví dụ này, imread sẽ nhận ra định dạng file để sử dụng từ tênfile Ta cũng có thể chỉ ra định dạng file như một tham số trong hàmimread Matlab trợ giúp rất nhiều định dạng đồ hoạ thông dụng chẳng
Trang 21hạn: BMP , GIF , JPEG , PNG , TIFF … Để biết thêm các kiểu gọihàm và tham số truyền vào, xem trợ giúp online của Matlab
3.7.2 Đọc nhiều ảnh từ một file đồ hoạ
Matlab trợ giúp một số định dạng file đồ hoạ chẳng hạn như: HDF vàTIFF, chúng chứa nhiều ảnh Theo mặc định, imread chỉ trợ giúp ảnhđầu tiên trong file Để nhập thêm các ảnh từ file, sử dụng cú pháp đượctrợ giúp bởi định dạng file Chẳng hạn, khi được sử dụng với TIFF, ta
có thể sử dụng một giá trị chỉ số với imread để chỉ ra ảnh mà ta muốnnhập vào Ví dụ sau đây đọc một chuối 27 ảnh từ một file TIFF và lưu
những ảnh này trong một mảng 4 chiều Ta có thể sử dụng hàm iminfo
để xem bao nhiêu ảnh đã được lưu trữ trong file:
mri = uint8(zeros(128,128,1,27)); % preallocate 4-D array for frame=1:27
[mri(:,:,:,frame),map] = imread('mri.tif',frame);
end
Khi file chứa nhiều ảnh theo một số kiểu nhất định chẳng hạn theo thứ
tự thời gian, ta có thể lưu ảnh trong Matlab dưới dạng mảng 4 chiều.Tất cả các ảnh phải có cùng kích thước
3.7.3 Ghi một ảnh đồ hoạ
Hàm imwrite sẽ ghi một ảnh tới một file đồ hoạ dưới một trong cácđịnh dạng được trợ giúp Cấu trúc cơ bản nhất của imwrite sẽ yêu cầumột biến ảnh và tên file Nếu ta gộp một phần mở rộng trong tên file,Matlab sẽ nhận ra định dạng mong muốn từ nó Ví dụ sau tải một ảnhchỉ số X từ một file Mat với bản đồ màu kết hợp với nó map sau đó ghiảnh xuống một file bitmap
load clown whos Name Size Bytes Class
X 200x320 512000 double array
Trang 22caption 2x1 4 char array map 81x3 1944 double array Grand total is 64245 elements using 513948 bytes imwrite(X,map,'clown.bmp')
Chỉ ra định dạng phụ - Tham số đặc biệt
Khi sử dụng imwrite với một số định dạng đồ hoạ , ta có thể chỉ ra cáctham số phụ Chẳng hạn, với định dạng PNG ta có thể chỉ ra độ sâu bitnhư một tham số phụ Ví dụ sau sẽ chi một ảnh cường độ I với một fileảnh 4 bit PNG
imwrite(I,'clown.png','BitDepth',4 );
Để biết thêm các cấu trúc khác của hàm xem phần trợ giúp trực tuyếncủa Matlab
Đọc và ghi ảnh nhị phân theo định dạng 1 bit
Trong một số định dạng file, một ảnh nhị phân có thể được lưu trongmột định dạng 1 bit Nếu định dạng file trợ giúp nó,Matlab ghi ảnh nhịphân như ảnh 1 bit theo mặc định Khi ta đọc một ảnh nhị phân vớiđịnh dạng 1 bit, Matlab đại diện nó trong không gian làm việc như mộtmảng logic
Ví dụ sau đọc một ảnh nhị phân và ghi nó dưới dạng file TIFF Bởi vìđịnh dạng TIFF trợ giúp ảnh 1 bit, file được ghi lên đĩa theo định dạng
Trang 23Chú ý : Khi ghi file nhị phân , Matlab thiết lập trường ColorType
thành ‘grayscale’
Xem lớp lưu trữ của file
Hàm imwrite sử dụng luật sau đây để quyết định lớp lưu trữ được sửdụng trong ảnh kết quả :
logical : Nếu định dạng ảnh ra ( Output Image ) được chỉ rõ là trợgiúp ảnh 1 bit , hàm imwrite tạo một file ảnh 1 bit Nếu định dạngảnh ra được chỉ rõ là không trợ giúp ảnh 1 bit ( như JPEG ) , hàmimwrite chuyển ảnh tới một ảnh thuộc lớp uint8
uint8 : Nếu định dạng ảnh ra được chỉ rõ là trợ giúp ảnh 8 bit , hàmimwrite tạo một ảnh 8 bit
uint16 : Nếu định dạng ảnh ra được chỉ rõ trợ giúp ảnh 16 bit( PNG hoặc TIFF ), hàm imwrite tạo một ảnh 16 bit Nếu địnhdạng ảnh ra không trợ giúp ảnh 16 bit, hàm chuyển đổi dữ liệu ảnhtới lớp uint8 và tạo một ảnh 8 bit
double : Matlab chuyển dữ liệu ảnh tới dạng uint8 và tạo một ảnh 8bit bởi vì hầu hết các file ảnh sử dụng định dạng 8 bit
3.8 Truy vấn một file đồ hoạ
Hàm iminfo cho phép ta có thể nhận được thông tin về một file ảnh đượctrợ giúp bởi toolbox Thông tin mà ta nhận được phụ thuộc vào kiểu củafile nhưng nó luôn bao gồm những thông tin sau :
Tên của file ảnh
Định dạng file ảnh
Số version của định dạng file
Ngày sửa đổi file gần nhất
Kích thước file tính theo byte
Chiều rộng ảnh tính theo pixel
Trang 24Chiều cao ảnh tính theo pixel
Số lượng bit trên một pixel
Kiểu ảnh : RGB, chỉ số …
3.9 Chuyển đổi định dạng các file ảnh
Để thay đổi định dạng đồ hoạ của một ảnh, sử dụng hàm imread để đọcmột ảnh và sau đó lưu nó với hàm imwrite đồng thời chỉ ra định dạngtương ứng
Để minh hoạ, ví dụ sau đây sử dụng hàm imread để đọc một file BMP vàokhông gian làm việc Sau đó, hàm imwrite lưu ảnh này dưới định dạngPNG
bitmap = imread('mybitmap.bmp','bmp');
imwrite(bitmap,'mybitmap.png','png');
Chương 3 PHÂN TÍCH THÀNH PHẦN ĐỘC LẬP (ICA)
Trang 251 Giới thiệu về ICA
Hãy thử tưởng tượng bạn ở trong phòng mà trong đó có 3 ngườiđang nói chuyện với nhau Bạn dùng 3 micro, đặt tại 3 vị trí khác nhau Cácmicrophone sẽ thu được 3 tín hiệu đồng thời Ta phải xác định được x1(t),x2(t) và x3(t) với x1 ,x2, x3 là cường độ âm thanh, t là thời gian Chúng ta cóthể biểu diễn nó bằng hệ phương trình tuyến tính [1]:
1 11 1 12 2 13 3
2 21 1 22 2 23 3
3 31 1 32 2 33 3
( )( )( )
từ mô hình trộn đơn giản
Hình 2.1 Tín hiệu gốc
Trang 26Hình 2.2 Tín hiệu trộn
Dĩ nhiên chúng không phải là tín hiệu tiếng nói thực nhưng cũng đủ cho minhhọa này Tín hiệu tiếng nói gốc có thể giống như hình 2.1 và tín hiệu trộn códạng như 2.2 vấn đề ở đây là chúng ta cần khôi phục lại tín hiệu gốc như 2.1
từ tín hiệu trộn 2.2
Nếu như chúng ta biết các hệ số aij, chúng ta có thể giải hệ phương trình tuyếntính trên theo phương pháp thông thường và tìm đươc các tín hiệu ban đầu.Tuy nhiên ở đây ta không biết các hệ số aij do đó bài toán trở nên phức tạp.Một hướng để giải quyết bài toán là sử dụng thông tin đặc trưng thống kê củatín hiệu si(t) để xấp xỉ aij Và điều lưu ý tiếp theo là tín hiệu s1(t), s2(t) và s3(t),tại mỗi thời điểm t, là các độc lập thống kê Tuy nhiên trong thực tế khônghoàn toàn chính xác như vậy Các hướng phát triển gần đây của kĩ thuật phântích thành phần độc lập ICA có thể xấp xỉ aij dựa trên các thông tin độc lậpcủa chính tín hiệu đó Điều này cho phép chúng ta chia các tín hiệu gốc từ tínhiệu đã trộn x1(t), x2(t) và x3(t)
Trang 27Hình 2.3 Tín hiệu phục hồi
Ví dụ như tín hiệu điện não được thể hiện bằng điện não đồ (EEG) Dữ liệuEEG bao gồm các tín hiệu thu được từ các điện cực gắn tại các vị trí khácnhau trên vùng đầu người Những tín hiệu thu được từ các điện cực này chỉ làthông tin tổng hợp từ các thành phần của hoạt động não Vấn đề này cũngtương tự như bài toán cocktail- party: chúng ta cần tìm ra các thành phần gốccủa hoạt động não, nhưng chúng ta chỉ có thể quan sát các tín hiệu trộn lẫncủa các thành phần này ICA có thể phát hiện thông tin hoạt động não bằngcách tìm các thành phần độc lập này
Một ví dụ khác, ICA được dùng để là trích các đặc trưng Vấn đề quan trọngtrong xử lý tín hiệu số là tìm ra biễu diễn phù hợp cho hình ảnh, âm thanhhoặc các loại dữ liệu khác thích hợp Biểu diễn dữ liệu thường dựa vào biếnđổi tuyến tính Biến đổi tuyến tính được ứng dụng rộng rãi trong xử lýảnh số như biến đổi Fourier Haar, biến đổi cosin Mỗi phép biến đổi có ưuđiểm riêng
Tất cả các ứng dụng trên đây có thể được xây dựng thành mô hình toán họcthống nhất, ICA Đây là một giải pháp được ứng dụng cho nhiều mục đíchkhác nhau trong việc xử lý tín hiệu và phân tích dữ liệu
2 Phân tích thành phần độc lập (ICA)
Trang 28Để định nghĩa ICA ta có thể dùng mô hình thống kê “làm chậm biến
số”-”latent varialbe” Giả sử, ta quan sát n tổ hợp tuyến tính x1,…,xn của n thànhphần độc lập [1]
1 1 2 2
x a s a s a s (2.1) Chúng ta bỏ qua chỉ số thời gian t (trong mô hình ICA), ta giả sử mỗi tổ hợp
xj ứng với mỗi thành phần độc lập sk là biến ngẫu nhiên, thay cho tín hiệutheo thời gian thích hợp Giá trị quan xj(t), những tín hiệu thu được từmicrophone trong bài toán cocktail-party, là mẫu của biến số ngẫu nhiên.Không mất tính tổng quát, ta giả sử cả biến trộn lẫn và thành phần độc lập cógiá trị trung bình không Nếu thực tế không đúng, có thể đưa các biến số quansát xi về gía trị trung tâm bằng cách trừ với mẫu trung bình
Điều đó rất thuận tiện khi dùng ký hiệu ma trận vector thay cho dạng tổngnhư các công thức trước đây Điều này cho thấy với vector ngẫu nhiên x, cácthành phần của nó là tổ hợp x x1, , ,2 x n tương tự như vector ngẫu nhiên svới các thành phần s s1, , ,2 s n Chúng ta quan sát ma trận A với các phần tử aij.Tất cả các vector được được hiểu như vector cột; do đó xT là chuyển vị của x,là vector hàng, sử dụng ký hiệu ma trận vector, mô hình hỗn hợp ở trên sẽđược viết lại là:
xAs (2.2)Thỉnh thoảng, chúng ta cần cột của ma trận A; điều đó có nghĩa là mô hình aj
có thể được viết lại như sau
1
n
i i i
là ta không thể quan sát chúng một cách trực tiếp Vì vậy ma trận trộn cũng
Trang 29được xem như là không biết Tất cả những gì ta quan sát được chỉ là vectorngẫu nhiên x, và chúng ta phải dùng x để xấp xỉ cả A và s.
Điểm khởi đầu của ICA là sự thừa nhận rất đơn giản rằng các thành phần si làđộc lập thống kê Tiếp theo chúng ta phải thừa nhận các thành phần độc lậpphải có phân bố không Gauss Tuy nhiên, ở mô hình cơ bản chúng ta khôngcần biết sự phân bố này Một cách đơn giản, chúng ta chỉ cần giả thiết ma trậntrộn chưa biết là ma trận vuông Sau đó ta xấp xỉ ma trận A, chúng ta có thểtính ma trận ngược (là W), các thành phần độc lập có thể được tính bằng côngthức:
S = Wx (2.4)ICA cũng tương tự phương pháp “phân chia nguồn mù” (BBS) hoặc phânchia tín hiệu chưa biết.”Nguồn” có nghĩa là các tín hiệu gốc, là cácthành phần độc lập, tương tự như trong bài toán cocktail-party.”Mù” cónghĩa là biết rất ít ICA là một phương pháp có thể được ứng dụng rấtrộng rãi trong việc trình bày quá trình phân chia nguồn mù
Trong nhiều ứng dụng, chúng ta giả thiết có thêm nhiễu trong quá trình đođạc, có nghĩa là phải thêm thành phần nhiễu vào mô hình tính toán Để đơngiản đôi khi ta có thể bỏ qua thành phần nhiễu
Các điểm không xác định trong ICA:
Trong mô hình ICA (2.2), chúng ta có thể thấy các điểm không xác địnhnhư sau:
Chúng ta không thể xác định được thành phần biến (số cột ma trậntương quan) của các thành phần độc lập
Lý do là cả S và A đều không được biết, phép nhân vô hướng của nguồn si
có thể khử bằng cách chia cho cột tương ứng ai của A với cùng hướng(2.3) Hệ quả, chúng ta phải hiệu chỉnh biên độ của thành phần độc lập;như ta biết, các ICA đều là các biến ngẫu nhiên, cách đơn giản ta giả sửmỗi nguồn đều có thành phần biến số đơn vị Sau đó ma trận A sẽ đáp ứngvới phương pháp giải ICA để khắc phục các hạn chế này Ta có thể loại bỏnhững dấu hiệu bất định này: ta có thể nhân thành phần độc lập với -1 mà
Trang 30không làm ảnh hưởng đến mô hình tính Trong hầu hết các ứng dụng yếu
tố dấu không có nghĩa
Chúng ta không thể xác định được thứ tự của các thành phần độc lập
Lý do là cả S và A đều không được biết, chúng ta có thể thay đổi tùy ý trật
tự của phép tính trong công thức (2.3), và có thể gọi bất cứ thành phần độclập nào là thành phần đầu tiên Ma trận hoán vị P và phép biến đổi ngượccủa nó có thể được thay thế trong công thức 1
x AP Ps
Các phần tử của
Ps là các thành phần biến độc lập gốc sj , nhưng theo thứ tự khác Ma trận
AP-1 được biết như là một ma trận trộn mới chưa biết được dùng để giảibài toán ICA
3 Sự độc lập thống kê
3.1 Bất tương quan
Các phân bố xác suất đều giả sử có trị trung bình bằng không Nếu khôngphải như vậy thì ta trừ phân bố với trị trung bình của nó, đây là sự qui tâm(centering) Để ý là hiệp phương sai (covariance) chính là tương quan(correlation) khi trị trung bình bằng không Đối với một vector ngẫu nhiên
x ma trận hiệp phương sai là
Cxx = E {(x – mx)(x – mx)T} (2.5)Trong đó E {.} là toán tử lấy trung bình, mx là vector trung bình.Hiệp phương sai của hai vector ngẫu nhiên x1, x2 (có trị trung bình bằngkhông) là:
Cx1x2 = E {x1x2 } (2.6)Khi Cx1x2 = 0 hai vector bất tương quan (uncorrelated) Đối với vectorngẫu nhiên x khi các thành phần xi của nó bất tương quan thì:
Cxx = D (2.7)
Trong đó D là ma trận chéo n×n, với các phương sai của các thành phần
nằm trên đường chéo
3.2 Độc lập thống kê
Trang 31Tính bất tương quan nêu trên chưa đủ để ước lượng các thành phần độclập ICA Ta cần một đặc tính mạnh hơn, đó là sự độc lập thống kê,nghĩa là khi biết một thành phần nào đó ta không thể suy ra các thànhphần còn lại Xem hai vector ngẫu nhiên x1và x2 với hàm mật độ xácsuất riêng biệt p(x1), p(x2) và hàm mật độ xác suất liên kết p(x1x2) làđộc lập thống kê nếu và chỉ nếu khi thỏa:
p(x1.x2) = p(x1) p(x2) (2.8)Khi có nhiều vector thì sự thừa số hóa cũng tương tự
Định nghĩa kỹ thuật ở trên dẫn đến một đặc tính sau của các biếnngẫu nhiên Xem f(x1) và f(x2) là biến đổi phi tuyến nào đó trên haivector ngẫu nhiên x1 và x2 có hàm phân bố đã nói ở trên, thì có thể
chứng minh được:
E{f1(x1)f2(x2)} = E{f1(x1)}E{f2(x2)} (2.9)Như vậy sự độc lập là có thể thừa số hóa tương quan phi tuyến Đây làđặc tính quan trọng vì nó giải thích và nhấn mạnh vai trò các phi tuyếntrong ICA Khi đặt f(x1) = x1 và f(x2) = x2 ta thấy là sự độc lập baogồm luôn sự bất tương quan (nhưng bất tương quan không đương nhiên
là độc lập) Cụ thể là ta giả sử s ở phương trình (2.2) là độc lập thống
kê nên các tín hiệu nguồn si là các thành phần độc lập Chính nhờ sự độc
lập thống kê mà ta có thể phân ly ra s từ (2.2).
3.3 Phi Gauss là độc lập
Mô hình ICA đặt ra một hạn chế là các thành phần độc lập phải
có tính phi Gauss (non-gaussianity), tức không có phân bố (hàm mật
độ xác suất) là Gauss
Lý do tính phi Gauss nằm ở chổ là các biến ngẫu nhiên Gauss được xácđịnh hoàn toàn bởi các thống kê bậc một (trị trung bình) và bậc hai(phương sai), các thống kê bậc cao hơn bằng không Trong lúc, như sẽthấy ở sau, mô hình ICA cần các thống kê bậc cao hơn của các thànhphần độc lập để thực hiện sự phân ly (ước lượng các thành phần độclập) Như vậy, sự phi tuyến, tính phi Gauss dẫn đến sự độc lập thống kê
Trang 323.4 Các giả sử trong mô hình ICA
Mô hình ICA tuyến cơ bản đặt ra đòi hỏi các giả thiết sau cho việc phân
ly (ước lượng) các thành phần độc lập:
Các nguồn s độc lập thống kê nhau, nghĩa là biết được một nguồn
không thể suy ra các nguồn còn lại
Các hàm phân bố xác suất của các nguồn có trị trung bình bằngkhông Không có nguồn (thành phần độc lập) nào có phân bố Gauss(thật ra mô hình cho phép có tối đa một thành phần có phân bốGauss)
Ma trận trộn A là ma trận vuông tức số lượng nguồn và số lượng
trộn bằng nhau Nếu không phải vậy, bài toán sẽ khó hơn
4 Ước lượng ICA
Ước tính ICA là một công việc khá chi li Người ta đã phát triểnnhiều cách để giải quyết bài toán [1]:
Cực đại hóa tính phi Gauss (nongaussianity)
Ước lượng khả năng cực đại (maximum likelihood)
Cực tiểu hoá thông tin hỗ tương (mutual information)…
Trong các phương pháp, trước tiên định ra một hàm đối tượng(objective function), còn gọi hàm trị giá (cost function), rồi dùng mộtthuật toán tối ưu hóa để cực đại hóa hoặc cực tiểu hóa (nói chung là cựcđại hóa trị tuyệt đối) hàm đối tượng này để ước lượng các thành phầnđộc lập
Theo định lý giới hạn trung tâm (central limit theorem), tổng của nhiềubiến ngẫu nhiên có phân bố gần Gauss hơn bất cứ biến ngẫu nhiên gốc
nào Ở mô hình ICA (2.2) vector ngẫu nhiên x gồm các biến ngẫu nhiên là trộn tuyến của các vector biến ngẫu nhiên nguồn s Các nguồn
được giả sử độc lập nhau nhưng khi trộn lại (cộng nhau) thì các trộntrở nên gần Gauss hơn Nếu việc trộn được đảo ngược lại theo cách nào
đó thì các tín hiệu nhận được sẽ ít Gauss hơn Do đó ước lượng ICA
Trang 33nhắm đến cực tiểu hóa tính Gauss tức cực đại hóa tính phi Gauss bởi vìđiều này sẽ cho ta các thành phần độc lập.
4.1 Đo tính phi Gauss bằng kurtosis
Đầu tiên là phép đo dựa trên kurtosis của một biến ngẫu nhiên y cótrung bình bằng không là cumulant bậc bốn:
kurt(y) = E{y4} – 3 (E{y2}2 (2.10)
Thật ra vì ta giả sử y có phương sai đơn vị, nên kurtosis là kurt(y) =
E{y4} – 3, tức kurtosis là phiên bản chuẩn hóa của momen thứ tư
E{y4} Khi y có phân bố Gauss momen thứ tư bằng 3(E{y2})2 nên
kurtosis bằng không đối với các biến ngẫu nhiên Gauss Hầu hết cácbiến ngẫu nhiên không phải Gauss kurtosis khác không Nếu kurtosis làdương biến ngẫu nhiên có phân bố siêu Gauss (supergaussian), còn nếukurotsis là âm thì biến ngẫu nhiên có phân bố dưới Gauss(subgaussian) Phân bố siêu Gauss không còn dạng hình chuôngnhư Gauss mà tăng nhanh ở trung tâm tương tự như phân bố Laplace,còn phân bố dưới Gauss không nhô lên ở phần giữa như Gauss mà tiếnđến phân bố đều với biên độ rất nhỏ ở xa trung tâm Hình dưới đây thểhiện rõ điều đó
Việc đo tính phi Gauss bằng kurtosis có vài bất lợi khi các giá trị của
nó được tính từ các mẫu quan sát được, vì kurtosis rất bị ảnh hưởng bởicác trị biên (outlier) quan sát được ở hai đuôi của phân bố
4.2 Đo tính phi Gauss bằng Negentropy
Một số đo tính phi Gauss quan trọng hơn là negentropy Negentropy làđại lượng dựa trên lý thuyết thông tin gọi là entropy vi sai Entropy
Trang 34của một biến ngẫu nhiên là số đo lượng thông tin trung bình của nó.Càng ngẫu nhiên, các biến càng không có cấu trúc thì entropy càng lớn.Các biến chặt chẽ entropy càng gần chiều dài mã hóa của biến ngẫunhiên.
Entropy (vi sai) H của vector ngẫu nhiên y có hàm phân bố f(y) định
nghĩa như sau:
( ) ( i) log ( i)
H y P y a P y a
Trong đó ai là giá trị có thể có của Y Đây là định nghĩa nổi tiếng dùng
để tổng hợp cho các biến hay các vector ngẫu nhiên có giá trị liên tục,trong trường hợp đó thường gọi là entropy vi phân Entropy vi phân củavector ngẫu nhiên y với mật độ f(y):
( ) ( ) log ( )
H y f y f y dy
Đặc tính quan trọng của entropy là biến ngẫu nhiên Gauss có entropylớn nhất trong các biến ngẫu nhiên có cùng phương sai Như vậyentropy, và negentropy định nghĩa theo entropy, có thể dùng để đo tínhphi Gauss của một biến ngẫu nhiên Thực tế, điều đó chỉ ra rằng phân bốGauss là “ngẫu nhiên nhất” hay ít cấu trúc nhất trong tất cả phân bố.Entropy là nhỏ, trong đó các phân bố hầu như chỉ tập trung trong một sốgiá trị nhất định, biến số hội tụ, hay hàm mật độ phân bố có dạng nhọn
Để có được một số đo tính phi Gauss sao cho bằng không đối với biếnGauss và luôn không âm, người ta định nghĩa negentropy của vector
ngẫu nhiên y:
J(y) = H(y Gauss ) – H(y)
trong đó yGauss là một vector ngẫu nhiên Gauss cùng ma trận hiệp
phương sai (hay ma trận tương quan vì các dữ liệu được giả sử cótrung bình là không) Do đặc tính đề cập ở trên ,negentropy sẽ không baogiờ âm, nó chỉ bằng không nếu và chỉ nếu y có phân bố dạng Gauss.Negentropy có đặc tính rất hay, chính là đại lượng bất biến trong phépbiến đổi tuyến tính ngược
Trang 35Ưu điểm của negentropy, hay tương đương entropy vi phân, như mộtđại lượng đo đạc tính phi Gauss thỏa mãn lý thuyết thống kê Trong thực
tế, negentropy là số chiều trong xấp xỉ tối ưu hóa phi Gauss Khó khăntrong việc ứng dụng negentropy là việc tính toán rất phức tạp Việc xấp
xỉ negentropy bằng định nghĩa cần phải xấp xỉ hàm mật độ xác xuất Chonên, việc đơn giản hóa việc xấp xỉ negentropy là rất cần thiết
Tuy nhiên tính toán negentropy lại khó khăn Một số tính toán xấp
xỉ đã được phát triển, mà một là:
2( ) [ { ( )} { ( Gauss)}]
Trong mô hình ICA, ta muốn tìm các hàng của ma trận W Khi dùng
negentropy người ta xây dựng thuật toán FastICA dựa trên thuật toánđiểm cố định (fixed-point algorithm)
FastICA cho một đối tượng:
Chúng ta sẽ xem xét loại một đơn vị của FastICA Chúng ta quy việctính toán về mức đơn vị, như mạng neural nhân tạo, có vector trọng số
mà các neural có thể cập nhật theo luật học Đối với fastICA luật học làtìm ra hướng vector đơn vị w sao cho hình chiếu wTx cực đại tính phiGauss Tính phi Gauss ở đây đo đạc theo xấp xỉ negentropy J(wTx) Cácphương sai của wTx phải đưa về dạng đơn vị Tương tự quá trình làmtrắng hóa cũng đưa w về dạng chuẩn đơn vị
FastICA dựa trên mô hình điểm cố định được lập đi lập lại nhiều lầnnhằm tìm ra giá trị cực đại của wTx Nó cũng bắt nguồn từ phép lặpNewton [1]