Compact Composite Descriptors (CCDs) is set of low lever features that can be used to describe various types of multimedia information. The set contains descriptors for 3 different types of images. A group of 2 descriptors (CEDD and FCTH) combines color and texture information in order to describe the visual content of the real-world color images. At the same time, another descriptor (BTDH) combines brightness and texture characteristics in order to describe the visual content of grayscale images (as well as radiology medical images). The recently proposed SpCD combines color and spatial distribution characteristics to describe artificially generated images (computer graphics, color sketches etc.). From this page, one can download open source software (C#, Java and MATLAB) as well as CUDA based implementations of the CCDs.
– Color and Edge Directivity Descriptor (CEDD) and Fuzzy Color and Texture Histogram (FCTH)
– (NEW) Local Color And Texture descriptor (LoCATe) (The first local CCD)
– Brightness and Texture Directionality Histogram (BTDH)
– Spatial Color Distribution Descriptor (SpCD)
1. Compact Composite Descriptors for Natural Color Images: Color and Edge Directivity Descriptor (CEDD) and Fuzzy Color and Texture Histogram (FCTH)
The structure of these descriptors consists of n texture areas. In particular, each texture area is separated into 24 sub regions, with each sub region describing a color. CEDD and FCTH use the same color information, as it results from 2 fuzzy systems that map the colors of the image in a 24-color custom palette.
To extract texture information, CEDD uses a fuzzy version of the five digital filters proposed by the MPEG-7 EHD, forming 6 texture areas. In contrast, FCTH uses the high frequency bands of the Haar wavelet Transform in a fuzzy system, to form 8 texture areas. When an image block (rectangular part of the image) interacts with the system that extracts CEDD and FCTH, this section of the image simultaneously goes across 2 units. The first unit, the color unit, classifies the image block into one of the 24 shades used by the system. Let the classification be in the color m,m E [0,23]. The second unit, the texture unit, classifies this section of the image in the texture area a,a E[0,n]. The image block is classified in the bin a X 24 +m. The process is repeated for all the image blocks of the image. On the completion of the process, the histogram is normalized within the interval [0:1] and quantized for binary representation in a three bits per bin quantization. The most important characteristic of CEDD and FCTH is the very good results that they bring up in various known benchmarking image databases [Download the retrieval results in several databases].
Another important characteristic of CEDD and FCTH is the small size needed for indexing images. The CEDD length is 54 bytes per image while FCTH length is 72 bytes per image.
[*] Important notice: There is no significant difference between these two versions of the descriptors (experiments conducted on UCID and Wang database). Ver 1.01 fixes minor bugs and slightly improves the efficiency of the descriptor. If you choose to update the descriptor in your implementation, please note that you have to re-index your data.
[**] For academic purposes only
1.1 C# Instructions:
In order to use them, add the dll as references in your c# project and then call the classes as:
(Highlight) Searching in more than 1.000.000 images with the CEDD feature
1.2 MATLAB Instructions:
The source code is quite simple and easy to be handled by all users. There is a main function that has the task of extracting the CEDD descriptor from a given image.
- Download the MATLAB implementation of CEDD [Ver 1.0] [FAPO] [updated:1/27/2014]
function [ DescriptorVector ] = CEDD(ImageRGB)
1.3 Joint Composite Descriptor:
Observing the CEDD and FCTH results in various queries, it is easy to ascertain that in some of the queries, better retrieval results are achieved by using CEDD, while in others by using FCTH.
Given that the CEDD descriptor as well as the FCTH descriptor for each image is available in the index file that the retrieval system uses, it should be asked if the 2 descriptors could be combined to achieve better retrieval results. Based on the fact that the color information given by the 2 descriptors comes from the same fuzzy system, we can assume that joining the descriptors will rely on the combining of texture areas carried by each descriptor.
Therefore, uniting the CEDD and FCTH will lead to a new descriptor that will be made up of a combination of CEDD and FCTH texture areas. The combined descriptor is called Joint Composite Descriptor (JCD).
- Download JCD as C# Source Code [Ver 1.0] [GNU GPL]
In order to use the JCD Source Code, add the CEDD and FCTH dlls, as references in your c# project and then call the classes as:
1.4 How to Compare the descriptors:
Finally, in order to calculate the distance between two descriptors use the following method (Tanimoto Coefficient)
Download an example application, in which we describe the retrieval procedure. Source Code included (C# Visual Studio 2008 Solution) [GNU GPL]
1.5 Java Version of the Descriptors:
A JAVA implementation of the descriptors (CEDD, FCTH and JCD) is available through the LIRE library. Lire is an open source project hosted at Google Code
1.6 CUDA™ based implementation of CEDD (NEW):
In order to execute this application, the latest version on the nVIDIA CUDA™ driver must be installed. A message stating “There is no device supporting CUDA” will appear during execution if CUDA’s GPU is not enabled or the respective driver is not up-to-date. The CUDA™ drivers can be found here.
Make sure to place the “cudart32_42_9.dll” file together with the application in the same directory and execute the latter using the Windows Command Prompt. Executing the application without any arguments will extract the CEDD descriptors for all images (bmp format) that are contained in the same directory as the application. Including the folder’s full path as an argument in the Command Prompt, allows the user to extract the descriptors of images stored in directories other than the one the application is in. Please note that the application only works with bmp formatted images.
- Download CUDA based implementation [Ver 0.7 (beta)] [GNU GPL]
- Download the source code of the CUDA™ based implementation of CEDD [CUDA_Only] [Hybrid] [GNU GPL]
Preliminary results
Average Indexing Time for 1000 Images
More details, comparisons and other staff will be added soon. Please note that CUDA™ based implementation produce a lossless representation of the descriptor.
Credits must be given to Loukas Bampis