1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
Build opencv_contrib with dnn module {#tutorial_dnn_build}
====================================
Introduction
------------
opencv_dnn module is placed in the secondary [opencv_contrib](https://github.com/opencv/opencv_contrib) repository,
which isn't distributed in binary form, therefore you need to build it manually.
To do this you need to have installed: [CMake](http://www.cmake.org/download), git, and build system (*gcc* with *make* for Linux or *MS Visual Studio* for Windows)
Steps
-----
-# Make any directory, for example **opencv_root**
-# Clone [opencv](https://github.com/opencv/opencv) and [opencv_contrib](https://github.com/opencv/opencv_contrib) repos to the **opencv_root**.
You can do it in terminal like here:
@code
cd opencv_root
git clone https://github.com/opencv/opencv
git clone https://github.com/opencv/opencv_contrib
@endcode
-# Run [CMake-gui] and set source and build directories:
- Set source code directory to **opencv_root**/opencv;
- Set binaries directory, for example, to **opencv_root**/build_opencv.
This directory will contain built libraries.

-# Configure opencv:
- press *Configure*;
- choose the preferred project generator (Makefiles for Linux, MS Visual Studio for Windows);
- also you can set many opencv build options, for more details see @ref tutorial_linux_install.

-# In the appeared list of build parameters find parameter `OPENCV_EXTRA_MODULES_PATH` and set it to the **opencv_root**/opencv_contrib.

-# *Configure* the project again, and set build options of dnn module:
- `BUILD_opencv_dnn` parameter must exist and be checked.
- dnn module covers waste part of [Caffe](http://caffe.berkeleyvision.org) framework functionality.
However, to load Caffe networks libprotobuf is required.
You you can uncheck `BUILD_LIBPROTOBUF_FROM_SOURCES` flag to try use protobuf installed in your system.
Elsewise libpotobuf will be built from opencv sources.
- You can additionally check `opencv_dnn_BUILD_TORCH_IMPORTER` parameter to build [Torch7](http://torch.ch/) importer.
It allows you to use networks, generated by [Torch7.nn](https://github.com/torch/nn/blob/master/README.md/) module.

-# Press *Configure* and *Generate*.

-# Build the generated project:
- If Makefiles generator on Unix was used, run the following in terminal:
@code
cd opencv_root/build_opencv
make all
@endcode
- If MS Visual Studio generator was used, then open OpenCV.sln from **opencv_root**/build_opencv folder in the Visual Studio,
and build it by choosing **Build** -> **Build Solution** menu or using **F7** short-cut.
-# Now you can build own program by using libraries were built into **opencv_root**/build_opencv/lib.
See the following tutorials to learn how to create a program using OpenCV:
- @ref tutorial_windows_install
- @ref tutorial_linux_gcc_cmake
|