From 5da5f476c89b41e783eb6ac397ff76b3208e061a Mon Sep 17 00:00:00 2001 From: Andre Anjos <andre.anjos@idiap.ch> Date: Wed, 27 Feb 2013 13:02:52 +0100 Subject: [PATCH] Add special methods for break-down analysis --- xbob/db/replay/spoofing.py | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/xbob/db/replay/spoofing.py b/xbob/db/replay/spoofing.py index 28a2822..c41f508 100644 --- a/xbob/db/replay/spoofing.py +++ b/xbob/db/replay/spoofing.py @@ -93,6 +93,16 @@ class Database(DatabaseBase): return create_subparser.__doc__ = DatabaseBase.create_subparser.__doc__ + + def name(self): + from .driver import Interface + i = Interface() + return "Replay Attack Database (%s)" % i.name() + + def version(self): + from .driver import Interface + i = Interface() + return i.version() def short_description(self): return "Anti-Spoofing database with 1300 videos produced at Idiap, Switzerland" @@ -135,6 +145,35 @@ class Database(DatabaseBase): return self.get_data('test') get_test_data.__doc__ = DatabaseBase.get_test_data.__doc__ + def get_test_filters(self): + return ('device', 'support') + + def get_filtered_test_data(self, filter): + + def device_filter(obj, filter): + return obj.make_path().find('attack_' + filter) != -1 + + def support_filter(obj, filter): + return obj.make_path().find(filter) != -1 + + real, attack = self.get_test_data() + + if filter == 'device': + return { + 'print': (real, [k for k in attack if device_filter(k, 'print')]), + 'mobile': (real, [k for k in attack if device_filter(k, 'mobile')]), + 'highdef': (real, [k for k in attack if device_filter(k, 'highdef')]), + } + elif filter == 'support': + return { + 'hand': (real, [k for k in attack if support_filter(k, 'hand')]), + 'fixed': (real, [k for k in attack if support_filter(k, 'fixed')]), + } + + raise RuntimeError, \ + "filter parameter should specify a valid filter among `%s'" % \ + self.get_test_filters() + def get_all_data(self): return self.get_data(None) get_all_data.__doc__ = DatabaseBase.get_all_data.__doc__ -- GitLab