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
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:
- Jacobs et al. (1995). Fast Multiresolution Image Querying. SIGGRAPH'95
- Orphanoudakis et al. (1994). I2C: A System for the Indexing, Storage,
and Retrieval of Medical Images by Content.
*FTP-linkki*
- Jain et al. (march 1996). Object Matching Using Deformable Templates.
IEEE Transactions on Pattern Analysis and Machine Intelligence.
- Jain et al. (march 1996). Vehicle Segmentation and Classification Using Deformable Templates.
IEEE Transactions on Pattern Analysis and Machine Intelligence.
- Petrakis et al. (1993). A Generalized Approach for Image Indexing and Retrieval Based on 2-D Strings.
*FTP-linkki*
- Petrakis (1993). Image Representation, Indexing and Retrieval Based on Spatial Relationships and Properties of Objects.
University of Crete, Department of Computer Science.
- IBM:n Query by Image Content (QBIC),
http://wwwqbic.almaden.ibm.com/%7eqbic/qbic.html
- MARS,
http://quark.ifp.uiuc.edu:2020/mars/alex/mars.html
- 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.
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ö:
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ä.
Järjestelmän keskeisimmät ominaisuudet ovat:
- Kyky hakea kuvia tietokannasta signature:n perusteella.
- Kyky vastaanottaa käyttäjän määrittelemä vertailukuva:
- Valmis kuva
- Interaktiivisesti maalattu
- Kyky käyttää erilaisia D-algoritmeja signature:n laskemiseksi.
- Kyky näyttää haun tulokset (kuvat).
- Kyky tallettaa kuvien signature:t tietokantaan.
Käyttäjän on myös pystyttävä :
- Määrittelemään hakutapa (sketch, drawing, texture, color, combination).
Toteutetaan ainoastaan sketch (osittain).
- Määrittelemään haussa käytettävät D-vertailijat ja näiden syötteet
(esimerkkikuva, laajennettavissa muiden parametrien syöttöä varten).
- Määrittelemään kuvan segmentoinnissa käytettävä S-algoritmi.
S-algoritmien ohjelmointi ei kuulu projektin piiriin.
- Prosessoimaan kuva jonkin IP-algoritmin läpi. Projektiin kuuluu
ainoastaan liittymän luominen ja yhden yksinkertaisen IP-algoritmin
ohjelmointi.
- Lisäämään ja poistamaan kuvia tietokannasta.
Tuettuja kuvaformaatteja ovat:
Perusarkkitehtuuri
PicSearch jakautuu loogisesti kuuteen alijärjestelmään:
- PicCore: ydinohjelma joka käyttää kaikkia muita alijärjestelmiä,
toimii järjestelmän "masterina"
- PicGUI: hoitaa käyttöliittymän toiminnallisuutta
- PicDbEngine: suorittaa haut kuvatietokannasta signature:jen
perusteella, hoitaa kuvien lukemisen/tallettamisen tietokantaan
- PicDescr: laskee kuvista signature:ja eri D-algoritmeilla
- PicIP: suorittaa kuvien käsittelyä IP-algoritmeilla
- PicSegment: suorittaa kuvien segmentointia S-algoritmeilla
PicSearch:n alijärjestelmät:
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 :
- PicGuiAPI määrittää mm. kuinka komennot välitetään ytimelle ja kuinka
kuvat siirretään näytölle
- PicDbAPI määrittää rajapinnan kuvien lukuun/kirjoitukseen/avaimella
hakuun tietokannasta.
- PicDescrAPI määrittää rajapinnan kuvista signature:ja laskeville
D-algoritmeille.
- PicIPAPI määrittää rajapinnan kuvia käsitteleville IP-algoritmeille.
- PicSegmentAPI määrittää rajapinnan S-algoritmeille.
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.
Seuraavassa on esitetty projektin päätavoitteet tärkeysjärjestyksessä,
sekä tavoitteiden toteutumiskriteerit :
- Haku-toiminnot
- Järjestelmän tulee pystyä hakemaan kuvia signature:iden avulla,
sekä näyttämään löydetyt kuvat.
Kriteeri: Hakujen oikeellisuus
pystytään verifioimaan järjestelmätestissä.
- Hakujen käynnistyksen on oltava helppoa ja signature:iden
laskennan kanssa integroitua.
Kriteeri: Hakujen käynnistys
onnistuu korkeintaan kahdella näppäimen painalluksella.
- Algoritmi-toiminnot
- Järjestelmän on kyettävä laskemaan annetuista kuvista
signature:t ohjelmoiduilla algoritmeilla sekä tallettamaan
ne tietokantaan.
Kriteeri: pystytään verifioimaan testikuvilla
järjestelmätestissä.
- Järjestelmään on oikein toteutettu asiakkaan määräämä algoritmi.
Kriteeri: pystytään verifioimaan testikuvilla järjestelmätestissä.
- Laajennettavuus
- Järjestelmän on oltava laajennettava erityisesti käytettävien
algoritmien suhteen.
Kriteeri: Uusien algoritmien lisäys
edellyttää ainoastaan ohjeistuksessa annetun rajapinnan käyttöä.
Asiakas hyväksyy algoritmien lisäyksestä kirjoitetut dokumentit.
- Käyttöliittymä voidaan helposti mukauttaa uusien algoritmien
käyttötavan mukaan.
Kriteeri: Uusien algoritmien lisäys
edellyttää ainoastaan ohjeiden mukaisia muutoksia
käyttöliittymä-alijärjestelmään. Laajojen muutosten tekemisestä
on erilliset ohjeet.
- Helppokäyttöisyys
- Järjestelmän toiminnot ovat yksinkertaisia ja helposti
käytettävissä.
Kriteeri: Pääsyt kaikkiin toimintoihin ovat käyttäjän
käytössä päänäytöllä. Minkään toiminnon käyttäminen ei vaadi
asiakkaalta erillisen ohjekirjan käyttöä.
- Järjestelmän tarjoaman haku-proseduurin on oltava vuorovaikutteinen
ja helppokäyttöinen.
Kriteeri: Normaaliin haku-proseduuriin
sisältyy korkeintaan neljä peräkkäin suoritettavaa vaihetta
(esim. hakualgoritmin valinta, esimerkkikuvan maalausta,
haku, hakualgoritmin valinta, ... sisältää kolme vaihetta)
- Siirrettävyys
- Järjestelmä on siirrettävissä toiseen
käyttöjärjestelmään ja toisen tietokannan päälle.
Kriteeri: Järjestelmän ympäristöriippuvat osat on eristetty
PicGUI- ja PicDbEngine-alijärjestelmiin sekä
käytettäviin yhteisiin peruskirjastoihin. Näiden sisällä on
ympäristöriippuva koodi selkeästi dokumentoitu ja
uuteen ympäristöön siirtymiseen tarvittava
ohjeistus kirjoitettu.
- Dokumentointi
- Järjestelmän dokumentointi on riittävää ylläpidon ja
jatkokehityksen mahdollistamiseksi.
Kriteerit: Järjestelmän
kokoaminen lähdekoodista, toimintaan asentaminen,
alijärjestelmien toiminta sekä kaikki rajapinnat on
dokumentoitu. Ohjeet laajennuksien tekemisen ja toiseen
ympäristöön siirtämisen osalta on kirjoitettu.
Asiakas hyväksyy dokumentit.
- Tietokanta-toteutus
- Yksinkertainen kuvatietokanta on toteutettu.
Kriteerit: Tietokantaan voi tallettaa kuvia ja näiden
signature:ja. Kuvat pystytään lukemaan tietokannasta ja
poistamaan sieltä.
- Hakutoimintojen laajentamismahdollisuus
- Järjestelmää voidaan kehittää käyttämään haussa useita
algoritmeja samanaikaisesti.
Kriteerit: Käyttöliittymää
voi ohjeiden perusteella laajentaa käyttämään samanaikaisesti
useita D-vertailijoita. Esimerkkikuva-ikkunoita voi luoda
useita.
- Kuvankäsittelyalgoritmit
- Järjestelmän kuvankäsittely-alijärjestelmään on toteutettu
jokin projektiryhmän valitsema kuvankäsittelyalgoritmi.
Kriteeri: Algoritmilla voi käsitellä kuvia
järjestelmän käyttöliittymän kautta.
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.
- Useampia signature:n laskevia algoritmeja
- Esim. WWW:n kautta toimiva verkkodemo-versio järjestelmästä
- Kehittyneempi kuvatietokanta: indeksointi tms.
- Useampia kuvankäsittely-algoritmeja