Commit e5415b70 authored by Amir MOHAMMADI's avatar Amir MOHAMMADI

[docs] make sure docs are green

parent d22b5119
Pipeline #46087 passed with stage
in 11 minutes and 14 seconds
...@@ -44,14 +44,9 @@ class VideoPadFile(PadFile): ...@@ -44,14 +44,9 @@ class VideoPadFile(PadFile):
): ):
"""Loads the video file and returns in a `bob.bio.video.FrameContainer`. """Loads the video file and returns in a `bob.bio.video.FrameContainer`.
Parameters
----------
frame_selector : :any:`bob.bio.video.FrameSelector`, optional
Which frames to select.
Returns Returns
------- -------
:any:`bob.bio.video.FrameContainer` :any:`bob.bio.video.VideoAsArray`
The loaded frames inside a frame container. The loaded frames inside a frame container.
""" """
path = self.make_path(self.original_directory, self.original_extension) path = self.make_path(self.original_directory, self.original_extension)
......
...@@ -54,28 +54,17 @@ class ReplayMobilePadFile(VideoPadFile): ...@@ -54,28 +54,17 @@ class ReplayMobilePadFile(VideoPadFile):
""" """
Overridden version of the load method defined in the ``VideoPadFile``. Overridden version of the load method defined in the ``VideoPadFile``.
Parameters
----------
directory : str
String containing the path to the Replay-Mobile database.
extension : str
Extension of the video files in the Replay-Mobile database.
frame_selector : :any:`bob.bio.video.FrameSelector`
The frame selector to use.
Returns Returns
------- -------
video_data : :any:`bob.bio.video.FrameContainer` video_data : :any:`bob.bio.video.VideoAsArray`
Video data stored in the FrameContainer, see Video data.
``bob.bio.video.utils.FrameContainer`` for further details.
""" """
directory = directory or self.original_directory # TODO(amir): Handle loading with VideoAsArray and with a transform as
# some video files need to be flipped.
video_data_array = self.f.load( video_data_array = self.f.load(
directory=directory, extension=extension) directory=self.original_directory, extension=self.original_extension)
return frame_selector(video_data_array) return video_data_array
@property @property
def annotations(self): def annotations(self):
......
...@@ -49,11 +49,6 @@ Feature Extractors ...@@ -49,11 +49,6 @@ Feature Extractors
.. automodule:: bob.pad.face.extractor .. automodule:: bob.pad.face.extractor
Matching Algorithms
------------------------------
.. automodule:: bob.pad.base.algorithm
Utilities Utilities
--------- ---------
......
...@@ -40,7 +40,7 @@ Usually it is a good idea to have at least verbose level 2 (i.e., calling ...@@ -40,7 +40,7 @@ Usually it is a good idea to have at least verbose level 2 (i.e., calling
Database setups and baselines are encoded using Database setups and baselines are encoded using
:ref:`bob.bio.base.configuration-files`, all stored inside the package root, in ``bob.bio.base.configuration-files``, all stored inside the package root, in
the directory ``bob/pad/face/config``. Documentation for each resource the directory ``bob/pad/face/config``. Documentation for each resource
is available on the section :ref:`bob.pad.face.resources`. is available on the section :ref:`bob.pad.face.resources`.
......
...@@ -22,8 +22,6 @@ Users Guide ...@@ -22,8 +22,6 @@ Users Guide
installation installation
baselines baselines
other_pad_algorithms other_pad_algorithms
pulse
mc_autoencoder_pad
references references
resources resources
api api
......
This diff is collapsed.
...@@ -47,7 +47,7 @@ Usually it is a good idea to have at least verbose level 2 (i.e., calling ...@@ -47,7 +47,7 @@ Usually it is a good idea to have at least verbose level 2 (i.e., calling
Database setups and face PAD algorithms are encoded using Database setups and face PAD algorithms are encoded using
:ref:`bob.bio.base.configuration-files`, all stored inside the package root, in ``bob.bio.base.configuration-files``, all stored inside the package root, in
the directory ``bob/pad/face/config``. Documentation for each resource the directory ``bob/pad/face/config``. Documentation for each resource
is available on the section :ref:`bob.pad.face.resources`. is available on the section :ref:`bob.pad.face.resources`.
......
.. _bob.pad.face.pulse:
===============
Pulse-based PAD
===============
In this section, we briefly describe our work made for face
presentation attack detection using the blood volume pulse,
inferred from remote photoplesthymograpy.
The basic idea here is to retrieve the pulse signals from
face video sequences, to derive features from their frequency
spectrum and then to learn a classifier to discriminate
between *bonafide* attempts from presentation attacks.
For this purpose, we describe both :py:class:`bob.bio.base.preprocessor.Preprocessor` and
:py:class:`bob.bio.base.extractor.Extractor` specifically dedicated to this task.
Preprocessors: Pulse Extraction
-------------------------------
Preprocessors basically extract pulse signals from face video
sequences. They heavily rely on what has been done in `bob.rppg.base`
so you may want to have a look at `its documentation <https://www.idiap.ch/software/bob/docs/bob/bob.rppg.base/master/index.html>`_.
In this package, 4 preprocessors have been implemented:
1. :py:class:`bob.pad.face.preprocessor.LiPulseExtraction` described in [Li_ICPR_2016]_.
2. :py:class:`bob.pad.face.preprocessor.Chrom` described in [CHROM]_.
3. :py:class:`bob.pad.face.preprocessor.SSR` described in [SSR]_.
4. :py:class:`bob.pad.face.preprocessor.PPGSecure` described in [NOWARA]_.
Extractors: Features from Pulses
--------------------------------
Extractors compute and retrieve features from the pulse signal. All
implemented extractors act on the frequency spectrum of the pulse signal.
In this package, 3 extractors have been implemented:
1. :py:class:`bob.pad.face.extractor.LiSpectralFeatures` described in [Li_ICPR_2016]_.
2. :py:class:`bob.pad.face.extractor.PPGSecure` described in [NOWARA]_.
3. :py:class:`bob.pad.face.extractor.LTSS` described in [LTSS]_.
References
----------
.. [Li_ICPR_2016] *X. Li, J, Komulainen, G. Zhao, P-C Yuen and M. Pietikäinen*
**Generalized face anti-spoofing by detecting pulse from face videos**,
Intl Conf on Pattern Recognition (ICPR), 2016
.. [CHROM] *de Haan, G. & Jeanne, V*. **Robust Pulse Rate from Chrominance based rPPG**, IEEE Transactions on Biomedical Engineering, 2013. `pdf <http://www.es.ele.tue.nl/~dehaan/pdf/169_ChrominanceBasedPPG.pdf>`__
.. [SSR] *Wang, W., Stuijk, S. and de Haan, G*. **A Novel Algorithm for Remote Photoplesthymograpy: Spatial Subspace Rotation**, IEEE Trans. On Biomedical Engineering, 2015
.. [NOWARA] *E. M. Nowara, A. Sabharwal, A. Veeraraghavan*. **PPGSecure: Biometric Presentation Attack Detection Using Photopletysmograms**, IEEE International Conference on Automatic Face & Gesture Recognition, 2017
.. [LTSS] *H .Muckenhirn, P. Korshunov, M. Magimai-Doss, S Marcel*. **Long-Term Spectral Statistics for Voice Presentation Attack Detection**, IEEE Trans. On Audio, Speech and Language Processing, 2017
...@@ -7,17 +7,17 @@ References ...@@ -7,17 +7,17 @@ References
.. [CAM12] *I. Chingovska, A. Anjos, and S. Marcel*, **On the effectiveness of local binary patterns in face anti-spoofing**, .. [CAM12] *I. Chingovska, A. Anjos, and S. Marcel*, **On the effectiveness of local binary patterns in face anti-spoofing**,
in: Biometrics Special Interest Group (BIOSIG), 2012 BIOSIG - Proceedings of the International Conference of the, 2012, pp. 1-7. in: Biometrics Special Interest Group (BIOSIG), 2012 BIOSIG - Proceedings of the International Conference of the, 2012, pp. 1-7.
.. [WHJ15] *Di Wen, Member, IEEE, Hu Han, Member, IEEE and Anil K. Jain, Fellow, IEEE*, **Face Spoof Detection with Image Distortion Analysis**, .. .. [WHJ15] *Di Wen, Member, IEEE, Hu Han, Member, IEEE and Anil K. Jain, Fellow, IEEE*, **Face Spoof Detection with Image Distortion Analysis**,
in: IEEE Transactions on Information Forensics and Security, 2015. .. in: IEEE Transactions on Information Forensics and Security, 2015.
.. [CBVM16] *A. Costa-Pazo, S. Bhattacharjee, E. Vazquez-Fernandez and S. Marcel*, **The Replay-Mobile Face Presentation-Attack Database**, .. [CBVM16] *A. Costa-Pazo, S. Bhattacharjee, E. Vazquez-Fernandez and S. Marcel*, **The Replay-Mobile Face Presentation-Attack Database**,
in: Biometrics Special Interest Group (BIOSIG), 2016 BIOSIG - Proceedings of the International Conference of the, 2016, pp. 1-7. in: Biometrics Special Interest Group (BIOSIG), 2016 BIOSIG - Proceedings of the International Conference of the, 2016, pp. 1-7.
.. [AM11] *A. Anjos and S. Marcel*, **Counter-measures to photo attacks in face recognition: A public database and a baseline**, .. .. [AM11] *A. Anjos and S. Marcel*, **Counter-measures to photo attacks in face recognition: A public database and a baseline**,
in: 2011 International Joint Conference on Biometrics (IJCB), Washington, DC, 2011, pp. 1-7. .. in: 2011 International Joint Conference on Biometrics (IJCB), Washington, DC, 2011, pp. 1-7.
.. [CDSR17] *C. Chen, A. Dantcheva, T. Swearingen, A. Ross*, **Spoofing Faces Using Makeup: An Investigative Study**, .. [CDSR17] *C. Chen, A. Dantcheva, T. Swearingen, A. Ross*, **Spoofing Faces Using Makeup: An Investigative Study**,
in: Proc. of 3rd IEEE International Conference on Identity, Security and Behavior Analysis (ISBA), (New Delhi, India), February 2017. in: Proc. of 3rd IEEE International Conference on Identity, Security and Behavior Analysis (ISBA), (New Delhi, India), February 2017.
.. [NGM19] *O. Nikisins, A. George, S. Marcel*, **Domain Adaptation in Multi-Channel Autoencoder based Features for Robust Face Anti-Spoofing**, .. .. [NGM19] *O. Nikisins, A. George, S. Marcel*, **Domain Adaptation in Multi-Channel Autoencoder based Features for Robust Face Anti-Spoofing**,
in: Submitted to: 2019 International Conference on Biometrics (ICB), 2019. .. in: Submitted to: 2019 International Conference on Biometrics (ICB), 2019.
...@@ -71,27 +71,13 @@ The configuration files contain at least the following arguments of the ``spoof. ...@@ -71,27 +71,13 @@ The configuration files contain at least the following arguments of the ``spoof.
LBP features of facial region + SVM for REPLAY-ATTACK LBP features of facial region + SVM for REPLAY-ATTACK
================================================================================ ================================================================================
.. automodule:: bob.pad.face.config.lbp_svm
:members:
.. _bob.pad.face.resources.face_pad.qm_svm_replayattack: .. _bob.pad.face.resources.face_pad.qm_svm_replayattack:
Image Quality Measures as features of facial region + SVM for REPLAY-ATTACK Image Quality Measures as features of facial region + SVM for REPLAY-ATTACK
================================================================================ ================================================================================
.. automodule:: bob.pad.face.config.qm_svm
:members:
.. _bob.pad.face.resources.face_pad.qm_lr:
Image Quality Measures as features of facial region + Logistic Regression
============================================================================================================================
.. automodule:: bob.pad.face.config.qm_lr
:members:
.. _bob.pad.face.resources.face_pad.qm_one_class_gmm: .. _bob.pad.face.resources.face_pad.qm_one_class_gmm:
...@@ -99,6 +85,4 @@ Image Quality Measures as features of facial region + Logistic Regression ...@@ -99,6 +85,4 @@ Image Quality Measures as features of facial region + Logistic Regression
Image Quality Measures as features of facial region + GMM-based one-class classifier (anomaly detector) Image Quality Measures as features of facial region + GMM-based one-class classifier (anomaly detector)
============================================================================================================================ ============================================================================================================================
.. automodule:: bob.pad.face.config.qm_one_class_gmm
:members:
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment