Difference between revisions of "Kyla Bouldin"

From WLCS
(Science Project Algorithm Code)
(Fourth Quarter)
 
(43 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== First and Second Quarter ==
 
== First and Second Quarter ==
 
Goals
 
*Create a Java-based application that uses edge detection and shape recognition to images from a camera
 
*Design and implement a shape detection algorithm in Java.
 
*Integrate shape recognition algorithm in application and test its effectiveness against image noise.
 
 
Algorithm:
 
*Changes image to grey scale and edge detected
 
*Scans the “edge detected” image for shape patterns
 
*Possible matches are assigned scores;High scores = good match, low scores = poor match.
 
*Computes the difference (in intensity) between pixels along horizontal and vertical axes of the input image.
 
(The greater the difference in intensity, the greater the resulting intensity of the highlighted edges.)
 
*Uses vectors from lines found in an image and matches with a group of vectors to identify shapes
 
 
 
# Input from camera
 
# Process Image from camera
 
# Scan for and identify edges (use vectors)
 
# Analyse vectors and identify shapes
 
  
 
work on my science project:sept 9 - dec 17<br>
 
work on my science project:sept 9 - dec 17<br>
Links on other Document..
 
  
 +
Java code on blog:
 +
http://kylabsophomoresciencefairproject.blogspot.com/
  
http://download.oracle.com/javase/1.4.2/docs/api/java/awt/image/ConvolveOp.html
+
http://download.oracle.com/javase/1.4.2/docs/api/java/awt/image/ConvolveOp.html <br>
 +
http://users.ecs.soton.ac.uk/msn/book/new_demo/sobel/ <br>
 +
http://www.pages.drexel.edu/~weg22/can_tut.html <br>
 +
http://fourier.eng.hmc.edu/e161/lectures/canny/node1.html <br>
 +
http://www.pages.drexel.edu/~weg22/edge.html <br>
 +
http://users.ecs.soton.ac.uk/msn/book/new_demo/sobel/<br>
 +
http://www.developer.com/java/other/article.php/3484591/Convolution-and-Frequency-Filtering-in-Java.htm <br>
 +
http://www.java-forums.org/new-java/7995-how-plot-graph-java-given-samples.html<br>
  
 
Convolution using a convolution kernel is a spatial operation that computes the output pixel from an input pixel by multiplying the kernel with the surround of the input pixel. This allows the output pixel to be affected by the immediate neighborhood in a way that can be mathematically specified with a kernel.  
 
Convolution using a convolution kernel is a spatial operation that computes the output pixel from an input pixel by multiplying the kernel with the surround of the input pixel. This allows the output pixel to be affected by the immediate neighborhood in a way that can be mathematically specified with a kernel.  
  
# Finish research and write proposal - due sept 16
+
==== Checklist ====
# Go through simple image processing tutorials
 
# Write program that detects and outlines edges on an image that is input from file
 
# To detect circle.. go through each point and measure distance from that point to the first point of an edge. once one point if found.... measure distance in all directs to see if the length is the same.. if it is, then it is a circle
 
# Write part of program that says if it detects that it is a circle.. print out “this is a circle”
 
# write part of program that “looks” at the image from the file and takes out the noise then runs to see what shape it is
 
# Start writing intro in paragraph form
 
# Intro, Procedure, & lit citation- due oct 11
 
# Decide how to detect sound and how to take data.
 
# Think of way to print images with sound. what paper, what size, thickness of shape.. etc.
 
# Find how to use web cam with computer and upload directly to program
 
# Find place to set up camera and images
 
# If time write program to detect squares
 
# Set up web cam with robot
 
# Set up robot or plain camera to detect where the picture is
 
# run experiment
 
# set up data in computer
 
# Data collection & results - due dec 6
 
# Start writing final paper
 
# Finish research Paper - due Dec 17
 
  
== Science Project Proposal ==
+
# Finish research and write proposal - due sept 16 √
 +
# Go through simple image processing tutorials √
 +
# Grey Scale√
 +
# Matrix Image√
 +
# Edge Detection√
 +
# Add Noise√
 +
# Paper Introduction, Procedure, Lit Cites (oct 11) √
 +
# Decide how to take data (quantitative preferred) √
 +
# Run experiment√
 +
# Set up data in computer√
 +
# Data collection & results (dec 6)√
 +
# Final Research Paper (dec 17)√
  
Step 1: Project Ideas:
+
== Third Quarter ==
# Machine Vision
 
# ?
 
# ?
 
# ?
 
# ?
 
  
'''Step 2: My Decision'''<br>
 
""How does noise affect an algorithm's ability to recognize a shape?""<br>
 
''"Title: The effect of noise on pattern recognition algorithms''"
 
  
'''Step 3: Variables'''<br>
+
Third Quarter/End of Science Proj - Start learning objective C <br>
IV - Noise level on image<br>
 
DV - Correct reading of image<br>
 
Constants - Algorithm, language, type of camera, color and size of image, lighting, location<br>
 
  
'''Step 4: Questions to Research'''<br>
+
==iPhone Application Developement (CS193P) -Winter 2010 ==
# How does image processing work?
+
http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter <br>
# What is machine vision?
+
http://flightschool.acylt.com/iphone/whatatool/ <br>
# How does a computer read a picture?
 
# What is edge detection?
 
# What is noise?
 
 
 
'''Step 5: Research (2 must be books, magazines, or online journals)'''<br>
 
1st Source -<nowiki>Knudsen, JavaWorld.com, 09/01/98, Day and Jonathan. "Image Processing with Java 2D - JavaWorld." Welcome to JavaWorld.com. 01 Sept. 1998. Web. 15 Sept. 2010. <http://www.javaworld.com/javaworld/jw-09-1998/jw-09-media.html?page=1>.</nowiki> <br>
 
Notes:<br>
 
:Convolution - allows you to combine the colors of a source pixel and its neighbors to determine the color of a destination pixel.<br>
 
 
 
:Blur, Edge Detection, Invert color, Negative Color, Thresholding<br>
 
<nowiki>2st Source - Warren E. Smith, "Image processing," in AccessScience, ©McGraw-Hill Companies, 2008, http://www.accessscience.com</nowiki> <br>
 
Notes:<br>
 
:Image Processing - manipulating data in the form of an image through several possible techniques. An image is usually interpreted as a two-dimensional array of brightness values.<br>
 
 
 
:To digitally process an image- reduce the image to a  series of numbers that can be manipulated by the computer. Each point or pixel has a number according to the color it shows, which differs in light.(256 gray levels)The point is then moved a distance usually equal to its width, and the process is repeated. The smaller the spot and the finer the scan , the more accurate the description of the transparency will be.<br>
 
:pixel - each number representing the brightness value of the image at a particular location. Also called a picture element.<br>
 
:It compares each pixel with its eight neighbours and if the pixel is larger or smaller in value than all eight, replaces it by the largest or smallest of the neighbours. This is good for removing single noisy pixels from an image.<br>
 
:An image is enhanced when it is modified so that the information it contains is more clearly evident, but enhancement can also include making the image more visually appealing. An example is noise smoothing<br>
 
 
 
:To create noise- replace the value of randomly chosen pixels by 150 (bight gray) or 0 (black). To smooth the image, a median filter can be aplied with a 3X3 pixel window.This means that the value of every pixel in the noisy image is recorded, along with the values of its nearest eight neighbors. These nine numbers are then ordered according to size, and the median is selected as the value for the pixel in the new image. As the 3 × 3 window is moved one pixel at a time across the noisy image, the filtered image is formed. This is a local operation, since the value of a pixel in the new image depends on the values of nine pixels in the old image.<br>
 
 
 
 
 
3st Source - "Machine Vision." How the New Technology Works: A Guide to High-tech Concepts. 2 ed. 18 Sep. 1991. eLibrary Science. Web. 09 Sep 2010. <br>
 
Notes: <br>
 
:Machine vision is the process by which a computer-driven device optically senses external objects and, from its analysis of the sensed data, infers accurate information about those objects. The sensing device is usually a video camera that is linked to a computer that digitizes the captured images and analyzes them.<br>
 
 
 
:For INTRODUCTION: machine vision is used for small tasks like checking for correct size or shape for automobiles, in medical diagnosing(x-rays, photographs,chromosome slides, cancer smears), military - photos.<br>
 
 
 
:note- we don’t “see” everything that our eyes sense. The mind filters out the irrelevant things. The eye-mind combo allows us to focus(zoom in) on the surroundings that interest us and then ignore the rest<br>
 
 
 
<nowiki>4st Source -.Hester, Josiah. "Ultimate Java Image Manipulation." Javalobby | The Heart of the Java Developer Community. 11 Sept. 2007. Web. 13 Sept. 2010. http://www.javalobby.org/articles/ultimate-image/. </nowiki><br>
 
Notes: <br>
 
:-Loading an image,drawing an image on the screen,Creating on image, saving Image, Translucency, Certain color Transparent,Flipping,Rotating,Resizing, Splitting, Animation<br>
 
5st Source - Levine, Martin D. Vision in Man and Machine. New York: McGraw-Hill, 1985. Print. <br>
 
Notes: <br>
 
:Page 12 - the black and white image seen by the computer “eye”: The sampling and quantification process in these applications results in an array on numbers, each of which represents how gray the image is in the small sampled area. This degree of grayness can vary from white to black as specified by an appropriate intensity value assigned according to a linear scale. <br>
 
 
 
:Page 170 - An edge in a picture may be defined as a discontinuity of abrupt change in the gray level or color. In general, pictures may contain a variety of edge sizes, some short and other long. These contrasting segments may occur at any orientation. An efficient edge-detection procedure would necessarily have to be able to distinguish contrast at different angles. Analyzing edge contest at a particular point in a picture by observing the local date at a set of frequency bandwidths.<br>
 
 
 
:Page 170 - Idealized edge models can be represented by the conventional singularity functions in math. An abrupt change in intensity can be defined by an ideal step.<br>
 
 
 
:Page 480 - There exist many theories of shape description and recognition, each attempting to explain some specific aspect of the problem. This is so because it is possible to conceptualize shape as a high-level perceptual function.<br>
 
:Principle of visual perception: “the human visual system is designed to produce organized perception. Information consisting of a variety of such spatial features as size, shape, distance, relative position, and texture is structured by the mind to represent visual scenes. These spatial features are not perceived as properties of things, objects in the scene, and not merely as abstract lines of surfaces. We do not perceives line of unattached extents; we perceive objects. All parts of each object are perceived together in one construction - not as separate, independent, and free-floating elements. All all the objects are perceived as related to each other near, far, behind, adjoining, and so fourth”<br>
 
 
 
:page 481 - “A contour is a one-dimensional interface between figure and ground” This is only acceptable in the very restricted sense in which an object is superimpose on a background. We shall assume that a contour is made up of a set of edges connected to each other but not necessarily forming a closed curve.<br>
 
 
 
:page 485 - We create a binary image by assigning a 1 to the set of pixels in the object set and a 0 to all the exterior pixels.Therefore, the elements of the border set must all touch at least one pixel in the exterior set, conceptually separating it from the interior<br>
 
 
 
:Image --> Photoelectric Transduction --> scanner and digitizer (Picture input mechanism) --> image processor --> pictorial or symbolic output<br>
 
 
 
:PRODUCE BINARY OBJECT FROM THE ORIGINAL GRAY-LEVEL IMAGE <br><br>
 
 
 
'''Step 6: Hypothesis'''<br>
 
If the amount of noise increases then the correct reading of the image decreases because the algorithm will not be able to detect the shape.
 
 
 
'''Step 7: Procedure'''<br>
 
# What materials will be needed for the project and how will you obtain them?
 
#* Computer with java
 
#* Webcam
 
#* Printer and Paper
 
#* Room with fixed lighting
 
#* Shape Recognition Algorithm
 
 
 
#  Where will you do your work?
 
#* At home or in class
 
#  How will you measure the dependent variable?
 
#*If the machine gets the shape correct or not based on amount of noise
 
#  Describe your procedure in detail
 
#*First i write the Shape Recognition Algorithm with edge detection and all the math to recognize a circle
 
#*Print out 5-10 pictures with different amounts of noise by changing amount of random numbers to make the image have noise.
 
#*Set up room with camera and fixed light
 
#*Run experiment
 
 
 
'''Step 8: Reactions'''<br>
 
Let us know how you are feeling about this project in a “Reactions” paragraph. <br>
 
Are you anxious? Excited? Comfortable? Do you have questions about anything? <br>
 
Tell us your thoughts/feelings at this point.<br>
 
 
 
I am not very anxious, I think it is very doable. I am slightly excited. I just want to get going and i will be more excited. At the moment i do not have questions, i just need to start coding. I feel that right now i have only a small clue as to what to do, but once i get on the computer i will pick it up and it will end up being fun and challenging for me.
 
 
 
'''Step 9: Honor Pledge'''<br>
 
Pledge your assignment, by writing in ink: “On my honor, I have neither given nor received unauthorized aid in doing this project,” and sign it in ink.<br>
 
  
 +
20 Lessons (Apps: HelloStandford & Obj-C Tool, Hello Poly, Paparazzi, Final Project)<br>
  
 +
Intro to Mac OS X and Cocoa Touch, Objective-C and Tools & Using Objective-C, Foundation objects [√] [√]<br>
 +
Assignment: Hello Stanford and Command Line Tool I (due 2/28) [√] [√]<br>
 +
Custom classes, Memory Management, ObjC Properties & MVC, Interface Builder, Controls & target-action [√] [√] <br>
 +
Assignment: Command Line Tool II and HelloPoly I (due 3/7) [√] [√]<br>
 +
Views, Animation, Open GL & View Controllers [√] [√] <br>
 +
Assignment: HelloPoly II (due 3/14)[√] <br>
 +
Navigation Controllers, Tab Bar Controllers, Searching & TableViews [√] [ ]<br>
 +
Assignment: Flickr 1 (due 3/21)[ ] <br>
 +
Dealing with Data: User Defaults, SQLite, Web Services & Threading, Notifications, KVC [ ] [ ]<br>
 +
Assignment: Flickr 2 (due 3/28), Final project proposals [ ] <br>
 +
Text, Responders, Modal Views & Address Book [ ] [ ]<br>
 +
Assignment: Flickr 3 (due 4/4) [ ]<br>
 +
WebViews, MapKit & Multitouch, Gestures [ ] [ ] <br>
 +
Assignment: Flickr 4 (due 4/11) [ ] <br>
 +
Device APIs: Location, Accelerometer, Compass, Battery Life & Audio playback, Video playback, Image/Video Picker, iPod Media Access [ ] [ ] <br>
 +
Assignment: Final project (Before Spring Break)<br>
 +
Bonjour, streams, networking, GameKit & Unit testing, Objective-C fun, localization[ ] [ ] <br>
 +
Assignment: Final project (Before Spring Break)[ ]<br>
  
 +
==Fourth Quarter ==
  
 +
Beginning iPhone Games Development
 +
-Peter Bakhirev
  
 +
Chapter 3: Moving Images on a Small Screen [ ] Brick Breaker Game <br>
 +
Chapter 4: She Shoots, She Hits, She Scores [ ] Asteroids Game <br>
 +
Chapter 5: Flipping Out and Sweeping Away with Core Animation [ ] Chicken Crosses the Road? <br>
  
== Third Quarter ==
 
 
 
Third Quarter/End of Science Proj - Start learning objective C <br>
 
Links - http://my.safaribooksonline.com/9780321670113<br>
 
Plus books at home<br>
 
# Go through safaribooksonline objective c tutorial
 
# Transfer Games from Java to Objective C
 
# Put a program on iPhone
 
 
 
----
 
 
==Fourth Quarter ==
 
1/2 objective C... 1/2 Java
 
  
  

Latest revision as of 11:25, 4 April 2011

First and Second Quarter

work on my science project:sept 9 - dec 17

Java code on blog: http://kylabsophomoresciencefairproject.blogspot.com/

http://download.oracle.com/javase/1.4.2/docs/api/java/awt/image/ConvolveOp.html
http://users.ecs.soton.ac.uk/msn/book/new_demo/sobel/
http://www.pages.drexel.edu/~weg22/can_tut.html
http://fourier.eng.hmc.edu/e161/lectures/canny/node1.html
http://www.pages.drexel.edu/~weg22/edge.html
http://users.ecs.soton.ac.uk/msn/book/new_demo/sobel/
http://www.developer.com/java/other/article.php/3484591/Convolution-and-Frequency-Filtering-in-Java.htm
http://www.java-forums.org/new-java/7995-how-plot-graph-java-given-samples.html

Convolution using a convolution kernel is a spatial operation that computes the output pixel from an input pixel by multiplying the kernel with the surround of the input pixel. This allows the output pixel to be affected by the immediate neighborhood in a way that can be mathematically specified with a kernel.

Checklist

  1. Finish research and write proposal - due sept 16 √
  2. Go through simple image processing tutorials √
  3. Grey Scale√
  4. Matrix Image√
  5. Edge Detection√
  6. Add Noise√
  7. Paper Introduction, Procedure, Lit Cites (oct 11) √
  8. Decide how to take data (quantitative preferred) √
  9. Run experiment√
  10. Set up data in computer√
  11. Data collection & results (dec 6)√
  12. Final Research Paper (dec 17)√

Third Quarter

Third Quarter/End of Science Proj - Start learning objective C

iPhone Application Developement (CS193P) -Winter 2010

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
http://flightschool.acylt.com/iphone/whatatool/

20 Lessons (Apps: HelloStandford & Obj-C Tool, Hello Poly, Paparazzi, Final Project)

Intro to Mac OS X and Cocoa Touch, Objective-C and Tools & Using Objective-C, Foundation objects [√] [√]
Assignment: Hello Stanford and Command Line Tool I (due 2/28) [√] [√]
Custom classes, Memory Management, ObjC Properties & MVC, Interface Builder, Controls & target-action [√] [√]
Assignment: Command Line Tool II and HelloPoly I (due 3/7) [√] [√]
Views, Animation, Open GL & View Controllers [√] [√]
Assignment: HelloPoly II (due 3/14)[√]
Navigation Controllers, Tab Bar Controllers, Searching & TableViews [√] [ ]
Assignment: Flickr 1 (due 3/21)[ ]
Dealing with Data: User Defaults, SQLite, Web Services & Threading, Notifications, KVC [ ] [ ]
Assignment: Flickr 2 (due 3/28), Final project proposals [ ]
Text, Responders, Modal Views & Address Book [ ] [ ]
Assignment: Flickr 3 (due 4/4) [ ]
WebViews, MapKit & Multitouch, Gestures [ ] [ ]
Assignment: Flickr 4 (due 4/11) [ ]
Device APIs: Location, Accelerometer, Compass, Battery Life & Audio playback, Video playback, Image/Video Picker, iPod Media Access [ ] [ ]
Assignment: Final project (Before Spring Break)
Bonjour, streams, networking, GameKit & Unit testing, Objective-C fun, localization[ ] [ ]
Assignment: Final project (Before Spring Break)[ ]

Fourth Quarter

Beginning iPhone Games Development -Peter Bakhirev

Chapter 3: Moving Images on a Small Screen [ ] Brick Breaker Game
Chapter 4: She Shoots, She Hits, She Scores [ ] Asteroids Game
Chapter 5: Flipping Out and Sweeping Away with Core Animation [ ] Chicken Crosses the Road?



Kylambouldin 19:49, 15 September 2010 (EDT) Kyla BouldinKylambouldin 19:49, 15 September 2010 (EDT)