Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
392 commits
Select commit Hold shift + click to select a range
59d48f2
add CORNER_SIZE code_type
weiliu89 Jun 6, 2016
175c785
remove contact, create an issue if you have problems
weiliu89 Jun 6, 2016
f750a87
add support for preparing data for ILSVRC2016
weiliu89 Jun 7, 2016
372f36c
fix cmake error (thanks to @xmfbit)
weiliu89 Jun 8, 2016
e74e9c7
fix cmake error (thanks @xmfbit)
weiliu89 Jun 8, 2016
032b10b
add OHEM method
weiliu89 Jun 14, 2016
621130a
refactor MineHardExample function and add use_prior_for_nms option
weiliu89 Jun 15, 2016
9795b66
fix a small bug in IsEligibleMining
weiliu89 Jun 17, 2016
14a5dd8
add ResNet101Boday and fix several ConvBNLayer param
weiliu89 Jun 20, 2016
768ce93
merge master and speed up nms
weiliu89 Jun 22, 2016
c35c2db
change default value
weiliu89 Jun 24, 2016
dec7fc4
fix InferBlobSize when using FIT_SMALL_SIZE resize mode
weiliu89 Jun 24, 2016
708a6ca
add options to provide img_size and step in PriorBoxLayer
weiliu89 Jun 25, 2016
c505f62
fix a bug in matchExt and add width/height in EncodeCVMatToDatum
weiliu89 Jun 25, 2016
15a536c
fix a bug in UpdateBBoxByResizePolicy
weiliu89 Jun 25, 2016
90b53e4
check size in a batch is same for all images
weiliu89 Jun 25, 2016
de8abb3
fix bbox transformation for FIT_LARGE_SIZE_AND_PAD
weiliu89 Jun 25, 2016
5a2081b
fix bug in PriorBoxLayer
weiliu89 Jun 26, 2016
a08764b
add steps in CreateMultiBoxHead
weiliu89 Jun 26, 2016
a8261b1
keep difficult in ClipBBox
weiliu89 Jun 26, 2016
806c062
unify DetectionOutputLayer cpp and cu
weiliu89 Jun 26, 2016
a911621
add resize parameter in detection output/evaluate layer
weiliu89 Jun 27, 2016
97efe78
add use_global_stats as an option in ResNet
weiliu89 Jun 28, 2016
a53756a
add fix scale for FIT_SMALL_SIZE resize option
weiliu89 Jun 28, 2016
bdb9457
add default value for rms_decay
alicanb Jun 28, 2016
80f60da
corrected rmsprop documentation
alicanb Jun 28, 2016
59eda4e
make it easy to update parameters for BN
weiliu89 Jul 1, 2016
e542de3
add img height/width
weiliu89 Jul 1, 2016
a258899
update script, SSD300 reaches 73.7 on VOC07 test
weiliu89 Jul 2, 2016
8865043
add color distortion options
weiliu89 Jul 4, 2016
8905994
fix a few minor issues
weiliu89 Jul 5, 2016
89eace1
merge master and fix conflict
weiliu89 Jul 5, 2016
64306a8
with cudnn v5 and slightly faster nms, SSD300 reaches 72 FPS on Titan X
weiliu89 Jul 5, 2016
7cdb4ff
show FPS in visualization
weiliu89 Jul 5, 2016
2125bbd
display fps in webcam demo
Jul 6, 2016
b05c992
add anno_type in AnnotatedDataParameter
weiliu89 Jul 6, 2016
d535f94
fix lint error
weiliu89 Jul 6, 2016
fe1abed
fix lint error
weiliu89 Jul 6, 2016
ed3fe9f
add cpp demo code to evaluate a model
weiliu89 Jul 7, 2016
13d6c8b
add cpp demo code to evaluate a model
weiliu89 Jul 7, 2016
f1589ab
clear property tree after a test epoch
weiliu89 Jul 7, 2016
fc3f70a
clear property tree after a test epoch
weiliu89 Jul 7, 2016
43e6e5c
fix ComputeAP when ignoring evaluating difficult gt bbox
weiliu89 Jul 8, 2016
fe5b600
remove comment
weiliu89 Jul 8, 2016
75e8379
fix ComputeAP when ignoring evaluating difficult gt bbox
weiliu89 Jul 8, 2016
579d93f
add skip_frame and video file option in VideoDataLayer
weiliu89 Jul 9, 2016
35a25d1
change webcam demo a bit
Jul 9, 2016
63c2ccf
remove redundant lines
Jul 9, 2016
23b8066
fix CPU_ONLY bug
weiliu89 Jul 9, 2016
61a91f1
fix time issue
weiliu89 Jul 9, 2016
0361aa5
fix time issue
weiliu89 Jul 9, 2016
a459441
fix CPU_ONLY bug
weiliu89 Jul 9, 2016
00baef8
add color distortion in training, mAP is 74.3*
weiliu89 Jul 9, 2016
0453050
fix a bug in ReadImageToDatum
weiliu89 Jul 9, 2016
20870fe
fix a few issues in io.cpp
weiliu89 Jul 9, 2016
b71bb3b
add an option to read plain txt annotation in format of [label xmin y…
weiliu89 Jul 10, 2016
af6520b
add an option to read plain txt annotation in format of [label xmin y…
weiliu89 Jul 10, 2016
494b4f5
update ssd ipynb
weiliu89 Jul 10, 2016
d65c428
update ipynb
weiliu89 Jul 12, 2016
b7b3929
fix ResNet152Body
weiliu89 Jul 12, 2016
1427713
add demo for processing video file
weiliu89 Jul 13, 2016
f68cf47
fix small issues
weiliu89 Jul 13, 2016
ca8c158
use default gpu 0 in video demo
weiliu89 Jul 13, 2016
0f29da0
add video demo
weiliu89 Jul 13, 2016
9c4a480
handle no detection results properly
weiliu89 Jul 13, 2016
bcca761
add ILSVRC2016 data script
weiliu89 Jul 14, 2016
728d1dc
add inception v3 convert/test script
weiliu89 Jul 14, 2016
347a979
add script to convert coco model to voc model
weiliu89 Jul 14, 2016
b202b5f
fix FIT_SMALL_SIZE ground truth transformation
weiliu89 Jul 14, 2016
aca69fa
fix make warnings
weiliu89 Jul 14, 2016
6d29d5e
fix TestUpdateBBoxByResizePolicy
weiliu89 Jul 14, 2016
9832c80
add dilation in ResNet
weiliu89 Jul 15, 2016
f25d43f
fix anno_type issues
weiliu89 Jul 15, 2016
a110ac7
Stop setting cache timeout in TravisCI
lukeyeager Jul 15, 2016
42cd785
Merge pull request #4474 from lukeyeager/bvlc/travis-cache
jeffdonahue Jul 16, 2016
8705293
change prior size in scripts
weiliu89 Jul 17, 2016
f66f88b
enable video as input in ssd_detect.cpp
Jul 20, 2016
e0c65bc
missing propagate down
Jul 21, 2016
3de8a1b
add scripts for coco
weiliu89 Jul 23, 2016
0ad1284
CMake: link with ${HDF5_HL_LIBRARIES}
intelfx Jul 25, 2016
c62e06b
Fix search for Atlas on arch.
Jul 26, 2016
af01c20
Merge pull request #62 from nickjmeyer/ssd
weiliu89 Jul 27, 2016
0c16cf6
fix bug when there is no detection
weiliu89 Jul 27, 2016
4db802b
add support to read video in ssd_detect.cpp
weiliu89 Jul 27, 2016
23ce695
speed up MultiBoxLossLayer forward step
Aug 1, 2016
ef9c8d8
add script to train with original ratio images
weiliu89 Aug 1, 2016
9e9e9ba
Merge pull request #4523 from delftrobotics/cmake-atlas
longjon Aug 4, 2016
6431477
Merge pull request #4516 from intelfx/BVLC-work
longjon Aug 4, 2016
26fe193
add script to plot detection results
Aug 4, 2016
07dcaa0
fix a few typo
Aug 5, 2016
cce9191
add python script to test speed and update lr in existing script
Aug 5, 2016
61e0165
num in blob is deprecated
fyu Aug 7, 2016
375003a
Merge pull request #4559 from fyu/loss_reshape
jeffdonahue Aug 7, 2016
f37b29a
add python script for training SSD500 on VOC0712
weiliu89 Aug 8, 2016
0b3406b
add script to train with ResNet101 on VOC0712, mAP is about 73.0
weiliu89 Aug 10, 2016
d91572d
Merge pull request #4379 from alicanb/master
jeffdonahue Aug 11, 2016
d7df4b6
fix typo
handong1587 Aug 13, 2016
88a044f
Merge pull request #109 from handong1587/ssd
weiliu89 Aug 13, 2016
c6cf9f2
fix travis
weiliu89 Aug 13, 2016
ffa396f
remove hungarian library
weiliu89 Aug 13, 2016
03539ad
fix VideoDataLayer error when USE_OPENCV=0
weiliu89 Aug 13, 2016
2a6c8b8
fix ssd_detect error when USE_OPENCV=0
weiliu89 Aug 13, 2016
d9e3609
fix test_multibox_loss_layer error when USE_LMDB=0
weiliu89 Aug 13, 2016
d4a413c
Correct a mistake on math notation
Aug 14, 2016
5d59480
Fixing Typo In Sigmoid CIFAR-10 Examples
keskarnitish Aug 16, 2016
8ba877c
Merge pull request #4596 from keskarnitish/master
shelhamer Aug 16, 2016
5dec847
typo
voidrank Aug 18, 2016
904e024
Merge pull request #4247 from jklontz/master
shelhamer Aug 18, 2016
4572501
Merge pull request #3272 from ixartz/master
shelhamer Aug 18, 2016
7812885
Merge pull request #124 from voidrank/patch-1
weiliu89 Aug 18, 2016
9029695
[build] set default BLAS include for OS X 10.11
shelhamer Aug 18, 2016
2b55c93
Merge pull request #4604 from shelhamer/fix-elcap-blas
shelhamer Aug 18, 2016
1110d2b
make cmake find cuDNN on Mac OS
hlzz Jul 25, 2016
1464368
Merge pull request #4605 from shelhamer/osx-cudnn-dylib
shelhamer Aug 20, 2016
985493e
Merge pull request #4589 from sungjunhong/master
longjon Aug 24, 2016
51c39b8
updates tense in docs
ClimbsRocks Aug 28, 2016
8797e7b
fixes typo- duplicate "a a"
ClimbsRocks Aug 28, 2016
cd54d9e
changes "c++" to "C++" for consistency
ClimbsRocks Aug 28, 2016
4024b82
[TravisCI] - build protobuf3 GA
lukeyeager Aug 29, 2016
96838cf
Merge pull request #4655 from lukeyeager/bvlc/protobuf3-build-fix
shelhamer Aug 29, 2016
ddafc9b
Merge pull request #4645 from ClimbsRocks/patch-1
jeffdonahue Aug 29, 2016
d1dc92e
Merge pull request #4646 from ClimbsRocks/patch-2
jeffdonahue Aug 29, 2016
b2982c7
Merge pull request #4647 from ClimbsRocks/patch-3
jeffdonahue Aug 29, 2016
071d497
Add utility functions to save/load floats onto HDF5
Aug 19, 2016
0e9ebab
Add "plateau" LR policy for SGD solver
Aug 19, 2016
7d57157
Suppress logs from 'plateau' LR policy
Aug 26, 2016
9bc83e3
fix layerSetUp of scale_layer to not add bias blob when already present
bwilbertz Aug 12, 2016
c4dd423
update LICENSE
weiliu89 Sep 7, 2016
e4cde71
fix a bug when there is no match in a batch
weiliu89 Sep 8, 2016
11842a7
fix travis error
weiliu89 Sep 8, 2016
c6a070a
Merge branch 'master' into ssd
weiliu89 Sep 8, 2016
8cd3970
add Travis build status and update link to authors
weiliu89 Sep 8, 2016
e3fdaa1
fix a bug where there is no match in a batch
weiliu89 Sep 8, 2016
cb40904
Merge branch 'master' into ssd
weiliu89 Sep 8, 2016
44e139d
add plateau learning rate
weiliu89 Sep 9, 2016
cdcf2e0
Benchmarking should not impact perf until timer is read
cypof Sep 9, 2016
50b5697
Avoids missing return values during build.
cypof Sep 9, 2016
048530a
Merge pull request #4702 from cypof/timer_sync_on_read
shelhamer Sep 9, 2016
04f9a77
[docs] clarify handling of bias and scaling by BiasLayer, ScaleLayer
shelhamer Aug 28, 2016
d195e60
[docs] note CUDA 8 requirement for Ubuntu 16.04
shelhamer Sep 10, 2016
7f8f9e1
Merge pull request #4705 from shelhamer/ubuntu-cuda-version
shelhamer Sep 10, 2016
24a5d73
change Makefile.config.example
wliu-nuro Sep 12, 2016
cd53c56
add option to expand the image
wliu-nuro Sep 12, 2016
0b985f1
Merge branch 'ssd' of https://bvisionserver1.cs.unc.edu/wliu/caffe in…
weiliu89 Sep 12, 2016
3b6fd1d
[docs] identify batch norm layer blobs
shelhamer Aug 28, 2016
c8f446f
batch norm: hide statistics from solver, simplifying layer definition
shelhamer Aug 30, 2016
a8ec123
batch norm: auto-upgrade old layer definitions w/ param messages
shelhamer Sep 9, 2016
9c26fd7
add option to save display results to video file
weiliu89 Sep 13, 2016
eee3be1
Fixed typos in examples/cpp_classification/readme
mlloreda Sep 15, 2016
80f4410
Merge pull request #4728 from mlloreda/patch-1
shelhamer Sep 15, 2016
25422de
Merge pull request #4704 from shelhamer/groom-batch-norm
shelhamer Sep 16, 2016
5886d94
update training script to include padding during training
weiliu89 Sep 16, 2016
d208b71
Merge pull request #4600 from bwilbertz/fix_scale_layer
jeffdonahue Sep 20, 2016
f96ccea
[TravisCI] google/protobuf renamed the 3.0 branch
lukeyeager Sep 23, 2016
f40cf46
Merge pull request #4769 from lukeyeager/bvlc/travis-protobuf3-url
shelhamer Sep 24, 2016
79a8c52
Ignore Visual Studio Code files.
kyu-sz Sep 21, 2016
2c34393
Merge pull request #4779 from shelhamer/ignore-visualstudio
shelhamer Sep 27, 2016
ce6ac83
slightly relax batch norm check
bwilbertz Sep 29, 2016
a7f950b
Merge pull request #4785 from bwilbertz/slightly_relax_batch_norm_check
shelhamer Sep 30, 2016
08ca703
NV changed path to cudnn
cypof Oct 1, 2016
a2179bd
Merge pull request #4793 from cypof/cudnn_path
shelhamer Oct 4, 2016
c97a964
fix typo in pascal_multilabel_datalayers.py
wk910930 Oct 5, 2016
cdd2d0e
Fix: docs/yum_install.md glog broken link
Shamanoid Oct 5, 2016
a2f9e9b
Merge pull request #4812 from wk910930/fix-typo
shelhamer Oct 5, 2016
4ba654f
Merge pull request #4813 from Shamanoid/patch-1
shelhamer Oct 5, 2016
62732b5
Fix a loop condition in TransformInv func
quadjr Oct 8, 2016
a521cd8
Merge pull request #213 from quadjr/ssd
weiliu89 Oct 11, 2016
2a2bedf
add option to set prior center offset
weiliu89 Oct 12, 2016
38a2029
Merge branch 'master' into ssd
weiliu89 Oct 12, 2016
88bf230
add option to dilate conv4_3
weiliu89 Oct 12, 2016
eb8b028
add option to set the offset of prior centers
weiliu89 Oct 12, 2016
6fdc0d9
a little change on SatisfySampleConstraint
BestSonny Oct 17, 2016
7887b43
Merge pull request #233 from BestSonny/ssd
weiliu89 Oct 19, 2016
897bbd6
fix a bug when there is no detections in an image
weiliu89 Oct 21, 2016
febd5a5
futher speed up detection output gpu version
weiliu89 Oct 23, 2016
3629ba4
slightly increase training iterations
weiliu89 Oct 23, 2016
49a54f4
Merge branch 'master' into ssd
weiliu89 Oct 23, 2016
3b38398
fix lint error
weiliu89 Oct 23, 2016
197d11a
sigmoid cross-entropy loss: add GPU forward for full GPU mode
shelhamer Oct 27, 2016
6491504
Merge pull request #4908 from shelhamer/sigce-gpu
shelhamer Oct 27, 2016
f59dc97
add the missing star in comment
nihui Nov 1, 2016
0d20df5
corrected typo in accuracy_layer.hpp: MaxTopBlos -> MaxTopBlobs
karas84 Nov 1, 2016
74f1fc2
Merge pull request #4937 from nihui/patch-1
jeffdonahue Nov 1, 2016
efe1732
Merge pull request #4941 from karas84/caffe-pr
jeffdonahue Nov 1, 2016
3b443ea
Add Github issue template to curb misuse.
williford Oct 28, 2016
29cdee7
Merge pull request #4914 from williford/issue_template
shelhamer Nov 3, 2016
20feab5
Put quotes around titles in YAML front matter.
williford Nov 11, 2016
eb4ba30
Merge pull request #4971 from williford/docs-installation-add-quotes
shelhamer Nov 12, 2016
aaf7b6b
support solver resumes in parse_log.py
davidbrai Nov 14, 2016
c6ab965
sigmoid cross-entropy loss: ignore selected targets by `ignore_label`
shelhamer Nov 15, 2016
6486a7b
docs: Guillaume Dumont is the Windows maintainer
shelhamer Nov 16, 2016
abcb973
docs: include AWS AMI pointer
shelhamer Nov 16, 2016
4a158a8
Merge pull request #4993 from shelhamer/bitfusion-ami
shelhamer Nov 16, 2016
3d62e3c
sigmoid cross-entropy loss: normalize loss by different schemes
shelhamer Nov 17, 2016
28c135c
Merge pull request #4986 from shelhamer/sigce-ignore
shelhamer Nov 17, 2016
2cf9dd3
Add missing spaces besides equal signs in batch_norm_layer.cpp
chenzeyuczy Nov 18, 2016
32c2ce6
Merge pull request #4979 from davidbrai/allow-parse_log-to-skip-lines
shelhamer Nov 18, 2016
473f143
Merge pull request #4703 from cypof/avoid_missing_returns
shelhamer Nov 19, 2016
e52451d
solver: check and set type to reconcile class and proto
shelhamer Nov 21, 2016
48e73c7
Checks inside Xcode for latest OSX SDK (#4840)
Zylphrex Nov 21, 2016
a60c4a4
Merge pull request #4998 from chenzeyuczy/master
jeffdonahue Nov 22, 2016
a6c6533
Merge pull request #5009 from shelhamer/solver-type-check
shelhamer Nov 22, 2016
f487dc1
Merge branch 'master' into ssd
weiliu89 Nov 24, 2016
b788af6
Merge branch 'master' into ssd
weiliu89 Nov 24, 2016
991c49f
update code
weiliu89 Nov 25, 2016
bae3bf5
fix CPU_ONLY build error
weiliu89 Nov 25, 2016
1295ee4
change Makefile.config.example
weiliu89 Nov 25, 2016
896acc2
fix opencv build issue
weiliu89 Nov 26, 2016
5365d0d
fix test build
weiliu89 Nov 26, 2016
2c4e4c2
make scripts consistent
weiliu89 Dec 1, 2016
bd55327
move plot_detections.py to examples/ssd
weiliu89 Dec 1, 2016
8763926
add example script to train ILSVRC model
weiliu89 Dec 1, 2016
feeb5b5
change to warning when boost create_directory
weiliu89 Dec 1, 2016
30f04dd
optimize inference speed
weiliu89 Dec 1, 2016
dbf3836
update README with new models
weiliu89 Dec 1, 2016
951419d
minor update
weiliu89 Dec 1, 2016
b004e4b
include results on multiple datasets and update bibtex
weiliu89 Dec 3, 2016
2abf2c0
a small fix for ssd.ipynb
weiliu89 Dec 5, 2016
8a65ae3
add options to display per class AP
weiliu89 Dec 5, 2016
77c1c51
change CUDA_ARCH to default ones
weiliu89 Dec 8, 2016
85aad23
add ZFNet example
weiliu89 Jan 12, 2017
3d7035d
add size information
weiliu89 Jan 16, 2017
f8ef5a8
Update README.md
raingo Jan 16, 2017
34753f3
Merge pull request #393 from raingo/patch-1
weiliu89 Jan 17, 2017
29abcd7
added compute capabilities for latest GPUs
fedor-chervinskii Jan 18, 2017
524a5f7
cmake modification for higher compute capabilities
fedor-chervinskii Jan 18, 2017
efdc164
Merge pull request #397 from fedor-chervinskii/ssd
weiliu89 Jan 19, 2017
fd0ba25
minor test fix
weiliu89 Feb 9, 2017
06de4fc
use mining_type
taras-sereda Feb 14, 2017
a915461
Merge pull request #444 from taras-sereda/ssd
weiliu89 Feb 14, 2017
81e512e
fixed python3.6 dateutil requirement
dizcza Mar 13, 2017
e2d50cc
update model links
weiliu89 Mar 20, 2017
7e02cfd
Merge pull request #492 from dizcza/ssd
weiliu89 May 3, 2017
6feb7d9
fix bug in bbox sampling
amoussawi Apr 20, 2017
96175b2
Merge pull request #547 from amoussawi/fix-sampling-bug
weiliu89 May 3, 2017
bfac759
Add support for cuDNN v6
thundo May 6, 2017
9d6e815
Merge pull request #573 from thundo/ssd
weiliu89 May 9, 2017
8c60951
add ssd_detect.py
ZhangXinNan Jun 29, 2017
6405686
remove chi comment
ZhangXinNan Aug 26, 2017
6781db9
renamed: ssd_detect.py -> examples/ssd/ssd_detect.py
ZhangXinNan Aug 26, 2017
f5eac04
Merge pull request #659 from ZhangXinNan/zxdev_ssd
weiliu89 Aug 30, 2017
b4bacbb
uncomment remove_all
wliu-nuro Oct 27, 2017
24406cb
add script to process annotation jsons from COCO and transform them t…
Nov 22, 2017
5699835
improved for slow harddrives
Nov 24, 2017
6a16328
allowed selective generation of annotation label types
Dec 2, 2017
2ad5fe9
Python2 prints -> Python3 prints
Patataman Jan 2, 2018
60fb843
Update create_annoset.py
Patataman Jan 2, 2018
7fa6961
Merge pull request #823 from Patataman/patch-1
weiliu89 Jan 2, 2018
4817bf8
Merge pull request #791 from eselkin/ssd
weiliu89 Jan 2, 2018
289b10e
Update README.md
weiliu89 Oct 25, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
Please use the [caffe-users list](https://groups.google.com/forum/#!forum/caffe-users) for usage, installation, or modeling questions, or other requests for help.
_Do not post such requests to Issues._ Doing so interferes with the development of Caffe.

Please read the [guidelines for contributing](https://github.com/BVLC/caffe/blob/master/CONTRIBUTING.md) before submitting this issue.

### Issue summary


### Steps to reproduce

If you are having difficulty building Caffe or training a model, please ask the caffe-users mailing list. If you are reporting a build error that seems to be due to a bug in Caffe, please attach your build configuration (either Makefile.config or CMakeCache.txt) and the output of the make (or cmake) command.

### Your system configuration
Operating system:
Compiler:
CUDA version (if applicable):
CUDNN version (if applicable):
BLAS:
Python or MATLAB version (for pycaffe and matcaffe respectively):
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@
# PyCharm files
.idea

# Visual Studio Code files
.vscode

# OSX dir files
.DS_Store

Expand Down Expand Up @@ -93,3 +96,8 @@ LOCK
LOG*
CURRENT
MANIFEST-*

# temporary directories
jobs
temp
examples/*/*lmdb
1 change: 0 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ env:
- BUILD_NAME="cudnn-cmake" WITH_CMAKE=true WITH_CUDA=true WITH_CUDNN=true

cache:
timeout: 604800 # 1 week
apt: true
directories:
- ~/protobuf3
Expand Down
6 changes: 6 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
COPYRIGHT

All new contributions compared to the original branch:
Copyright (c) 2015, 2016 Wei Liu (UNC Chapel Hill), Dragomir Anguelov (Zoox),
Dumitru Erhan (Google), Christian Szegedy (Google), Scott Reed (UMich Ann Arbor),
Cheng-Yang Fu (UNC Chapel Hill), Alexander C. Berg (UNC Chapel Hill).
All rights reserved.

All contributions by the University of California:
Copyright (c) 2014, 2015, The Regents of the University of California (Regents)
All rights reserved.
Expand Down
15 changes: 9 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ ifneq ($(CPU_ONLY), 1)
LIBRARIES := cudart cublas curand
endif

LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
LIBRARIES += glog gflags protobuf boost_system boost_filesystem boost_regex m hdf5_hl hdf5

# handle IO dependencies
USE_LEVELDB ?= 1
Expand All @@ -192,12 +192,12 @@ ifeq ($(USE_LMDB), 1)
LIBRARIES += lmdb
endif
ifeq ($(USE_OPENCV), 1)
LIBRARIES += opencv_core opencv_highgui opencv_imgproc
LIBRARIES += opencv_core opencv_highgui opencv_imgproc

ifeq ($(OPENCV_VERSION), 3)
LIBRARIES += opencv_imgcodecs
LIBRARIES += opencv_imgcodecs opencv_videoio
endif

endif
PYTHON_LIBRARIES ?= boost_python python2.7
WARNINGS := -Wall -Wno-sign-compare
Expand Down Expand Up @@ -382,8 +382,11 @@ else
LIBRARIES += cblas
# 10.10 has accelerate while 10.9 has veclib
XCODE_CLT_VER := $(shell pkgutil --pkg-info=com.apple.pkg.CLTools_Executables | grep 'version' | sed 's/[^0-9]*\([0-9]\).*/\1/')
XCODE_CLT_GEQ_7 := $(shell [ $(XCODE_CLT_VER) -gt 6 ] && echo 1)
XCODE_CLT_GEQ_6 := $(shell [ $(XCODE_CLT_VER) -gt 5 ] && echo 1)
ifeq ($(XCODE_CLT_GEQ_6), 1)
ifeq ($(XCODE_CLT_GEQ_7), 1)
BLAS_INCLUDE ?= /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/$(shell ls /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ | sort | tail -1)/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/Headers
else ifeq ($(XCODE_CLT_GEQ_6), 1)
BLAS_INCLUDE ?= /System/Library/Frameworks/Accelerate.framework/Versions/Current/Frameworks/vecLib.framework/Headers/
LDFLAGS += -framework Accelerate
else
Expand All @@ -401,7 +404,7 @@ LIBRARY_DIRS += $(LIB_BUILD_DIR)
CXXFLAGS += -MMD -MP

# Complete build flags.
COMMON_FLAGS += $(foreach includedir,$(INCLUDE_DIRS),-I$(includedir))
COMMON_FLAGS += $(foreach includedir,$(INCLUDE_DIRS),-isystem $(includedir))
CXXFLAGS += -pthread -fPIC $(COMMON_FLAGS) $(WARNINGS)
NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
# mex may invoke an older gcc that is too liberal with -Wuninitalized
Expand Down
22 changes: 12 additions & 10 deletions Makefile.config.example
Original file line number Diff line number Diff line change
Expand Up @@ -31,19 +31,21 @@ CUDA_DIR := /usr/local/cuda
# CUDA_DIR := /usr

# CUDA architecture setting: going with all of them.
# For CUDA < 6.0, comment the *_50 lines for compatibility.
# For CUDA < 6.0, comment the lines after *_35 for compatibility.
CUDA_ARCH := -gencode arch=compute_20,code=sm_20 \
-gencode arch=compute_20,code=sm_21 \
-gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=sm_50 \
-gencode arch=compute_50,code=compute_50
-gencode arch=compute_20,code=sm_21 \
-gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=sm_50 \
-gencode arch=compute_52,code=sm_52 \
-gencode arch=compute_61,code=sm_61

# BLAS choice:
# atlas for ATLAS (default)
# mkl for MKL
# open for OpenBlas
BLAS := atlas
# BLAS := atlas
BLAS := open
# Custom (MKL/ATLAS/OpenBLAS) include and lib directories.
# Leave commented to accept the defaults for your choice of BLAS
# (which should work)!
Expand All @@ -65,10 +67,10 @@ PYTHON_INCLUDE := /usr/include/python2.7 \
/usr/lib/python2.7/dist-packages/numpy/core/include
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
# ANACONDA_HOME := $(HOME)/anaconda
# ANACONDA_HOME := $(HOME)/anaconda2
# PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
# $(ANACONDA_HOME)/include/python2.7 \
# $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \
$(ANACONDA_HOME)/include/python2.7 \
$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \

# Uncomment to use Python 3 (default is Python 2)
# PYTHON_LIBRARIES := boost_python3 python3.5m
Expand Down
152 changes: 129 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,143 @@
# Caffe
# SSD: Single Shot MultiBox Detector

[![Build Status](https://travis-ci.org/BVLC/caffe.svg?branch=master)](https://travis-ci.org/BVLC/caffe)
[![Build Status](https://travis-ci.org/weiliu89/caffe.svg?branch=ssd)](https://travis-ci.org/weiliu89/caffe)
[![License](https://img.shields.io/badge/license-BSD-blue.svg)](LICENSE)

Caffe is a deep learning framework made with expression, speed, and modularity in mind.
It is developed by the Berkeley Vision and Learning Center ([BVLC](http://bvlc.eecs.berkeley.edu)) and community contributors.
By [Wei Liu](http://www.cs.unc.edu/~wliu/), [Dragomir Anguelov](https://www.linkedin.com/in/dragomiranguelov), [Dumitru Erhan](http://research.google.com/pubs/DumitruErhan.html), [Christian Szegedy](http://research.google.com/pubs/ChristianSzegedy.html), [Scott Reed](http://www-personal.umich.edu/~reedscot/), [Cheng-Yang Fu](http://www.cs.unc.edu/~cyfu/), [Alexander C. Berg](http://acberg.com).

Check out the [project site](http://caffe.berkeleyvision.org) for all the details like
### Introduction

- [DIY Deep Learning for Vision with Caffe](https://docs.google.com/presentation/d/1UeKXVgRvvxg9OUdh_UiC5G71UMscNPlvArsWER41PsU/edit#slide=id.p)
- [Tutorial Documentation](http://caffe.berkeleyvision.org/tutorial/)
- [BVLC reference models](http://caffe.berkeleyvision.org/model_zoo.html) and the [community model zoo](https://github.com/BVLC/caffe/wiki/Model-Zoo)
- [Installation instructions](http://caffe.berkeleyvision.org/installation.html)
SSD is an unified framework for object detection with a single network. You can use the code to train/evaluate a network for object detection task. For more details, please refer to our [arXiv paper](http://arxiv.org/abs/1512.02325) and our [slide](http://www.cs.unc.edu/~wliu/papers/ssd_eccv2016_slide.pdf).

and step-by-step examples.
<p align="center">
<img src="http://www.cs.unc.edu/~wliu/papers/ssd.png" alt="SSD Framework" width="600px">
</p>

[![Join the chat at https://gitter.im/BVLC/caffe](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/BVLC/caffe?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
| System | VOC2007 test *mAP* | **FPS** (Titan X) | Number of Boxes | Input resolution
|:-------|:-----:|:-------:|:-------:|:-------:|
| [Faster R-CNN (VGG16)](https://github.com/ShaoqingRen/faster_rcnn) | 73.2 | 7 | ~6000 | ~1000 x 600 |
| [YOLO (customized)](http://pjreddie.com/darknet/yolo/) | 63.4 | 45 | 98 | 448 x 448 |
| SSD300* (VGG16) | 77.2 | 46 | 8732 | 300 x 300 |
| SSD512* (VGG16) | **79.8** | 19 | 24564 | 512 x 512 |

Please join the [caffe-users group](https://groups.google.com/forum/#!forum/caffe-users) or [gitter chat](https://gitter.im/BVLC/caffe) to ask questions and talk about methods and models.
Framework development discussions and thorough bug reports are collected on [Issues](https://github.com/BVLC/caffe/issues).

Happy brewing!
<p align="left">
<img src="http://www.cs.unc.edu/~wliu/papers/ssd_results.png" alt="SSD results on multiple datasets" width="800px">
</p>

## License and Citation
_Note: SSD300* and SSD512* are the latest models. Current code should reproduce these results._

Caffe is released under the [BSD 2-Clause license](https://github.com/BVLC/caffe/blob/master/LICENSE).
The BVLC reference models are released for unrestricted use.
### Citing SSD

Please cite Caffe in your publications if it helps your research:
Please cite SSD in your publications if it helps your research:

@article{jia2014caffe,
Author = {Jia, Yangqing and Shelhamer, Evan and Donahue, Jeff and Karayev, Sergey and Long, Jonathan and Girshick, Ross and Guadarrama, Sergio and Darrell, Trevor},
Journal = {arXiv preprint arXiv:1408.5093},
Title = {Caffe: Convolutional Architecture for Fast Feature Embedding},
Year = {2014}
@inproceedings{liu2016ssd,
title = {{SSD}: Single Shot MultiBox Detector},
author = {Liu, Wei and Anguelov, Dragomir and Erhan, Dumitru and Szegedy, Christian and Reed, Scott and Fu, Cheng-Yang and Berg, Alexander C.},
booktitle = {ECCV},
year = {2016}
}

### Contents
1. [Installation](#installation)
2. [Preparation](#preparation)
3. [Train/Eval](#traineval)
4. [Models](#models)

### Installation
1. Get the code. We will call the directory that you cloned Caffe into `$CAFFE_ROOT`
```Shell
git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd
```

2. Build the code. Please follow [Caffe instruction](http://caffe.berkeleyvision.org/installation.html) to install all necessary packages and build it.
```Shell
# Modify Makefile.config according to your Caffe installation.
cp Makefile.config.example Makefile.config
make -j8
# Make sure to include $CAFFE_ROOT/python to your PYTHONPATH.
make py
make test -j8
# (Optional)
make runtest -j8
```

### Preparation
1. Download [fully convolutional reduced (atrous) VGGNet](https://gist.github.com/weiliu89/2ed6e13bfd5b57cf81d6). By default, we assume the model is stored in `$CAFFE_ROOT/models/VGGNet/`

2. Download VOC2007 and VOC2012 dataset. By default, we assume the data is stored in `$HOME/data/`
```Shell
# Download the data.
cd $HOME/data
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
# Extract the data.
tar -xvf VOCtrainval_11-May-2012.tar
tar -xvf VOCtrainval_06-Nov-2007.tar
tar -xvf VOCtest_06-Nov-2007.tar
```

3. Create the LMDB file.
```Shell
cd $CAFFE_ROOT
# Create the trainval.txt, test.txt, and test_name_size.txt in data/VOC0712/
./data/VOC0712/create_list.sh
# You can modify the parameters in create_data.sh if needed.
# It will create lmdb files for trainval and test with encoded original image:
# - $HOME/data/VOCdevkit/VOC0712/lmdb/VOC0712_trainval_lmdb
# - $HOME/data/VOCdevkit/VOC0712/lmdb/VOC0712_test_lmdb
# and make soft links at examples/VOC0712/
./data/VOC0712/create_data.sh
```

### Train/Eval
1. Train your model and evaluate the model on the fly.
```Shell
# It will create model definition files and save snapshot models in:
# - $CAFFE_ROOT/models/VGGNet/VOC0712/SSD_300x300/
# and job file, log file, and the python script in:
# - $CAFFE_ROOT/jobs/VGGNet/VOC0712/SSD_300x300/
# and save temporary evaluation results in:
# - $HOME/data/VOCdevkit/results/VOC2007/SSD_300x300/
# It should reach 77.* mAP at 120k iterations.
python examples/ssd/ssd_pascal.py
```
If you don't have time to train your model, you can download a pre-trained model at [here](https://drive.google.com/file/d/0BzKzrI_SkD1_WVVTSmQxU0dVRzA/view?resourcekey=0-VFoYwzlHsh486pZ5U4sA6w).

2. Evaluate the most recent snapshot.
```Shell
# If you would like to test a model you trained, you can do:
python examples/ssd/score_ssd_pascal.py
```

3. Test your model using a webcam. Note: press <kbd>esc</kbd> to stop.
```Shell
# If you would like to attach a webcam to a model you trained, you can do:
python examples/ssd/ssd_pascal_webcam.py
```
[Here](https://drive.google.com/file/d/0BzKzrI_SkD1_R09NcjM1eElLcWc/view?resourcekey=0-Sx3DJK4udeqqVl7AZkfLlQ) is a demo video of running a SSD500 model trained on [MSCOCO](http://mscoco.org) dataset.

4. Check out [`examples/ssd_detect.ipynb`](https://github.com/weiliu89/caffe/blob/ssd/examples/ssd_detect.ipynb) or [`examples/ssd/ssd_detect.cpp`](https://github.com/weiliu89/caffe/blob/ssd/examples/ssd/ssd_detect.cpp) on how to detect objects using a SSD model. Check out [`examples/ssd/plot_detections.py`](https://github.com/weiliu89/caffe/blob/ssd/examples/ssd/plot_detections.py) on how to plot detection results output by ssd_detect.cpp.

5. To train on other dataset, please refer to data/OTHERDATASET for more details. We currently add support for COCO and ILSVRC2016. We recommend using [`examples/ssd.ipynb`](https://github.com/weiliu89/caffe/blob/ssd/examples/ssd_detect.ipynb) to check whether the new dataset is prepared correctly.

### Models
We have provided the latest models that are trained from different datasets. To help reproduce the results in [Table 6](https://arxiv.org/pdf/1512.02325v4.pdf), most models contain a pretrained `.caffemodel` file, many `.prototxt` files, and python scripts.

1. PASCAL VOC models:
* 07+12: [SSD300*](https://drive.google.com/file/d/0BzKzrI_SkD1_WVVTSmQxU0dVRzA/view?usp=sharing&resourcekey=0-VFoYwzlHsh486pZ5U4sA6w), [SSD512*](https://drive.google.com/file/d/0BzKzrI_SkD1_ZDIxVHBEcUNBb2s/view?resourcekey=0-cK6N_2Rq6C5wHAo8RaKHFw)
* 07++12: [SSD300*](https://drive.google.com/file/d/0BzKzrI_SkD1_WnR2T1BGVWlCZHM/view?resourcekey=0-JuQ-1PI4gfEU5Y9hY6IXbg), [SSD512*](https://drive.google.com/file/d/0BzKzrI_SkD1_MjFjNTlnempHNWs/view?resourcekey=0-0K7EITSbE2Fae2pIMUrpSQ)
* COCO<sup>[1]</sup>: [SSD300*](https://drive.google.com/file/d/0BzKzrI_SkD1_NDlVeFJDc2tIU1k/view?resourcekey=0-VIwceFdQvGpMl31jHv5RpA), [SSD512*](https://drive.google.com/file/d/0BzKzrI_SkD1_TW4wTC14aDdCTDQ/view?resourcekey=0-KGdQFztFWQmhnOcIH6rHRg)
* 07+12+COCO: [SSD300*](https://drive.google.com/file/d/0BzKzrI_SkD1_UFpoU01yLS1SaG8/view?resourcekey=0-WTJQYLuiLBUlNJl8R8qLBQ), [SSD512*](https://drive.google.com/file/d/0BzKzrI_SkD1_X3ZXQUUtM0xNeEk/view?resourcekey=0-lE4MISx92j4QfcQB0IG8tQ)
* 07++12+COCO: [SSD300*](https://drive.google.com/file/d/0BzKzrI_SkD1_TkFPTEQ1Z091SUE/view?resourcekey=0-y2qRDQXEnu7vfOOVtOv4zQ), [SSD512*](https://drive.google.com/file/d/0BzKzrI_SkD1_NVVNdWdYNEh1WTA/view?resourcekey=0-w1KTy5Kf6iSXHc0Njd_btg)

2. COCO models:
* trainval35k: [SSD300*](https://drive.google.com/file/d/0BzKzrI_SkD1_dUY1Ml9GRTFpUWc/view?resourcekey=0-fJphZuOKnVT1Pkd89oXSlg), [SSD512*](https://drive.google.com/file/d/0BzKzrI_SkD1_dlJpZHJzOXd3MTg/view?resourcekey=0-RmOcjeeLhvcJYlQqLf-LJw)

3. ILSVRC models:
* trainval1: [SSD300*](https://drive.google.com/file/d/0BzKzrI_SkD1_a2NKQ2d1d043VXM/view?resourcekey=0-qLYN1paAkTpJYc91FOAqKw), [SSD500](https://drive.google.com/file/d/0BzKzrI_SkD1_X2ZCLVgwLTgzaTQ/view?resourcekey=0-GA44ga07kV8oB0rK7XEF0Q)

<sup>[1]</sup>We use [`examples/convert_model.ipynb`](https://github.com/weiliu89/caffe/blob/ssd/examples/convert_model.ipynb) to extract a VOC model from a pretrained COCO model.
17 changes: 12 additions & 5 deletions cmake/Cuda.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ endif()

# Known NVIDIA GPU achitectures Caffe can be compiled for.
# This list will be used for CUDA_ARCH_NAME = All option
set(Caffe_known_gpu_archs "20 21(20) 30 35 50")
set(Caffe_known_gpu_archs "20 21(20) 30 35 50 52 61")

################################################################################################
# A function for automatic detection of GPUs installed (if autodetection is enabled)
Expand Down Expand Up @@ -174,11 +174,18 @@ function(detect_cuDNN)
PATHS ${CUDNN_ROOT} $ENV{CUDNN_ROOT} ${CUDA_TOOLKIT_INCLUDE}
DOC "Path to cuDNN include directory." )

get_filename_component(__libpath_hist ${CUDA_CUDART_LIBRARY} PATH)
find_library(CUDNN_LIBRARY NAMES libcudnn.so # libcudnn_static.a
PATHS ${CUDNN_ROOT} $ENV{CUDNN_ROOT} ${CUDNN_INCLUDE} ${__libpath_hist}
DOC "Path to cuDNN library.")
# dynamic libs have different suffix in mac and linux
if(APPLE)
set(CUDNN_LIB_NAME "libcudnn.dylib")
else()
set(CUDNN_LIB_NAME "libcudnn.so")
endif()

get_filename_component(__libpath_hist ${CUDA_CUDART_LIBRARY} PATH)
find_library(CUDNN_LIBRARY NAMES ${CUDNN_LIB_NAME}
PATHS ${CUDNN_ROOT} $ENV{CUDNN_ROOT} ${CUDNN_INCLUDE} ${__libpath_hist} ${__libpath_hist}/../lib
DOC "Path to cuDNN library.")

if(CUDNN_INCLUDE AND CUDNN_LIBRARY)
set(HAVE_CUDNN TRUE PARENT_SCOPE)
set(CUDNN_FOUND TRUE PARENT_SCOPE)
Expand Down
12 changes: 9 additions & 3 deletions cmake/Dependencies.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
set(Caffe_LINKER_LIBS "")

# ---[ Boost
find_package(Boost 1.46 REQUIRED COMPONENTS system thread filesystem)
find_package(Boost 1.46 REQUIRED COMPONENTS system thread filesystem regex)
include_directories(SYSTEM ${Boost_INCLUDE_DIR})
list(APPEND Caffe_LINKER_LIBS ${Boost_LIBRARIES})

Expand All @@ -26,7 +26,7 @@ include(cmake/ProtoBuf.cmake)
# ---[ HDF5
find_package(HDF5 COMPONENTS HL REQUIRED)
include_directories(SYSTEM ${HDF5_INCLUDE_DIRS} ${HDF5_HL_INCLUDE_DIR})
list(APPEND Caffe_LINKER_LIBS ${HDF5_LIBRARIES})
list(APPEND Caffe_LINKER_LIBS ${HDF5_LIBRARIES} ${HDF5_HL_LIBRARIES})

# ---[ LMDB
if(USE_LMDB)
Expand Down Expand Up @@ -69,7 +69,7 @@ endif()

# ---[ OpenCV
if(USE_OPENCV)
find_package(OpenCV QUIET COMPONENTS core highgui imgproc imgcodecs)
find_package(OpenCV QUIET COMPONENTS core highgui imgproc imgcodecs videoio)
if(NOT OpenCV_FOUND) # if not OpenCV 3.x, then imgcodecs are not found
find_package(OpenCV REQUIRED COMPONENTS core highgui imgproc)
endif()
Expand Down Expand Up @@ -102,6 +102,12 @@ elseif(APPLE)
find_package(vecLib REQUIRED)
include_directories(SYSTEM ${vecLib_INCLUDE_DIR})
list(APPEND Caffe_LINKER_LIBS ${vecLib_LINKER_LIBS})

if(VECLIB_FOUND)
if(NOT vecLib_INCLUDE_DIR MATCHES "^/System/Library/Frameworks/vecLib.framework.*")
add_definitions(-DUSE_ACCELERATE)
endif()
endif()
endif()

# ---[ Python
Expand Down
Loading