Xây dựng chƣơng trình Content based image retrieval

Một phần của tài liệu tìm hiểu phương pháp tra cứu ảnh theo nội dung (Trang 56 - 71)

3.3.1. Mô hình tổng quát

Hình 3.1: Sơ đồ khối tổng quát của chƣơng trình

Đọc ảnh mẫu Trích chọn đặc điểm Tạo Véc tơ đặc trƣng Đọc ảnh từ

cơ sở DL Tạo Véc tơ đặc trƣng

Tính khoảng cách Thêm vào danh sách ở vị trí thích hợp Trích chọn đặc điểm

Sơ đồ này thể hiện các khối chức năng chính của mỗi modul chƣơng trình:

Đọc ảnh: sử dụng các thƣ viện chuẩn của Windows để đọc ảnh mẫu hoặc ảnh trong cơ sở dữ liệu vào một cấu trúc DIB.

Trích chọn đặc điểm: tuỳ thuộc vào đặc điểm cần trích chọn là màu sắc hay hình dạng mà khối này sử dụng các thuật toán trích chọn tƣơng ứng.

Tạo véc tơ đặc trƣng: các đặc điểm đƣợc trích chọn ra dƣới dạng các véc tơ đặc trƣng nhiều chiều.

Tính khoảng cách: dựa vào một trong số những phƣơng pháp tính khoảng cách đã đƣợc trình bày ở chƣơng 2 để tính khoảng cách tƣơng ứng giữa các véc tơ đặc trƣng của ảnh mẫu và ảnh trong cơ sở dữ liệu.

Cuối cùng dựa theo khoảng cách đã tính đƣợc, chƣơng trình sẽ sắp xếp các kết quả theo chiều giảm dần của độ tƣơng tự giữa các véc tơ đặc trƣng.

3.3.2. Tra cứu theo hình dạng

Hình 3.2: Sơ đồ khối phần tra cứu ảnh theo hình dạng

 Ảnh mẫu đƣợc đọc vào cấu trúc DIB bằng hàm DisplayImage

 Sử dụng thuật toán dò biên gián tiếp để phân vùng ảnh.

 Thực hiện co/giãn (resample) để chuẩn hoá kích thƣớc (cả hai kích thƣớc đều là luỹ thừa của 2) trƣớc khi sao chép sang một ma trận số phức làm đầu vào của hàm biến đổi Fourier nhanh FFT.

Đọc ảnh mẫu Resample 256x256 FFT Tạo Véc tơ đặc trƣng Đọc ảnh từ cơ sở DL Resample 256x256 FFT Tạo Véc tơ đặc trƣng Tính k/c Euclide Thêm vào danh sách ở vị trí thích hợp Dò biên Dò biên

 Hàm FFT trả lại một ma trận số phức.

 Việc tạo véc tơ đặc trƣng của ảnh đƣợc thực hiện trên ma trận số phức này. Véc tơ đặc trƣng là một vector có 256 chiều.

 Đọc từng ảnh trong cơ sở dữ liệu, thực hiện các bƣớc giống nhƣ với ảnh mẫu để đƣợc vector đặc trƣng của ảnh vừa đọc.

 So sánh vector đặc trƣng của ảnh mẫu và ảnh đọc từ cơ sở dữ liệu bằng cách tính khoảng cách Euclide của 2 vector đặc trƣng bằng hàm

GetShapeDistance.

 Thêm ảnh vừa đọc vào danh sách ảnh tìm thấy, ảnh có sai khác so với ảnh mẫu nhỏ hơn đƣợc xếp lên trên.

3.3.2.1. Đọc ảnh

Ảnh đƣợc đọc vào cấu trúc DIB và hiển thị bằng thủ tục DisplayImage, đầu vào là tên và đƣờng dẫn đến file cần đọc, nếu đọc ảnh thành công thủ tục DisplayImage hiển thị ảnh lên khung ảnh đƣợc chỉ định.

Việc thao tác với cấu trúc DIB đƣợc thực hiện thông qua cấu trúc DIBSection đã đƣợc định nghĩa trong thƣ viện GDI32 của Windows [14],[18].

3.3.2.2. Dò biên đối tƣợng ảnh

Phần dò biên đối tƣợng ảnh sử dụng thuật toán dò biên gián tiếp bằng cách xác định chu tuyến của đối tƣợng ảnh nhƣ đƣợc trình bày ở chƣơng 2.

3.3.2.3. Resample

Chúng ta đã biết là để thực hiện biến đổi Fourier nhanh thì kích thƣớc của dãy số đầu vào phải là luỹ thừa của 2. Tuy nhiên các ảnh cần đọc lại có số điểm ảnh khác nhau và thƣờng là không thoả mãn yêu cầu này, vì vậy thủ tục Resample phải thực hiện một phép nội suy để thêm/bớt điểm ảnh để đƣợc một ảnh mới có số điểm ảnh thoả mãn yêu cầu mà không làm thay đổi chất lƣợng ảnh. Các điểm ảnh đƣợc thêm vào theo nguyên tắc nội suy.

Màu và mật độ của các điểm ảnh nội suy đƣợc tính toán dựa trên giá trị của các điểm ảnh có sẵn ở trong ảnh.

Có nhiều cách để xây dựng thủ tục Resample, trong đó có 3 phƣơng pháp thông dụng nhất:

Nearest Neighbor: điểm ảnh mới đƣợc sinh ra dựa vào thông tin của các điểm ảnh ở một phía của điểm ảnh mới, đây là phƣơng pháp resample nhanh nhất nhƣng độ chính xác thấp nhất (trong 3 phƣơng pháp).

Bilinear: lấy thông tin từ những điểm ảnh phía trên và bên cạnh điểm ảnh mới. Chất lƣợng ảnh mới tốt hơn so với phƣơng pháp Nearest Neighbor.

Bicubic: Là phƣơng pháp chính xác nhất vì thông tin về điểm ảnh mới đƣợc suy ra từ 8 điểm ảnh xung quanh.

Trong chƣơng trình này chúng tôi sử dụng phƣơng pháp đơn giản nhất Nearest Neighbor. Kích thƣớc mảng dữ liệu đầu ra là 256×256 phần tử.

3.3.2.4. Biến đổi Fourier nhanh

Hàm biến đổi FFT đƣợc cải tiến từ chƣơng trình của Randy Crane liệt kê trong cuốn "A Simplified Approach to Image Processing" [4].

Đầu vào là một ma trận số phức 2 chiều đƣợc sinh ra từ ma trận điểm ảnh đã đọc bằng cách gán phần ảo của tất cả các số phức bằng 0, phần thực đƣợc gán bằng giá trị của điểm ảnh.

Đầu ra là ma trận số phức hai chiều biểu diễn khai triển Fourier của ma trận đầu vào.

Trong hàm FFT 2 chiều (hàm twoD_FFT() ), từng hàng của ma trận đầu vào đƣợc biến đổi Fourier bằng hàm biến đổi 1chiều (hàm oneD_FFT() ), sau đó mới tính FFT 1 chiều cho các cột.

Hai hàm cơ sở để xây dựng oneD_FFT là Scramble() và Butterflies(). Trong đó Scramble() sử dụng để sắp xếp lại dãy đầu vào theo thứ tự đảo bit, còn hàm Butterflies() là thuật toán cơ sở, đƣợc gọi đệ qui để tính FFT.

3.2.2.5. Tạo véc tơ đặc trƣng hình dạng cho ảnh

Véc tơ đặc trƣng của ảnh là một vector 256 chiều, chứa 256 giá trị số double. double* m_Signature;

m_Signature = new double[256]; Hàm sinh chữ ký GenerateSignature():

Đầu vào: Ma trận vuông kích thƣớc 256x256 các số phức (sinh ra do hàm biến đổi FFT 2 chiều twoD_FFT()) biểu diễn ảnh trong miền tần số.

Đầu ra: vector chữ ký 256 chiều hay là một mảng 256 số double là signature của ảnh.

Thuật toán:

Tính modul (magnitude) của từng phần tử trong mảng hai chiều 256x256 phần tử theo công thức: 2 2 ) , Im( ) , Re( ) , (i j i j i j Magnitude  

trong đó: Magnitude(i,j) là modul của số phức tại vị trí hàng i, cột j của ma trận, Re(i,j) là phần thực của số phức tại vị trí hàng i và cột j, Im(i,j) là phần ảo của số phức tại vị trí hàng i, cột j.

Chia ảnh đầu vào thành những khối kích thƣớc 16x16. Khởi tạo mảng image_Signature[] gồm 256 phần tử Tính signature cho từng khối theo công thức:

        15 0 15 0 ) ( ), ( _ i j j iBlockCol i iBlockRow Mag Signature block

Trong đó: block_Signature là giá trị signature của khối, iBlockRow (0 - 255) là chỉ số hàng của phần tử đầu tiên trong khối, iBlockCol (0 - 255) là chỉ số cột của phần tử đầu tiên của khối, i là chỉ hàng của phần tử trong khối (i = 0,...,15) , j là chỉ số cột của phần tử trong khối (j = 0,...,15). Mag[i,j] là modul của số phức tại vị trí hàng i, cột j của ma trận đầu vào.

Lƣu chữ ký block_Signature đƣợc lƣu vào mảng image_Signature[];

Sau khi tính xong signature cho cả 256 khối, tiến hành chuẩn hóa mảng image_Signature[].

3.3.2.6. So sánh ảnh bằng cách tính khoảng cách Euclide

Khoảng cách giữa ảnh Query_Image và ảnh Found_Image đƣợc định nghĩa là khoảng cách Euclide giữa hai chữ ký query_Signature[] và found_Signature[] theo công thức:     255 0 2 ]) [ _ ] [ _ ( i i Signature query i Signature found diff

3.3.3. Tra cứu theo màu sắc

Hình 3.3: Sơ đồ khối phần tra cứu ảnh theo màu sắc

Sử dụng phƣơng pháp histogram màu nhƣ trình bày trong chƣơng 2.

Ảnh mẫu đƣợc đọc vào cấu trúc DIB và hiển thị bằng thủ tục DisplayImage Giảm số lƣợng bin màu xuống 256 bằng cách chuyển đổi màu thực của mỗi điểm ảnh thành một trong số những màu trong bảng màu chuẩn của Windows bằng hàm GetClosetIndex.

Tính toán số điểm ảnh của từng bin màu bằng hàm GenerateColorSignature, thu đƣợc một véc tơ 256 chiều chính là véc tơ đặc trƣng màu sắc của ảnh.

Làm các bƣớc tƣơng tự nhƣ trên với từng ảnh trong cơ sở dữ liệu.

Tính khoảng cách Euclide giữa véc tơ đặc trƣng của ảnh mẫu và từng ảnh trong cơ sở dữ liệu bằng hàm GetColorDistance sắp xếp vào trong danh sách với khoảng cách nhỏ nhất đƣợc xếp trƣớc tiên.

3.3.4. Sử dụng chƣơng trình Content based image retrieval

Khởi động chƣơng trình, chọn file ảnh mẫu, ảnh mẫu sẽ đƣợc hiển thị ô khung "Query Image"

Chọn phƣơng pháp so sánh: bằng hình dạng hay bằng màu sắc, nhập số đo khoảng cách tối đa (giá trị ngƣỡng) trong hộp Similarity Distance.

Đọc ảnh mẫu Tính histogram màu Đọc ảnh từ cơ sở DL Tính k/c Euclide Thêm vào danh sách ở vị trí thích hợp Chuyển đổi 256 màu Tính histogram màu Chuyển đổi 256 màu

Nhấn nút Find, chƣơng trình sẽ yêu cầu ngƣời dùng chọn thƣ mục chứa các file ảnh cần tìm. Chƣơng trình sau đó sẽ liệt kê tất cả các ảnh có khoảng cách Euclide nhỏ hơn giá trị ngƣỡng theo thứ tự tăng dần của khoảng cách Euclide, những ảnh đƣợc coi là giống hơn đƣợc xếp trƣớc. Khi chọn một ảnh trong danh sách ảnh tìm thấy (Found Image List), chƣơng trình sẽ hiển thị ảnh đó trong khung Results Image.

Hình 3.4 là một số kết quả chạy chƣơng trình để tìm kiếm các ảnh tƣơng tự với ảnh mẫu.

3.4. Khả năng mở rộng của chƣơng trình 3.4.1. Những hạn chế của chƣơng trình 3.4.1. Những hạn chế của chƣơng trình

Chƣơng trình đƣợc giới thiệu mới chỉ đƣa ra một thuật toán khá đơn giản để trích chọn đặc điểm (sinh véc tơ đặc trƣng) nên chắc chắn sẽ không thể cho kết quả so sánh tốt.

Các ảnh ban đầu chƣa đƣợc xử lý “sơ chế” nhƣ lọc nhiễu và yêu cầu ở một định dạng đơn giản nên phạm vi so sánh bị hạn chế.

Chƣơng trình thiết lập kích thƣớc cố định cho ảnh trƣớc khi xử lý là 256×256, kích thƣớc các khối là 16×16, số chiều của vector đặc trƣng là 256 làm hạn chế tính mềm dẻo của chƣơng trình.

3.4.2. Khả năng mở rộng

Kỹ thuật “tra cứu ảnh theo nội dung” có rất nhiều hƣớng nghiên cứu phát triển tạo ra những thuật toán rất hiệu quả làm cho máy tính “hiểu” đƣợc nội dung của ảnh. Chúng ta hoàn toàn có thể xây dựng một thuật toán tốt hơn để trích chọn đƣợc những đặc điểm đặc trƣng khác nhƣ màu sắc, kết cấu, hình dạng của đối tƣợng ảnh để phát triển cho bài toán nhận dạng vật thể.

Thuật toán resample trong chƣơng trình sử dụng phƣơng pháp đơn giản nhất để thực hiện nội suy, nếu sử dụng các thuật toán cho độ chính xác cao hơn thì chắc chắn sẽ cải thiện đáng kể chất lƣợng chƣơng trình.

Sử dụng các phƣơng pháp làm giảm số chiều của véc tơ đặc trƣng sẽ làm tăng đáng kể tốc độ tra cứu. Đối với các hệ thống máy tính có trang bị nhiều bộ vi xử lý hoặc có bộ xủ lý lõi kép thì có thể xây dựng các thuật toán cho phép phân phối các tác vụ cho nhiều vi xử lý đồng thời cũng là một giải pháp tốt để tăng tốc độ tra cứu.

Sử dụng các phƣơng pháp tính toán độ tƣơng tự phù hợp hơn cho từng loại đặc điểm để có đƣợc những kết quả so sánh gần với trực giác hơn.

KẾT LUẬN

Bản luận văn đã trình bày một vài kỹ thuật nền tảng của các hệ thống tra cứu ảnh theo nội dung bao gồm mô tả nội dung trực quan, đánh giá độ tƣơng tự và đánh giá hiệu năng hệ thống, trong đó nhấn mạnh vào các kỹ thuật mô tả các đặc điểm trực quan.

Các đặc điểm trực quan tổng quát đƣợc sử dụng nhiều nhất trong các hệ tra cứu ảnh theo nội dung là màu sắc, kết cấu, hình dạng.

Màu sắc thƣờng đƣợc biểu diễn thông quan histogram màu, sơ đồ tƣơng quan màu, véc tơ gắn kết màu và các moment màu trong một không gian màu nhất định.

Kết cấu có thể đƣợc biểu diễn thông qua đặc điểm Tamura, phân tích Wold, mô hình SAR, biến đổi Gabor và biến đổi dạng sóng.

Hình dạng có thể biểu diễn thông qua mô tả Fourier

Ngoài ra các đặc điểm trực quan của mỗi điểm ảnh lại có thể đƣợc sử dụng để phân tách mỗi ảnh thành các vùng đồng nhất hoặc các đối tƣợng ảnh. Các đặc điểm cục bộ của các vùng ảnh hoặc các đối tƣợng ảnh có thể dùng trong các hệ thống tra cứu ảnh theo vùng.

Có nhiều cách để đánh giá khoảng cách giữa các đặc điểm trực quan, một số cách đƣợc sử dụng phổ biến nhƣ khoảng cách Minkowski, khoảng cách toàn phƣơng, khoảng cách Mahalanobis, độ phân kỳ Kullback-Leibler và độ phân kỳ Jeffrey. Đến thời điểm này thì phƣơng pháp tính khoảng cách Minkowski và khoảng cách toàn phƣơng đƣợc sử dụng rộng rãi nhất trong các hệ thống tra cứu ảnh.

Mặc dù kỹ thuật tra cứu ảnh theo nội dung đƣa ra đƣợc một giải pháp thông minh và tự động để tìm kiếm ảnh một cách hiệu quả thì vấn đề chính của kỹ thuật này vẫn chỉ dựa trên những đặc điểm ở mức thấp. Nói chung mỗi đặc điểm mức thấp này chỉ có thể phản ánh đựơc một khía cạnh nào đó của ảnh. Không có một đặc

điểm nào có thể phản ánh đƣợc ngữ nghĩa của một bức ảnh, kể cả khi sử dụng kết hợp nhiều đặc điểm.

Ngoài ra sự đánh giá độ tƣơng tự giữa các đặc điểm trực quan lại chƣa liên quan đến đặc điểm sinh lý về thị giác của con ngƣời. Ngƣời sử dụng thƣờng quan tâm đến sự giống nhau về ngữ nghĩa nên kết quả truy vấn dựa trên các đặc điểm mức thấp thƣờng không thoả mãn đƣợc yêu cầu và nói chung là khó đoán trƣớc. Mặc dù phản hồi thích hợp là một cách để bù đắp vào những khoảng cách giữa tìm kiếm theo ngữ nghĩa và việc xử lý dữ liệu mức thấp nhƣng vấn đề này vẫn tồn tại và cần phải có những kỹ thuật khác mới đáp ứng đƣợc.

Những vấn đề đã đƣợc giải quyết trong luận văn:

Giới thiệu chi tiết phƣơng pháp tra cứu ảnh theo nội dung.

Sơ lƣợc về cách đánh giá hiệu năng của một hệ thống tra cứu ảnh.

Xây dựng đƣợc chƣơng trình thử nghiệm theo hai đặc điểm là: hình dạng và màu sắc.

Những vấn đề còn tồn tại:

Do thời gian tìm hiểu về đề tài chƣa đƣợc nhiều và những hạn chế về khả năng lập trình đồ hoạ nên một số mục tiêu đặt ra từ khi bắt tay nghiên cứu chƣa thực hiện đƣợc trong chƣơng trình chạy thử này, bao gồm:

Chƣa xây dựng đƣợc chức năng tra cứu ảnh theo kết cấu (Texture). Chƣa có chức năng tra cứu ảnh bằng cách kết hợp nhiều đặc điểm. Chƣa cài đặt các kỹ thuật đánh chỉ số hiệu quả.

Chƣa cài đặt các kỹ thuật tăng hiệu năng của hệ thống bằng cách giảm số chiều các véc tơ đặc trƣng.

Trong thời gian tới, tôi hy vọng sẽ có thể giải quyết đƣợc những vấn đề còn tồn tại trên để có thể xây dựng đƣợc một chƣơng trình thực sự hữu ích, đáp ứng đƣợc những yêu cầu của bài toán.

TÀI LIỆU THAM KHẢO

Tiếng Việt

1. Lƣơng Mạnh Bá, Nguyễn Thanh Thuỷ (2003), Nhập môn xử lý ảnh số, Nhà

xuất bản Khoa học Kỹ thuật.

2. Đỗ Năng Toàn (2002), The boundaries of the region and properties, Science

and Technology Journal, Vol.40, Special No, pp 41-48.

Tiếng Anh

3. Cheng Chang, Liu Wenyin, Hongjiang Zhang (2001), Image retrieval base on region shape similarity, Microsoft Research China,

www.eecs.berkeley.edu/~cchang/docs/Spie01.pdf.

4. Colin C. Venteres and Dr. Matthew Cooper, A Review of Content-Based Image Retrieval Systems, http://www.jtap.ac.uk/reports/htm/jtap-054.html

5. Dengsheng Zhang, Aylwin Wong, Maria Indrawan, Guojun Lu, Content-based

Image Retrieval Using Gabor Texture Features,

personal.gscit.monash.edu.au/~dengs/resource/papers/pcm00.pdf.

6. Eva M.van Rikxoort (2005), “Content-based Image Retrieval Utilizing Color,

Texture, and Shape”, Master’s thesis in AI Radbound University Nijmegen

The Netherlands.

7. Fuhui Long, Hongjiang Zhang, David Dagan Feng (2002), Fundamentals of Content-based Image Retrieval, in Multimedia Information Retrieval and

Management - Technological Fundamentals and Applications.

8. Randy Crane (1997), A simplied approach to Image Processing: clasical and modern technique in C, Prentice Hall, ISBN 0-13-226616-1.

9. J.Eakins, M.Graham (2004), “Content-based Image Retrieval”: A report to the JISC Technology Applications Programme, University of Northumbria at Newcastle.

10. Longin J. Latecki, R. Lamkaemper, D. Wolter (2005), “Optimal Partial Shape

Một phần của tài liệu tìm hiểu phương pháp tra cứu ảnh theo nội dung (Trang 56 - 71)

Tải bản đầy đủ (PDF)

(71 trang)