Tik-76.115 Vaatimusmäärittely

PicSearch -- Interactive Picture Searcher

http://
Viimeksi päivitetty .


Sisällysluettelo

1. Johdanto
2. Yleiskuvaus
3. Toiminnot
4. Liittymät
5. Muut ominaisuudet
6. Laatusuunnitelma
7. Extrat


1. Johdanto

PicSearch on kuvan sisällön perusteella tehtävien hakujen (kuvahaku, query by image content) tutkimiseen tarkoitettu prototyyppi-ohjelma. Asiakkaan tavoitteena on saada toimiva kehikko, johon uusien hakualgoritmien lisäys on helppoa ja jolla näiden algoritmien toimivuutta voidaan testata. Ohjelmistoa on tarkoitus käyttää kuvankäsittelyalan tutkimustyössä yliopistolla.

Vaikka järjestelmä on tarkoitettu lähinnä tutkimukseen, tulee PicSearch:n käyttöliittymän olla myös soveltuva "loppukäyttäjälle". Projektin tuloksena syntyy siis ohjelmiston ydin ja liittymät tulevaa kehitystä varten. Lisäksi projektin puitteissa ohjelmoidaan PicSearch:iin valmiiksi asiakkaan määräämä hakualgoritmi.

PicSearch:in keskeinen ominaisuus on vuorovaikutteisuus: käyttäjä tarkentaa hakua sen sijaan että käyttäisi hakuavaimena aina jotain valmista kuvaa + sopivia parametreja.

Määritelmiä ja viitteitä

Kuvahaulla tarkoitetaan kuvien hakemista kuvatietokannasta käyttäjän antamien kriteerien perusteella. Käyttäjän antamia arvoja verrataan kuvista joillakin algoritmeilla määriteltyihin parametreihin (nämä on laskettu haun nopeuttamiseksi kuvista yleensä jo etukäteen). Tällaisten parametrien muodostamaa avainta kutsutaan tässä signature:ksi. Signature:n laskevia algoritmeja kutsutaan tässä dokumentissa D-algoritmeiksi (sanasta "Description"). Metodia, jolla kyseisen algoritmin laskemia signature:ja vertaillaan, kutsumme D-vertailijaksi. Kuvaa muokkaavia algoritmeja kutsumme tässä IP-algoritmeiksi (sanoista "Image Processing"). Kuvista osia hahmottavia algortimeja puolestaan kutsumme S-algoritmeiksi (sanasta "Segmentation").

Eri järjestelmät eroavat paljon siinä kuinka käyttäjä määrittelee hakuparametrit ja mitä algoritmeja käytetään. Lähes aina kuitenkin käytetään jonkinlaista vertailukuvaa, johon haettavia kuvia verrataan (siis eräänlainen esimerkkihaku, query by example). Vertailukuvana voi toimia esim. valmis kuva tai käyttäjän vuorovaikutteisesti maalaama malli. Aiheesta löytyy jo muutamia toimivia järjestelmiä sekä tutkimusta:

  1. Jacobs et al. (1995). Fast Multiresolution Image Querying. SIGGRAPH'95
  2. Orphanoudakis et al. (1994). I2C: A System for the Indexing, Storage, and Retrieval of Medical Images by Content. *FTP-linkki*
  3. Jain et al. (march 1996). Object Matching Using Deformable Templates. IEEE Transactions on Pattern Analysis and Machine Intelligence.
  4. Jain et al. (march 1996). Vehicle Segmentation and Classification Using Deformable Templates. IEEE Transactions on Pattern Analysis and Machine Intelligence.
  5. Petrakis et al. (1993). A Generalized Approach for Image Indexing and Retrieval Based on 2-D Strings. *FTP-linkki*
  6. Petrakis (1993). Image Representation, Indexing and Retrieval Based on Spatial Relationships and Properties of Objects. University of Crete, Department of Computer Science.

  7. IBM:n Query by Image Content (QBIC), http://wwwqbic.almaden.ibm.com/%7eqbic/qbic.html
  8. MARS, http://quark.ifp.uiuc.edu:2020/mars/alex/mars.html
  9. Virage, http://www.virage.com/cgi-bin/random
Projektin tuloksena syntyvä systeemi noudattelee pääpiirteiltään 2. viitteen järjestelmän arkkitehtuuria. PicSearch:iin toteutetaan 1. viitteen kuvaama D-algoritmi (ja sen vastaava D-vertailija).

Tämä dokumentti

Yleiskuvaus-luvussa kuvataan järjestelmän käyttöympäristö ja rakenne yleisellä tasolla sekä toteutuksessa käytettävät työkalut. Toiminnot-luvussa määritellään toteuttavat toiminnot. Liittymät-luvussa kuvataan järjestelmään sisältyvät liittymät: algoritmi-alijärjestelmä, tietokanta ym. Muut ominaisuudet-luvussa määritetään vaadittavat ei-toiminnalliset ominaisuudet. Laatusuunnitelma-luvussa esitetään käytettävät laatukriteerit ja näiden priorisointi. Extrat-luvussa kuvataan projektin vaatimuksiin kuulumattomat osat, joita kuitenkin saatetaan ainakin osittain toteuttaa.

2. Yleiskuvaus

Käyttöympäristö

Järjestelmästä pyritään luomaan mahdollisimman riippumaton käyttöjärjestelmästä ja ikkunointijärjestelmästä. PicSearch toimitetaan ja sen toimivuus testataan LINUX:lla. Käyttöliittymä on sovittu toteutettavaksi TCL/Tk:lla siirrettävyyden takaamiseksi.

Perusarkkitehtuuri

Järjestelmästä on kaksi pääliittymää ympäristöön: käyttöliittymä ja liittymä kuvatietokantaan. Projektin piiriin ei kuulu varsinaisen kuvatietokannan rakentaminen. Projektin puitteissa toteutetaan kuitenkin jokin mahdollisimman yksinkertainen järjestely kuvien tallettamiseen. Kuvista lasketut signature:t talletetaan erikseen.

PicSearch jaetaan erityisiin alijärjestelmiin, joiden väliin määritellään rajapinnat (API:t). Näistä on tarkempi kuvaus luvussa Liittymät. Tietokannan käsittely ohjelmoidaan omaksi erilliseksi osaksi järjestelmän tietokanta-alijärjestelmää. Näin taataan mahdollisuus siirtyä kehittyneemmän tietokannan käyttöön.

Käyttöliittymän ulkoasu ja toiminnallisuus määritellään yhteistyössä asiakkaan kanssa Määrittely-vaiheen aikana. Joka tapauksessa käytetään ikkunointisysteemiä, jossa käyttäjä voi interaktiivisesti määrittää kuvahaussa käytetyn vertailukuvan sekä seurata haun tuloksia. Käyttöliittymän käsittely ohjelmoidaan osaksi järjestelmän käyttöliittymä-alijärjestelmää.

Esimerkkinäyttö: ScreenImage

Toteutustyökalut

Käyttöliittymä toteutetaan Tcl/Tk:lla (versiot 7.5 ja 4.1). Pääohjelmointikieleksi on valittu C++. Tcl/Tk:hon liittyviä osia voidaan myös koodata C-kielellä. Kääntäjänä käytetään gcc:tä.

3. Toiminnot

Järjestelmän keskeisimmät ominaisuudet ovat: Käyttäjän on myös pystyttävä :

Tuettuja kuvaformaatteja ovat:

4. Liittymät

Perusarkkitehtuuri

PicSearch jakautuu loogisesti kuuteen alijärjestelmään:
  1. PicCore: ydinohjelma joka käyttää kaikkia muita alijärjestelmiä, toimii järjestelmän "masterina"
  2. PicGUI: hoitaa käyttöliittymän toiminnallisuutta
  3. PicDbEngine: suorittaa haut kuvatietokannasta signature:jen perusteella, hoitaa kuvien lukemisen/tallettamisen tietokantaan
  4. PicDescr: laskee kuvista signature:ja eri D-algoritmeilla
  5. PicIP: suorittaa kuvien käsittelyä IP-algoritmeilla
  6. PicSegment: suorittaa kuvien segmentointia S-algoritmeilla
PicSearch:n alijärjestelmät: SystemArchImage

Ohjelmointirajapinnat

Koska projektin keskeinen tavoite on tuottaa laajennettava järjestelmä, on alijärjestelmien väliset ohjelmointirajapinnat oltava selkeästi määriteltyjä. Järjestelmään kuuluu viisi sisäistä ohjelmointirajapintaa, jotka liittävät kunkin alijärjestelmän PicCore:en :

5. Muut ominaisuudet

Järjestelmän keskeisimmät ei-toiminnalliset ominaisuudet ovat laajennettavuus ja ylläpidettävyys. Näitä ominaisuuksia pyritään aikaansaamaan olio-tekniikalla, hyvillä rajapintamäärittelyillä ja kattavalla dokumentaatiolla.

Kolmas keskeinen ei-toiminnallinen ominaisuus on siirrettävyys. Tätä tavoitetta varten ympäristöön tapahtuvat liitännät tulee eristää riittävän hyvin, jotta uuteen ympäristöön siirto edellyttää muutoksia mahdollisimman pienelle alueelle ohjelmistoon.

Käyttöliittymän tulee olla soveltuva helppoon kuvien hakuun ja sen kautta on oltava pääsy kaikkiin järjestelmän toimintoihin.

Järjestelmän luotettavuudelle ei ole asetettu mitään erityisvaatimuksia. Jos joitain alijärjestelmiä toteutetaan erillisinä prosesseina, ei näiden kaatuminen saa aiheuttaa koko systeemin kaatumista (ei koske PicGUI:ta).

Järjestelmän nopeus ei ole ensisijainen tavoite. Koska kuitenkin hauilta yleensä odotetaan interaktiivisuuden vaatimaa vauhtia, on yllä mainituista ominaisuuksista tingittävä jos systeemistä on kehittymässä selkeästi liian hidas.

6. Laatusuunnitelma

Seuraavassa on esitetty projektin päätavoitteet tärkeysjärjestyksessä, sekä tavoitteiden toteutumiskriteerit :
  1. Haku-toiminnot
  2. Algoritmi-toiminnot
  3. Laajennettavuus
  4. Helppokäyttöisyys
  5. Siirrettävyys
  6. Dokumentointi
  7. Tietokanta-toteutus
  8. Hakutoimintojen laajentamismahdollisuus
  9. Kuvankäsittelyalgoritmit

7. Extrat

Seuraavan listan sisältö ei kuulu projektin sisältöön, mutta joitain näistä voidaan toteuttaa, jos projektiryhmä katsoo sen tarpeelliseksi ja aikataulu antaa myöten.