SlideShare a Scribd company logo
Part II
            Development

Andrea Vedaldi          Brian Fulkerson
Visual Geometry Group       VisonLab
        Oxford               UCLA
Deadline workflow                                                          66

• Typical workflow
  - code
  - import third party libraries
    (e.g. LibSVM, OpenCV, GIL, VLFeat, ...)
  - tweak
  - submit paper
  - tweak
  - camera ready
• Can’t reproduce experiments anymore!            Credit: phdcomics.com

• What changed?
  - your own code?
  - third party code?
  - your customization of third party code?
  - ??

                                              Andrea Vedaldi and Brian Fulkerson
Version control                                                                   67

• A good version control system is a valuable tool
• With version control you can:
  - track changes
  - safely share code among multiple authors
  - safely share code among multiple projects
  - safely incorporate third party code
• Example: git
  - flexible, solid, portable, well supported
  - no central repository
  - personal use or collaboration
  - slightly harder to learn than CVS/SVN



                                                     Andrea Vedaldi and Brian Fulkerson
Cross platform git installation                                                      68




• Linux                                   • Mac
- sudo apt-get install git-core gitk      - git (via MacPorts)
                                          - gitx: http://gitx.frim.nl/

• Windows
  - msysgit: http://code.google.com/p/msysgit/
  - git-gui visual intro: http://nathanj.github.com/gitguide/tour.html
  - gitextensions: http://code.google.com/p/gitextensions/
                                                        Andrea Vedaldi and Brian Fulkerson
Really basic git                                                                69

• Creating aanew repository is simple:
  # Create    new git repo in the current folder
  git init

• SoDuplicate aone: repo in the folder repo1 to folder repo2
  #
     is copying
                git
  git clone repo1 repo2

• Keeping track of new files:
  # Add one file
  git add file1
  # Add everything
  git add *

• Makingall“commit”: in one file and commit it
  # Add
         a
             changes
  git add file1
  git commit
  # Commit all changes on all tracked files
  git commit -a



                                                   Andrea Vedaldi and Brian Fulkerson
Really basic git collaboration                                                70

• Create a new bare repository:
  ssh me@server
  mkdir repo.git
  cd repo.git
  git init --bare

• Tell your local repo aboutme@server:repo.git
  git remote add origin
                             the server


• Pushpush origin master
  git
       a copy to the server


• Collaborator gets a copy and makes changes
  git clone co@server:~me/repo.git
  ...
  git commit -a -m “Best changes ever”

• And push they want to share
  git
      now


• And pullwant to get the changes
  git
      you

                                                 Andrea Vedaldi and Brian Fulkerson
Learning more about git                                                                       71

• Learning git
  - web tutorial, podcasts, ...
  - Version Control with Git
• Git keeps track of commits and trees
          commit: a tree with a comment, author, date

      tree: snapshot of your project (files, dirs, ...)

                                          ECCV submission

                                           fixed lethal bugs

                                           improved ASCII arts

                                           improved comments

                                           initial version


                                                                 Andrea Vedaldi and Brian Fulkerson
Version control with third party code                                                72

• Manage third party code:
  - encapsulate third party code
  - integrate with your project
• Benefits:
  - track third party changes
  - track your customization
  - move customizations on top of third party changes
• Example
  - package LibSVM 2.89-3
  - make some changes
  - add the new LibSVM 2.91-1
  - move your changes on top of the new version


                                                        Andrea Vedaldi and Brian Fulkerson
Tracking LibSVM                                                      73

• Track libsvm-mat-2.89-3 with Git
  # download and unpack LibSVM 2.89-3
  unzip libsvm-mat-2.89-3.zip

  # initalize repository                      master
  mkdir libsvm-mat                            2.89-3
  cd libsvm-mat
  cp -r ../libsvm-mat-2.89-3 .
                                             The libsvm-mat-2.89-3
  git init                                   source code
  git add *
  git commit -m "2.89-3"




                                        Andrea Vedaldi and Brian Fulkerson
Tracking LibSVM: customize                                                74

• We make two changes:
  - adds support for additional PD kernels
  - adds host detection to the Makefile
  cd libsvm
  git branch 2.89-3-mods
  git checkout 2.89-3-mods
  # edit kernel code
                                                   Makefile: adds ...
  git commit -a -m "adds support for ...”
  # edit Makefile                                  adds support ...
  git commit -a -m "Makefile: adds ...”
                                                   2.89-3-mods
                                                   2.89-3 master




                                             Andrea Vedaldi and Brian Fulkerson
Tracking LibSVM: upstream update                                     75


• 2.91-1 is out! Grab it.
  # download and unpack LibSVM 2.91-1
  unzip libsvm-mat-2.91-1.zip
  # rewind
  cd libsvm-mat
  git checkout master                    2.91-1
  # create commit
                                              2.89-3-mods
  cp -r ../libsvm-mat-2.91-1/* .
                                              Makefile: adds ...
  git add *
  git commit -m "2.91-1"
                                              adds support ...

                                              2.89-3 master




                                        Andrea Vedaldi and Brian Fulkerson
Tracking LibSVM: rebase your mods                                     76


• Apply your changes to the new LibSVM
 # checkout branch with your mods
 cd libsvm-mat
 git branch 2.91-3-mods 2.89-3-mods
 git rebase master 2.91-1-mods
                                          2.91-1 master
                                              2.91-1-mods
                                              2.89-3-mods
                                              2.91-1-mods
                                              Makefile: adds ...

                                               adds support ...

                                               2.89-3




                                         Andrea Vedaldi and Brian Fulkerson
Contributing to VLFeat                                                        77




• We handle git://github.com/vlfeat/vlfeat.git
  git clone
            collaboration using github.com:


• For minor changesorigin
  git-format-patch

• For major changes and additions
  -   http://help.github.com/forking/
                                                 Andrea Vedaldi and Brian Fulkerson

More Related Content

What's hot

CM_SME revised bc635_637PCI_V2_Linux_SDK
CM_SME revised bc635_637PCI_V2_Linux_SDKCM_SME revised bc635_637PCI_V2_Linux_SDK
CM_SME revised bc635_637PCI_V2_Linux_SDKChris Muntzer
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
Meiyappan Kannappa
 
Design, Build,and Maintain the Embedded Linux Platform
Design, Build,and Maintain the Embedded Linux PlatformDesign, Build,and Maintain the Embedded Linux Platform
Design, Build,and Maintain the Embedded Linux Platform
SZ Lin
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
Helder Klemp
 
[Celix] Scaling DevOps with Puppet and Perforce
[Celix] Scaling DevOps with Puppet and Perforce[Celix] Scaling DevOps with Puppet and Perforce
[Celix] Scaling DevOps with Puppet and Perforce
Perforce
 
Using open source software to build an industrial grade embedded linux platfo...
Using open source software to build an industrial grade embedded linux platfo...Using open source software to build an industrial grade embedded linux platfo...
Using open source software to build an industrial grade embedded linux platfo...
SZ Lin
 
SVN 2 Git
SVN 2 GitSVN 2 Git
SVN 2 Git
Marco De Stefano
 
Container Security: How We Got Here and Where We're Going
Container Security: How We Got Here and Where We're GoingContainer Security: How We Got Here and Where We're Going
Container Security: How We Got Here and Where We're Going
Phil Estes
 
Docker in real life
Docker in real lifeDocker in real life
Docker in real life
Nguyen Van Vuong
 
Docker and OpenStack Boston Meetup
Docker and OpenStack Boston MeetupDocker and OpenStack Boston Meetup
Docker and OpenStack Boston Meetup
Kamesh Pemmaraju
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
Imesh Gunaratne
 
Git Presentation
Git PresentationGit Presentation
Git Presentation
Prem Aseem Jain
 
Docker open stack boston
Docker open stack bostonDocker open stack boston
Docker open stack boston
dotCloud
 
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Edureka!
 
Web fundamentals
Web fundamentalsWeb fundamentals
Web fundamentals
Nguyen Van Vuong
 
Docker 101: An Introduction
Docker 101: An IntroductionDocker 101: An Introduction
Docker 101: An Introduction
POSSCON
 
Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...
Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...
Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...
Anne Nicolas
 
Rexdockercon2017
Rexdockercon2017Rexdockercon2017
Rexdockercon2017
Bizet Guillaume
 
Embedded Fest 2019. Руслан Биловол. Linux Boot: The Big Bang theory
Embedded Fest 2019. Руслан Биловол. Linux Boot: The Big Bang theoryEmbedded Fest 2019. Руслан Биловол. Linux Boot: The Big Bang theory
Embedded Fest 2019. Руслан Биловол. Linux Boot: The Big Bang theory
EmbeddedFest
 
Embedded Fest 2019. Wei Fu. Linux on RISC-V--Fedora and Firmware in practice
Embedded Fest 2019. Wei Fu. Linux on RISC-V--Fedora and Firmware in practiceEmbedded Fest 2019. Wei Fu. Linux on RISC-V--Fedora and Firmware in practice
Embedded Fest 2019. Wei Fu. Linux on RISC-V--Fedora and Firmware in practice
EmbeddedFest
 

What's hot (20)

CM_SME revised bc635_637PCI_V2_Linux_SDK
CM_SME revised bc635_637PCI_V2_Linux_SDKCM_SME revised bc635_637PCI_V2_Linux_SDK
CM_SME revised bc635_637PCI_V2_Linux_SDK
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 
Design, Build,and Maintain the Embedded Linux Platform
Design, Build,and Maintain the Embedded Linux PlatformDesign, Build,and Maintain the Embedded Linux Platform
Design, Build,and Maintain the Embedded Linux Platform
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
[Celix] Scaling DevOps with Puppet and Perforce
[Celix] Scaling DevOps with Puppet and Perforce[Celix] Scaling DevOps with Puppet and Perforce
[Celix] Scaling DevOps with Puppet and Perforce
 
Using open source software to build an industrial grade embedded linux platfo...
Using open source software to build an industrial grade embedded linux platfo...Using open source software to build an industrial grade embedded linux platfo...
Using open source software to build an industrial grade embedded linux platfo...
 
SVN 2 Git
SVN 2 GitSVN 2 Git
SVN 2 Git
 
Container Security: How We Got Here and Where We're Going
Container Security: How We Got Here and Where We're GoingContainer Security: How We Got Here and Where We're Going
Container Security: How We Got Here and Where We're Going
 
Docker in real life
Docker in real lifeDocker in real life
Docker in real life
 
Docker and OpenStack Boston Meetup
Docker and OpenStack Boston MeetupDocker and OpenStack Boston Meetup
Docker and OpenStack Boston Meetup
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
Git Presentation
Git PresentationGit Presentation
Git Presentation
 
Docker open stack boston
Docker open stack bostonDocker open stack boston
Docker open stack boston
 
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
 
Web fundamentals
Web fundamentalsWeb fundamentals
Web fundamentals
 
Docker 101: An Introduction
Docker 101: An IntroductionDocker 101: An Introduction
Docker 101: An Introduction
 
Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...
Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...
Kernel Recipes 2014 - The Linux Kernel, how fast it is developed and how we s...
 
Rexdockercon2017
Rexdockercon2017Rexdockercon2017
Rexdockercon2017
 
Embedded Fest 2019. Руслан Биловол. Linux Boot: The Big Bang theory
Embedded Fest 2019. Руслан Биловол. Linux Boot: The Big Bang theoryEmbedded Fest 2019. Руслан Биловол. Linux Boot: The Big Bang theory
Embedded Fest 2019. Руслан Биловол. Linux Boot: The Big Bang theory
 
Embedded Fest 2019. Wei Fu. Linux on RISC-V--Fedora and Firmware in practice
Embedded Fest 2019. Wei Fu. Linux on RISC-V--Fedora and Firmware in practiceEmbedded Fest 2019. Wei Fu. Linux on RISC-V--Fedora and Firmware in practice
Embedded Fest 2019. Wei Fu. Linux on RISC-V--Fedora and Firmware in practice
 

Viewers also liked

NIPS2007: structured prediction
NIPS2007: structured predictionNIPS2007: structured prediction
NIPS2007: structured predictionzukun
 
Vincent Portfolio 0411
Vincent Portfolio 0411Vincent Portfolio 0411
Vincent Portfolio 0411
vincenttse
 
ICCV2009: MAP Inference in Discrete Models: Part 5
ICCV2009: MAP Inference in Discrete Models: Part 5ICCV2009: MAP Inference in Discrete Models: Part 5
ICCV2009: MAP Inference in Discrete Models: Part 5zukun
 
Powerpoint meds 1101
Powerpoint meds 1101Powerpoint meds 1101
Powerpoint meds 1101aliaalhirsi
 
Lecture07
Lecture07Lecture07
Lecture07zukun
 
CVPR2010: Learnings from founding a computer vision startup: Chapter 0: Intro...
CVPR2010: Learnings from founding a computer vision startup: Chapter 0: Intro...CVPR2010: Learnings from founding a computer vision startup: Chapter 0: Intro...
CVPR2010: Learnings from founding a computer vision startup: Chapter 0: Intro...zukun
 
Lecture02
Lecture02Lecture02
Lecture02zukun
 
Northlake Mall
Northlake MallNorthlake Mall
Northlake Mall
EvanXP
 

Viewers also liked (8)

NIPS2007: structured prediction
NIPS2007: structured predictionNIPS2007: structured prediction
NIPS2007: structured prediction
 
Vincent Portfolio 0411
Vincent Portfolio 0411Vincent Portfolio 0411
Vincent Portfolio 0411
 
ICCV2009: MAP Inference in Discrete Models: Part 5
ICCV2009: MAP Inference in Discrete Models: Part 5ICCV2009: MAP Inference in Discrete Models: Part 5
ICCV2009: MAP Inference in Discrete Models: Part 5
 
Powerpoint meds 1101
Powerpoint meds 1101Powerpoint meds 1101
Powerpoint meds 1101
 
Lecture07
Lecture07Lecture07
Lecture07
 
CVPR2010: Learnings from founding a computer vision startup: Chapter 0: Intro...
CVPR2010: Learnings from founding a computer vision startup: Chapter 0: Intro...CVPR2010: Learnings from founding a computer vision startup: Chapter 0: Intro...
CVPR2010: Learnings from founding a computer vision startup: Chapter 0: Intro...
 
Lecture02
Lecture02Lecture02
Lecture02
 
Northlake Mall
Northlake MallNorthlake Mall
Northlake Mall
 

Similar to Cvpr2010 open source vision software, intro and training part ii - using git to track third party projects - vedaldi, fulkerson - arzneimittel-forschung - 2010

Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
atishgoswami
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
Geoff Hoffman
 
Git workflow libre semikov
Git workflow libre semikovGit workflow libre semikov
Git workflow libre semikovInna Kravchenko
 
GIT.pptx
GIT.pptxGIT.pptx
GIT.pptx
Soumen Debgupta
 
git and github
git and githubgit and github
git and github
Darren Oakley
 
Git basics
Git basicsGit basics
Git basics
Malihe Asemani
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configuration
Kishor Kumar
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
HubSpot
 
Let's Git this Party Started: An Introduction to Git and GitHub
Let's Git this Party Started: An Introduction to Git and GitHubLet's Git this Party Started: An Introduction to Git and GitHub
Let's Git this Party Started: An Introduction to Git and GitHub
Kim Moir
 
Version Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part IVersion Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part I
Sergey Aganezov
 
Git 入门与实践
Git 入门与实践Git 入门与实践
Git 入门与实践Terry Wang
 
Hackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we MakeHackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we Make
esben1962
 
Git 入门 与 实践
Git 入门 与 实践Git 入门 与 实践
Git 入门 与 实践Terry Wang
 
ePOM - Fundamentals of Research Software Development - Code Version Control
ePOM - Fundamentals of Research Software Development - Code Version ControlePOM - Fundamentals of Research Software Development - Code Version Control
ePOM - Fundamentals of Research Software Development - Code Version Control
Giuseppe Masetti
 
Git and Github
Git and GithubGit and Github
Git and Github
Akshay Vasava
 
Introduction to Git and Github
Introduction to Git and Github Introduction to Git and Github
Introduction to Git and Github
Max Claus Nunes
 

Similar to Cvpr2010 open source vision software, intro and training part ii - using git to track third party projects - vedaldi, fulkerson - arzneimittel-forschung - 2010 (20)

Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
 
Git workflow libre semikov
Git workflow libre semikovGit workflow libre semikov
Git workflow libre semikov
 
GIT.pptx
GIT.pptxGIT.pptx
GIT.pptx
 
Git
GitGit
Git
 
git and github
git and githubgit and github
git and github
 
Basic git
Basic gitBasic git
Basic git
 
Git basics
Git basicsGit basics
Git basics
 
Git installation and configuration
Git installation and configurationGit installation and configuration
Git installation and configuration
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
 
git.ppt.pdf
git.ppt.pdfgit.ppt.pdf
git.ppt.pdf
 
Let's Git this Party Started: An Introduction to Git and GitHub
Let's Git this Party Started: An Introduction to Git and GitHubLet's Git this Party Started: An Introduction to Git and GitHub
Let's Git this Party Started: An Introduction to Git and GitHub
 
Version Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part IVersion Control Systems -- Git -- Part I
Version Control Systems -- Git -- Part I
 
Git
GitGit
Git
 
Git 入门与实践
Git 入门与实践Git 入门与实践
Git 入门与实践
 
Hackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we MakeHackaton for health 2015 - Sharing the Code we Make
Hackaton for health 2015 - Sharing the Code we Make
 
Git 入门 与 实践
Git 入门 与 实践Git 入门 与 实践
Git 入门 与 实践
 
ePOM - Fundamentals of Research Software Development - Code Version Control
ePOM - Fundamentals of Research Software Development - Code Version ControlePOM - Fundamentals of Research Software Development - Code Version Control
ePOM - Fundamentals of Research Software Development - Code Version Control
 
Git and Github
Git and GithubGit and Github
Git and Github
 
Introduction to Git and Github
Introduction to Git and Github Introduction to Git and Github
Introduction to Git and Github
 

More from zukun

My lyn tutorial 2009
My lyn tutorial 2009My lyn tutorial 2009
My lyn tutorial 2009zukun
 
ETHZ CV2012: Tutorial openCV
ETHZ CV2012: Tutorial openCVETHZ CV2012: Tutorial openCV
ETHZ CV2012: Tutorial openCVzukun
 
ETHZ CV2012: Information
ETHZ CV2012: InformationETHZ CV2012: Information
ETHZ CV2012: Informationzukun
 
Siwei lyu: natural image statistics
Siwei lyu: natural image statisticsSiwei lyu: natural image statistics
Siwei lyu: natural image statisticszukun
 
Lecture9 camera calibration
Lecture9 camera calibrationLecture9 camera calibration
Lecture9 camera calibrationzukun
 
Brunelli 2008: template matching techniques in computer vision
Brunelli 2008: template matching techniques in computer visionBrunelli 2008: template matching techniques in computer vision
Brunelli 2008: template matching techniques in computer visionzukun
 
Modern features-part-4-evaluation
Modern features-part-4-evaluationModern features-part-4-evaluation
Modern features-part-4-evaluationzukun
 
Modern features-part-3-software
Modern features-part-3-softwareModern features-part-3-software
Modern features-part-3-softwarezukun
 
Modern features-part-2-descriptors
Modern features-part-2-descriptorsModern features-part-2-descriptors
Modern features-part-2-descriptorszukun
 
Modern features-part-1-detectors
Modern features-part-1-detectorsModern features-part-1-detectors
Modern features-part-1-detectorszukun
 
Modern features-part-0-intro
Modern features-part-0-introModern features-part-0-intro
Modern features-part-0-introzukun
 
Lecture 02 internet video search
Lecture 02 internet video searchLecture 02 internet video search
Lecture 02 internet video searchzukun
 
Lecture 01 internet video search
Lecture 01 internet video searchLecture 01 internet video search
Lecture 01 internet video searchzukun
 
Lecture 03 internet video search
Lecture 03 internet video searchLecture 03 internet video search
Lecture 03 internet video searchzukun
 
Icml2012 tutorial representation_learning
Icml2012 tutorial representation_learningIcml2012 tutorial representation_learning
Icml2012 tutorial representation_learningzukun
 
Advances in discrete energy minimisation for computer vision
Advances in discrete energy minimisation for computer visionAdvances in discrete energy minimisation for computer vision
Advances in discrete energy minimisation for computer visionzukun
 
Gephi tutorial: quick start
Gephi tutorial: quick startGephi tutorial: quick start
Gephi tutorial: quick startzukun
 
EM algorithm and its application in probabilistic latent semantic analysis
EM algorithm and its application in probabilistic latent semantic analysisEM algorithm and its application in probabilistic latent semantic analysis
EM algorithm and its application in probabilistic latent semantic analysiszukun
 
Object recognition with pictorial structures
Object recognition with pictorial structuresObject recognition with pictorial structures
Object recognition with pictorial structureszukun
 
Iccv2011 learning spatiotemporal graphs of human activities
Iccv2011 learning spatiotemporal graphs of human activities Iccv2011 learning spatiotemporal graphs of human activities
Iccv2011 learning spatiotemporal graphs of human activities zukun
 

More from zukun (20)

My lyn tutorial 2009
My lyn tutorial 2009My lyn tutorial 2009
My lyn tutorial 2009
 
ETHZ CV2012: Tutorial openCV
ETHZ CV2012: Tutorial openCVETHZ CV2012: Tutorial openCV
ETHZ CV2012: Tutorial openCV
 
ETHZ CV2012: Information
ETHZ CV2012: InformationETHZ CV2012: Information
ETHZ CV2012: Information
 
Siwei lyu: natural image statistics
Siwei lyu: natural image statisticsSiwei lyu: natural image statistics
Siwei lyu: natural image statistics
 
Lecture9 camera calibration
Lecture9 camera calibrationLecture9 camera calibration
Lecture9 camera calibration
 
Brunelli 2008: template matching techniques in computer vision
Brunelli 2008: template matching techniques in computer visionBrunelli 2008: template matching techniques in computer vision
Brunelli 2008: template matching techniques in computer vision
 
Modern features-part-4-evaluation
Modern features-part-4-evaluationModern features-part-4-evaluation
Modern features-part-4-evaluation
 
Modern features-part-3-software
Modern features-part-3-softwareModern features-part-3-software
Modern features-part-3-software
 
Modern features-part-2-descriptors
Modern features-part-2-descriptorsModern features-part-2-descriptors
Modern features-part-2-descriptors
 
Modern features-part-1-detectors
Modern features-part-1-detectorsModern features-part-1-detectors
Modern features-part-1-detectors
 
Modern features-part-0-intro
Modern features-part-0-introModern features-part-0-intro
Modern features-part-0-intro
 
Lecture 02 internet video search
Lecture 02 internet video searchLecture 02 internet video search
Lecture 02 internet video search
 
Lecture 01 internet video search
Lecture 01 internet video searchLecture 01 internet video search
Lecture 01 internet video search
 
Lecture 03 internet video search
Lecture 03 internet video searchLecture 03 internet video search
Lecture 03 internet video search
 
Icml2012 tutorial representation_learning
Icml2012 tutorial representation_learningIcml2012 tutorial representation_learning
Icml2012 tutorial representation_learning
 
Advances in discrete energy minimisation for computer vision
Advances in discrete energy minimisation for computer visionAdvances in discrete energy minimisation for computer vision
Advances in discrete energy minimisation for computer vision
 
Gephi tutorial: quick start
Gephi tutorial: quick startGephi tutorial: quick start
Gephi tutorial: quick start
 
EM algorithm and its application in probabilistic latent semantic analysis
EM algorithm and its application in probabilistic latent semantic analysisEM algorithm and its application in probabilistic latent semantic analysis
EM algorithm and its application in probabilistic latent semantic analysis
 
Object recognition with pictorial structures
Object recognition with pictorial structuresObject recognition with pictorial structures
Object recognition with pictorial structures
 
Iccv2011 learning spatiotemporal graphs of human activities
Iccv2011 learning spatiotemporal graphs of human activities Iccv2011 learning spatiotemporal graphs of human activities
Iccv2011 learning spatiotemporal graphs of human activities
 

Recently uploaded

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 

Cvpr2010 open source vision software, intro and training part ii - using git to track third party projects - vedaldi, fulkerson - arzneimittel-forschung - 2010

  • 1. Part II Development Andrea Vedaldi Brian Fulkerson Visual Geometry Group VisonLab Oxford UCLA
  • 2. Deadline workflow 66 • Typical workflow - code - import third party libraries (e.g. LibSVM, OpenCV, GIL, VLFeat, ...) - tweak - submit paper - tweak - camera ready • Can’t reproduce experiments anymore! Credit: phdcomics.com • What changed? - your own code? - third party code? - your customization of third party code? - ?? Andrea Vedaldi and Brian Fulkerson
  • 3. Version control 67 • A good version control system is a valuable tool • With version control you can: - track changes - safely share code among multiple authors - safely share code among multiple projects - safely incorporate third party code • Example: git - flexible, solid, portable, well supported - no central repository - personal use or collaboration - slightly harder to learn than CVS/SVN Andrea Vedaldi and Brian Fulkerson
  • 4. Cross platform git installation 68 • Linux • Mac - sudo apt-get install git-core gitk - git (via MacPorts) - gitx: http://gitx.frim.nl/ • Windows - msysgit: http://code.google.com/p/msysgit/ - git-gui visual intro: http://nathanj.github.com/gitguide/tour.html - gitextensions: http://code.google.com/p/gitextensions/ Andrea Vedaldi and Brian Fulkerson
  • 5. Really basic git 69 • Creating aanew repository is simple: # Create new git repo in the current folder git init • SoDuplicate aone: repo in the folder repo1 to folder repo2 # is copying git git clone repo1 repo2 • Keeping track of new files: # Add one file git add file1 # Add everything git add * • Makingall“commit”: in one file and commit it # Add a changes git add file1 git commit # Commit all changes on all tracked files git commit -a Andrea Vedaldi and Brian Fulkerson
  • 6. Really basic git collaboration 70 • Create a new bare repository: ssh me@server mkdir repo.git cd repo.git git init --bare • Tell your local repo aboutme@server:repo.git git remote add origin the server • Pushpush origin master git a copy to the server • Collaborator gets a copy and makes changes git clone co@server:~me/repo.git ... git commit -a -m “Best changes ever” • And push they want to share git now • And pullwant to get the changes git you Andrea Vedaldi and Brian Fulkerson
  • 7. Learning more about git 71 • Learning git - web tutorial, podcasts, ... - Version Control with Git • Git keeps track of commits and trees commit: a tree with a comment, author, date tree: snapshot of your project (files, dirs, ...) ECCV submission fixed lethal bugs improved ASCII arts improved comments initial version Andrea Vedaldi and Brian Fulkerson
  • 8. Version control with third party code 72 • Manage third party code: - encapsulate third party code - integrate with your project • Benefits: - track third party changes - track your customization - move customizations on top of third party changes • Example - package LibSVM 2.89-3 - make some changes - add the new LibSVM 2.91-1 - move your changes on top of the new version Andrea Vedaldi and Brian Fulkerson
  • 9. Tracking LibSVM 73 • Track libsvm-mat-2.89-3 with Git # download and unpack LibSVM 2.89-3 unzip libsvm-mat-2.89-3.zip # initalize repository master mkdir libsvm-mat 2.89-3 cd libsvm-mat cp -r ../libsvm-mat-2.89-3 . The libsvm-mat-2.89-3 git init source code git add * git commit -m "2.89-3" Andrea Vedaldi and Brian Fulkerson
  • 10. Tracking LibSVM: customize 74 • We make two changes: - adds support for additional PD kernels - adds host detection to the Makefile cd libsvm git branch 2.89-3-mods git checkout 2.89-3-mods # edit kernel code Makefile: adds ... git commit -a -m "adds support for ...” # edit Makefile adds support ... git commit -a -m "Makefile: adds ...” 2.89-3-mods 2.89-3 master Andrea Vedaldi and Brian Fulkerson
  • 11. Tracking LibSVM: upstream update 75 • 2.91-1 is out! Grab it. # download and unpack LibSVM 2.91-1 unzip libsvm-mat-2.91-1.zip # rewind cd libsvm-mat git checkout master 2.91-1 # create commit 2.89-3-mods cp -r ../libsvm-mat-2.91-1/* . Makefile: adds ... git add * git commit -m "2.91-1" adds support ... 2.89-3 master Andrea Vedaldi and Brian Fulkerson
  • 12. Tracking LibSVM: rebase your mods 76 • Apply your changes to the new LibSVM # checkout branch with your mods cd libsvm-mat git branch 2.91-3-mods 2.89-3-mods git rebase master 2.91-1-mods 2.91-1 master 2.91-1-mods 2.89-3-mods 2.91-1-mods Makefile: adds ... adds support ... 2.89-3 Andrea Vedaldi and Brian Fulkerson
  • 13. Contributing to VLFeat 77 • We handle git://github.com/vlfeat/vlfeat.git git clone collaboration using github.com: • For minor changesorigin git-format-patch • For major changes and additions - http://help.github.com/forking/ Andrea Vedaldi and Brian Fulkerson