• Vitaliy Lyudvichenko's avatar
    GSOC 2015: dnn module · 6ec22eee
    Vitaliy Lyudvichenko authored
    Author: Vitaliy Lyudvichenko
    Mentor: Anatoly Baksheev
    
    Squashed commits are:
    
    commit 2f6d743
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Sun May 31 00:05:31 2015 +0300
    
        Added dnn module with draft interface.
    
    commit cfb9cfa
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Jun 3 17:54:13 2015 +0300
    
        Added libprotobuf to CMake. Added some Caffe files.
    
    commit a6963b4
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Jun 3 22:28:12 2015 +0300
    
        Updated CMakeLists.txt to support protobuf Messages auto generation.
    
    commit 6e23d93
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Sat Jun 6 19:08:12 2015 +0300
    
        Added simple .prototxt Caffe importer.
    
    commit 77321e3
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Mon Jun 8 16:59:27 2015 +0300
    
        Added binary .caffemodel import support.
        Some changes in API.
        Caffe source files was cleared from unnecessary code.
    
    commit 24a9eff
    Merge: 77321e3 844c30e8
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Mon Jun 8 17:01:54 2015 +0300
    
        Merge branch 'master' of https://github.com/Itseez/opencv_contrib
    
    commit 62feeec
    Author: Anatoly Baksheev <no@email>
    Date:   Mon Jun 8 19:41:11 2015 +0300
    
        fixed compilation witn C++11 compiler
    
    commit 42b36fb
    Author: Anatoly Baksheev <no@email>
    Date:   Mon Jun 8 19:48:32 2015 +0300
    
        more compilation
    
    commit 10c3a13
    Author: Anatoly Baksheev <no@email>
    Date:   Mon Jun 8 20:00:37 2015 +0300
    
        umbrealla header
    
    commit eb95846
    Author: Anatoly Baksheev <no@email>
    Date:   Mon Jun 8 20:26:47 2015 +0300
    
        some warnings disabled
    
    commit 1fd9304
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Tue Jun 9 13:58:35 2015 +0300
    
        Dnn API changes (removed NetConfiguration, added LayerRegister, improved Blob).
    
    commit cae0bd4
    Merge: 1fd9304 eb95846
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Tue Jun 9 14:25:35 2015 +0300
    
        Merge branch 'master' of github.com:ludv1x/opencv_contrib
    
        Conflicts:
        	modules/dnn/include/opencv2/dnn.hpp
    
    commit ee837c1
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Tue Jun 9 21:36:18 2015 +0300
    
        Updated CMakeLists.txt
    
    commit 194271d
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Sun Jun 14 22:20:01 2015 +0300
    
        Implemented allocation of DAG and it's forward pass.
        Added wrappers for basic layers.
    
    commit ed1c569
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Tue Jun 16 19:31:15 2015 +0300
    
        [Bomb commit] Implemented 4 main layers. Changes in API. Added worked classification example from GTSRB into tests.
    
    commit 51df95d
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Tue Jun 16 19:31:38 2015 +0300
    
        Added GSTRB test data.
    
    commit 2638433
    Merge: 51df95d 2a199bc9
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Tue Jun 16 22:55:35 2015 +0300
    
        Merge branch 'master' of https://github.com/Itseez/opencv_contrib
    
    commit eba62d5
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Jun 18 16:58:57 2015 +0300
    
        Layers implementations divided onto separated files.
    
    commit 383715d
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Jun 18 23:55:16 2015 +0300
    
        libprotobuf is optional dependency now
    
    commit 2c501f3
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Fri Jun 19 00:01:53 2015 +0300
    
        Replace CMake WARNING onto STATUS
    
    commit 29966ee
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Fri Jun 19 16:50:25 2015 +0300
    
        added HAVE_PROTOBUF macro
    
    commit 48ab440
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Sat Jun 20 01:59:56 2015 +0300
    
        Changed default parameter
    
    commit 09ffc43
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Sat Jun 20 11:58:56 2015 +0300
    
        Fixed CMake and CPP build errors
    
    commit eef4d1d
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Mon Jun 22 23:49:54 2015 +0300
    
        Added LRN and SoftMax layers, some fixes
    
    commit 22272e8
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Tue Jun 23 14:27:30 2015 +0300
    
        Many fixes.
    
    commit 9cddccf
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Tue Jun 23 14:29:42 2015 +0300
    
        Added AlexNet sample. Removed big .caffemodel files from repo.
    
    commit 66fa1e1
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Tue Jun 23 17:33:48 2015 +0300
    
        Random changes in matlab/* module was reverted
    
    commit d80c272
    Author: Anatoly Baksheev <no@email>
    Date:   Wed Jun 24 11:48:44 2015 +0300
    
        fixed stand alone link errors
    
    commit 0cd5459
    Author: Anatoly Baksheev <no@email>
    Date:   Wed Jun 24 12:25:19 2015 +0300
    
        added incdes to project so that it could be visible in some IDEs (ex. qtcreator)
    
    commit 13edaaa
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Jun 24 18:25:34 2015 +0300
    
        Added group param to convolution_layer.cpp
    
    commit 49b5e5e
    Merge: 13edaaa 0cd5459
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Jun 24 18:25:50 2015 +0300
    
        Merge branch 'master' of github.com:ludv1x/opencv_contrib
    
    commit 99b8dac
    Merge: 49b5e5e 8a05bdbc
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Jun 24 18:26:10 2015 +0300
    
        Merge branch 'master' of https://github.com/Itseez/opencv_contrib
    
    commit 0f7907d
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Jun 24 19:28:55 2015 +0300
    
        updated example
    
    commit 2717765
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Jun 24 20:02:31 2015 +0300
    
        Fixed some warnings
    
    commit d117983
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Jun 24 22:18:05 2015 +0300
    
        Deleted trailing whitespaces
    
    commit cfdf060
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Jun 25 12:16:11 2015 +0300
    
        Fixed more warnings. Updated glog_emulator.hpp:
    
    commit 761b037
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Fri Jun 26 17:57:55 2015 +0300
    
        Fixed critical bug in dnn::Dict. Fixed LRN layer implementation. Added layers test.
    
    commit 6fd67d4
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Jul 1 12:12:49 2015 +0300
    
        Updated test. Added and successfuly passed AlexNet reproducibility test. Small fixes.
    
    commit 9838234
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Jul 2 12:25:30 2015 +0300
    
        Some layer fixes. Added concat layer and avg. pooling to sucesfully run GoogLeNet.
    
        Added concat layer, implemented average pooling to run GoogLeNet.
        Fixed transpose error in FullyConnected layer (hotfix in softmax layer).
        Added GoogleNet test and updated AlexNet test (both nets now work fine).
    
    commit 6f8a73b
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Jul 2 12:31:48 2015 +0300
    
        Replaced CMake if() condition for standalone build.
    
    commit 0ebe30a
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Sat Jul 4 22:41:55 2015 +0300
    
        Blob class was significantly refactored
    
    commit d02bced
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Sun Jul 5 22:52:34 2015 +0300
    
        More refactoring over Blob.
    
        More refactoring over Blob.
        Fix warnings and eliminated zlib dependency in cnpy.h
    
    commit 85ad43d
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Mon Jul 6 14:51:10 2015 +0300
    
        Generalized Blob constructor and added vector of images support.
    
        AlexNet and GoogLeNet tests updated.
    
    commit 75e09fd
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Jul 8 19:05:36 2015 +0300
    
        Implement ambiguous blobs naming scheme like: "layerName[.OutputName]".
        Old Caffe-like blob naming scheme was deleted.
    
    commit b9e85ed
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Jul 8 19:15:51 2015 +0300
    
        fixed sign type mismatch warnings in cnpy
    
    commit 9783bba
    Merge: b9e85ed 6f8a73b
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Jul 9 18:26:08 2015 +0300
    
        Merge branch 'master' into work
    
    commit de4d800
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Sun Jul 12 23:19:07 2015 +0300
    
        Added .caffemodel files downloader for tests on post-build step.
    
    commit ec74678
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Jul 16 20:24:12 2015 +0300
    
        Added element-wise layers. Fixed downloader and ConcatLayer.
    
    commit 0362da9
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Fri Jul 17 17:24:59 2015 +0300
    
        Added array support for Dict.
    
    commit 3aa37d2
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Sat Jul 18 01:12:08 2015 +0300
    
        Array of parmaters support into caffe_importer.cpp
    
    commit 172419e
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Sun Jul 19 21:31:22 2015 +0300
    
        Added Reshape layer and altered importer to correctly handle its params.
    
    commit 71cfae4
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Mon Jul 20 23:29:42 2015 +0300
    
        Added Split and Slice layer.
    
    commit 527fa65
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Tue Jul 21 16:10:29 2015 +0300
    
        Rewrited concat_layer.cpp in OpenCV-style. Fixed slice layer, added test for slice, split and reshape layers.
    
    commit 9b1e28e
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Jul 23 00:09:15 2015 +0300
    
        Refactored ConvolutionLayer, added Deconvolution.
    
    commit ff45c22
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Jul 23 21:19:25 2015 +0300
    
        Fixed gcc build errors.
    
    commit 6548839
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Sat Jul 25 12:24:54 2015 +0300
    
        Added testdata images. Fixed Dict copy constructor.
    
    commit db4ff21
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Sat Jul 25 22:26:29 2015 +0300
    
        Updated classification example
    
    commit 4da1046
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Tue Jul 28 16:00:07 2015 +0300
    
        Implemented draft Torch importer
    
    commit 7d795af
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Jul 30 15:43:47 2015 +0300
    
        Fixed Torch parser
    
    commit 5e5cc96
    Merge: 6f8a73b f9d42886
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Mon Aug 3 20:18:01 2015 +0300
    
        Merge branch 'master' of https://github.com/Itseez/opencv_contrib
    
    commit dd15521
    Merge: 5e5cc96 db4ff21
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Mon Aug 3 20:18:28 2015 +0300
    
        Merge branch 'master' of github.com:ludv1x/opencv_contrib
    
    commit c1f4410
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Mon Aug 3 20:20:00 2015 +0300
    
        cnpy warns fix
    
    commit 2905c03
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Tue Aug 4 19:16:34 2015 +0300
    
        Multiple layers support added into Torch importer.
    
        Also DictValue was refactored.
    
    commit 8df8936
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Aug 5 13:14:52 2015 +0300
    
        Added Torch blob reader and torch convolution test.
    
    commit 1c220cf
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Aug 6 13:29:45 2015 +0300
    
        Added simple tests for Torch importer, fixed some importing issues.
    
    commit 436d929
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Aug 6 14:37:56 2015 +0300
    
        Resolve reference counting problem in Torch importer.
    
    commit b2f4ba3
    Merge: c1f4410 172fdb31
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Fri Aug 7 13:27:45 2015 +0300
    
        Merge branch 'master' of https://github.com/Itseez/opencv_contrib
    
    commit 5b08053
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Mon Aug 10 12:53:44 2015 +0300
    
        Added ability to remove singleton dimensions in Reshape layer.
    
        Updated torch importer
    
    commit d0875b1
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Tue Aug 11 01:49:27 2015 +0300
    
        Fixed average pooling error
    
    commit f8119ea
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Tue Aug 11 22:12:48 2015 +0300
    
        Fixed Deconvolution layer. Added more wide layers test coverage.
    
    commit df5eec6
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Aug 12 16:54:44 2015 +0300
    
        Added MVN layer. Renamed layer test data.
    
    commit f28effb
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Aug 12 19:49:54 2015 +0300
    
        Cleaned caffe dependencies
    
    commit b3dcc39
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Aug 12 20:04:23 2015 +0300
    
        Moved caffe.proto
    
    commit 7d2e745
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Aug 13 00:53:50 2015 +0300
    
        Minor test changes
    
    commit c65d032
    Merge: 7d2e745 b2f4ba3
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Aug 13 01:25:00 2015 +0300
    
        Merge branch 'master' of https://github.com/ludv1x/opencv_contrib
    
    commit 160d864
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Aug 13 11:45:40 2015 +0300
    
        Fixed small warn and example error
    
    commit 06f949a
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Aug 13 17:52:46 2015 +0300
    
        Added initModule() procedure to explicitly init builtin layers
    
    commit 23d3ede
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Mon Aug 17 15:10:04 2015 +0300
    
        Added OpenCL im2col
    
    commit 7acfda2
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Tue Aug 18 01:40:41 2015 +0300
    
        Fixed im2col_ocl bug caused non-zero UMat offset
    
    commit 9d932af
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Tue Aug 18 01:55:05 2015 +0300
    
        Add new method to Net
    
    commit 0903d79
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Aug 19 01:28:44 2015 +0300
    
        Added libprotobuf 2.5 as thridparty library
    
    commit 4929177
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Aug 19 01:32:51 2015 +0300
    
        Add compiled caffe protobuf files
    
    commit fc9795b
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Aug 19 18:57:12 2015 +0300
    
        libprotobuf is a separate 3rdparty lib now
    
    commit 93a372f
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Aug 19 19:53:52 2015 +0300
    
        Try fix msvc error and cmake error on android
    
    commit 44e52a0
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Aug 20 01:34:05 2015 +0300
    
        Try fix msvc warnings
    
    commit 519167e
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Aug 20 18:51:44 2015 +0300
    
        Refactored cmake and disabled AlexNet test
    
    commit e644b5a
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Aug 20 21:52:41 2015 +0300
    
        Changed Blob::ptr and Blob::offset methods
    
    commit f07c564
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Aug 20 22:53:02 2015 +0300
    
        Add test data for layers
    
    commit fb66acb
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Fri Aug 21 01:59:17 2015 +0300
    
        API refactoring
    
        renamed learnedParams blobs field
        added new fields: name and type for Layer
    
    commit f8715f3
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Sat Aug 22 18:31:53 2015 +0300
    
        Added licence headers
    
    commit 945094b
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Sun Aug 23 03:06:24 2015 +0300
    
        Update doc, small changes in Blob methods
    
    commit c681508
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Mon Aug 24 01:45:32 2015 +0300
    
        Add more docs
    
    commit bd242d1
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Mon Aug 24 20:44:34 2015 +0300
    
        Add docs for remaning functions
    
    commit eced23c
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Mon Aug 24 20:44:56 2015 +0300
    
        Updated dnn example
    
    commit 57a2194
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Tue Aug 25 15:18:21 2015 +0300
    
        Add tutorial_dnn_build
    
    commit efde664
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Tue Aug 25 17:09:00 2015 +0300
    
        Move binary testdata from opencv_contrib to opencv_extra
    
    commit e52a7ee
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Tue Aug 25 19:01:05 2015 +0300
    
        Add bvlc_googlenet.prototxt to samples
    
    commit 3154fc0
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Aug 26 01:43:53 2015 +0300
    
        Add googlenet tutorial
    
    commit 467cd96
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Aug 26 13:32:27 2015 +0300
    
        Updated dnn build tutorial
    
    commit 83e39a9
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Wed Aug 26 19:56:36 2015 +0300
    
        Fix typos
    
    commit 0a64a9d
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Aug 27 02:30:20 2015 +0300
    
        Changed Caffe googlenet tutorial
    
    commit d2b6011
    Author: Vitaliy Lyudvichenko <ludv1x@yandex.ru>
    Date:   Thu Aug 27 14:01:40 2015 +0300
    
        Fix documentation warning
    
    commit 248577a
    Author: Anatoly Baksheev <no@email>
    Date:   Thu Sep 3 18:33:26 2015 +0300
    
        fixed signed/unsigned cast warning
    6ec22eee
blob.hpp 9.82 KB