Giáo trình Xử Lý Ảnh Giải bài tập xử lý ảnh ứng dụng trong kĩ thuật hình ảnh, xe tự hành, siêu âm , thay đổi ảnh , nhận diện hình ảnh các trường đại học kĩ thuật tại Việt Nam , đại học sư phạm kĩ thuật thành phố hồ chí minh, bách khoa tp hồ chí minh , đại học bách khoa hà nội
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH TS NGUYỄN THANH HẢI GIÁO TRÌNH XỬ LÝ ẢNH (Ngành Điện - Điện Tử) NHÀ XUẤT BẢN ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH – 2014 LỜI NĨI ĐẦU Sự đời xử lý ảnh ứng dụng cần thiết cho sống Xử lý ảnh có từ lâu đƣợc vận dụng lĩnh vực nhƣ dân sự, quân sự, y tế nhiều lĩnh vực khác Tuy nhiên, khoảng thập niên trở lại đây, kiến thức xử lý ảnh đƣợc đƣa vào để giảng dạy vài trƣờng đại học Việt Nam nhƣng hạn chế cấp bậc cao học, cịn bậc đại học vài trƣờng lớn thành phố Hồ Chí Minh Hà Nội Tuy nhiên, với việc phát triển nhanh xã hội, nhu cầu áp dụng công nghệ xử lý ảnh vào sống ngày lớn Do vậy, năm gần đây, bậc đại học trƣờng đƣa chƣơng trình xử lý ảnh vào để dạy cho sinh viên Hiện nay, có nhiều đề tài liên quan đến xử lý ảnh đƣợc sinh viên đại học, học viên cao học nghiên cứu sinh nghiên cứu thực Nhằm phục vụ cho việc giảng dạy kiến thức nhƣ số gợi ý ứng dụng xử lý ảnh, giáo trình Xử Lý Ảnh đƣợc biên soạn chủ yếu xử lý ảnh số với ví dụ đƣợc viết Matlab đời Giáo trình nhằm mục đích giúp sinh viên đại học học viên cao học có kiến thức xử lý ảnh nhƣ áp dụng kết sau xử lý ảnh cho ứng dụng cụ thể nhằm phát triển ứng dụng thực tế Giáo trình gồm phần nhƣ sau: Chƣơng 1: Giới thiệu xử lý ảnh nhƣ môi trƣờng Matlab để xử lý cho kết mong muốn Chƣơng 2: Những kiến thức ảnh toán tử liên quan cho xử lý ảnh số đƣợc trình bày phần Chƣơng 3: Giáo trình cịn giới thiệu phép biến đổi ảnh nhƣ biến đổi Fourier biến đổi Wavelet Chƣơng 4: Lọc ảnh miền tần số không gian đƣợc đề cập phần Chƣơng 5: Để làm ảnh tốt lên, phép tăng cƣờng ảnh vận dụng phép xử lý điểm xử lý mặt nạ Chƣơng 6: Phân đoạn ảnh dò biên phần quan trọng xử lý ảnh đƣợc nêu chƣơng Chƣơng 7: Cuối vài thuật tốn liên quan đến trích đặc trƣng nhận dạng đƣợc giới thiệu Thông tin cá nhân: Mặc dù cố gắng viết chỉnh sửa nhƣng chắn khơng thể tránh thiếu sót Do vậy, tác giả mong nhận đƣợc đóng góp q báu từ ngƣời đọc chuyên gia lĩnh vực xử lý ảnh - Liên lạc Khoa Điện-Điện tử, Đại học Sƣ phạm Kỹ thuật, TP.HCM Email: nthai@hcmute.edu.vn MỤC LỤC MỤC LỤC LIỆT KÊ THUẬT NGỮ VIẾT TẮT CHƢƠNG 1: GIỚI THIỆU 1.1.HỆ THỐNGXỬ LÝ ẢNH 1.2.XỬ LÝ ẢNH SỐ DÙNG MATLAB 13 1.2.1.Môi trƣờng làm việc MATLAB 13 1.2.2.MATLAB Editor 14 1.2.3.Trợ giúp MATLAB 14 1.2.4.Thực hành xử lý ảnh với MATLAB 15 BÀI TẬP CHƢƠNG 23 CHƢƠNG 2: KHÁI NIỆM CƠ BẢN 24 2.1 ĐIỂM ẢNH VÀ ẢNH SỐ 24 2.1.1 Điểm ảnh 24 2.1.2 Phân loại ảnh 25 2.1.3 Độ phân giải 28 2.1.4 Điểm ảnh lân cận 28 2.1.5 Sự liền kề, kết nối, vùng đƣờng bao 29 2.1.6 Đo lƣờng khoảng cách 31 2.2 TOÁN TỬ ẢNH 32 2.2.1.Biến đổi âm 34 2.2.2.Biến đổi hàm log 34 2.2.3.Biến đổi dạng lũy thừa 36 BÀI TẬP CHƢƠNG 39 CHƢƠNG 3:PHÉP BIẾN ĐỔI ẢNH 40 3.1.BIẾN ĐỔI FOURIER RỜI RẠC 40 3.1.1 Biến đổi Fourier rời rạc 42 3.1.2.Tính tốn biểu diễn biến đổi 2-DFT MATLAB 44 3.2.BIẾN ĐỔI WAVELET 50 3.2.1.Biến đổi Fourier thời gian ngắn 50 3.2.2.Phân tích Wavelet 52 3.2.2.1.Phân tích đa phân giải 52 3.2.2.2.Wavelet 53 3.2.2.3.Biến đổi Wavelet liên tục 55 3.2.2.4.Biến đổi Wavelet rời rạc 57 3.2.2.4.1.Giàn lọc 57 3.2.2.4.2.Kỹ thuật tăng giảm mẫu 58 3.2.2.4.3.Tái cấu trúc tín hiệu 59 3.2.2.4.4.Các giàn lọc đa phân giải 60 3.2.2.4.5.Một số hàm Wavelet thông dụng 65 3.2.2.5.Biến đổi Wavelet ảnh số 71 3.2.2.6.Biến đổi Wavelet dùng Wavelet Toolbox 73 3.2.2.7.Một số ứng dụng phép biến đổi Wavelet 81 BÀI TẬP CHƢƠNG 84 CHƢƠNG 4: LỌC ẢNH 85 4.1.LỌC TRONG MIỀN KHÔNG GIAN 85 4.2.LỌC TRONG MIỀN TẦN SỐ 93 4.2.1.Lọc thông thấp 97 4.2.2.Lọc thông cao 102 BÀI TẬP CHƢƠNG 105 CHƢƠNG 5: TĂNG CƢỜNG ẢNH 106 5.1.XỬ LÝ ĐIỂM 106 5.1.1.Mở rộng độ tƣơng phản 107 5.1.2.Xử lý lƣợc đồ (Histogram) 110 5.1.2.1.Cân Histogram 112 5.1.2.2.Kỹ thuật phối hợp lƣợc đồ(Histogram matching) 118 5.2.XỬ LÝ MẶT NẠ 122 5.2.1.Các lọc làm mịn ảnh 122 5.2.2.Các lọc làm sắc nét ảnh 127 BÀI TẬP CHƢƠNG 132 CHƢƠNG 6: PHÂN ĐOẠN VÀ TÁCH BIÊN 133 6.1 PHÂN ĐOẠN 133 6.1.1 Phƣơng pháp phân đoạn biên độ chói 133 6.1.2 Phƣơng pháp phân đoạn nhóm 136 6.1.3 Phƣơng pháp phân đoạn vùng 138 6.1.3.1 Công thức 138 6.1.3.2 Phân đoạn phát triển vùng 139 6.1.3.3 Tách vùng ghép vùng 140 6.2 TÁCH BIÊN 142 6.2.1 Tách biên theo đạo hàm bậc 145 6.2.2 Phát biên theo đạo hàm bậc 150 6.2.2.1 Phƣơng pháp Laplace 151 6.2.2.2 Bộ tách biên LoG (Laplacian of Gaussian Detector) 152 6.2.3 Bộ tách biên Canny 153 BÀI TẬP CHƢƠNG 154 CHƢƠNG 7: TRÍCH ĐẶC TRƢNG VÀ NHẬN DẠNG 155 7.1.PHÂN TÍCH THÀNH PHẦN CHÍNH (PCA) 155 7.1.1.Giới thiệu 155 7.1.2.Thuật toán PCA 156 7.1.2.1.Chuyển đổi ảnh 156 7.1.2.2.Ảnh trung bình 158 7.1.2.3.Sai biệt ảnh trung bình 158 7.1.2.4.Ma trận hiệp phƣơng sai 159 7.1.2.5.Phép chiếu 160 7.1.2.6.Nhận dạng 161 7.2.MÁY VECTOR HỖ TRỢ (SVM) 161 7.2.1.Siêu phẳng - Hyperplane 161 7.2.2.SVM tuyến tính 162 7.2.3.Các điều kiện Karush-Kuhn-Tucker (KKT) 164 7.2.4.Giải thuật SMO 164 7.3.MẠNG NƠ-RON NHÂN TẠO 167 BÀI TẬP CHƢƠNG 171 LIỆT KÊ THUẬT NGỮ VIẾT TẮT ALU Arithmetic Logic Unit MATLAB MATrix LABoratory CRT Cathode Ray Tube DFT Discrete Fourier Transform FFT Fast Fourier Transform STFT Short Time Fourier Transform WT Wavelet Transform MRA MultiResolution Analysis CWT Continuous Wavelet Transform DWT Discrete Wavelet Transform FIR Finite Impulse Response ILPF Ideal Lowpass Filter BLPF Butterworth Lowpass Filter GLPF Gaussian Lowpass Filter PSNR Peak Signal to Noise Ratio PDF Probability Density Function CDF Cumulative Distribution Function LoG Laplacian of Gaussian PCA Principle Component Analysis ANN Artificial Neural Network SVM Support Vector Machine KKT Karush-Kuhn-Tucker SMO Sequential Minimal Optimisation Chƣơng GIỚI THIỆU 1.1 HỆ THỐNG XỬ LÝ ẢNH Trong năm gần đây, mẻ lĩnh vực khoa học công nghệ nhƣng xử lý ảnh đƣợc nghiên cứu phát triển với tốc độ nhanh chóng trung tâm nghiên cứu, trƣờng đại học viện… với nhiều ứng dụng lĩnh vực khác Xử lý ảnh đƣợc đƣa vào giảng dạy bậc đại học Việt Nam năm gần dành cho số ngành học định Đây môn học liên quan đến nhiều lĩnh vực cần nhiều kiến thức sở khác: đại số tuyến tính, xác suất thống kê, xử lý số tín hiệu, trí tuệ nhân tạo…cũng đƣợc đề cập phân tích nội dung Các phƣơng pháp xử lý ảnh ứng dụng nhằm nâng cao chất lƣợng phƣơng pháp phân tích đƣợc nghiên cứu giai đoạn thiết bị phần cứng bị hạn chế, chẳng hạn nhƣ nâng cao độ sáng hay độ phân giải hình ảnh…Về sau, nhờ xuất phát triển mạnh máy tính tạo điều kiện cho q trình thực thuật tốn xử lý ảnh Ứng dụng xử lý ảnh ngày đƣợc mở rộng sang lĩnh vực khác, chẳng hạn nhƣ viễn thông, điều khiển tự động, giao thông thông minh, kỹ thuật y sinh…Đặc biệt, thiết bị kỹ thuật số có hình hiển thị ln ƣu tiên phần tài nguyên dành cho việc xử lý hình ảnh: máy tính xách tay, camera kỹ thuật số, điện thoại thông minh, tivi thông minh… Thông thƣờng, xử lý ảnh số bao gồm nhiều vấn đề khác nhau, nhiên, chia thành lĩnh vực nhƣ hình 1.1: tạo lập ảnh, biểu diễn, phân tích quản lý Bên cạnh đó, thuật tốn tăng cƣờng ảnh đƣợc xem xét nhƣ bƣớc tiền hay hậu xử lý tất lĩnh vực Tạo lập ảnh: bao gồm tất bƣớc từ trình thu nhận ảnh đến hình thành ảnh số dƣới dạng ma trận Hiển thị: tất dạng xử lý ma trận để ngõ tối ƣu Phân tích: gồm tất bƣớc xử lý đƣợc dùng cho trình đo lƣờng định lƣợng Những bƣớc yêu cầu trƣớc hết hiểu biết chất nội dung ảnh, đó, tiến trình phân tích ảnh rõ ràng thuật tốn phát triển đƣợc chuyển đổi nhanh chóng sang mơi trƣờng ứng dụng khác cách trực tiếp Quản lý: kỹ thuật cung cấp khả lƣu trữ, truyền thông, phục hồi truy nhập hiệu Trong y khoa, việc lấy thơng tin hình ảnh từ xa đƣợc xem phần lĩnh vực quản lý Ngƣợc với phân tích ảnh, thƣờng đƣợc nghĩ xử lý ảnh nâng cao, xử lý ảnh cấp thấp thƣờng đề cập đến kỹ thuật thông thƣờng hay tự động, nghĩa hồn tồn nhận biết mà không cần trang bị nhiều kiến thức chuyên sâu nội dung ảnh Các thuật toán dạng có ảnh hƣởng khơng đáng kể đến nội dung ảnh Ví dụ, mở rộng lƣợc đồ phim chụp X-quang giúp tăng cƣờng độ tƣơng phản tƣơng tự nhƣ với ảnh đời thƣờng Do đó, phƣơng pháp xử lý ảnh thƣờng có giá trị nhƣ chƣơng trình dành cho tăng cƣờng ảnh Tạo lập ảnh Thu nhận ảnh Số hóa Tăng cƣờng Chuẩn hóa Tối ƣu hóa Đăng ký Biến đổi Lọc Tái cấu trúc Trích đặc tính Nén Xử lý độ sáng Phân đoạn Lƣu trữ Xử lý bóng mờ Phân loại Phục hồi Hiển thị Hiển thị Nội suy Đo lƣờng Phân tích Truyền thơng Quản lý Hình 1.1.Các lĩnh vực nghiên cứu xử lý ảnh số Các thành phần hệ thống xử lý ảnh Thông thƣờng, hệ thống xử lý ảnh đƣợc xem nhƣ hệ thống đa gồm thành phần nhƣ: cảm biến hình ảnh, phần cứng xử lý ảnh chuyên dụng, máy tính, phần mềm xử lý, nhớ, hình hiển thị, in ấn mạng nhƣ hình 1.2 10 Cảm biến: hai yếu tố đƣợc yêu cầu để tạo lập ảnh số: thiết bị vật lý nhạy với lƣợng xạ vật thể mà mong muốn ghi lại, thứ hai số hóa, hay gọi thiết bị chuyển đổi ngõ thiết bị cảm biến thành dạng số Ví dụ, camera số, cảm biến xuất ngõ dạng tín hiệu điện tƣơng ứng với cƣờng độ sáng Bộ số hóa chuyển đổi ngõ sang dạng liệu số Mạng Internet Thiết bị hiển thị Máy tính Lƣu trữ Thiết bị in ấn Phần cứng xử lý ảnh chuyên dụng Phần mềm xử lý ảnh Cảm biến hình ảnh Đối tƣợng Hình 1.2 Các thành phần hệ thống xử lý ảnh đa dụng Phần cứng xử lý ảnh chuyên dụng thƣờng bao gồm số hóa đề cập phần cứng xử lý thông số ban đầu khác, chẳng hạn nhƣ đơn vị số học (ALU) – chuyên thực phép toán logic song song với nhiều ngõ vào Một ví dụ cho thấy cách ALU đƣợc dùng để tính trung bình ảnh nhằm mục đích triệt nhiễu Dạng phần cứng thƣờng đƣợc gọi hệ thống phụ trợ đầu cuối, đặc trƣng phân biệt tốc độ Hay nói cách khác, đơn vị thực chức yêu cầu băng thơng liệu lớn (số hóa lấy trung bình ảnh video thƣờng 30 khung hình/giây) mà máy tính dùng cho chức khơng thể điều khiển tay nhƣ thông thƣờng 11 7.1.2.2 Ảnh trung bình M m xi m i 0 (7.3) Hay: a11 a12 a13 a1m m1 a21 a22 a23 a2 m m2 M a31 a32 a33 a3m m3 m an1 an an anm mn (7.4) Ví dụ 7.2: Giả sử ta có ảnh mẫu 2D đƣợc chuyển đổi thành vectơ 1D nhƣ sau: 1 4 7 8 S1 , S , S3 , S 13 5 1 1 Tiến hành ghép vectơ tạo thành ma trận tính ma trận trung bình: 1 7 8 20 M 16 20 13 Trong Matlab, dùng lệnh mean(X,dim) để tính giá trị trung bình ma trận X, với dim chiều lấy trung bình, dim lấy trung bình theo cột, dim lấy trung bình theo hàng Khơng có tham số dim mặc định dim 7.1.2.3 Sai biệt ảnh trung bình Nhằm mục đích tạo giãn tƣơng đối giá trị pixel ảnh a1m m1 a11 m1 a12 m1 a2 m m2 a21 m2 a22 m2 n1m a31 m3 , n2 m a32 m3 , , n1m a3m m3 an1 mn an mn anm mn 158 (7.5) Xây dựng ma trận từ nim vừa tìm đƣợc Đặt A n1m n2 m n3m nMm đƣợc ma trận có kích thƣớc n×m Ví dụ 7.3: Từ ví dụ 7.2, ta tính đƣợc ma trận A nhƣ sau: 1 A 0 0 7.1.2.4.Ma trận hiệp phương sai Nhằm mục đích thể tƣơng quan vectơ vectơ cịn lại khơng gian cov AAT n 1 (7.6) Trị riêng (eigenvalue i ), vectơ riêng (eigenvector x i ) ma trận hiệp phƣơng sai đặc trƣng thành phần thiết yếu ảnh Nhƣng thực tế, ảnh có kích thƣớc 200×230, kích thƣớc ma trận cov 46000×46000 Kích thƣớc lớn, việc tính trị riêng, vectơ riêng vấn đề trở ngại tính trực cách Vì cần phải áp dụng lý thuyết đại số tuyến tính: trị riêng , vectơ riêng tính cách giải trị riêng, vectơ riêng ma trận ATA (kích thước m×m nhỏ nhiu so vi nìn) t ài v di l cỏc trị riêng, vectơ riêng ma trận AT A Kết nhƣ sau: AT Ad i i di (7.7) Nhân vế (7.6) cho A đƣợc: AAT ( Ad i ) i ( Ad i ) (7.8) Với X = Adi Điều cho thấy m vectơ riêng x i và, m trị riêng i AA tƣơng ứng tích A với vectơ riêng di AT A, µi T Các vectơ riêng không gian đặc trƣng tập mẫu sở liệu ảnh ban đầu Các vectơ riêng đƣợc xếp theo thứ tự từ cao đến 159 thấp theo trị riêng tƣơng ứng Vectơ riêng có trị riêng lớn mang nhiều đặc trƣng thiết yếu không gian tập mẫu (tức định nhiều biến đổi ảnh) Ngƣợc lại vectơ riêng có trị riêng bé mang thành phần đặc trƣng khơng gian đặc trƣng tập mẫu Ở cho thấy với m hƣớng đặc trƣng mang trị riêng lớn n×n khơng gian đặc trƣng Ví dụ 7.4: Ma trận hợp phƣơng sai đƣợc tính từ ma trận A ví dụ 7.3 theo phƣơng trình (7.6) nhƣ sau: 4 10 30 18 8 1 1 cov 18 24 24 4 3 3 32 0 24 96 0 Ma trận cov có trị riêng vectơ riêng nhƣ sau: 1.6057 13.8430 34.5513T x1 0.5686 0.7955 0.2094 T x2 0.8193 0.5247 0.2312 T x3 0.0740 0.3030 0.9501 T Trong Matlab, dùng hàm sau: E=eig(X): Trả vector chứa giá trị riêng ma trận vuông X [V, D] = eig(X): tạo ma trận đƣờng chéo D giá trị riêng ma trận V có cột tƣơng ứng vector riêng, đó: X * V = V * D 7.1.2.5 Phép chiếu Chiếu lần lƣợt ảnh sở liệu đến không gian đặc trƣng m hƣớng này, để sinh ảnh đặc trƣng không gian ảnh i x1 x2 xn nim T Với X T x1 x x M i 1, m (7.9) ma trận đặc trƣng ảnh mẫu T rút trích đƣợc gọi eigensignal, nim vectơ ảnh thứ i trừ ảnh trung bình 160 7.1.2.6 Nhận dạng Chuyển đổi ảnh cần nhận dạng thành vectơ chiều: r1 r2 r r3 r N (7.10) Tính sai số ảnh cần nhận dạng với ảnh trung bình ảnh sở liệu r1 m1 r2 m2 r r3 m3 r m N N (7.11) Chiếu sai số lên không gian đặc trƣng ảnh mẫu sở liệu r x1 x2 x3 xM rm T (7.12) Từ đặc trƣng trích từ phƣơng pháp PCA, hệ số biểu diễn ảnh dùng để làm ngõ vào mạng phục vụ cho việc huấn luyện phân loại 7.2 MÁY VECTOR HỖ TRỢ (SVM) 7.2.1 Siêu phẳng - Hyperplane Siêu phẳng yếu tố quan trọng thuật toán SVM Giả sử ta có hai tập liệu với điểm nhƣ hình 7.5 Các điểm thuộc hai tập Nhƣ vấn đề có điểm liệu ta xác định thuộc tập 161 Hình 7.5.Các đường phân chia hai tập liệu mang đặc trưng khác Một cách trực quan hình 7.5, ta thấy có đƣờng H1, H2, H3 chia hai tập liệu thành miền khác Tuy nhiên với đƣờng phân chia H4, có điểm bị phân loại nhầm Nhƣ vậy, việc tính tốn đƣờng để chia tập liệu quan trọng, đƣờng gọi siêu phẳng Ta cần tìm siêu phẳng cho có độ phân cách lớn hay lề (margin) hai tập liệu 7.2.2 SVM tuyến tính SVM tuyến tính thực phân chia hai tập liệu theo siêu phẳng tuyến tính Giả sử ta có tập huấn luyện d {xi , yi }, i 1,, l , yi {1,1}, xi R Ta muốn phân chia mẫu tích cực khỏi mẫu thụ động nhƣ hình 7.6 Các mẫu tích cực nằm vùng có y = hay vùng H2, mẫu thụ động nằm vùng y = - tƣơng ứng vùng H1 Hình 7.6.Các siêu phẳng H1 H2 phân chia mẫu tích cực thụ động thành lớp khác Các điểm xi nằm siêu phẳng thỏa mãn w.x b Và |b|/||w|| khoảng cách từ siêu phẳng đến gốc tọa độ, ||w|| độ lớn 162 w Đặt d+ (d-) khoảng cách ngắn từ siêu phẳng đến mẫu tích cực (thụ động) gần Lề siêu phẳng d+ + d- Trong trƣờng hợp tuyến tính này, vector hỗ trợ tìm siêu phẳng phân cách với lề (margin) lớn Giả sử tất liệu huấn luyện thỏa điều kiện: xi w b 1, với yi 1 (7.13) yi 1 (7.14) xi w b 1, với Kết hợp (7.13) (7.14) yi (xi w b) (7.15) Khi dấu (7.13) xảy ra, ta có điểm nằm siêu phẳng H1 : xi w b khoảng cách đến gốc tọa độ | b | / || w || Tƣơng tự, điểm nằm siêu phẳng H : xi w b 1 có khoảng cách đến gốc tọa độ | 1 b | / || w || Vì thế, d+ = d-=1/||w|| độ lớn lề 2/||w|| Nhƣ vậy, ta tìm cặp siêu phẳng cho độ lớn lề lớn theo phƣơng trình (7.15) Vấn đề tìm w b Cơng việc tối ƣu đƣợc thực cách chuyển (7.15) sang vấn đề tƣơng ứng với tiên đề Lagrange Lp (w, b, α) l l || w || i yi (xi w b) i i 1 i 1 (7.16) Trong đó, i nhân tử Lagrange Lấy đạo hàm Lp theo w b, đặt kết 0, ta có L p (w, b, α ) w L p (w, b, α ) b l w yi i xi i 1 l yi i (7.17) i 1 Cuối ta đƣợc l w yi i xi (7.18) i 1 l yi i (7.19) i 1 163 Mỗi mẫu huấn luyện xi tƣơng ứng với hệ số Lagrange αi Sau huấn luyện mẫu có i đƣợc gọi vector hỗ trợ nằm hai siêu phẳng nói Khi có vector hỗ trợ đƣợc huấn luyện, ta định cách đơn giản mẫu thử x thuộc vùng siêu phẳng H1 H2 tạo cách đặt lớp x hàm dấu sgn( w x b) (7.20) 7.2.3 Các điều kiện Karush-Kuhn-Tucker (KKT) Các điều kiện KKT đóng vai trị quan trọng việc giải tối ƣu vấn đề lập trình phi tuyến thực tế Điều kiện KKT phát biểu nhƣ sau: i yi (xi w b) (7.21) i C yi (xi w b) (7.22) i C yi (xi w b) (7.23) Việc giải vấn đề liên quan đến SVM tƣơng tự nhƣ việc tìm đáp án cho điều kiện KKT 7.2.4 Giải thuật SMO Để tối ƣu thời gian, nhớ việc tìm nhân tử Lagrange, nhƣ trọng số w support vector, có nhiều giải thuật đƣợc đề ra: Chunking, Osuna, SMO Giải thuật tối ƣu cực tiểu - SMO (Sequential Minimal Optimisation) dựa ý tƣởng phƣơng pháp phân giải tối ƣu tập cực tiểu có hai phân tử vịng lặp l Với điều kiện y i 1 i i số lƣợng nhân tử cần phải có 2, để đảm bảo nhân tử đƣợc cập nhật nhân tử cịn lại phải đƣợc điều chỉnh để thỏa điều kiện Nhƣ vậy, bƣớc giải thuật SMO có phần tử αi αj đƣợc lựa chọn Giả sử ta có phần tử đƣợc chọn α1 α2 Khi thay đổi giá trị giá trị phải thay đổi theo để thỏa điều kiện ràng buộc, 1 y1 y2 constant 1old y1 2old y2 (7.24) Hay nói cách khác, giá trị nằm đƣờng thẳng không gian (α1,α2) ≤ α1,α2≤ C, 1old , 2old giá trị trƣớc 164 Giải thuật tính giá trị 2new : U ≤ 2new ≤ V (7.25) Trong đó, y1 ≠ y2 U max(0, 2old 1old ) (7.26) V min(C , C 1old 2old ) Và y1 = y2 U max(0,1old 2old C ) (7.27) V min(C ,1old 2old ) Một cách rõ ràng hơn, đặt Ei sai biệt hàm ngõ mục tiêu phân loại mẫu huấn luyện x1 x2, l Ei f (xi ) yi j y j K ( x j , xi ) b yi , j 1 i 1,2 (7.28) Và đặt K (x1 , x1 ) K (x , x ) K (x1 , x ) || (x1 ) (x ) || (7.29) Trong K(xi,xj) hàm lõi (kernel function) Tính tốn cách định lƣợng thì, giá trị α2 chƣa bị giới hạn 2new,unc 2old y2 ( E1 E2 ) (7.30) Để thỏa điều kiện U ≤ 2new ≤ V 2new V , new ,unc , U , 2new,unc V U 2new ,unc V 2new,unc U (7.31) Và ta tính đƣợc giá trị 1new : 1new 1old y1 y2 ( 2old 2new ) (7.32) Tóm lại giải thuật SMO thực bƣớc: 165 Bƣớc 1: Tìm nhân tử Lagrange α1 khơng thỏa điều kiện KKT Bƣớc 2: Tìm tiếp nhân tử α2, tính giá trị 1new , 2new Bƣớc 3: Lập lại bƣớc 1, hội tụ Để tăng tốc độ hội tụ, giải thuật SMO sử dụng đoán heuristic để chọn nhân tử Lagrange vấn đề tối ƣu Có đoán heuristic độc lập việc chọn nhân tử thứ nhân tử thứ hai: Phỏng đốn chọn lựa thứ nhất: Đây vịng lặp ngồi giải thuật SMO Vịng lặp ngồi tìm tập huấn luyện mẫu không thỏa điều kiện KKT Nếu mẫu khơng thỏa điều kiện KKT, đƣợc dùng cho việc tối ƣu Khi tìm xong tập, vịng lặp ngồi tìm mẫu cho nhân tử Lagrange chúng không không C (các mẫu không biên) Một lần nữa, mẫu đƣợc kiểm tra không thỏa điều kiện KKT đƣợc dùng cho việc tối ƣu Vịng lặp ngồi lặp lại mẫu không biên điều kiện KKT thỏa sai số Phỏng đoán chọn lựa thứ hai: Khi nhân tử Lagrange thứ đƣợc chọn, SMO chọn nhân tử thứ cho bƣớc nhảy phƣơng trình 7.29 lớn nhất, tức tối đa |E1 – E2| Nếu E1 dƣơng, SMO chọn mẫu cho E2 nhỏ Nếu E1 âm, SMO chọn mẫu với sai số E2 lớn Với việc cập nhật nhân tử Lagrange, ngƣỡng b đƣợc tính lại bƣớc ngƣỡng b1 đƣợc tính: b1 E1 y1 (1new 1 ) K (x1 , x1 ) y1 ( 2new ) K (x1 , x ) b (7.33) Và b2: b2 E2 y1 (1new 1 ) K (x1 , x ) y1 ( 2new ) K (x , x ) b (7.34) Khi b1 b2 hợp lệ chúng Vector trọng số w đƣợc cập nhật: w new w y1 (1new 1 )x1 y2 ( 2new )x (7.35) Nhƣ vậy, giải thuật SMO đƣợc đề nhằm góp phần tăng tốc độ hội tụ nhƣ thời gian xử lý máy tính vấn đề huấn luyện thuật toán SVM 166 Trong MATLAB, công cụ SVM đƣợc hỗ trợ thông qua svmsmoset, svmtrain, svmclassify Ví dụ 7.5: Khai báo thơng số, huấn luyện nhận dạng dùng công cụ SVM SMO_OptsStruct = svmsmoset('TolKKT',0.0005,'MaxIter',10000); svmStruct = svmtrain(dt,g,'SMO_Opts',SMO_OptsStruct); classes = svmclassify(svmStruct,dtest); svmsmoset cho ngƣời dùng khai báo thông số điều kiện KKT, số vịng lặp đó, svmtrain thực huấn luyện ngõ vào dt theo ngõ mong muốn g Cuối với svmclassify thực phân loại cấu trúc SVM khai báo với ngõ vào cần phân loại 7.3 MẠNG NƠ-RON NHÂN TẠO Mạng nơ-ron nhân tạo (ANN- Artifical Neural Networks) công cụ mạnh vấn đề phân loại nhận dạng đối tƣợng Dựa cấu trúc nơ-ron sinh học nhƣ hình 7.7 hệ thống thần kinh ngƣời, nhiều dạng mạng nơ-ron nhân tạo đƣợc xây dựng phát triển Hình 7.7 Cấu trúc nơ-ron sinh học: cell body, axon, synaptic Mạng ANN đƣợc xây dựng Perceptron (Frank Rosenblatt - 1958), Artron, Adaline, Madaline Bốn dạng này, đặc biệt Perceptron, sở để phát triển mạng ANN Trong đó, loại mạng đƣợc phát triển mạng lan truyền ngƣợc (Back-propagation), Hopfield Network, CounterPropagation Network 167 Perceptron có cấu trúc tế bào thần kinh đƣợc trình bày nhƣ hình 7.8, nhƣ ví dụ có ngõ vào trọng số đƣợc tổng hợp lại kết nối đến ngõ ra, ngõ lại ngõ vào nơ-ron khác Hình 7.8 Cấu trúc tế bào thần kinh Perceptron đƣợc mơ hình hóa theo dạng Hình 7.9 Mơ hình perceptron nơ-ron Trong xi, i =1, 2, ngõ vào, wi trọng số với ngõ vào tƣơng ứng, hàm hoạt hóa ngõ o = f(a), a = x1.w1 + x2.w2 + x3.w3 Các hàm hoạt hóa thƣờng gặp đƣợc tóm tắt hình 7.10, 7.11, 7.12: 168 Hình 7.10 Hàm bước Hình 7.11 Hàm sigmoid Hình 7.12 Hàm double sigmoid Trong hình 7.10, hàm hoạt hóa hàm bƣớc 1, o 0, a0 a0 (7.36) Hàm sigmoid double sigmoid đƣợc miêu tả hình 7.12 7.13 tƣơng ứng với công thức (7.37) (7.38) o S (a) 1 e a o = H(a) = 2S(a) -1 (7.37) (7.38) Mạng lan truyền ngƣợc đƣợc xây dựng dựa cấu trúc Perceptron, có lớp, hàm hoạt hóa phải hàm lấy đạo hàm (ví dụ hàm sigmoid, double sigmoid) Hình 7.13 mơ hình mạng lan truyền ngƣợc lớp (một lớp vào, lớp ẩn, lớp ra) 169 Hình 7.13 Mạng lan truyền ngược với lớp Dựa giải thuật giảm gradient, mạng lan truyền ngƣợc tìm trọng số cho trung bình bình phƣơng sai số ngõ ngõ mong muốn đạt kết tốt E o p d p P (7.39) p 1 Trong đó: P số lƣợng mẫu, op ngõ mạng, dp ngõ mong muốn Giả sử có I nút lớp ngõ vào, J nút lớp ẩn, K nút lớp ngõ Trọng số w(j1,i,0) trọng số từ nút thứ i lớp ngõ vào đến nút thứ j lớp ngõ ẩn, wk( 2, ,j1) trọng số từ nút thứ j lớp ẩn đến nút thứ k lớp ngõ Giải thuật huấn luyện cho mạng lớp đƣợc tóm tắt bảng 7.1 nhƣ sau Bảng 7.1 Giải thuật cập nhật trọng số cho mạng lan truyền ngược lớp Chọn ngẫu nhiên giá trị trọng số Trong điều kiện MSE thỏa mãn chƣa vƣợt số vòng lặp đặt trƣớc, Với ngõ vào xp, 1≤ p ≤ P, (*) Tính ngõ vào nút lớp ẩn net (p1,)j ; 170 Tính ngõ nút lớp ẩn x(p1,)j ; Tính ngõ vào nút lớp ngõ net (p2,k) ; Tính ngõ mạng op,k; Điều chỉnh trọng số lớp ngõ wk( 2, ,j1) (d p, k o p, k )S (net (p2, k) ) x(p1,)j Điều chỉnh trọng số nút ẩn nút ngõ vào K w(j1,,i0) (d p , k o p , k ) S (net (p2, k) ) wk( 2, ,j1) S (net (p1,)j ) x p ,i k 1 Kết thúc (*) Kết thúc Trong đó:S() hàm hoạt hóa, hệ số học hay tốc độ học Trong MATLAB, ta sử dụng hàm newff để khai báo mạng truyền thẳng net = newff(P, T, S); P: ma trận phần tử ngõ vào, T: ma trận phần tử ngõ ra, S: kích thƣớc lớp ẩn Tiếp theo, mạng đƣợc huấn luyện dùng hàm train [neto] = train(net,P,T); Sau có mạng neto, dùng hàm sim để phân loại res = sim(neto,dtest); dtest ngõ vào cần phân loại, res kết phân loại BÀI TẬP CHƢƠNG 7.1 Thu nhận ảnh ngƣời Thực phân tích thành phần PCA để tìm vector đặc trƣng 7.2 Sử dụng mạng nơ-ron lớp (lớp ngõ vào, lớp ẩn, lớp ngõ ra) thực huấn luyện nhận dạng từ kết 7.1 7.3 Trình bày hƣớng phát triển để thực phân loại SVM trƣờng hợp nhiều hai đặc trƣng cần phân loại 171 TÀI LIỆU THAM KHẢO Nguyễn Quang Hoan, Xử Lý Ảnh, Lƣu Hành Nội Bộ, Học Viện Cơng Nghệ Bƣu Chính Viễn Thơng, 2006 Đỗ Năng Tịan, Phạm Việt Bình, Xử Lý Ảnh, Giáo Trình Mơn Học, Đại Học Thái Ngun, Khoa Cơng Nghệ Thông Tin, 2007 Maria Petrou, Panagiota Bosdogianni, Image Processing: The Fundamentals, John Wiley & Sons Ltd, 1999 William K Pratt, Digital Image Processing, John Wiley & Sons, Inc., 2001 Rafael C Gonzalez, Richard E Woods, Digital Image Processing, The Third Edition,Prentice Hall, 2008 Rafael C Gonzalez, Richard E Woods, Digital Image Processing Using Matlab, Prentice Hall, 2004 Kayvan N., Robert S., Biomedical Signal and Image Processing, Taylor and Francis Group, 2006 172 ... trị mức xám ảnh ngõ điểm ( ) Việc xử lý bình giá trị điểm ảnh xung quanh điểm ảnh ( đƣợc thực từ trái sang phải theo chiều ngang từ xu? ??ng dƣới theo chiều dọc ảnh Lƣu ý với điểm ảnh biên điểm ảnh... đây, việc trích xu? ??t thành phần tín hiệu ( ) thời điểm ) Trong trƣờng hợp đơn giản thay đổi vị trí xung đơn vị ( này, với đặc trƣng chọn lọc: 40 ( ) ( ∫ ) ( ) (3.6) ( ), sử dụng xung đơn vị ( Ví... đƣợc tính dựa thơng số ảnh Ví dụ, với ảnh hình 1.7(d) sau truy xu? ??t thơng tin dùng hàm imfinfo: Infor = Filename: [1x51 char] FileModDate: [1x20 char] FileSize: 7237 Format: 'jpg' FormatVersion: