Home
Overview
Visual IR
Audio Based IR
SEG Scheme
SBD Scheme
Progressive Query
Video Summarization
Hierarchical Cellular Tree
TLQ System
Mobile MUVIS
      FeX Overview
      • Features represented by series of numbers, which correspond to feature vectors
      • Normalization is required for a feature vector. Each feature vector should have unit length. This is required for merging several features by weighted interpolation during a query operation.
      • DbsEditor is the responsible application for the management of the feature extraction into any kind of multimedia databaseDbsEditor supports extraction of multiple features and multiple sub-features with different parameters from any single feature available. MBrowser can be used to query any multimedia item from any MUVIS database, if there is at least on visual or aural feature extracted within the database.Features of video clips are extracted from the key-frames of the clips.Image features are extracted from 24bit RGB frame buffer of the decoded image.
      • Feature extraction algorithms should be implemented as a Dynamic Link Library (DLL) exclusively with respect to the Feature Extraction Module Interface (FEX API), and stored in appropriate folder (i.e. C:\MUVIS\.)

        FeX API
      • Generic FeX API is defined in "Fex_API.h" file. The implemented FeX modules (DLLs) should include Fex_API.h file
      • Five different API functions and necessary data structures are declared in Fex_API.h
      • The name of the FeX DLL should be named as: Fex_[FourCC].dll (i.e Fex_TEXT.dll).
      • A FeX DLL file should be stored in the same folder with the application (DBSEditor or MBrowser) or in "C:\MUVIS\" folder
        FEX_API.h : Data Structures

          FexParam Structure: The data members in the structure are set by the feature extraction module
          typedef struct
            {
              char feat_name[255];
              long feat_fourcc;
              unsigned int feat_param_no;
              long* feat_param_fourcc;
              double* feat_param_default;
              FrameType ftype;
            } FexParam;

          FrameParam Structure: Frame data is stored in the structure to be used for feature extraction
          typedef struct
            {
              unsigned char *buffer;
              int Xs, int Ys;
            } FrameParam;

        FEX_API.h : Functions
      • int Fex_Bind(FexParam*): Used for handshaking operation between a MUVIS application and the FeX module (DLL). A pointer to FexParam structure is given as a parameter. FeX module fills the structure to introduce itself to the application. This function should be called only once at the beginning, just after the application links the FeX module in run-time. This function should return 0 if a problem occurs, and a nonzero value if successfully completed.
      • (double*)Fex_Init: Used to initialize the FeX module. The feature extraction parameters are given in a double array, which has the size defined in the FexParam structure. The FeX module performs necessary initialization operations, i.e. memory allocation, table creation etc. This function should be called once at the beginning after the feature extraction parameters are set in the MUVIS application. This function should return 0 if a problem occurs, and a nonzero value if successfully completed.
      • double* Fex_Extract(FrameParam, int&): Used to extract the features of a frame (buffer) pointed inside the FeX module parameters must be given before when Fex_Init is called. This function is called for feature extraction of each frame. It returns the feature vectors, which have the (precision) values. As mentioned before, these vectors should be normalized in such a way that each value in the feature vector and the total length of the vector should be in between 0.0 and 1.0. This normalization is required for merging multiple features while querying in MBrowser. The size of the feature vector (number of feature values within the vector) is returned via the given reference parameter.
      • int Fex_Exit(FexParam *): Used for both resetting and terminating the FeX module operation. It deallocates the memory spaces for FexParam structure allocated in Fex_Bind function. Also, if Fex_Init has been called already, this function resets the FeX module to prepare it for further feature extraction operations. This function should be called at least once while the MUVIS application is closed, but also it can be called at the end of each FeX operation to reset (e.g. for temporary clean-up) the FeX module.
      • double Fex_GetDistance(double *, double*, int): This is the function to obtain the similarity measure via calculating the distance between two feature vectors. Both feature vectors and their vector size are passed as parameters. Therefore, an appropriate distance metric should be implemented in this function. The computed distance between two vectors is returned as a double (precision) value.
        For more information see our publications
Please send questions and bug reports to webm@ster,
Release Date: 01.03.2006
Last Update: 10.09.2013
Copyright 2013 MUVIS