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




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


                          Brian Thorne

                      University of Canterbury


                     6th November 2009




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


Outline

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

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


Outline

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

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


Vision




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


                              Brian Thorne    Computer Vision in Python
Computer Vision

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


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

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


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


Computer Vision crosses over with many domains




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


What makes it hard?


  What we see                                What the computer sees




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


Vision is inferential




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




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


Outline

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

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


Visual Object Classes Challenge 09




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


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


Object Recognition and Segmentation - Texture




                                −− − −
                                − − −→

                          (Sharon, Balun, Brandt, Basri)


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


Object Recognition and Segmentation - Edges




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


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


Traffic Monitoring




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


Augented Reality - Sixth Sense

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




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


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


Outline

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

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

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

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

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

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

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

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

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

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

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

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


Python In Computer Vision: Numpy & Scipy


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


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


Python In Computer Vision: Numpy & Scipy


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


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


Python In Computer Vision: Numpy & Scipy


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


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


Python In Computer Vision: Numpy & Scipy


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


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


Python In Computer Vision: Numpy & Scipy


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


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


Python In Computer Vision: Pygame




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

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

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


Python In Computer Vision: Pygame




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

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

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


Python In Computer Vision: Pygame




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

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

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


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

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


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

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


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

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


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

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


Outline

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

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


Acquiring & Display Of An Image




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

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




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


Acquiring & Display Of An Image




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

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




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


Python OpenCV: Image Capture



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




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


Outline

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

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


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


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


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


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


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


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


Applying a Gaussian Blur with OpenCV

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


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


Applying a Gaussian Blur with Scipy

  SciPy Gaussian Blur

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

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


Outline

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

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


Background Subtraction


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


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


Background Subtraction


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


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


Background Subtraction


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


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


Background Subtraction

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

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


Background Subtraction

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

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


Background Subtraction

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

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


Background Subtraction

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

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


Background Subtraction

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

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


Background Subtraction

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

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


Background Subtraction

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

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


Background Subtraction

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

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


Background Subtract




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




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


Outline

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

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


Feature Point Detection



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




                         Brian Thorne      Computer Vision in Python
Feature Detection




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


Augmented Reality



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




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


Outline

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

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


Running on an OLPC

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


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


Running on an OLPC

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


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


Running on an OLPC

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


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


Running on an OLPC

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


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


Outline

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

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

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

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


Documentation & Support


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

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



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


Summary

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


                          Brian Thorne    Computer Vision in Python
References




Thank You!



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




                        Brian Thorne   Computer Vision in Python
References




For Further Reading I

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


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

More Related Content

What's hot

Image compression in digital image processing
Image compression in digital image processingImage compression in digital image processing
Image compression in digital image processingDHIVYADEVAKI
 
Histogram based Enhancement
Histogram based Enhancement Histogram based Enhancement
Histogram based Enhancement Vivek V
 
Inception V3 Image Processing .pptx
Inception V3 Image Processing .pptxInception V3 Image Processing .pptx
Inception V3 Image Processing .pptxMahmoudMohamedAbdelb
 
Computer vision and Open CV
Computer vision and Open CVComputer vision and Open CV
Computer vision and Open CVChariza Pladin
 
Lecture 1 for Digital Image Processing (2nd Edition)
Lecture 1 for Digital Image Processing (2nd Edition)Lecture 1 for Digital Image Processing (2nd Edition)
Lecture 1 for Digital Image Processing (2nd Edition)Moe Moe Myint
 
Python for Computer Vision - Revision 2nd Edition
Python for Computer Vision - Revision 2nd EditionPython for Computer Vision - Revision 2nd Edition
Python for Computer Vision - Revision 2nd EditionAhmed Gad
 
Image Enhancement in Spatial Domain
Image Enhancement in Spatial DomainImage Enhancement in Spatial Domain
Image Enhancement in Spatial DomainDEEPASHRI HK
 
Introduction to Image Compression
Introduction to Image CompressionIntroduction to Image Compression
Introduction to Image CompressionKalyan Acharjya
 
Image Processing with OpenCV
Image Processing with OpenCVImage Processing with OpenCV
Image Processing with OpenCVdebayanin
 
Chapter10 image segmentation
Chapter10 image segmentationChapter10 image segmentation
Chapter10 image segmentationasodariyabhavesh
 
Image Representation & Descriptors
Image Representation & DescriptorsImage Representation & Descriptors
Image Representation & DescriptorsPundrikPatel
 
Object detection presentation
Object detection presentationObject detection presentation
Object detection presentationAshwinBicholiya
 
Chapter 1 and 2 gonzalez and woods
Chapter 1 and 2 gonzalez and woodsChapter 1 and 2 gonzalez and woods
Chapter 1 and 2 gonzalez and woodsasodariyabhavesh
 
An Introduction to Computer Vision
An Introduction to Computer VisionAn Introduction to Computer Vision
An Introduction to Computer Visionguestd1b1b5
 
Real-time object detection coz YOLO!
Real-time object detection coz YOLO!Real-time object detection coz YOLO!
Real-time object detection coz YOLO!J On The Beach
 
image basics and image compression
image basics and image compressionimage basics and image compression
image basics and image compressionmurugan hari
 

What's hot (20)

Computer Vision
Computer VisionComputer Vision
Computer Vision
 
Image compression in digital image processing
Image compression in digital image processingImage compression in digital image processing
Image compression in digital image processing
 
Histogram based Enhancement
Histogram based Enhancement Histogram based Enhancement
Histogram based Enhancement
 
Inception V3 Image Processing .pptx
Inception V3 Image Processing .pptxInception V3 Image Processing .pptx
Inception V3 Image Processing .pptx
 
Computer vision and Open CV
Computer vision and Open CVComputer vision and Open CV
Computer vision and Open CV
 
Lecture 1 for Digital Image Processing (2nd Edition)
Lecture 1 for Digital Image Processing (2nd Edition)Lecture 1 for Digital Image Processing (2nd Edition)
Lecture 1 for Digital Image Processing (2nd Edition)
 
Python for Computer Vision - Revision 2nd Edition
Python for Computer Vision - Revision 2nd EditionPython for Computer Vision - Revision 2nd Edition
Python for Computer Vision - Revision 2nd Edition
 
Image Enhancement in Spatial Domain
Image Enhancement in Spatial DomainImage Enhancement in Spatial Domain
Image Enhancement in Spatial Domain
 
Introduction to Image Compression
Introduction to Image CompressionIntroduction to Image Compression
Introduction to Image Compression
 
Image Processing with OpenCV
Image Processing with OpenCVImage Processing with OpenCV
Image Processing with OpenCV
 
Chapter10 image segmentation
Chapter10 image segmentationChapter10 image segmentation
Chapter10 image segmentation
 
Image Representation & Descriptors
Image Representation & DescriptorsImage Representation & Descriptors
Image Representation & Descriptors
 
Object tracking
Object trackingObject tracking
Object tracking
 
Object detection presentation
Object detection presentationObject detection presentation
Object detection presentation
 
Chapter 1 and 2 gonzalez and woods
Chapter 1 and 2 gonzalez and woodsChapter 1 and 2 gonzalez and woods
Chapter 1 and 2 gonzalez and woods
 
An Introduction to Computer Vision
An Introduction to Computer VisionAn Introduction to Computer Vision
An Introduction to Computer Vision
 
Real-time object detection coz YOLO!
Real-time object detection coz YOLO!Real-time object detection coz YOLO!
Real-time object detection coz YOLO!
 
Animation
AnimationAnimation
Animation
 
image basics and image compression
image basics and image compressionimage basics and image compression
image basics and image compression
 
Deep Learning
Deep Learning Deep Learning
Deep Learning
 

Viewers also liked

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

Viewers also liked (20)

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

Similar to Python in Computer Vision

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

Similar to Python in Computer Vision (20)

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

Recently uploaded

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 

Recently uploaded (20)

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 

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