Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 50 trang
THÔNG TIN TÀI LIỆU
Nội dung
ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ Mục lục Lời nói đầu……………………………………………………………….……….… Phần một : tổng quan về matlab…………………………………………………… Phần hai:LÝ THUYẾT XỬ LÝ ẢNH……………………………….…………… Chương 1:Giới thiệu hệ thống xử lý ảnh…………………………………………… Chương 2:Thu nhận ảnh……………………………………………………………. Chương 3:Phân tích ảnh……………………………………… ….……….… …. Chương 4:Nhận dạng ảnh …………………………………………………… … Phần ba:THỰC NGHIỆM………………………………………………………… Kết luận……………………………………………………………………………. Tài liệu tham khảo…………………………………………………………………. ĐỀ TÀI : NHẬN DẠNG SỐ Page 1 ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ LỜI NÓI ĐẦU Xử lý ảnh là một bộ môn rất khó.Bộ môn này mới được đưa vào giảng dạy trong các trường đại học.Và hiện tại Trong các trường đại học, cao đẳng, xử lý ảnh đã trở thành một môn học chuyên ngành của sinh viên các ngành Công nghệ Thông tin, Viễn thông. Xử lý ảnh bao gồm 3 bước chính : thu nhận ảnh , phân tích và xử lý ảnh ,hiện thị ảnh và nhận dạng Nội dung của bài tập lớn là : nhận dạng số qua camera kết nối với máy tính Nội dung được tóm tắt như sau Giới hạn của bài làm : - Đề tài hoạt động tương đối vì kỹ năng kết hợp giữa ngôn ngữ lập trình MatLab chúng em còn kém. - Do kiến thức của chúng em còn hạn chế nên việc thực hiện đề tài không tránh khỏi những sai xót trong tính toán và thi công. Vì vậy mong quý Thấy (Cô) chỉ dẫn và đóng góp ý kiến thêm. ĐỀ TÀI : NHẬN DẠNG SỐ Page 2 Ảnh đầu vào nguyên gốc Xử lý mức xám Trích lấy biên ảnh Nhận dạng ký tự Xử lý kết quả Thu thập ảnh ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ PHẦN I : TỔNG QUAN VỀ MATLAB 1.1 MATLAB là gì ? - MATLAB là ngôn ngữ lập trình cấp cao cho mục đích tính toán kỹ thuật, chương trình tích hợp tính toán, đồ hoạ và lập trình trong một môi trường dễ sử dụng nơi mà tất cả các vấn đề và lời giải được biểu diễn dưới dạng ghi chú toán học. - MATLAB là một hệ thống tương tác mà tất cả các phần tử dữ liệu cơ bản là một mảng không yêu cầu về mặt kích thước. Đây là một thuận lợi cho phép người sử dụng giải quyết các bài toán trong kỹ thuật đặc biệt là các công thức được xây dựng từ ma trận hay vector. 1.2 Hệ thống trong chương trình Matlab : - Development Environment: Tập hợp các công cụ và những tiện ích cho phép người dùng sử dụng các hàm và file Matlab. Phần lớn các công cụ này là giao tiếp người dùng bao gồm: Matlab Desktop và Command Window, Command History, Edit and Debugger, Workspace, trình duyệt hổ trợ sử dụng help. - The Matlab Mathematical Function Library: Đây là thư viện tập hợp các giải thuật tính toán được tập hợp trong các hàm từ cơ bản như: sum, sin, cosine, số phức cho đến các hàm phức tạp hơn như: nghịch đảo ma trận, trị riêng và vecto riêng của ma trận, biến đổi Fourier, - Lập trình trong môi trường Matlab: Lập trình với Matlab. Matlab là ngôn ngữ lập trình cấp cao thực thi theo các đoạn lệnh, các hàm, cấu trúc dữ ĐỀ TÀI : NHẬN DẠNG SỐ Page 3 ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ liệu, cho phép xây dựng các chương trình từ đơn giản, nhỏ cho đến các chương trình lớn, phức tạp. - Graphics: Matlab đã được mở rộng các khả năng cho việc thể hiện vector và ma trận dưới dạng đồ thị cũng như ký hiệu và in ấn chung. Matlab cung cấp các hàm nâng cao cho việc thể hiện dữ liệu hai, ba chiều, xử lý ảnh, chuyển động, đồ thị. - The Matlab Application Program Interface (API): Đây là thư viện cho phép người dùng tạo ra những chương trình bằng ngôn ngữ C hoặc Fortran tương tác với Matlab 1.3 Toolbox bắt ảnh và xử lí ảnh : 1.3.1 Nhiệm vụ của Toolbox: Image Acquisition Toolbox và Image processing là tật hợp các hàm của MATLAB có nhiệm vụ thu thập và xử lý hình ảnh số từ các thiết bị thu hình. Cụ thể là: - Thu nhập hình ảnh từ các thiết bị thu hình khác nhau, từ loại chuyên dùng đến loại rẻ tiền như Webcam ( giao tiếp qua cổng USB). - Trình chiếu (preview) luồng dữ liệu video từ thiết bị thu hình. - Trích hình ảnh từ luồng dữ liệu video. - Thiết lập các callback cho các sự kiện khác nhau. - Chuyển dữ liệu hình ảnh vào không gian workpace của Matlab để xử lý ảnh tiếp theo. 1.3.2 Các bước thu nhập cơ bản với Toolbox: Bước 1: - Gắn thiết bị thu hình vào máy. - Cài đặt driver (trình điều khiển) cho thiết bị, (được cho bởi nhà sản xuất). ĐỀ TÀI : NHẬN DẠNG SỐ Page 4 ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ - Xem thử hình ảnh video trên máy tính thông qua phần mềm của nhà sản xuất. - Khởi động matlab. Bước 2: - Ta cần chỉ định cho Matlab biết phần cứng nào dùng để lấy dữ liệu ( vì có thể có nhiều camera kết nối với PC). - Gõ lệnh imaqhwinfo để biết tên các loại thiết bị có thể dùng. - Chỉ định thiết bị: Tuỳ vào loại thiết bị (adaptor name), mỗi thiết bị cùng loại gắn vào PC được gắn đánh số ID, thiết bị thứ nhất có deviceID = 1, thiết bị thứ 2 có deviceID=2 - Để liệt kê xem loại winvideo có bao nhiêu thiết bị gắn vào máy tính, ta cũng dùng lệnh imaqhwinfor với đối số là winvideo: >> imaqhwinfo('winvideo') ans = AdaptorDllName: [1x81 char] AdaptorDllVersion: '3.3 (R2009a)' AdaptorName: 'winvideo' DeviceIDs: {[1]} DeviceInfo: [1x1 struct] - Có một thiết bị với DeviceID = 1. Ta có thể tìm hiểu thêm thông tin về thiết bị này. >> imaqhwinfo('winvideo',1) ans = DefaultFormat: 'RGB24_320x240' DeviceFileSupported: 0 ĐỀ TÀI : NHẬN DẠNG SỐ Page 5 ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ DeviceName: 'USB PC Camera (SN9C120)' DeviceID: 1 ObjectConstructor: 'videoinput('winvideo', 1)' SupportedFormats: {1x11 cell} Bước 3: Tạo đối tượng đại diện vào máy để làm đề tài này. - Để tạo luồng dữ liệu video, dùng lệnh videoinput. >> vid = videoinput('winvideo',1) Summary of Video Input Object Using 'USB PC Camera (SN9C120)'. Acquisition Source(s): input1 is available. Acquisition Parameters: 'input1' is the current selected source. 10 frames per trigger using the selected source. 'RGB24_320x240' video data to be logged upon START. Grabbing first of every 1 frame(s). Log data to 'memory' on trigger. Trigger Parameters: 1 'immediate' trigger(s) on START. Status: Waiting for START. 0 frames acquired since starting. 0 frames available for GETDATA. Bước 4: Hiện thị luồng video trên màng hình để xem thử. - Để xem trước luồng dữ liệu video, dùng lệnh preview. >> preview(vid) - Màn hình lúc này hiện lên cửa sổ video của đối tượng vid. - Nếu muốn kết thúc xem, dùng lệnh stoppreview. Hoặc để đóng cửa sổ preview, dùng lệnh closepreview(vid). Bước 5: Lấy một khung hình ảnh và lưu thành file đồ hoạ. ĐỀ TÀI : NHẬN DẠNG SỐ Page 6 ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ - Để lấy 1 ảnh vào xử lý ta sử dụng lệnh getsnapshot. - Để lưu ảnh thành file đồ hoạ ta dùng lệnh imwrite. Ví dụ: hinh = getsnapshot(vid); Imwrite(hinh,’d.jpg’); Bước 6: Làm sạch bộ nhớ Sau khi lấy dữ liệu hình ảnh ta có thể giải phóng bớt bộ nhớ bằng các lệnh sau: Delete(vid) Clear Close(gcf) 1.3.3. Toolbox xử lý ảnh ( Image Processing Toolbox): 1.3.3.1 Loại file dữ liệu của ảnh: - BMP ( Microsoft Windows Bitmap) - HDF (Hierarchical Data Format). - ICO ( Windows Icon Resources) - JPG, JPEG( Joint Photographic Experts Group). - PCX (Paintbrush). - PNG(Porable Network Graphics). - TIFF ( Tagged Image File Format). - XWD ( X Window Dump). 1.3.3.2 Các hàm đọc và lưu ảnh: - Axis: vẽ trục. - Image, imshow: hiển thị ảnh. - Imagese: sắp xếp dữ liệu và hiển thị như ảnh. - Imread: đọc ảnh từ file đồ họa. ĐỀ TÀI : NHẬN DẠNG SỐ Page 7 ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ - Immovie: tạo phim từ loạt nhiều khuôn hình. - Imwrite: cất ảnh vào file đồ họa. - Imfinfo: lấy thông tin ảnh từ file. - Ind2rgb: đổi ảnh có chỉ số sang ảnh RGB. MatLab coi ảnh như một ma trận hai chiều, mỗi phần tử là một phần tử hình pixel, do đó ta có thể xử lý hình như đối với ma trận, các phần tử ma trận có thể là double (64 bit), uint 16 (16 bit), uint 8 (8 bit). Ảnh index được biễu diễn bởi hai ma trận, một ma trận dữ liệu ảnh X và một ma trận màu (còn gọi là bản đồ màu). Ma trận có thể là kiểu uint8, uint16, double. Ma trận màu là một ma trận kích thước m x 3 gồm các thành phần thuộc kiểu double có giá trị trong khoảng [0 1]. Mỗi hàng của ma trận xác định thành phần red, green, blue của một màu trong tổng m màu được sử dụng trong ảnh. Gía 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. 1.4 Các Hàm Xử Lý Ảnh Cơ Bản Trong MatLab: Đôi khi ảnh bị mờ, không nét, bị nhiễu cần phải xử lý hoặc cần phải tách một chi tiết nào đó ra khỏi ảnh. Sau đây là một số hàm xử lý ảnh cho phép thực hiện các công việc này một cách dễ dàng. Chú ý là các hàm này chỉ thực hiện độc lập, còn muốn thực hiện thời gian thực cần phải dùng các ngôn ngữ lập trình như VB, Delphi, ta cũng có thể biến đổi các hàm xử lý ảnh .m ra hàm .c để giảm bớt thời gian lập trình, còn có một cách để xử lý thời gian thực là lập trình xử lý trong MATLAB, sau đó dùng Toolbox Com Builder biến chương trình thành COM Object rồi ghép vào các ngôn ngữ lập trình. ĐỀ TÀI : NHẬN DẠNG SỐ Page 8 ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ 1.4.1 Đổi màu và loại ảnh: - rgb2gray: đổi ảnh màu RGB ra ảnh cường độ xám. - gray2ind: đổi ảnh trắng đen (gray scale) thành ảnh indexed. - im2bw: đổi sang ảnh nhị phân. 1.4.2 Xử lý hình học: - Imcrop(A), imcrop(A.rec): xén ảnh A theo hình chữ nhật định bởi con chuột hay bởi thông số kèm theo trong hàm. - Imresize (A, m, mothod): thay đổi kích thước ảnh A theo tỉ lệ m và theo phương pháp nội suy method. - Imrotate (A, angle, method): quay ảnh A một góc angle và dùng phương pháp nội suy method. 1.4.3 Lọc nhiễu: Các hàm lọc nhiễu dùng để tăng chất lượng ảnh. Có các phương pháp lọc tuyến tính, lọc trung vị và lọc thích nghi. - Lọc tuyến tính: pixel ảnh biến đổi là tổ hợp tuyến tính các pixel lân cận của pixel gốc, các hàm thường dùng là conv2 (tích chập), concn, filter2. - Lọc trung vị: là loại lọc phi tuyến, gồm các hàm medfilt2, ordfilt2. - Lọc thích nghi: wiener2. 1.4.4 Phân tích ảnh: - Imhist (X, map): vẽ histogram của ảnh chỉ số X theo bảng màu. Cường độ ảnh từ 0 (đen) đến 255 (trắng) được chia thành n khoảng, histogram là đồ thị cho biết số pixel có cường độ nằm trong khoảng tương ứng. ĐỀ TÀI : NHẬN DẠNG SỐ Page 9 ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ - Histeq: cân bằng histogram ảnh cường độ để tăng độ tương phản. - Edge: tách biên ảnh dùng các thuật toán Sobel, Prewitt, Canny, Laplace, … - Qtdecomp, qtgeblk, qtsetblk: các lệnh dùng trong phân vùng ảnh quadtree. 1.4.5. Biến đổi ảnh - Fft2: biến đổi Fourier hai chiều nhanh - Ifft2: biến đổi ngược hai chiều nhanh - Dct2: biến đổi cosin rời rạc hai chiều - Idct2: biến đổi ngược cosin rời rạc 1.4.6 Đọc, ghi và hiển thị ảnh: - Imread: đọc ảnh - Imwrite: ghi ảnh. - Imshow: hiển thị ảnh - Imview: ảnh cho phép hiển thị ảnh trên các cửa sổ riêng. 1.4.7 Các hàm xử lý ma trận: - Cộng : X= A + B. - Trừ : X= A – B. - Nhân : X= A * B. - Chia : X = A/B lúc đó X*B = A : X = A\B lúc đó A*X = B : X=A./B chia các phần tử tương ứng với nhau ĐỀ TÀI : NHẬN DẠNG SỐ Page 10 [...]... Page 27 ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ trong đó, h(xi) là lược đồ mức xám xi Ngoài các biến đổi trên, người ta còn dùng một số biến đổi khác Trong các biến đổi này, mức xám đầu vào u, trước tiên được biến đổi phi tuyến bởi một trong các hàm sau: Sau các biến đổi đó, đầu ra được lượng hoá đều Ba phép biến đổi này được dùng trong lượng hóa ảnh Nói chung, các biến đổi lược đồ nhằm biến đổi lược đồ từ... là một ánh xạ từ giá trị ĐỀ TÀI : NHẬN DẠNG SỐ Page 24 ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ cường độ ánh sáng u(m, n) tại toạ độ (m, n) sang giá tri cường độ ánh sáng khác v(m, n) thông qua hàm f(.), tức là: v(m,n) = f(u(m,n)) (3-1) Nói một cách khác, toán tử điểm là toán tử không bộ nhớ, ở đó một mức xác u∈[0,N] được ánh xạ sang một mức xám v ∈ [ 0 , N ] : v = f ( u ) Ứng dụng chính của các toán tử điểm... gây ra biến dạng ảnh Các nguyên nhân biến dạng thương do: • Do camera, đầu thu ảnh chất lượng kém • Do môi trường, ánh sáng, hiện trường (scene), khí quyển, nhiễu xung • Do chất lượng Các nguồn biến dạng: Về mặt phương pháp, các nguồn tạo biến dạng có thể nhóm lại theo các xử lý như sau: ĐỀ TÀI : NHẬN DẠNG SỐ Page 32 ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ - Biến dạng điểm - Biến dạng không gian - Biến dạng... Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng trong khoa học và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản (Text), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người… ĐỀ TÀI : NHẬN DẠNG SỐ Page 19 ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ CHƯƠNG II : THU NHẬN ẢNH ĐỀ TÀI : NHẬN DẠNG SỐ Page 20 ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ 2.1 các thiết... Cần phải thu nhỏ dải độ sáng lại mà ta gọi là nén giải độ sáng Người ta dùng phép biến đổi logarit sau: v(m,n) = c log10(δ + u(m,n)) với c là hằng số tỉ lệ δ được coi là nhỏ so với u(m, n) Thường δ được chọn trong khoảng 3-10 3.1.6 Mô hình hóa và biến đổi lược đồ xám Về ý nghĩa của lược đồ xám và một số phép biến đổi lược đồ đã được trình bày trong tài liệu này Xét đến một số biến đổi hay dùng sau: ĐỀ... điểm là biến đổi độ tương phản của ảnh Ánh xạ f khác nhau tùy theo các ứng dụng Các dạng toán tử điểm được giới thiệu cụ thể như sau: 1) Tăng độ tương phản Các cấp độ α ,β ,γ xác định độ tương phản tương đối L là số mức xám cực đại 2) Tách nhiễu và phân ngưỡng Trong đó a = b = t gọi là phân ngưỡng 3) Biến đổi âm bản f (u) = L − u tạo âm bản 4) Cắt theo mức ĐỀ TÀI : NHẬN DẠNG SỐ Page 25 ĐỒ ÁN CẢM BIẾN... toán tử điểm: Xử lý điểm ảnh thực chất là biến đổi giá trị một điểm ảnh dựa vào giá trị của chính nó mà không hề dựa vào các điểm ảnh khác Có hai cách tiệm cận với phương pháp này Cách thứ nhất dùng một hàm biến đổi thích hợp với mục đích hoặc yêu cầu đặt ra để biến đổi giá trị mức xám của điểm ảnh sang một giá trị mức xám khác Cách thứ hai là dùng lược đồ mức xám (GrayHistogram) Về mặt toán học, toán... tiên phải kể đến Xử lý tín hiệu số là một môn học hết sức cơ bản cho xử lý tín hiệu chung, các khái niệm về tích chập, các biến đổi Fourier, biến đổi Laplace, các bộ lọc hữu hạn… Thứ hai, các công cụ toán như Đại số tuyến tính, Sác xuất, ĐỀ TÀI : NHẬN DẠNG SỐ Page 17 ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ thống kê Một số kiến thứ cần thiết như Trí tuệ nhân tao, Mạng nơ ron nhân tạo cũng được đề cập trong... 31 ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ b) Co ảnh Co ảnh là thao tác đối ngẫu của dãn ảnh nhằm loại bỏ điểm trắng bị vây bởi các điểm đen Trong kỹ thuật này, một cửa sổ (N+1)2 được rê đi khắp ảnh và thực hệin so sánh một pixel của ảnh với (N+1)2-1 điểm lân cận Việc so sánh ở đây thực hiện bởi phép hội logic 3.3 KHÔI PHỤC ẢNH Khái niệm: Khôi phục ảnh là phục hồi lại ảnh gốc so với ảnh ghi được đã bị biến. .. lại chia vùng đó ra làm 4 vùng nhỏ , cứ tiếp tục chia đến khi nào vùng đó đồng nhất chỉ gồm điểm đen hoặc điểm trắng thì thôi Quá trình đó tạo thành một cây chia theo 4 phần gọi là cây tứ diện CHƯƠNG III: PHÂN TÍCH ẢNH ĐỀ TÀI : NHẬN DẠNG SỐ Page 23 ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ Sơ đồ tổng quát 3.1 cải thiện ảnh xử dụng các toán tử điểm Nâng cao chất lượng là bước cần thiết trong xử lý ảnh nhằm hoàn . ảnh ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ PHẦN I : TỔNG QUAN VỀ MATLAB 1.1 MATLAB là gì ? - MATLAB là ngôn ngữ lập trình cấp cao cho mục đích tính toán kỹ thuật, chương trình tích hợp tính toán, đồ. về tích chập, các biến đổi Fourier, biến đổi Laplace, các bộ lọc hữu hạn… Thứ hai, các công cụ toán như Đại số tuyến tính, Sác xuất, ĐỀ TÀI : NHẬN DẠNG SỐ Page 17 ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ. Imread: đọc ảnh từ file đồ họa. ĐỀ TÀI : NHẬN DẠNG SỐ Page 7 ĐỒ ÁN CẢM BIẾN GVHD: NHỮ QUÝ THƠ - Immovie: tạo phim từ loạt nhiều khuôn hình. - Imwrite: cất ảnh vào file đồ họa. - Imfinfo: lấy thông