Phương pháp nhận dạng vật thể dựa trên thuật toán KTH - Law ECP - SDF

LỜI GIỚI THIỆU Trong những năm gần đây, xử lý hình ảnh (image processing) đã đạt được nhiều thành tựu và tiến bộ vượt bậc. Trong đó, nhận dạng và phân loại hình ảnh là một trong những lĩnh vực được theo đuổi một cách tích cực nhất. Ý tưởng cốt lõi của việc nhận dạng và phân loại hình ảnh là phân tích ảnh từ các dữ liệu thu được bởi các cảm biến hình ảnh như camera, Webcam, Nhờ các hệ thống xử lý ảnh, con người đã giảm được khối lượng công việc cũng như tăng sự chính xác trong việc đưa ra các quyết định liên quan đến xử lý hình ảnh trên nhiều lĩnh vực: quân sự và quốc phòng, các hệ thống kỹ nghệ hoá sinh, giải phẫu, các hệ thống giao thông thông minh, robotics, các hệ thống an ninh Nhận dạng và phân tích ảnh là một lĩnh vực liên ngành. Để thực hiện tốt công việc nhận dạng và phân tích này, đòi hỏi người nghiên cứu phải am hiểu nhiều lĩnh vực trong đó đặc biệt là các lĩnh vực liên quan tới cảm biến, các hệ thống xử lý ảnh, các giải thuật xử lý hình ảnh/tín hiệu, VLSI, phần cứng và phần mềm, các hệ thống tích hợp Mục đích của luận văn này là trình bầy một phương pháp nhận dạng vật thể dựa trên thuật toán kth-law ECP-SDF. Theo đó, tôi sẽ lần lượt trình bày về cơ sở lý thuyết của việc xử lý ảnh, nhận dạng vật thể,chương trình MATLAB với các hộp công cụ về khảo sát và xử lý ảnh(image acquisition toolbox và image processing toolbox), các giải thuật liên quan: FFT, Kth-law ECP-SDF và chương trình mô phỏng nhận dạng vật bất biến theo tỉ lệ. Bởi thời gian hạn hẹp cũng và nhiều hạn chế về kiến thức trong lĩnh vực hết sức mới mẻ này, tôi mong luận văn này sẽ trình bày một sự hiểu biết tương đối về xử lý ảnh nói chung và nhận dạng vật thể nói riêng. Đồng thời, hy vọng rằng trong một tương lai không xa sẽ có điều kiện ứng dụng những nghiên cứu đã đạt được trong luận văn này vào thực tế. Trong quá trình hoàn thành luận văn, tôi xin đặc biệt cảm ơn tới Ths Nguyễn thị Thanh Vân và PGS.TS Trần Quanh Vinh. Đồng thời tôi cũng xin cảm ơn tất cả các thầy cô giáo đã dạy tôi trong suốt 4 năm học qua tại trường Đại học Công Nghệ, Đại học Quốc gia Hà Nội. CHƯƠNG 1 MỞ ĐẦU 1.1. Bài toán nhận dạng vật thể và mục đích của luận văn Cho đến nay việc sử dụng các cảm biến hình ảnh như camera, Webcam, đã trở nên hết sức phổ biến trong đời thường cũng như trong lĩnh vực xử lý ảnh. Việc sử dụng chương trình MATLAB như một công cụ hữu ích trong xử lý hình ảnh cũng không còn xa lạ đối với nhiều người. Tuy vậy, nhận dạng vật thể vẫn là một lĩnh vực hết sức hấp dẫn và còn nhiều điều cần khám phá. Dù cho các công nghệ về nhận dạng và phân loại ảnh đã đạt được nhiều thành tựu đáng chú ý, lĩnh vực này vẫn phải đối mặt với nhiều vấn đề lớn về kỹ thuật cần giải quyết. Các vấn đề này thường bao gồm: sự ‘méo’ của vật thể do môi trường có nhiễu, góc quay từ cảm biến hình ảnh tới vật thể. Đôi khi sự thay đổi của vật thể cần nhận dạng không được biểu diễn một cách chính xác do các giải thuật được ứng dụng với tập dữ liệu hạn chế. Ngoài ra, còn nhiều vấn đề nảy sinh trong thực tế làm cho vật cần nhận dạng bị ‘méo’ trong quá trình xử lý hình ảnh. Trong các điều kiện thực tế khó khăn này, một hệ thống nhận dạng đáng tin cậy cần phải thực thi được chức năng nhận dạng và phân loại theo thời gian thực với tỉ lệ chuẩn xác cao. Do đó, việc cái tiến và phát triển các hệ thống xử lý ảnh cũng như các giải thuật là điều hết sức cần thiết đối với nhận dạng và phân loại vật thể cần sự chính xác và tốc độ cao. Đã có nhiều kỹ thuật được phát triển và ứng dụng trong lĩnh vực nhận dạng và phân loại vật thể: nhận dạng đường biên, nhận dạng qua mầu sắc vật thể, các thuật toán lọc nhiễu, tuy nhiên phần lớn các kỹ thuật này gặp khó khăn do vật thể bị thay đổi về hình dạng dưới các góc quay khác nhau của cảm biến hình ảnh. Luận văn này trình bày một kỹ thuật hiệu quả để giải quyết vấn đề đó. Đó là kỹ thuật nhận dạng vật thể dựa trên thuật toán kth-law ECP-SCF. Đồng thời, trong khuôn khổ luận văn này tôi cũng giới thiệu chương trình nhận dạng vật thể theo thời gian thực dùng thuật toán này được viết trên MATLAB. 1.2. Tổ chức luận văn Luận văn được trình bày thành chương. Chương 1, tác giả trình bày tóm tắt về vấn đề cần giải quyết cũng như tổ chức của luận văn. Chương 2 Tổng quan về xử lý ảnh – Nhận dạng vật thể, tác giả trình bày về các khái niệm thường gặp và các giai đoạn trong xử lý ảnh nói chung và nhận dạng vật thể nói riêng. Chương 3 Nhận dạng vật bằng xử lý ảnh, tác giả giới thiệu về các phương pháp chung nhất trong nhận dạng vật thể qua việc sử dụng các hàm: tương quan tuyến tính và tương quan phi tuyến. Đồng thời trình bày về lý thuyết của biến đổi Fourier rời rạc(DFT), biến đổi Fourier nhan (FFT) cũng như thuật toán của bộ lọc tổng hợp ECP-SDF bậc k. Chương 4 Xử lý ảnh với Matlab, tác giả giới thiệu về chương trình matlab và ứng dụng Matlab trong xử lý ảnh. Đồng thời tác giả đã giới thiệu về các hộp công cụ xử lý ảnh (image processing toolbox) và thu nhận ảnh (image acquisition toolbox) cùng các lệnh thường dùng. Chương 5 Thực nghiệm và kết quả, tác giả trình bày về các bộ lọc đơn, bộ lọc tổng hợp ECP-SDF bậc k và thí nghiệm áp dụng các bộ lọc trong nhận dạng vật. Đồng thời, trong chương này tác giả cũng đưa ra các ý kiến đánh giá về các khó khăn, giải pháp khắc phục và các ứng dụng có thể dùng tới bộ lọc tổng hợp ECP-SDF bậc k.

doc38 trang | Chia sẻ: banmai | Lượt xem: 2869 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Phương pháp nhận dạng vật thể dựa trên thuật toán KTH - Law ECP - SDF, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LỜI GIỚI THIỆU Trong những năm gần đây, xử lý hình ảnh (image processing) đã đạt được nhiều thành tựu và tiến bộ vượt bậc. Trong đó, nhận dạng và phân loại hình ảnh là một trong những lĩnh vực được theo đuổi một cách tích cực nhất. Ý tưởng cốt lõi của việc nhận dạng và phân loại hình ảnh là phân tích ảnh từ các dữ liệu thu được bởi các cảm biến hình ảnh như camera, Webcam,… Nhờ các hệ thống xử lý ảnh, con người đã giảm được khối lượng công việc cũng như tăng sự chính xác trong việc đưa ra các quyết định liên quan đến xử lý hình ảnh trên nhiều lĩnh vực: quân sự và quốc phòng, các hệ thống kỹ nghệ hoá sinh, giải phẫu, các hệ thống giao thông thông minh, robotics, các hệ thống an ninh… Nhận dạng và phân tích ảnh là một lĩnh vực liên ngành. Để thực hiện tốt công việc nhận dạng và phân tích này, đòi hỏi người nghiên cứu phải am hiểu nhiều lĩnh vực trong đó đặc biệt là các lĩnh vực liên quan tới cảm biến, các hệ thống xử lý ảnh, các giải thuật xử lý hình ảnh/tín hiệu, VLSI, phần cứng và phần mềm, các hệ thống tích hợp… Mục đích của luận văn này là trình bầy một phương pháp nhận dạng vật thể dựa trên thuật toán kth-law ECP-SDF. Theo đó, tôi sẽ lần lượt trình bày về cơ sở lý thuyết của việc xử lý ảnh, nhận dạng vật thể,chương trình MATLAB với các hộp công cụ về khảo sát và xử lý ảnh(image acquisition toolbox và image processing toolbox), các giải thuật liên quan: FFT, Kth-law ECP-SDF và chương trình mô phỏng nhận dạng vật bất biến theo tỉ lệ. Bởi thời gian hạn hẹp cũng và nhiều hạn chế về kiến thức trong lĩnh vực hết sức mới mẻ này, tôi mong luận văn này sẽ trình bày một sự hiểu biết tương đối về xử lý ảnh nói chung và nhận dạng vật thể nói riêng. Đồng thời, hy vọng rằng trong một tương lai không xa sẽ có điều kiện ứng dụng những nghiên cứu đã đạt được trong luận văn này vào thực tế. Trong quá trình hoàn thành luận văn, tôi xin đặc biệt cảm ơn tới Ths Nguyễn thị Thanh Vân và PGS.TS Trần Quanh Vinh. Đồng thời tôi cũng xin cảm ơn tất cả các thầy cô giáo đã dạy tôi trong suốt 4 năm học qua tại trường Đại học Công Nghệ, Đại học Quốc gia Hà Nội. CHƯƠNG 1 MỞ ĐẦU 1.1. Bài toán nhận dạng vật thể và mục đích của luận văn Cho đến nay việc sử dụng các cảm biến hình ảnh như camera, Webcam,… đã trở nên hết sức phổ biến trong đời thường cũng như trong lĩnh vực xử lý ảnh. Việc sử dụng chương trình MATLAB như một công cụ hữu ích trong xử lý hình ảnh cũng không còn xa lạ đối với nhiều người. Tuy vậy, nhận dạng vật thể vẫn là một lĩnh vực hết sức hấp dẫn và còn nhiều điều cần khám phá. Dù cho các công nghệ về nhận dạng và phân loại ảnh đã đạt được nhiều thành tựu đáng chú ý, lĩnh vực này vẫn phải đối mặt với nhiều vấn đề lớn về kỹ thuật cần giải quyết. Các vấn đề này thường bao gồm: sự ‘méo’ của vật thể do môi trường có nhiễu, góc quay từ cảm biến hình ảnh tới vật thể. Đôi khi sự thay đổi của vật thể cần nhận dạng không được biểu diễn một cách chính xác do các giải thuật được ứng dụng với tập dữ liệu hạn chế. Ngoài ra, còn nhiều vấn đề nảy sinh trong thực tế làm cho vật cần nhận dạng bị ‘méo’ trong quá trình xử lý hình ảnh. Trong các điều kiện thực tế khó khăn này, một hệ thống nhận dạng đáng tin cậy cần phải thực thi được chức năng nhận dạng và phân loại theo thời gian thực với tỉ lệ chuẩn xác cao. Do đó, việc cái tiến và phát triển các hệ thống xử lý ảnh cũng như các giải thuật là điều hết sức cần thiết đối với nhận dạng và phân loại vật thể cần sự chính xác và tốc độ cao. Đã có nhiều kỹ thuật được phát triển và ứng dụng trong lĩnh vực nhận dạng và phân loại vật thể: nhận dạng đường biên, nhận dạng qua mầu sắc vật thể, các thuật toán lọc nhiễu,… tuy nhiên phần lớn các kỹ thuật này gặp khó khăn do vật thể bị thay đổi về hình dạng dưới các góc quay khác nhau của cảm biến hình ảnh. Luận văn này trình bày một kỹ thuật hiệu quả để giải quyết vấn đề đó. Đó là kỹ thuật nhận dạng vật thể dựa trên thuật toán kth-law ECP-SCF. Đồng thời, trong khuôn khổ luận văn này tôi cũng giới thiệu chương trình nhận dạng vật thể theo thời gian thực dùng thuật toán này được viết trên MATLAB. 1.2. Tổ chức luận văn Luận văn được trình bày thành chương. Chương 1, tác giả trình bày tóm tắt về vấn đề cần giải quyết cũng như tổ chức của luận văn. Chương 2 Tổng quan về xử lý ảnh – Nhận dạng vật thể, tác giả trình bày về các khái niệm thường gặp và các giai đoạn trong xử lý ảnh nói chung và nhận dạng vật thể nói riêng. Chương 3 Nhận dạng vật bằng xử lý ảnh, tác giả giới thiệu về các phương pháp chung nhất trong nhận dạng vật thể qua việc sử dụng các hàm: tương quan tuyến tính và tương quan phi tuyến. Đồng thời trình bày về lý thuyết của biến đổi Fourier rời rạc(DFT), biến đổi Fourier nhan (FFT) cũng như thuật toán của bộ lọc tổng hợp ECP-SDF bậc k. Chương 4 Xử lý ảnh với Matlab, tác giả giới thiệu về chương trình matlab và ứng dụng Matlab trong xử lý ảnh. Đồng thời tác giả đã giới thiệu về các hộp công cụ xử lý ảnh (image processing toolbox) và thu nhận ảnh (image acquisition toolbox) cùng các lệnh thường dùng. Chương 5 Thực nghiệm và kết quả, tác giả trình bày về các bộ lọc đơn, bộ lọc tổng hợp ECP-SDF bậc k và thí nghiệm áp dụng các bộ lọc trong nhận dạng vật. Đồng thời, trong chương này tác giả cũng đưa ra các ý kiến đánh giá về các khó khăn, giải pháp khắc phục và các ứng dụng có thể dùng tới bộ lọc tổng hợp ECP-SDF bậc k. CHƯƠNG 2 TỔNG QUAN VỀ XỬ LÝ ẢNH - NHẬN DẠNG VẬT THỂ 2.1 Xử lý ảnh (số) và các khái niệm liên quan: 2.1.1 Xử lý ảnh (số) Xử lý ảnh (số) là một dạng của xử lý tín hiệu trong đó đầu vào là một hình ảnh (các bức ảnh, các khung hình) và đầu ra của quá trình xử lý ảnh có thể là một hình ảnh khác hoặc là một tập chứa các tính chất hoặc tham số liên quan tới hình ảnh đó. Phần lớn các kỹ thuật xử lý ảnh thì thường qui về việc xử lý hình ảnh như là một tín hiệu 2 chiều rồi sử dụng các kỹ thuật xử lý tín hiệu để xử lý nó. 2.1.2 Các khái nịêm liên quan: * Đ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ách giữ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 hai chiề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ên tục về kkhong gian và mức xám (hoặc màu) của ảnh số gần như ảnh thật. Mỗi phần tử trong ma trận được gọi là một phần tử ảnh. * Độ phân giải của ảnh Theo định nghĩa ở trên thi mỗi Pixel gồm một cặp toạ độ (x,y) và màu. Độ phân giải của ảnh chí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. VD: Màn hình máy tính có nhiều loại với độ phân giảI khác nhau: màn hình CGA (Color Graphic Adaptor) có độ phân giảI 320 x 200; màn hình VGA (Video Graphic Array) độ phân giảI 1280 x 800; Rõ ràng màn hình có độ phân giảI càng cao thì ta có cảm giác nó càng ‘mịn’ hơn so với loại có độ phân giảI thấp hơn. * 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=256 mứ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 ding 1 bit mô tả 21 mức khác nhau hay mỗi điểm ảnh nhị phân chi có 1 trong 2 giá trị hoặc là 1 hoặc là 2. ảnh màu: với mỗi điểm ảnh thì người ta dung 3 byte để mô tả mức mà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. * Biểu diễn ảnh Trong biểu diễn ảnh, người ta thường dùng các phần tử đặc trưng của ảnh là pixel. Do đó ta có thể biểu diễn một ảnh bởi một hàm 2 biến chứac thông tin. Các mô hình biểu diễn ảnh cho ta một mô tả lô gic hay định lượng các tính chất của hàm này. Chất lượng ảnh hoặc tính hiệu quả của các kỹ thuật xử lý phụ thuộc vào nhiều yếu tố như: độ phân giảI, nhiễu,... Để xử lý được ảnh, thì ảnh đó phảI được lấy mẫu (sample) rôI lượng tử hoá (quantization). Tức là đầu tiên chuyển từ ảnh tương tự sang ảnh số sau đó lưu giá trị của từng điểm ảnh với một số hữu hạn các mức xám. * Tăng cường và khôi phục ảnh Tăng cường ảnh (image enhancement): Khi ảnh được chuyển từ dạng này sang dạng khác bởi các quá trình như: truyền ảnh, quét ảnh,… thì ảnh nhận được thường có chất lượng thấp hơn so với ảnh ban đầu. Để giúp người ta có thể quan sát bức ảnh một cách chính xác hơn thì đòi hỏi phải có biện pháp để nâng cao chất lượng ảnh. Qúa trình này được gọi là tăng cường ảnh (image enhancement). Tăng cường ảnh giúp loại bỏ các suy giảm (degradation) gây ra bởi hệ thống xử lý hoặc kênh xử lý ảnh. Ngày nay, nhu cầu phát triển các hệ thống tự động cho việc xử lý hình ảnh ngày càng phát triển, kéo theo nó là sự cần thiết trong việc loại bỏ sai số cũng như các yếu tố nhiễu trong qúa trình xử lý. Do đó, tăng cường ảnh có thể được coi như một tập hợp các kỹ thuật để nâng cao chất lượng hình ảnh đồng thời tập hợp này cũng được ding để nâng cao độ chính xác trong quá trình tìm kiếm tự động và chuyển đổi dạng của bức ảnh. Các kỹ thuật tăng cường ảnh có thể kể đến: kỹ thuật tương phản (contrast), ánh xạ (mapping- gán mỗi mức xám từ ảnh gốc với một mức xám khác của ảnh đã được biên dịch),… Nói chung, các kỹ thuật tăng cường ảnh này đều nhằm mục đích đạt được kết qủa tốt nhất. Những kỹ thuật này thường dựa trên các 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): KhôI phục ảnh là quá trình loại bỏ các suy giảm (degradation) trong ảnh. Có nhiều nguyên nhân dẫn đến sự suy giảm. Khi camera không tập trung tiêu cự một cách hợp lý có thể dẫn đến bức ảnh bị ‘nhòe’. Khi chụp ảnh trong điều kiên thời tiết không thuận lợi: sương mù, qúa nắng nóng,… cũng có thể làm cho bức ảnh bị ‘nhòe’. Chụp ảnh các vật đang chuyển động cũng có thể gây ‘nhòe’ cho bức ảnh. Do có nhiều nguyên nhân gây nên suy giảm ảnh vì vậy, đối với mỗi loại nguyên nhân phảI có các cách phục hồi khác nhau. KhôI phục ảnh phần lớn được thực hiện bằng cách tìm ra các giảI thuật nhằm phục hồi lại các thông tin bị thất lạc trong quá trình xử lý ảnh. Chúng ta cũng cần phân biệt tăng cường ảnh với khôI phục ảnh: trong khi tăng cường ảnh nhằm tăng chất lượng của bức ảnh thì khôI phục ảnh nhằm đưa lại hình ảnh gốc của bức ảnh đã bị suy giảm. Các kỹ thuật tăng cường ảnh không áp dụng được với khôI phục ảnh. *. Biến đổi ảnh (image transformation) Thuật ngữ biến đổi ảnh thường dùng để nói tới các kỹ thuật dùng để biến đổi ảnh. Ở đây ảnh có thể được coi như một chuỗi các tín hiệu một chiều được biểu diễn bởi các hàm cơ sở. Có nhiều biến đổi được dùng như: biến đổi Fourier, cosin, sin, karhumen loeve,… Trong khuôn khổ luận văn này, ở phần sau tôI sẽ trình bày về các biến đổi Fourier: DFT, FFT, IDFT,… Đây là các biến đổi rất phổ dụng và đã được tôI thực tế áp dụng trong quá trình nghiên cứu. * Phân tích ảnh (image analysis) Sau các bước tiền xử lý ảnh, ảnh đã được tăng cường hay được khôi phục để làm nổi các đặc trưng chủ yếu. Lúc này nó bắt đầu được đưa vào quá trình phân tích. Quá trình phân tích ảnh gồm các công đoạn: trích chọn các đặc tính (feature extraction), phân đoạn ảnh (segmentation) thành các phần tử. Tuỳ theo mục đích của việc xử lý, các giai đoạn tiếp theo của quá trình phân tích ảnh có thể là nhận dạng ảnh (phân thành các lớp có miêu tả) hay là giảI thích và miêu tả ảnh. Hình 1. mô tả tóm lược các bước của quá trình phân tích ảnh: ảnh đầu ra của quá trình tiền XL Phân loại Phân đoạn Trích chọn đặc tính Hình vẽ trang 115 GiảI thích Hình 1. Các bước trong phân tích ảnh Phân tích ảnh thường dựa trên việc phân tích các đặc trưng của ảnh: mật độ xám, phân bố xác suất, phân bố không gian, biên ảnh,… 2.1.3.Nhận dạng và phân loại ảnh (recognition and classification of image partterns) * Nhận dạng ảnh (recognition of image partterns): Khi một bức ảnh đã được phân đoạn, nhiệm vụ tiếp theo là nhận dạng vật thể hoặc vùng đã được phân đoạn. Mỗi một vật thể là một thành phầ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 đối tượng được biểu diễn theo một mô hình nào đó và gán cho chúng vào mộ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ỗi tí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ể 2 hoặc 3 chiều là diện tích, thể tích, chu vi, bề mặt,… có thể đo được thông qua việc tính toán số ‘pixel’. Tương tự như vậy, bang của một vật được đặc trưng bởi đường biên của nó. Một số tham số để xác định bang của một vật là cac mô-ment bất biến (invariant moment), đường trung 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 trong nhậ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ể được miê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ất thích hợp được coi như là vấn đề cơ bản đầu tiên trong nhận dạng ảnh. * Phân loại thành phần ảnh (classification of image patterns) Phân loại là một công đoạn quan trọng trong quá trình nhận dạng vật. Đã có nhiều kỹ thuật phân loại được sử dụng trong việc nhận dạng thành phần. Một số kỹ thuật phân loại được biết như là những kỹ thuật lý thuyết chính xác. Với những kỹ thuật lý thuyết chính xác này, phân loại một thành phần chưa biết được quyết định dựa trên một số nguyên tắc hoặc đã xác định hoặc có ý nghĩa thống kê hoặc thậm chí đôI khi còn chưa được xác định rõ. Hình 1. thể hiện quá trính phân loại Vật cần Kết quả kiểm tra đã phân loại Vật mẫu Trích chọn đặc tính Trích chọn đặc tính Thu nhận thông tin Bộ phân loại Các kỹ thuật nhận dạng vật có mẫu chuẩn được chia làm 2 loại chính: 1.Phương pháp phân loại dựa trên việc thu nhận có giám sát(supervised learning). 2.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ại nhỏ 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ấy mẫ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án cá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 vector đặc tính đầu vào đạt được trong thời gian lấy mẫu của phân loại có giám sát được coi như các biến Guass. 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áp phân loại co giám sát không cần tham số. Một số kỹ thuật của loại này là: 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ành phần thuộc về một lớp cụ thể nào đó. CHƯƠNG 3 NHẬN DẠNG VẬT BẰNG XỬ LÝ ẢNH 3.1.Tương quan tuyến tính và tương quan phi tuyến Một đại lượng tương quan cho phép tính tóa mức độ giống nhau giữa 2 vật. Biểu thức toán học thể hiện sự tương quan giữa 2 hàm số s(x,y) và r(x,y) được định nghĩa bởi: (3.1.1) Trong biểu thức thỡ dấu hoa thị biểu diễn cho tớnh liờn hợp phức và Ä thể hiện tương quan chéo. Nếu như các hàm số s(x,y) và r(x,y) thể hiện một bức ảnh được phân tích và một mẫu tham chiếu thỡ tương quan giữa chúng chính là phét đo sự trùng khớp giữa các vật trong bức ảnh đối với mẫu tham chiếu. Theo đó, sự tương quan có thể được coi như một sự tính toán cấp độ giống nhau giữa chúng. Sự tương quan cũng có thể được biểu diễn bởi các biến đổi Fourier. Nếu như ký hiệu ^ biểu diễn cho biến đổi Fourier, hàm tương quan được biểu diễn bởi (3.1.1) có thể được biểu diễn bởi phương trình: (3.1.2) Trong đó TF-1 là biến đổi Fourier. Phương trình (3.1.2) cho thấy tỉ lệ tương quan giữa 2 hàm số có thể tính toán được bằng cách nhân các biến đổi fourier trong miền tần số và sau đó nghịch đỏa tích số này. Các hệ thể hiện sự tương quan được gọi là các hàm tương quan. Mỗi hàm tương quan cho phép xử lý theo thời gian thực một dữ lượng thông tin lớn. Các hàm tương quan được mô tả bởi phương trình(3.1.1) cú rất nhiều hạn chế khi cú thờm cỏc thành phần nhiễu nền. Thêm vào đó, các hàm tương quan này không còn chính xác khi bức ảnh bị ‘méo’ do tỉ lệ thay đổi, vật bị di chuyển hay điều kiện ánh sáng không ổn định. Áp dụng các kỹ thuật lọc trong không gian khác nhau trước khi thực hiện biến hổi Fourier trong miền tần số cho phép khắc phục những vấn đề này. Ví dụ: việc nhận dạng các vật bị ảnh hưởng bởi các biến đổi tỉ lệ cũng như góc quay là hoàn toàn có thể thực hiện. Một toán tử phi tuyến tác động đến các biến đổi Fourier của bức ánh và mẫu tham chiếu được gọi là một hàm tương quan phi tuyến. Hàm tương quan phi tuyến thường được sử dụng do các đặc tính ưu việt của nó so với hàm tương quan tuyến tính trên nhiều khía cạnh như khử nhiễu, khả năng phân biệt... Với các bộ xử lý bậc k, toán tử phi tuyến được áp dụng một cách đối xứng với bức ảnh cũng nhuew với biến đổi Fourier tham chiếu: , k£1 (4.1.3) Tham số k kiểm soát khả năng của hàm phi tuyến được áp dụng. VD: với k=1 tương ứng với một kỹ thuật lọc tuyến tính; với k=0 tương ứng với một kỹ thuật phi tuyến nhị phân; các giá trị khác của k cho phép thay đổi đặc tính của toán tử phi tuyến cũng như thay đổi tính chất của hàm tương quan (VD khả năng phân biệt hoặc bất biến đối với cường độ sang). Chỉ số k chính xác chỉ đạt được khi có một sự biểu diễn chính xác của hàm tương quan. Biến đổi Fourier Các kỹ thuật lọc phi tuyến Biến đổi Fourier Các kỹ thuật lọc phi tuyến Biến đổi Fourier ngược X Biểu đồ của một bộ xử lý tương quan phi tuyến 3.2 Các kỹ thuật lọc phi tuyến trong nhận dạng theo tỉ lệ Để xây dựng các hệ thống nhận dạng vật theo tỉ lệ thỡ có nhiều cách tiếp cận khỏc nhau. Điểm chung nhất giữa các hường tiếp cận là yêu cầu của việc lưu trữ thong tin dựa trên các điều kiện ‘méo’ khác nhau ảnh hưởng tới đối tượng. Cách thông dụng nhất để lưu giữ thông tin của sự ‘méo’ của đối tượng là thiết kế một bộ lọc đơn giản cho mỗi loại ‘méo’. Khi đó ta nhắc tới việc thiết lập một bộ lọc thông dải. Để xác định liệu đối tượng có bị méo hay không trong bức ảnh cần xử lý cần phải tương quan bức ảnh với nhiều bộ lọc với các dải thông khác nhau. Do đó, kỹ thuật này thường tốn nhiều thời gian. Các bộ lọc tổng hợp được đưa ra như là một đáp án cho vấn đề này. Thông tin trong bộ lọc tổng hợp thường chứa các cách nhỡn khỏc nhau đối với đối tượng ở trong các điều kiện khác nhau (điều kiện về góc nhỡn, tỉ lệ tương quan, độ chói…) Việc tổng hợp tất cả những thông tin này trong một bộ lọc tổng hợp được thực hiện trong một điều kiện với các giới hạn nhất định. Ưu điểm lớn nhất của việc dung các bộ lọc tổng hợp so với các bộ lọc thông dải là việc tiết kiệm được thời gian trong quá trỡnh xử lý. Chỉ với một phép tương quan đơn giản có thể so sánh bức ảnh của đối tượng với tất cả các bức ảnh trong tập ảnh tham chiếu. Mặc dù vậy, các bộ lọc tổng hợp thường thiếu tính chính xác và khả năng phân biệt trong nhận dạng. Số lượng bức ảnh mẫu được dung để tham chiếu trong bộ lọc tổng hợp được giới hạn nhằm đưa lại kết quả xử lý tốt nhất. Trong khuôn khổ luận văn này, các bộ lọc phi tuyến sử dụng mặt phẳng Fourier được sử dụng như các bộ lọc phi tuyến tổng hợp. Các kết quả thí nghiệm đó cho thấy cỏc bộ lọc phi tuyến trên mặt phẳng Fourier có thể thực thi tốt công việc ngay cả trong trường hợp có nhiều loại nhiễu khác nhau. Hàm ECP-SDF bậc k đó được sử dụng và phát triển trong nhiều ứng dụng thực tế và đó đưa lại những kết quả đáng tin cậy. Vì vậy, tụi xin phộp được sử dụng kết quả của thuật toán này đưa vào chương trình xử lý ảnh của mạch nhằm đưa ra một giải pháp cho công việc xử lý ảnh. 3.3 Thuật toán Kth_law ECP-SDF (equal-correlation-peak synthetic discriminant function) tạm dịch là hàm phân biệt và tổng hợp ảnh tuân theo tỉ lệ tương quan. Đặt s1(x,y),s2(x,y),...,sN(x,y) để biểu diễn cho N bức ảnh được chọn. Đặt P là tổng số pixel của mỗi bức ảnh. Thay cho một ma trận biểu diễn một bức ảnh ta sử dụng một khái niệm vector cú trật tự lexico*. Mỗi vector cột gồm p phần tử đại diện cho mỗi bức ảnh bằng cách tái sắp xếp các hàng trong ma trận. Các phần tử của vector được sắp xếp từ trái qua phải và từ trên xuống dưới. Tiếp đến chúng ta sẽ xây dựng một bức ảnh dữ liệu mẫu S có vector si là cột thứ i của nó. Khi đó S sẽ là một ma trận kích thước PxN. Khi đó, một bộ lọc tổng hợp có trật tự lexico h(x,y) được biểu diễn bởi công thức: (3.3.1) Trong đó: S+ là ma trận chuyển vị phức liờn hợp của S ()- biểu diễn sự nghịch đảo của ma trận Vector c chứa giá trị tương quan chéo mong muốn lớn nhất cho mỗi bức ảnh C* là vector phức liên hợp của c Trong miền tần số, (1) trở thành: (3.3.2) ký hiệu ^ biểu diễn cho biến đổi Fourier. Khi đó bộ lọc phi tuyến tổng hợp h đạt được bằng cách thay ở (3.3.2) bởi . Với là một ma trận phi tuyến đối với mỗi phần tử. Toán tử tuyến tính biểu diễn cho phần tử của hàng thứ r và cột thứ l của ma trận được định nghĩa bởi: |Srl|kexp(jfSrl) Đồng thời, bộ lọc bậc k tuân theo hàm ECP-SDF được xác định bởi công thức: (3.3.3) 3.4 BIẾN ĐỔI FOURIER RỜI RẠC Việc phân tích tín hiệu rời rạc theo thời gian trong miền tần số thường được thực hiện rất hiệu quả và tiện lợi bằng bộ vi xử lý tín hiệu số. Bộ vi xử lý này có thể là máy tính được sử dụng cho các mục đích chung hoặc là một thiết bị số chuyên dụng. Để thực hiện việc phân tích này, tín hiệu rời rạc theo thời gian {x(n} cần được chuyển từ miền thời gian sang miền tần số tương ứng thông qua biến đổi Fourier X (w) của dãy. Tuy vậy, do X (w) là hàm liên tục của biến tần số nên có thể thấy việc xử lý bằng máy tính của cách biểu diễn này là không thuận tiện. Để tránh nhược điểm nêu trên có thể đưa ra một cách biểu diễn khác của {x(n} – biểu diễn thông qua việc lấy mẫu phổ X (w) của tín hiệu. Như vậy, từ biểu diễn của tín hiệu trong miền tần số liên tục ta đã đưa đến biến đổi Fourier rời rạc (DFT). Biến đổi này là một công cụ rất hiệu quả trong việc phân tích các tín hiệu rời rạc theo thời gian. 3.4.1. Lấy mẫu trong miền tần số và biến đổi Fourier rời rạc Trước khi nghiên cứu DFT, ta hãy xét việc lấy mẫu của biến đổi Fourier đổi với dãy tín hiệu rời rạc theo thời gian không tuần hoàn và qua đây có thể thiết lập được quan hệ giữa biến đổi Fourier đã được lấy mẫu và DFT. * Lấy mẫu trong miền tần số và khôi phục lại tín hiệu rời rạc theo thời gian Chúng ta đã biết rằng mọi tín hiệu không tuần hoàn có năng lượng hữu hạn đều có phổ liên tục. Hãy xét một tín hiệu không tuần hoàn rời rạc theo thời gian x (n) với biến đổi Fourier: X (w) = (3.4.1) Giả sử tín hiệu X (w) được lấy mẫu tuần hoàn và khoảng cách giữa hai lần lấy mẫu liên tiếp là bằng nhau và bằng dw radian. Bởi vì X (w) là tuần hoàn với chu kỳ 2p do vậy chỉ cần xét đến các mẫu được lấy trong miền tần số cơ bản. Nếu chọn khoảng tần số cơ bản là 0 £ w £ 2p và số lượng mẫu được lấy trong khoảng này là N thì khoảng cách giữa các lần lấy mẫu sẽ là dw = 2p/N – xem hình 4.1. Nếu đánh giá (3.4.1) tại w = 2pk / N, ta nhận được: , k = 0, 1, …, N-1 (3.4.2) và đây chính là n mẫu được lấy của X (w) Ta hãy chia tổng trong (3.4.2) thành một số lượng vô hạn các tổng, trong đó mỗi tổng có chứa N phần tử. Như vậy công thức (3.4.2) có thể được viết thành: Nếu chỉ số n của tổng bên trong được thay đổi thành n – lN và vị trí của hai tổng được thay đổi cho nhau ta sẽ nhận được kết quả sau: (3.4.3) với k = 0, 1, 2, …, N-1. Tín hiệu: (3.4.4) là tín hiệu nhận được do sự xếp chồng của vô tín hiệu x (n) đặt lệch nhau một chu kỳ là N. Rõ ràng rằng xp (n) là tín hiệu tuần hoàn với chu kỳ cơ bản là N và do vậy nó có thể được khai triển qua chuỗi Fourier bằng công thức sau: , n = 0, 1, …, N-1 (3.4.5) với các hệ số: , k = 0, 1, …, N-1 (3.4.6) Bằng cách so sánh (3.4.3) với (3.4.6) ta sẽ có: , k = 0, 1, …, N-1 (3.4.7) Từ đâu suy ra: , n = 0, 1, …, N-1 (3.4.8) Quan hệ được đưa ra bởi (3.4.8) chính là công thức cho phép khôi phục lại tín hiệu tuần hoàn xp (n) từ các mẫu của phổ X (w). Quan hệ này, tuy vậy vẫn không đảm bảo được rằng x (n) hoặc X (w) có thể được khôi phục từ các mẫu hay không. Để đảm bảo được điều này cần phải xem xét thêm quan hệ giữa x (n) và xp (n). Bởi vì theo công thức (3.4.4) xp (n) là sự mở rộng một cách tuần hoàn của x (n) do vậy x (n) có thể được khôi phục lại từ xp (n) nếu không có sự “trùm thời gian” giữa các thành phần của xp (n). Điều này đòi hỏi x (n) phải có độ dài hữu hạn và độ dài L phải nhỏ hơn chu kỳ N của xp (n), Trên hình 4.2 mô tả hai trường hợp của tín hiệu xp (n) ứng với các trường hợp N > L và N < L. Ở đây không làm mất tính tổng quát ta có thể xem x (n) là một dãy có độ dài hữu hạn với các giá trị khác không trong khoảng 0 £ n £ L-1. Có thể đưa ra nhận xét rằng khi N ³ L thì: x (n) = xp (n), 0 £ n £ N-1 vì vậy x (n) có thể được khôi phục từ xp (n) mà không có sự sai lệch. Mặt khác nếu N < L thì sẽ không có khả năng khôi phục x (n) từ xp (n) do có sự tùm tín hiệu trong miền thời gian. Từ kết quả thu được ở trên ta suy ra phổ của tín hiệu không tuần hoàn rời rạc theo thời gian không tuần hoàn với độ dài hữu hạn L có thể được khôi phục một cách chính xác thông qua các mẫu của nó tại các tần số wk = 2pk/N nếu N ³ L. Quá trình này được thực hiện trước hết bằng việc xác định xp (n), n = 0, 1, 2, …, N-1 thông qua công thức (3.4.8). Khi N ³ L thì x(n) được xác định thông qua xp(n): 0 £ n £ N-1 (3.4.9) với các giá trị khác của n và do vậy: , 0 £ n £ N-1 (4.1.10) Nếu sử dụng công thức (3.4.1) và thay thế x(n) bằng (3.4.10) ta nhận được: (4.1.11) Tổng của các phần tử nằm trong dấu ngoặc vuông của (4.1.11) biểu diễn công thức nội suy được dịch bởi 2pk/N theo tần số. Thật vậy, ta định nghĩa: (3.4.12) Thì (3.4.11) sẽ trở thành: (3.4.13) Như vậy, có thể thấy cũng giống như trường hợp tín hiệu liên tục theo thời gian, X(v) có thể được xác định thông qua các mẫu X(2pk/N) của nó thông qua công thức nội suy (3.4.12), với k = 0, 1, 2, … , N-1. Điểm khác biệt ở đây là ở chỗ P(v) không có dạng của (sinq)/q mà thay vào đó nó sẽ phụ thuộc vào tính chất tự nhiên của X(v). Độ lệch pha trong (3.4.12) phản ánh tính chất của tín hiệu x(n) – nhân quả và là dãy có độ dài hữu hạn N. Đồ thị sin(wN/2)/(Nsin(w/2) được thể hiện trên hình 4.3. với N = 5. Có thể thấy rằng hàm P(w) có đặc tính: (3.4.14) Và do vậy theo công thức nội suy (3.4.13) thì các giá trị của X(w) sẽ được xác định chính xác bằng các giá trị mẫu X(2pkn/N) với w = 2pk/N. Ở tại các tần số khác, công thức nội suy sẽ cho phép xác định X(w) thông qua tổ hợp tuyến tính có trọng số của các mẫu phổ. * Biến đổi Fourier rời rạc (DFT) Phần 4.1.1 đã xem xét việc lấy mẫu trong miền tần số của tín hiệu không tuần hoàn x(n) với năng lượng hữu hạn. Trong trường hợp tổng quát, các mẫu được lấy cách đều nhau theo tần số X(2pk/N), k = 0, 1, 2, … , N-1 sẽ không cho phép khôi phục tín hiệu gốc x(n) có độ dài vô hạn. Thay vào đó các mẫu này sẽ tương ứng với dãy tuần hoàn xp(n) với chu kỳ N. Ở đây xp(n) là tín hiệu xấp xỉ của x(n) và quan hệ của chúng được biểu diễn qua công thức: xp(n) = (3.4.15) Khi dãy x(n) có độ dài hữu hạn L £ N thì xp(n) đơn giản chỉ là sự lặp lại có chu kỳ của x(n) và trong một chu kỳ đơn thì xp(n) sẽ được xác định bởi: (3.4.16) Bởi vì x(n) = xp(n) trên một chu kỳ đơn (tín hiệu x(n) được đưa thêm N-L điểm mẫu không) do vậy tín hiệu gốc x(n) với độ dài hữu hạn sẽ có thể nhận được từ các mẫu tần số {X(2pk/N} thông qua công thức (3.4.8). Điều này chứng tỏ các mẫu tần số, X(2pk/N), k = 0, 1, 2, … , N-1 sẽ cho phép xác định tín hiệu với độ dài hữu hạn x(n) một cách duy nhất. Một điều quan trọng cần lưu ý là các giá trị không được đưa thêm vào sẽ không cung cấp thêm bất kỳ một thông tin nào về phổ X(w) của dãy x(n) và để có thể khôi phục lại X(w) có thể sử dụng công thức (3.4.13) với L mẫu được lấy cách đều nhau của X(w). Tuy vậy việc đưa thêm N-L không vào x(n) và tính N điểm DFT sẽ làm cho đồ thị của biến đổi Fourier trở nên tốt hơn. Nói tóm lại, dãy số x(n) với độ dài hữu hạn L (nghĩa là x(n) = 0 với n < 0 và n ³ L) có biến đổi Fourier: (3.4.17) Khi việc lấy mẫu của X(w) được thực hiện ở các tần số cách đều nhau wk = 2pk/N, k = 0, 1, 2, … , N-1 với N ³ L thì các mẫu nhận được sẽ là: Để cho thuận tiện thì trong công thức này chỉ số trên của tổng được tăng từ L - 1 lên N - 1 bởi vì x(n) = 0 khi n ³ L. Quan hệ (3.4.18) chính là công thức dùng để biến đổi dãy {x(n)} với độ dài L £ N thành dãy của các mẫu tần số {X(k)} với độ dài N. Bởi vì các mẫu tần số nhận được bằng cách đánh giá giá trị của biến đổi Fourier X(w) tại N tần số rời rạc cách đều nhau do vậy quan hệ (3.4.18) được gọi là biến đổi Fourier rời rạc (DFT) của x(n). Ngược lại quan hệ (3.4.18) sẽ cho phép khôi phục dãy x(n) từ các mẫu tần số. Biểu thức: được gọi là biến đổi ngược DFT (IDFT). Rõ ràng, khi x(n) có độ dài L < N thì IDFT với N điểm sẽ có x(n) = 0 với L £ n £ N – 1. Như vậy các công thức của DFT và IDFT sẽ là: DFT: (3.4.18) IDFT: (3.4.19) 3.4.2. Biến đổi Fourier nhanh FFT: Do vai trò quan trọng của DFT trong nhiều lĩnh vực khác nhau nên việc tính toán hiệu quả của DFT là một bài toán được rất nhiều nhà toán học, kỹ sư v.v… dành nhiều thời gian để nghiên cứu. Phần này sẽ trình bày một số phương pháp khác nhau để thực hiện việc tính toán DFT một cách hiệu quả hơn. Như ta đã biết, DFT của dãy x(n) với độ dài hữu hạn N được xác định thông qua công thức sau: (5.1.1) với: (5.1.2) Trong trường hợp tổng quát thì dữ liệu của dãy {x(n)}sẽ có giá trị phức. Phép biến đổi Fourier rời rạc ngược (IDFT) của X(k) là: (5.1.3) Do các biểu thức (5.1.1) và (5.1.3) chỉ khác nhau ở dấu của số mũ W và ở hệ số tỷ lệ 1/N nên mọi lý luận về cách tính của IDFT đều giống với cách tính DFT. Có thể thấy trong công thức tính DFT, đối với mỗi giá trị của k thì việc tính trực tiếp X(k) sẽ đòi hỏi N phép nhân số phức (4N phép nhân số thực) và N-1 phép cộng số phức (4N-2 phép cộng số thực). Như vậy để tính N giá trị của DFT thì cần phải sử dụng 4N2 phép nhân thực và N(4N-2) phép cộng thực hay N2 phép nhân phức và N2 - N phép cộng số phức. Việc tính toán DFT sẽ hiệu quả hơn nếu ta sử dụng một số tính chất quan trọng của hệ số pha WN. Các tính chất này bao gồm: Tính đối xứng: (5.1.4) Tính tuần hoàn: (5.1.5) Hầu hết các thuật toán tính nhanh Fourier đều khai thác các tính chất quan trọng này của hệ số pha. CHƯƠNG 4 XỬ LÝ ẢNH VỚI MATLAB 4.1 Giới thiệu về MATLAB MATLAB là ngôn ngữ lập trình bậc cao dùng cho kỹ thuật. Đồng thời nó là môI trường tương tác có thể thực hiện nhiều nhiệm vụ: phát triển giảI thuật, phân tích dữ liệu, tính toán các phép tính số học và hình ảnh hóa dữ liệu. So với các ngôn ngữ lập trình truyền thống như C, C++ hay Fortran thì MATLAB có nhiều ưu điểm hơn do được tích hợp các hỗ trợ rất mạnh. MATLAB được sử dụng trong nhiều lĩnh vực ứng dụng bao gồm: sử lý tín hiệu và hình ảnh, truyền thông, thiết kế điều khiển, kiểm tra và đo lường, phân tích và mô hình hóa các thông tin tài chính, tính toán trong hóa sinh… Ngoài ra, MATLAB còn được tích hợp các hộp công cụ (mỗi hộp gồm hệ thống các hàm có những chức năng đặc biệt của MATLAB) nhằm giảI quyết các lớp vấn đề cụ thể trong các lĩnh vực ứng dụng khác nhau. MATLAB cung cấp nhiều đặc tính tiện lợi đối với việc xử lý và chia sẻ công việc. Trong quá trình làm việc với MATLAB, các đoạn mã của nó có thể được tích hợp với các ngôn ngữ và ứng dụng khác. 4.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ợp MATAB với các ứng dụng và ngôn ngữ lập trình khác như: C,C++, Fortran, Java, Microsoft excel… 4.1.2 Phát triển giải thuật và ứng dụng MATLAB là một ngôn ngữ bậc cao được tích hợp các công cụ phát triển giú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ột cách nhanh chóng. Ngôn ngữ lập trình MATLAB: Ngôn ngữ lập trình MATLAB hỗ trợ các phép toán đối với ma trận và vec-tơ 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 độ nhanh hơn so với các ngôn ngữ lập trình truyền thống do MATLAB bỏ qua các cô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ếp của các vòng lặp ‘for’. Kết quả là, một dòng lệnh được viết trong 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ủa mộ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ết quả. % tạo một vector N bit N = 1024; bits = rand(N,1)>0.5; % chuyen sang ky tu Tx=1-2*bits; %them vao nhieu Gauss trang P=0.4 Nz=P*(randn(N,1)+i*randn(N,1)); Rx= Tx + Nz; %hien thi ket qua plot(Rx,'.'); axix([-2 2 -2 2]); axis square, grid; Hình 4.1 Trong khi đối với phần lớn các ngôn ngữ lập trình truyền thống phảI trảI qua giai đoạn dịch (compilation) và liên kết (linking) thì MATLAB cho phép người sử dụng có thể thực thi ngay các lệnh hoặc nhóm lệnh cùng lúc. Điều này làm cho tốc độ xử lý trên MATLAB nhanh hơn đáng kể so với trên các ngôn ngữ truyền thống. 4.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ạn như: 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ương tác cũng như các hàm điều khiển theo dòng cho việc tính toán trong phân tí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 4.1.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ậm chí 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ển thiết bị (Instrument Control Toolbox). 4.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ệu khoa học kỹ thuật đều được tích hợp trong MATLAB. Những đặc tính này bao 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ác công cụ tương tác tạo ảnh, khả năng xuất kết quả dưới các dạng file ảnh thông thường. VD: vẽ hàm y= sin(x) với -pi < x < pi Mã chương trình: >>x = -pi:.1:pi; >>y = sin(x); >> plot (x, y) Hình 4. đồ thị hàm y = sin(x) 4.1.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êng biệ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ả ra thường là dưới dạng hình ảnh hoặc báo cáo. MATLAB có hỗ trợ file hì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ôn ngữ lập trình khác như C, C++, Fortran hay Java với mã chương trình củ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ể. 4.2 Xử lý ảnh bằng MATLAB 4.2.1.Ảnh trong MATLAB Trong MATLAB, dữ liệu chủ yếu được lưu trữ theo cấu trúc mảng (tập có thứ tự gồm các phần tử số thực hoặc phức). Ảnh trong Matlab cũng được lưu trữ bởi các mảng phần tử với các giá trị lưu trữ có thể là mầu, cường độ… của ảnh. Hầu hết các ảnh được MATLAB lưu trữ dưới dạng các mảng 2 chiều (VD: ma trận). Trong các mảng 2 chiều này, mỗi phần tử tương ứng với một pixel và thường được biểu diễn bởi một điểm trên màn hình máy tính(VD: Một bức ảnh có 500 hàng và 700 cột gồm nhiều điểm mầu khác nhau được lưu trữ bởi một ma trận có kích thước 500x700). Một số bức ảnh, như ảnh mầu đòi hỏi phảI được lưu trữ bởi mảng ba chiều. Trong đó, mặt phẳng thứ nhất trong mảng ba chiều này biểu diễn cho cường độ đỏ (red) của phần tử, mặt phẳng thứ hai biểu diễn cho cường độ màu xanh là cây (green) và mặt phẳng còn lại biểu diễn cho cường độ màu xanh da trời (blue) của phần tử. Với việc lưu trữ các ảnh dưới dạng mảng, việc xử lý ảnh với dữ liệu được lưu bởi dạng ma trận nào đều được thực hiện rất thuận tiện. 4.2.2.Hộp công cụ xử lý ảnh (image processing toolbox): Matlab có thể xử lý cũng như lưu trữ các bức ảnh dưới nhiều định dạng khác nhau: BMP, HDF, JPEG, TIFF… Dù vậy tất cả các định dạng này đều được quy chuẩn về 4 dạng cơ bản: nhị phân (Binary), được gán chỉ số (Indexed), mức xám (Grayscale), RGB (RGB hay truecolor). Các định dạng ảnh này sẽ qui định cách mà Matlab biên dịch các phần tử của ma trận dữ liệu (VD: các giá trị cường độ phần tử). * Ảnh dạng mức xám (gray scale image): Ảnh loại này được biểu diễn bởi một ma trận mà mọi phần tử của nó đều biểu diễn một giá trị sáng/tối của điểm ảnh ở vị trí tương ứng. Có 2 cách để biểu diễn giá trị thể hiện mức độ ‘xám’ của một pixel: dạng double và dạng uint8. Dạng double gán cho mỗi pixel một giá trị động thuộc khoảng (0,1): giá trị 0 ứng với màu đen còn 1 ứng với màu trắng. Dạng uint8 gán cho mỗi pixel một giá trị từ 0 đến 255 thể hiện độ sáng (brightness): giá trị 0 tương ứng với màu đen còn 255 ứng với màu trắng. Mỗi bức ảnh lưu trữ dưới dạng uint8 chỉ chiếm 1/8 không gian nhớ so với lưu trữ dưới dạng double. Mặc dù vậy, đôI khi thuật toán hoặc các ứng dụng chỉ có thể giảI quyết với dạng double. * Ảnh kiểu nhị phân: Mỗi bức ảnh dạng này được lưu trữ bởi một ma trận trong đó mỗi phần tử của ma trận chỉ có thể có giá trị hoặc 0 (đen) hoặc 1 (trắng). * Ảnh được gán chỉ số: Đây là một cách thông dụng để biểu diễn các bức ảnh mầu. Một bức ảnh được gán chỉ số được lưu trữ bởi 2 ma trận. Ma trận thứ nhất có cùng kích cỡ với bức ảnh và chứa giá trị thứ nhất của mỗi pixel. Ma trận còn lại được gọi là ma trận màu (color map) và có kích cỡ có thể khác so với kích cỡ của bức ảnh. Các chỉ số ở ma trận thức nhất cho ta biết số nào sẽ được biểu diễn bởi ma trận màu. * Ảnh dạng RGB: Các ảnh RGB được Matlab lưu trữ bởi 3 ma trận chứa các kích cỡ ứng với định dạng của bức ảnh. Mỗi ma trận tương ứng với một trong các mầu: đẻ (Red), xanh lá cây (Green), xanh da trời (Blue). Đồng thời giá trị mỗi phần tử của ma trận sẽ thể hiện cường độ từng loại mầu tại mỗi pixel. * Các lệnh chuyển đổi trong Hộp công cụ xử lý ảnh: Lệnh dither() : chuyển các định dạng khác sang dạng nhị phân. Lệnh Gray2ind(): chuyển từ dạng Gray sang indexed. Lệnh ind2gray(): chuyển từ dạng indexed sang Gray. Lệnh ind2rgb(): chuyển từ dạng indexed sang RGB. Lệnh mat2gray(): chuyển một ma trận thông thường dạng gray bởi hàm tỉ lệ. Lệnh rgb2gray(): chuyển dạng RGB sang dạng Gray. Lệnh rgb2ind(): chuyển dạng RGB sang dạng Indexed. * Đọc file ảnh trong Matlat Matlab không xử lý trực tiếp bức ảnh mà làm việc thông qua việc chuyển đổi ảnh về dạng (các) ma trận chứa các thông số của nó. Thực chất việc xử lý ảnh trong Matlab chính là xử lý các thông số của ma trận. Các lệnh cơ bản nhất của xử lý ảnh trong Matlab chính là các lệnh đọc ghi. Lệnh imread() nhập một bức ảnh vào trong workspace (không gian làm việc) của Matlab. Lúc này xử lý bức ảnh tương đương với việc xử lý biên được gán cho nó. VD: image=imread(‘picture.jpg’); % gán ảnh có tên picture định dang jpg cho biến image, biến image được lưu trong workspace. Lệnh imwrite() chuyển đổi một biến đã được gán cho ảnh thành file ảnh và ghi nhớ file ảnh đó. VD: imwrite(image,’image.jpg’); % lưu biến image dưới định dạng file ảnh jpg vào thư mục làm việc hiện thời 4.2.3.Hộp công cụ thu nhận ảnh (image acquisition toolbox): Hộp công cụ thu nhân ảnh được dùng để thực hiện chức năng thu nhận ảnh qua các thiết bị được kết nối với máy tính. Sử dụng các hàm chức năng của hộp công cụ này có thể tạo ra một đối tượng thể hiện sự kết nối giữa Matlab và các thiết bị thu hình ảnh cụ thể. Sử dụng các tính chất của đối tượng giúp kiểm soát nhiều bước trong quá trình thu nhận ảnh như dung lượng dữ liệu video muốn ghi lại. Hộp công cụ sử dụng các thành phần được gọi là các bộ thích ứng dùng để liên kết với các thiết bị thông qua các trình điều khiển. Với hộp công cụ thu nhận hình ảnh, ta có thể nối trực tiếp phần cứng ở trong thanh công cụ và có thể thiết lập các tham số thu nhận đồng thời xem và yêu cầu dữ liệu ảnh. Ngoài ra, ta có thể tiếp cận dữ liệu của Matlab dưới một vài định dạng đồng thời tạo ra một file AVI. Matlab thông qua hộp công cụ thu nhận hình ảnh hỗ trợ kết nối với nhiều loại thiết bị thu nhận ảnh bao gồm: các thiết bị camera kỹ thuật số chuyên biệt dựa trên kết nối 1394 (DCAM), các thiết bị hỗ trợ kết nối USB (WEB camera, máy quay kỹ thuật số, cạc chuyển đổi TV…) MATLAB Image acquisition Toolbox M-file Functions Hardware driver Adaptor USB PCI IEEE 1394 USB source Frame grabber Firewire source Hình 4. Thành phần hộp công cụ thu nhận ảnh 4.2.4.Một số ví dụ về xử lý ảnh với Matlab: VD1:Đọc và hiển thị một bức ảnh >> I=imread('C:\Documents and Settings\Hoang Anh Nguyen The\My Documents\My Pictures\me\xe_dien1.jpg');%doc file anh tu dong dan >> imshow(I);%hien thi anh VD2: Chuyển một ảnh RGB sang Gray >> I_trans=rgb2gray(I);% chuyen tu dinh dang RGB sang Gray >> imshow(I_trans);%hien thi anh dinh dang Gray >>imwrite(I_trans,’xe_dien_trans.bmp’); %luu anh vao thu muc lam viec cua Workspace VD3: Bắt ảnh từ thiết bị và hiển thị theo thời gian thực function getsnapnimshow video=videoinput('winvideo',1); for i=1:100 set(video,'timeout',100); frame1=getsnapshot(video); hold on; imshow(frame1); end end Khi sử dụng đoạn mã này ta chỉ việc gọi tên hàm. >> getsnapnimshow; CHƯƠNG 5 THỰC NGHIỆM VÀ KẾT QUẢ 5.1 Nhắc lại bài toán nhận dạng đặt ra ở chương 1: Cho một tập ảnh mẫu dùng để so sánh và nhận dạng vật, xác định vị trí của mẫu cần nhận dạng trong một bức ảnh chứa mẫu đó. Viết chương trình trên Matlab sử dụng bộ lọc ECP-SDF bậc k để giải quyết bài toán. 5.2 Thuật toán: Trong quá trình xử lý và nhận dạng ảnh, ‘méo’ là nguyên nhân gây ra nhiều khó khăn. Trong việc phân tích các dạng ‘méo’, những thao tác thường được tiến hành là: chụp lại một số bưc ảnh trong điều kiện môi trường thực tế, lấy một mẫu ảnh làm ảnh tham chiếu dùng cho việc nhận dạng. Sau các thao tác này, những bức ảnh có chứa mẫu tham chiếu được chia làm 3 nhóm: nhóm thứ nhất gồm các bức ảnh chứa mẫu tham chiếu chuẩn, nhóm các bức ảnh chứa mẫu tham chiếu (nhưng không giống hệt và chưa được đưa và làm dữ liệu nhận dạng) và nhóm cuối cùng gồm các ảnh không hề chứa mẫu tham chiếu. Hình a,b,c thể hiện các mẫu vật đã được lưu, chưa được lưu và hoàn toàn sai khác với mẫu cần nhận dạng. Việc lọc phi tuyến trong xử lý ảnh được bắt đầu bằng việc gán mẫu tha chiếu vào trung tâm của một bức ảnh có nền đen hoàn toàn (các pixel của nền bức ảnh có giá trị 0). Hình . thể hiện một ví dụ về mẫu tham chiếu được dùng để lập nên các bộ lọc phi tuyến. Mỗi bức ảnh có một kích cỡ khác nhau. Sau đó chúng được chuẩn hóa về hệ xám và được chèn các giá trị 0 để trở thành các ảnh có cùng kích thước. Các bức ảnh chuẩn hóa được tiếp tục biến đổi Fuorier và biến đổi phi tuyến bậc k. Các kết quả tương quan phi tuyến đạt được bằng việc biến đổi Fourier ngược của tích giứa phổ phi tuyến đã được biến đổi của tín hiệu đầu vào với mẫu tham chiếu. Lúc này các mẫu tham chiếu được xem như các dấu hiệu tham chiếu riêng biệt để tổng hợp một bộ lọc phi tuyến đơn. Một bộ lọc phi tuyến đơn đạt được bằng cách biến đổi Fourier toán tử phi tuyến của phương trình (4.1.3) với các thông số lấy từ mẫu tham chiếu. Hình . dưới đây mô tả các bước tiến hành tổng hợp một bộ lọc phi tuyến tổng hợp. Bộ lọc phi tuyến tổng hợp này đạt được bằng cách áp dụng phương trình (4.1.8) với hệ số k tùy thuộc mức độ biến đổi theo tỉ lệ của vật. Trong chương trình, ta sử dụng k=0.1 bởi thực nghiệm đã chứng tỏ giá trị này của k cho kết quả tương quan theo độ nét, khả năng phân biệt và sự bất biến theo độ sáng là tốt nhất. Các tính toán phi tuyến Biến đổi Fourier Tổng hợp các bộ lọc Biến đổi Fourier ngược 5.3 Chương trình nhận dạng vật bất biến theo tỉ lệ: VD1: Nhận dạng chữ E bằng bộ lọc phi tuyến đơn Mẫu tham chiếu: Ảnh chứa đối tượng cần nhận dạng: Kết quả thu được với bộ lọc phi tuyến đơn: VD2: Nhận dạng với bộ lọc phi tuyến tổng hợp Mẫu tham chiếu: Ảnh chứa đối tượng cần nhận dạng: 5.4. Đánh giá kết quả thu được: Qua các ví dụ minh họa ở phần trước tôi đã trình bày kết quả đạt được của phương pháp nhận dạng vật với bộ lọc phi tuyến: đơn và tổng hợp. Với bộ lọc phi tuyến đơn mỗi lần chỉ cho phép nhập một mẫu tham chiếu và việc nhận dạng chỉ là nhận dạng riêng mẫu tham chiếu đó. Trong khi đó, bằng việc sử dụng bộ lọc ECP-SDF bặc k thay vì mỗi lần chỉ nhập được mọt mẫu tham chiếu ta có thể nhập được nhiều mẫu tham chiếu. Về mặt ý tưởng, điều này có vẻ là không khó để thực hiện tuy nhiên các bộ lọc phi tuyến tổng hợp thông thường thường phải đối mặt với vấn đề thời gian xử lý do khối lượng các phép tính toán thường là rất lớn. Với bộ lọc phi tuyến ECP-SDF bậc k, ta đã giải quyết được phần nào vấn đề về thời gian xử lý. Đồng thời bộ lọc cũng nêu lên một giải pháp khả thi đối với việc nhận dạng vật thể khi nó được đặt ở các vị trí khác nhau (với điều kiện có đủ mẫu tham chiếu). Đối với nhận dạng nhiều vật thể trong cùng một bức ảnh, khi có đủ mẫu tham chiếu ta cũng quy về giống như việc giải quyết vấn đề nhận dạng vật dược dặt ở các vị trí khác nhau. Thêm vào đó, bộ lọc ECP-SDF bậc k cũng giải quyết được khá hiệu quả vấn đề nhận dạng vật khi có các thành phần tác động dẫn tới hiện tượng ‘méo’ ở mẫu vật như: vật trong bức ảnh bị thay đổi về góc nhìn điều kiện phản xạ khong phù hợp…. Trong quá trình thực hiện các thí nghiệm và chạy chương trình, do nhiều yếu tố khách quan cũng như chủ quan tác động nên kết quả thu được chưa phải là lý tưởng. Các yếu tố này bao gồm: * Chất lượng của camera dùng để tiến hành thí nghiệm không phải là cao. Do đó khi ta thực hiện bắt ảnh thường bị nhiễu và chất lượng hình ảnh không tốt. * Điều kiện tiến hành thí nghiệm không lý tưởng: điều kiện về độ sáng, độ chói, góc quay… * Các bước tiền xử lý đang còn đơn giản do đó chưa hỗ trợ tốt cho quá trình xử lý ảnh. * Thuật toán giải quyết vấn đề chưa phải là lý tưởng (do không có đối sánh) dẫn đến việc xử lý chưa đạt được tối ưu. Các biện pháp khắc phục: * Dùng camera có chất lượng tốt hơn * Thực hiện các kỹ thuật tiền xử lý: tách đường bao, tăng độ sắc nét, lọc nhiễu bằng các loại bộ lọc có hiệu quả cao… * Tối ưu hóa giải thuật và chương trình 5.5 Các ứng dụng có thể áp dụng: Xử lý ảnh là một lĩnh vực còn mới mẻ và đang trong quá trình phát triên mạnh mẽ. Các ứng dụng của xử lý ảnh là hết sức thiết thực và cần thiết trong nhiều lĩnh vực. Áp dụng bộ lọc ECP-SDF bậc k có thể giúp ta giải quyết nhiều bài toán trên nhiều lĩnh vực như: * Nhận dạng các biển báo giao thông để thông báo lại cho những người tham gia điều khiển giao thông. * Nhận dạng sản phẩm trong dây chuyền sản xuất tự động * Nhận dạng biển số xe và ghi số tự động Môc lôc

Các file đính kèm theo tài liệu này:

  • docTHESIS.doc
Tài liệu liên quan