As I promised, here is some useful notes about developing a complete image retrieval engine by using color and texture:
1. Image Gallery
Using a free database which have 1000 middle-sized image in 10 different categories
2. Feature Extraction
- Color: 3 * 64-bin Histogram in HSV Color mode (64-bin Histogram for each H, S and V dimention).
- Texture: Calculating Co-occurrence matrix for each image and extracting “Contrast, Correlation, Energy and Homogeneity” of texture. Results shows that the respective importance of these feature are: Correlation, Homogeneity, Contrast and Energy.
Some unique blocking methods are used to extract both features in the way that the main parts of image have higher impression and importance.
3. Clustering
I’ve used k-means algorithm to partition my feature space into 7 clusters, respect to 7 feature vectors previously mentioned. But the main criterion for decision is Histogram clusters.
I am not satisfied by using this method, so I am finding a better way to cluster my feature space. I found some articles which are concerned about this issue:
Thomas Deselaers, et al. “Clustering visually similar images to improve image search engines”, …
Ioan Cleju, et al. “Clustering by principal curve with Tree Structue”, …
Xin Zheng, et al. “Locality Preserving Clustering for Image Databse”, …
4. Similarity analogy
I’ve used level 1 of Minkowsky distance for histogram analogy and level 3 for texture-related features.
(For Minkowsky distance formula refer to: Long F. ; Zhang H. and Dagan Feng D., Fundamentals of content-based image retrieval, in Multimedia Information Retrieval and Management - echnological Fundamentals and Applications,” Springer-Verlag, pp. 1-26, 2003)
I’ve used reverse of calculated distance to find the similarity rank of each images. These ranks should be added together to calculate final rank of each images. At this point, IT SHOULD NOT BE FORGOTTEN TO NORMALIZE EACH RANK. Since each feature has different importance, different coefficient correspond to its importance should be multiplied into its calculated rank.
To know how to reach a normalized rank, I refer you to read this paper:
Li X. ; Chen S.C. ; M.L. Shyu and Furht B., “Image retrieval by Color, Texture, and Spatial Information,” in 8th International Conference on Distributed Multimedia Systems (DMS’2002), San Francisco Bay, California, USA, 2002, pp. 152-159.
5. Final Result
To find the similar images from database to a user-defined image, first of all, FV (=feature vector) should be extracted, using the same way as other images in database. Since I use 256-element histogram vector to partition image databse, the histogram part of FV have been used to find the respective cluster. After this step, the comparable images will be limited to the images belong to the respective cluster. Now, by using similatrity measure and finding the specific ranks and them add them in that special way, the similarity ranks will be assigned to every comparable images. The last thing to do is to sort this rates in descending order and show n-first high rank images to user.
Note that Each phase is capable to be improved.
hey can u please mail me ur MAtlab codes on CBIR
I need them
Thanks and Regards
Ridhi
There is a link to a complete project in link bar. If it is urgent refer to it. My own is not completed unfortunately.
Please send me the matlab code on CBIR using color.
Regards
Hi Please send me the matlab code on CBIR using color. i need it very urgently.
Regards
Hi Please send me the matlab code on CBIR using color. i need it very much
Hi Zahra,, I am an Iranian student who is working on CBIR project , I would really appreciate if you could send me your source code ,, Thanks
Unfortunately the code is not ready. I will put it as soon as possible.
Hi everyone, I have a question regarding to CBIR Complete project, I’d like to test the application with some other images with a different size, how it would be possible? The images in this application has a dimension of 256*256 and 65 kb size, How can i make it to be flexible to get any size of image?
Hi, I think your system should not be sensitive to image size, everything should be relative.
for example histogram may be normalized by dividing all bins into whole no of pixels; by using such methods your system can be independent of image size.
thanks for the fast reply, just wondering where you are now? I’m testing the complete CBIR system, the one that its link is in this forum, anyway i’m using some blood cell images for this system, so after adding the images to the folder and running the application, the INPUT and SEARCH button are not enabled, so I try to change the size of the image in photoshop , but could not make it to 65 kb, i have gone through the code and having the folloing error: “Index exceeds matrix dimensions.”, i debug the code and i got this error from rgb2hsv.m file, i do appreciate if you can help me out as i’m new in matlab,
thanks
unfortunately i didn’t test that system, but recommend you to develop your own instead of using that one. ‘cos none of professional systems are dependent to the size.
If you wanna test a cbir system, this one is more appropriate:
http://labs.systemone.at/retrievr
i’m using some of the code and for me to undrestand the code, i need to test as i’m new in matlab,,
at the moment i need some code to do the feature extraction based on the color and do the retrieval as well,
There is long way to reach a complete cbir. Wish you to be lucky.
Thanks,
Can u provide me the code for texture feature extraction.
Calculating Co-occurrence matrix for each image and extracting “Contrast, Correlation, Energy and Homogeneity” of texture.
Its very urgent.
Hi,
Can anyone provide me the code for SHAPE feature extraction,
Really appreciate it,
Hey can I wanna do project on CBIR based on color. can any1 suggest me which Algoritm should i use n wher ll i find it..
I am looking for working in shape based image retrieval, I have referred many papers but every paper does mention its own approach besides the basic approaches like Fourier, Zernike, grid descriptors, Curvature scale space.
After referring so many papers, I do not where and how to proceed ?????????Should I start with developing a software and implemting these methods and comparing them with new proposed methods? Please guide me.
Urgent