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) ....
Trang 1MÔ PHỎNG NHẬN DẠNG VẬT THỂ THEO HÌNH DẠNG HÌNH HỌC
Trang 3DANH MỤC CÁC HÌNH VẼ
Trang 5DANH MỤC CÁC TỪ VIẾT TẮT
DFT Discrete Fourier Transform
VSGA Super Video Graphics Array
DCT Discrete Cosine Transform
Trang 6CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI
1.1 Giới thiệu
Những năm gần đây thì xử lý ảnh đạt nhiều thành tựu và ngày cành cải tiến tốthơn Trong đó thì vấn đề nhận dạng và phân loại hình ảnh được ứng dụng ngày càngphổ biến hơn Nhờ các ứng dụng của hệ thống nhận dạng hình ảnh mà khối lượngcông việc của con người giảm bớt và tăng độ chính xác cao hơn trong công việc
1.2 Yêu cầu đề tài
Mô phỏng hệ thống nhận dạng hình ảnh của vật thể theo hình dạng hình học trênmatlab Xác định được hình dạng của vật thể và đem ra kết quả chính xác so vớihình dạng hình học cơ bản
1.3 Giải quyết vấn đề
- Tìm hiểu về ảnh số và sử lý ảnh
- Tìm hiểu về thư viện Digital Image Processing trên matlab
- Tìm hiểu các giải thuật nhận dạng hình học trên matlab
- Viết code và mô phỏng chương trình bằng matlab
Trang 7Các bước cơ bản trong xử lý ảnh:
Hình 2.1: các bước cơ bản của xử lý ảnh [1]
1.1.2 Các khái niệm
• Đ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ýảnh bằng máy tính thì ảnh cần được số hóa Số hóa ả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 (độ xám) của ảnh thật mỗi điểm xác định trên được gọi là một điểm ảnh(Picture Element) hay thường gọi là pixel Trong khuôn khổ ảnh 2 chiều thì mỗipixel tưng ứng với tọa độ x,y
• Độ phân giải của ảnh
Mô Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học
Trang 8Trong mỗi pixel ứng với cặp tọa độ x,y thì độ phân giải của ảnh là tích số với giátrị lớn nhất của x với giá trị lớn nhất của y Độ phân giải càng cao thì hình ảnh càng
rõ và sắc nét hơn so với độ phân giải thấp
Mức xám là kết quả mã hóa tương ứng với mỗi cường độ sáng của mỗi điểm ảnhvới một giá trị số thông qua quá trình lượng tử hóa
Thang giá trị mức xám thông thường: 16, 32, 64, 128, 256 Trong đó thì mức
256 ( từ 0 đến 255) dùng phổ biến cho máy tính dùng 8 bit để biểu diễn mức xám.Ảnh đen trắng: là ảnh với hai màu đen trắng với mức xám của các điểm ảnh cóthể khác nhau
Ảnh nhị phân: ảnh được biểu diễn bởi một ma trận hai chiều thuộc kiểu logical.Mỗi điểm ảnh chỉ có thể nhận một trong hai giá trị là 0 (đen) hoặc 1 (trắng)
Ảnh màu: với mỗi điểm ảnh thì cần dùng 3 byte để biểu diễn màu (gồm ba màu
cơ bản là đỏ, lục, lam vì vậy có 28*3=16777216 màu)
• Tăng cường và khôi phục ảnh
Trang 9Trang 9/19
Khi ảnh chuyển từ ảnh này sang ảnh khác bởi các quá trình truyền ảnh, quétảnh… thì ảnh sau khi truyền có chất lượng kém hơn so với ảnh gốc thì để chấtlượng ảnh nâng cao để có thể quan sát ảnh một cách trực quan và chi tiết hơn thìphải có biện pháp nâng cao chất lượng ảnh, quá trình này gọi là tăng cường ảnh.Tăng cường giúp loại bỏ các suy hao của 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ứcxám của ảnh gốc với mức xám khác của ảnh đã được biên dịch)…những kỹ thuậtnày đều dựa trên sự kết hợp giữa các phương pháp biến đổi trên miền không gian vàmiền tần số
Khôi phục ảnh (Image Restoration) là quá trình xử lý loại bỏ các suy giảm trongảnh Quá trình khôi phục ảnh nhằm đem lại hình ảnh gốc đã bị suy giảm trong quátrình truyền
• Biến đổi ảnh
Có nhiều kỹ thuật biến đổi ảnh được sử dụng: biến đổi fourier, cosin, sin, DCT,Radon…nhưng biến đổi thông dụng nhất vẫn là biến đổi fourier được áp dụng nhiềutrong thực tế
1.5 Nhận dạng ảnh và phân loại
Nhận dạng ảnh: là quá trình phân loại các đối tượng được biểu diễn theo một môhình nào đó và gán chúng vào một lớp dựa theo các quy luật và các mẫu chuẩn Sựnhận dạng ảnh hưởng dựa trên nhiều tính chất của vật và mỗi tính chất thì đều cómột kỹ thuật khác nhau để nhận dạng
Phân loại thành phần ảnh : đây là một quá trình quan trọng trong nhận dạng hìnhảnh Đã có nhiều kỹ thuật phân loại được sử dụng trong phân loại thành phần ảnh đểphân loại chính xác tùy theo nhu cầu phân loại các thành phần dựa trên nguyên tắc
đã xác định rõ hoặc có ý nghĩa thống kê
1.6 Các thành phần cơ bản của 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 10Hình 2.2: Các thành phần của hệ thống xử lý ảnh [1]
Một hệ thống xử lý ảnh được bao gồm: máy tính cá nhân kèm theo vi mạchchuyển đổi đồ họa VGA hoặc VSGA, đĩa chứa các hình ảnh để kiểm tra các thuậttoán và một màn hình có hộ trợ VGA và VSGA
CHƯƠNG 3 CÁC HÀM XỬ LÝ ẢNH CƠ BẢN TRONG MATLAB
1.7 Các kiểu ảnh trong matlab
1.1.3 Ả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ậnmàu (còn gọi là bản đồ màu) map Ma trận dữ liệu có thể thuộc kiểu uint 8, uint 16hoặc double Ma trận màu là một ma trận kích thước n x 3 gồm các thành phầnthuộc kiểu double trong khoảng giá trị [0 1] Mỗi hàng của ma trận được xác địnhcác thành phần đỏ, lục, lam của một màu trong tổng số n màu được sử dụng trong
Trang 11Trang 11/19
ả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
1.1.4 Ảnh grayscale
Ảnh grayscale hay còn gọi là ảnh trắng đen Mỗi ảnh được biểu diễn bởi một matrận hai chiều, trong đó giá trị của mỗi phần tử cho biết độ sáng (hay mức xám) củađiểm ảnh đó
1.1.5 Ảnh nhị phân
Ảnh được biểu diễn bởi một ma trận hai chiều thuộc kiểu logical Mỗi điểm ảnhchỉ có thể nhận một trong hai giá trị duy nhất là 0 (đen) hoặc 1 (trắng)
1.8 Một số phép biến đổi ảnh trong matlab
1.1.6 Biến đổi Fourier
Phép biến đổi Fourier dùng để biểu diễn hình ảnh dưới dạng tổng của các lũy thừa phức của các thành phần biên độ, tần số và pha khác nhau của ảnh trong
matlab
Nếu f(m,n) là một hàm của hai biến không gian rời rạc m và n, thì biến đổi Fourier hai chiều của f(m,n) được định nghĩa như sau:
Nếu f(m,n) biểu diễn độ sáng của ảnh X ở vị trí pixel (m, n) thì F(w1,w2) chính
là biến đổi Fourier của ảnh X
Do các dữ liệu trên máy tính được lưu trữ dưới dạng tín hiệu rời rạc, dữ liệu ảnh được tổ chức theo đơn vị pixel (điểm ảnh) nên phép biến đổi Fourier cũng được rời rạc nên hóa thành biến đổi Fourier rời rạc (DFT)
Với các ứng dụng trong xử lý ảnh, chúng ta chỉ quan tâm đến các hàm fft2 và
ifft2
Mô Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học
Trang 12Cú pháp : F=fft2(X,Mrows,Ncols)
F=ifft2(F,mrows,ncols)
fft: là phép biến đổi fourier thuận trong matlab
ifft: là phép biến đổi fourier ngược trên matlab
Sau khi thực hiện lệnh biến đổi DFT bằng fft2, thành phần DC sẽ nằm ở góc trênbên trái của ả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ưới dạng tổngcủa các cosine của các thành phần biên độ và tần số khác nhau của ảnh Hầu hết cácthông tin về ảnh chỉ tập trung trong một vài hệ số của biến đổi DCT, trong khi các
hệ số còn lại chứa rất ít thông tin
Phép biến đổi DCT thuận và nghịch được thực hiện bằng các hàm dtc2 và 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ưới dạng các hình chiếu của nó dọc theocác hướng xác định Hình chiếu của một hàm 2 biến f(x,y) là tập hợp của các tíchphân đường Hàm radon tính các tích phân đường từ nhiều điểm nguồn dọc theo cácđường dẫn song song, gọi là các tia chiếu, theo một hướng xác định nào đó Các
tia chiếu này nằm cách nhau 1 pixel Để biểu diễn toàn bộ ảnh thì hàm radon sẽ lấy
nhiều hình chiếu song song của ảnh từ các góc quay khác nhau bằng cách xoay cácđiểm nguồn quanh tâm của ảnh
Trong Matlab thì phép biến đổi Radon được tính bằng hàm Radon có cú pháp
[R,Xp] = radon(I,theta)
Trang 131.1.10 Chuyển đổi giữa các kiểu ảnh
• Hàm dither: chuyển đổi ảnh nhị phân từ ảnh trắng đen I hoặc tạo ảnh index
từ ảnh RGB và ma trận màu map bằng phương pháp dithering
Trang 14• Hàm im2bw: chuyển ảnh trắng đen, ảnh index hoặc ảnh RGB thành ảnh nhị phân BW bằng các lấy ngưỡng bởi level
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 hiện thị ảnh trong matlab
Matlab cung cấp hai hàm hiển thị cơ bản là image và imagesc Ngoài ra trongIPT cũng có hai hàm hiển thị ảnh khác, đó là imview và imshow
• Hàm image(X,Y,C) hiển thị hình ảnh biểu diễn bởi ma trận C kích thước M x
N lên trục tọa độ hiện hành X, Y là các vector xác định vị trí các pixel
C(1,1) và C(M,N) trong hệ trục hiện hành
• Hàm imagesc có chức năng tương tự như hàm image, ngoại trừ việc dữ liệu
ảnh sẽ được co giãn để sử dụng toàn bộ bản đồ màu hiện hành
Trang 15Trang 15/19
• Hàm imview cho phép hiển thị hình ảnh trên một cửa sổ riêng, nền Java, gọi
là image Viewer Image Viewer cung cấp các công cụ dò tìm và xác định các giá trị pixel một cách linh hoạt
• Hàm imshow cũng tạo một đối tượng đồ họa thuộc loại image và hiển thị ảnh
trên một figure Hàm imshow sẽ tự động thiết lập các giá trị của các đốitượng image, axes và figure để thể hiện 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 là quá trình ước lượng giá trị của một điểm nằm giữa hai pixel có giá trị
đã biết IPT cung cấp 3 phương pháp nội suy ảnh : nội suy theo các lân cận gầnnhất, nội suy song tuyến tính và nội suy bicubic Cả 3 phương pháp đểu thực hiệntheo nguyên tắc chung : để xác định giá trị của một pixel ảnh nội suy, ta tìm mộtđiểm trong ảnh ban đầu tương ứng với pixel đó, sau đó giá trị của pixel ở ảnh mới
sẽ được tính bằng trung bình có trọng số của một tập các pixel nào đó ở lân cận củađiểm vừa xác định, trong đó trọng số của các pixel phụ thuộc vào khoảng cách tớiđiểm này
• Phương pháp lân cận gần nhất (nearest neighbor) : pixel mới sẽ được gán giátrị của pixel chứa điểm tương ứng của nó trong ảnh ban đầu
• Phương pháp song tuyến tính (bilinear interpolation) : pixel mới sẽ được gán
là trung bình có trọng số của các pixel trong một lân cận kích thước 2x2
• Phương pháp bicubic, pixel mới sẽ được gán là trung bình có trọng số củacác pixel trong một 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 Ngoài kíchthướ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
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 161.1.13 Phép quay ảnh
Để thực hiện 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ápnội suy sẽ dùng và kích thước của hình ảnh mới
Cú pháp : b=imrotate(a,angle,method,Bbox)
1.1.14 Trích xuất ảnh
Khi cần trích xuất một phần ảnh gốc, ta dùng hàm imcrop
• Xác định cụ thể vị trí của phần ảnh cần trích xuất (dưới dạng hình chữ nhật)
CHƯƠNG 4 MÔ PHỎNG CHƯƠNG TRÌNH BẰNG MATLAB
Trang 17Trang 17/19
1.12 Lưu đồ giải thuật
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 của vật thể dựa trên việc xác định chínhxác diện tích và chu vi của hình ảnh đem kết quả so sánh với từng công thức tínhdiện tích riêng biệt của mỗi hình học từ đó rút ra kết quả so sánh để xuất ra mànhình kết quả phù hợp nhất với và xác định chính xác hình dạng của vật
Trang 19Trang 19/19
1.1.17 Kết quả sau mô phỏng
Hình 4.4: Kết quả mô phỏng được
CHƯƠNG 5 NHẬN XÉT
1.15 Nhận xét
Chương trình mô phỏng chạy khá ổn định có thể phân biệt khá tốt hình dạng củahình nếu sai số tính toán của chương trình không quá lớn các hình ảnh càng hoànhảo không bị méo quá nhiều thì có thể nhận dạng một 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 chúng ta có thể 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 nhau trong cuộc sống còntùy thuộc vào mục đích sử dụng của mỗi người mà phát triển theo những hướngkhác nhau
Mô Phỏng Nhận Dạng Vật Thể Theo Hình Dạng Hình Học
Trang 20TÀI LIỆU THAM KHẢO
Trang 21BW_filled = imfill(bw,'holes');
boundaries = bwboundaries(BW_filled);%xac dinh vung bien bao boc ben ngoaiimshow(bw);
figure;imshow(i);
hold on;
for k=1:dim(1) % kich thuoc hinh
b= boundaries{k}; % bien anh
Trang 22text(s(k).Centroid(1) -20,s(k).Centroid(2),'hinh tron','color','blue')
text(s(k).Centroid(1)-20,s(k).Centroid(2),'hinh vuong','color','blue')
text(s(k).Centroid(1)-20,s(k).Centroid(2),'hinh elip','color','blue')
text(s(k).Centroid(1)-20,s(k).Centroid(2),'hinh thoi','color','blue')
text(s(k).Centroid(1)-20,s(k).Centroid(2),'hinh chu nhat','color','blue')
text(s(k).Centroid(1)-20,s(k).Centroid(2),'hinh tam giac','color','blue') end
end