SlideShare une entreprise Scribd logo
1  sur  6
Télécharger pour lire hors ligne
Bases de données Multimédia                                Bases de données Multimédia
  Oracle Intermedia                                          Oracle Intermedia
                                                          Oracle fournit des types spécifiques (Objet-
Plan                                                      relationnels) et des méthodes pour stocker et
  Le package ORDSYS                                       gérer des documents multimédia.
       ORDSource, ORDImage, ORDImageSignature                ORDSource qui contient des informations de base
                                                             communes à tous les types de média et les données
                                                                                          média,
       ORDVideo,ORDAudio                                     elles-mêmes (le média)
  Le type ORDSource                                          ORDImage pour la gestion des images
       Méthodes                                                 ORDImageSignature pour l'indexation et la comparaison
                                                                d'images
  Les types ORDImage et ORDImageSignature                    ORDAudio pour la gestion des médias audio,
       Définitions et méthodes                               ORDVideo pour les vidéos,
                                                             ORDoc pour le stockage et la gestion de médias
                                                             hétérogènes y compris image, audio et vidéo.
                       Bases de données Multimédia    1                                 Bases de données Multimédia               2




  Bases de données Multimédia                                Bases de données Multimédia
  Oracle Intermedia                                          Oracle Intermedia
La classe ORDSource                                           Le type ORDSource est défini par :
                                                                 localData BLOB,
   Contient les informations de stockage des                          Contient les données stockées localement comme un BLOB (4Go).
   fichiers des classes ORDImage                                 srcType VARCHAR2(4000),
                                                                      Identifie le type de source de données (FILE HTTP …)
                                                                                                             (FILE, HTTP, )
       Et des classes ORDVideo et ORDAudio.                      srcLocation VARCHAR2(4000),
                                                                      Emplacement des données (selon le type de la source)
   Est utilisée par les autres classes de ORDSYS                          FILE -> directory, HTTP -> URL ou user-defined
                                                                 srcName VARCHAR2(4000),
   Supporte les accès aux données stockées de                         Nom du fichier
   type BLOB, BFILE ou URL.                                      updateTime DATE,
                                                                      Dernière date de modification
                                                                 local NUMBER,
                                                                      (1= BLOB, 0=externe)

                       Bases de données Multimédia    3                                 Bases de données Multimédia               4




  Bases de données Multimédia                                Bases de données Multimédia
  Oracle Intermedia                                          Oracle Intermedia
Les méthodes (communes pour ORDVideo,                     Exemple :
ORDAudio, ORDImage)                                       DECLARE obj ORDSYS.ORDDoc;
                                                          BEGIN
  clearLocal( ), setLocal( ), isLocal( ),                 SELECT p.product INTO obj FROM media p WHERE p.product_id=1;
  openSource( ) closeSource( ) getSource( )
                 ),               ),       ),              -- set source t a fil
                                                                t         to    file
  setSource(), getSourceType( ), getSourceLocation( ),       obj.setSource('file','FILE_DIR','speaker.wav');
  getSourceName( ), readFromSource( ), writeToSource(),    -- get source information
                                                           DBMS_OUTPUT.PUT_LINE('Source type is ' ||
  trimSource( ), processSourceCommand( ),                    obj.getSourceType);
  export( ), getBFile( ),                                  DBMS_OUTPUT.PUT_LINE('Source location is ' ||
                                                             obj.getSourceLocation);
  getContent( ), deleteContent( ),
                                                           DBMS_OUTPUT.PUT_LINE('Source name is ' ||
  getMimeType( ), setMimeType( ),                            obj.getSourceName);
  getUpdateTime( ), setUpdateTime( ),                     COMMIT; END; /

                       Bases de données Multimédia    5                                 Bases de données Multimédia               6




                                                                                                                                      1
Bases de données Multimédia                                       Bases de données Multimédia
     Oracle Intermedia                                                 Oracle Intermedia
                                                                    Exemple : Export d'un objet interne (ORDImage dans un Fichier
     Exemple : Lecture dans un buffer du contenu d'un média         externe)
     DECLARE obj ORDSYS.ORDImage;                                   CREATE OR REPLACE DIRECTORY FILE_DIR as '/mydir/work';
      buffer RAW(4000);                                             GRANT READ,WRITE ON DIRECTORY FILE_DIR TO 'RON';
      i INTEGER;                                                    BEGIN
      ctx RAW(64) :=NULL;                                           CONNECT RON/RON
                                                                                /
     BEGIN i := 20;                                                 DECLARE obj ORDSYS.ORDImage;
      SELECT p.product_photo into obj from media p WHERE            ctx RAW(64) :=NULL;
        p.product_id = 1;
                                                                    BEGIN
      obj.readFromSource(ctx,1,i,buffer);
                                                                     SELECT product_photo INTO obj FROM pm.online_media
      DBMS_OUTPUT.PUT_LINE('Length is ' ||                             WHERE product_id = 3515;
        TO_CHAR(obj.getContentLength(ctx)));                           obj.export(ctx,'file','FILE_DIR','testimg.jpg');
     COMMIT;                                                        COMMIT;
     EXCEPTION ...                                                  EXCEPTION ...
     END; /                                                         END; /
                            Bases de données Multimédia       7                                  Bases de données Multimédia            8




     Bases de données Multimédia                                       Bases de données Multimédia
     Oracle - ORDImage                                                 Oracle - ORDImage
La gestion des images est réalisée à l'aide du type
ORDImage.                                                          Méthodes du type ORDImage
                                                                   Pour définir les propriétés d'une image (automatiquement)
CREATE OR REPLACE TYPE ORDImage AS OBJECT (                           setProperties( ), (contrôle) checkProperties( )
 source ORDSource,
                                                                   Pour connaître les valeurs des attributs
 height INTEGER, width INTEGER,
                                                                      getCompressionFormat( ), getContentFormat(
 contentLength INTEGER,
                                                                      getContentLength( ), getDicomMetadata( ),
 fileFormat VARCHAR2(4000),
                                                                      getFileFormat( ), getHeight( ), getMetadata( ), getWidth( )
 contentFormat VARCHAR2(4000),
 compressionFormat VARCHAR2(4000),                                 Pour transférer une image vers ou depuis un fichier
 mimeType VARCHAR2(4000),                                             import( ), importFrom( )
 -- description des méthodes                                       Pour effectuer certains traitements sur l'image
 ...                                                                  process( ), processCopy( ), (ou la copier) copy( )
 );
                            Bases de données Multimédia       9                                  Bases de données Multimédia        10




     Bases de données Multimédia                                       Bases de données Multimédia
     Oracle - ORDImage                                                 Oracle - ORDImage
 Exemples : Affichage du format de compression de l'image          Calcul des caractéristiques d'une image
                                                                   DECLARE image ORDSYS.ORDImage;
 DECLARE image ORDSYS.ORDImage;                                    BEGIN
  compression_format VARCHAR2(4000);                                SELECT p.product_photo INTO image FROM media p WHERE p.product_id
 BEGIN                                                                = 1 FOR UPDATE;
  SELECT p.product_photo INTO image FROM media p                    image.setProperties();
                                                                    i       tP     ti ()
                                                                    DBMS_OUTPUT.PUT_LINE('width = ' || image.getWidth());
    WHERE p.product_id =1;                                            DBMS_OUTPUT.PUT_LINE('height = ' || image.getHeight());
  compression_format :=                                               DBMS_OUTPUT.PUT_LINE('size = ' || image.getContentLength());
    image.getCompressionFormat();                                     DBMS_OUTPUT.PUT_LINE('file type = ' || image.getFileFormat());
                                                                    DBMS_OUTPUT.PUT_LINE('type = ' || image.getContentFormat());
  DBMS_OUTPUT.PUT_LINE('Compression format is ' ||                    DBMS_OUTPUT.PUT_LINE('compression = ' ||
    compression_format);                                              image.getCompressionFormat());
 COMMIT;                                                            DBMS_OUTPUT.PUT_LINE('image mime type = ' ||
                                                                      image.getMimeType());
 END;                                                               UPDATE media p SET p.product_photo = image WHERE p.product_id=1;
 /                                                                 COMMIT; END; /
                            Bases de données Multimédia       11                                 Bases de données Multimédia        12




                                                                                                                                            2
Bases de données Multimédia                                    Bases de données Multimédia
     Oracle - ORDImage                                              Oracle - ORDImage
Exemple : Transfert d'une image externe (fichier) dans         Constructeurs du type ORDImage
l'image interne (BLOB du ORDImage)
DECLARE obj ORDSYS.ORDImage;                                       Pour un type interne BLOB (init())
 ctx RAW(64) :=NULL;
BEGIN                                                          BEGIN INSERT INTO media (
                                                                                   di (product_id,
                                                                                           d t id
 SELECT p.product_photo INTO obj FROM media p WHERE              product_photo)
   p.product_id = 1 FOR UPDATE;
                                                               VALUES (1, ORDSYS.ORDImage.init());
 obj.importFrom(ctx,'file','FILE_DIR','speaker.jpg');
 UPDATE media p SET p.product_photo = obj WHERE                COMMIT;
   p.product_id = 1;                                           END;
COMMIT;
END;                                                           /
/
                        Bases de données Multimédia       13                                Bases de données Multimédia                14




     Bases de données Multimédia                                    Bases de données Multimédia
     Oracle - ORDImage                                              Oracle - ORDImageSignature
Constructeurs du type ORDImage                                     Une image comporte des propriétés associées à
    Pour un type interne BFile (init( avec paramètres))
                                                                   l’image elle-même et des images peuvent être
    BEGIN
                                                                   comparées en comparant ces propriétés.
     INSERT INTO media (product id,
                              (product_id,
      product_photo)
                                                                   Les images sont comparées sur leurs attributs
     VALUES (1,ORDSYS.ORDImage.init('FILE',
      'FILE_DIR','speaker.jpg'));                                  définis dans la signature de l'image.
    COMMIT;                                                          La signature comporte des informations sur le contenu
    END;                                                             physique de l’image
    /

                        Bases de données Multimédia       15                                Bases de données Multimédia                16




     Bases de données Multimédia                                    Bases de données Multimédia
     Oracle - ORDImageSignature                                     Oracle - ORDImageSignature
    Oracle Intermedia supporte 42 formats d'images                 Chaque image insérée dans la base est analysée,
      Plus connus jpg, bmp, …                                         Segmentation de l'image en plusieurs zones, basées sur la
                                                                      couleur.
      Plus spécifiques dfx (Autocad), …                               Chaque zone est définie par une couleur, une texture et une
                                                                      forme.
    La
    L comparaison des images est basée sur les
                i    d i           tb é    l                        pour définir les valeurs des attributs visuels.
    attributs de leurs signatures.
                                                                   L'emplacement de ces attributs visuels est représenté par
    Cette signature est générée à partir des                       un attribut "location"
    propriétés de l'image, qui sont transcrites en                    La combinaison de cet attribut avec un des trois attributs visuels
    attributs visuels.                                                (couleur, texture, forme) forme un critère de recherche.
                                                                   La signature contient toutes les informations relatives
    La requête porte sur les attributs de la signature.               aux différentes zones de l'image
                                                                      et au fond de l'image
                        Bases de données Multimédia       17                                Bases de données Multimédia                18




                                                                                                                                            3
Bases de données Multimédia                                            Bases de données Multimédia
  Oracle - ORDImageSignature                                             Oracle - ORDImageSignature
La comparaison de 2 images se base donc sur la
comparaison de leurs signatures.
                                                                       La couleur
  signature ORDSYS.ORDImageSignature                                     La propriété "color" représente la distribution
Elles peuvent générées par la méthode                                    des couleurs dans l'image.
                                                                                                 g
  generateSignature                                                        % des couleurs
La comparaison est alors basée sur les couleurs locales                  La couleur et l'attribut "location" représentent la
et globales, la structure et le texture de l'image.                      répartition des couleurs et où elles apparaissent.
  La méthode evaluateScore permet de comparer deux signatures
  et d'évaluer leur ressemblance.
                                                                           Répartition des couleurs dans l'image
  La méthode isSimilar permet en plus de fixer un seuil de
  ressemblance et retourne 1 si le seuil est atteint et 0 sinon

                        Bases de données Multimédia               19                        Bases de données Multimédia       20




  Bases de données Multimédia                                            Bases de données Multimédia
  Oracle - ORDImageSignature                                             Oracle - ORDImageSignature
 La forme                                                                La texture
 La structure de l'image peut être utilisée                                Elle est utilisée pour les requêtes portant sur
 pour rechercher répondre à des requêtes                                   des i
                                                                           d images ayant la même motif
                                                                                              tl    ê       tif
 sur des formes simples :                                                     Marbre, sable, pierre …
    Lignes d'horizon dans un paysage                                       Ces images sont difficiles à classifier par
    Structures rectangulaires dans les bâtiments                           manque de vocabulaire sur les textures
    Structures organiques comme les arbres                                    Difficulté pour exprimer les requêtes


                        Bases de données Multimédia               21                        Bases de données Multimédia       22




  Bases de données Multimédia                                            Bases de données Multimédia
  Oracle - ORDImageSignature                                             Oracle - ORDImageSignature
 L'attribut "localisation"                                              Le poids
    Il ne représente pas un attribut visuel, mais il                       Il permet de pondérer l'importance accordée à
    est utilisé en combinaison avec l'un des 3                             un attribut.
    attributs visuels                                                      Le poids doit être compris entre 0 et 1.
       Couleur                                                               Si le poids est 0, l'attribut est ignoré;
                                                                             Si le poids est 1, une similarité complète est
       Forme
                                                                             attendue sur cet attribut.
       Texture
                                                                           La valeur du poids d'un attribut doit être
                                                                           initialisée à une valeur >0.

                        Bases de données Multimédia               23                        Bases de données Multimédia       24




                                                                                                                                   4
Bases de données Multimédia                                     Bases de données Multimédia
  Oracle - ORDImageSignature                                      Oracle - ORDImageSignature
  Le score                                                        Le degré de similarité entre 2 images est donc
  Il représente la mesure de similarité entre deux                calculé à partir
  images calculée à partir des valeurs des
  attributs visuels.                                                 Des scores pour chacun des attributs visuels
  La valeur du score est comprise entre 0 et 100.                    Des poids
  Plus la similarité est grande, plus le score est                Similarité =
  petit                                                            poids_couleur*score_couleur
     Score=0, images similaires                                    + poids_forme*score_forme
     Score=100, aucune similarité
                                                                   + poids_texture*score_texture
                                                                   (somme des poids =1, 0<=score<=100

                      Bases de données Multimédia        25                             Bases de données Multimédia              26




  Bases de données Multimédia                                     Bases de données Multimédia
  Oracle - ORDImageSignature                                      Oracle - ORDImageSignature
                                                              CREATE OR REPLACE TYPE ORDImageSignature AS OBJECT
  Le seuil                                                    ( signature BLOB
  Il permet de fixer la valeur qui sert de                    -- les informations de localisation, texture, forme et couleur
                                                              -- sont stockées dans un BLOB
  filtre pour sélectionner les images
                               images.                        STATIC FUNCTION i it RETURN ORDImageSignature,
                                                                                   init          ORDI        Si  t
                                                              STATIC FUNCTION evaluateScore(sig1 IN ORDImageSignature, sig2 IN
     Si le score est <= seuil, l'image est                        ORDImageSignature, weights IN VARCHAR2) RETURN FLOAT,
     sélectionnée,                                            STATIC FUNCTION isSimilar(sig1 IN ORDImageSignature, sig2 IN
                                                                  ORDImageSignature, weights IN VARCHAR2, threshold IN FLOAT)
     Si le score est > seuil, l'image est considérée              RETURN INTEGER,
     comme différente et non retenue.                         MEMBER PROCEDURE generateSignature(image IN ORDImage)
                                                              );


                      Bases de données Multimédia        27                             Bases de données Multimédia              28




  Bases de données Multimédia                                     Bases de données Multimédia
  Oracle - ORDImageSignature                                      Oracle - ORDImageSignature
Constructeur : init( ) RETURN ORDImageSignature;                  Méthode de comparaison de deux images
Cette méthode est une méthode static qui initialise le                Avec retour de la valeur du score
BLOB à vide (empty_blob())                                         evaluateScore(sig1 IN ORDImageSignature, sig2 IN
                                                                   ORDImageSignature, weights IN VARCHAR2) RETURN FLOAT;
BEGIN
                                                                   Exemple de comparaison de deux images :
INSERT INTO media (product_id, product_photo,
product_photo_signature)                                       -- déclarations
VALUES (1, ORDSYS.ORDImage.init('FILE',
                                                                    DECLARE
'FILE_DIR','speaker.jpg'),                                          t_image ORDSYS.ORDImage;
ORDSYS.ORDImageSignature.init());                                   c_image ORDSYS.ORDImage;
COMMIT;                                                             image_sig ORDSYS.ORDImageSignature;
END;                                                                compare_sig ORDSYS.ORDImageSignature;
/                                                                   score FLOAT;

                      Bases de données Multimédia        29                             Bases de données Multimédia              30




                                                                                                                                      5
Bases de données Multimédia                            Bases de données Multimédia
   Oracle - ORDImageSignature                             Oracle - ORDImageSignature
-- calcul de la signature de la 1ère image              -- calcul de la signature de la 2ème image
SELECT p.product_photo,                                 SELECT p.product_photo,
p.product_photo_signature INTO                          p.product_photo_signature INTO c_image,
t_image, image_sig
t image image sig FROM media p WHERE                    compare_sig
                                                        compare sig FROM media p WHERE
p.product_id = 1 FOR UPDATE;                            p.product_id = 2 FOR UPDATE;
image_sig.generateSignature(t_image);                   compare_sig.generateSignature(c_image);
UPDATE media p SET                                      UPDATE media p SET
p.product_photo_signature = image_sig                   p.product_photo_signature = compare_sig
WHERE product_id =1;
                                                        WHERE product_id = 2;

                     Bases de données Multimédia   31                       Bases de données Multimédia    32




   Bases de données Multimédia                            Bases de données Multimédia
   Oracle - ORDImageSignature                             Oracle - ORDImageSignature
-- Comparaison des signatures                             Méthode de comparaison isSimilar (retourne 0 ou 1)
SELECT p.product_photo_signature INTO image_sig FROM      isSimilar(sig1 IN ORDImageSignature, sig2 IN
media p WHERE p.product_id = 1;                           ORDImageSignature, weights IN VARCHAR2, threshold
SELECT p.product photo signature INTO compare sig
       p.product_photo_signature      compare_sig         IN FLOAT) RETURN INTEGER;
FROM media p WHERE p.product_id = 2;
score:=ORDSYS.ORDImageSignature.evaluateScore(image_s
ig,compare_sig,'color="1.0",texture=0,shape=0,locatio     value := ORDSYS.ORDImageSignature.isSimilar
n=0');                                                    (image_sig1,image_sig2,'color="1.0",texture=0,shap
DBMS_OUTPUT.PUT_LINE('Score is ' || score);               e=0,location=0',10);
END;
/


                     Bases de données Multimédia   33                       Bases de données Multimédia    34




   Bases de données Multimédia
   Oracle - InterMedia
  Conclusion
     Aperçu du package ORDSYS
        Avec les types ORDSource, ORDImage,
        ORDImageSignature
     Et les méthodes des types
     Utilisation dans des programmes PL/SQL




                     Bases de données Multimédia   35




                                                                                                                6

Contenu connexe

Similaire à Bdm oracle intermedia

Sudoc, Calames, theses.fr et le Web de données
Sudoc, Calames, theses.fr et le Web de donnéesSudoc, Calames, theses.fr et le Web de données
Sudoc, Calames, theses.fr et le Web de donnéesY. Nicolas
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateYouness Boukouchi
 
Les entrepôts de données ou comment rendre les données trouvables accessibles...
Les entrepôts de données ou comment rendre les données trouvables accessibles...Les entrepôts de données ou comment rendre les données trouvables accessibles...
Les entrepôts de données ou comment rendre les données trouvables accessibles...Desconnets Jean-Christophe
 
Jabes 2011 - Ateliers "Sudoc, Calames, thèses.fr et le web de données"
Jabes 2011 - Ateliers "Sudoc, Calames, thèses.fr et le web de données"Jabes 2011 - Ateliers "Sudoc, Calames, thèses.fr et le web de données"
Jabes 2011 - Ateliers "Sudoc, Calames, thèses.fr et le web de données"ABES
 
Medialille evolutions catalogage_avril2014_web-donnees
Medialille evolutions catalogage_avril2014_web-donneesMedialille evolutions catalogage_avril2014_web-donnees
Medialille evolutions catalogage_avril2014_web-donneesnonue12
 
Spire : l'archive ouverte de Sciences Po
Spire : l'archive ouverte de Sciences PoSpire : l'archive ouverte de Sciences Po
Spire : l'archive ouverte de Sciences PoJean-François Lutz
 
Masterclasse i-expo 2011 : Pour un véritable accès unifié à l'information
Masterclasse i-expo 2011 : Pour un véritable accès unifié à l'informationMasterclasse i-expo 2011 : Pour un véritable accès unifié à l'information
Masterclasse i-expo 2011 : Pour un véritable accès unifié à l'informationAntidot
 
De la caractérisation des données à leur transformation
De la caractérisation des données à leur transformationDe la caractérisation des données à leur transformation
De la caractérisation des données à leur transformationDiane Le Hénaff
 
Stéphane Pouyllau (CNRS) - ISIDORE : plateforme d’accès unifié aux données de...
Stéphane Pouyllau (CNRS) - ISIDORE : plateforme d’accès unifié aux données de...Stéphane Pouyllau (CNRS) - ISIDORE : plateforme d’accès unifié aux données de...
Stéphane Pouyllau (CNRS) - ISIDORE : plateforme d’accès unifié aux données de...infoclio.ch
 
Les bases pour utiliser SPARQL
Les bases pour utiliser SPARQLLes bases pour utiliser SPARQL
Les bases pour utiliser SPARQLBorderCloud
 
Médiation culturelle et innovations numériques
Médiation culturelle et innovations numériquesMédiation culturelle et innovations numériques
Médiation culturelle et innovations numériquesJpsd consultant
 
Les éléments d'indexation dans la DTD-EAD
Les éléments d'indexation dans la DTD-EADLes éléments d'indexation dans la DTD-EAD
Les éléments d'indexation dans la DTD-EADDanis Habib
 
[FR] Introduction à Spring Data Neo4j 3.x
[FR] Introduction à Spring Data Neo4j 3.x[FR] Introduction à Spring Data Neo4j 3.x
[FR] Introduction à Spring Data Neo4j 3.xFlorent Biville
 
CRFCB AMU_evolutions-catalogage_091213_RDA
CRFCB AMU_evolutions-catalogage_091213_RDACRFCB AMU_evolutions-catalogage_091213_RDA
CRFCB AMU_evolutions-catalogage_091213_RDAnonue12
 
L’acquisition d’un outil de découverte_Expérience de l'Université Sherbrooke_...
L’acquisition d’un outil de découverte_Expérience de l'Université Sherbrooke_...L’acquisition d’un outil de découverte_Expérience de l'Université Sherbrooke_...
L’acquisition d’un outil de découverte_Expérience de l'Université Sherbrooke_...nst2011
 
Utiliser un identifiant chercheur pour gérer ses publications
Utiliser un identifiant chercheur pour gérer ses publicationsUtiliser un identifiant chercheur pour gérer ses publications
Utiliser un identifiant chercheur pour gérer ses publicationsDeboin
 
quand le lien fait sens
quand le lien fait sensquand le lien fait sens
quand le lien fait sensFabien Gandon
 

Similaire à Bdm oracle intermedia (20)

Sudoc, Calames, theses.fr et le Web de données
Sudoc, Calames, theses.fr et le Web de donnéesSudoc, Calames, theses.fr et le Web de données
Sudoc, Calames, theses.fr et le Web de données
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernate
 
Les entrepôts de données ou comment rendre les données trouvables accessibles...
Les entrepôts de données ou comment rendre les données trouvables accessibles...Les entrepôts de données ou comment rendre les données trouvables accessibles...
Les entrepôts de données ou comment rendre les données trouvables accessibles...
 
Metadonnees et SID
Metadonnees et SIDMetadonnees et SID
Metadonnees et SID
 
Jabes 2011 - Ateliers "Sudoc, Calames, thèses.fr et le web de données"
Jabes 2011 - Ateliers "Sudoc, Calames, thèses.fr et le web de données"Jabes 2011 - Ateliers "Sudoc, Calames, thèses.fr et le web de données"
Jabes 2011 - Ateliers "Sudoc, Calames, thèses.fr et le web de données"
 
Medialille evolutions catalogage_avril2014_web-donnees
Medialille evolutions catalogage_avril2014_web-donneesMedialille evolutions catalogage_avril2014_web-donnees
Medialille evolutions catalogage_avril2014_web-donnees
 
PHP #6 : mysql
PHP #6 : mysqlPHP #6 : mysql
PHP #6 : mysql
 
Spire : l'archive ouverte de Sciences Po
Spire : l'archive ouverte de Sciences PoSpire : l'archive ouverte de Sciences Po
Spire : l'archive ouverte de Sciences Po
 
Masterclasse i-expo 2011 : Pour un véritable accès unifié à l'information
Masterclasse i-expo 2011 : Pour un véritable accès unifié à l'informationMasterclasse i-expo 2011 : Pour un véritable accès unifié à l'information
Masterclasse i-expo 2011 : Pour un véritable accès unifié à l'information
 
De la caractérisation des données à leur transformation
De la caractérisation des données à leur transformationDe la caractérisation des données à leur transformation
De la caractérisation des données à leur transformation
 
Stéphane Pouyllau (CNRS) - ISIDORE : plateforme d’accès unifié aux données de...
Stéphane Pouyllau (CNRS) - ISIDORE : plateforme d’accès unifié aux données de...Stéphane Pouyllau (CNRS) - ISIDORE : plateforme d’accès unifié aux données de...
Stéphane Pouyllau (CNRS) - ISIDORE : plateforme d’accès unifié aux données de...
 
Les bases pour utiliser SPARQL
Les bases pour utiliser SPARQLLes bases pour utiliser SPARQL
Les bases pour utiliser SPARQL
 
Médiation culturelle et innovations numériques
Médiation culturelle et innovations numériquesMédiation culturelle et innovations numériques
Médiation culturelle et innovations numériques
 
Les éléments d'indexation dans la DTD-EAD
Les éléments d'indexation dans la DTD-EADLes éléments d'indexation dans la DTD-EAD
Les éléments d'indexation dans la DTD-EAD
 
[FR] Introduction à Spring Data Neo4j 3.x
[FR] Introduction à Spring Data Neo4j 3.x[FR] Introduction à Spring Data Neo4j 3.x
[FR] Introduction à Spring Data Neo4j 3.x
 
CRFCB AMU_evolutions-catalogage_091213_RDA
CRFCB AMU_evolutions-catalogage_091213_RDACRFCB AMU_evolutions-catalogage_091213_RDA
CRFCB AMU_evolutions-catalogage_091213_RDA
 
Metadonnees -- une typologie
Metadonnees -- une typologieMetadonnees -- une typologie
Metadonnees -- une typologie
 
L’acquisition d’un outil de découverte_Expérience de l'Université Sherbrooke_...
L’acquisition d’un outil de découverte_Expérience de l'Université Sherbrooke_...L’acquisition d’un outil de découverte_Expérience de l'Université Sherbrooke_...
L’acquisition d’un outil de découverte_Expérience de l'Université Sherbrooke_...
 
Utiliser un identifiant chercheur pour gérer ses publications
Utiliser un identifiant chercheur pour gérer ses publicationsUtiliser un identifiant chercheur pour gérer ses publications
Utiliser un identifiant chercheur pour gérer ses publications
 
quand le lien fait sens
quand le lien fait sensquand le lien fait sens
quand le lien fait sens
 

Bdm oracle intermedia

  • 1. Bases de données Multimédia Bases de données Multimédia Oracle Intermedia Oracle Intermedia Oracle fournit des types spécifiques (Objet- Plan relationnels) et des méthodes pour stocker et Le package ORDSYS gérer des documents multimédia. ORDSource, ORDImage, ORDImageSignature ORDSource qui contient des informations de base communes à tous les types de média et les données média, ORDVideo,ORDAudio elles-mêmes (le média) Le type ORDSource ORDImage pour la gestion des images Méthodes ORDImageSignature pour l'indexation et la comparaison d'images Les types ORDImage et ORDImageSignature ORDAudio pour la gestion des médias audio, Définitions et méthodes ORDVideo pour les vidéos, ORDoc pour le stockage et la gestion de médias hétérogènes y compris image, audio et vidéo. Bases de données Multimédia 1 Bases de données Multimédia 2 Bases de données Multimédia Bases de données Multimédia Oracle Intermedia Oracle Intermedia La classe ORDSource Le type ORDSource est défini par : localData BLOB, Contient les informations de stockage des Contient les données stockées localement comme un BLOB (4Go). fichiers des classes ORDImage srcType VARCHAR2(4000), Identifie le type de source de données (FILE HTTP …) (FILE, HTTP, ) Et des classes ORDVideo et ORDAudio. srcLocation VARCHAR2(4000), Emplacement des données (selon le type de la source) Est utilisée par les autres classes de ORDSYS FILE -> directory, HTTP -> URL ou user-defined srcName VARCHAR2(4000), Supporte les accès aux données stockées de Nom du fichier type BLOB, BFILE ou URL. updateTime DATE, Dernière date de modification local NUMBER, (1= BLOB, 0=externe) Bases de données Multimédia 3 Bases de données Multimédia 4 Bases de données Multimédia Bases de données Multimédia Oracle Intermedia Oracle Intermedia Les méthodes (communes pour ORDVideo, Exemple : ORDAudio, ORDImage) DECLARE obj ORDSYS.ORDDoc; BEGIN clearLocal( ), setLocal( ), isLocal( ), SELECT p.product INTO obj FROM media p WHERE p.product_id=1; openSource( ) closeSource( ) getSource( ) ), ), ), -- set source t a fil t to file setSource(), getSourceType( ), getSourceLocation( ), obj.setSource('file','FILE_DIR','speaker.wav'); getSourceName( ), readFromSource( ), writeToSource(), -- get source information DBMS_OUTPUT.PUT_LINE('Source type is ' || trimSource( ), processSourceCommand( ), obj.getSourceType); export( ), getBFile( ), DBMS_OUTPUT.PUT_LINE('Source location is ' || obj.getSourceLocation); getContent( ), deleteContent( ), DBMS_OUTPUT.PUT_LINE('Source name is ' || getMimeType( ), setMimeType( ), obj.getSourceName); getUpdateTime( ), setUpdateTime( ), COMMIT; END; / Bases de données Multimédia 5 Bases de données Multimédia 6 1
  • 2. Bases de données Multimédia Bases de données Multimédia Oracle Intermedia Oracle Intermedia Exemple : Export d'un objet interne (ORDImage dans un Fichier Exemple : Lecture dans un buffer du contenu d'un média externe) DECLARE obj ORDSYS.ORDImage; CREATE OR REPLACE DIRECTORY FILE_DIR as '/mydir/work'; buffer RAW(4000); GRANT READ,WRITE ON DIRECTORY FILE_DIR TO 'RON'; i INTEGER; BEGIN ctx RAW(64) :=NULL; CONNECT RON/RON / BEGIN i := 20; DECLARE obj ORDSYS.ORDImage; SELECT p.product_photo into obj from media p WHERE ctx RAW(64) :=NULL; p.product_id = 1; BEGIN obj.readFromSource(ctx,1,i,buffer); SELECT product_photo INTO obj FROM pm.online_media DBMS_OUTPUT.PUT_LINE('Length is ' || WHERE product_id = 3515; TO_CHAR(obj.getContentLength(ctx))); obj.export(ctx,'file','FILE_DIR','testimg.jpg'); COMMIT; COMMIT; EXCEPTION ... EXCEPTION ... END; / END; / Bases de données Multimédia 7 Bases de données Multimédia 8 Bases de données Multimédia Bases de données Multimédia Oracle - ORDImage Oracle - ORDImage La gestion des images est réalisée à l'aide du type ORDImage. Méthodes du type ORDImage Pour définir les propriétés d'une image (automatiquement) CREATE OR REPLACE TYPE ORDImage AS OBJECT ( setProperties( ), (contrôle) checkProperties( ) source ORDSource, Pour connaître les valeurs des attributs height INTEGER, width INTEGER, getCompressionFormat( ), getContentFormat( contentLength INTEGER, getContentLength( ), getDicomMetadata( ), fileFormat VARCHAR2(4000), getFileFormat( ), getHeight( ), getMetadata( ), getWidth( ) contentFormat VARCHAR2(4000), compressionFormat VARCHAR2(4000), Pour transférer une image vers ou depuis un fichier mimeType VARCHAR2(4000), import( ), importFrom( ) -- description des méthodes Pour effectuer certains traitements sur l'image ... process( ), processCopy( ), (ou la copier) copy( ) ); Bases de données Multimédia 9 Bases de données Multimédia 10 Bases de données Multimédia Bases de données Multimédia Oracle - ORDImage Oracle - ORDImage Exemples : Affichage du format de compression de l'image Calcul des caractéristiques d'une image DECLARE image ORDSYS.ORDImage; DECLARE image ORDSYS.ORDImage; BEGIN compression_format VARCHAR2(4000); SELECT p.product_photo INTO image FROM media p WHERE p.product_id BEGIN = 1 FOR UPDATE; SELECT p.product_photo INTO image FROM media p image.setProperties(); i tP ti () DBMS_OUTPUT.PUT_LINE('width = ' || image.getWidth()); WHERE p.product_id =1; DBMS_OUTPUT.PUT_LINE('height = ' || image.getHeight()); compression_format := DBMS_OUTPUT.PUT_LINE('size = ' || image.getContentLength()); image.getCompressionFormat(); DBMS_OUTPUT.PUT_LINE('file type = ' || image.getFileFormat()); DBMS_OUTPUT.PUT_LINE('type = ' || image.getContentFormat()); DBMS_OUTPUT.PUT_LINE('Compression format is ' || DBMS_OUTPUT.PUT_LINE('compression = ' || compression_format); image.getCompressionFormat()); COMMIT; DBMS_OUTPUT.PUT_LINE('image mime type = ' || image.getMimeType()); END; UPDATE media p SET p.product_photo = image WHERE p.product_id=1; / COMMIT; END; / Bases de données Multimédia 11 Bases de données Multimédia 12 2
  • 3. Bases de données Multimédia Bases de données Multimédia Oracle - ORDImage Oracle - ORDImage Exemple : Transfert d'une image externe (fichier) dans Constructeurs du type ORDImage l'image interne (BLOB du ORDImage) DECLARE obj ORDSYS.ORDImage; Pour un type interne BLOB (init()) ctx RAW(64) :=NULL; BEGIN BEGIN INSERT INTO media ( di (product_id, d t id SELECT p.product_photo INTO obj FROM media p WHERE product_photo) p.product_id = 1 FOR UPDATE; VALUES (1, ORDSYS.ORDImage.init()); obj.importFrom(ctx,'file','FILE_DIR','speaker.jpg'); UPDATE media p SET p.product_photo = obj WHERE COMMIT; p.product_id = 1; END; COMMIT; END; / / Bases de données Multimédia 13 Bases de données Multimédia 14 Bases de données Multimédia Bases de données Multimédia Oracle - ORDImage Oracle - ORDImageSignature Constructeurs du type ORDImage Une image comporte des propriétés associées à Pour un type interne BFile (init( avec paramètres)) l’image elle-même et des images peuvent être BEGIN comparées en comparant ces propriétés. INSERT INTO media (product id, (product_id, product_photo) Les images sont comparées sur leurs attributs VALUES (1,ORDSYS.ORDImage.init('FILE', 'FILE_DIR','speaker.jpg')); définis dans la signature de l'image. COMMIT; La signature comporte des informations sur le contenu END; physique de l’image / Bases de données Multimédia 15 Bases de données Multimédia 16 Bases de données Multimédia Bases de données Multimédia Oracle - ORDImageSignature Oracle - ORDImageSignature Oracle Intermedia supporte 42 formats d'images Chaque image insérée dans la base est analysée, Plus connus jpg, bmp, … Segmentation de l'image en plusieurs zones, basées sur la couleur. Plus spécifiques dfx (Autocad), … Chaque zone est définie par une couleur, une texture et une forme. La L comparaison des images est basée sur les i d i tb é l pour définir les valeurs des attributs visuels. attributs de leurs signatures. L'emplacement de ces attributs visuels est représenté par Cette signature est générée à partir des un attribut "location" propriétés de l'image, qui sont transcrites en La combinaison de cet attribut avec un des trois attributs visuels attributs visuels. (couleur, texture, forme) forme un critère de recherche. La signature contient toutes les informations relatives La requête porte sur les attributs de la signature. aux différentes zones de l'image et au fond de l'image Bases de données Multimédia 17 Bases de données Multimédia 18 3
  • 4. Bases de données Multimédia Bases de données Multimédia Oracle - ORDImageSignature Oracle - ORDImageSignature La comparaison de 2 images se base donc sur la comparaison de leurs signatures. La couleur signature ORDSYS.ORDImageSignature La propriété "color" représente la distribution Elles peuvent générées par la méthode des couleurs dans l'image. g generateSignature % des couleurs La comparaison est alors basée sur les couleurs locales La couleur et l'attribut "location" représentent la et globales, la structure et le texture de l'image. répartition des couleurs et où elles apparaissent. La méthode evaluateScore permet de comparer deux signatures et d'évaluer leur ressemblance. Répartition des couleurs dans l'image La méthode isSimilar permet en plus de fixer un seuil de ressemblance et retourne 1 si le seuil est atteint et 0 sinon Bases de données Multimédia 19 Bases de données Multimédia 20 Bases de données Multimédia Bases de données Multimédia Oracle - ORDImageSignature Oracle - ORDImageSignature La forme La texture La structure de l'image peut être utilisée Elle est utilisée pour les requêtes portant sur pour rechercher répondre à des requêtes des i d images ayant la même motif tl ê tif sur des formes simples : Marbre, sable, pierre … Lignes d'horizon dans un paysage Ces images sont difficiles à classifier par Structures rectangulaires dans les bâtiments manque de vocabulaire sur les textures Structures organiques comme les arbres Difficulté pour exprimer les requêtes Bases de données Multimédia 21 Bases de données Multimédia 22 Bases de données Multimédia Bases de données Multimédia Oracle - ORDImageSignature Oracle - ORDImageSignature L'attribut "localisation" Le poids Il ne représente pas un attribut visuel, mais il Il permet de pondérer l'importance accordée à est utilisé en combinaison avec l'un des 3 un attribut. attributs visuels Le poids doit être compris entre 0 et 1. Couleur Si le poids est 0, l'attribut est ignoré; Si le poids est 1, une similarité complète est Forme attendue sur cet attribut. Texture La valeur du poids d'un attribut doit être initialisée à une valeur >0. Bases de données Multimédia 23 Bases de données Multimédia 24 4
  • 5. Bases de données Multimédia Bases de données Multimédia Oracle - ORDImageSignature Oracle - ORDImageSignature Le score Le degré de similarité entre 2 images est donc Il représente la mesure de similarité entre deux calculé à partir images calculée à partir des valeurs des attributs visuels. Des scores pour chacun des attributs visuels La valeur du score est comprise entre 0 et 100. Des poids Plus la similarité est grande, plus le score est Similarité = petit poids_couleur*score_couleur Score=0, images similaires + poids_forme*score_forme Score=100, aucune similarité + poids_texture*score_texture (somme des poids =1, 0<=score<=100 Bases de données Multimédia 25 Bases de données Multimédia 26 Bases de données Multimédia Bases de données Multimédia Oracle - ORDImageSignature Oracle - ORDImageSignature CREATE OR REPLACE TYPE ORDImageSignature AS OBJECT Le seuil ( signature BLOB Il permet de fixer la valeur qui sert de -- les informations de localisation, texture, forme et couleur -- sont stockées dans un BLOB filtre pour sélectionner les images images. STATIC FUNCTION i it RETURN ORDImageSignature, init ORDI Si t STATIC FUNCTION evaluateScore(sig1 IN ORDImageSignature, sig2 IN Si le score est <= seuil, l'image est ORDImageSignature, weights IN VARCHAR2) RETURN FLOAT, sélectionnée, STATIC FUNCTION isSimilar(sig1 IN ORDImageSignature, sig2 IN ORDImageSignature, weights IN VARCHAR2, threshold IN FLOAT) Si le score est > seuil, l'image est considérée RETURN INTEGER, comme différente et non retenue. MEMBER PROCEDURE generateSignature(image IN ORDImage) ); Bases de données Multimédia 27 Bases de données Multimédia 28 Bases de données Multimédia Bases de données Multimédia Oracle - ORDImageSignature Oracle - ORDImageSignature Constructeur : init( ) RETURN ORDImageSignature; Méthode de comparaison de deux images Cette méthode est une méthode static qui initialise le Avec retour de la valeur du score BLOB à vide (empty_blob()) evaluateScore(sig1 IN ORDImageSignature, sig2 IN ORDImageSignature, weights IN VARCHAR2) RETURN FLOAT; BEGIN Exemple de comparaison de deux images : INSERT INTO media (product_id, product_photo, product_photo_signature) -- déclarations VALUES (1, ORDSYS.ORDImage.init('FILE', DECLARE 'FILE_DIR','speaker.jpg'), t_image ORDSYS.ORDImage; ORDSYS.ORDImageSignature.init()); c_image ORDSYS.ORDImage; COMMIT; image_sig ORDSYS.ORDImageSignature; END; compare_sig ORDSYS.ORDImageSignature; / score FLOAT; Bases de données Multimédia 29 Bases de données Multimédia 30 5
  • 6. Bases de données Multimédia Bases de données Multimédia Oracle - ORDImageSignature Oracle - ORDImageSignature -- calcul de la signature de la 1ère image -- calcul de la signature de la 2ème image SELECT p.product_photo, SELECT p.product_photo, p.product_photo_signature INTO p.product_photo_signature INTO c_image, t_image, image_sig t image image sig FROM media p WHERE compare_sig compare sig FROM media p WHERE p.product_id = 1 FOR UPDATE; p.product_id = 2 FOR UPDATE; image_sig.generateSignature(t_image); compare_sig.generateSignature(c_image); UPDATE media p SET UPDATE media p SET p.product_photo_signature = image_sig p.product_photo_signature = compare_sig WHERE product_id =1; WHERE product_id = 2; Bases de données Multimédia 31 Bases de données Multimédia 32 Bases de données Multimédia Bases de données Multimédia Oracle - ORDImageSignature Oracle - ORDImageSignature -- Comparaison des signatures Méthode de comparaison isSimilar (retourne 0 ou 1) SELECT p.product_photo_signature INTO image_sig FROM isSimilar(sig1 IN ORDImageSignature, sig2 IN media p WHERE p.product_id = 1; ORDImageSignature, weights IN VARCHAR2, threshold SELECT p.product photo signature INTO compare sig p.product_photo_signature compare_sig IN FLOAT) RETURN INTEGER; FROM media p WHERE p.product_id = 2; score:=ORDSYS.ORDImageSignature.evaluateScore(image_s ig,compare_sig,'color="1.0",texture=0,shape=0,locatio value := ORDSYS.ORDImageSignature.isSimilar n=0'); (image_sig1,image_sig2,'color="1.0",texture=0,shap DBMS_OUTPUT.PUT_LINE('Score is ' || score); e=0,location=0',10); END; / Bases de données Multimédia 33 Bases de données Multimédia 34 Bases de données Multimédia Oracle - InterMedia Conclusion Aperçu du package ORDSYS Avec les types ORDSource, ORDImage, ORDImageSignature Et les méthodes des types Utilisation dans des programmes PL/SQL Bases de données Multimédia 35 6