Commit Graph

8262 Commits

Author SHA1 Message Date
Erin
4d5db9940f
Fix crash when libX11 is missing locale support (#2747) 2023-03-23 21:45:30 -04:00
Davis King
806b629035 Make everything work in cmake 3.8 2023-03-23 20:07:48 -04:00
Davis King
b7834324b4 update sphinx config to work with newer versions of python 2023-03-22 22:11:20 -04:00
Davis King
15b2851318 improve docs 2023-03-22 22:02:30 -04:00
Davis King
32ab332989 cleanup docs 2023-03-18 08:28:13 -04:00
Lakshan Rukantha
9d305943bc
removed extra lines in the MANIFEST.in (#2744) 2023-03-17 08:08:18 -04:00
Adrià Arrufat
f89b0388d5
Add optional Python version (#2743) 2023-03-14 20:05:18 -04:00
Davis E. King
93aea6ea9b
Update bug.yml
Make the steps to reproduce required.
2023-03-12 10:13:18 -04:00
Adrià Arrufat
310a37f452
Improve issue template (#2741)
* Create but report template

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Update bug.yml

* Create feature request template

* Update feature.yml

* Update feature.yml

* Update feature.yml

* Remove ISSUE_TEMPLATE

* Create config.yml
2023-03-12 10:07:55 -04:00
cchadowitz-pf
3c0b3620af
Added bottom_up_cluster to python api (#2739)
* Added bottom_up_cluster to python api

* Update tools/python/src/face_recognition.cpp

Co-authored-by: Adrià Arrufat <1671644+arrufat@users.noreply.github.com>

* Update tools/python/src/face_recognition.cpp

Co-authored-by: Adrià Arrufat <1671644+arrufat@users.noreply.github.com>

---------

Co-authored-by: Davis E. King <davis685@gmail.com>
Co-authored-by: Adrià Arrufat <1671644+arrufat@users.noreply.github.com>
2023-03-11 08:16:48 -05:00
Michal Suchánek
398e2cb5be
powerpc/altivec: use __vector instead of vector (#2740)
The gcc altivec extension defines keywords for vector, bool, and pixel,
both with underscores and without. However, unless another extension is
used the keywords without underscores conflict with standard types.

To resolve the conflict use the keywords with underscores for the
altivec vector types.

Fixes: #2711

Signed-off-by: Michal Suchanek <msuchanek@suse.de>
2023-03-11 08:16:15 -05:00
Davis King
257b81a172 update docs 2023-03-01 19:09:47 -05:00
smoosbau
ddad576d3e
fix wrong union calculation in box_overlap_testing.h (#2735)
Co-authored-by: Moosbauer, Sebastian <sebastian.moosbauer@posteo.de>
2023-03-01 19:08:26 -05:00
Adrià Arrufat
eb5de0d534
Add support for loading custom label fonts in imglab (#2733) 2023-02-23 22:34:06 -05:00
pfeatherstone
dc94754607
Fix for #2729 (#2731)
* fixes #2729

* don't commit vscode stuff

* Update ffmpeg_utils.h

typo

---------

Co-authored-by: pf <pf@me>
2023-02-20 20:01:13 -05:00
Adrià Arrufat
e006bfe5e8
Fix typo in input_layer documentation (#2725) 2023-02-10 22:04:22 -05:00
Adrià Arrufat
73a1c2f4fc
Fix unused variable warning in Pybind11 (#2726) 2023-02-10 22:03:47 -05:00
Adrià Arrufat
1958da78da
Rename ffmpeg examples (#2727) 2023-02-10 22:03:25 -05:00
Adrià Arrufat
4519a7a6bd
Add sum method to running stats (#2728) 2023-02-10 22:02:54 -05:00
pfeatherstone
50b33753bb
Strip binaries in release mode (#2721)
* - use add_executable directly
- use target_compile_definitions()
- strip binaries in release mode

* Added a comment

---------

Co-authored-by: pf <pf@me>
Co-authored-by: Davis E. King <davis685@gmail.com>
2023-02-03 17:43:00 -05:00
pfeatherstone
2138915dfe
added DLIB_USE_FFMPEG to config.h.in (#2720)
Co-authored-by: pf <pf@me>
2023-02-03 17:38:30 -05:00
pfeatherstone
9d3ba472dd
FFMPEG wrappers: dlib::ffmpeg::decoder and dlib::ffmpeg::demuxer (#2707)
* - added ffmpeg stuff to cmake

* - added observer_ptr

* ffmpeg utils

* WIP

* - added ffmpeg_decoder

* config file for test data

* another test file

* install ffmpeg

* added ffmpeg_demuxer

* install all ffmpeg libraries

* support older version of ffmpeg

* simplified loop

* - test converting to dlib object
- added docs
- support older ffmpeg

* added convert() overload

* added comment

* only register stuff when API not deprecated

* - fixed version issues
- fixed decoding

* added tests for ffmpeg_demuxer

* removed unused code

* test GIF

* added docs

* added audio test

* test for audio

* more tests

* review changes

* don't need observer_ptr

* made deps public. I could be wrong but just in case.

* - added some static asserts. Some areas of the code might do memcpy's on arrays of pixels. This requires the structures to be packed. Check this.
- added convert() functions
- changed default decoder options. By default, always decode to RGB and S16 audio
- added convenience constructor to demuxer

* - no longer need opencv

* oops. I let that slip

* - made a few functions public
- more precise requires clauses

* enhanced example

* - avoid FFMPEG_INITIALIZED being optimized away at link time
- added decoding example

* - avoid -Wunused-parameter error

* constexpr and noexcept correctness. This probably makes no difference to performance, BUT, it's what the core guidelines tell you to do. It does however demonstrate how complicated and unecessarily verbose C++ is becoming. Sigh, maybe one day i'll make the switch to something that doesn't make my eyes twitch.

* - simplified metadata structure

* hopefully more educational

* added another example

* ditto

* typo

* screen grab example

* whoops

* avoid -Wunused-parameter errors

* ditto

* - added methods to av_dict
- print the demuxer format options that were not used
- enhanced webcam_face_pose_ex.cpp so you can set webcam options

* if height and width are specified, attempt to set video_size in format_options. Otherwise set the bilinear resizer.

* updated docs

* once again, the ffmpeg APIs do a lot for you. It's a matter of knowing which APIs  to call.

* made header-only

* - some Werror thing

* don't use type_safe_union

* - templated sample type
- reverted deep copy of AVFrame for frame copy constructor

* - added is_pixel_type and is_pixel_check

* unit tests for pixel traits

* enhanced is_image_type type trait and added is_image_check

* added unit tests for is_image_type

* added pix_traits, improved convert() functions

* bug fix

* get rid of -Werror=unused-variable error

* added a type alias

* that's the last of the manual memcpys gone. We'using ffmpeg API everywhere now for copying frames to buffers and back

* missing doc

* set framerate for webcam

* list input devices

* oops. I was trying to make ffmpeg 5 happy but i've given up on ffmpeg v5 compatibility in this PR. Future PR.

* enhanced the information provided by list_input_devices and list_output_devices

* removed vscode settings.json file

* - added a type trait for checking whether a type is complete. This is useful for writing type traits that check other types have type trait specializations. But also other useful things. For example, std::unique_ptr uses something similar to this.

* Davis was keen to simply check pixel_traits is specialised. That's equivalent to checking pixel_traits<> is complete for some type

* code review

* juse use the void_t in dlib/type_traits.h

* one liners

* just need is_image_check

* more tests for is_image_type

* i think this is correct

* removed printf

* better docs

* Keep opencv out of it

* keep old face pose example, then add new one which uses dlib's ffmpeg wrappers

* revert

* revert

* better docs

* better docs

---------

Co-authored-by: pf <pf@me>
2023-01-29 20:17:34 -05:00
pfeatherstone
16a8a46a35
Fixed is_nothrow_swappable<> and simplified invoke-related type traits (#2716) 2023-01-29 13:13:00 -05:00
pfeatherstone
b9ac468169
Added bind_front() and bind_back() (#2705)
* Added bind_front()

* - Added bind_back()
- moved contents of invoke.h into functional.h
- invoke.h just includes functional.h
- added tests

* though it doesn't make a difference, use correct header

* add docs

* Give this a try. Might make gcc7 happy

* workaround for gcc7 bug

Co-authored-by: pf <pf@me>
Co-authored-by: Davis King <davis@dlib.net>
2023-01-04 07:38:36 -05:00
Davis E. King
1ce7b9cbc5
Run unit tests with gcc 7 too (#2706) 2023-01-03 10:13:54 -05:00
Davis King
a12824d425 update example to refer to newer dlib version 2022-12-15 22:15:18 -05:00
Julien Schueller
2ac3cdbad7
CMake: Make dependencies private (#2697)
* CMake: Private dependencies

Closes #2694

* Fix build error

Co-authored-by: Davis King <davis@dlib.net>
2022-12-15 22:13:19 -05:00
Davis King
f932f33b10 Fix incorrect xml blocks for leaky_relu and smelu 2022-12-09 08:10:25 -05:00
mattbn
2efc172c46
removed extra '<' in fc, added '\n' in layers/inputs/losses XML strings (#2698) 2022-12-09 08:08:11 -05:00
Adria Arrufat
02330e0a15
Fix GitHub actions on Windows because of CMake 3.25.0 (#2692) 2022-11-28 20:10:47 -05:00
Julien Schueller
01c7bfe880
Fix build on ppc64/mips64 (#2689) 2022-11-27 22:25:22 -05:00
Davis E. King
4d38ffa082
Suppress incorrect warning from gcc (#2691) 2022-11-27 22:23:29 -05:00
Michał Walenciak
136b2d9e5c
Reset last cuda error (#2685)
as error is handled here (exception is being thrown), we do not
want cudaGetLastError() to return any errors.
2022-11-12 12:57:38 -05:00
Davis King
05d3f6eb17 Disable mac os x python test config since something in the environment is not working properly. 2022-11-09 22:11:57 -05:00
Adria Arrufat
e5b2cedff8
Improve the data augmentation in the SSL example (#2684)
I was using the data augmentation recommended for the ImageNet dataset, which is not well suited
for CIFAR-10.
After doing so, the test accuracy increased by 1 point.
2022-11-09 22:07:00 -05:00
Davis King
3d5fb6fc7f Add an informative comment 2022-11-08 21:50:19 -05:00
Adria Arrufat
bdb1089ae6
Fix computation of the Barlow Twins loss gradient (#2680) 2022-11-02 07:55:58 -04:00
Adria Arrufat
7f06f6e185
Fix empirical cross-correlation computation in the SSL example (#2679)
I was using the normalized features za as both matrices, instead of za and zb.
I noticed this because the empirical cross-correlation matrix was symmetrical,
which is not supposed to.  It does not affect anything, as it was computed
properly in the loss.
2022-10-31 19:52:24 -04:00
pfeatherstone
1bebccfb87
Type erasure tooling (#2666) 2022-10-08 21:36:54 -04:00
pfeatherstone
dd1ec1fcff
Miscellaneous cleanup and refresh (#2661)
* - moved for_each_in_tuple() to algs.h. Seems like a better place
- took the opportunity to deprecated the old type traits and make them aliases to things in the standard library

* - made bools() constexpr

* - removed ugly template recursion version of for_each_in_tuple(). Recursion is bad and is one of the reasons why buid times are so long.
- Use generic lambdas. Much better.

* - missing include

* - just make old deprecates stuff aliases to standard library things
- use switch_() for compile time branching. It's awesome. It means less code and less templates.

* - fixed make_compile_time_integer_range. Didn't realize it counted like Matlab. Very weird

* - nice example usage of switch_(). it will be trivially updated to if constexpr() in a couple years when dlib requires C++17

* - deduce return type
- use generic lambdas

* - for some reason these have to specify the return type. I don't understand. Will fix in a bit.

* - yet another template recursion removed. Better compile times in theory. Every little helps

* whoops

* use decay_t

* - type traits go in type_traits.h
- things found in <utility> go in utility.h
- algs.h doesn't contain any type traits. It just includes type_traits.h

* only need type_traits.h header

* use fold expressions if possible

* use is_any from type_traits.h

* - moved is_convertible to type_traits.h. Also make it an alias for std::is_convertible

* moved is_convertible

* use type traits in standard library

* - use standard library

* use standard library

* MSVC bug workaround

* missing dlib namespace

* fix typo

* - reverting back compile_time_integer_list and make_compile_time_integer_range

* - making sure nothing uses compile_time_integer_list or make_compile_time_integer_range

* - added pop_front for index_sequence
- making sure nothing uses compile_time_integer_list or make_compile_time_integer_range
- use auto

* - use integer_sequence

* - added docs for get_type_id(tag)

* - use __type_pack_element if available

* - hmm, reverting, some pre-processors break here. Don't know why.

Co-authored-by: pf <pf@me>
2022-09-19 08:18:39 -04:00
Davis King
20b6c17e7f fix typo in docs 2022-09-11 16:42:26 -04:00
kxc-waddlaw
90a8be6400
add missing palette_neon_intrinsics.c file (#2664) 2022-09-09 19:39:49 -04:00
Adrià Arrufat
19507d4a00
Modernize random_color_transform (#2665)
* Modernize random_color_transform

* Remove temporary variables

* formatting
2022-09-09 19:31:19 -04:00
Adrià Arrufat
e50987df4d
Fix visitor when tag layer is followed by skip layer (#2662) 2022-09-05 16:00:46 -04:00
Adrià Arrufat
65bce59a15
Update Pybind11 to v2.10.0 (#2660)
* Update Pybind11 to v2.10.0

* Update numpy_image to work with latest Pybind11

* I don't know why I have to do this now...

* Try to make macOS use Python3... Really?

* Try to make macOS use Python3... Again

* Try to make macOS use Python3... Once more

* Install dependencies with pip3
2022-09-05 15:59:19 -04:00
Davis King
efe46ce76a Add missing include 2022-09-01 08:52:55 -04:00
pfeatherstone
4db03ee6fd
if constexpr() for C++14 (#2654)
* - Use C++14 library stuff if possible

* Added a C++14 of if constexpr(). I think it's pretty great. Very similar to hana::if_

* - added some example usages

* - added is_detected
- added more tests

* - fix

* - fix

* - much better. thanks Davis

* - fix

* - fix

* - fix

* - Davis, I think you were wrong. Here, everything breaks without the _ function

* - Fixed but docs suck

* - use C++14 stuff

* - put function body after docs

* - docs maybe slightly better but still suck

* - badly placed brace

* - maybe slightly better English

* - better API i think

Co-authored-by: pf <pf@me>
2022-09-01 08:34:32 -04:00
Adrià Arrufat
902c70193a
Do the bias addition in the convolution in a separate call (#2656)
* Do the bias addition in the convolution in a separate call

Fixes #2655.
Somehow, doing it in a single call is slower.

* Grammar

* The change should be this, really
2022-09-01 07:39:19 -04:00
Adrià Arrufat
da2f45b2e5
Add test for libwebp at configure time (#2658) 2022-08-29 10:55:36 -04:00
Adrià Arrufat
9b8f5d88f8
Small YOLO loss improvements (#2653)
* Small YOLO loss improvements

* Refactor iou_anchor_threshold logic

* Simplify iou_anchor_threshold logic a bit more

* Be more robust in the iou_anchor_threshold check
2022-08-25 21:35:24 -04:00