MÔ PHỎNG NHẬN DẠNG vật THỂ THEO HÌNH DẠNG HÌNH học (có code) .... MÔ PHỎNG NHẬN DẠNG vật THỂ THEO HÌNH DẠNG HÌNH học (có code) .... MÔ PHỎNG NHẬN DẠNG vật THỂ THEO HÌNH DẠNG HÌNH học (có code) .... MÔ PHỎNG NHẬN DẠNG vật THỂ THEO HÌNH DẠNG HÌNH học (có code) ....
MƠ PHỎNG NHẬN DẠNG VẬT THỂ THEO HÌNH DẠNG HÌNH HỌC MỤC LỤC DANH MỤC CÁC HÌNH VẼ DANH MỤC CÁC BẢNG BIỂU DANH MỤC CÁC TỪ VIẾT TẮT DFT Discrete Fourier Transform VGA Video Graphics Array VSGA Super Video Graphics Array DCT Discrete Cosine Transform Trang 6/19 CHƯƠNG TỔNG QUAN ĐỀ TÀI 1.1 Giới thiệu Những năm gần xử lý ảnh đạt nhiều thành tựu ngày cành cải tiến tốt Trong vấn đề nhận dạng phân loại hình ảnh ứng dụng ngày phổ biến Nhờ ứng dụng hệ thống nhận dạng hình ảnh mà khối lượng công việc người giảm bớt tăng độ xác cao cơng việc 1.2 u cầu đề tài Mơ hệ thống nhận dạng hình ảnh vật thể theo hình dạng hình học matlab Xác định hình dạng vật thể đem kết xác so với hình dạng hình học 1.3 Giải vấn đề - Tìm hiểu ảnh số sử lý ảnh - Tìm hiểu thư viện Digital Image Processing matlab - Tìm hiểu giải thuật nhận dạng hình học matlab - Viết code mơ chương trình matlab Mơ Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học Trang 7/19 CHƯƠNG TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ NHẬN DẠNG 1.4 Xử lý ảnh số khái niệm 1.1.1 Xử lý ảnh số Xử lý ảnh số dạng xử lý tín hiệu với đầu hay nhiều thuộc tính liên quan tới ảnh đưa vào (về tính chất hay tham số ảnh) đầu hình ảnh dạng khác Phần lớn xử lý ảnh đem hình ảnh tín hiệu hai chiều sau sử dụng kỹ thuật xử lý tín hiệu để xử lý ảnh đem vào Các bước xử lý ảnh: Hình 2.1: bước xử lý ảnh [1] • 1.1.2 Các khái niệm Điểm ảnh (Picture Element) Gốc ảnh (ảnh tự nhiên) ảnh liên tục không gian độ sáng Để xử lý ảnh máy tính ảnh cần số hóa Số hóa ảnh biến đổi gần ảnh liên tục thành tập điểm phù hợp với ảnh thật vị trí (khơng gian) độ sáng (độ xám) ảnh thật điểm xác định gọi điểm ảnh (Picture Element) hay thường gọi pixel Trong khn khổ ảnh chiều pixel tưng ứng với tọa độ x,y • Độ phân giải ảnh Mơ Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học Trang 8/19 Trong pixel ứng với cặp tọa độ x,y độ phân giải ảnh tích số với giá trị lớn x với giá trị lớn y Độ phân giải cao hình ảnh rõ sắc nét so với độ phân giải thấp • Mức xám Mức xám kết mã hóa tương ứng với cường độ sáng điểm ảnh với giá trị số thơng qua q trình lượng tử hóa Thang giá trị mức xám thông thường: 16, 32, 64, 128, 256 Trong mức 256 ( từ đến 255) dùng phổ biến cho máy tính dùng bit để biểu diễn mức xám Ảnh đen trắng: ảnh với hai màu đen trắng với mức xám điểm ảnh khác Ảnh nhị phân: ảnh biểu diễn ma trận hai chiều thuộc kiểu logical Mỗi điểm ảnh nhận hai giá trị (đen) (trắng) Ảnh màu: với điểm ảnh cần dùng byte để biểu diễn màu (gồm ba màu đỏ, lục, lam có 28*3=16777216 màu) • Định nghĩa ảnh số Ảnh số tập hợp tất điểm ảnh với mức xám phù hợp dùng để mơ tả ảnh gần giống với ảnh thật • Biểu diễn ảnh Người ta dùng phần tử đặc trưng ảnh pixel để biểu diễn ảnh Do biểu diễn ảnh hàm hai biến chứa thông tin Để xử lý ảnh ảnh phải lấy mẫu lượng tử hóa Tức phải chuyển từ ảnh tương tự sang ảnh số sau lưu giá trị điểm ảnh với số hữu hạn mức xám • Tăng cường khôi phục ảnh Mô Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học Trang 9/19 Khi ảnh chuyển từ ảnh sang ảnh khác trình truyền ảnh, quét ảnh… ảnh sau truyền có chất lượng so với ảnh gốc để chất lượng ảnh nâng cao để quan sát ảnh cách trực quan chi tiết phải có biện pháp nâng cao chất lượng ảnh, trình gọi tăng cường ảnh Tăng cường giúp loại bỏ suy hao hệ thống Các kỹ thuật tăng cường ảnh: kỹ thuật tương phản (contrast), ánh xạ (ghép mức xám ảnh gốc với mức xám khác ảnh biên dịch)…những kỹ thuật dựa kết hợp phương pháp biến đổi miền không gian miền tần số Khơi phục ảnh (Image Restoration) q trình xử lý loại bỏ suy giảm ảnh Quá trình khơi phục ảnh nhằm đem lại hình ảnh gốc bị suy giảm q trình truyền • Biến đổi ảnh Có nhiều kỹ thuật biến đổi ảnh sử dụng: biến đổi fourier, cosin, sin, DCT, Radon…nhưng biến đổi thông dụng biến đổi fourier áp dụng nhiều thực tế 1.5 Nhận dạng ảnh phân loại Nhận dạng ảnh: trình phân loại đối tượng biểu diễn theo mô hình gán chúng vào lớp dựa theo quy luật mẫu chuẩn Sự nhận dạng ảnh hưởng dựa nhiều tính chất vật tính chất có kỹ thuật khác để nhận dạng Phân loại thành phần ảnh : trình quan trọng nhận dạng hình ảnh Đã có nhiều kỹ thuật phân loại sử dụng phân loại thành phần ảnh để phân loại xác tùy theo nhu cầu phân loại thành phần dựa nguyên tắc xác định rõ có ý nghĩa thống kê 1.6 Các thành phần hệ thống xử lý ảnh Mô Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học Trang 10/19 Hình 2.2: Các thành phần hệ thống xử lý ảnh [1] Một hệ thống xử lý ảnh bao gồm: máy tính cá nhân kèm theo vi mạch chuyển đổi đồ họa VGA VSGA, đĩa chứa hình ảnh để kiểm tra thuật tốn hình có hộ trợ VGA VSGA CHƯƠNG CÁC HÀM XỬ LÝ ẢNH CƠ BẢN TRONG MATLAB 1.7 Các kiểu ảnh matlab 1.1.3 Ảnh Index Ảnh biểu diễn hai ma trận, ma trận liệu ảnh X ma trận màu (còn gọi đồ màu) map Ma trận liệu thuộc kiểu uint 8, uint 16 double Ma trận màu ma trận kích thước n x gồm thành phần thuộc kiểu double khoảng giá trị [0 1] Mỗi hàng ma trận xác định thành phần đỏ, lục, lam màu tổng số n màu sử dụng Mơ Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học Trang 11/19 ảnh Giá trị phần tử ma trận liệu ảnh cho biết màu điểm ảnh nằm hàng ma trận màu 1.1.4 Ảnh grayscale Ảnh grayscale hay gọi ảnh trắng đen Mỗi ảnh biểu diễn ma trận hai chiều, giá trị phần tử cho biết độ sáng (hay mức xám) điểm ảnh 1.1.5 Ảnh nhị phân Ảnh biểu diễn ma trận hai chiều thuộc kiểu logical Mỗi điểm ảnh nhận hai giá trị (đen) (trắng) 1.8 Một số phép biến đổi ảnh matlab 1.1.6 Biến đổi Fourier Phép biến đổi Fourier dùng để biểu diễn hình ảnh dạng tổng lũy thừa phức thành phần biên độ, tần số pha khác ảnh matlab Nếu f(m,n) hàm hai biến không gian rời rạc m n, biến đổi Fourier hai chiều f(m,n) định nghĩa sau: Nếu f(m,n) biểu diễn độ sáng ảnh X vị trí pixel (m, n) F(w1,w2) biến đổi Fourier ảnh X Do liệu máy tính lưu trữ dạng tín hiệu rời rạc, liệu ảnh tổ chức theo đơn vị pixel (điểm ảnh) nên phép biến đổi Fourier rời rạc nên hóa thành biến đổi Fourier rời rạc (DFT) Với ứng dụng xử lý ảnh, quan tâm đến hàm fft2 ifft2 Mô Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học Trang 12/19 Cú pháp : F=fft2(X,Mrows,Ncols) F=ifft2(F,mrows,ncols) fft: phép biến đổi fourier thuận matlab ifft: phép biến đổi fourier ngược matlab Sau thực lệnh biến đổi DFT fft2, thành phần DC nằm góc bên trái ảnh 1.1.7 Phép biến đổi DCT Biến đổi DCT (Discrete Cosine Transform) biểu diễn hình ảnh dạng tổng cosine thành phần biên độ tần số khác ảnh Hầu hết thông tin ảnh tập trung vài hệ số biến đổi DCT, hệ số lại chứa thơng tin Phép biến đổi DCT thuận nghịch thực hàm dtc2 idtc2 Cú pháp: A=dtc2(B, M, N) B=idtc2(A,M,N) 1.1.8 Biến đổi Radon Phép biến đổi Radon biểu diễn ảnh dạng hình chiếu dọc theo hướng xác định Hình chiếu hàm biến f(x,y) tập hợp tích phân đường Hàm radon tính tích phân đường từ nhiều điểm nguồn dọc theo đường dẫn song song, gọi tia chiếu, theo hướng xác định Các tia chiếu nằm cách pixel Để biểu diễn tồn ảnh hàm radon lấy nhiều hình chiếu song song ảnh từ góc quay khác cách xoay điểm nguồn quanh tâm ảnh Trong Matlab phép biến đổi Radon tính hàm Radon có cú pháp sau: [R,Xp] = radon(I,theta) Mô Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học : Trang 13/19 1.9 Các hàm xử lý ảnh • 1.1.9 Đọc ghi liệu ảnh Imwrite: lưu ảnh biểu diễn ma trận có matlab thành tệp ảnh dạng biết Cú pháp : imwrite(A,filename,fmt) • Imread đọc file ảnh lưu lại dạng ma trận biểu diễn ảnh Matlab Cú pháp : A=imread(filename,fmt) • Imfinfo dùng để xem thơng tin file ảnh có sẵn: Cú pháp: imfinfo(filename,fmt) • 1.1.10 Chuyển đổi kiểu ảnh Hàm dither: chuyển đổi ảnh nhị phân từ ảnh trắng đen I tạo ảnh index từ ảnh RGB ma trận màu map phương pháp dithering Cú pháp: Dither : dither(RGB,map) dither(I) • Hàm gray2ind: chuyển ảnh nhị phân BW ảnh intensity I thành ảnh index thông qua ma trận tuyến tính gray(n) Cú pháp: Gray2ind : [X,Map] = gray2ind(I,N) [X,Map] = gray2ind(BW,N) • Hàm grayslice: chuyển ảnh trắng đen I thành ảnh index X lấy ngưỡng giá trị ngưỡng xác định vecto v n Cú pháp: Grayslice : x=grayslice(I,N) x=grayslice(I,V) Mơ Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học Trang 14/19 • Hàm im2bw: chuyển ảnh trắng đen, ảnh index ảnh RGB thành ảnh nhị phân BW lấy ngưỡng level Cú pháp: Im2bw : bw=im2bw(I,level) bw=im2bw(x,map,level) bw=im2bw(rgb,level) • Hàm ind2gray: chuyển ảnh index X với ma trận màu map thành ảnh trắng đen i Cú pháp: Ind2gray : i=ind2gray(x,map) • Hàm ind2rgb: chuyển ảnh index x với ma trận màu map thành ảnh RGB Cú pháp: Ind2rgb : rgb=ind2rgb(x,map) • Hàm mat2gray: tạo ảnh trắng đen từ ma trận a Cú pháp: Mat2gray : i=mat2gray(a,[amin amax]) • Hàm rgbgray: chuyển ảnh GRB thành ảnh trắng đen i Rgb2gray : i=rgb2gray(rgb) 1.10 Hàm thị ảnh matlab Matlab cung cấp hai hàm hiển thị image imagesc Ngoài IPT có hai hàm hiển thị ảnh khác, imview imshow • Hàm image(X,Y,C) hiển thị hình ảnh biểu diễn ma trận C kích thước M x N lên trục tọa độ hành X, Y vector xác định vị trí pixel C(1,1) C(M,N) hệ trục hành • Hàm imagesc có chức tương tự hàm image, ngoại trừ việc liệu ảnh co giãn để sử dụng tồn đồ màu hành Mơ Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học Trang 15/19 • Hàm imview cho phép hiển thị hình ảnh cửa sổ riêng, Java, gọi image Viewer Image Viewer cung cấp cơng cụ dò tìm xác định giá trị pixel cách linh hoạt • Hàm imshow tạo đối tượng đồ họa thuộc loại image hiển thị ảnh figure Hàm imshow tự động thiết lập giá trị đối tượng image, axes figure để thể hình ảnh 1.11 Các phép biến đổi hình học 1.1.11 Phép nội suy ảnh Nội suy trình ước lượng giá trị điểm nằm hai pixel có giá trị biết IPT cung cấp phương pháp nội suy ảnh : nội suy theo lân cận gần nhất, nội suy song tuyến tính nội suy bicubic Cả phương pháp đểu thực theo nguyên tắc chung : để xác định giá trị pixel ảnh nội suy, ta tìm điểm ảnh ban đầu tương ứng với pixel đó, sau giá trị pixel ảnh tính trung bình có trọng số tập pixel lân cận điểm vừa xác định, trọng số pixel phụ thuộc vào khoảng cách tới điểm • Phương pháp lân cận gần (nearest neighbor) : pixel gán giá trị pixel chứa điểm tương ứng ảnh ban đầu • Phương pháp song tuyến tính (bilinear interpolation) : pixel gán trung bình có trọng số pixel lân cận kích thước 2x2 • Phương pháp bicubic, pixel gán trung bình có trọng số pixel lân cận kích thước 4x4 1.1.12 Thay đổi kích cỡ ảnh Hàm imresize cho phép người sử dụng thay đổi kích thước ảnh Ngồi kích thước ảnh mới, người sử dụng xác định phương pháp nội suy dùng loại lọc dùng để chống aliasing Cú pháp : b=imresize(a,n, method) :tạo ảnh gấp n lần ảnh a Mô Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học Trang 16/19 1.1.13 Phép quay ảnh Để thực phép quay ảnh, ta sử dụng hàm imrotate Ngồi hai thơng số ảnh gốc góc quay, người sử dụng xác định phương pháp nội suy dùng kích thước hình ảnh Cú pháp : b=imrotate(a,angle,method,Bbox) 1.1.14 Trích xuất ảnh Khi cần trích xuất phần ảnh gốc, ta dùng hàm imcrop • Xác định cụ thể vị trí phần ảnh cần trích xuất (dưới dạng hình chữ nhật) Cú pháp : x2=imcrop(x,map,rect) x2=imcrop(a,rect) • Sử dụng mouse để chọn phần ảnh cần trích xuất Ta khơng cần cung cấp thông số rect, thực hàm này, trỏ chuyển sang dạng chữ thập, người dùng kéo chuột để chọn phần ảnh cần trích xuất sau thả chuột CHƯƠNG MƠ PHỎNG CHƯƠNG TRÌNH BẰNG MATLAB Mơ Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học Trang 17/19 1.12 Lưu đồ giải thuật Bắt đầu Nhập hình ảnh Xử lý hình ảnh Lựa chọn hình dạng tròn vng Chữ nhật Tam giác Kết thúc Hình 4.1 : lưu đồ giải thuật 1.13 Nguyên lý nhận dạng hình học Sử dụng matlab để xác định hình dạng vật thể dựa việc xác định xác diện tích chu vi hình ảnh đem kết so sánh với cơng thức tính diện tích riêng biệt hình học từ rút kết so sánh để xuất hình kết phù hợp với xác định xác hình dạng vật 1.14 Thực hành mơ Mơ Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học Trang 18/19 1.1.15 Dùng matlab để mơ Hình 4.2: Mơ matlab 1.1.16 Lựa chọn file hình ảnh cần xác định Hình 4.3: chạy chương trình matlab Mơ Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học Trang 19/19 1.1.17 Kết sau mơ Hình 4.4: Kết mơ CHƯƠNG NHẬN XÉT 1.15 Nhận xét Chương trình mơ chạy ổn định phân biệt tốt hình dạng hình sai số tính tốn chương trình khơng q lớn hình ảnh hồn hảo khơng bị méo q nhiều nhận dạng cách dễ dàng 1.16 Hướng phát triển Từ nhận dạng hình dạng hình học phát triển lên nhận dạng biển số xe, khuôn mặt hay vân tay vào nhiều ứng dụng khác sống tùy thuộc vào mục đích sử dụng người mà phát triển theo hướng khác Mô Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học Trang 20/19 TÀI LIỆU THAM KHẢO Tiếng Việt: www.slideshare.net https://vi.wikipedia.org http://luanvan.net.vn Tiếng anh: http://www.academia.edu www.mathworks.com Mơ Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học Trang 21/19 PHỤ LỤC A Code nhận dạng hình học: [filename,filepath] = uigetfile('*.tif;*.tiff;*.jpg;*.jpeg;*.png;*.gif;*.bmp','Select Image file'); full_path = strcat(filepath,filename); % noi chuoi ki tu voi i=imread(full_path); imshow(i); a=rgb2gray(i); bw=edge(a,'canny'); imshow(bw); bw = bwareaopen(bw,30); se = strel('disk',2); bw = imclose(bw,se); bw = imfill(bw,'holes'); imshow(bw); L = bwlabel(bw); s = regionprops(L, 'centroid'); % xac dinh tam cua mien dt = regionprops(L, 'area'); dim = size(s) BW_filled = imfill(bw,'holes'); boundaries = bwboundaries(BW_filled); %xac dinh vung bien bao boc ben ngoai imshow(bw); figure;imshow(i); hold on; for k=1:dim(1) % kich thuoc hinh b= boundaries{k}; % bien anh dim = size(b) for i=1:dim(1) khoangcach{k}(1,i) = sqrt ( ( b(i,2) - s(k).Centroid(1) )^2 + ( b(i,1) s(k).Centroid(2) )^2 ) end a=max(khoangcach{k}); b=min(khoangcach{k}); c=dt(k).Area; dolech=a-b; Mô Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học Trang 22/19 vuong = c/(4*b^2) chunhat=c/(4*b*(a^2-b^2)^0.5); tamgiacdeu=(c*3^0.5)/((a+b)^2); elip =c/(a*b*pi); thoi= (c*( a^2 - b^2 )^0.5) / (2*a^2*b) if dolech < 10 text(s(k).Centroid(1) -20,s(k).Centroid(2),'hinh tron','color','blue') elseif (vuong < 1.05 ) & (vuong > 0.95 ) text(s(k).Centroid(1)-20,s(k).Centroid(2),'hinh vuong','color','blue') elseif (elip < 1.05 ) & (elip > 0.95 ) text(s(k).Centroid(1)-20,s(k).Centroid(2),'hinh elip','color','blue') elseif (thoi < 1.05 ) & (thoi > 0.95 ) text(s(k).Centroid(1)-20,s(k).Centroid(2),'hinh thoi','color','blue') elseif ((chunhat 0.95)) text(s(k).Centroid(1)-20,s(k).Centroid(2),'hinh chu nhat','color','blue') elseif (tamgiacdeu < 1.05 ) & (tamgiacdeu > 0.95 ) text(s(k).Centroid(1)-20,s(k).Centroid(2),'hinh tam giac','color','blue') end end Mô Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học ... việc 1.2 Yêu cầu đề tài Mơ hệ thống nhận dạng hình ảnh vật thể theo hình dạng hình học matlab Xác định hình dạng vật thể đem kết xác so với hình dạng hình học 1.3 Giải vấn đề - Tìm hiểu ảnh số sử... hiểu giải thuật nhận dạng hình học matlab - Viết code mơ chương trình matlab Mơ Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học Trang 7/19 CHƯƠNG TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ NHẬN DẠNG 1.4 Xử lý... Tiếng anh: http://www.academia.edu www.mathworks.com Mô Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học Trang 21/19 PHỤ LỤC A Code nhận dạng hình học: [filename,filepath] = uigetfile('*.tif;*.tiff;*.jpg;*.jpeg;*.png;*.gif;*.bmp','Select