Project 3 - Image Retrival

Brian Le
CSE 455
Winter 09


Query Results for beach_1 (using OPP, INT, and spatial information)


beach_1
INT = 1.00

crater_4
INT = 0.49

boat_3
INT = 0.46

beach_5
INT = 0.46

sunset2_4
INT = 0.44

boat_2
INT = 0.41

boat_5
INT = 0.40

sunset2_2
INT = 0.39

stHelens_3
INT = 0.39

crater_3
INT = 0.38

sunset2_3
INT = 0.37

crater_2
INT = 0.37

crater_5
INT = 0.36

stHelens_2
INT = 0.35

beach_4
INT = 0.34

stHelens_4
INT = 0.34

beach_2
INT = 0.33

beach_3
INT = 0.33

stHelens_5
INT = 0.32

pond_3
INT = 0.31

crater_1
INT = 0.31

sunset1_5
INT = 0.30

pond_1
INT = 0.29

boat_4
INT = 0.28

stHelens_1
INT = 0.26

sunset2_1
INT = 0.25

pond_2
INT = 0.22

sunset2_5
INT = 0.22

boat_1
INT = 0.21

sunset1_3
INT = 0.20

pond_5
INT = 0.19

sunset1_1
INT = 0.19

sunset1_2
INT = 0.19

sunset1_4
INT = 0.17

pond_4
INT = 0.16

cherry_1
INT = 0.12

cherry_5
INT = 0.11

cherry_2
INT = 0.11

cherry_4
INT = 0.09

cherry_3
INT = 0.09

Query Results for beach_1 (using OPP, INT, and no spatial information)


beach_1
INT = 1.00

boat_3
INT = 0.61

crater_4
INT = 0.56

boat_4
INT = 0.56

boat_5
INT = 0.55

sunset2_2
INT = 0.53

pond_3
INT = 0.51

sunset2_4
INT = 0.50

crater_5
INT = 0.50

stHelens_3
INT = 0.49

sunset2_3
INT = 0.49

crater_3
INT = 0.49

crater_2
INT = 0.49

beach_5
INT = 0.48

beach_2
INT = 0.48

beach_3
INT = 0.48

pond_1
INT = 0.47

beach_4
INT = 0.47

boat_2
INT = 0.46

stHelens_4
INT = 0.45

pond_2
INT = 0.44

pond_5
INT = 0.43

stHelens_2
INT = 0.40

sunset2_1
INT = 0.37

pond_4
INT = 0.36

boat_1
INT = 0.36

crater_1
INT = 0.36

sunset1_5
INT = 0.33

stHelens_5
INT = 0.33

sunset2_5
INT = 0.31

sunset1_1
INT = 0.28

stHelens_1
INT = 0.28

sunset1_3
INT = 0.27

sunset1_2
INT = 0.26

sunset1_4
INT = 0.22

cherry_2
INT = 0.16

cherry_1
INT = 0.16

cherry_5
INT = 0.15

cherry_3
INT = 0.14

cherry_4
INT = 0.13

Query Results for boat_5 (using OPP, INT, and spatial information)


boat_5
INT = 1.00

boat_3
INT = 0.86

boat_4
INT = 0.70

boat_2
INT = 0.63

crater_4
INT = 0.43

beach_1
INT = 0.40

crater_5
INT = 0.39

sunset2_4
INT = 0.33

beach_2
INT = 0.30

stHelens_5
INT = 0.30

beach_5
INT = 0.30

cherry_5
INT = 0.28

beach_3
INT = 0.27

stHelens_1
INT = 0.26

sunset2_5
INT = 0.26

crater_2
INT = 0.25

sunset1_5
INT = 0.24

crater_3
INT = 0.23

sunset1_3
INT = 0.23

sunset1_2
INT = 0.23

stHelens_2
INT = 0.22

crater_1
INT = 0.22

beach_4
INT = 0.22

pond_3
INT = 0.21

stHelens_3
INT = 0.20

pond_5
INT = 0.19

pond_1
INT = 0.19

pond_2
INT = 0.18

cherry_1
INT = 0.18

stHelens_4
INT = 0.18

sunset1_1
INT = 0.17

sunset2_2
INT = 0.17

cherry_2
INT = 0.17

boat_1
INT = 0.16

cherry_3
INT = 0.14

sunset2_3
INT = 0.14

pond_4
INT = 0.14

sunset1_4
INT = 0.14

sunset2_1
INT = 0.11

cherry_4
INT = 0.07

Query Results for boat_5 (using OPP, INT, and no spatial information)


boat_5
INT = 1.00

boat_3
INT = 0.87

boat_4
INT = 0.75

boat_2
INT = 0.70

beach_1
INT = 0.55

crater_4
INT = 0.48

beach_2
INT = 0.47

crater_5
INT = 0.44

beach_3
INT = 0.43

beach_5
INT = 0.43

sunset2_4
INT = 0.41

beach_4
INT = 0.37

stHelens_5
INT = 0.37

pond_5
INT = 0.37

crater_3
INT = 0.36

sunset2_5
INT = 0.35

stHelens_2
INT = 0.32

crater_2
INT = 0.31

stHelens_1
INT = 0.31

cherry_5
INT = 0.30

crater_1
INT = 0.30

stHelens_3
INT = 0.29

sunset1_5
INT = 0.26

sunset1_3
INT = 0.26

pond_1
INT = 0.26

stHelens_4
INT = 0.26

sunset2_2
INT = 0.26

sunset1_2
INT = 0.26

pond_2
INT = 0.25

pond_3
INT = 0.25

boat_1
INT = 0.23

cherry_1
INT = 0.23

cherry_2
INT = 0.23

sunset2_3
INT = 0.22

pond_4
INT = 0.21

sunset1_1
INT = 0.21

cherry_3
INT = 0.21

sunset1_4
INT = 0.21

sunset2_1
INT = 0.18

cherry_4
INT = 0.16

Query Results for cherry_3 (using OPP, INT, and spatial information)


cherry_3
INT = 1.00

cherry_4
INT = 0.81

cherry_1
INT = 0.76

cherry_2
INT = 0.67

cherry_5
INT = 0.56

stHelens_1
INT = 0.23

sunset2_5
INT = 0.20

crater_5
INT = 0.20

sunset1_2
INT = 0.19

boat_2
INT = 0.18

boat_1
INT = 0.18

beach_3
INT = 0.18

sunset1_3
INT = 0.17

crater_4
INT = 0.17

stHelens_2
INT = 0.17

stHelens_3
INT = 0.17

stHelens_4
INT = 0.16

crater_3
INT = 0.16

sunset1_1
INT = 0.15

beach_4
INT = 0.15

boat_3
INT = 0.15

boat_5
INT = 0.14

sunset1_5
INT = 0.14

boat_4
INT = 0.14

beach_2
INT = 0.13

pond_5
INT = 0.12

pond_3
INT = 0.11

stHelens_5
INT = 0.11

sunset1_4
INT = 0.11

pond_2
INT = 0.10

sunset2_4
INT = 0.10

beach_5
INT = 0.10

pond_1
INT = 0.10

beach_1
INT = 0.09

crater_2
INT = 0.07

crater_1
INT = 0.07

pond_4
INT = 0.07

sunset2_3
INT = 0.04

sunset2_2
INT = 0.04

sunset2_1
INT = 0.03

Query Results for cherry_3 (using OPP, INT, and no spatial information)


cherry_3
INT = 1.00

cherry_1
INT = 0.86

cherry_2
INT = 0.83

cherry_4
INT = 0.83

cherry_5
INT = 0.62

boat_2
INT = 0.28

stHelens_1
INT = 0.27

pond_5
INT = 0.26

beach_2
INT = 0.24

sunset1_3
INT = 0.24

sunset2_5
INT = 0.24

pond_4
INT = 0.23

boat_3
INT = 0.23

sunset1_2
INT = 0.23

stHelens_3
INT = 0.23

stHelens_2
INT = 0.23

beach_3
INT = 0.23

crater_5
INT = 0.22

sunset1_1
INT = 0.22

crater_4
INT = 0.22

boat_1
INT = 0.21

boat_5
INT = 0.21

stHelens_4
INT = 0.20

crater_3
INT = 0.20

pond_3
INT = 0.19

beach_4
INT = 0.19

pond_1
INT = 0.18

stHelens_5
INT = 0.18

sunset1_5
INT = 0.17

pond_2
INT = 0.17

boat_4
INT = 0.16

sunset1_4
INT = 0.15

beach_1
INT = 0.14

crater_2
INT = 0.13

sunset2_4
INT = 0.13

beach_5
INT = 0.11

crater_1
INT = 0.11

sunset2_3
INT = 0.08

sunset2_2
INT = 0.07

sunset2_1
INT = 0.05

Query Results for stHelens_2 (using OPP, INT, and spatial information)


stHelens_2
INT = 1.00

stHelens_3
INT = 0.83

stHelens_4
INT = 0.78

stHelens_5
INT = 0.54

beach_3
INT = 0.47

stHelens_1
INT = 0.42

boat_1
INT = 0.41

beach_4
INT = 0.41

crater_1
INT = 0.36

beach_1
INT = 0.35

beach_5
INT = 0.30

boat_3
INT = 0.29

beach_2
INT = 0.29

pond_3
INT = 0.26

pond_1
INT = 0.26

boat_2
INT = 0.24

crater_4
INT = 0.24

cherry_5
INT = 0.23

pond_2
INT = 0.23

crater_3
INT = 0.23

boat_5
INT = 0.22

boat_4
INT = 0.21

crater_5
INT = 0.21

sunset2_5
INT = 0.20

cherry_1
INT = 0.20

sunset1_3
INT = 0.20

sunset1_2
INT = 0.19

sunset1_1
INT = 0.19

cherry_2
INT = 0.19

pond_5
INT = 0.19

cherry_3
INT = 0.17

crater_2
INT = 0.15

sunset2_4
INT = 0.14

cherry_4
INT = 0.13

sunset1_5
INT = 0.13

sunset1_4
INT = 0.13

sunset2_3
INT = 0.13

sunset2_2
INT = 0.11

pond_4
INT = 0.10

sunset2_1
INT = 0.10

Query Results for stHelens_2 (using OPP, INT, and no spatial information)


stHelens_2
INT = 1.00

stHelens_3
INT = 0.87

stHelens_4
INT = 0.81

stHelens_5
INT = 0.55

beach_3
INT = 0.49

stHelens_1
INT = 0.47

boat_1
INT = 0.47

crater_5
INT = 0.46

crater_4
INT = 0.44

beach_4
INT = 0.43

boat_4
INT = 0.42

crater_3
INT = 0.41

beach_1
INT = 0.40

boat_3
INT = 0.39

boat_2
INT = 0.38

crater_1
INT = 0.38

pond_3
INT = 0.38

pond_5
INT = 0.37

beach_5
INT = 0.37

beach_2
INT = 0.33

crater_2
INT = 0.32

boat_5
INT = 0.32

sunset2_3
INT = 0.32

sunset2_2
INT = 0.32

pond_2
INT = 0.31

pond_1
INT = 0.31

sunset2_5
INT = 0.31

pond_4
INT = 0.30

sunset1_3
INT = 0.30

sunset1_2
INT = 0.29

sunset2_4
INT = 0.29

cherry_5
INT = 0.28

cherry_1
INT = 0.27

sunset1_1
INT = 0.27

cherry_2
INT = 0.26

cherry_3
INT = 0.23

cherry_4
INT = 0.22

sunset1_5
INT = 0.20

sunset2_1
INT = 0.20

sunset1_4
INT = 0.17

Query Results for sunset1_2 (using OPP, INT, and spatial information)


sunset1_2
INT = 1.00

sunset1_3
INT = 0.93

sunset1_1
INT = 0.86

sunset2_4
INT = 0.55

sunset1_4
INT = 0.47

sunset2_5
INT = 0.44

sunset1_5
INT = 0.41

boat_2
INT = 0.34

crater_5
INT = 0.30

sunset2_3
INT = 0.29

beach_2
INT = 0.28

sunset2_2
INT = 0.28

crater_4
INT = 0.27

beach_3
INT = 0.26

boat_4
INT = 0.24

beach_4
INT = 0.23

boat_5
INT = 0.23

boat_3
INT = 0.23

sunset2_1
INT = 0.20

cherry_2
INT = 0.20

crater_2
INT = 0.20

stHelens_2
INT = 0.19

cherry_3
INT = 0.19

stHelens_3
INT = 0.19

cherry_5
INT = 0.19

cherry_1
INT = 0.19

beach_1
INT = 0.19

crater_3
INT = 0.18

beach_5
INT = 0.17

stHelens_1
INT = 0.17

crater_1
INT = 0.16

pond_4
INT = 0.15

cherry_4
INT = 0.15

stHelens_4
INT = 0.15

stHelens_5
INT = 0.14

boat_1
INT = 0.13

pond_5
INT = 0.12

pond_2
INT = 0.08

pond_1
INT = 0.08

pond_3
INT = 0.07

Query Results for sunset1_2 (using OPP, INT, and no spatial information)


sunset1_2
INT = 1.00

sunset1_3
INT = 0.94

sunset1_1
INT = 0.86

sunset2_4
INT = 0.63

sunset2_5
INT = 0.59

sunset1_4
INT = 0.51

sunset1_5
INT = 0.50

boat_2
INT = 0.37

crater_4
INT = 0.36

crater_5
INT = 0.35

sunset2_3
INT = 0.34

sunset2_2
INT = 0.34

beach_3
INT = 0.32

stHelens_3
INT = 0.30

beach_2
INT = 0.30

pond_4
INT = 0.30

stHelens_2
INT = 0.29

crater_1
INT = 0.29

sunset2_1
INT = 0.29

boat_4
INT = 0.28

beach_5
INT = 0.28

boat_1
INT = 0.28

crater_3
INT = 0.27

pond_5
INT = 0.27

beach_4
INT = 0.27

stHelens_5
INT = 0.26

beach_1
INT = 0.26

boat_5
INT = 0.26

stHelens_4
INT = 0.25

cherry_2
INT = 0.25

boat_3
INT = 0.25

cherry_1
INT = 0.25

crater_2
INT = 0.24

cherry_3
INT = 0.23

stHelens_1
INT = 0.22

cherry_4
INT = 0.22

cherry_5
INT = 0.20

pond_2
INT = 0.18

pond_1
INT = 0.18

pond_3
INT = 0.17

Original Google Results for beach

Re-ordered Google Results for beach_1 (using OPP, INT, and spatial information)


beach_16
INT = 0.59

beach_1
INT = 0.41

beach_7
INT = 0.36

beach_18
INT = 0.35

beach_8
INT = 0.33

beach_15
INT = 0.30

beach_6
INT = 0.23

beach_9
INT = 0.22

beach_5
INT = 0.22

beach_13
INT = 0.22

beach_10
INT = 0.20

beach_2
INT = 0.18

beach_14
INT = 0.16

beach_19
INT = 0.16

beach_12
INT = 0.15

beach_3
INT = 0.13

beach_11
INT = 0.10

beach_17
INT = 0.09

beach_4
INT = 0.04

beach_20
INT = 0.04

Original Google Results for boat

Re-ordered Google Results for boat_2 (using OPP, INT, and spatial information)


boat_2
INT = 1.00

boat_5
INT = 0.63

boat_3
INT = 0.60

boat_4
INT = 0.52

boat_9
INT = 0.51

boat_17
INT = 0.38

boat_16
INT = 0.37

boat_13
INT = 0.36

boat_12
INT = 0.31

boat_8
INT = 0.30

boat_11
INT = 0.30

boat_6
INT = 0.25

boat_14
INT = 0.22

boat_7
INT = 0.21

boat_20
INT = 0.20

boat_19
INT = 0.20

boat_1
INT = 0.19

boat_18
INT = 0.17

boat_10
INT = 0.17

boat_15
INT = 0.09

Retrieval Performance


It seemed that with my results, that when I used spatial information for matching, I recieved more precise results. But in the long run, both methods seemed to have equally precision results. On the queries that were more chaotic in what they returned, the spatial searches did perform a little better.

Bells and Whistles

For this project, I created a simple GUI for the user to perform queries. In the UI I supply a field for the query image and have a set of 3 radio buttons that allow the user to select the color space, similarity metric and whether or not to use spatial information. There is also a place to chose to output the query results to a file or to the console when run from command line.

My implementation makes assumptions on where the images are located. It assumes that all images are in a folder named "images" on the level above the binary files, this assumes the binary files are kept in a folder. It is geared to use the 40 supplied images as the database of images, in order to use another set of images as a database, the source files must be modified.