Commit Graph

7863 Commits

Author SHA1 Message Date
Juha Reunanen
d175c35074 Instance segmentation (#1918)
* Add instance segmentation example - first version of training code

* Add MMOD options; get rid of the cache approach, and instead load all MMOD rects upfront

* Improve console output

* Set filter count

* Minor tweaking

* Inference - first version, at least compiles!

* Ignore overlapped boxes

* Ignore even small instances

* Set overlaps_ignore

* Add TODO remarks

* Revert "Set overlaps_ignore"

This reverts commit 65adeff1f8.

* Set result size

* Set label image size

* Take ignore-color into account

* Fix the cropping rect's aspect ratio; also slightly expand the rect

* Draw the largest findings last

* Improve masking of the current instance

* Add some perturbation to the inputs

* Simplify ground-truth reading; fix random cropping

* Read even class labels

* Tweak default minibatch size

* Learn only one class

* Really train only instances of the selected class

* Remove outdated TODO remark

* Automatically skip images with no detections

* Print to console what was found

* Fix class index problem

* Fix indentation

* Allow to choose multiple classes

* Draw rect in the color of the corresponding class

* Write detector window classes to ostream; also group detection windows by class (when ostreaming)

* Train a separate instance segmentation network for each classlabel

* Use separate synchronization file for each seg net of each class

* Allow more overlap

* Fix sorting criterion

* Fix interpolating the predicted mask

* Improve bilinear interpolation: if output type is an integer, round instead of truncating

* Add helpful comments

* Ignore large aspect ratios; refactor the code; tweak some network parameters

* Simplify the segmentation network structure; make the object detection network more complex in turn

* Problem: CUDA errors not reported properly to console
Solution: stop and join data loader threads even in case of exceptions

* Minor parameters tweaking

* Loss may have increased, even if prob_loss_increasing_thresh > prob_loss_increasing_thresh_max_value

* Add previous_loss_values_dump_amount to previous_loss_values.size() when deciding if loss has been increasing

* Improve behaviour when loss actually increased after disk sync

* Revert some of the earlier change

* Disregard dumped loss values only when deciding if learning rate should be shrunk, but *not* when deciding if loss has been going up since last disk sync

* Revert "Revert some of the earlier change"

This reverts commit 6c852124ef.

* Keep enough previous loss values, until the disk sync

* Fix maintaining the dumped (now "effectively disregarded") loss values count

* Detect cats instead of aeroplanes

* Add helpful logging

* Clarify the intention and the code

* Review fixes

* Add operator== for the other pixel types as well; remove the inline

* If available, use constexpr if

* Revert "If available, use constexpr if"

This reverts commit 503d4dd335.

* Simplify code as per review comments

* Keep estimating steps_without_progress, even if steps_since_last_learning_rate_shrink < iter_without_progress_thresh

* Clarify console output

* Revert "Keep estimating steps_without_progress, even if steps_since_last_learning_rate_shrink < iter_without_progress_thresh"

This reverts commit 9191ebc776.

* To keep the changes to a bare minimum, revert the steps_since_last_learning_rate_shrink change after all (at least for now)

* Even empty out some of the previous test loss values

* Minor review fixes

* Can't use C++14 features here

* Do not use the struct name as a variable name
2019-11-14 22:53:16 -05:00
Davis King
7f2be82e33 rename top level cmake project to avoid possible cmake issues 2019-11-13 22:46:33 -05:00
Davis King
bd6dcc0b49 Fix find_max() going into an infinite loop in some cases when a non-differentiable function is given. 2019-10-31 20:23:15 -04:00
Davis King
1eccfbc99a fix cmake warning 2019-10-31 20:03:03 -04:00
Davis King
36703f696f Improve check that the system version of libjpeg is usable. 2019-10-31 20:03:03 -04:00
Morwenn
e30f5e2fe8 Propagate CMake flags to try_compile (fixes #1900) (#1905)
* Forward CMake environment flags to libjpeg tests

* Forward CMake environment flags to libpng tests
2019-10-24 20:21:50 -04:00
Davis King
1b83016abd update docs 2019-10-24 20:15:34 -04:00
Davis King
39327e71b7 Added note about using cmake's new fetch content feature. 2019-10-24 07:50:30 -04:00
Adrià Arrufat
9d3e086477 fix signed/unsigned warning (#1899) 2019-10-15 08:02:15 -04:00
Juha Reunanen
a41e0cdb0f Primarily match to truth rects that haven't been hit already (#1897) 2019-10-14 07:11:32 -04:00
Davis King
1264521e0c more comments 2019-10-13 08:25:14 -04:00
Juha Reunanen
8e622e9f4a Ignore truth rects that overlap too much (have same index in feature coordinates) (#1896)
* Add test case that makes MMOD loss go negative with certain ignore-rect configuration

* Disregard duplicate truth boxes

* Minor optimization

* Remove possibly outdated comment

* Clarify the detection count test criterion a little

* Review fix

* Review fixes:
- for perf reasons, keep only the first rect for each truth idx
- fix warning message grammar
2019-10-13 08:22:11 -04:00
Davis King
cff605add5 fix warnings 2019-10-01 21:08:22 -04:00
Davis King
df2bbd8a2c Record last changeset and set PATCH version to 99 2019-09-22 14:59:28 -04:00
Davis King
1ac1756923 Created release v19.18 2019-09-22 14:57:37 -04:00
Davis King
f4a3d09a9d updated docs and release notes 2019-09-22 14:57:02 -04:00
Julien Schueller
2e5cf2e8e4 Add an option to force static runtime (#1847)
* dos2unix tell_visual_studio_to_use_static_runtime.cmake

* Add an option to force static runtime
2019-09-01 09:06:38 -04:00
Juha Reunanen
e89e28b94e Clear truth_idxs between samples (#1870)
* Clear truth_idxs between samples

* Move truth_idxs inside loop body after all

* Push to truth_idxs even when the box can't be detected; improve formatting
2019-08-31 13:10:05 -04:00
Adrià Arrufat
170877da88 add loss_mean_squared_per_channel (#1863)
add loss_mean_squared_per_channel_and_pixel
2019-08-28 07:25:08 -04:00
Mischan Toosarani-Hausberger
efd4e27488 dpoint mutates x-coord in y-property (see #1794) (#1866) 2019-08-24 11:13:00 -04:00
Thomas Peters
a81fd0c651 don't cast away constness (#1865) 2019-08-23 14:00:24 -04:00
Davis King
e8d2407611 Simplified the device_global_buffer() code and API. 2019-08-17 11:27:48 -04:00
Juha Reunanen
d7fb51e60b Fix #1849 by calling device_global_buffer() unconditionally (#1862)
* Hold on to the CUDA buffer - second try
see: https://github.com/davisking/dlib/pull/1855#discussion_r314666348

* Fix #1849 by calling device_global_buffer() unconditionally
2019-08-17 11:01:00 -04:00
guydavid
b02be8c734 Const-correct a LAPACK declaration and add aarch64 as a 64-bit architecture (#1859)
* Added aarch64 to list of 64-bit architechtures

* Const-corrected declaration of ssyevr
2019-08-14 19:29:04 -04:00
notoriousPig
7e70a92765 pybind11: cmake: ignore the check between host-python and cross-compiler (#1848)
When dlib is compiling, cmake will compare python architecture and target
architecture. So in cross-compiling case, it is irrevelant because host and
target architecture often differs. The main problem come from checking python
architecture on host and not on target.

Here is an error when compiling dlib from x86_64 to arm 32-bit target :
```
Python config failure: Python is 64-bit, chosen compiler is 32-bit
```

So :
- Skipping the comparation when cross-compiling is enabled.

Signed-off-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Alexandre PAYEN <alexandre.payen@smile.fr>
2019-07-29 06:57:50 -04:00
Davis King
05cbfc6d64 Fix the CMake BUILDING_PYTHON_IN_MSVC variable not getting picked up where it should. 2019-07-27 09:42:36 -04:00
Davis King
fced3587f1 fixing grammar 2019-07-27 09:03:14 -04:00
Davis King
48b9bf3f93 Fixed cmake warning 2019-07-19 07:12:27 -04:00
Paul Dreik
8a2963d758 fix mismatch between documentation and implementation (#1835) 2019-07-19 06:38:56 -04:00
Davis King
2704f3e26d fixed typo in docs 2019-07-12 07:30:18 -04:00
Davis King
6dec9abffe Added missing include 2019-07-05 11:46:32 -04:00
Davis King
f15e4e58d6 Fixed grammar in comments 2019-07-04 13:54:35 -04:00
Davis King
aee97d9d1d Fixed incorrect return type 2019-06-25 21:33:31 -04:00
Davis King
e2293e5cd1 Push all include and link options needed for dlib to pkg-config. We do this by getting them from the same list cmake uses. 2019-06-09 10:36:15 -04:00
mchelem
5d64de24b3 Fix setting a point's y coordinate changes x instead (Python bindings) (#1795)
* Add point assignment test

* Fix setting points y coordinate changes x instead (issue #1794)
2019-06-08 06:08:45 -04:00
Davis King
22402e99a0 Revert "Fixed pytest broken dependencies"
Apparently pytest is still sort of busted.

This reverts commit 5e63d01544.
2019-06-02 09:36:16 -04:00
Davis King
e0a24e39f2 Fix python setup warnings 2019-06-02 08:40:33 -04:00
Davis King
5e63d01544 Fixed pytest broken dependencies 2019-06-02 08:00:50 -04:00
Davis King
6de82e2417 Added methods for getting keyboard and mouse clicks to image_window's pyhton API. 2019-06-01 09:29:43 -07:00
Facundo Galán
8001b924e6 Add input_grayscale_image_pyramid, issue #354 (#1761)
Add input_grayscale_image_pyramid
2019-05-25 17:18:01 -04:00
Davis King
0ecb49b94e Merge branch 'VirgileD-fix/jpeg' 2019-05-20 19:16:08 -04:00
Davis King
8746c9d371 Stop building parts of libjpeg we don't need. 2019-05-20 19:14:50 -04:00
Davis King
572302d4d4 Disable use of non-memory based backing store in libjpeg. This fixes
libjpeg not being able to open some types of jpeg file.
2019-05-20 19:03:44 -04:00
VirgileD
a40a5c6e1a Adds a comprehensive error message when jpeg loading fails. 2019-05-20 16:47:08 +02:00
virgile devaux
dedb7358ba Feature/upgrade libjpeg (#1769)
* Upgrades dlib's included libjpeg to version 8d

* Overloads load_jpeg to read from memory buffer

* Removes "__inline__" define in jconfig, broke VC build

* Changes buffer size type to size_t
2019-05-17 06:03:01 -04:00
virgile devaux
f0e1d4e471 iEnsures DLIB_FALLTHROUGH macro is only set for GCC>=7 (#1770) 2019-05-16 20:37:11 -04:00
Adrià Arrufat
f584e787b1 Even more warning silencing (#1766)
These warnings occurred when building the semantic segmentation
examples
2019-05-16 06:07:52 -04:00
Adrià Arrufat
f3f1a826da more pedantic silencing (#1763)
* prevent GCC from complaining about this unused parameter
2019-05-14 08:56:21 -04:00
Adrià Arrufat
dbe569a1f1 fix some pedantic warnings (#1756)
* fix some pedantic warnings

* remove unneeded assert
2019-05-05 12:07:51 -04:00
Davis King
3ce7177a17 Make things work in visual studio. 2019-05-04 20:36:42 -04:00