SlideShare a Scribd company logo
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
Ad

Recommended

PPTX
Loops in Python.pptx
Guru Nanak Dev University, Amritsar
 
PDF
Introduction to Operating Systems
Mukesh Chinta
 
PDF
DQN (Deep Q-Network)
Dong Guo
 
PPTX
Python- Regular expression
Megha V
 
PPT
01 Introduction to Knowledge Engineering
Natig Vahabov
 
PDF
Relational knowledge distillation
NAVER Engineering
 
PDF
History of AI
Sanjay Kumar
 
PPTX
Data Wrangling
Ashwini Kuntamukkala
 
PPTX
Machine Learning Contents.pptx
Naveenkushwaha18
 
PPTX
CNN Machine learning DeepLearning
Abhishek Sharma
 
PPTX
Introduction to CNN
Shuai Zhang
 
PDF
Training Neural Networks
Databricks
 
PDF
Deep Dive into Hyperparameter Tuning
Shubhmay Potdar
 
PPTX
What Is Deep Learning? | Introduction to Deep Learning | Deep Learning Tutori...
Simplilearn
 
PDF
Machine learning in image processing
Data Science Thailand
 
PPTX
Deep Learning Workflows: Training and Inference
NVIDIA
 
PDF
Machine learning
Dr Geetha Mohan
 
PPTX
Raster scan systems with video controller and display processor
hemanth kumar
 
PDF
Machine Learning: Introduction to Neural Networks
Francesco Collova'
 
PPT
backpropagation in neural networks
Akash Goel
 
PPTX
Data Science With Python | Python For Data Science | Python Data Science Cour...
Simplilearn
 
PPTX
What is Deep Learning?
NVIDIA
 
PPTX
Convolutional Neural Networks
milad abbasi
 
PDF
Best Python Libraries For Data Science & Machine Learning | Edureka
Edureka!
 
PPTX
Introduction to Deep learning
leopauly
 
PPTX
Classification and Regression
Megha Sharma
 
PDF
Convolutional Neural Networks (CNN)
Gaurav Mittal
 
PPTX
Deep neural networks
Si Haem
 
PDF
IBM MQ V9 Overview
MarkTaylorIBM
 
PDF
Whats new in IBM MQ; V9 LTS, V9.0.1 CD and V9.0.2 CD
David Ware
 

More Related Content

What's hot (20)

PPTX
Machine Learning Contents.pptx
Naveenkushwaha18
 
PPTX
CNN Machine learning DeepLearning
Abhishek Sharma
 
PPTX
Introduction to CNN
Shuai Zhang
 
PDF
Training Neural Networks
Databricks
 
PDF
Deep Dive into Hyperparameter Tuning
Shubhmay Potdar
 
PPTX
What Is Deep Learning? | Introduction to Deep Learning | Deep Learning Tutori...
Simplilearn
 
PDF
Machine learning in image processing
Data Science Thailand
 
PPTX
Deep Learning Workflows: Training and Inference
NVIDIA
 
PDF
Machine learning
Dr Geetha Mohan
 
PPTX
Raster scan systems with video controller and display processor
hemanth kumar
 
PDF
Machine Learning: Introduction to Neural Networks
Francesco Collova'
 
PPT
backpropagation in neural networks
Akash Goel
 
PPTX
Data Science With Python | Python For Data Science | Python Data Science Cour...
Simplilearn
 
PPTX
What is Deep Learning?
NVIDIA
 
PPTX
Convolutional Neural Networks
milad abbasi
 
PDF
Best Python Libraries For Data Science & Machine Learning | Edureka
Edureka!
 
PPTX
Introduction to Deep learning
leopauly
 
PPTX
Classification and Regression
Megha Sharma
 
PDF
Convolutional Neural Networks (CNN)
Gaurav Mittal
 
PPTX
Deep neural networks
Si Haem
 
Machine Learning Contents.pptx
Naveenkushwaha18
 
CNN Machine learning DeepLearning
Abhishek Sharma
 
Introduction to CNN
Shuai Zhang
 
Training Neural Networks
Databricks
 
Deep Dive into Hyperparameter Tuning
Shubhmay Potdar
 
What Is Deep Learning? | Introduction to Deep Learning | Deep Learning Tutori...
Simplilearn
 
Machine learning in image processing
Data Science Thailand
 
Deep Learning Workflows: Training and Inference
NVIDIA
 
Machine learning
Dr Geetha Mohan
 
Raster scan systems with video controller and display processor
hemanth kumar
 
Machine Learning: Introduction to Neural Networks
Francesco Collova'
 
backpropagation in neural networks
Akash Goel
 
Data Science With Python | Python For Data Science | Python Data Science Cour...
Simplilearn
 
What is Deep Learning?
NVIDIA
 
Convolutional Neural Networks
milad abbasi
 
Best Python Libraries For Data Science & Machine Learning | Edureka
Edureka!
 
Introduction to Deep learning
leopauly
 
Classification and Regression
Megha Sharma
 
Convolutional Neural Networks (CNN)
Gaurav Mittal
 
Deep neural networks
Si Haem
 

Viewers also liked (20)

PDF
IBM MQ V9 Overview
MarkTaylorIBM
 
PDF
Whats new in IBM MQ; V9 LTS, V9.0.1 CD and V9.0.2 CD
David Ware
 
PPT
Control structures in C++ Programming Language
Ahmad Idrees
 
PPTX
Basic characteristics of business
Ahmad Idrees
 
PPT
Basics of c++ Programming Language
Ahmad Idrees
 
PPSX
C++ Programming Language
Mohamed Loey
 
PPT
Principle of marketing
Ahmad Idrees
 
PPTX
What is business
Ahmad Idrees
 
PPT
What is computer Introduction to Computing
Ahmad Idrees
 
PPTX
Effective writing, tips for Bloggers
Ahmad Idrees
 
PPT
System outputs - Computer System
Ahmad Idrees
 
PDF
Whats new in IIB v9 + Open Beta v10 GSE
Dominic Storey
 
PPT
Intro. to prog. c++
KurdGul
 
PPT
Strategic planning and mission statement
Ahmad Idrees
 
PPTX
C++ ppt
Aneesh Gupta
 
PPT
An overview of computers and programming languages
Ahmad Idrees
 
PPT
Introduction to objects and inputoutput
Ahmad Idrees
 
PPT
Control structures ii
Ahmad Idrees
 
PPTX
Basic c++ programs
harman kaur
 
PPTX
Basic qualities of a good businessman
Ahmad Idrees
 
IBM MQ V9 Overview
MarkTaylorIBM
 
Whats new in IBM MQ; V9 LTS, V9.0.1 CD and V9.0.2 CD
David Ware
 
Control structures in C++ Programming Language
Ahmad Idrees
 
Basic characteristics of business
Ahmad Idrees
 
Basics of c++ Programming Language
Ahmad Idrees
 
C++ Programming Language
Mohamed Loey
 
Principle of marketing
Ahmad Idrees
 
What is business
Ahmad Idrees
 
What is computer Introduction to Computing
Ahmad Idrees
 
Effective writing, tips for Bloggers
Ahmad Idrees
 
System outputs - Computer System
Ahmad Idrees
 
Whats new in IIB v9 + Open Beta v10 GSE
Dominic Storey
 
Intro. to prog. c++
KurdGul
 
Strategic planning and mission statement
Ahmad Idrees
 
C++ ppt
Aneesh Gupta
 
An overview of computers and programming languages
Ahmad Idrees
 
Introduction to objects and inputoutput
Ahmad Idrees
 
Control structures ii
Ahmad Idrees
 
Basic c++ programs
harman kaur
 
Basic qualities of a good businessman
Ahmad Idrees
 
Ad

Similar to Python in Computer Vision (20)

PDF
OpenCV
Marie Behzadi
 
PDF
بینایی ماشین
Shiraz LUG
 
PPTX
Computer Vision
ArtiKhanchandani
 
PPTX
Introduction-to-Computer-Vision PPPP.pptx
ShivaniPaswan6
 
PDF
Computer vision and Open CV
Chariza Pladin
 
PPTX
Introduction to Computer Vision - Image formation
KarpagaPriya10
 
PPTX
01 foundations
ankit_ppt
 
PPTX
Computer Vision(4).pptx
GouthamMaliga
 
PPTX
Introduction-to-Computer-Vision & AI.pptx
AriefBudiman899104
 
PDF
Lecture-1-2-+(1).pdf
samaghorab
 
PDF
Lecture-1-2-+(1).pdf
samaghorab
 
PPTX
Computer vision introduction
Wael Badawy
 
PDF
Lecture 1 computer vision introduction
cairo university
 
PPTX
Seeing with Python presented at PyCon AU 2014
Mark Rees
 
PPTX
Computer vision lightning talk castaway week
Christopher Decker
 
PDF
computervisionpresentationai-210331145836.pdf
muladamai1
 
PPTX
AI GRPOUP 4 PRESENTATION.pptx
BaakoMohammed
 
PPTX
Computer Vision Presentation Artificial Intelligence (AI)
AshTheMidBenchers
 
PPT
vision-1.ppt
SushantKohli6
 
PPTX
ASHISH SEMINAR PRESENTATION fully animated.pptx
newnotion4
 
بینایی ماشین
Shiraz LUG
 
Computer Vision
ArtiKhanchandani
 
Introduction-to-Computer-Vision PPPP.pptx
ShivaniPaswan6
 
Computer vision and Open CV
Chariza Pladin
 
Introduction to Computer Vision - Image formation
KarpagaPriya10
 
01 foundations
ankit_ppt
 
Computer Vision(4).pptx
GouthamMaliga
 
Introduction-to-Computer-Vision & AI.pptx
AriefBudiman899104
 
Lecture-1-2-+(1).pdf
samaghorab
 
Lecture-1-2-+(1).pdf
samaghorab
 
Computer vision introduction
Wael Badawy
 
Lecture 1 computer vision introduction
cairo university
 
Seeing with Python presented at PyCon AU 2014
Mark Rees
 
Computer vision lightning talk castaway week
Christopher Decker
 
computervisionpresentationai-210331145836.pdf
muladamai1
 
AI GRPOUP 4 PRESENTATION.pptx
BaakoMohammed
 
Computer Vision Presentation Artificial Intelligence (AI)
AshTheMidBenchers
 
vision-1.ppt
SushantKohli6
 
ASHISH SEMINAR PRESENTATION fully animated.pptx
newnotion4
 
Ad

Recently uploaded (20)

PDF
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
PDF
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
PDF
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
PDF
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
PPTX
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
PPTX
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
PPTX
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
PPTX
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
PDF
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
PPTX
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
PDF
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
PDF
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
PDF
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
PPTX
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
PDF
The Growing Value and Application of FME & GenAI
Safe Software
 
PDF
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
PDF
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
PDF
Hyderabad MuleSoft In-Person Meetup (June 21, 2025) Slides
Ravi Tamada
 
PDF
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
PDF
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
 
The Growing Value and Application of FME & GenAI
Safe Software
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
Hyderabad MuleSoft In-Person Meetup (June 21, 2025) Slides
Ravi Tamada
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 

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