CS6825: Computer Vision

ExtraCredit for Project 3's OPTION 1 - Recognition OR Visualization

                              Proposal Due Nov. 15,
                             Project DueDec. 2 ,
                               (points 130)

Evaluation Guidelines 

Choose ONLY 1 task --Recognition OR Visualization for the task.
NOTE: your documentation and code will only contain 1 of these (in the past this used to be an assigned project where both were completed)


You are to write a GUI Java application that will perform Recognition and Visualization of data as an extension of Project 3, Breast Cancer feature detection (retain all the same functionality of Project 3).

Recognition (Process->Recognize menu operation)

Using training data you will implement a nearest neighbor recognition sceme using the features you can detect with your system in Project 3. The output of this recognition (Process->Recognize) will be either Cancer(grouping all stages together....if you want to
separate into different classes discuss this with me) or No Cancer. The k-nearest neighbor algorithm is amongst the simplest of all machine learning algorithms: an object is classified by a majority vote of its neighb11ors, with the object being assigned to the class most common amongst its k nearest neighbors (k is a positive integer, typically small). If k = 1, then the object is simply assigned to the class of its nearest neighbor. You MUST have k> 1 in your implementation. Some issues and requirements (you must extend your code from Project 3).

  • Process->Recognize will only be active as a choice after the user has run Process->Feature Detect (from Project 3).
  • You will need to add a new field to the Blob class that is called recognitionLabel and will be determined through kNN as Cancer or No Cancer.
  • Training data should be created through the assistance of Project 3 - remember in Project 3 you have XML files that are produced and the CancerAnalysis object.  
    • Represent your Training data via a vector of Blobs called contains a list of Blobs TrainingDataList.
  • KNN: Create a new class Recognize with a static method kNN(CancerAnalsysis, TrainingDataList) to cycle through the Blobs that in are located in CancerAnalsysis and for each find majority vote with the Blobs in the TrainingDataList.
  • You need to add a new menu function Display->CancerAnalysis that will display the information of all the blobs in a scrollable window.
  • You need to add a new menu function File->Save CancerAnalysis that will save the xml file containing all the CancerAnalsysis information. This menu function will only be available after Process->Feature Detect of Project 3 has been done.


Here is a fun video link on kNN

Visualization

You will visualize the features of a blob (or blobs in micro-calcification case) as well as their certainty and importance and if they possess it (recognition has already taken place) their recognitionLabel (see above). It is typically the case that in any given analysis of a possible tumor/mass some features will be of more importance to others. Remember in Project 3 each feature had associated with it bot certainty and importance. Also, you will indicate a label telling if it is "Cancer-Malignant" or "No Cancer-Benign".

Proposal:

before beginning this implementation you must submit and informal proposal telling me for each feature the visualization queue(s) you are going to use to visualize it, as well as its certainty and importance. FOR ALL of your 5 features (i=1,2,3,4,5) you need to give me the following. Post your proposal to Project 4- Visualization Proposals Discussion board. Note: it may make sense (but, maybe not) to use the same certainty and importance visualization scheme for all of the features. However, you MUST have a different value visualization scheme for each feature.

  • feature i= breif description of what this feature is including an example value for a blob
    • value visualization - this is how you are going to visualize the value ....suppose the feature is area - you might indicate this by putting a bounding box around the blob (this visually showing size)
    • certainty visualization - each feature has a certainty value (0% to 100%) (see project 3 info on certainty and importance). You might decide to show certainty by opaqueness of your value visualization. Meaning if certainty is 0% for our bounding box for our area feature, we might paint this box at 50% opaqueness. Now, if certainty was 100% we would paint our bounding box at 100% opaqness. Thus how visible the value visualization is (opaqueness) would be the way with this example proposal the area feature would show its certainty.
    • importance visualization - now obviously you can't use the same visual clue you did for certainty and value. So, you have to come up with a new way to visualize this piece of information for this feature. For example, in our area case we might use color to indicate important. How? Well I might do red (red hot ... important) for values of importance = 1 (note range is 0 to 1). For unimportant where importance = 0, I could use a (boring? not visually stimulating) shade of grey. Now for somewhere in between like importance = 0.5 I could use an equal (or?) mixture of red and grey, basically dulling out the red.

 

 

Visualization is invoked via the menu option Process->Visualize. It is only available after Process->Recognize has been performed.

The goal of our Visualization Application is to presenting data in such a manner that users are made aware of the locations and if possible the meaning of the features as well as its certainty and importance . This is a unique project in that there is NO right solution to this problem and every person may have different ideas on how to visualize this information. Part of this work is to review what others have done in this area (visualiztion, uncertainty visualization, display of breast cancer detection results) and to propose something unique in the way that your system visualizes. Here are some techinques/visual queues some of which have been used in previous generic visualization research

    • Opaqueness-Transparency
    • Icons/glyphs
    • Color (psuedo-coloring or color representation)
    • Brightness/Intensity
    • Texture
    • Atmospheric Effects (mine, i.e could make misty/foggy areas of uncertainty, related but different than opaqueness-transparency)
    • Adding/Altering Geometry
    • Layers (mine, 1-each kind of uncertainty could have a separate layer that you could hide..i.e. Photoshop, 2-each new report,if appropriate, of an uncertainty could be in its own layer, again that you could hide as in Photoshop)
    • Focus
    • Pop-up textual information (mine)
    • Animations
    • Time Fadding (mine, i.e. disappears in time)
    • Sounds (volume, key, duration, fade)

     

Why is there unceratinty and kinds of data:

There is all kinds of data that one can imagine you would wish to visualize that would posses uncertainty. Some of your detected breast cancer features may be already in a visual form such as pixels belonging to a boundary and its shape.    However, others like possibly a measure of texture.    So, the task of visualizing the data (how do you show texture, how do you show the boundary shape) as well as visualizing its importance and its certainty must be accomplished.

With each different kind of data, different kinds of uncertainties can exist.

Visualization Controls (OPTIONAL extra Credit +30 points added to your total class score).

For extra credit you may choose to have the following controls that become availabe only after Process->Visualize has been selected by the user. Along with simply displaying the information and uncertainties visually to the user, you can offer the user interface tools to alter the display of the data so that they in a sense can analyze the data visually through manipulating it. Some ideas here can include:

  • Blob Filter: allowing the user to filter/select what kinds of data they want displayed -
    • user can select visualiztion of one blob at a time by selecting id of blob in some GUI component (spinner, etc)
    • only some of the features (only feature 1 and 3 not features 2,4,5) selectable for user via some GUI components (i.e. radio buttons)
  • Importance Filter: allow user to select what levels of importance may be displayed
    • user can filter display of features by GUI importance filter i.e. imporance >50% . user specified 50% in GUI selector for importance level. (translate to 0to 1 levels from 0-100%)
    • ALTERNATIVE: - have display only of top (1-5) features...i.e. if user selects 2 then only displays for each blob the top 2 features in terms of importance values.
  • Certainty Filter: allowing the user to select what levels of certainties may be displayed
    • user can filter display of features by GUIcertainty filter i.e. certainty >80% . user specified 80% in GUI selector for certainty level.
    • ALTERNATIVE: - have display only of top (1-5) features...i.e. if user selects 2 then only displays for each blob the top 2 features in terms of certainty values.

 

Recognition and Visualization Data Input

Input to the system should be your CancerAnalysis object (or additionally the loading of the equivalent XML file) extending the system from Project 3.

 

The Process

Click here to see an outline of the stages of this project. .
 


Other Requirements:

1) You must extend your Project 3.

2)  Program should be a Java GUI applicaiton that you compress into a JAR file for easy use.

3) See other requirements above and below.
 

 


Deliverables

  1. Visualization Proposal - following detailed example above should be posted as a thread to the "Project 4- Visualization Proposal" discussion board.
  2. Implementation and turn in of code and results. It should include 2 files turned in to blackboard project link "Project 4- Final"
    1) zipped up (using zip standard only) file containing all code (in Eclipse environment).
    2) word document (see project description). This document MUST BE AN EXTENSION OF YOUR PROJECT 3 DOCUMENT and must contain (note the NEW items are shown here in red):
    Word Document (click here for template you MUST use) that details the following:
    • Section 1 Execution Instructions:
      Instructions for me to download and run your code. YOU NEED to show me screen shots of you doing this from your uploaded blackboard code.....this forces you to make sure that I can run your code. You MUST have the following screenshots AND give description on what to do: screenshot 1.1 = screen shot of your files uploaded to Project 1 turn in folder on blackboard

      FIGURE HERE
      screenshot 1.2 = directory view of "temp" directory you unzipped file to showing the unziped files and directory structures.


      FIGURE HERE
      screenshot 1.3 = Eclipse running where you have opened up project file in "temp" directory.

      FIGURE HERE
      screenshot 1.4 = Eclipse running the application - show screenshot of it running. If I must do something beyond simply hitting the "run" button, you need to give screenshots and step by step instructions.

       

    • Section 2 Code Descpription
       A describing how code is structured and the state of how it works. Give a describption for each filename listed.
    •  

    • Section 3 Testing:
       here you give screen shots of you running the various stages of the program as detailed here:
    • section 3.1: loading image -


      FIGURE HERE
      screenshot 3.1a= pop-up file dialog box where you have selected the image you are going to load in your program.

      FIGURE HERE
      screenshot 3.1b= the image being viewed in your application that was just loaded.

      section 3.2: Blob Detection

         you need to discuss your results….where the blobs detected correctly …where the features for each blob correct.!!!
      FIGURE HERE
      screenshot 3.2a = screen shot of active image in your application you are going to process

      FIGURE HERE
      screenshot 3.2b = screen shot of ROI , new active image, that you are going to process (OPTIONAL if did not do ROI option)

      FIGURE HERE
      screenshot 3.2c = screen shot after you do Process->Feature Detecton showing BLOB results in scrollable window

      DUMP XML here
      Listing 3.2 XML file results from running Process->Feature Detction on image in screenshot 3.2.1b

      section 3.3: Recognition

         you need to discuss your results….where the blobs recognized correctly !!!!!
      FIGURE HERE
      screenshot 3.3a = screen shot of active image in your application you are going to recognize (this may be an ROI)

      FIGURE HERE
      screenshot 3.3b = screen shot after you do Process->Recognize showing BLOB results (now with recognitionLabels !!!!) in scrollable window

      DUMP XML here
      Listing 3.3 XML file results from running File->Save CancerAnalysis after doing previous step.

      section 3.4: Visualization

         you need to discuss your results….is this what you expected...how do your visuals convey the feature data and their certainty and importance values!!!!
      FIGURE HERE
      screenshot 3.4a = screen shot of active image in your application you just recognized in secton 3.3.(this may be an ROI)

      FIGURE HERE
      screenshot 3.4b = screen shot after you do Process->Visualize (now with visualization) in scrollable window

      section 3.5: Visualization Control ......ONLY if you did the extra credit.

         you need to discuss your results….is this what you expected...how do your visuals convey the feature data and their certainty and importance values!!!!
      FIGURE HERE
      screenshot 3.5a = screen shot of active image in your application you just recognized in secton 3.4.(this may be an ROI)

      FIGURE HERE
      screenshot 3.5b = screen shot showing visualization controls after you do Process->Visualize (now with visualization) in scrollable window

      FIGURE HERE
      screenshot 3.5c = screen shot showing results of Blob Filters

      FIGURE HERE
      screenshot 3.5d = screen shot showing results of Importance Filter

      FIGURE HERE
      screenshot 3.5e = screen shot showing results of Certainty Filter

    • Section 4 Comments
      Optional any comments you have regarding your code (necessary if you code is not working, you need to tell me in detail what the problem is or what is missing)

Resources

I found the following links of the web that may be helpful. Search yourself for previous research in this area.

1) Uncertainty visualiztion: http://www.cse.ucsc.edu/research/slvg/unvis.html

[2] Penn State's Uncertainty Vis. center http://www.geovista.psu.edu/research/uncertainty/

[3] Howard, D., and A. M. MacEachren. 1996. Interface design for geographic visualization: Tools for representing reliability. Cartography and Geographic Information Systems 23:59-77.

[4] Fauerbach, E., Edsall, R., Barnes, D., & MacEachren, A. (1996). Visualization of uncertainty in meteorological forecast models. M.J. Kraak & M. Molenaar (Eds.), Proceedings of the International Symposium on Spatial Data Handling (pp. 465-476), Delft, The Netherlands, August 12-16: Taylor & Francis.

[5] MacEachren, A.M. (1992). Visualizing Uncertain Information. Cartographic Perspectives, 13(Fall), 10-19.

[6] Evans, B.J. (1997). Dynamic display of spatial data-reliability: does it benefit the user? Computers & Geosciences, special issue on Exploratory Cartographic Visualization, 23(4), 409-422.

[7] International Community for Auditory Display

[8] To request Thesis on "Data Uncertainty Sonification and Visualization"

[9] van der Wel, Frans J. M. ; van der Gaag, Linda C. ; Gorte, Ben G. H. "Visual exploration of uncertainty in remote-sensing classification." Computers and Geosciences v. 24 no4 (May '98) p. 335-43

[10] Davis, Trevor J. ; Keller, C. Peter. "Modelling and visualizing multiple spatial uncertainties"  Computers and Geosciences v. 23 (May '97) p. 397-408

[11] Ehlschlaeger, Charles R. ; Shortridge, Ashton M. ; Goodchild, Michael F. ": Visualizing spatial data uncertainty using animation." Computers and Geosciences v. 23 (May '97) p. 387-95

[12]Mahoney, Diana Phillips. "The picture of uncertainty" Computer Graphics World v. 22 no11 (Nov. 1999) p. 44-6?

[13] Suresh K. Lodha, Catherine M. Wilson, Bob Sheehan, "LISTEN: Sounding Uncertainty Visualization", IEEE Visualization '96 , p.???

[14] C. M. Wittenbrink, A. T. Pang and S. K. Lodha, "Glyphs for Visualizing Uncertainty in Environmental Vector Fields", IEEE Transactions on Visualization and Computer Graphics, September 1996, pp. 266-279

[15] A. T. Pang, C. M. Wittenbrink and S. K. Lodha, "Approaches to Uncertainty Visualization", Visual Computer, November 1997, Vol.13, pp. 370-390.

[16] Goodchild, M.F., Buttenfield, B.P. and J. Wood. 1995. Introduction to Visualizing Data Validity. In H.M. Hearnshaw and D.J. Unwin (eds) Visualization in GIS. New York: Wiley.

© Lynne Grewe