SlideShare uma empresa Scribd logo
1 de 13
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

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
Chris Muntzer
 
Docker and OpenStack Boston Meetup
Docker and OpenStack Boston MeetupDocker and OpenStack Boston Meetup
Docker and OpenStack Boston Meetup
Kamesh Pemmaraju
 

Mais procurados (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
 

Destaque

NIPS2007: structured prediction
NIPS2007: structured predictionNIPS2007: structured prediction
NIPS2007: structured prediction
zukun
 
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
zukun
 
Powerpoint meds 1101
Powerpoint meds 1101Powerpoint meds 1101
Powerpoint meds 1101
aliaalhirsi
 
Lecture07
Lecture07Lecture07
Lecture07
zukun
 
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
Lecture02
zukun
 

Destaque (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
 

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

Git workflow libre semikov
Git workflow libre semikovGit workflow libre semikov
Git workflow libre semikov
Inna Kravchenko
 
Git 入门与实践
Git 入门与实践Git 入门与实践
Git 入门与实践
Terry Wang
 
Git 入门 与 实践
Git 入门 与 实践Git 入门 与 实践
Git 入门 与 实践
Terry Wang
 

Semelhante a 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 入门与实践
Git 入门与实践Git 入门与实践
Git 入门与实践
 
Git
GitGit
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
 

Mais de zukun

My lyn tutorial 2009
My lyn tutorial 2009My lyn tutorial 2009
My lyn tutorial 2009
zukun
 
ETHZ CV2012: Tutorial openCV
ETHZ CV2012: Tutorial openCVETHZ CV2012: Tutorial openCV
ETHZ CV2012: Tutorial openCV
zukun
 
ETHZ CV2012: Information
ETHZ CV2012: InformationETHZ CV2012: Information
ETHZ CV2012: Information
zukun
 
Siwei lyu: natural image statistics
Siwei lyu: natural image statisticsSiwei lyu: natural image statistics
Siwei lyu: natural image statistics
zukun
 
Lecture9 camera calibration
Lecture9 camera calibrationLecture9 camera calibration
Lecture9 camera calibration
zukun
 
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
zukun
 
Modern features-part-4-evaluation
Modern features-part-4-evaluationModern features-part-4-evaluation
Modern features-part-4-evaluation
zukun
 
Modern features-part-3-software
Modern features-part-3-softwareModern features-part-3-software
Modern features-part-3-software
zukun
 
Modern features-part-2-descriptors
Modern features-part-2-descriptorsModern features-part-2-descriptors
Modern features-part-2-descriptors
zukun
 
Modern features-part-1-detectors
Modern features-part-1-detectorsModern features-part-1-detectors
Modern features-part-1-detectors
zukun
 
Modern features-part-0-intro
Modern features-part-0-introModern features-part-0-intro
Modern features-part-0-intro
zukun
 
Lecture 02 internet video search
Lecture 02 internet video searchLecture 02 internet video search
Lecture 02 internet video search
zukun
 
Lecture 01 internet video search
Lecture 01 internet video searchLecture 01 internet video search
Lecture 01 internet video search
zukun
 
Lecture 03 internet video search
Lecture 03 internet video searchLecture 03 internet video search
Lecture 03 internet video search
zukun
 
Icml2012 tutorial representation_learning
Icml2012 tutorial representation_learningIcml2012 tutorial representation_learning
Icml2012 tutorial representation_learning
zukun
 
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
zukun
 
Gephi tutorial: quick start
Gephi tutorial: quick startGephi tutorial: quick start
Gephi tutorial: quick start
zukun
 
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
zukun
 
Object recognition with pictorial structures
Object recognition with pictorial structuresObject recognition with pictorial structures
Object recognition with pictorial structures
zukun
 
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
 

Mais de 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
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Último (20)

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 

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