Commit Graph

435 Commits

Author SHA1 Message Date
Davis King
52322e5ae2 Made convert_to_numpy() take an rvalue reference so that it's really explicit
that it's going to move the matrix into the result.
2018-04-17 22:58:13 -04:00
visionworkz
e8faced822 Add basic image io and remove python C-API refs from numpy_returns.cpp (#1258)
* Fixed reference count issue

* Fixed refcount issue in Python dlib.jitter_image and dlib.get_face_chips

* Consolidation of https://github.com/davisking/dlib/pull/1249

* Fixed build issue

* Fixed: Paths in a pytest file should be relative to dlib root

* Skip numpy return tests for Python 2.7 or if Numpy is not installed

* Enabled numpy returns tests on Python 2.7 using cPickle.dumps
2018-04-17 22:49:25 -04:00
visionworkz
509d62351e Fixed refcount issue in Python dlib.jitter_image and dlib.get_face_chips (#1246)
* Fixed reference count issue

* Fixed refcount issue in Python dlib.jitter_image and dlib.get_face_chips
2018-04-10 09:29:08 -04:00
Davis King
24ac9bc43f A bit of cmake cleanup 2018-04-06 17:43:49 -04:00
visionworkz
0db8713a6d Fixed reference count issue (#1222) 2018-03-31 07:38:52 -04:00
Davis King
60a4af67e8 Added more unit tests 2018-03-17 17:10:44 -04:00
Davis King
2cff3f4e00 Added a note about disabling LTO 2018-03-17 17:10:31 -04:00
Davis King
3e781f6f61 Added interface to the global_function_search object. 2018-03-17 17:00:08 -04:00
Davis King
49ec319ce4 Added rect_filter and find_optimal_rect_filter() to python API. 2018-03-03 18:45:16 -05:00
Davis King
1c26be904c Added operator + support for dlib.rectangle. 2018-03-03 17:21:23 -05:00
Davis King
09f36dbf47 Added python interface to cuda::set_device() and other relevant
functions.
2018-02-21 21:51:48 -05:00
Davis King
a37c5e7c2b Add the example program contents as a test as well. 2018-02-19 13:31:07 -05:00
Morten Hustveit
9691c194c0 Added support for variadic Python functions in find_max_global. (#1141)
* Added support for variadic Python functions in find_max_global.

* Add test for find_{min,max}_global on variadic functions.
2018-02-19 13:26:45 -05:00
Davis King
87aa290c04 Fixed pybind11 not doing the overload resolution correctly on the cnn_face_detector's operator() in Python. 2018-02-14 22:01:22 -05:00
Davis King
ca1c7af21b Added missing , in output 2018-02-13 19:09:54 -05:00
HarveyBrezinaConniffe
46e85e45c6 Added set_dnn_prefer_smallest_algorithms() (#1128)
* Added set_dnn_prefer_smallest_algorithms()

* Added description for set_dnn_prefer_smallest_algorithms();w

* Changed architectures to algorithms.
2018-02-13 16:28:46 -05:00
Davis King
52edc0d2e7 Fixed incorrect input validation. 2018-02-11 22:40:30 -05:00
Davis King
0040eb7fa8 removed debugging print statement. 2018-02-11 22:38:27 -05:00
Davis King
aca8087371 Added num_threads to shape_predictor_training_options. 2018-02-11 18:15:40 -05:00
Davis King
2a26521b0b - Added rectangless.
- Moved all uses of PYBIND11_MAKE_OPAQUE to a common header to avoid possilbe ODR violations.
- Added python binding for make_bounding_box_regression_training_data().
2018-02-11 17:19:04 -05:00
Davis King
5bde5c526e Made the index outputs of run_multiple_rect_detectors be integers rather than doubles. 2018-02-10 17:12:13 -05:00
Davis King
2d3dd3c830 Exposed the image_dataset_metadata routines for parsing XML datasets to Python. 2018-02-10 12:44:39 -05:00
Davis King
8fd9c26f6e Made dlib.point() have writable x and y properties. 2018-02-10 12:37:14 -05:00
Davis King
fa39e51864 Added a __time_compiled__ field to the python API. 2018-02-10 10:08:25 -05:00
Davis King
95bce7a10c Added probability_that_sequence_is_increasing() to python API 2018-02-03 18:18:45 -05:00
Davis King
7481ef1e21 Fixed problems in python doc generation. 2018-02-03 12:13:54 -05:00
Davis King
2885394359 Let pybind11 produce nice documentation. 2018-02-03 09:13:27 -05:00
ksemb
14cbb804a9 Add Python rvm_trainer and init functions (#1100) 2018-02-02 06:14:03 -05:00
Davis King
989e72e05a Added global properties that tell how dlib was compiled. 2018-01-22 07:36:53 -05:00
Davis King
0cfef582ca Fixed the code ignoring the angle scan, oops. 2018-01-19 18:48:25 -05:00
Davis King
2a2bc9cef1 Different versions of python disagree on what exception gets thrown. So just
check for any exception.
2018-01-16 21:26:56 -05:00
Davis King
99b0f687b4 Fixed test to really work if numpy isn't installed. 2018-01-16 21:00:54 -05:00
Davis King
a9ca83d228 Disable these tests if numpy isn't installed 2018-01-16 20:14:37 -05:00
Davis King
28f9111901 Fixed simd warning message not working. 2018-01-16 19:23:08 -05:00
Davis King
9e3b19c859 Added warning about simd instructions 2018-01-16 07:26:46 -05:00
Davis King
635747e654 Cleaned up setup.py and the python cmake script. 2018-01-16 07:24:47 -05:00
Davis King
1e051f1a60 Made test work in python3 2018-01-15 22:29:37 -05:00
Mischan Toosarani-Hausberger
077a3b60e7 Replace boost::python with pybind11 (#1040)
* Replace boost::python with pybind11

* Replace add_python_module with pybind11_add_module

* Fix clang error on type-dependent expression
2018-01-15 14:41:40 -05:00
Davis King
c68bb4e785 Changed the behavior of imglab's --flip option. It will now attempt to adjust
any object part labels so that the flipped dataset has the same average part
layout as the source dataset.  I added a --flip-basic that behaves like the old
--flip.  However, most people flipping a dataset with part annotations will
want to use --flip.
2018-01-14 09:16:50 -05:00
Davis King
c13ca8ebe7 Just moved code around to clean things up a little. 2018-01-13 14:36:55 -05:00
Davis King
ced9f6f407 Make the global optimizer work in python3 2017-12-19 22:24:31 -05:00
Davis King
d5097f72db Added python bindings for count_steps_without_decrease() and count_steps_without_decrease_robust() 2017-12-12 21:57:04 -05:00
Davis King
be8269900c The previous commit broke for pyhton2 but fixed python3. This should deal with
numpy's import_array() in a more robust way.
2017-12-09 20:52:07 -05:00
Davis King
7b38ea6f2d Numpy's import_array() macro in python3 requires the calling function to return
void*.  But the previous code didn't so it wouldn't compile.  Fixed that
problem.
2017-12-09 19:51:20 -05:00
Davis King
4ff442324b cleaned up cmake 2017-12-08 10:09:30 -05:00
visionworkz
ac292309c1 Exposed jitter_image in Python and added an example (#980)
* Exposed jitter_image in Python and added an example

* Return Numpy array directly

* Require numpy during setup

* Added install of Numpy before builds

* Changed pip install for user only due to security issues.

* Removed malloc

* Made presence of Numpy during compile optional.

* Conflict

* Refactored get_face_chip/get_face_chips to use Numpy as well.
2017-12-08 09:59:27 -05:00
Davis King
95d16fd05e Added a missing assert. 2017-12-05 15:10:41 -05:00
Davis King
5e8e997bf7 Added python interface to find_min_global() 2017-12-02 08:55:02 -05:00
Davis King
c3f2c1dfcb Added a python interface to find_max_global() 2017-11-25 10:07:00 -05:00
hannometer
2f531f1175 imglab: select next/previous image with 's' and 'w' (#964)
* imglab: select next/previous image with 's' and 'w'

* imglab: make 'w' and 's' keys behave like UP and DOWN keys; add 'about' text
2017-11-22 05:42:15 -05:00
Davis King
8b5c04d075 Updated code to work with new regression test output. 2017-11-10 17:42:40 -05:00
Davis King
1e877b1917 Changed graph construction for chinese_whispers() so that each face is always
included in the edge graph.  If it isn't then the output labels from
chinese_whispers would be missing faces in this degenerate case.  So basically this fixes a bug
where chinese_whispers(), when called from python, would sometimes return a labels array
that doesn't include labels for all the inputs.
2017-10-27 19:30:58 -04:00
Davis King
aa93c8f861 Updated python code to use the new dlib::jitter_image() instead of hacking it
out of the random_cropper.
2017-10-25 05:42:31 -04:00
Davis King
38a2846dda More cmake cleanup 2017-10-16 21:36:18 -04:00
Davis King
5b4206f97c Suppress compiler warnings 2017-10-16 21:34:00 -04:00
Hung-Wei Chiu
ea9aae0f5f Fix warning (#851)
* remove unused variable

* modify variable type from int to size_t

* fix previous delete, we need to call chinese_whispers here but we don't need its result now
2017-09-29 11:20:11 -04:00
Varun Chatterji
5f26972551 Added code to get face_chip images.. 2017-09-19 13:08:51 +08:00
Varun Chatterji
9fe352d696 Added size and padding as optional parameters 2017-09-18 19:54:26 +08:00
Davis King
532552627a Cleaned up code and comments.
In particular, these new functions don't need to be inside the face
recognition class.  So I moved them out.  I also fixed many incorrect
copy/pasted comments and clarified parts of the example code.
2017-09-16 14:53:11 -04:00
Davis King
5cf80dda6a Merge branch 'master' of git://github.com/visionworkz/dlib into visionworkz-master 2017-09-16 14:18:44 -04:00
Davis E. King
0f8b227e47 Fixed typo in comment 2017-09-15 21:02:39 -04:00
Davis King
fb5cae063b Added this program for historical reference. 2017-09-15 20:20:08 -04:00
Davis King
f84194f643 Upgraded face recognition input validation checks to allow use of 5 point face
landmarking models.
2017-09-15 19:56:38 -04:00
Varun
93a1aba096 Added threshold to clustering call 2017-09-10 06:15:42 +08:00
Davis King
85c94dc1e4 removed extraneous print statement. 2017-09-07 19:11:18 -04:00
Visionworkz
8b48c09c7b Added face clustering example to Python API 2017-09-06 02:05:42 +08:00
Davis King
14ae224ecd Made it so you can press END or i to ignore boxes in imglab. I did this
because it's a much less stressing hand motion to hit END that i in most cases.
2017-09-03 12:54:18 -04:00
Davis King
972bf3c46b Made the box colors in imglab spread more evenly over the color space. 2017-09-01 17:38:41 -04:00
Guillaume Ramé
bbf3d987b2 improvements to cnn face detection python interface (#780)
* improvements to cnn face detection interface

* mmod rectangle object renaming. possibility to set batch size in multi image detection. Added check to make sure images are all the same size.
2017-08-27 18:40:31 -04:00
Davis King
678728dc23 Made imglab --cluster ignore ignored boxes when doing all aspects of clustering. 2017-08-25 22:29:40 -04:00
Davis King
30ca8b4228 Fully qualified boost::python::list to hopefully avoid compiler errors in some environments. 2017-08-24 18:41:07 -04:00
Davis King
ba430be591 Make DLIB_ASSERT statements not abort the python interpreter, but just trigger an exception. 2017-08-19 08:48:48 -04:00
Adam Geitgey
b6d2329c5e Add a python wrapper for using the mmod face detector (#753) 2017-08-18 16:30:33 -04:00
Davis King
e7fe423bc4 Added --sort and also the ability to propagate boxes from one image to the
next using dlib::correlation_tracker.
2017-07-18 22:19:29 -04:00
Davis King
39be45ada2 Made is so pressing e in imglab toggles between views of the image where the
histogram is equalized or unmodified.  This way, if you are looking at
particularly dark or badly contrasted images you can toggle this mode and maybe
get a better view of what you are labeling.
2017-06-19 20:54:45 -04:00
Davis King
ba72c2f95c Updated code to work with new random_cropper interface. 2017-06-18 08:11:54 -04:00
Davis King
74fbca45ca Changed the converter so that, rather than producing one python file with
everything in it, it now makes a python file as before but an additional binary
file with all the weights in it.  This way, if you are working with a network
with a very large number of weights you won't end up with a crazy large python
script.
2017-06-04 10:06:44 -04:00
Davis King
88383a848b Made the converter handle caffe's odd pooling layer output size calculations. 2017-05-28 11:07:02 -04:00
Davis King
a88f1bd8f2 Made the converter add zero padding layers when needed by Eltwise to replicate
the behavior of dlib's add_prev layers.
2017-05-24 07:24:12 -04:00
Davis King
984b694962 Made error message slightly better. 2017-05-22 19:11:00 -04:00
Davis King
cbda2b9e33 Changed caffe converter to require the user to specify the input tensor size
when the converter is run.
2017-05-22 19:06:55 -04:00
Davis King
10d3f93333 Dlib and caffe actually do use max pooling layers with padding in the same way.
So I just removed the error check that was preventing the conversion from
proceeding in that case.  I also added more useful output messages about
setting input tensor dimensions.
2017-05-19 20:16:40 -04:00
Davis King
fe3e86a186 Fixed spelling error 2017-05-07 19:40:42 -04:00
Davis King
c479219811 Renamed file 2017-05-07 19:08:41 -04:00
Davis King
2f74b3a03a Improved example python script 2017-05-07 19:07:18 -04:00
Davis King
84d54e2ff4 Added more comments 2017-05-07 17:16:08 -04:00
Davis King
16cd104b1d Fixed affine_fc and clarified error message. 2017-05-07 16:57:34 -04:00
Davis King
c41b30a8e6 Added missing sig and prelu layer support. 2017-05-07 16:23:35 -04:00
Davis King
af40aa1b0a Cleaned up how the output is output. 2017-05-07 15:49:19 -04:00
Davis King
7494f51d9a Added support for all the other dlib layers that make sense. 2017-05-07 15:26:18 -04:00
Davis King
99b06476c9 Added a simple tool to convert dlib model files, which are saved as XML files,
to caffe models.  Not all layers are supported yet, but it works on the net
from the first dlib dnn example program.  Will add the rest of the layers soon.
2017-05-06 15:02:38 -04:00
Davis King
e0a1437670 Made the title bar show the current image's number. 2017-03-30 10:43:49 -04:00
Davis King
e73b9e3aa9 Changed from ctrl to alt because otherwise it's easy to accidentally hit ctrl up and jump when you don't meant to while pruning an image list. 2017-03-27 21:00:37 -04:00
Davis King
a1d42b2552 Changed to ctrl+d since it's easier to press. 2017-03-27 20:13:39 -04:00
Davis King
fad836df23 Made it so you can remove images by pressing ctrl+r. 2017-03-27 20:11:04 -04:00
Davis King
072c9d9d4d Fixed cmake file to correctly enable C++11 by default. 2017-03-09 20:14:42 -05:00
Davis King
84cd330c70 Upped imglab version number 2017-03-04 07:58:55 -05:00
Davis King
cf66f6b1b0 clarified documentation 2017-03-01 05:26:22 -05:00
Davis King
655b7f7fd1 Switched cmake link names to dlib::dlib 2017-02-28 05:05:25 -05:00
Alain Vaucher
b41455fd26 Change minimum CMake version that supports the introduced features 2017-02-27 18:23:28 +01:00
Davis King
c182adbf4b Added a python interface to the face recognition DNN model. 2017-02-12 20:37:18 -05:00
Davis King
bdbf7bb8da Fixed documentation 2017-01-25 06:59:08 -05:00
Frank
7ef7ba84b3 Fix imglab readme typo in cd path (#400) 2017-01-16 11:47:06 -05:00
Avi Haiat
23785d5342 Expose python binding for running multiple detectors at once (#328)
* Expose python binding for running multiple detectors at once

* Remove unwanted typedef
2016-11-12 07:54:48 -05:00
Avi Haiat
85e2bcce02 Add option --rm-other-labels to imglab (#323)
* Add option --rm-other-labels to imglab

* Add support for comma separated list of labels
2016-11-09 20:36:52 -05:00
Davis King
85d421c356 Added --rmignore 2016-10-16 19:51:19 -04:00
Davis King
0848616d99 Improved xml logging for --resample 2016-10-16 16:21:28 -04:00
Davis King
f8fcfcd0b4 removed --extract-chips 2016-10-16 16:19:24 -04:00
Davis King
968322bcf8 Fixed confusing -h docs 2016-10-16 16:10:44 -04:00
Davis King
ae88702ba6 Added --jpg and --one-object-per-image. 2016-10-16 16:09:06 -04:00
Davis King
740f5753ce Removing mltool since I'm pretty sure no one uses it and it might even cause
user confusion.
2016-10-09 23:29:20 -04:00
Eugene
2a0b461926 fixed warning about unsigned-signed comparison in imgtool (#258) 2016-09-28 21:15:25 -04:00
Davis King
d41613d7cb Added --sort-num-objects and cleaned up code slightly. 2016-09-28 21:01:49 -04:00
Davis King
55a74bbaac merged 2016-09-28 09:30:48 -04:00
Davis King
0614700358 Fixed --cluster not working with relative paths. 2016-09-28 09:28:40 -04:00
Davis King
28a5512b64 Added --rmlabel and --rm-if-overlaps. Also changed the behavior of --split so that
it simply partitions the data and is an invertible operation.
2016-09-26 20:50:54 -04:00
Davis King
a2c152e8f1 Made --cluster skip empty images 2016-09-18 11:54:12 -04:00
Davis King
b040e65414 Improved CLI for --resample 2016-09-18 09:37:23 -04:00
Davis King
5940c7169c Fixed a bug in --cluster where it would output xml files with empty entries
if the input xml file contained unannotated images.
2016-09-18 09:09:39 -04:00
Davis King
863fa38439 Fixed getting cli warning message when gui closed. 2016-09-17 15:19:52 -04:00
Davis King
55c4ba531e Made imglab's --resample not skip objects near the edge of the image. 2016-09-17 09:12:33 -04:00
Davis King
f761ad5885 Added message about -h 2016-09-16 19:45:06 -04:00
Davis King
59d7df9ab4 Added --rmempty to imglab 2016-09-16 06:46:35 -04:00
Davis King
29467871b0 Made this script more robust 2016-09-12 20:00:37 -04:00
Davis King
f81359f160 Added --min-object-size option to imglab. 2016-09-07 21:12:01 -04:00
Davis King
1842d866ed Changed imglab --resample so that it never changes the aspect ratio of an
image.
2016-09-04 12:01:49 -04:00
Davis King
285bba7646 Fixed dlib.range's iterator interface to work in python 3. 2016-08-14 09:12:51 -04:00
Davis King
70eecbd6b0 Fixed compiler error on ubuntu 16.04 2016-08-13 09:03:16 -04:00
Davis King
48507ab590 Fixed grammar. 2016-08-13 09:02:57 -04:00
Davis King
bc4b2814af Fixed silly typo in script 2016-07-31 09:49:21 -04:00
Davis King
f2088e832b removed excessive error checking 2016-07-31 09:46:10 -04:00
Davis King
6402a37458 Made --resample use a 64bit hash of the image data
in the file names to make it so there won't ever be any name conflicts
in the cropped images.
2016-07-31 09:11:52 -04:00
Davis King
7c828d0812 Added some scripts that help with imglab XML file management. 2016-07-30 18:33:50 -04:00
Davis King
f77ca0c754 Added --files 2016-07-30 17:19:20 -04:00
Davis King
26c727c79e Added --ignore option. Also improved how scale jittering happens in --resample,
now the output images are always the same dimensions but the objects scale changes.
2016-07-30 14:34:53 -04:00
Davis King
5f48afc5b8 Improved --extract-chips and --resample a bit. 2016-07-21 22:32:25 -04:00
Davis King
0997460820 Added --extract-chips option to imglab. 2016-07-04 12:19:50 -04:00
Davis King
27440b6cbb Fixed bugs in the new --resample option 2016-07-04 08:35:45 -04:00
Davis King
1e50156ea1 Added the --resample option 2016-07-03 19:26:49 -04:00
Davis King
4de8678b57 Moved the auxiliary cmake into a common folder.
--HG--
rename : dlib/add_global_compiler_switch.cmake => dlib/cmake_utils/add_global_compiler_switch.cmake
rename : dlib/add_python_module => dlib/cmake_utils/add_python_module
rename : dlib/cmake_find_blas.txt => dlib/cmake_utils/cmake_find_blas.txt
rename : dlib/dlib.pc.in => dlib/cmake_utils/dlib.pc.in
rename : dlib/dlibConfig.cmake.in => dlib/cmake_utils/dlibConfig.cmake.in
rename : dlib/release_build_by_default => dlib/cmake_utils/release_build_by_default
rename : dlib/tell_visual_studio_to_use_static_runtime.cmake => dlib/cmake_utils/tell_visual_studio_to_use_static_runtime.cmake
rename : dlib/dnn/test_for_cpp11/CMakeLists.txt => dlib/cmake_utils/test_for_cpp11/CMakeLists.txt
rename : dlib/dnn/test_for_cpp11/cpp11_test.cpp => dlib/cmake_utils/test_for_cpp11/cpp11_test.cpp
rename : dlib/dnn/test_for_cuda/CMakeLists.txt => dlib/cmake_utils/test_for_cuda/CMakeLists.txt
rename : dlib/dnn/test_for_cuda/cuda_test.cu => dlib/cmake_utils/test_for_cuda/cuda_test.cu
rename : dlib/dnn/test_for_cudnn/CMakeLists.txt => dlib/cmake_utils/test_for_cudnn/CMakeLists.txt
rename : dlib/dnn/test_for_cudnn/find_cudnn.txt => dlib/cmake_utils/test_for_cudnn/find_cudnn.txt
rename : dlib/use_cpp_11.cmake => dlib/cmake_utils/use_cpp_11.cmake
2016-06-28 20:17:03 -04:00
nxwhite-str
b53e9cf010 Add detection threshold adjustment to object detection python interface (#140)
* Add cmake option to use external libjpeg on Mac OS

* Add adjust_threshold to python object detector

* Add cmake option to use external libjpeg on Mac OS

* Add adjust_threshold to python object detector

* Revert "Add cmake option to use external libjpeg on Mac OS"

This reverts commit 01f7fd13ea.

* Update detector example to set adjust_threshold
2016-06-22 21:17:16 -04:00
Davis King
32d6211052 Made imglab assign a random color to boxes with labels. 2016-06-10 20:52:10 -04:00
Davis King
738b4d36af Made imglab show the name of the current image in the title bar. 2016-05-31 06:45:02 -04:00
Davis King
58496f9f8a Added Johannes Huber's natvis file for visual studio. 2016-05-20 08:29:39 -04:00
Davis King
bf7fdb6394 merged 2016-03-30 06:44:25 -04:00
Evgeniy Fominov
2e002ac2da Python/Simple object detector trainer. Added upsample_limit option 2016-03-30 10:37:03 +03:00
Davis King
f169133b6c Made imglab look for gif files when scanning folders for images. 2016-02-13 05:26:56 -05:00
Davis King
6b064d3584 Made the python __version__ field come from the DLIB_VERSION macro set by
CMake.
2016-02-03 08:32:59 -05:00
Davis King
fcf80e1dd0 merged 2016-02-03 08:24:37 -05:00
Davis King
96e9129105 Made the python build get a DLIB_VERSION macro defined. Also cleaned up cmake
a little bit.
2016-02-03 08:24:11 -05:00