Commit Graph

146 Commits

Author SHA1 Message Date
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
Davis King
647285e808 Updated imglab so it loads and stores the new ignore option from the gui
to/from the xml files.
2013-11-21 20:40:12 -05:00
Davis King
5edb5662e0 Added the --add option to the imglab tool. 2013-11-16 16:28:13 -05:00
Davis King
309902b81a clarified specs 2013-09-21 15:18:29 -04:00
Davis King
6fc0d8f608 Moved python C++ utility headers into dlib/python and updated
#include statements to reflect this move.

--HG--
rename : tools/python/src/boost_python_utils.h => dlib/python/boost_python_utils.h
rename : tools/python/src/pyassert.h => dlib/python/pyassert.h
rename : tools/python/src/serialize_pickle.h => dlib/python/serialize_pickle.h
2013-09-01 13:15:04 -04:00
Davis King
0eb8296872 Added missing #include and inclusion guard 2013-09-01 13:05:29 -04:00
Davis King
8da213ccc2 Made len() work on dlib.range objects. 2013-09-01 13:03:33 -04:00
Davis King
a09a8f6a95 Added more python doc strings 2013-08-09 11:56:06 -04:00
Davis King
c9bdb9b2da Added python bindings for the max_cost_assignment() and assignment_cost() routines. 2013-08-09 11:23:38 -04:00
Davis King
b68e5a37fb Added functions for easily converting between python list objects and std::vector. 2013-08-09 11:23:05 -04:00
Davis King
a9fd939c82 Added another matrix constructor. Now we can construct from python lists. 2013-08-09 11:00:40 -04:00