SlideShare a Scribd company logo
1 of 74
Download to read offline
Motivation & Background
        Computer Vision in Python
                 More Information
                         Summary




Introduction to using Python in Computer Vision
            Kiwi PyCon, Christchurch, 2009


                          Brian Thorne

                      University of Canterbury


                     6th November 2009




                    Brian Thorne    Computer Vision in Python
Motivation & Background
                Computer Vision in Python
                         More Information
                                 Summary


Outline

  1   Motivation & Background
       What is Computer Vision?
       Uses & Examples
  2   Computer Vision in Python
        Tools
        Image Acquisition
        Image Filtering
        Background Subtraction
        Feature Point Detection
  3   More Information
       Different platforms
       Additional Tools

                            Brian Thorne    Computer Vision in Python
Motivation & Background
                Computer Vision in Python   Computer Vision
                         More Information   Uses & Examples
                                 Summary


Outline

  1   Motivation & Background
       What is Computer Vision?
       Uses & Examples
  2   Computer Vision in Python
        Tools
        Image Acquisition
        Image Filtering
        Background Subtraction
        Feature Point Detection
  3   More Information
       Different platforms
       Additional Tools

                            Brian Thorne    Computer Vision in Python
Motivation & Background
                  Computer Vision in Python   Computer Vision
                           More Information   Uses & Examples
                                   Summary


Vision




         25% of the whole brain is for vision. Around 50% of cerebral
         cortex is for vision, 80% of the brain is associated with vision
         in some manner.


                              Brian Thorne    Computer Vision in Python
Computer Vision

    Definition
    The goal of computer vision is to recognize objects and their motion


What is it used for?
    Scene reconstruction
    Event detection
    Video tracking
    Object recognition
    Learning
    Indexing
    Motion estimation
    Image restoration
Computer Vision

    Definition
    The goal of computer vision is to recognize objects and their motion


What is it used for?
    Scene reconstruction
    Event detection
    Video tracking
    Object recognition
    Learning
    Indexing
    Motion estimation
    Image restoration
Motivation & Background
            Computer Vision in Python   Computer Vision
                     More Information   Uses & Examples
                             Summary


Computer Vision crosses over with many domains




                        Brian Thorne    Computer Vision in Python
Motivation & Background
                Computer Vision in Python   Computer Vision
                         More Information   Uses & Examples
                                 Summary


What makes it hard?


  What we see                                What the computer sees




                            Brian Thorne    Computer Vision in Python
Motivation & Background
                      Computer Vision in Python      Computer Vision
                               More Information      Uses & Examples
                                       Summary


Vision is inferential




  http://web.mit.edu/persci/people/adelson/checkershadow_illusion.html




                                   Brian Thorne      Computer Vision in Python
Motivation & Background
                Computer Vision in Python   Computer Vision
                         More Information   Uses & Examples
                                 Summary


Outline

  1   Motivation & Background
       What is Computer Vision?
       Uses & Examples
  2   Computer Vision in Python
        Tools
        Image Acquisition
        Image Filtering
        Background Subtraction
        Feature Point Detection
  3   More Information
       Different platforms
       Additional Tools

                            Brian Thorne    Computer Vision in Python
Motivation & Background
             Computer Vision in Python    Computer Vision
                      More Information    Uses & Examples
                              Summary


Visual Object Classes Challenge 09




              http://www.pascal-network.org/challenges/VOC/voc2009


                         Brian Thorne     Computer Vision in Python
Motivation & Background
             Computer Vision in Python     Computer Vision
                      More Information     Uses & Examples
                              Summary


Object Recognition and Segmentation - Texture




                                −− − −
                                − − −→

                          (Sharon, Balun, Brandt, Basri)


                         Brian Thorne      Computer Vision in Python
Motivation & Background
            Computer Vision in Python    Computer Vision
                     More Information    Uses & Examples
                             Summary


Object Recognition and Segmentation - Edges




                http://www.robots.ox.ac.uk/~vdg/dynamics.html


                        Brian Thorne     Computer Vision in Python
Motivation & Background
            Computer Vision in Python   Computer Vision
                     More Information   Uses & Examples
                             Summary


Traffic Monitoring




                        Brian Thorne    Computer Vision in Python
Motivation & Background
               Computer Vision in Python     Computer Vision
                        More Information     Uses & Examples
                                Summary


Augented Reality - Sixth Sense

    ’SixthSense’ is a wearable gestural interface that augments the
   physical world around us with digital information and lets us use
        natural hand gestures to interact with that information.




                   http://www.pranavmistry.com/projects/sixthsense/


                           Brian Thorne      Computer Vision in Python
Tools
                 Motivation & Background
                                            Image Acquisition
                Computer Vision in Python
                                            Image Filtering
                         More Information
                                            Background Subtraction
                                 Summary
                                            Feature Point Detection


Outline

  1   Motivation & Background
       What is Computer Vision?
       Uses & Examples
  2   Computer Vision in Python
        Tools
        Image Acquisition
        Image Filtering
        Background Subtraction
        Feature Point Detection
  3   More Information
       Different platforms
       Additional Tools

                            Brian Thorne    Computer Vision in Python
Python In Computer Vision: OpenCV

                            Provides well tested, optimized and
                            open source code for image processing
                            and computer vision
                            Written in C, ensuring both fast and
                            portable.
                            Has been compiled for many
                            embedded platforms
                            Has multiple language wrappers
                            including 3 for Python
                            Tools have been made to use graphics
                            hardware to accelerate CV
                            performance on the GPU

          Project home page and documentation is at:
                http://opencv.willowgarage.com
Python In Computer Vision: OpenCV

                            Provides well tested, optimized and
                            open source code for image processing
                            and computer vision
                            Written in C, ensuring both fast and
                            portable.
                            Has been compiled for many
                            embedded platforms
                            Has multiple language wrappers
                            including 3 for Python
                            Tools have been made to use graphics
                            hardware to accelerate CV
                            performance on the GPU

          Project home page and documentation is at:
                http://opencv.willowgarage.com
Python In Computer Vision: OpenCV

                            Provides well tested, optimized and
                            open source code for image processing
                            and computer vision
                            Written in C, ensuring both fast and
                            portable.
                            Has been compiled for many
                            embedded platforms
                            Has multiple language wrappers
                            including 3 for Python
                            Tools have been made to use graphics
                            hardware to accelerate CV
                            performance on the GPU

          Project home page and documentation is at:
                http://opencv.willowgarage.com
Python In Computer Vision: OpenCV

                            Provides well tested, optimized and
                            open source code for image processing
                            and computer vision
                            Written in C, ensuring both fast and
                            portable.
                            Has been compiled for many
                            embedded platforms
                            Has multiple language wrappers
                            including 3 for Python
                            Tools have been made to use graphics
                            hardware to accelerate CV
                            performance on the GPU

          Project home page and documentation is at:
                http://opencv.willowgarage.com
Python In Computer Vision: OpenCV

                            Provides well tested, optimized and
                            open source code for image processing
                            and computer vision
                            Written in C, ensuring both fast and
                            portable.
                            Has been compiled for many
                            embedded platforms
                            Has multiple language wrappers
                            including 3 for Python
                            Tools have been made to use graphics
                            hardware to accelerate CV
                            performance on the GPU

          Project home page and documentation is at:
                http://opencv.willowgarage.com
Tools
              Motivation & Background
                                         Image Acquisition
             Computer Vision in Python
                                         Image Filtering
                      More Information
                                         Background Subtraction
                              Summary
                                         Feature Point Detection


Python In Computer Vision: Numpy & Scipy


                                    Gives strongly typed N-dimensional
                                    arrays to Python
                                    Well used and tested libraries for
                                    scientific computing
                                    Includes lots of handy tools such as
                                    optimisation and signal processing
                                    used often in computer vision.
                                    Usually used with iPython and
                                    matplotlib


       SciPy can be downloaded from: http://www.scipy.org
                         Brian Thorne    Computer Vision in Python
Tools
              Motivation & Background
                                         Image Acquisition
             Computer Vision in Python
                                         Image Filtering
                      More Information
                                         Background Subtraction
                              Summary
                                         Feature Point Detection


Python In Computer Vision: Numpy & Scipy


                                    Gives strongly typed N-dimensional
                                    arrays to Python
                                    Well used and tested libraries for
                                    scientific computing
                                    Includes lots of handy tools such as
                                    optimisation and signal processing
                                    used often in computer vision.
                                    Usually used with iPython and
                                    matplotlib


       SciPy can be downloaded from: http://www.scipy.org
                         Brian Thorne    Computer Vision in Python
Tools
              Motivation & Background
                                         Image Acquisition
             Computer Vision in Python
                                         Image Filtering
                      More Information
                                         Background Subtraction
                              Summary
                                         Feature Point Detection


Python In Computer Vision: Numpy & Scipy


                                    Gives strongly typed N-dimensional
                                    arrays to Python
                                    Well used and tested libraries for
                                    scientific computing
                                    Includes lots of handy tools such as
                                    optimisation and signal processing
                                    used often in computer vision.
                                    Usually used with iPython and
                                    matplotlib


       SciPy can be downloaded from: http://www.scipy.org
                         Brian Thorne    Computer Vision in Python
Tools
              Motivation & Background
                                         Image Acquisition
             Computer Vision in Python
                                         Image Filtering
                      More Information
                                         Background Subtraction
                              Summary
                                         Feature Point Detection


Python In Computer Vision: Numpy & Scipy


                                    Gives strongly typed N-dimensional
                                    arrays to Python
                                    Well used and tested libraries for
                                    scientific computing
                                    Includes lots of handy tools such as
                                    optimisation and signal processing
                                    used often in computer vision.
                                    Usually used with iPython and
                                    matplotlib


       SciPy can be downloaded from: http://www.scipy.org
                         Brian Thorne    Computer Vision in Python
Tools
              Motivation & Background
                                         Image Acquisition
             Computer Vision in Python
                                         Image Filtering
                      More Information
                                         Background Subtraction
                              Summary
                                         Feature Point Detection


Python In Computer Vision: Numpy & Scipy


                                    Gives strongly typed N-dimensional
                                    arrays to Python
                                    Well used and tested libraries for
                                    scientific computing
                                    Includes lots of handy tools such as
                                    optimisation and signal processing
                                    used often in computer vision.
                                    Usually used with iPython and
                                    matplotlib


       SciPy can be downloaded from: http://www.scipy.org
                         Brian Thorne    Computer Vision in Python
Tools
               Motivation & Background
                                          Image Acquisition
              Computer Vision in Python
                                          Image Filtering
                       More Information
                                          Background Subtraction
                               Summary
                                          Feature Point Detection


Python In Computer Vision: Pygame




     Game development framework
     Now has basic Computer Vision support
     Being Python it can be used with other Python tools -
     integrates well with numpy/scipy

     pygame can be downloaded from: http://www.pygame.org

                          Brian Thorne    Computer Vision in Python
Tools
               Motivation & Background
                                          Image Acquisition
              Computer Vision in Python
                                          Image Filtering
                       More Information
                                          Background Subtraction
                               Summary
                                          Feature Point Detection


Python In Computer Vision: Pygame




     Game development framework
     Now has basic Computer Vision support
     Being Python it can be used with other Python tools -
     integrates well with numpy/scipy

     pygame can be downloaded from: http://www.pygame.org

                          Brian Thorne    Computer Vision in Python
Tools
               Motivation & Background
                                          Image Acquisition
              Computer Vision in Python
                                          Image Filtering
                       More Information
                                          Background Subtraction
                               Summary
                                          Feature Point Detection


Python In Computer Vision: Pygame




     Game development framework
     Now has basic Computer Vision support
     Being Python it can be used with other Python tools -
     integrates well with numpy/scipy

     pygame can be downloaded from: http://www.pygame.org

                          Brian Thorne    Computer Vision in Python
Tools
                Motivation & Background
                                           Image Acquisition
               Computer Vision in Python
                                           Image Filtering
                        More Information
                                           Background Subtraction
                                Summary
                                           Feature Point Detection


Pycam
 This is the project with all the examples for this presentation. Has
 a bunch of simple examples like filtering and background
 subtraction, face detection.
      Contains two video player classes that can work with different
      backend setups, and can incorporate optional process
      functions.
      Examples of intergrating OpenCV with pygame - eg for eye
      and face detection.
      OpenCV camera class that allows an opencv camera to be
      used with pygame (No longer required in latest pygame)
 VideoCapturePlayer
 For the rest of this presentation, examples will use the video
 capture code (with error checking) from pycam.

                           Brian Thorne    Computer Vision in Python
Tools
                Motivation & Background
                                           Image Acquisition
               Computer Vision in Python
                                           Image Filtering
                        More Information
                                           Background Subtraction
                                Summary
                                           Feature Point Detection


Pycam
 This is the project with all the examples for this presentation. Has
 a bunch of simple examples like filtering and background
 subtraction, face detection.
      Contains two video player classes that can work with different
      backend setups, and can incorporate optional process
      functions.
      Examples of intergrating OpenCV with pygame - eg for eye
      and face detection.
      OpenCV camera class that allows an opencv camera to be
      used with pygame (No longer required in latest pygame)
 VideoCapturePlayer
 For the rest of this presentation, examples will use the video
 capture code (with error checking) from pycam.

                           Brian Thorne    Computer Vision in Python
Tools
                Motivation & Background
                                           Image Acquisition
               Computer Vision in Python
                                           Image Filtering
                        More Information
                                           Background Subtraction
                                Summary
                                           Feature Point Detection


Pycam
 This is the project with all the examples for this presentation. Has
 a bunch of simple examples like filtering and background
 subtraction, face detection.
      Contains two video player classes that can work with different
      backend setups, and can incorporate optional process
      functions.
      Examples of intergrating OpenCV with pygame - eg for eye
      and face detection.
      OpenCV camera class that allows an opencv camera to be
      used with pygame (No longer required in latest pygame)
 VideoCapturePlayer
 For the rest of this presentation, examples will use the video
 capture code (with error checking) from pycam.

                           Brian Thorne    Computer Vision in Python
Tools
                Motivation & Background
                                           Image Acquisition
               Computer Vision in Python
                                           Image Filtering
                        More Information
                                           Background Subtraction
                                Summary
                                           Feature Point Detection


Pycam
 This is the project with all the examples for this presentation. Has
 a bunch of simple examples like filtering and background
 subtraction, face detection.
      Contains two video player classes that can work with different
      backend setups, and can incorporate optional process
      functions.
      Examples of intergrating OpenCV with pygame - eg for eye
      and face detection.
      OpenCV camera class that allows an opencv camera to be
      used with pygame (No longer required in latest pygame)
 VideoCapturePlayer
 For the rest of this presentation, examples will use the video
 capture code (with error checking) from pycam.

                           Brian Thorne    Computer Vision in Python
Tools
                 Motivation & Background
                                            Image Acquisition
                Computer Vision in Python
                                            Image Filtering
                         More Information
                                            Background Subtraction
                                 Summary
                                            Feature Point Detection


Outline

  1   Motivation & Background
       What is Computer Vision?
       Uses & Examples
  2   Computer Vision in Python
        Tools
        Image Acquisition
        Image Filtering
        Background Subtraction
        Feature Point Detection
  3   More Information
       Different platforms
       Additional Tools

                            Brian Thorne    Computer Vision in Python
Tools
             Motivation & Background
                                        Image Acquisition
            Computer Vision in Python
                                        Image Filtering
                     More Information
                                        Background Subtraction
                             Summary
                                        Feature Point Detection


Acquiring & Display Of An Image




                                   Live image acquisition is such a crucial
                                   role in the majority of CV applications.

                                   Example getting and showing a frame
                                   as a most basic, but necessary test




                        Brian Thorne    Computer Vision in Python
Tools
             Motivation & Background
                                        Image Acquisition
            Computer Vision in Python
                                        Image Filtering
                     More Information
                                        Background Subtraction
                             Summary
                                        Feature Point Detection


Acquiring & Display Of An Image




                                   Live image acquisition is such a crucial
                                   role in the majority of CV applications.

                                   Example getting and showing a frame
                                   as a most basic, but necessary test




                        Brian Thorne    Computer Vision in Python
Tools
               Motivation & Background
                                          Image Acquisition
              Computer Vision in Python
                                          Image Filtering
                       More Information
                                          Background Subtraction
                               Summary
                                          Feature Point Detection


Python OpenCV: Image Capture



  Example
  from opencv import highgui as hg
  capture = hg.cvCreateCameraCapture(0)
  hg.cvNamedWindow("Snapshot")
  frame = hg.cvQueryFrame(capture)
  hg.cvShowImage("Snapshot", frame)
  hg.cvWaitKey(10000)




                          Brian Thorne    Computer Vision in Python
Tools
                 Motivation & Background
                                            Image Acquisition
                Computer Vision in Python
                                            Image Filtering
                         More Information
                                            Background Subtraction
                                 Summary
                                            Feature Point Detection


Outline

  1   Motivation & Background
       What is Computer Vision?
       Uses & Examples
  2   Computer Vision in Python
        Tools
        Image Acquisition
        Image Filtering
        Background Subtraction
        Feature Point Detection
  3   More Information
       Different platforms
       Additional Tools

                            Brian Thorne    Computer Vision in Python
Tools
                Motivation & Background
                                           Image Acquisition
               Computer Vision in Python
                                           Image Filtering
                        More Information
                                           Background Subtraction
                                Summary
                                           Feature Point Detection


Filtering - Gaussian Blur
      One of the simplest operations in image processing is blurring
      an image
         Reduce noise,
         Remove artifacts
         Scale an image
         “cleanly”
         Create motion blur -
         if done in one
         direction
      OpenCV includes a gaussian filter among many others
      (cvSmooth function)
      SciPy has a multi-dimensional Gaussian filter that acts on a
      NumPy array
      Or you could convolve an image with a filter manually
                           Brian Thorne    Computer Vision in Python
Tools
                Motivation & Background
                                           Image Acquisition
               Computer Vision in Python
                                           Image Filtering
                        More Information
                                           Background Subtraction
                                Summary
                                           Feature Point Detection


Filtering - Gaussian Blur
      One of the simplest operations in image processing is blurring
      an image
         Reduce noise,
         Remove artifacts
         Scale an image
         “cleanly”
         Create motion blur -
         if done in one
         direction
      OpenCV includes a gaussian filter among many others
      (cvSmooth function)
      SciPy has a multi-dimensional Gaussian filter that acts on a
      NumPy array
      Or you could convolve an image with a filter manually
                           Brian Thorne    Computer Vision in Python
Tools
                Motivation & Background
                                           Image Acquisition
               Computer Vision in Python
                                           Image Filtering
                        More Information
                                           Background Subtraction
                                Summary
                                           Feature Point Detection


Filtering - Gaussian Blur
      One of the simplest operations in image processing is blurring
      an image
         Reduce noise,
         Remove artifacts
         Scale an image
         “cleanly”
         Create motion blur -
         if done in one
         direction
      OpenCV includes a gaussian filter among many others
      (cvSmooth function)
      SciPy has a multi-dimensional Gaussian filter that acts on a
      NumPy array
      Or you could convolve an image with a filter manually
                           Brian Thorne    Computer Vision in Python
Tools
                Motivation & Background
                                           Image Acquisition
               Computer Vision in Python
                                           Image Filtering
                        More Information
                                           Background Subtraction
                                Summary
                                           Feature Point Detection


Filtering - Gaussian Blur
      One of the simplest operations in image processing is blurring
      an image
         Reduce noise,
         Remove artifacts
         Scale an image
         “cleanly”
         Create motion blur -
         if done in one
         direction
      OpenCV includes a gaussian filter among many others
      (cvSmooth function)
      SciPy has a multi-dimensional Gaussian filter that acts on a
      NumPy array
      Or you could convolve an image with a filter manually
                           Brian Thorne    Computer Vision in Python
Tools
                Motivation & Background
                                           Image Acquisition
               Computer Vision in Python
                                           Image Filtering
                        More Information
                                           Background Subtraction
                                Summary
                                           Feature Point Detection


Filtering - Gaussian Blur
      One of the simplest operations in image processing is blurring
      an image
         Reduce noise,
         Remove artifacts
         Scale an image
         “cleanly”
         Create motion blur -
         if done in one
         direction
      OpenCV includes a gaussian filter among many others
      (cvSmooth function)
      SciPy has a multi-dimensional Gaussian filter that acts on a
      NumPy array
      Or you could convolve an image with a filter manually
                           Brian Thorne    Computer Vision in Python
Tools
                Motivation & Background
                                           Image Acquisition
               Computer Vision in Python
                                           Image Filtering
                        More Information
                                           Background Subtraction
                                Summary
                                           Feature Point Detection


Filtering - Gaussian Blur
      One of the simplest operations in image processing is blurring
      an image
         Reduce noise,
         Remove artifacts
         Scale an image
         “cleanly”
         Create motion blur -
         if done in one
         direction
      OpenCV includes a gaussian filter among many others
      (cvSmooth function)
      SciPy has a multi-dimensional Gaussian filter that acts on a
      NumPy array
      Or you could convolve an image with a filter manually
                           Brian Thorne    Computer Vision in Python
Tools
              Motivation & Background
                                         Image Acquisition
             Computer Vision in Python
                                         Image Filtering
                      More Information
                                         Background Subtraction
                              Summary
                                         Feature Point Detection


Applying a Gaussian Blur with OpenCV

  OpenCV Gaussian Blur
      from pycam import VideoCapturePlayer as VCP
      from opencv import cv
     def gaussianBlur(im, filterSize=43):
         result = cv.cvCreateMat(im.rows, im.cols,
                                 im.type )
         cv.cvSmooth(image,result,
               cv.CV_GAUSSIAN, filterSize)
         return result
     if __name__ == "__main__":
         VCP(gaussianBlur, "Guassian Filter").main()


                         Brian Thorne    Computer Vision in Python
Tools
                Motivation & Background
                                           Image Acquisition
               Computer Vision in Python
                                           Image Filtering
                        More Information
                                           Background Subtraction
                                Summary
                                           Feature Point Detection


Applying a Gaussian Blur with Scipy

  SciPy Gaussian Blur

      from scipy.ndimage.filters import gaussian_filter
      from pycam import OpencvVideoCapturePlayer as VCP
      from misc import scipyFromOpenCV
      @scipyFromOpenCV
      def gaussianBlur(np_image):
          result = gaussian_filter(np_image,
                           sigma=(4, 4, 0),
                           order=0, mode=’reflect’)
          return result
      if __name__ == "__main__":
          VCP(gaussianBlur,"Scipy Guassian Blur").main()

                           Brian Thorne    Computer Vision in Python
Tools
                 Motivation & Background
                                            Image Acquisition
                Computer Vision in Python
                                            Image Filtering
                         More Information
                                            Background Subtraction
                                 Summary
                                            Feature Point Detection


Outline

  1   Motivation & Background
       What is Computer Vision?
       Uses & Examples
  2   Computer Vision in Python
        Tools
        Image Acquisition
        Image Filtering
        Background Subtraction
        Feature Point Detection
  3   More Information
       Different platforms
       Additional Tools

                            Brian Thorne    Computer Vision in Python
Tools
               Motivation & Background
                                          Image Acquisition
              Computer Vision in Python
                                          Image Filtering
                       More Information
                                          Background Subtraction
                               Summary
                                          Feature Point Detection


Background Subtraction


     In video security the camera mostly looks at the same boring
     background
     What we are usually interested in is when objects (eg people or
     vehicles) enter or exit a scene
     Aim is to isolate the interesting, and ignore the boring
     At the most simple level background subtraction is simply a
     comparison between two image frames
     At the more complex level many people have gotten phd’s for
     better background learning techniques, and better differencing
     algorithms


                          Brian Thorne    Computer Vision in Python
Tools
               Motivation & Background
                                          Image Acquisition
              Computer Vision in Python
                                          Image Filtering
                       More Information
                                          Background Subtraction
                               Summary
                                          Feature Point Detection


Background Subtraction


     In video security the camera mostly looks at the same boring
     background
     What we are usually interested in is when objects (eg people or
     vehicles) enter or exit a scene
     Aim is to isolate the interesting, and ignore the boring
     At the most simple level background subtraction is simply a
     comparison between two image frames
     At the more complex level many people have gotten phd’s for
     better background learning techniques, and better differencing
     algorithms


                          Brian Thorne    Computer Vision in Python
Tools
               Motivation & Background
                                          Image Acquisition
              Computer Vision in Python
                                          Image Filtering
                       More Information
                                          Background Subtraction
                               Summary
                                          Feature Point Detection


Background Subtraction


     In video security the camera mostly looks at the same boring
     background
     What we are usually interested in is when objects (eg people or
     vehicles) enter or exit a scene
     Aim is to isolate the interesting, and ignore the boring
     At the most simple level background subtraction is simply a
     comparison between two image frames
     At the more complex level many people have gotten phd’s for
     better background learning techniques, and better differencing
     algorithms


                          Brian Thorne    Computer Vision in Python
Tools
                   Motivation & Background
                                              Image Acquisition
                  Computer Vision in Python
                                              Image Filtering
                           More Information
                                              Background Subtraction
                                   Summary
                                              Feature Point Detection


Background Subtraction

  Simple Frame Differencing
   1   To let the camera adjust to light levels, ignore the first few
       frames.
   2   Store a frame as the base frame.
   3   For each new frame that comes in:
         1   Take the absolute intensity difference in each channel
             (Red/Green/Blue) with the base frame.
         2   Binary threshold to ignore pixels that are only a bit different.
         3   Convert difference image to a one channel mask
         4   Clean up small noise areas in the mask (with median filter,
             erode, connected components)
         5   Return the changed pixels from the original image using the
             created mask.

                              Brian Thorne    Computer Vision in Python
Tools
                   Motivation & Background
                                              Image Acquisition
                  Computer Vision in Python
                                              Image Filtering
                           More Information
                                              Background Subtraction
                                   Summary
                                              Feature Point Detection


Background Subtraction

  Simple Frame Differencing
   1   To let the camera adjust to light levels, ignore the first few
       frames.
   2   Store a frame as the base frame.
   3   For each new frame that comes in:
         1   Take the absolute intensity difference in each channel
             (Red/Green/Blue) with the base frame.
         2   Binary threshold to ignore pixels that are only a bit different.
         3   Convert difference image to a one channel mask
         4   Clean up small noise areas in the mask (with median filter,
             erode, connected components)
         5   Return the changed pixels from the original image using the
             created mask.

                              Brian Thorne    Computer Vision in Python
Tools
                   Motivation & Background
                                              Image Acquisition
                  Computer Vision in Python
                                              Image Filtering
                           More Information
                                              Background Subtraction
                                   Summary
                                              Feature Point Detection


Background Subtraction

  Simple Frame Differencing
   1   To let the camera adjust to light levels, ignore the first few
       frames.
   2   Store a frame as the base frame.
   3   For each new frame that comes in:
         1   Take the absolute intensity difference in each channel
             (Red/Green/Blue) with the base frame.
         2   Binary threshold to ignore pixels that are only a bit different.
         3   Convert difference image to a one channel mask
         4   Clean up small noise areas in the mask (with median filter,
             erode, connected components)
         5   Return the changed pixels from the original image using the
             created mask.

                              Brian Thorne    Computer Vision in Python
Tools
                   Motivation & Background
                                              Image Acquisition
                  Computer Vision in Python
                                              Image Filtering
                           More Information
                                              Background Subtraction
                                   Summary
                                              Feature Point Detection


Background Subtraction

  Simple Frame Differencing
   1   To let the camera adjust to light levels, ignore the first few
       frames.
   2   Store a frame as the base frame.
   3   For each new frame that comes in:
         1   Take the absolute intensity difference in each channel
             (Red/Green/Blue) with the base frame.
         2   Binary threshold to ignore pixels that are only a bit different.
         3   Convert difference image to a one channel mask
         4   Clean up small noise areas in the mask (with median filter,
             erode, connected components)
         5   Return the changed pixels from the original image using the
             created mask.

                              Brian Thorne    Computer Vision in Python
Tools
                   Motivation & Background
                                              Image Acquisition
                  Computer Vision in Python
                                              Image Filtering
                           More Information
                                              Background Subtraction
                                   Summary
                                              Feature Point Detection


Background Subtraction

  Simple Frame Differencing
   1   To let the camera adjust to light levels, ignore the first few
       frames.
   2   Store a frame as the base frame.
   3   For each new frame that comes in:
         1   Take the absolute intensity difference in each channel
             (Red/Green/Blue) with the base frame.
         2   Binary threshold to ignore pixels that are only a bit different.
         3   Convert difference image to a one channel mask
         4   Clean up small noise areas in the mask (with median filter,
             erode, connected components)
         5   Return the changed pixels from the original image using the
             created mask.

                              Brian Thorne    Computer Vision in Python
Tools
                   Motivation & Background
                                              Image Acquisition
                  Computer Vision in Python
                                              Image Filtering
                           More Information
                                              Background Subtraction
                                   Summary
                                              Feature Point Detection


Background Subtraction

  Simple Frame Differencing
   1   To let the camera adjust to light levels, ignore the first few
       frames.
   2   Store a frame as the base frame.
   3   For each new frame that comes in:
         1   Take the absolute intensity difference in each channel
             (Red/Green/Blue) with the base frame.
         2   Binary threshold to ignore pixels that are only a bit different.
         3   Convert difference image to a one channel mask
         4   Clean up small noise areas in the mask (with median filter,
             erode, connected components)
         5   Return the changed pixels from the original image using the
             created mask.

                              Brian Thorne    Computer Vision in Python
Tools
                   Motivation & Background
                                              Image Acquisition
                  Computer Vision in Python
                                              Image Filtering
                           More Information
                                              Background Subtraction
                                   Summary
                                              Feature Point Detection


Background Subtraction

  Simple Frame Differencing
   1   To let the camera adjust to light levels, ignore the first few
       frames.
   2   Store a frame as the base frame.
   3   For each new frame that comes in:
         1   Take the absolute intensity difference in each channel
             (Red/Green/Blue) with the base frame.
         2   Binary threshold to ignore pixels that are only a bit different.
         3   Convert difference image to a one channel mask
         4   Clean up small noise areas in the mask (with median filter,
             erode, connected components)
         5   Return the changed pixels from the original image using the
             created mask.

                              Brian Thorne    Computer Vision in Python
Tools
                   Motivation & Background
                                              Image Acquisition
                  Computer Vision in Python
                                              Image Filtering
                           More Information
                                              Background Subtraction
                                   Summary
                                              Feature Point Detection


Background Subtraction

  Simple Frame Differencing
   1   To let the camera adjust to light levels, ignore the first few
       frames.
   2   Store a frame as the base frame.
   3   For each new frame that comes in:
         1   Take the absolute intensity difference in each channel
             (Red/Green/Blue) with the base frame.
         2   Binary threshold to ignore pixels that are only a bit different.
         3   Convert difference image to a one channel mask
         4   Clean up small noise areas in the mask (with median filter,
             erode, connected components)
         5   Return the changed pixels from the original image using the
             created mask.

                              Brian Thorne    Computer Vision in Python
Tools
             Motivation & Background
                                          Image Acquisition
            Computer Vision in Python
                                          Image Filtering
                     More Information
                                          Background Subtraction
                             Summary
                                          Feature Point Detection


Background Subtract




                                        Here I have placed a cellphone on my
                                        cluttered desk
                                        Can’t tell thats there is no green screen
                                        Quick demo




                        Brian Thorne      Computer Vision in Python
Tools
                 Motivation & Background
                                            Image Acquisition
                Computer Vision in Python
                                            Image Filtering
                         More Information
                                            Background Subtraction
                                 Summary
                                            Feature Point Detection


Outline

  1   Motivation & Background
       What is Computer Vision?
       Uses & Examples
  2   Computer Vision in Python
        Tools
        Image Acquisition
        Image Filtering
        Background Subtraction
        Feature Point Detection
  3   More Information
       Different platforms
       Additional Tools

                            Brian Thorne    Computer Vision in Python
Tools
              Motivation & Background
                                           Image Acquisition
             Computer Vision in Python
                                           Image Filtering
                      More Information
                                           Background Subtraction
                              Summary
                                           Feature Point Detection


Feature Point Detection



                                         Feature point detection is implemented
                                         in OpenCV you can do it in one call:
                                         cvCornerHarris or cvGoodFeatures
                                         To demonstrate the algorithm though -
                                         we will go look at it in scipy.
                                         Implementation derived from Jan
                                         Solem




                         Brian Thorne      Computer Vision in Python
Feature Detection




1   First convert to a grey scale
    image
2   Showing the derivative in the x
    and y directions
3   showing the millions of points of
    interest
4   filtering them
Tools
             Motivation & Background
                                        Image Acquisition
            Computer Vision in Python
                                        Image Filtering
                     More Information
                                        Background Subtraction
                             Summary
                                        Feature Point Detection


Augmented Reality



                             Augmented reality is undergoing massive
                             growth
                             OpenCV provides the face detection
                             An AR game can easily be made in Pygame
                             using the webcam and face location as the
                             interface




                        Brian Thorne    Computer Vision in Python
Motivation & Background
                Computer Vision in Python   Different platforms
                         More Information   Additional Tools
                                 Summary


Outline

  1   Motivation & Background
       What is Computer Vision?
       Uses & Examples
  2   Computer Vision in Python
        Tools
        Image Acquisition
        Image Filtering
        Background Subtraction
        Feature Point Detection
  3   More Information
       Different platforms
       Additional Tools

                            Brian Thorne    Computer Vision in Python
Motivation & Background
           Computer Vision in Python     Different platforms
                    More Information     Additional Tools
                            Summary


Running on an OLPC

                                       OLPC - provide children in developing
                                       nations with access to knowledge, and
                                       opportunities to "explore, experiment
                                       and express themselves"
                                       Includes Python and a webcam - thats
                                       all you need for computer vision!
                                       Here I am running OpenCV’s
                                       facedetection on the XO laptop
                                       Lots of Computer Vision work on the
                                       XO has been done using pygame by
                                       Nirav Patel (http://eclecti.cc/olpc)


                       Brian Thorne      Computer Vision in Python
Motivation & Background
           Computer Vision in Python     Different platforms
                    More Information     Additional Tools
                            Summary


Running on an OLPC

                                       OLPC - provide children in developing
                                       nations with access to knowledge, and
                                       opportunities to "explore, experiment
                                       and express themselves"
                                       Includes Python and a webcam - thats
                                       all you need for computer vision!
                                       Here I am running OpenCV’s
                                       facedetection on the XO laptop
                                       Lots of Computer Vision work on the
                                       XO has been done using pygame by
                                       Nirav Patel (http://eclecti.cc/olpc)


                       Brian Thorne      Computer Vision in Python
Motivation & Background
           Computer Vision in Python     Different platforms
                    More Information     Additional Tools
                            Summary


Running on an OLPC

                                       OLPC - provide children in developing
                                       nations with access to knowledge, and
                                       opportunities to "explore, experiment
                                       and express themselves"
                                       Includes Python and a webcam - thats
                                       all you need for computer vision!
                                       Here I am running OpenCV’s
                                       facedetection on the XO laptop
                                       Lots of Computer Vision work on the
                                       XO has been done using pygame by
                                       Nirav Patel (http://eclecti.cc/olpc)


                       Brian Thorne      Computer Vision in Python
Motivation & Background
           Computer Vision in Python     Different platforms
                    More Information     Additional Tools
                            Summary


Running on an OLPC

                                       OLPC - provide children in developing
                                       nations with access to knowledge, and
                                       opportunities to "explore, experiment
                                       and express themselves"
                                       Includes Python and a webcam - thats
                                       all you need for computer vision!
                                       Here I am running OpenCV’s
                                       facedetection on the XO laptop
                                       Lots of Computer Vision work on the
                                       XO has been done using pygame by
                                       Nirav Patel (http://eclecti.cc/olpc)


                       Brian Thorne      Computer Vision in Python
Motivation & Background
                Computer Vision in Python   Different platforms
                         More Information   Additional Tools
                                 Summary


Outline

  1   Motivation & Background
       What is Computer Vision?
       Uses & Examples
  2   Computer Vision in Python
        Tools
        Image Acquisition
        Image Filtering
        Background Subtraction
        Feature Point Detection
  3   More Information
       Different platforms
       Additional Tools

                            Brian Thorne    Computer Vision in Python
IPython & MatPlotLib
      Using IPython, an interactive shell can be used from deep
      inside a nested loop in a running program.

  In the code add
       from IPython.Shell import IPShellEmbed
       ...
       IPShellEmbed()()

  Example
  In [1]: from opencv import cv
  In [2]: cv.cvAnd(diffImage,image, temp)
  In [3]: timeit cv.cvAnd(diffImage,image, temp)
  1000 loops, best of 3: 229 µs per loop
  In [4]: from pylab import imshow, show
  In [5]: imshow(temp)
  Out[5]: <AxesImage object at 0x42489d0>
  In [6]: show()
Motivation & Background
                Computer Vision in Python   Different platforms
                         More Information   Additional Tools
                                 Summary


Documentation & Support


  The documentation in both SciPy and OpenCV was found to be
  pretty good.... not entirely complete. The OpenCV book is really
  good.
  Remember Python is Free
  Documentation is not going to be as extensive as for a professional
  package like Matlab.... but you can help!

  Support for these open source packages is almost entirely reliant on
  experienced members of the community responding to requests on
  message boards or mailing lists.



                            Brian Thorne    Computer Vision in Python
Motivation & Background
              Computer Vision in Python
                       More Information
                               Summary


Summary

    For the scholar of computer vision research, using Python can
    help in trying out new algorithms very quickly. The breadth of
    the additional libraries available and the ease of integrating,
    make new and novel solutions quickly realizable.
    For someone just wanting to play around with some cool stuff,
    its easy to dive in!
    Limitations on using Python for CV
          A major limitation of using Python would be when the
          application is being developed for special embedded hardware
          or when the best possible performance is required (at YOUR
          expense)


                          Brian Thorne    Computer Vision in Python
References




Thank You!



  Thank you to
      Raphaël Grasset - supervisor at HitLabNZ
      Richard Green - computer vision lecturer
      John Graves & Cristiano Soares for giving me detailed and
      helpful feedback




                        Brian Thorne   Computer Vision in Python
References




For Further Reading I

            Library                      URL
            Pygame                http://pygame.org
            OpenCV         http://opencv.willowgarage.com
          Numpy/Scipy              http://scipy.org
            Pycam           http://pycam.googlecode.org


     G. Bradski, A. Kaehler
     Learning OpenCV.
     O’Reilly Media, September 2008.
     T. Oliphant
     Guide to NumPy.
     UT, Trelgol Publishing, 2006.
                        Brian Thorne   Computer Vision in Python

More Related Content

What's hot

Feedforward neural network
Feedforward neural networkFeedforward neural network
Feedforward neural networkSopheaktra YONG
 
Deep Belief Networks
Deep Belief NetworksDeep Belief Networks
Deep Belief NetworksHasan H Topcu
 
An Introduction to Computer Vision
An Introduction to Computer VisionAn Introduction to Computer Vision
An Introduction to Computer Visionguestd1b1b5
 
Machine learning in image processing
Machine learning in image processingMachine learning in image processing
Machine learning in image processingData Science Thailand
 
Recurrent Neural Network (RNN) | RNN LSTM Tutorial | Deep Learning Course | S...
Recurrent Neural Network (RNN) | RNN LSTM Tutorial | Deep Learning Course | S...Recurrent Neural Network (RNN) | RNN LSTM Tutorial | Deep Learning Course | S...
Recurrent Neural Network (RNN) | RNN LSTM Tutorial | Deep Learning Course | S...Simplilearn
 
Computer vision, machine, and deep learning
Computer vision, machine, and deep learningComputer vision, machine, and deep learning
Computer vision, machine, and deep learningIgi Ardiyanto
 
Machine Learning - Object Detection and Classification
Machine Learning - Object Detection and ClassificationMachine Learning - Object Detection and Classification
Machine Learning - Object Detection and ClassificationVikas Jain
 
Image Processing with OpenCV
Image Processing with OpenCVImage Processing with OpenCV
Image Processing with OpenCVdebayanin
 
Machine learning Presentation
Machine learning PresentationMachine learning Presentation
Machine learning PresentationManish Singh
 
Handwritten Digit Recognition(Convolutional Neural Network) PPT
Handwritten Digit Recognition(Convolutional Neural Network) PPTHandwritten Digit Recognition(Convolutional Neural Network) PPT
Handwritten Digit Recognition(Convolutional Neural Network) PPTRishabhTyagi48
 
Histogram Specification or Matching Problem
Histogram Specification or Matching ProblemHistogram Specification or Matching Problem
Histogram Specification or Matching ProblemKalyan Acharjya
 
"Semantic Segmentation for Scene Understanding: Algorithms and Implementation...
"Semantic Segmentation for Scene Understanding: Algorithms and Implementation..."Semantic Segmentation for Scene Understanding: Algorithms and Implementation...
"Semantic Segmentation for Scene Understanding: Algorithms and Implementation...Edge AI and Vision Alliance
 
Object Detection & Tracking
Object Detection & TrackingObject Detection & Tracking
Object Detection & TrackingAkshay Gujarathi
 

What's hot (20)

CNN Quantization
CNN QuantizationCNN Quantization
CNN Quantization
 
Feedforward neural network
Feedforward neural networkFeedforward neural network
Feedforward neural network
 
Deep Belief Networks
Deep Belief NetworksDeep Belief Networks
Deep Belief Networks
 
image classification
image classificationimage classification
image classification
 
An Introduction to Computer Vision
An Introduction to Computer VisionAn Introduction to Computer Vision
An Introduction to Computer Vision
 
Machine learning in image processing
Machine learning in image processingMachine learning in image processing
Machine learning in image processing
 
Introduction to OpenCV
Introduction to OpenCVIntroduction to OpenCV
Introduction to OpenCV
 
Recurrent Neural Network (RNN) | RNN LSTM Tutorial | Deep Learning Course | S...
Recurrent Neural Network (RNN) | RNN LSTM Tutorial | Deep Learning Course | S...Recurrent Neural Network (RNN) | RNN LSTM Tutorial | Deep Learning Course | S...
Recurrent Neural Network (RNN) | RNN LSTM Tutorial | Deep Learning Course | S...
 
Computer vision, machine, and deep learning
Computer vision, machine, and deep learningComputer vision, machine, and deep learning
Computer vision, machine, and deep learning
 
Machine Learning - Object Detection and Classification
Machine Learning - Object Detection and ClassificationMachine Learning - Object Detection and Classification
Machine Learning - Object Detection and Classification
 
Image Processing with OpenCV
Image Processing with OpenCVImage Processing with OpenCV
Image Processing with OpenCV
 
Machine learning Presentation
Machine learning PresentationMachine learning Presentation
Machine learning Presentation
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 
Edge detection
Edge detectionEdge detection
Edge detection
 
Handwritten Digit Recognition(Convolutional Neural Network) PPT
Handwritten Digit Recognition(Convolutional Neural Network) PPTHandwritten Digit Recognition(Convolutional Neural Network) PPT
Handwritten Digit Recognition(Convolutional Neural Network) PPT
 
Histogram Specification or Matching Problem
Histogram Specification or Matching ProblemHistogram Specification or Matching Problem
Histogram Specification or Matching Problem
 
"Semantic Segmentation for Scene Understanding: Algorithms and Implementation...
"Semantic Segmentation for Scene Understanding: Algorithms and Implementation..."Semantic Segmentation for Scene Understanding: Algorithms and Implementation...
"Semantic Segmentation for Scene Understanding: Algorithms and Implementation...
 
Object Detection & Tracking
Object Detection & TrackingObject Detection & Tracking
Object Detection & Tracking
 
Transfer Learning
Transfer LearningTransfer Learning
Transfer Learning
 
Computer Vision
Computer VisionComputer Vision
Computer Vision
 

Viewers also liked

Whats new in IBM MQ; V9 LTS, V9.0.1 CD and V9.0.2 CD
Whats new in IBM MQ; V9 LTS, V9.0.1 CD and V9.0.2 CDWhats new in IBM MQ; V9 LTS, V9.0.1 CD and V9.0.2 CD
Whats new in IBM MQ; V9 LTS, V9.0.1 CD and V9.0.2 CDDavid Ware
 
Control structures in C++ Programming Language
Control structures in C++ Programming LanguageControl structures in C++ Programming Language
Control structures in C++ Programming LanguageAhmad Idrees
 
Basic characteristics of business
Basic characteristics of businessBasic characteristics of business
Basic characteristics of businessAhmad Idrees
 
Basics of c++ Programming Language
Basics of c++ Programming LanguageBasics of c++ Programming Language
Basics of c++ Programming LanguageAhmad Idrees
 
C++ Programming Language
C++ Programming Language C++ Programming Language
C++ Programming Language Mohamed Loey
 
Principle of marketing
Principle of marketing Principle of marketing
Principle of marketing Ahmad Idrees
 
What is computer Introduction to Computing
What is computer Introduction  to Computing What is computer Introduction  to Computing
What is computer Introduction to Computing Ahmad Idrees
 
Effective writing, tips for Bloggers
Effective writing, tips for BloggersEffective writing, tips for Bloggers
Effective writing, tips for BloggersAhmad Idrees
 
System outputs - Computer System
System outputs - Computer SystemSystem outputs - Computer System
System outputs - Computer SystemAhmad Idrees
 
Whats new in IIB v9 + Open Beta v10 GSE
Whats new in IIB v9 + Open Beta v10 GSEWhats new in IIB v9 + Open Beta v10 GSE
Whats new in IIB v9 + Open Beta v10 GSEDominic Storey
 
Intro. to prog. c++
Intro. to prog. c++Intro. to prog. c++
Intro. to prog. c++KurdGul
 
Strategic planning and mission statement
Strategic planning and mission statement Strategic planning and mission statement
Strategic planning and mission statement Ahmad Idrees
 
An overview of computers and programming languages
An overview of computers and programming languages An overview of computers and programming languages
An overview of computers and programming languages Ahmad Idrees
 
Introduction to objects and inputoutput
Introduction to objects and inputoutput Introduction to objects and inputoutput
Introduction to objects and inputoutput Ahmad Idrees
 
Control structures ii
Control structures ii Control structures ii
Control structures ii Ahmad Idrees
 
Basic c++ programs
Basic c++ programsBasic c++ programs
Basic c++ programsharman kaur
 
Basic qualities of a good businessman
Basic qualities of a good businessmanBasic qualities of a good businessman
Basic qualities of a good businessmanAhmad Idrees
 

Viewers also liked (20)

IBM MQ V9 Overview
IBM MQ V9 OverviewIBM MQ V9 Overview
IBM MQ V9 Overview
 
Whats new in IBM MQ; V9 LTS, V9.0.1 CD and V9.0.2 CD
Whats new in IBM MQ; V9 LTS, V9.0.1 CD and V9.0.2 CDWhats new in IBM MQ; V9 LTS, V9.0.1 CD and V9.0.2 CD
Whats new in IBM MQ; V9 LTS, V9.0.1 CD and V9.0.2 CD
 
Control structures in C++ Programming Language
Control structures in C++ Programming LanguageControl structures in C++ Programming Language
Control structures in C++ Programming Language
 
Basic characteristics of business
Basic characteristics of businessBasic characteristics of business
Basic characteristics of business
 
Basics of c++ Programming Language
Basics of c++ Programming LanguageBasics of c++ Programming Language
Basics of c++ Programming Language
 
C++ Programming Language
C++ Programming Language C++ Programming Language
C++ Programming Language
 
Principle of marketing
Principle of marketing Principle of marketing
Principle of marketing
 
What is business
What is businessWhat is business
What is business
 
What is computer Introduction to Computing
What is computer Introduction  to Computing What is computer Introduction  to Computing
What is computer Introduction to Computing
 
Effective writing, tips for Bloggers
Effective writing, tips for BloggersEffective writing, tips for Bloggers
Effective writing, tips for Bloggers
 
System outputs - Computer System
System outputs - Computer SystemSystem outputs - Computer System
System outputs - Computer System
 
Whats new in IIB v9 + Open Beta v10 GSE
Whats new in IIB v9 + Open Beta v10 GSEWhats new in IIB v9 + Open Beta v10 GSE
Whats new in IIB v9 + Open Beta v10 GSE
 
Intro. to prog. c++
Intro. to prog. c++Intro. to prog. c++
Intro. to prog. c++
 
Strategic planning and mission statement
Strategic planning and mission statement Strategic planning and mission statement
Strategic planning and mission statement
 
C++ ppt
C++ pptC++ ppt
C++ ppt
 
An overview of computers and programming languages
An overview of computers and programming languages An overview of computers and programming languages
An overview of computers and programming languages
 
Introduction to objects and inputoutput
Introduction to objects and inputoutput Introduction to objects and inputoutput
Introduction to objects and inputoutput
 
Control structures ii
Control structures ii Control structures ii
Control structures ii
 
Basic c++ programs
Basic c++ programsBasic c++ programs
Basic c++ programs
 
Basic qualities of a good businessman
Basic qualities of a good businessmanBasic qualities of a good businessman
Basic qualities of a good businessman
 

Similar to Python in Computer Vision

Classificando documentos com computer vision api e python
Classificando documentos com computer vision api e pythonClassificando documentos com computer vision api e python
Classificando documentos com computer vision api e pythonLetícia Pedroso
 
Python Projects For Beginners | Python Projects Examples | Python Tutorial | ...
Python Projects For Beginners | Python Projects Examples | Python Tutorial | ...Python Projects For Beginners | Python Projects Examples | Python Tutorial | ...
Python Projects For Beginners | Python Projects Examples | Python Tutorial | ...Edureka!
 
01. Pengenalan konsep, tool, library & pemrograman.pptx
01. Pengenalan konsep, tool, library & pemrograman.pptx01. Pengenalan konsep, tool, library & pemrograman.pptx
01. Pengenalan konsep, tool, library & pemrograman.pptxIdaBagusAdisimakrisn2
 
License Plate Recognition Using Python and OpenCV
License Plate Recognition Using Python and OpenCVLicense Plate Recognition Using Python and OpenCV
License Plate Recognition Using Python and OpenCVVishal Polley
 
Supervised vs Unsupervised vs Reinforcement Learning | Edureka
Supervised vs Unsupervised vs Reinforcement Learning | EdurekaSupervised vs Unsupervised vs Reinforcement Learning | Edureka
Supervised vs Unsupervised vs Reinforcement Learning | EdurekaEdureka!
 
Computer vision and face recognition using python
Computer vision and face recognition using pythonComputer vision and face recognition using python
Computer vision and face recognition using pythonRatnakar Pandey
 
Statistics Using Python | Statistics Python Tutorial | Python Certification T...
Statistics Using Python | Statistics Python Tutorial | Python Certification T...Statistics Using Python | Statistics Python Tutorial | Python Certification T...
Statistics Using Python | Statistics Python Tutorial | Python Certification T...Edureka!
 
20160813 102-59-kim youngwook
20160813 102-59-kim youngwook20160813 102-59-kim youngwook
20160813 102-59-kim youngwookitproman35
 
Python programming | Fundamentals of Python programming
Python programming | Fundamentals of Python programming Python programming | Fundamentals of Python programming
Python programming | Fundamentals of Python programming KrishnaMildain
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to pythonsjagadeeswari
 
Python Machine Learning Tutorial
Python Machine Learning TutorialPython Machine Learning Tutorial
Python Machine Learning Tutorialgrinu
 
License Plate Recognition System using Python and OpenCV
License Plate Recognition System using Python and OpenCVLicense Plate Recognition System using Python and OpenCV
License Plate Recognition System using Python and OpenCVVishal Polley
 
pycon-2015-liza-daly
pycon-2015-liza-dalypycon-2015-liza-daly
pycon-2015-liza-dalyLiza Daly
 
Scientific Programming in Python
Scientific Programming in PythonScientific Programming in Python
Scientific Programming in Pythonzukun
 

Similar to Python in Computer Vision (20)

Research plan
Research planResearch plan
Research plan
 
Classificando documentos com computer vision api e python
Classificando documentos com computer vision api e pythonClassificando documentos com computer vision api e python
Classificando documentos com computer vision api e python
 
Python Projects For Beginners | Python Projects Examples | Python Tutorial | ...
Python Projects For Beginners | Python Projects Examples | Python Tutorial | ...Python Projects For Beginners | Python Projects Examples | Python Tutorial | ...
Python Projects For Beginners | Python Projects Examples | Python Tutorial | ...
 
01. Pengenalan konsep, tool, library & pemrograman.pptx
01. Pengenalan konsep, tool, library & pemrograman.pptx01. Pengenalan konsep, tool, library & pemrograman.pptx
01. Pengenalan konsep, tool, library & pemrograman.pptx
 
License Plate Recognition Using Python and OpenCV
License Plate Recognition Using Python and OpenCVLicense Plate Recognition Using Python and OpenCV
License Plate Recognition Using Python and OpenCV
 
Supervised vs Unsupervised vs Reinforcement Learning | Edureka
Supervised vs Unsupervised vs Reinforcement Learning | EdurekaSupervised vs Unsupervised vs Reinforcement Learning | Edureka
Supervised vs Unsupervised vs Reinforcement Learning | Edureka
 
Computer vision and face recognition using python
Computer vision and face recognition using pythonComputer vision and face recognition using python
Computer vision and face recognition using python
 
Obj report
Obj reportObj report
Obj report
 
Statistics Using Python | Statistics Python Tutorial | Python Certification T...
Statistics Using Python | Statistics Python Tutorial | Python Certification T...Statistics Using Python | Statistics Python Tutorial | Python Certification T...
Statistics Using Python | Statistics Python Tutorial | Python Certification T...
 
CIS AIML Beginners Series Part 1
CIS AIML Beginners Series Part 1CIS AIML Beginners Series Part 1
CIS AIML Beginners Series Part 1
 
20160813 102-59-kim youngwook
20160813 102-59-kim youngwook20160813 102-59-kim youngwook
20160813 102-59-kim youngwook
 
python training.docx
python training.docxpython training.docx
python training.docx
 
Python programming | Fundamentals of Python programming
Python programming | Fundamentals of Python programming Python programming | Fundamentals of Python programming
Python programming | Fundamentals of Python programming
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
Python Machine Learning Tutorial
Python Machine Learning TutorialPython Machine Learning Tutorial
Python Machine Learning Tutorial
 
License Plate Recognition System using Python and OpenCV
License Plate Recognition System using Python and OpenCVLicense Plate Recognition System using Python and OpenCV
License Plate Recognition System using Python and OpenCV
 
Sais svcc
Sais svccSais svcc
Sais svcc
 
pycon-2015-liza-daly
pycon-2015-liza-dalypycon-2015-liza-daly
pycon-2015-liza-daly
 
Scientific Programming in Python
Scientific Programming in PythonScientific Programming in Python
Scientific Programming in Python
 
Career in python
Career in pythonCareer in python
Career in python
 

Recently uploaded

The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)IES VE
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Alkin Tezuysal
 
My key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAIMy key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAIVijayananda Mohire
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveIES VE
 
Introduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationIntroduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationKnoldus Inc.
 
LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0DanBrown980551
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxSatishbabu Gunukula
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kitJamie (Taka) Wang
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024Brian Pichman
 
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTSIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTxtailishbaloch
 
TrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie WorldTrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie WorldTrustArc
 
2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdfThe Good Food Institute
 
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInThousandEyes
 
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfTejal81
 
Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for  Biomedical ApplicationsGraphene Quantum Dots-Based Composites for  Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applicationsnooralam814309
 
Top 10 Squarespace Development Companies
Top 10 Squarespace Development CompaniesTop 10 Squarespace Development Companies
Top 10 Squarespace Development CompaniesTopCSSGallery
 
How to release an Open Source Dataweave Library
How to release an Open Source Dataweave LibraryHow to release an Open Source Dataweave Library
How to release an Open Source Dataweave Libraryshyamraj55
 
CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024Brian Pichman
 
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechWebinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechProduct School
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2DianaGray10
 

Recently uploaded (20)

The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
 
My key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAIMy key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAI
 
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES LiveKeep Your Finger on the Pulse of Your Building's Performance with IES Live
Keep Your Finger on the Pulse of Your Building's Performance with IES Live
 
Introduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its applicationIntroduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its application
 
LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0LF Energy Webinar - Unveiling OpenEEMeter 4.0
LF Energy Webinar - Unveiling OpenEEMeter 4.0
 
Oracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptxOracle Database 23c Security New Features.pptx
Oracle Database 23c Security New Features.pptx
 
20140402 - Smart house demo kit
20140402 - Smart house demo kit20140402 - Smart house demo kit
20140402 - Smart house demo kit
 
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024
 
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENTSIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
SIM INFORMATION SYSTEM: REVOLUTIONIZING DATA MANAGEMENT
 
TrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie WorldTrustArc Webinar - How to Live in a Post Third-Party Cookie World
TrustArc Webinar - How to Live in a Post Third-Party Cookie World
 
2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf2024.03.12 Cost drivers of cultivated meat production.pdf
2024.03.12 Cost drivers of cultivated meat production.pdf
 
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedInOutage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
 
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdfQ4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
Q4 2023 Quarterly Investor Presentation - FINAL - v1.pdf
 
Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for  Biomedical ApplicationsGraphene Quantum Dots-Based Composites for  Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applications
 
Top 10 Squarespace Development Companies
Top 10 Squarespace Development CompaniesTop 10 Squarespace Development Companies
Top 10 Squarespace Development Companies
 
How to release an Open Source Dataweave Library
How to release an Open Source Dataweave LibraryHow to release an Open Source Dataweave Library
How to release an Open Source Dataweave Library
 
CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024
 
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - TechWebinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
 
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2
 

Python in Computer Vision

  • 1. Motivation & Background Computer Vision in Python More Information Summary Introduction to using Python in Computer Vision Kiwi PyCon, Christchurch, 2009 Brian Thorne University of Canterbury 6th November 2009 Brian Thorne Computer Vision in Python
  • 2. Motivation & Background Computer Vision in Python More Information Summary Outline 1 Motivation & Background What is Computer Vision? Uses & Examples 2 Computer Vision in Python Tools Image Acquisition Image Filtering Background Subtraction Feature Point Detection 3 More Information Different platforms Additional Tools Brian Thorne Computer Vision in Python
  • 3. Motivation & Background Computer Vision in Python Computer Vision More Information Uses & Examples Summary Outline 1 Motivation & Background What is Computer Vision? Uses & Examples 2 Computer Vision in Python Tools Image Acquisition Image Filtering Background Subtraction Feature Point Detection 3 More Information Different platforms Additional Tools Brian Thorne Computer Vision in Python
  • 4. Motivation & Background Computer Vision in Python Computer Vision More Information Uses & Examples Summary Vision 25% of the whole brain is for vision. Around 50% of cerebral cortex is for vision, 80% of the brain is associated with vision in some manner. Brian Thorne Computer Vision in Python
  • 5. Computer Vision Definition The goal of computer vision is to recognize objects and their motion What is it used for? Scene reconstruction Event detection Video tracking Object recognition Learning Indexing Motion estimation Image restoration
  • 6. Computer Vision Definition The goal of computer vision is to recognize objects and their motion What is it used for? Scene reconstruction Event detection Video tracking Object recognition Learning Indexing Motion estimation Image restoration
  • 7. Motivation & Background Computer Vision in Python Computer Vision More Information Uses & Examples Summary Computer Vision crosses over with many domains Brian Thorne Computer Vision in Python
  • 8. Motivation & Background Computer Vision in Python Computer Vision More Information Uses & Examples Summary What makes it hard? What we see What the computer sees Brian Thorne Computer Vision in Python
  • 9. Motivation & Background Computer Vision in Python Computer Vision More Information Uses & Examples Summary Vision is inferential http://web.mit.edu/persci/people/adelson/checkershadow_illusion.html Brian Thorne Computer Vision in Python
  • 10. Motivation & Background Computer Vision in Python Computer Vision More Information Uses & Examples Summary Outline 1 Motivation & Background What is Computer Vision? Uses & Examples 2 Computer Vision in Python Tools Image Acquisition Image Filtering Background Subtraction Feature Point Detection 3 More Information Different platforms Additional Tools Brian Thorne Computer Vision in Python
  • 11. Motivation & Background Computer Vision in Python Computer Vision More Information Uses & Examples Summary Visual Object Classes Challenge 09 http://www.pascal-network.org/challenges/VOC/voc2009 Brian Thorne Computer Vision in Python
  • 12. Motivation & Background Computer Vision in Python Computer Vision More Information Uses & Examples Summary Object Recognition and Segmentation - Texture −− − − − − −→ (Sharon, Balun, Brandt, Basri) Brian Thorne Computer Vision in Python
  • 13. Motivation & Background Computer Vision in Python Computer Vision More Information Uses & Examples Summary Object Recognition and Segmentation - Edges http://www.robots.ox.ac.uk/~vdg/dynamics.html Brian Thorne Computer Vision in Python
  • 14. Motivation & Background Computer Vision in Python Computer Vision More Information Uses & Examples Summary Traffic Monitoring Brian Thorne Computer Vision in Python
  • 15. Motivation & Background Computer Vision in Python Computer Vision More Information Uses & Examples Summary Augented Reality - Sixth Sense ’SixthSense’ is a wearable gestural interface that augments the physical world around us with digital information and lets us use natural hand gestures to interact with that information. http://www.pranavmistry.com/projects/sixthsense/ Brian Thorne Computer Vision in Python
  • 16. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Outline 1 Motivation & Background What is Computer Vision? Uses & Examples 2 Computer Vision in Python Tools Image Acquisition Image Filtering Background Subtraction Feature Point Detection 3 More Information Different platforms Additional Tools Brian Thorne Computer Vision in Python
  • 17. Python In Computer Vision: OpenCV Provides well tested, optimized and open source code for image processing and computer vision Written in C, ensuring both fast and portable. Has been compiled for many embedded platforms Has multiple language wrappers including 3 for Python Tools have been made to use graphics hardware to accelerate CV performance on the GPU Project home page and documentation is at: http://opencv.willowgarage.com
  • 18. Python In Computer Vision: OpenCV Provides well tested, optimized and open source code for image processing and computer vision Written in C, ensuring both fast and portable. Has been compiled for many embedded platforms Has multiple language wrappers including 3 for Python Tools have been made to use graphics hardware to accelerate CV performance on the GPU Project home page and documentation is at: http://opencv.willowgarage.com
  • 19. Python In Computer Vision: OpenCV Provides well tested, optimized and open source code for image processing and computer vision Written in C, ensuring both fast and portable. Has been compiled for many embedded platforms Has multiple language wrappers including 3 for Python Tools have been made to use graphics hardware to accelerate CV performance on the GPU Project home page and documentation is at: http://opencv.willowgarage.com
  • 20. Python In Computer Vision: OpenCV Provides well tested, optimized and open source code for image processing and computer vision Written in C, ensuring both fast and portable. Has been compiled for many embedded platforms Has multiple language wrappers including 3 for Python Tools have been made to use graphics hardware to accelerate CV performance on the GPU Project home page and documentation is at: http://opencv.willowgarage.com
  • 21. Python In Computer Vision: OpenCV Provides well tested, optimized and open source code for image processing and computer vision Written in C, ensuring both fast and portable. Has been compiled for many embedded platforms Has multiple language wrappers including 3 for Python Tools have been made to use graphics hardware to accelerate CV performance on the GPU Project home page and documentation is at: http://opencv.willowgarage.com
  • 22. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Python In Computer Vision: Numpy & Scipy Gives strongly typed N-dimensional arrays to Python Well used and tested libraries for scientific computing Includes lots of handy tools such as optimisation and signal processing used often in computer vision. Usually used with iPython and matplotlib SciPy can be downloaded from: http://www.scipy.org Brian Thorne Computer Vision in Python
  • 23. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Python In Computer Vision: Numpy & Scipy Gives strongly typed N-dimensional arrays to Python Well used and tested libraries for scientific computing Includes lots of handy tools such as optimisation and signal processing used often in computer vision. Usually used with iPython and matplotlib SciPy can be downloaded from: http://www.scipy.org Brian Thorne Computer Vision in Python
  • 24. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Python In Computer Vision: Numpy & Scipy Gives strongly typed N-dimensional arrays to Python Well used and tested libraries for scientific computing Includes lots of handy tools such as optimisation and signal processing used often in computer vision. Usually used with iPython and matplotlib SciPy can be downloaded from: http://www.scipy.org Brian Thorne Computer Vision in Python
  • 25. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Python In Computer Vision: Numpy & Scipy Gives strongly typed N-dimensional arrays to Python Well used and tested libraries for scientific computing Includes lots of handy tools such as optimisation and signal processing used often in computer vision. Usually used with iPython and matplotlib SciPy can be downloaded from: http://www.scipy.org Brian Thorne Computer Vision in Python
  • 26. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Python In Computer Vision: Numpy & Scipy Gives strongly typed N-dimensional arrays to Python Well used and tested libraries for scientific computing Includes lots of handy tools such as optimisation and signal processing used often in computer vision. Usually used with iPython and matplotlib SciPy can be downloaded from: http://www.scipy.org Brian Thorne Computer Vision in Python
  • 27. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Python In Computer Vision: Pygame Game development framework Now has basic Computer Vision support Being Python it can be used with other Python tools - integrates well with numpy/scipy pygame can be downloaded from: http://www.pygame.org Brian Thorne Computer Vision in Python
  • 28. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Python In Computer Vision: Pygame Game development framework Now has basic Computer Vision support Being Python it can be used with other Python tools - integrates well with numpy/scipy pygame can be downloaded from: http://www.pygame.org Brian Thorne Computer Vision in Python
  • 29. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Python In Computer Vision: Pygame Game development framework Now has basic Computer Vision support Being Python it can be used with other Python tools - integrates well with numpy/scipy pygame can be downloaded from: http://www.pygame.org Brian Thorne Computer Vision in Python
  • 30. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Pycam This is the project with all the examples for this presentation. Has a bunch of simple examples like filtering and background subtraction, face detection. Contains two video player classes that can work with different backend setups, and can incorporate optional process functions. Examples of intergrating OpenCV with pygame - eg for eye and face detection. OpenCV camera class that allows an opencv camera to be used with pygame (No longer required in latest pygame) VideoCapturePlayer For the rest of this presentation, examples will use the video capture code (with error checking) from pycam. Brian Thorne Computer Vision in Python
  • 31. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Pycam This is the project with all the examples for this presentation. Has a bunch of simple examples like filtering and background subtraction, face detection. Contains two video player classes that can work with different backend setups, and can incorporate optional process functions. Examples of intergrating OpenCV with pygame - eg for eye and face detection. OpenCV camera class that allows an opencv camera to be used with pygame (No longer required in latest pygame) VideoCapturePlayer For the rest of this presentation, examples will use the video capture code (with error checking) from pycam. Brian Thorne Computer Vision in Python
  • 32. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Pycam This is the project with all the examples for this presentation. Has a bunch of simple examples like filtering and background subtraction, face detection. Contains two video player classes that can work with different backend setups, and can incorporate optional process functions. Examples of intergrating OpenCV with pygame - eg for eye and face detection. OpenCV camera class that allows an opencv camera to be used with pygame (No longer required in latest pygame) VideoCapturePlayer For the rest of this presentation, examples will use the video capture code (with error checking) from pycam. Brian Thorne Computer Vision in Python
  • 33. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Pycam This is the project with all the examples for this presentation. Has a bunch of simple examples like filtering and background subtraction, face detection. Contains two video player classes that can work with different backend setups, and can incorporate optional process functions. Examples of intergrating OpenCV with pygame - eg for eye and face detection. OpenCV camera class that allows an opencv camera to be used with pygame (No longer required in latest pygame) VideoCapturePlayer For the rest of this presentation, examples will use the video capture code (with error checking) from pycam. Brian Thorne Computer Vision in Python
  • 34. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Outline 1 Motivation & Background What is Computer Vision? Uses & Examples 2 Computer Vision in Python Tools Image Acquisition Image Filtering Background Subtraction Feature Point Detection 3 More Information Different platforms Additional Tools Brian Thorne Computer Vision in Python
  • 35. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Acquiring & Display Of An Image Live image acquisition is such a crucial role in the majority of CV applications. Example getting and showing a frame as a most basic, but necessary test Brian Thorne Computer Vision in Python
  • 36. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Acquiring & Display Of An Image Live image acquisition is such a crucial role in the majority of CV applications. Example getting and showing a frame as a most basic, but necessary test Brian Thorne Computer Vision in Python
  • 37. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Python OpenCV: Image Capture Example from opencv import highgui as hg capture = hg.cvCreateCameraCapture(0) hg.cvNamedWindow("Snapshot") frame = hg.cvQueryFrame(capture) hg.cvShowImage("Snapshot", frame) hg.cvWaitKey(10000) Brian Thorne Computer Vision in Python
  • 38. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Outline 1 Motivation & Background What is Computer Vision? Uses & Examples 2 Computer Vision in Python Tools Image Acquisition Image Filtering Background Subtraction Feature Point Detection 3 More Information Different platforms Additional Tools Brian Thorne Computer Vision in Python
  • 39. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Filtering - Gaussian Blur One of the simplest operations in image processing is blurring an image Reduce noise, Remove artifacts Scale an image “cleanly” Create motion blur - if done in one direction OpenCV includes a gaussian filter among many others (cvSmooth function) SciPy has a multi-dimensional Gaussian filter that acts on a NumPy array Or you could convolve an image with a filter manually Brian Thorne Computer Vision in Python
  • 40. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Filtering - Gaussian Blur One of the simplest operations in image processing is blurring an image Reduce noise, Remove artifacts Scale an image “cleanly” Create motion blur - if done in one direction OpenCV includes a gaussian filter among many others (cvSmooth function) SciPy has a multi-dimensional Gaussian filter that acts on a NumPy array Or you could convolve an image with a filter manually Brian Thorne Computer Vision in Python
  • 41. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Filtering - Gaussian Blur One of the simplest operations in image processing is blurring an image Reduce noise, Remove artifacts Scale an image “cleanly” Create motion blur - if done in one direction OpenCV includes a gaussian filter among many others (cvSmooth function) SciPy has a multi-dimensional Gaussian filter that acts on a NumPy array Or you could convolve an image with a filter manually Brian Thorne Computer Vision in Python
  • 42. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Filtering - Gaussian Blur One of the simplest operations in image processing is blurring an image Reduce noise, Remove artifacts Scale an image “cleanly” Create motion blur - if done in one direction OpenCV includes a gaussian filter among many others (cvSmooth function) SciPy has a multi-dimensional Gaussian filter that acts on a NumPy array Or you could convolve an image with a filter manually Brian Thorne Computer Vision in Python
  • 43. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Filtering - Gaussian Blur One of the simplest operations in image processing is blurring an image Reduce noise, Remove artifacts Scale an image “cleanly” Create motion blur - if done in one direction OpenCV includes a gaussian filter among many others (cvSmooth function) SciPy has a multi-dimensional Gaussian filter that acts on a NumPy array Or you could convolve an image with a filter manually Brian Thorne Computer Vision in Python
  • 44. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Filtering - Gaussian Blur One of the simplest operations in image processing is blurring an image Reduce noise, Remove artifacts Scale an image “cleanly” Create motion blur - if done in one direction OpenCV includes a gaussian filter among many others (cvSmooth function) SciPy has a multi-dimensional Gaussian filter that acts on a NumPy array Or you could convolve an image with a filter manually Brian Thorne Computer Vision in Python
  • 45. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Applying a Gaussian Blur with OpenCV OpenCV Gaussian Blur from pycam import VideoCapturePlayer as VCP from opencv import cv def gaussianBlur(im, filterSize=43): result = cv.cvCreateMat(im.rows, im.cols, im.type ) cv.cvSmooth(image,result, cv.CV_GAUSSIAN, filterSize) return result if __name__ == "__main__": VCP(gaussianBlur, "Guassian Filter").main() Brian Thorne Computer Vision in Python
  • 46. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Applying a Gaussian Blur with Scipy SciPy Gaussian Blur from scipy.ndimage.filters import gaussian_filter from pycam import OpencvVideoCapturePlayer as VCP from misc import scipyFromOpenCV @scipyFromOpenCV def gaussianBlur(np_image): result = gaussian_filter(np_image, sigma=(4, 4, 0), order=0, mode=’reflect’) return result if __name__ == "__main__": VCP(gaussianBlur,"Scipy Guassian Blur").main() Brian Thorne Computer Vision in Python
  • 47. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Outline 1 Motivation & Background What is Computer Vision? Uses & Examples 2 Computer Vision in Python Tools Image Acquisition Image Filtering Background Subtraction Feature Point Detection 3 More Information Different platforms Additional Tools Brian Thorne Computer Vision in Python
  • 48. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Background Subtraction In video security the camera mostly looks at the same boring background What we are usually interested in is when objects (eg people or vehicles) enter or exit a scene Aim is to isolate the interesting, and ignore the boring At the most simple level background subtraction is simply a comparison between two image frames At the more complex level many people have gotten phd’s for better background learning techniques, and better differencing algorithms Brian Thorne Computer Vision in Python
  • 49. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Background Subtraction In video security the camera mostly looks at the same boring background What we are usually interested in is when objects (eg people or vehicles) enter or exit a scene Aim is to isolate the interesting, and ignore the boring At the most simple level background subtraction is simply a comparison between two image frames At the more complex level many people have gotten phd’s for better background learning techniques, and better differencing algorithms Brian Thorne Computer Vision in Python
  • 50. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Background Subtraction In video security the camera mostly looks at the same boring background What we are usually interested in is when objects (eg people or vehicles) enter or exit a scene Aim is to isolate the interesting, and ignore the boring At the most simple level background subtraction is simply a comparison between two image frames At the more complex level many people have gotten phd’s for better background learning techniques, and better differencing algorithms Brian Thorne Computer Vision in Python
  • 51. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Background Subtraction Simple Frame Differencing 1 To let the camera adjust to light levels, ignore the first few frames. 2 Store a frame as the base frame. 3 For each new frame that comes in: 1 Take the absolute intensity difference in each channel (Red/Green/Blue) with the base frame. 2 Binary threshold to ignore pixels that are only a bit different. 3 Convert difference image to a one channel mask 4 Clean up small noise areas in the mask (with median filter, erode, connected components) 5 Return the changed pixels from the original image using the created mask. Brian Thorne Computer Vision in Python
  • 52. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Background Subtraction Simple Frame Differencing 1 To let the camera adjust to light levels, ignore the first few frames. 2 Store a frame as the base frame. 3 For each new frame that comes in: 1 Take the absolute intensity difference in each channel (Red/Green/Blue) with the base frame. 2 Binary threshold to ignore pixels that are only a bit different. 3 Convert difference image to a one channel mask 4 Clean up small noise areas in the mask (with median filter, erode, connected components) 5 Return the changed pixels from the original image using the created mask. Brian Thorne Computer Vision in Python
  • 53. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Background Subtraction Simple Frame Differencing 1 To let the camera adjust to light levels, ignore the first few frames. 2 Store a frame as the base frame. 3 For each new frame that comes in: 1 Take the absolute intensity difference in each channel (Red/Green/Blue) with the base frame. 2 Binary threshold to ignore pixels that are only a bit different. 3 Convert difference image to a one channel mask 4 Clean up small noise areas in the mask (with median filter, erode, connected components) 5 Return the changed pixels from the original image using the created mask. Brian Thorne Computer Vision in Python
  • 54. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Background Subtraction Simple Frame Differencing 1 To let the camera adjust to light levels, ignore the first few frames. 2 Store a frame as the base frame. 3 For each new frame that comes in: 1 Take the absolute intensity difference in each channel (Red/Green/Blue) with the base frame. 2 Binary threshold to ignore pixels that are only a bit different. 3 Convert difference image to a one channel mask 4 Clean up small noise areas in the mask (with median filter, erode, connected components) 5 Return the changed pixels from the original image using the created mask. Brian Thorne Computer Vision in Python
  • 55. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Background Subtraction Simple Frame Differencing 1 To let the camera adjust to light levels, ignore the first few frames. 2 Store a frame as the base frame. 3 For each new frame that comes in: 1 Take the absolute intensity difference in each channel (Red/Green/Blue) with the base frame. 2 Binary threshold to ignore pixels that are only a bit different. 3 Convert difference image to a one channel mask 4 Clean up small noise areas in the mask (with median filter, erode, connected components) 5 Return the changed pixels from the original image using the created mask. Brian Thorne Computer Vision in Python
  • 56. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Background Subtraction Simple Frame Differencing 1 To let the camera adjust to light levels, ignore the first few frames. 2 Store a frame as the base frame. 3 For each new frame that comes in: 1 Take the absolute intensity difference in each channel (Red/Green/Blue) with the base frame. 2 Binary threshold to ignore pixels that are only a bit different. 3 Convert difference image to a one channel mask 4 Clean up small noise areas in the mask (with median filter, erode, connected components) 5 Return the changed pixels from the original image using the created mask. Brian Thorne Computer Vision in Python
  • 57. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Background Subtraction Simple Frame Differencing 1 To let the camera adjust to light levels, ignore the first few frames. 2 Store a frame as the base frame. 3 For each new frame that comes in: 1 Take the absolute intensity difference in each channel (Red/Green/Blue) with the base frame. 2 Binary threshold to ignore pixels that are only a bit different. 3 Convert difference image to a one channel mask 4 Clean up small noise areas in the mask (with median filter, erode, connected components) 5 Return the changed pixels from the original image using the created mask. Brian Thorne Computer Vision in Python
  • 58. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Background Subtraction Simple Frame Differencing 1 To let the camera adjust to light levels, ignore the first few frames. 2 Store a frame as the base frame. 3 For each new frame that comes in: 1 Take the absolute intensity difference in each channel (Red/Green/Blue) with the base frame. 2 Binary threshold to ignore pixels that are only a bit different. 3 Convert difference image to a one channel mask 4 Clean up small noise areas in the mask (with median filter, erode, connected components) 5 Return the changed pixels from the original image using the created mask. Brian Thorne Computer Vision in Python
  • 59. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Background Subtract Here I have placed a cellphone on my cluttered desk Can’t tell thats there is no green screen Quick demo Brian Thorne Computer Vision in Python
  • 60. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Outline 1 Motivation & Background What is Computer Vision? Uses & Examples 2 Computer Vision in Python Tools Image Acquisition Image Filtering Background Subtraction Feature Point Detection 3 More Information Different platforms Additional Tools Brian Thorne Computer Vision in Python
  • 61. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Feature Point Detection Feature point detection is implemented in OpenCV you can do it in one call: cvCornerHarris or cvGoodFeatures To demonstrate the algorithm though - we will go look at it in scipy. Implementation derived from Jan Solem Brian Thorne Computer Vision in Python
  • 62. Feature Detection 1 First convert to a grey scale image 2 Showing the derivative in the x and y directions 3 showing the millions of points of interest 4 filtering them
  • 63. Tools Motivation & Background Image Acquisition Computer Vision in Python Image Filtering More Information Background Subtraction Summary Feature Point Detection Augmented Reality Augmented reality is undergoing massive growth OpenCV provides the face detection An AR game can easily be made in Pygame using the webcam and face location as the interface Brian Thorne Computer Vision in Python
  • 64. Motivation & Background Computer Vision in Python Different platforms More Information Additional Tools Summary Outline 1 Motivation & Background What is Computer Vision? Uses & Examples 2 Computer Vision in Python Tools Image Acquisition Image Filtering Background Subtraction Feature Point Detection 3 More Information Different platforms Additional Tools Brian Thorne Computer Vision in Python
  • 65. Motivation & Background Computer Vision in Python Different platforms More Information Additional Tools Summary Running on an OLPC OLPC - provide children in developing nations with access to knowledge, and opportunities to "explore, experiment and express themselves" Includes Python and a webcam - thats all you need for computer vision! Here I am running OpenCV’s facedetection on the XO laptop Lots of Computer Vision work on the XO has been done using pygame by Nirav Patel (http://eclecti.cc/olpc) Brian Thorne Computer Vision in Python
  • 66. Motivation & Background Computer Vision in Python Different platforms More Information Additional Tools Summary Running on an OLPC OLPC - provide children in developing nations with access to knowledge, and opportunities to "explore, experiment and express themselves" Includes Python and a webcam - thats all you need for computer vision! Here I am running OpenCV’s facedetection on the XO laptop Lots of Computer Vision work on the XO has been done using pygame by Nirav Patel (http://eclecti.cc/olpc) Brian Thorne Computer Vision in Python
  • 67. Motivation & Background Computer Vision in Python Different platforms More Information Additional Tools Summary Running on an OLPC OLPC - provide children in developing nations with access to knowledge, and opportunities to "explore, experiment and express themselves" Includes Python and a webcam - thats all you need for computer vision! Here I am running OpenCV’s facedetection on the XO laptop Lots of Computer Vision work on the XO has been done using pygame by Nirav Patel (http://eclecti.cc/olpc) Brian Thorne Computer Vision in Python
  • 68. Motivation & Background Computer Vision in Python Different platforms More Information Additional Tools Summary Running on an OLPC OLPC - provide children in developing nations with access to knowledge, and opportunities to "explore, experiment and express themselves" Includes Python and a webcam - thats all you need for computer vision! Here I am running OpenCV’s facedetection on the XO laptop Lots of Computer Vision work on the XO has been done using pygame by Nirav Patel (http://eclecti.cc/olpc) Brian Thorne Computer Vision in Python
  • 69. Motivation & Background Computer Vision in Python Different platforms More Information Additional Tools Summary Outline 1 Motivation & Background What is Computer Vision? Uses & Examples 2 Computer Vision in Python Tools Image Acquisition Image Filtering Background Subtraction Feature Point Detection 3 More Information Different platforms Additional Tools Brian Thorne Computer Vision in Python
  • 70. IPython & MatPlotLib Using IPython, an interactive shell can be used from deep inside a nested loop in a running program. In the code add from IPython.Shell import IPShellEmbed ... IPShellEmbed()() Example In [1]: from opencv import cv In [2]: cv.cvAnd(diffImage,image, temp) In [3]: timeit cv.cvAnd(diffImage,image, temp) 1000 loops, best of 3: 229 µs per loop In [4]: from pylab import imshow, show In [5]: imshow(temp) Out[5]: <AxesImage object at 0x42489d0> In [6]: show()
  • 71. Motivation & Background Computer Vision in Python Different platforms More Information Additional Tools Summary Documentation & Support The documentation in both SciPy and OpenCV was found to be pretty good.... not entirely complete. The OpenCV book is really good. Remember Python is Free Documentation is not going to be as extensive as for a professional package like Matlab.... but you can help! Support for these open source packages is almost entirely reliant on experienced members of the community responding to requests on message boards or mailing lists. Brian Thorne Computer Vision in Python
  • 72. Motivation & Background Computer Vision in Python More Information Summary Summary For the scholar of computer vision research, using Python can help in trying out new algorithms very quickly. The breadth of the additional libraries available and the ease of integrating, make new and novel solutions quickly realizable. For someone just wanting to play around with some cool stuff, its easy to dive in! Limitations on using Python for CV A major limitation of using Python would be when the application is being developed for special embedded hardware or when the best possible performance is required (at YOUR expense) Brian Thorne Computer Vision in Python
  • 73. References Thank You! Thank you to Raphaël Grasset - supervisor at HitLabNZ Richard Green - computer vision lecturer John Graves & Cristiano Soares for giving me detailed and helpful feedback Brian Thorne Computer Vision in Python
  • 74. References For Further Reading I Library URL Pygame http://pygame.org OpenCV http://opencv.willowgarage.com Numpy/Scipy http://scipy.org Pycam http://pycam.googlecode.org G. Bradski, A. Kaehler Learning OpenCV. O’Reilly Media, September 2008. T. Oliphant Guide to NumPy. UT, Trelgol Publishing, 2006. Brian Thorne Computer Vision in Python