Thông thường truy vấn theo từng đặc trưng có thể cho ra kết quả khá nhiều, xuất hiện những tấm ảnh không cần thiết nên để nâng cao hiệu quả của việc truy vấn, làm cho việc truy vấn được chính xác hơn thì chúng ta nên kết hợp các đặc trưng lại với nhau. Giả sử khi ta muốn truy vấn “một ngừơi mặc áo màu vàng và dáng đứng thẳng thì ta có thể kết hợp 2 đặc trưng màu và lược đồ hệ số góc lại với nhau thì sẽ loại bỏ đi những tấm ảnh có người đó mà không có dáng đứng thẳng”.
Có 2 cách truy vấn kết hợp: truy vấn kết hợp các đặc trưng với nhau dùng toán tử BOOL; truy vấn kết hợp các đặc trưng với nhau dùng trọng số.
2.1.3.1 Truy vấn kết hợp các đặc trưng với nhau dùng toán tử BOOL :
Đây là truy vấn kết hợp các đặc trưng lại với nhau dùng toán tử BOOL. Ví dụ tìm những ảnh có người mặc áo màu vàng và dáng đứng thẳng dùng toán tử AND nghĩa là: tìm những tấm ảnh sao cho vừa thoả đặc trưng về màu sắc vừa thoả đặc trưng về hình dáng cần tìm.
Hình 2.1.3.1 minh họa 2 ảnh giống nhau về lược đồmàu và lược đồ hệ số góc
Nhận xét: Cách truy vấn này có thể cho ra kết quả rỗng, nghĩa là không có ảnh nào trong cơ sở dữ liệu thoả yêu cầu truy vấn. Nhưng nếu tồn tại ảnh thì phương pháp này cho ra kết quả chính xác hơn.
2.1.3.2 Truy vấn kết hợp các đặc trưng với nhau dùng trọng số :
Đây cũng là phương pháp truy vấn kết hợp các đặc trưng lại với nhau nhưng khác trên là ở đây ta dùng trọng số. Trọng số ở đây được hiểu là mức độ ưu tiên của các đặc trưng cần truy vấn. Ví dụ người dùng cần truy vấn những tấm ảnh có người mặc áo màu vàng và có dáng đứng thẳng thì người dùng có thể kết hợp 2 đặc trưng lược đồ màu (Histogram) và lược đồ hệ số góc (Edge Direction Histogram) lại với nhau. Nhưng ở đây khác với việc kết hợp dùng toán tử BOOL là người dùng muốn ưu tiên cho lược đồ màu hơn thì người dùng có thể chọn độ ưu tiên cho lược đồ màu là 70% còn lược đồ hệ số góc chỉ có 30% thôi. Khi đó việc truy vấn sẽ trả ra kết quả thoả mản yêu cầu truy vấn.
Công thức tính độ đo giữa 2 ảnh:
d ( I Q , I D ) = w1 d1 ( I Q , I D ) + w2 d 2 ( I Q , I D ) + ... + wn d n ( I Q , I D )
Trong đó:
- w1,w2,…,wn là trọng số các đặc trưng tương ứng. w1 + w2 + … + wn=1.
- d1,d2,…,dn: là khoảng cách giữa 2 ảnh về đặc trưng i nào đó i [1,..,n].
trọng số này luôn trả ra kết quả cho người dùng. Việc truy vấn này giúp cho chúng ta có thể sắp hạng tập kết quả dễ dàng, cũng như giúp cho người dùng có thể xem tập kết quả nhanh chóng và hiệu quả hơn.
Chương 3: CHƯƠNG TRÌNH THỬ NGHIỆM
3.1. BÀI TOÁN
Các vấn đề mà đề tài tập trung giải quyết:
Xây dựng hệ thống truy vấn ảnh theo các đặc trưng sau:
Lược đồ màu (Histogram);
Vector liên kết màu (Color Coherence Vector);
Lược đồ hệ số góc (Edge Direction Histogram);
Vector liên kết hệ số góc (Edge Direction Coherence Vector);
Tương quan màu (Correlogram);
Theo toán tử BOOL.
3.2. PHÂN TÍCH, THIẾT KẾ CHƯƠNG TRÌNH
Khi người dùng có nhu cầu truy vấn những tấm ảnh có sự giống nhau về đặc trưng nào đó trong tòan tấm ảnh so với ảnh truy vấn thì người dùng có thể chọn chức năng truy vấn dựa vào sự phân bố tòan cục. Đây cũng là nền tảng cho các truy vấn cấp cao hơn về sau.
3.2.1 Các đặc trưng sử dụng cho chương trình 3.2.1.1 Đặc trưng lược đồ màu 3.2.1.1 Đặc trưng lược đồ màu
Màu sắc là thông tin gần gũi, trực quan với con người nhất. Qua đặc trưng màu sắc, có thể lọc được rất nhiều lớp ảnh thông qua vị trí, không gian, định lượng của màu trong ảnh. Ví dụ hai ảnh có lược đồ màu giống nhau:
Hình 3.2.1.1 minh họa 2 ảnh có lược đồ màu giống nhau 89%
3.2.1.2 Đặc trưng vector liên kết màu (Color CoherenceVector)
Cũng như đặc trưng lược đồ màu, đặc trưng vector liên kết màu là thông tin quan trọng trong ảnh. Nó thể hiện rõ ràng mật độ phân bố màu trong ảnh. Với 2 ảnh có thể rất giống nhau về lược đồ màu nhưng do khác nhau về sự phân bố màu sắc, nên trong quá trình tìm kiếm theo lược đồ màu có thể cho ra nhiều ảnh
“dư thừa”, khác nhau về ngữ nghĩa. Nếu trong quá trình tìm kiếm trên ta sử dụng vector liên kết màu thì sẽ khắc phục được tình trạng trên. Ví dụ hai ảnh có lược đồ vector liên kết màu giống nhau:
Hình 3.2.1.2 minh họa 2 ảnh có vector liên kết màu giống nhau 75%
3.2.1.3 Đặc trưng tự tương quan màu (AutoCorrelogram)
Đây cũng là đặc trưng cấp cao của ảnh. Nó thể hiện tính phân bố cục bộ về màu. Cũng giống như đặc trưng vector liên kết màu, đặc trưng này giúp ta có thể phân biệt được những ảnh có thể rất giống nhau về lược đồ màu khác nhau về ngữ nghĩa.Ví dụ hai ảnh có đặc trưng correlogram giống nhau:
Hình 3.2.1.3:minh họa 2 ảnh có đặc trưng Correlogram giống nhau 75%
3.2.1.4 Đặc trưng lược đồ hệ số góc (Edge DirectionHistogram)
Đây là cũng đặc trưng quan trọng của ảnh. Nó thể hiện về hình dáng của ảnh. Đối với các ảnh muốn tìm kiếm theo hình dáng thì đặc trưng về màu sắc không thể giải quyết được. Vì vậy trong các hệ tìm kiếm dựa vào nội dung của ảnh không thể thiếu đặc trưng này.Ví dụ hai ảnh có đặc trưng
lược đồ hệ số góc giống nhau
Hình 3.2.1.4 minh họa 2 ảnh có lược đồ hệ số góc giống nhau 88%
3.2.1.5 Đặc trưng Vector liên kết hệ số góc (Edge Direction Coherence Vector)
Cũng như đặc trưng lược đồ hệ số góc, đặc trưng vector liên kết hệ số góc là đặc trưng cấp cao của ảnh. Nó thể hiện rõ ràng hơn về hình dáng của ảnh. Ngòai ra nó còn thể hiện mối liên kết chặt chẽ giữa các điểm biên cạnh (các điểm biên cạnh có cùng góc độ), cũng như là những điểm không phải là biên cạnh.
Ví dụ hai ảnh có lược đồ vector liên kết hệ số góc giống nhau:
3.2.1.6 Giải thuật và các bước trong modun truy vấn ảnh dựa vào lược đồ màu:
Processing CBIR Using Color Histogram
Input image. Quantize RGB. Compute color histogram. Images Database. Quantize RGB. Compute color histogram. Compare color histogram.
Show candidate images(Out put image).
CBIR on color algorithm Tổng Quát :
Bước 1 : Chọn ảnh đầu vào và ngưỡng cần tìm.
Bước 2 : Kiểm tra tính hợp lệ của ảnh đầu vào, Kiểm tra tính hợp lệ của giá trị ngưỡng cần tìm. Nếu một trong hai điều kiện trên không thỏa mãn, quay lại bước 1.
Input Image(IM) + threshold per(TP)
(Chọn ảnh đầu vào IM và ngưỡng cần tìm) Check - Jpg, Gif, Bmp. (Kiểm tra tính hợp lệ của ảnh.) - Kiểm tra tính hợp lệ của giá trị ngưỡng cần No Yes RGBHistogramdata RGBImage = IM.ProcessBitmap
(Lấy thông tin đặc trưng của ảnh theo lượt đồ màu - RGBImage)
Function string laychuoianhhople() {
Int tylegiong;
String TenAnhHopLe;
For(String Imagefile in FolderImagesData) {
TyLeGiong =
Math.Round(bitmapcp.GetSimilarity(RGBImage,
new Bitmap(Imagefile)), 3); If (tylegiong >= TP)
{
TenAnhHopLe = TenAnhHopLe + RGBImage + “;”; }
}
Return TenAnhHopLe; }
Kết quả trả về là các ảnh được so sánh theo tiêu chí đưa ra. Bước 1
Bước 2
Bước 3
Bước 3 : Lấy thông tin đặc trưng của ảnh theo lượt đồ màu.
Bước 4 : Chạy vòng lặp lần lượt duyệt các file ảnh có trong thư mục ảnh cần tìm FolderImagesData và lấy thông tin ảnh đó(quay về bước 3). So sánh giữa các thông tin ảnh đã duyệt với thông tin ảnh đầu vào IM theo ngưỡng quy định.
ProcessBitmap(Duyệt và lấy thông tin từ ảnh)
Input Image(IM)
Function RGBdata ProcessBitmap(Bitmap IM) {
BitmapData bmpData = IM.LockBits(new Rectangle(0, 0, a.Width, a.Height), ImageLockMode.ReadOnly,
PixelFormat.Format24bppRgb); IntPtr ptr = bmpData.Scan0; RGBdata data = new RGBdata(); unsafe
{
byte* p = (byte*)(void*)ptr;
int offset = bmpData.Stride - a.Width * 3; int width = a.Width * 3;
for (int y = 0; y < a.Height; ++y) {
for (int x = 0; x < width; ++x) { data.r += p[0]; data.g += p[1]; data.b += p[2]; ++p; } p += offset; } } a.UnlockBits(bmpData); return data; }
GetSimilarity(So sánh và tìm điểm giống nhau giữa hai ảnh)
Input Images(IM1, IM2) Ảnh đầu vào là hai ảnh muốn so sánh
Function double GetSimilarity(Bitmap IM1, Bitmap IM2) {
RGBdata dataA = ProcessBitmap(a); RGBdata dataB = ProcessBitmap(b); double result = 0;
int averageA = 0; int averageB = 0; int maxA = 0; int maxB = 0;
maxA = ((a.Width * 3) * a.Height); maxB = ((b.Width * 3) * b.Height);
switch (dataA.GetLargest()) //Find dominant color to compare {
case 1: {
averageA = Math.Abs(dataA.r / maxA); averageB = Math.Abs(dataB.r / maxB); result = (averageA - averageB) / 2; break;
} case 2: {
averageA = Math.Abs(dataA.g / maxA); averageB = Math.Abs(dataB.g / maxB); result = (averageA - averageB) / 2; break;
} case 3: {
averageA = Math.Abs(dataA.b / maxA); averageB = Math.Abs(dataB.b / maxB); result = (averageA - averageB) / 2; break; } } result = Math.Abs((result + 100) / 100); if (result > 1.0) { result -= 1.0; }
3.2.2. Chức năng truy vấn ảnh
Chương trình khi hoàn tất dự kiến gồm 06 modul truy vấn ảnh riêng biệt gồm các đặc trưng như sau:
- Truy vấn dựa vào lược đồ màu (Histogram);
- Truy vấn dựa vào lược đồ hệ số góc (Edge Direction Histogram); - Truy vấn dựa vào Vector liên kết màu (Color Coherence Vector); - Truy vấn dựa vào Vector liên kết hệ số góc(Edge Direcrion Coherence
Vector);
- Truy vấn dựa vào Correlogram;
- Truy vấn dựa vào kết hợp các đặc trưng này lại với nhau dùng tóan tử BOOL.
3.3. CHƯƠNG TRÌNH TRUY VẤN ẢNH CBIR_IMAGE 1.0
Chương trình được viết trên nền Microsoft visual studio 2008 or 2010 vì vậy để chạy chương trình cần phải setup Microsoft visual studio 2008 or 2010. Đồng thời định dạng ảnh mà chương trình có thể tìm được là (*.jpg; *.jpeg; *.gif; *.bmp) với độ phân giải của ảnh là 640 *400.
Khi sử dụng các hệ truy vấn ảnh dựa vào nội dung, con người luôn mong muốn có thể thực hiện được dễ dàng, tương đối đầy đủ nội dung mà họ muốn tìm kiếm. Một cách truyền thống là họ chọn mộ t mà u n ào đó ho ặ c một ảnh truy vấn phù hợp với yêu cầu, tuy nhiên họ có thể không có sẵn bức ảnh truy vấn mà chỉ có một số ý niệm nào đó về bức ảnh (ví dụ họ cần tìm các bức ảnh có màu vàng hay màu đỏ, hoặc nhiều khi có được bức ảnh truy vấn nhưng họ chỉ muốn tìm các ảnh giống một số đối tượng nào đó trong ảnh. Chính vì vậy mà chương trình không cần xây dựng database ( chỉ mục ) cho việc lưu trữ ảnh. Chỉ cần chúng ta chọn đường dẫn đến thư mục lưu trữ ảnh, sau đó chúng ta truy vấn ảnh theo các kỹ thuật truy vấn khác nhau. Ưu điểm của việc này là chúng ta không tốn công sức cho việc xây dựng database (chỉ mục cho ản), tuy nhiên khuyết điểm của chương trình đó là việc truy vấn ảnh tốn nhiều thời gian và độ chính xác trong truy vấn ảnh không cao.
Đầu tiên chúng ta chọn thiết lập đường dẫn đến nơi lưu trữ hình ảnh, sau đó chúng ta “ cập nhật “ đường dẫn cho chương trình.
Hình 3.3c Cập nhật đường dẫn thành công
Sau đây chúng ta sẽ tiến hành truy vấn ảnh . Chương trình gồm có 02 phần truy vấn ảnh chính.
3.3.1. Truy vấn ảnh dựa theo lược đồ màu : 3.3.1.1 Truy vấn theo màu sắc 3.3.1.1 Truy vấn theo màu sắc
Ta chọn cần tìm những ảnh có màu xanh dương (mã màu là 0.0.255) ảnh cần truy vấn ( tức là tìm ảnh theo màu sắc ) như sau :
Kết quả của việc truy vấn ảnh theo màu xanh dương là không có ảnh nào có màu xanh dương trong thư viện ảnh Imagetest2.
Hình 3.3.1.1b Kết quả truy vấn ảnh theo màu xanh dương
Ta chọn cần tìm những ảnh có màu màu vàng (mã màu là 255.255.0) ảnh cần truy vấn ( tức là tìm ảnh theo màu sắc ) như sau :
Ta nhận thấy kết quả trả về là có 04 tấm ảnh chứa màu vàng trong thư viện anh imagetest2.
3.3.1.2 Truy vấn theo lược đồ màu histogram
- Ta tiếp tục chuyển qua truy vấn ảnh theo lược đồ màu histogram và chọn ảnh đồng thời ta chọn ngưỡng từ 1 đến 100 để việc truy vấn ảnh cho chính xác hơn
Hình 3.3.1.2a Kết quả truy vấn ảnh theo lược đồ histogram với ngưởng 70%
Kết quả trả về với tấm ảnh cần tìm là mặt trời hoàng hôn được 52 tấn ảnh. + Tiếp theo ta tăng ngưỡng lên 90%
Hình 3.3.1.2b Kết quả truy vấn ảnh theo lược đồ histogram với ngưởng 90%
Kết quả trả về với tấm ảnh cần tìm là mặt trời hoàng hôn được 32 tấn ảnh. + Tiếp theo ta tăng ngưỡng lên 100%
Hình 3.3.1.2c Kết quả truy vấn ảnh theo lược đồ histogram với ngưởng 100%
PHẦN KẾT LUẬN
Với s ố lượng dữ liệu ảnh đa dạng và phong phú trên Internet, nhu cầu về truy vấn ảnh để phục vụ cho công việc chuyên môn là rất cần thiết. Tuy những nghiên cứu về truy vấn ảnh đã được quan tâm từ lâu, nhưng lĩnh vực này vẫn còn nhiều vấn đề cần phải giải quyết nhất là đối với nước ta trong thời kỳ phát triển. Chính vì vấn đề đó tôi đã tiến hành nghiên cứu một kỹ thuật truy vấn ảnh theo màu sắc và tiến hành áp dụng thử nghiệm trên một kỹ thuật truy vấn ảnh bằng mà sắc và theo lược đồ histogram.
Các kết quả chính đạt được
- Tìm hiểu các kỹ thuật đặc trưng của ảnh như: + Các đặc trưng về màu sắc:
1./ Đặc trưng lược đồ màu (histogram);
2./ Đặc trưng Vector liên kết màu (Color Coherence Vector); 3./ Đặc trưng tự tương quan màu (AutoCorrelogram);
+ Các đặc trưng về hình thái.
1./ Đặc trưng lược đồ hệ số góc (Edge Direction Histogram); 2./ Đặc trưng Vector liên kết hệ số góc (Edge Direction Coherence Vector).
Đồng thời đưa ra mô hình truy vấn ảnh áp dụng thử nghiệm theo đặc trưng lược đồ màu (histogram) đã đề xuất. Mô hình truy vấn này quan tâm đến trạng thái mà sắc của ảnh. Do đó, những nghiên cứu này là rất hữu ích và nền tảng cho việc các nghiên cứu truy vấn ảnh cấp cao thêm. Đồng thời cũng tạo điều kiện để cho người dùng Việt Nam áp dụng vào công việc chuyên môn.
Tiến hành thử nghiệm mô hình với hơn 100 ảnh trong thư viện ảnh để truy vấn. Kết quả của mô hình là khả quan đối với áp dụng thử nghiệm theo đặc trưng lược đồ màu (histogram). Độ chính xác của áp dụng thử nghiệm
theo đặc trưng lược đồ màu (histogram) cao. Từ những kết quả ban đầu đó cho thấy tính đúng đắn của mô hình.
Một số vấn đề cần tiếp tục giải quyết
Tuy mô hình đã bước đầu đạt được một số kết quả khả quan trên tập dữ liệu ảnh đã thử nghiệm, nhưng đối với các truy vấn cấp cao thì chưa áp dụng vào.
Hơn nữa, vấn đề thời gian trong truy vấn ảnh cũng cần được quan tâm khi thư viện ảnh của hệ thống được mở rộng. Cần có một giải pháp thích hợp để vừa có thể lưu trữ được dữ liệu cho càng nhiều câu truy vấn càng tốt, vừa có thể thực hiện xếp hạng lại cho tất cả các câu truy vấn này.
Hướng nghiên cứu tiếp theo
Trong thời gian tới, ngoài việc tiếp tục giải quyết các vấn đề còn tồn tại, tôi định hướng một số nghiên cứu tiếp theo:
- Truy vấn ảnh dựa theo theo vùng, đối. Ảnh gồm tập hợp các vùng hay còn gọi là vần. Đây là đặc trưng cấp cao của ảnh. Với đặc trưng vùng sẽ giúp cho chúng ta có thể giải quyết được một vấn đề lớn đang cản trở bước phát triển việc truy tìm ảnh dựa vào nội dung là dữ liệu nhập chưa được mô phỏng gần gũi hơn với suy nghĩ của con người và ảnh tìm được có thể mang nội dung ngữ nghĩa rất khác so với ảnh truy vấn.
- Với đặc trưng vùng con người có thể tiến thêm một bước trong việc truy tìm ảnh dựa vào nội dung là tìm kiếm dựa vào ngữ nghĩa. Với việc áp dụng