Mark Rees
CTO
Century Software
What is Computer Vision – 1980’s
Then it was called Machine Vision
"the automatic acquisition and analysis of images to
obtain desired data for interpreting
a scene or controlling an activity" (Schaffer, 1984).
cnt dw $0000
src dw $0000
dst dw $0000
memcpy public
ldab cnt+1 ;Set B = cnt.L
beq check ;If cnt.L=0, goto check
loop ldx src ;Set IX = src
ldaa ix ;Load A from (src)
inx ;Set src = src+1
stx src
ldx dst ;Set IX = dst
staa ix ;Store A to (dst)
inx ;Set dst = dst+1
stx dst
decb ;Decr B
bne loop ;Repeat the loop
stab cnt+1 ;Set cnt.L = 0
check tst cnt+0 ;If cnt.H=0,
beq done ;Then quit
dec cnt+0 ;Decr cnt.H
decb ;Decr B
bra loop ;Repeat the loop
done rts ;Return
What is Computer Vision - 2014
“Computer vision is a field that includes methods for acquiring,
processing, analyzing, and understanding images and, in general, high-
dimensional data from the real world in order to produce numerical or
symbolic information, e.g., in the forms of decisions. A theme in the
development of this field has been to duplicate the abilities of human
vision by electronically perceiving and understanding an image. This
image understanding can be seen as the disentangling of symbolic
information from image data using models constructed with the aid of
geometry, physics, statistics, and learning theory. Computer vision has
also been described as the enterprise of automating and integrating a
wide range of processes and representations for vision perception.”
(Wikipedia 2014 http://en.wikipedia.org/wiki/Computer_Vision)
What is Computer Vision - 2014
Computer Vision – My Reality
CV is a lot more than grabbing an image
CV
Object Illumination
Image
Capture
Sensors/Cameras Digitisation/Conversion
Image
Processing
Algorithm
Development
Implementation
Display Control
Python Imaging Library
Pillow – The friendly PIL fork python 2.6+, 3.2+
http://python-pillow.github.io/
PIL – The “original” PIL python 1.52+, 2.0+
last release 11/2009
http://effbot.org/downloads
Demo: PIL.ipynb
Scipy ndimage
N dimensional array image processing
http://docs.scipy.org/doc/scipy/reference/ndimage.html
Demo: Multi-demensional image processing.ipynb
mahotas
Another library of fast computer vision algorithms (all
implemented in C++). Operates over numpy arrays.
• Image loading & writing
(including formats like LSM or STK).
• Image filtering (morphological, Gaussian, &c)
• Feature computation (Haralick, LBPs, SURF, &c)
• Most functions work in 3D (or even 4D, 5D, up to
32D).
• Many other utility functions
http://mahotas.readthedocs.org/
PCV
Code for Programming Computer Vision in Python book
https://github.com/jesolem/PCV
SimpleCV
SimpleCV is an open source framework for building
computer vision applications. With it, you get access to
several high-powered computer vision libraries such as
OpenCV – without having to first learn about bit depths,
file formats, color spaces, buffer management,
eigenvalues, or matrix versus bitmap storage.
http://simplecv.org/
Demo: SimpleCV - The Basics.ipynb
Pygamedependency caused me some problems
Not all image manipulation worked in ipython. Simplecv
shell is where all functionality works.
OpenCV Python Wrappers
Official python wrapper for OpenCV C/C++ libraries
Two namespaces cv & cv2. Use cv2, cv deprecated
Basis of SimpleCV and other python CV libraries
Demo: OpenCV - The Basics.ipynb
Demo: OpenCV Motion Detection.ipynb
Demo: OpenCV Face Detection.ipynb
Raspberry Pi CV
OpenCV available but USB cameras slow
Rpi camera faster, uses GPU, doesn’t work with OpenCV
apt-get install python-picamera solves that.
http://picamera.readthedocs.org/en/release-1.5/
Resources
http://www.packtpub.com/opencv-computer-
vision-with-python/book
http://programmingcomputervision.com/
There also is a Python CV module PCV
http://szeliski.org/Book/
Computer Vision: Algorithms and Applications
Mark Rees
mark@censof.com
+Mark Rees
@hexdump42
hex-dump.blogspot.com
https://bitbucket.org/hexdump42/seeing-in-python-pycon-sg-2014
Contact Details

Seeing with Python presented at PyCon AU 2014

  • 1.
  • 2.
    What is ComputerVision – 1980’s Then it was called Machine Vision "the automatic acquisition and analysis of images to obtain desired data for interpreting a scene or controlling an activity" (Schaffer, 1984). cnt dw $0000 src dw $0000 dst dw $0000 memcpy public ldab cnt+1 ;Set B = cnt.L beq check ;If cnt.L=0, goto check loop ldx src ;Set IX = src ldaa ix ;Load A from (src) inx ;Set src = src+1 stx src ldx dst ;Set IX = dst staa ix ;Store A to (dst) inx ;Set dst = dst+1 stx dst decb ;Decr B bne loop ;Repeat the loop stab cnt+1 ;Set cnt.L = 0 check tst cnt+0 ;If cnt.H=0, beq done ;Then quit dec cnt+0 ;Decr cnt.H decb ;Decr B bra loop ;Repeat the loop done rts ;Return
  • 3.
    What is ComputerVision - 2014 “Computer vision is a field that includes methods for acquiring, processing, analyzing, and understanding images and, in general, high- dimensional data from the real world in order to produce numerical or symbolic information, e.g., in the forms of decisions. A theme in the development of this field has been to duplicate the abilities of human vision by electronically perceiving and understanding an image. This image understanding can be seen as the disentangling of symbolic information from image data using models constructed with the aid of geometry, physics, statistics, and learning theory. Computer vision has also been described as the enterprise of automating and integrating a wide range of processes and representations for vision perception.” (Wikipedia 2014 http://en.wikipedia.org/wiki/Computer_Vision)
  • 4.
    What is ComputerVision - 2014
  • 5.
  • 6.
    CV is alot more than grabbing an image CV Object Illumination Image Capture Sensors/Cameras Digitisation/Conversion Image Processing Algorithm Development Implementation Display Control
  • 7.
    Python Imaging Library Pillow– The friendly PIL fork python 2.6+, 3.2+ http://python-pillow.github.io/ PIL – The “original” PIL python 1.52+, 2.0+ last release 11/2009 http://effbot.org/downloads Demo: PIL.ipynb
  • 8.
    Scipy ndimage N dimensionalarray image processing http://docs.scipy.org/doc/scipy/reference/ndimage.html Demo: Multi-demensional image processing.ipynb
  • 9.
    mahotas Another library offast computer vision algorithms (all implemented in C++). Operates over numpy arrays. • Image loading & writing (including formats like LSM or STK). • Image filtering (morphological, Gaussian, &c) • Feature computation (Haralick, LBPs, SURF, &c) • Most functions work in 3D (or even 4D, 5D, up to 32D). • Many other utility functions http://mahotas.readthedocs.org/
  • 10.
    PCV Code for ProgrammingComputer Vision in Python book https://github.com/jesolem/PCV
  • 11.
    SimpleCV SimpleCV is anopen source framework for building computer vision applications. With it, you get access to several high-powered computer vision libraries such as OpenCV – without having to first learn about bit depths, file formats, color spaces, buffer management, eigenvalues, or matrix versus bitmap storage. http://simplecv.org/ Demo: SimpleCV - The Basics.ipynb Pygamedependency caused me some problems Not all image manipulation worked in ipython. Simplecv shell is where all functionality works.
  • 12.
    OpenCV Python Wrappers Officialpython wrapper for OpenCV C/C++ libraries Two namespaces cv & cv2. Use cv2, cv deprecated Basis of SimpleCV and other python CV libraries Demo: OpenCV - The Basics.ipynb Demo: OpenCV Motion Detection.ipynb Demo: OpenCV Face Detection.ipynb
  • 13.
    Raspberry Pi CV OpenCVavailable but USB cameras slow Rpi camera faster, uses GPU, doesn’t work with OpenCV apt-get install python-picamera solves that. http://picamera.readthedocs.org/en/release-1.5/
  • 14.
    Resources http://www.packtpub.com/opencv-computer- vision-with-python/book http://programmingcomputervision.com/ There also isa Python CV module PCV http://szeliski.org/Book/ Computer Vision: Algorithms and Applications
  • 15.