|
|
(83 intermediate revisions by 4 users not shown) |
Line 2: |
Line 2: |
| * Fedora 18 | | * Fedora 18 |
| * OpenCV 2.4.X - whatever recent version is supported | | * OpenCV 2.4.X - whatever recent version is supported |
− | * Python 2.X for now upgrading to Python 3 when we get the OpenCV issue fixed | + | * Python 2.X/Python 3.X |
− | == Complete Git + Mousetrap Install == | + | == Complete Git and Mousetrap Install == |
| | | |
− | === '''Let's get git''' === | + | === '''Install git and Clone MouseTrap''' === |
− | Open a terminal, become root | + | Open a terminal and |
| '''Run Commands:''' | | '''Run Commands:''' |
− | -> cd /opt | + | -> sudo yum install git-core # Install git |
− | -> mkdir git * just fyi you can put your repo anywhere, this is just how I was taught | + | -> sudo yum -y update gnome-common glib2-devel\ |
− | -> yum install git-core * Install git | + | intltool python-devel opencv-python python-xlib # Update all dependencies, MUST be done before install |
− | -> cd /opt/git
| + | -> sudo yum -y install gnome-common glib2-devel\ |
− | -> git clone git://github.com/amberheilman/mousetrap.git * Now you have pulled down the git repo | + | intltool python-devel opencv-python python-xlib # Install latest versions of dependencies |
− | -> git checkout fix_install * This is my branch
| + | -> git clone git://git.gnome.org/mousetrap -b gnome3-wip # Clone the git repo to your computer |
− | -> git pull '''* DO NOT MAKE CHANGES HERE!''' We will all be working in separate branches!
| + | |
| | | |
− | === '''Make a branch''' === | + | === '''Install MouseTrap''' === |
− | -> git branch INSERT_BRANCH_NAME * this clones my branch and creates a new one
| + | |
− | -> git checkout INSERT_BRANCH_NAME * this opens up your branch that you just created
| + | |
− | -> git branch * now you can see the branch your in with a *, and all others under this git repo
| + | |
− | | + | |
− | === '''Mousetrap Install method''' ===
| + | |
− | '''Install Dependencies:'''
| + | |
− | -> yum install gnome-common
| + | |
− | -> yum install glib2-devel
| + | |
− | -> yum install intltool
| + | |
− | -> yum install python-devel
| + | |
− | -> yum install opencv-python
| + | |
− | -> yum install python-xlib
| + | |
| '''Run Commands:''' | | '''Run Commands:''' |
− | -> cd /opt/git/mousetrap/src * THIS WILL NOT WORK OUTSIDE THIS DIR! | + | -> cd mousetrap |
− | -> git branch fix_install
| + | -> ./autogen.sh # Set up MouseTrap |
− | -> ./autogen.sh | + | -> make # Compile MouseTrap |
− | -> make | + | -> make install # Install Mousetrap executable in appropriate directory |
− | -> make install | + | -> mousetrap # Execute MouseTrap. You may see warnings on your console |
− | -> mousetrap * You may have errors but they should be similar to my own (towards the end) | + | |
| | | |
− | === '''Make your first commit''' === | + | === '''Commit Changes - Deprecated''' === |
| -> git status * Shows all of the modified files | | -> git status * Shows all of the modified files |
| -> git add * * This is to add '''ALL''' files to commit list (MAKE SURE YOU WANT THEM ALL FIRST!) | | -> git add * * This is to add '''ALL''' files to commit list (MAKE SURE YOU WANT THEM ALL FIRST!) |
Line 44: |
Line 30: |
| -> git push origin INSERT_BRANCH_NAME * This must be the branch you created in the git install. | | -> git push origin INSERT_BRANCH_NAME * This must be the branch you created in the git install. |
| This will ask for your git credentials, so have them ready. | | This will ask for your git credentials, so have them ready. |
− | == The mousetrap Program ==
| |
− |
| |
− | = Opencv =
| |
− |
| |
− | == General Concerns ==
| |
− | Here we place all of the concerns when migrating to a newer version of opencv or the repercussions of not upgrading.
| |
− |
| |
− | === Migration to Python 3 ===
| |
− | * Opencv 2.4.3 does not support Python 3
| |
− |
| |
− | === Camera drivers ===
| |
− | * Currently, only some camera drivers are supported with the new version of opencv, leading to problems regarding capture. One issue is the inability to cancel the program webcam capture.
| |
− |
| |
− | === Yum repo ===
| |
− | * Right now, only the 2.3.1 version of opencv is available in the yum repository
| |
− |
| |
− | =OpenCV Info=
| |
− |
| |
− | ===Basics and Source Code===
| |
− |
| |
− | OpenCV (Open Source Computer Vision) is a library of programming functions for the realtime computer vision. OpenCV is released under the liberal BSD license and hence it's free for both academic and commercial use. It has C++, C, Python and Java (Android) interfaces and supports Windows, Linux, Android and Mac OS. The library has more than 2500 optimized algorithms. Adopted all around the world, OpenCV has more than 47 thousand people of user community and estimated number of downloads exceeding 5 million. Usage ranges from interactive art, to mines inspection, stitching maps on the web or through advanced robotics.
| |
− |
| |
− | To access the OpenCV repository directly: git clone git://github.com/itseez/opencv.git
| |
− | * A good source for this is: http://code.opencv.org/projects/opencv/wiki/Working_with_OpenCV_git_repository
| |
− | * The rest of the history plus matches between git commits and SVN revisions are stored at a separate "OpenCV Attic" repository: git://code.opencv.org/opencv_attic.git.
| |
− | * Also OpenCV Extra was put to a separate repository: git://code.opencv.org/opencv_extra.git.
| |
− |
| |
− | ===History===
| |
− | "OpenCV was started at Intel in 1999 by Gary Bradski for the purposes of accelerating research in and commercial applications of computer vision in the world and, for Intel, creating a demand for ever more powerful computers by such applications. Vadim Pisarevsky joined Gary to manage Intel's Russian software OpenCV team. Over time the OpenCV team moved on to other companies and other Research. Several of the original team eventually ended up working in robotics and found their way to Willow Garage. In 2008, Willow Garage saw the need to rapidly advance robotic perception capabilities in an open way that leverages the entire research and commercial community and began actively supporting OpenCV, with Gary and Vadim once again leading the effort." NEED A REF OR LINK
| |
− |
| |
− | ----
| |
− | So what is OpenCV?
| |
− | * OpenCV is a computer vision library in C++.
| |
− | * OpenCV 2 was released in 2009 with additional functionality and increased performance
| |
− | * CV is a Python wrapper for OpenCV
| |
− | * CV2 is a Python wrapper for OpenCV 2 and includes CV
| |
− | ** If you want CV functions you have to
| |
− |
| |
− | import cv2.cv as cv
| |
− |
| |
− | The full name is "Open Source Computer Vision Library." It is a library of programming functions aimed at real-time computer vision. It was developed by Intel and now Willow Garage and Itseez support it. It is free for use under the open source BSD license. Also, it can cross-platform.
| |
− |
| |
− |
| |
− |
| |
− | ----
| |
− | Where did it come from?
| |
− |
| |
− | OpenCV emerged from the Intel Research Initiative; it is related to Intel's Performance Library, which today is called Integrated Performance Primitives (IPP). The project launched in 1999. It was looking for CPU-intensive applications. The project goals were to:
| |
− | #advance vision research by open and optimized infrastructure
| |
− | #disseminate vision knowledge with readable code
| |
− | #and advance commercial applications
| |
− | ----
| |
− | '''Version List:'''
| |
− | 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.0 May 2012
| |
− | Version 2.4.1 June 2012
| |
− | Version 2.4.2 July 2012
| |
− | ----
| |
− | '''Application Use:'''
| |
− | 2D and 3D Feature Toolkits
| |
− | Egomotion Estimation
| |
− | ''Facial Recognition System''
| |
− | ''Gesture Recognition''
| |
− | ''Human-Computer Interaction (HCI)''
| |
− | Mobile Robotics
| |
− | Motion Analysis
| |
− | Object Detction and Recognition
| |
− | Segmentation
| |
− | Stereo Vision: Depth Perception from 2 Cameras
| |
− | Structure from Motion (SFM)
| |
− | ''Motion Tracking''
| |
− |
| |
− | (http://www.cvl.isy.liu.se/education/graduate/opencv/Lecture1_History.pdf)
| |
− |
| |
− | ===Definitions===
| |
− | ====Modules Available====
| |
− | *'''core:''' a compact module defining basic data structures, including the dense multi-dimensional array Mat and basic functions
| |
− | used by all other modules
| |
− | *'''imgproc:''' an image processing module that includes linear and non-linear image filtering, geometrical image transformations
| |
− | (resize, affine and perspective warping, generic table-based remapping), color space conversion, histograms, and so on
| |
− | *'''video:''' a video analysis module that includes motion estimation, background subtraction, and object tracking algorithms
| |
− | *'''calib3d:''' basic multiple-view geometry algorithms, single and stereo camera calibration, object pose estimation, stereo
| |
− | correspondence algorithms, and elements of 3D reconstruction
| |
− | *'''features2d:''' salient feature detectors, descriptors, and descriptor matchers
| |
− | *'''objdetect:''' detection of objects and instances of the predefined classes (for example, faces, eyes, mugs, people, cars, and so on)
| |
− | *'''highgui:''' an easy-to-use interface to video capturing, image and video codecs, as well as simple UI capabilities
| |
− | *'''gpu:''' GPU-accelerated algorithms from different OpenCV modules
| |
− | *some other helper modules, such as FLANN and Google test wrappers, Python bindings, and others
| |
− |
| |
− | (http://docs.opencv.org/)
| |
− |
| |
− | === OpenCV - Great Resources===
| |
− | * http://www.cvl.isy.liu.se/education/graduate/opencv/Lecture1_History.pdf
| |
− | * http://docs.opencv.org/
| |
− | * http://docs.opencv.org/opencv_tutorials.pdf (Tutorial)
| |
− | * http://opencv.org/documentation.html
| |
− | * http://www.pages.drexel.edu/~nk752/tutorials.html (Tutorials)
| |
− | * http://www.laganiere.name/opencvCookbook/ (Companion Site to an OpenCV2 Book)
| |
− | * http://stackoverflow.com/questions/10417108/what-is-different-between-all-these-opencv-python-interfaces (Difference between CV and CV2)
| |
− | * http://opencv-users.1802565.n2.nabble.com/ (OpenCV mailing list archive)
| |
− | * http://pr.willowgarage.com/wiki/OpenCVMeetingNotes (OpenCV meeting minutes)
| |
− | ** As of May 22, 2012, the meetings notes moved to: http://code.opencv.org/projects/opencv/wiki/Meeting_notes
| |
− |
| |
− | =Opencv 2 Info=
| |
− |
| |
− | ==Some Differences Between cv and cv2==
| |
− |
| |
− | * single import of all of OpenCV using <big>import cv</big>
| |
− | * OpenCV functions no longer have the "cv" prefix
| |
− | * simple types like CvRect and CvSca,lar use Python tuples
| |
− | * sharing of Image storage, so image transport between OpenCV and other systems (e.g. numpy and ROS) is very efficient
| |
− | * complete documentation for the Python functions
| |
− |
| |
− | == OpenCV 2 - Great Resources ==
| |
− |
| |
− | === cv 2.4.3 ===
| |
− | * http://docs.opencv.org -> documentation
| |
− |
| |
− | * http://docs.opencv.org/opencv2refman.pdf / http://cvhci.anthropomatik.kit.edu/download/visionhci09/opencv.pdf -> pdf documentation resources
| |
− |
| |
− | * http://fossies.org/dox/OpenCV-2.4.3/index.html -> Complete Hierarchical guide to opencv
| |
− |
| |
− | * http://docs.opencv.org/doc/tutorials/tutorials.html -> tutorials on opencv
| |
− |
| |
− | * http://docs.scipy.org/doc/numpy/reference/arrays.ndarray.html#array-attributes -> structure of numpy arrays\
| |
− |
| |
− | ==== A cv2 example ====
| |
− | Here is a little program that will capture video from the webcam and display it (you might have to CTRL+C)
| |
− | """
| |
− | This module is used for testing the opencv2 capabilities
| |
− | """
| |
− | import cv2
| |
− | #get webcam feed
| |
− | capture = cv2.VideoCapture(0)
| |
− | while True:
| |
− | #combines VideoCapture.grab() and VideoCapture.retrieve()
| |
− | retrieval_value, image = capture.read()
| |
− | #shows captured image in a window
| |
− | cv2.imshow("webcam", image)
| |
− | #will stop capture with capatible webcam
| |
− | if cv2.waitKey(10) == 27:
| |
− | break
| |
| | | |
− | === cv 2.1 === | + | = Further Resources = |
− | * http://opencv.willowgarage.com/documentation/python/index.html -> documentation
| + | For more information about the mousetrap program:[Mousetrap Program Resource[http://foss2serve.org/index.php?title=MouseTrap_Dev_Help/mousetrap_internals]] |
− | * http://nullege.com/codes/search/cv -> code samples
| + | |
| | | |
− | =OpenCV Community=
| + | For more information about opencv: [Opencv Resource [http://foss2serve.org/index.php?title=MouseTrap_Dev_Help/opencv]] |
− | * The #opencv IRC channel on Freenode -- currently 'Un-official'
| + | |
− | * http://opencv.willowgarage.com/wiki/FullOpenCVWiki#Welcome.2FPeople.People
| + | |
− | * http://tech.groups.yahoo.com/group/OpenCV/ -> User Group on Yahoo
| + | |
− | * http://answers.opencv.org/questions/ -> Q&A
| + | |
− | * http://code.opencv.org/projects/opencv/issues -> Bugs
| + | |
| | | |
− | =Code Meeting Notes=
| |
− | * '''Meetings occur on Wednesday's at noon (starting on 2/20) on irc.gnome.org #mousetrap - holiday and other circumstances permitting.'''
| |
− | == 2.19.2013 ==
| |
− | === Agenda ===
| |
− | # Go over git+mousetrap installation
| |
− | # Address any issues
| |
− | # Go over mousetrap hierarchy
| |
− | # Go over opencv integration methods
| |
− | # Next Steps
| |
| | | |
| [[Category:Gnome_MouseTrap]] | | [[Category:Gnome_MouseTrap]] |