throbber
Computer Vision Laboratory
`
`Robot Vision Systems
`PhD course spring term 2015
`
`Michael Felsberg
`
`michael.felsberg@liu.se
`
`GTL 1019
`IPR of U.S. Patent 9,007,420
`
`0001
`
`

`
`Goals
`
`• System design and programming in
`–OpenCV 3.0 rc1
`
`–ROS (robot operating system) Indigo (Jade ?)
`
`• focus part 1: visual computing
`–basically same as OpenCV course 2012
`
`–platform for own computational schemes and
`estimation methods
`
`–own vision models and visual representations
`
`• combining with high-level tools provided
`by OpenCV in the project part
`
`0002
`
`

`
`Goals
`
`• lectures concentrate on the fundamental
`data structures and how to manipulate
`and extend those
`
`• focus part 2: robot vision systems
`–distributed computing with ROS
`
`–efficient use of OpenCV in ROS
`
`• access to robotic hardware is not part of
`the course – make use of available
`resources from your lab
`
`• simulation as fallback
`
`0003
`
`

`
`Prerequisites
`
`• solid background in
`–mathematics (linear algebra, numerical
`methods)
`
`–signal/image processing
`
`–computer vision
`
`–C++ programming
`
`• own laptop with internet access and
`admin rights to install software
`
`• camera supported by Ubuntu 14.04
`(15.04 ?)
`
`0004
`
`

`
`Organization
`
`• lectures
`–core features of OpenCV 3.0
`
`–systems basics in ROS Indigo (Jade ?)
`
`• seminars
`–participants present topics
`
`–one seminar presentation required for credits
`
`• exercises
`–installation of OpenCV and ROS
`
`–going through essential first steps
`
`• project (example application)
`
`0005
`
`

`
`Organization
`
`• credits: 9hp if
`–project work
`
`–80% presence
`
`–one seminar presentation
`
`• without the project work: 6hp
`
`• note: if you have participated in the
`course ‘visual computing with OpenCV’,
`you can only get 6hp (3hp without project)
`
`• 'listen-only’: 0hp
`
`0006
`
`

`
`Schedule
`
`• lecture 1: course information and OpenCV
`history. April 30, Thursday, 13.15 - 14.45
`
`• exercise 1: installation of Ceemple: Eclipse,
`Python, and OpenCV. May, w19 Mon?
`
`• lecture 2: dense matrices. May, w19 Wed?
`
`• seminar 1 (topic 1-4). May, w20 Mon?
`
`• lecture 3: methods on dense matrices. May,
`w20 Wed?
`
`0007
`
`

`
`Schedule
`
`• seminar 2 (topic 5-8). May, w21 Mon?
`
`• lecture 4: sparse matrices and methods. May,
`w21 Wed?
`
`• exercise 2: adding functionality to sparse
`matrices. May, w21 Thu?
`
`• lecture 5: building your own representation.
`May, w22 Mon?
`
`• exercise 3: build and test your own represen-
`tation. May, w22 Wed?
`
`0008
`
`

`
`Schedule
`
`• lecture 6: good desgin principles, selection of
`projects. May, w22 Thu?
`
`• lecture 7: rapid prototyping using Python. May,
`w23 Mon?
`
`• exercise 4: Python: basics and prototyping using
`OpenCV. May, w23 Tue?
`
`• lecture 8: debugging in OpenCV. May, 23 Thu?
`
`• Part 2 (ROS) and final workshop (presentation of
`projects): Start in August, w33 or 34?
`
`0009
`
`

`
`Seminars
`
`1. classes (fundamentals)
`
`2. classes (templates and namespaces)
`
`3. vectors in STL (without iterators)
`
`4. iterators in STL (mainly for vectors)
`
`5. inheritance and virtual methods
`
`6. exceptions
`
`7. debugging: gdb
`
`8. documentation with Doxygen
`
`0010
`
`

`
`What is OpenCV?
`
`• Open Source Computer Vision Library
`
`• library of optimized algorithms (>2500)
`
`• aimed at real-time computer vision
`
`• developed by Intel, and now supported by
`Willow Garage and Itseez
`
`• free for use under the open source BSD
`license
`
`• cross-platform
`
`0011
`
`

`
`History of OpenCV
`
`• Intel Research Initiative
`
`• Project launch 1999
`
`• Related to Intel’s Performance Library
`(today: IPP, Integrated Performance
`Primitives)
`
`• Looking for CPU-intensive applications
`
`• Project goals
`–Advance vision research by open and optimized
`infrastructure
`
`–Disseminate vision knowledge with readable code
`
`–Advance commercial applications
`
`0012
`
`

`
`Versions
`• alpha-release at CVPR 2000
`• five beta-releases 2001-2005
`• Version 1.0 2006
`• Continuation of development by Willow
`Garage 2008 (pre-release version 1.1)
`• Version 2.0 2009
`• Versions 2.1, 2.2 2010
`• Version 2.3 2011
`• Version 2.4 2012-2014
`• Version 3.0 beta November 2014
`• Version 3.0 rc1 April 2015
`
`0013
`
`

`
`Applications
`• 2D and 3D feature toolkits
`• Egomotion estimation
`• Facial recognition system
`• Gesture recognition
`• Human–computer interaction (HCI)
`• Mobile robotics
`• Motion analysis
`• Object detection and recognition
`• Segmentation
`• Stereo vision: depth perception from 2 cameras
`• Structure from motion (SFM)
`• Motion tracking
`
`0014
`
`

`
`Machine Learning
`
`• Boosting
`
`• Decision tree learning
`
`• Gradient boosting trees
`
`• Expectation-maximization algorithm
`
`• k-nearest neighbor algorithm
`
`• Naive Bayes classifier
`
`• Artificial neural networks
`
`• Random forest
`
`• Support vector machine (SVM)
`
`0015
`
`

`
`Programming Languages
`
`• Originally in C, since 2.0 also C++
`
`• Wrappers to many other languages, a.o.
`Python, Matlab, and Java, although
`sometimes a bit outdated
`
`• Since 2010 CUDA-based GPU interface
`
`• Many desktop platforms (Windows, Linux,
`FreeBSD, OpenBSD, Mac OS)
`
`• Mobile platforms (Android, Maemo, iOS)
`
`• Primary vision package for ROS (Robot
`Operating System)
`
`0016
`
`

`
`Why Using OpenCV?
`
`• Many algorithms (>2.500)
`
`• Efficient implementations
`
`• De-facto standard (>7.000.000
`downloads)
`
`• Free to use
`
`• Source code
`
`• Quick bug-fixes
`
`• Platform independent
`
`• Rapid prototyping with Python
`
`0017
`
`

`
`Decisions within Course
`
`• ROS requires Ubuntu (Windows:
`VirtualBox)
`
`• OpenCV option 1: Ceemple IDE (license will
`be provided)
`–Platform independent
`
`–Based on Eclipse IDE (integration of g++, gdb,
`svn, doxygen)
`
`–Includes OpenCV, Qt, OpenCL, Eigen, Boost,
`Dlib, etc.
`
`–Aims at replacing Python (rapid prototyping in
`C++)
`
`0018
`
`

`
`Decisions within Course
`
`• OpenCV option 2: Ceemple for VS
`–Requires Visual Studio Community (Windows)
`
`–Image Watch Extension and Project Wizard
`
`–Includes OpenCV, OpenCL, etc.
`
`–Qt etc might need to be installed separately
`
`–Aims at replacing Python (rapid prototyping in
`C++)
`
`• Python installation:
`–Ubuntu: via package tool
`
`–Windows: WinPython 3.4.3.2 (OpenCV 3) /
`2.7.9.4 (OpenCV 2.4)
`
`0019
`
`

`
`How does CVL use OpenCV?
`
`• Alternative to Matlab with mex-files
`
`• Collaboration with other labs
`
`• Combined with ICE or ROS for building
`distributed real-time systems
`
`• Connected to hardware APIs (e.g.
`LadyBug3)
`
`• Undergraduate courses: project work
`
`0020
`
`

`
`Motivation to give Course
`
`• Used from Matlab: calculate with image data
`
`• Images are matrices, thus entities in
`computations
`
`• OpenCV 2/3 uses Mat for both images and
`matrices
`
`• Support for doing calculations is limited, in
`particular on sparse data
`
`• Gained knowledge on both cross-platform
`development and extending Mat-capabilities:
`to be shared!
`
`0021
`
`

`
`Links
`• http://www.ceemple.com/buy/ (license for course
`exists)
`• http://sourceforge.net/projects/winpython/files/WinPyt
`hon_3.4/3.4.3.2/
`• http://www.robotappstore.com/Knowledge-
`Base/ROS-Installation-for-Windows-Users/137.html
`• http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-
`desktop-amd64.iso
`• http://download.virtualbox.org/virtualbox/4.3.20/Virtua
`lBox-4.3.20-96997-Win.exe
`• -install Ubuntu in a new virtual machine (16 GB)
`• -resolution will initially be poor; install Guest Additions
`by clicking 'devices' in the Virtual Machine
`• http://wiki.ros.org/indigo/Installation/Ubuntu
`
`0022
`
`

`
`OpenCV without Ceemple
`
`• Windows:
`http://www.cvl.isy.liu.se/education/graduate/o
`pencv/opencv-installation-windows
`
`• Mac:
`http://www.cvl.isy.liu.se/education/graduate/o
`pencv/opencv-installation-mac-os
`
`• Linux (Fedora):
`http://www.cvl.isy.liu.se/education/graduate/o
`pencv/opencv-installation-linux
`
`0023

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket