15
Seeing with Python Mark Rees CTO Century Software

Seeing with Python presented at PyCon AU 2014

Embed Size (px)

DESCRIPTION

My Computer Vision with Python talk given at Pycon Australia 2014

Citation preview

Page 1: Seeing with Python presented at PyCon AU 2014

Seeing with Python

Mark ReesCTO

Century Software

Page 2: Seeing with Python presented at PyCon AU 2014

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

Page 3: Seeing with Python presented at PyCon AU 2014

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)

Page 4: Seeing with Python presented at PyCon AU 2014

What is Computer Vision - 2014

Page 5: Seeing with Python presented at PyCon AU 2014

Computer Vision – My Reality

Page 6: Seeing with Python presented at PyCon AU 2014

CV is a lot more than grabbing an image

CV

Object Illumination

ImageCapture

Sensors/Cameras

Digitisation/Conversion

ImageProcessing

AlgorithmDevelopment

Implementation

Display Control

Page 7: Seeing with Python presented at PyCon AU 2014

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

Page 8: Seeing with Python presented at PyCon AU 2014

Scipy ndimage

N dimensional array image processing

http://docs.scipy.org/doc/scipy/reference/ndimage.html

Demo: Multi-demensional image processing.ipynb

Page 9: Seeing with Python presented at PyCon AU 2014

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 functionshttp://mahotas.readthedocs.org/

Page 10: Seeing with Python presented at PyCon AU 2014

PCV

Code for Programming Computer Vision in Python book

https://github.com/jesolem/PCV

Page 11: Seeing with Python presented at PyCon AU 2014

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

Pygame dependency caused me some problemsNot all image manipulation worked in ipython. Simplecv shell is where all functionality works.

Page 13: Seeing with Python presented at PyCon AU 2014

Raspberry Pi CV

OpenCV available but USB cameras slowRpi camera faster, uses GPU, doesn’t work with OpenCVapt-get install python-picamera solves that.http://picamera.readthedocs.org/en/release-1.5/

Page 15: Seeing with Python presented at PyCon AU 2014

Mark [email protected]

+Mark Rees@hexdump42

hex-dump.blogspot.comhttps://bitbucket.org/hexdump42/seeing-in-python-pycon-sg-2014

Contact Details