ACV Software Development Environment

From David Vernon's Wiki
Jump to: navigation, search

This page provides a step-by-step guide to downloading, installing, and using the software required to run demonstration software and complete the assignments for the applied computer vision course. This environment is required to ensure that software developed by students can be compiled directly by the course instructor after it has been submitted.

Operating System

The software for this course requires Windows 10.

I strongly recommend you turn off the option in Windows Explorer to hide file extensions. To do this, from Windows Explorer menu bar select Tools > Folder Options > View and make sure the tick box labelled Hide extensions for known file types is not ticked. If it is ticked, you will have problems identifying certain files later on (e.g. invoking the example.sln solution file to launch the C++ compiler).

If the Windows Explorer menu bar isn't visible, select Organize > Layout > Menu bar

C/C++ Compiler

Download the Microsoft Visual C++ Express compiler, version 10.0 (also known as Visual C++ 2010 or MSVC++ 2010). It is important to use this version; earlier versions are no longer supported by Microsoft and later versions cause problems with some libraries.

You can download the required installer from here.

Run the installer and follow the instructions.

You will need to register Visual C++ 2010 Express to continue using beyond the initial 30-day evaluation period. To do this, from the Microsoft Visual C++ 2010 Express menu, select Help > Register Product. You will then have to log in to your Microsoft account, if you have one, or create a new one, if you don't. After filling in some forms you will get the product key which you enter into the dialogue box that popped up when you selected Help > Register Product.

CMake

Download CMake binaries from here. At time of writing the latest version is 3.7.1.

You can opt for either the WIN32 installer (cmake-3.7.1-win32-x86.msi) or the Windows zip file. The installer has the advantage that it gives you the option to update your system path automatically (which you should take by clicking the appropriate radio button during the installation process). If you choose the installer option, note that if you already have CMake version 3.4 or earlier you much uninstall it first.

OpenCV

Download and install OpenCV from here. Choose the version 2.4.10 self-installer, download it, and execute it, and extract the library to C: so that you have a directory C:\opencv. If you have problems downloading this version from SourceForge site, you can download version 2.4.10 from here.

Add C:\opencv\build\x86\vc10\bin to the PATH environment variable and add a new environment variable OPENCV_DIR with the value C:\opencv\build, as follows.

From Windows 7 toolbar, select Control Panel > System and Security > System > Advanced System Settings Click Environment Variables Select 'Path' from System Variables Click Edit Add C:\opencv\build\x86\vc10\bin (be sure to separate different paths with a semi-colon) Under User variables, click New Insert OPENCV_DIR in the Variable name box and C:\opencv\build in the Variable value box Click OK

ACV Computer Vision Repository

Copy the ACV repository to the C: drive:

  • Download the ACV.zip archive.
  • Copy it to C: drive and unzip it so that you have a directory called C:\ACV.


C:\ACV has with a sub-directory structure explained in class. For our purposes here, there is an C:\ACV\assignments directory and it will contain an example C:\ACV\assignments\assignment0 sub-directory. Later on, you will generate C:\ACV\assignments\assignment1 and C:\ACV\assignments\assignment2, and so on.

There is also a C:\ACV\lectures sub-directory. This contains a suite of 52 OpenCV examples of the techniques that are discussed in the course. The source code is in the C:\ACV\lectures\src sub-directory and test data is in the C:\ACV\lectures\data sub-directory.


ACV Assignment 0

The next step is to build a MSVC++ .sln solution file so that you can compile the ACV assignment0 executable. To do this, you need to run CMake against the C:\ACV\assignments\assignment0 directory (where you will find the main CMakeLists.txt file). We use assignment0 because it is a dummy assignment but you will follow exactly the same procedure for all the real assignments.

  • Launch the CMake GUI from the Windows toolbar.
  • In the Where is the source code: type (or browse to) C:\ACV\assignments\assignment0
  • In the Where to build the binaries: type (or browse to) C:\ACV\assignments\assignment0\build
  • Select File > Delete Cache from the top menu (you must do this the first time in case there is an old invalid configuration in the ACV directory)
  • Click Configure
  • Select Visual Studio 10 (2010) from the drop-down menu as the generator for the project
  • Click Finish and watch CMake configure your project. The dialogue box will still highlighted in red, so ...
  • Click Configure two more times and everything should be fine.
  • Click Generate to create the MSVC++ assignment0.sln file in the C:\ACV\assignments\assignment0\build directory.


Now you are ready to launch MSVC++ and build the ACV assignment0 executable.

  • Go to the C:\ACV\assignments\assignment0\build directory and double-click the assignment0.sln file. This launches Microsoft Visual C++ 2010 Express.
  • Select Release in the Solutions Configuration box (this is located left of centre on the toolbar and defaults to Debug).
  • Select Build > Build Solution from the top menu, (if you don't see this and you see Debug > Build Solution instead, it's probably because your IDE is set to basic settings. To change this, select Tools > Settings > Expert Settings).

This will compile and link the programs in the the C:\ACV\assignments\assignment0\src sub-directory and install then in the C:\ACV\assignments\assignment0\bin directory.


Check to see that the example dvernon.exe executable is there. If it is not, then select Build > Configuration Manager from the menu and make sure the INSTALL check-box is ticked. Now rebuild the project again.

Note that you will have to tick this check-box every time you rebuild the .sln solution file with CMake. If you don't do this, then your new executable won't be installed in the bin directory and you'll end up becoming very confused because none of the changes you make to your source code will be reflected in the executable you run from the bin directory (because its an old version from a previous compilation).


Good! Now you are now ready to run the example dvernon.exe application that is provided with the ACV release. To do this, double click the dvernon.exe executable in C:\ACV\assignments\assignment0\bin. Open input.txt file in C:\ACV\assignments\assignment0\data and, after running dvernon.exe, open the output.txt file, also in the C:\ACV\assignments\assignment0\data directory.


Try creating your own (dummy) assignment program. To do this, follow the following steps.

  • Create a directory with your university Id, e.g. C:\ACV\assignments\assignment0\src\myid
  • Copy the source files (.c, .cpp, .h) and the CMakeLists.txt file from the dvernon directory to the myid directory.
  • Edit the C:\ACV\assignments\assignment0\src\CMakeLists.txt file and replace ADD_SUBDIRECTORY(dvernon) with ADD_SUBDIRECTORY(myid), where myid is your university Id.
  • Edit the C:\ACV1\assignments\assignment0\src\myid\CMakeLists.txt file and replace dvernon with myid, where myid is your university Id.
  • Run CMake again.
  • Re-open the assignment0.sln file (remember, it's in the C:\ACV\assignments\assignment0\build directory).
  • Your files should now be visible (and the dvernon ones will no longer be there) and you can now compile your code and install it in the bin directory by selecting Build > Build Solution from the top menu.
  • Make sure that the INSTALL check-box is ticked when you select Build > Configuration Manager from the menu to ensure that your executable is installed in the C:\ACV\assignments\assignment0\bin directory.
  • Finally, run your program in the C:\ACV\assignments\assignment0\bin directory. You might like to change the contents of input.txt in the C:\ACV\assignments\assignment0\data directory and re-run your program to convince yourself that everything is working properly.


ACV Assignment 1

For your first assignment, you will simply copy the assignment0 directory to assignment1 and follow a similar procedure, writing new assignment-specific code, of course. There is just one thing you need to do: edit the C:\ACV\assignments\assignment1\CMakeLists.txt and change the project name from assignment0 to assignment1, viz:

 ##############################################
 PROJECT(assignment0)
 ############################################## 

becomes

 ##############################################
 PROJECT(assignment1)
 ############################################## 


When submitting an assignment, all you have to do is submit a zipped version of your myid directory with your three source code files, the CmakeList.txt file, any test data files, and any external documentation (if required). Do not include sub-directories (e.g. src, data, build, bin, ...).


I simply unzip your file and add it to the src directory on my computer, along with the all the other students and my own solution, run CMake, launch the .sln file, compile, install, and check each executable in bin against the test data file in my data directory. Because we build the solutions the same way, you are guaranteed that your code will compile, provided you have followed this procedure.


ACV Lecture Examples

Finally, you should now compile the examples C:\ACV\lectures directory by building a MSVC++ .sln solution file. To do this, you need to run CMake against the C:\ACV\lectures directory (where you will find the main CMakeLists.txt file) and build the binaries in C:\ACV\lectures\build directory.

  • Launch the CMake GUI from the Windows toolbar.
  • In the Where is the source code: type (or browse to) C:\ACV\lectures
  • In the Where to build the binaries: type (or browse to) C:\ACV\lectures\build
  • Select File > Delete Cache from the top menu (you must do this the first time in case there is an old invalid configuration in the ACV directory)
  • Click Configure
  • Select Visual Studio 10 (2010) from the drop-down menu as the generator for the project
  • Click Finish and watch CMake configure your project. The dialogue box will still highlighted in red, so ...
  • Click Configure two more times and everything should be fine.
  • Click Generate to create the MSVC++ lectures.sln file in the C:\ACV\lectures\build directory.


Now you are ready to launch MSVC++ and build the ACV lectures executables.

  • Go to the C:\ACV\lectures\build directory and double-click the lectures.sln file.
  • Select Release in the Solutions Configuration box (this is located left of centre on the toolbar and defaults to Debug).
  • Select Build > Build Solution from the top menu, (again, if you don't see this and you see Debug > Build Solution instead, it's probably because your IDE is set to basic settings. To change this, select Tools > Settings > Expert Settings).

This will compile and link the programs in the the C:\ACV\lectures\src sub-directory and install then in the C:\ACV\lectures\bin directory.


Check to see that the example executables are there. If it is not, then select Build > Configuration Manager from the menu and make sure the INSTALL check-box is ticked. Now rebuild the project again.

Note, again, that you will have to tick this check-box every time you rebuild the .sln solution file with CMake.


Excellent! Now you are now ready to run the example openCV applications that are provided with the ACV release. To do this, double click any of the executables in C:\ACV\lectures\bin. Every example application has its own dedicated input file (and output file, where appropriate). These are in the C:\ACV\lectures\data directory and the associated test image and video files are in C:\ACV\lectures\data\media directory.


Back to Applied Computer Vision