Commit Graph

456 Commits

Author SHA1 Message Date
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
Patrick Snape 86e93291a0 Add __version__ to dlib module
Only issue is that the strong is hardcoded - otherwise
this is actually technically required by PEP 396
2016-02-03 10:59:04 +00:00
Patrick Snape d7cac78757 Allow serilization and printing of shape_predictor_training_options
Add a simple print and serialization scheme for
shape_predictor_training_options. This enables you to serialize
your training options.
2016-02-03 10:58:21 +00:00
Patrick Snape ad882c4a31 Propagate equality operators through to Python
Easy change to allow comparisons on the Python side for
both rectangle and drectangle
2016-02-03 10:57:39 +00:00
Davis King fbd1178047 Made the python modules use SSE4 instructions by default. 2015-09-28 21:47:44 -04:00
Davis King ecdfdea677 Fixed build error due to messed up includes. 2015-08-12 20:15:18 -04:00
Davis King 95887df088 Gave imglab the ability to jump to a specific image via a keyboard command. 2015-07-12 13:50:40 -04:00
Davis King dbc1ea4ddd Added --rmdupes. 2015-07-05 14:36:39 -04:00
Davis King 11e0382238 Added --rmtrunc, made --rmdiff mark a box as ignored rather than
totally removing it, and also made --stats print the number of non-ignored
boxes.
2015-07-04 20:45:07 -04:00
Davis King d6cd6a2ade Fixed a bug that crashed imglab when trying to cluster datasets with empty or
really small boxes.
2015-07-04 20:28:52 -04:00
Davis King 2651becf91 fixed bad input validation 2015-07-04 09:41:34 -04:00
Davis King 0b8e2a99af Added the --rotate option to imglab. 2015-07-04 09:37:02 -04:00
Davis King aa4e230db0 Removed conditional compilation regarding jpeg and png support. It's just
always going to be required for imglab.
2015-07-04 09:15:02 -04:00
Davis King 7aed6b3a84 Added the --cluster option to imglab. 2015-07-03 11:58:59 -04:00
Davis King ad9a9e6efa A minor optimization 2015-07-02 08:27:51 -04:00
Davis King a8568a351b Added the --tile option to imglab. 2015-07-02 08:24:41 -04:00
Davis King c9c3fa17b5 Made max_cost_assignment() give an error if you incorrectly give it a
non-square matrix.
2015-06-18 17:42:43 -04:00
Davis King 5cfff271a1 minor change to avoid compiler warning 2015-05-25 17:32:37 -07:00
Patrick Snape 23343f3de6 Add overlay overload for drectangle
This is useful for visualizing the tracking results.
2015-05-20 12:24:42 +01:00
Patrick Snape 60475dda9b Update docs on corr tracker, return side lobe
Added the missing documentation for the correlation tracker.
Didn't realise that the tracker returned the side lobe ratio,
so fixed the API to return it properly.
2015-05-20 11:52:29 +01:00
Patrick Snape e3c3d39ab1 Add an API for the correlation tracker
This aids an API for the correlation based tracker that Davis
recently added to Dlib. I've made sure to allow overrides for
passing normal rectangles rather than drectangles (which isn't
currently supported in the Dlib C++ API). This is mostly
because I imagine people might initialize the tracking using
something like a bounding box from a detector (e.g.
load_frontal_face_detector).
2015-05-20 11:29:14 +01:00
Patrick Snape c4cf31a746 Preparing for correlation tracker - add drectangle
The correlation tracker deals with the drectangle
(double rectangle) class which currently isn't wrapped. Therefore,
I add the drectangle class and refactor rectangles into their
own file. I also added a load of methods on rectangle that might
be useful such as intersection/contains/area etc.
2015-05-20 10:46:01 +01:00
Patrick Snape 8568c262e9 Incorrect IFDEF name for shape predictor
The word detector didn't make much sense!
2015-05-20 09:37:33 +01:00
Davis King 805aec8d00 updated README 2015-03-29 16:49:00 -04:00
Davis King 03b6fb0b7e updated version number and about docs 2015-03-29 16:44:31 -04:00
Davis King 0209f51a39 clarified documentation 2015-03-29 16:35:23 -04:00
Davis King d1a5815cb9 Added default upsampling amount to detector.run(). Also moved the
new example code into face_detector.py and added some comments.
2015-03-28 23:16:54 -04:00
Davis King 216eb3f30f Merge branch 'py_det_conf_and_idx' of https://github.com/jackculpepper/dlib into jackculpepper-py_det_conf_and_idx 2015-03-28 22:48:19 -04:00
Davis King 2e2a14879b Renamed the lambda variable since it clashes with a python keyword. 2015-03-25 17:45:12 -04:00
Davis King e00f6f63ca Replaced the raw_input() calls with a call into dlib since raw_input() isn't
available in python3.
2015-03-22 18:45:08 -04:00
Jack Culpepper cf0d5a4cb0 simplify 2015-03-12 01:17:40 -07:00
Jack Culpepper a12e1e71fa repair old interface 2015-03-12 08:10:56 +00:00
Jack Culpepper 9b78932ab1 re-arrange, use vector<double> to facilitate pass back to python 2015-03-12 07:39:42 +00:00
Jack Culpepper 154f9e4931 add ability to return detection confidences and weight index to python 2015-03-11 23:23:19 -07:00
Davis King 4bbfe512ae Made the PYTHON3 cmake switch a proper cmake option. 2015-03-07 13:29:23 -05:00
Davis King c335bf6756 Fixed the python doc string so that it's correct relative to the python
API.  Also made find_candidate_object_locations() correctly include any
input boxes in the call to the C++ version of the function.
2015-01-03 23:26:28 -05:00
Vinh Khuc 173bb97f33 Explained the difference between pykvals in the Python API and kvals in C++ code 2015-01-03 15:03:05 -05:00
Vinh Khuc bf06ce7185 Added Python-binding for find_candidate_object_locations 2015-01-03 01:11:52 -05:00
Davis King 1ab3482597 Clarified a few comments and simplified the serialization code a bit.
Also just cleaned up a few minor details.
2014-12-27 15:30:56 -05:00
Patrick Snape 37af35b55e Re-add the cached object detector
A little bit hacky, but should be fine. Supports both fhog
detectors and the "cached" simple_object_detector. Also, maintains
the upscale parameter for testing
2014-12-12 16:22:57 +00:00
Patrick Snape 30869fbe03 Change logic for upsampling printing 2014-12-11 15:00:39 +00:00
Patrick Snape dd19ce846e Update the interface to be more Pythonic
This is the biggest change so far. Now, there are two different
classes of interface. One where you pass ONLY file paths,
and one where you pass ONLY Python objects.

The file paths are maintained to keep a matching interface with
the C++ examples of dlib. So shape predicition and object
detection can be trained using the dlib XML file paths and then
serialize the detectors to disk.

Shape prediction and object detection can also be trained using
numpy arrays and in-memory objects. In this case, the predictor
and detector objects are returned from the training functions.
To facilitate serializing these objects, they now have a 'save'
method.

Tetsing follows a similar pattern, in that it can take either XML
files are or in-memory objects. I also added back the concept of
upsampling during testing to make amends for removing the
simple_object_detector_py struct.
2014-12-11 14:06:05 +00:00
Patrick Snape 8db3f4e572 Add a save method to detectors and predictors
Also, removed the saving of the upsample which I missed from
before (since I'm not using the struct now). I understand why
the upsample was being saved, but I don't necessarily agree it
is particularly useful as you should really be upsampling on
a case by case basis at test time.
2014-12-11 12:34:20 +00:00
Patrick Snape 5b485a628b Properly handle turning the GUI off 2014-12-11 12:05:10 +00:00
Patrick Snape e801bd6ab5 Refactor the GUI code out
I also cleaned up a bunch of code. I'm not sure why the
simple_object_detector was keeping track of the upsample amount,
since it can't even be passed as an argument to the constructor.
Therefore, I removed the simple_object_detector_py and the second
declaration of the hog object detector. I also changed the
view code to optionally take keyword args of color and added
a single view of a rectangle.

Finally, I added viewing of the shape parts.
2014-12-11 11:46:01 +00:00
Patrick Snape 697aecb420 Add rendering of faces (lines)
Can either be a list of full_object_detections or a single
full_object_detection. I couldn't get the vector type to work
for full_object_detection due to a template error.
2014-12-11 10:28:14 +00:00
Patrick Snape 32ad0ffaef Make shape predictor pickleable
Fix typo as well
2014-12-10 18:07:38 +00:00
Patrick Snape e3aee32f34 Add wrappers for the shape predictors
This includes the full_object_detection, a new struct in the same
vein as the simple_object_detector_training_options and of
course, the shape predictor classes themselves.

All of training, fitting and testing are wrapped.
2014-12-10 17:45:51 +00:00
Patrick Snape 315a2b1cb1 Add a new conversion header
This deals with converting python objects to dlib objects
2014-12-10 17:45:51 +00:00
Patrick Snape 68ae858f27 Refactor rgb_pixel out of object detection
Also, move the vectorize template into its own header to
stop having to declare it again in vector.
2014-12-10 17:45:51 +00:00
Patrick Snape c0d0adba13 Add a list of points
Also, change point x and y to be properties
2014-12-10 17:45:51 +00:00
Patrick Snape 85f0c0ffdc Wrap the dlib point for Python 2014-12-10 17:45:51 +00:00
Patrick Snape 70db61c5fb First attempt at adding to the boost API
Exposes the test method, but takes in images and bounding boxes.
Seems fairly simply to extend the API
2014-12-10 17:45:51 +00:00
Davis King cdbc1919d4 more cmake changes to avoid cmake warnings 2014-12-06 08:38:04 -05:00
Davis King db3eaa728b Changed python cmake scrips to have an option to compile Python 3 libraries. 2014-11-26 16:28:52 -05:00
Davis King cc70a8e0fb Merged in Patrick Snape's patch that allows the python bindings to
be built without GUI support.
2014-11-15 09:28:48 -05:00
Davis King c9f24f3da4 upped the imglab version number 2014-08-21 21:27:51 -04:00
Davis King cd71dab3f2 Updated the Python API, train_simple_object_detector() so you can call it
directly on already loaded data rather than needing to use an XML file as
input.
2014-08-12 19:47:41 -04:00
Davis King a6dc296219 Fixed a bug where the imglab tool would sometimes start out with an annoyingly
small window when the first image was bigger than the screen.
2014-07-20 14:47:05 -04:00
Davis King c423283c05 Added set_prior() to the python interfaces of the relevant trainer objects. 2014-05-24 10:18:31 -04:00
Davis King 312157ab18 Added epsilon to the python object detection training API. 2014-03-09 12:10:15 -04:00
Davis King e79a764834 removed cruft 2014-03-08 12:14:24 -05:00
Davis King 2369ae1e57 Made the python object detection tools process color images
in color instead of always converting to grayscale.
2014-03-02 11:19:06 -05:00
Davis King a612c0317d Improved error message. 2014-03-02 11:08:20 -05:00
Davis King 75fbc56c92 Fixed name conflicts that prevented the python bindings from compiling in visual sudio 2013. 2014-03-01 21:42:01 -05:00
Davis King 4a9be7bba5 improved python docs 2014-02-23 16:18:04 -05:00
Davis King 2293c91e00 Cleaned up the new python object detection interface a little. 2014-02-23 16:02:52 -05:00
Davis King 8f6b76e7ca Gave the image_window the ability to display fhog object detectors. 2014-02-23 15:24:22 -05:00
Davis King ddc44067b4 Added a simple python interface for training fhog object detectors. 2014-02-23 14:39:59 -05:00
Davis King 29658c4c76 Minor CLI cleanup 2014-02-22 22:03:49 -05:00
Davis King 89bc542712 fixed grammar in comment 2014-02-22 22:00:07 -05:00
Davis King 017fedcc41 updated about 2014-02-11 20:23:21 -05:00
Davis King 01eaaa563a Made imglab halt at a convenient place when you are using ctrl+key up/down to
auto label boxes.  It will also auto-skip empty images when you hold ctrl.
2014-02-11 20:22:15 -05:00
Davis King aa6919d304 Made --stats print out info on unlabeled boxes. 2014-02-11 20:19:57 -05:00
Davis King a20f401eec Gave imglab the ability to propagate rectangle labels between images. 2014-02-11 19:03:08 -05:00
Davis King 374d5253f8 Updated version number and about string to say that you can now ctrl+left click
to change the label for a rectangle.
2014-02-10 20:40:24 -05:00
Davis King a20f154483 Added a python interface to the fhog_object_detector and related tools. 2014-02-09 12:56:35 -05:00
Davis King ef6a3a05a6 Added a readme file to imglab that gives a little introduction 2014-01-09 22:15:17 -05:00
Davis King 1cf740156d Added --flip to imglab 2013-11-29 22:35:52 -05:00
Davis King 48413ae845 Updated about window text for imglab. 2013-11-22 18:45:06 -05:00