Skip to content
Snippets Groups Projects
Commit c7e00b5d authored by Tiago de Freitas Pereira's avatar Tiago de Freitas Pereira
Browse files

Patched the files and the annotations

parent 0ae34559
No related branches found
No related tags found
No related merge requests found
photos/f-005-01 f005
sketches/F2-005-01-sz1 f005
photos/f-006-01 f006
sketches/F2-006-01-sz1 f006
photos/f-007-01 f007
sketches/F2-007-01-sz1 f007
photos/f-008-01 f008
sketches/F2-008-01-sz1 f008
photos/f-009-01 f009
sketches/F2-009-01-sz1 f009
photos/f-010-01 f010
sketches/F2-010-01-sz1 f010
photos/f-011-01 f011
sketches/F2-011-01-sz1 f011
photos/f-012-01 f012
sketches/F2-012-01-sz1 f012
photos/f-013-01 f013
sketches/F2-013-01-sz1 f013
photos/f-014-01 f014
sketches/F2-014-01-sz1 f014
photos/f-015-01 f015
sketches/F2-015-01-sz1 f015
photos/f-016-01 f016
sketches/F2-016-01-sz1 f016
photos/f-017-01 f017
sketches/F2-017-01-sz1 f017
photos/f-018-01 f018
sketches/F2-018-01-sz1 f018
photos/f-019-01 f019
sketches/F2-019-01-sz1 f019
photos/f-020-01 f020
sketches/F2-020-01-sz1 f020
photos/f-021-01 f021
sketches/F2-021-01-sz1 f021
photos/f-022-01 f022
sketches/F2-022-01-sz1 f022
photos/f-023-01 f023
sketches/F2-023-01-sz1 f023
photos/f-024-01 f024
sketches/F2-024-01-sz1 f024
photos/f-025-01 f025
sketches/F2-025-01-sz1 f025
photos/f-026-01 f026
sketches/F2-026-01-sz1 f026
photos/f-027-01 f027
sketches/F2-027-01-sz1 f027
photos/f-028-01 f028
sketches/F2-028-01-sz1 f028
photos/f-029-01 f029
sketches/F2-029-01-sz1 f029
photos/f-030-01 f030
sketches/F2-030-01-sz1 f030
photos/f-031-01 f031
sketches/F2-031-01-sz1 f031
photos/f-032-01 f032
sketches/F2-032-01-sz1 f032
photos/f-033-01 f033
sketches/F2-033-01-sz1 f033
photos/f-034-01 f034
sketches/F2-034-01-sz1 f034
photos/f-035-01 f035
sketches/F2-035-01-sz1 f035
photos/f-036-01 f036
sketches/F2-036-01-sz1 f036
photos/f-037-01 f037
sketches/F2-037-01-sz1 f037
photos/f-038-01 f038
sketches/F2-038-01-sz1 f038
photos/f-039-01 f039
sketches/f-039-01-sz1 f039
photos/f-040-01 f040
sketches/f-040-01-sz1 f040
photos/f-041-01 f041
sketches/f-041-01-sz1 f041
photos/f-042-01 f042
sketches/f-042-01-sz1 f042
photos/f-043-01 f043
sketches/f-043-01-sz1 f043
photos/f1-001-01 f1001
sketches/f1-001-01-sz1 f1001
photos/f1-002-01 f1002
sketches/f1-002-01-sz1 f1002
photos/f1-003-01 f1003
sketches/f1-003-01-sz1 f1003
photos/f1-004-01 f1004
sketches/f1-004-01-sz1 f1004
photos/f1-005-01 f1005
sketches/f1-005-01-sz1 f1005
photos/f1-006-01 f1006
sketches/f1-006-01-sz1 f1006
photos/f1-007-01 f1007
sketches/f1-007-01-sz1 f1007
photos/f1-008-01 f1008
sketches/f1-008-01-sz1 f1008
photos/f1-009-01 f1009
sketches/f1-009-01-sz1 f1009
photos/f1-010-01 f1010
sketches/f1-010-01-sz1 f1010
photos/f1-011-01 f1011
sketches/f1-011-01-sz1 f1011
photos/f1-012-01 f1012
sketches/f1-012-01-sz1 f1012
photos/f1-013-01 f1013
sketches/f1-013-01-sz1 f1013
photos/f1-014-01 f1014
sketches/f1-014-01-sz1 f1014
photos/f1-015-01 f1015
sketches/f1-015-01-sz1 f1015
photos/m-008-01 m008
sketches/M2-008-01-sz1 m008
photos/m-009-01 m009
sketches/M2-009-01-sz1 m009
photos/m-010-01 m010
sketches/M2-010-01-sz1 m010
photos/m-011-01 m011
sketches/M2-011-01-sz1 m011
photos/m-012-01 m012
sketches/M2-012-01-sz1 m012
photos/m-013-01 m013
sketches/M2-013-01-sz1 m013
photos/m-014-01 m014
sketches/M2-014-01-sz1 m014
photos/m-015-01 m015
sketches/M2-015-01-sz1 m015
photos/m-016-01 m016
sketches/M2-016-01-sz1 m016
photos/m-017-01 m017
sketches/M2-017-01-sz1 m017
photos/m-018-01 m018
sketches/M2-018-01-sz1 m018
photos/m-019-01 m019
sketches/M2-019-01-sz1 m019
photos/m-021-01 m021
sketches/M2-021-01-sz1 m021
photos/m-022-01 m022
sketches/M2-022-01-sz1 m022
photos/m-023-01 m023
sketches/M2-023-01-sz1 m023
photos/m-024-01 m024
sketches/M2-024-01-sz1 m024
photos/m-025-01 m025
sketches/M2-025-01-sz1 m025
photos/m-026-01 m026
sketches/M2-026-01-sz1 m026
photos/m-027-01 m027
sketches/M2-027-01-sz1 m027
photos/m-028-01 m028
sketches/M2-028-01-sz1 m028
photos/m-029-01 m029
sketches/M2-029-01-sz1 m029
photos/m-030-01 m030
sketches/M2-030-01-sz1 m030
photos/m-031-01 m031
sketches/M2-031-01-sz1 m031
photos/m-032-01 m032
sketches/M2-032-01-sz1 m032
photos/m-033-01 m033
sketches/M2-033-01-sz1 m033
photos/m-034-01 m034
sketches/M2-034-01-sz1 m034
photos/m-035-01 m035
sketches/M2-035-01-sz1 m035
photos/m-036-01 m036
sketches/M2-036-01-sz1 m036
photos/m-037-01 m037
sketches/M2-037-01-sz1 m037
photos/m-038-01 m038
sketches/M2-038-01-sz1 m038
photos/m-039-01 m039
sketches/M2-039-01-sz1 m039
photos/m-040-01 m040
sketches/M2-040-01-sz1 m040
photos/m-041-01 m041
sketches/M2-041-01-sz1 m041
photos/m-042-01 m042
sketches/M2-042-01-sz1 m042
photos/m-043-01 m043
sketches/M2-043-01-sz1 m043
photos/m-044-01 m044
sketches/M2-044-01-sz1 m044
photos/m-045-01 m045
sketches/M2-045-01-sz1 m045
photos/m-046-01 m046
sketches/M2-046-01-sz1 m046
photos/m-047-01 m047
sketches/M2-047-01-sz1 m047
photos/m-048-01 m048
sketches/M2-048-01-sz1 m048
photos/m-049-01 m049
sketches/M2-049-01-sz1 m049
photos/m-050-01 m050
sketches/M2-050-01-sz1 m050
photos/m-051-01 m051
sketches/M2-051-01-sz1 m051
photos/m-052-01 m052
sketches/M2-052-01-sz1 m052
photos/m-053-01 m053
sketches/M2-053-01-sz1 m053
photos/m-054-01 m054
sketches/M2-054-01-sz1 m054
photos/m-055-01 m055
sketches/M2-055-01-sz1 m055
photos/m-056-01 m056
sketches/M2-056-01-sz1 m056
photos/m-057-01 m057
sketches/M2-057-01-sz1 m057
photos/m-058-01 m058
sketches/M2-058-01-sz1 m058
photos/m-059-01 m059
sketches/M2-059-01-sz1 m059
photos/m-060-01 m060
sketches/M2-060-01-sz1 m060
photos/m-061-01 m061
sketches/M2-061-01-sz1 m061
photos/m-062-01 m062
sketches/M2-062-01-sz1 m062
photos/m-063-01 m063
sketches/m-063-01-sz1 m063
photos/m-064-01 m064
sketches/m-064-01-sz1 m064
photos/m-065-01 m065
sketches/m-065-01-sz1 m065
photos/m-066-01 m066
sketches/m-066-01-sz1 m066
photos/m-067-01 m067
sketches/m-067-01-sz1 m067
photos/m-068-01 m068
sketches/m-068-01-sz1 m068
photos/m-069-01 m069
sketches/m-069-01-sz1 m069
photos/m-070-01 m070
sketches/m-070-01-sz1 m070
photos/m-071-01 m071
sketches/m-071-01-sz1 m071
photos/m-072-01 m072
sketches/m-072-01-sz1 m072
photos/m-073-01 m073
sketches/m-073-01-sz1 m073
photos/m-074-01 m074
sketches/m-074-01-sz1 m074
photos/m-075-01 m075
sketches/m-075-01-sz1 m075
photos/m-076-01 m076
sketches/m-076-01-sz1 m076
photos/m-077-01 m077
sketches/m-077-01-sz1 m077
photos/m-078-01 m078
sketches/m-078-01-sz1 m078
photos/m-079-01 m079
sketches/m-079-01-sz1 m079
photos/m-080-01 m080
sketches/m-080-01-sz1 m080
photos/m-081-01 m081
sketches/m-081-01-sz1 m081
photos/m-082-01 m082
sketches/m-082-01-sz1 m082
photos/m-083-01 m083
sketches/m-083-01-sz1 m083
photos/m-084-01 m084
sketches/m-084-01-sz1 m084
photos/m-085-01 m085
sketches/m-085-01-sz1 m085
photos/m-086-01 m086
sketches/m-086-01-sz1 m086
photos/m-087-01 m087
sketches/m-087-01-sz1 m087
photos/m-088-01 m088
sketches/m-088-01-sz1 m088
photos/m-089-01 m089
sketches/m-089-01-sz1 m089
photos/m-090-01 m090
sketches/m-090-01-sz1 m090
photos/m-091-01 m091
sketches/m-091-01-sz1 m091
photos/m-092-01 m092
sketches/m-092-01-sz1 m092
photos/m-093-01 m093
sketches/m-093-01-sz1 m093
photos/m-094-01 m094
sketches/m-094-01-sz1 m094
photos/m-095-01 m095
sketches/m-095-01-sz1 m095
photos/m-096-01 m096
sketches/m-096-01-sz1 m096
photos/m-097-01 m097
sketches/m-097-01-sz1 m097
photos/m-098-01 m098
sketches/m-098-01-sz1 m098
photos/m-099-01 m099
sketches/m-099-01-sz1 m099
photos/m-100-01 m100
sketches/m-100-01-sz1 m100
photos/m1-001-01 m1001
sketches/m1-001-01-sz1 m1001
photos/m1-002-01 m1002
sketches/m1-002-01-sz1 m1002
photos/m1-003-01 m1003
sketches/m1-003-01-sz1 m1003
photos/m1-004-01 m1004
sketches/m1-004-01-sz1 m1004
photos/m1-005-01 m1005
sketches/m1-005-01-sz1 m1005
photos/m1-006-01 m1006
sketches/m1-006-01-sz1 m1006
photos/m1-007-01 m1007
sketches/m1-007-01-sz1 m1007
photos/m1-008-01 m1008
sketches/m1-008-01-sz1 m1008
photos/m1-009-01 m1009
sketches/m1-009-01-sz1 m1009
photos/m1-010-01 m1010
sketches/m1-010-01-sz1 m1010
photos/m-101-01 m101
sketches/m-101-01-sz1 m101
photos/m1-011-01 m1011
sketches/m1-011-01-sz1 m1011
photos/m1-012-01 m1012
sketches/m1-012-01-sz1 m1012
photos/m1-013-01 m1013
sketches/m1-013-01-sz1 m1013
photos/m1-014-01 m1014
sketches/m1-014-01-sz1 m1014
photos/m1-015-01 m1015
sketches/m1-015-01-sz1 m1015
photos/m1-016-01 m1016
sketches/m1-016-01-sz1 m1016
photos/m1-017-01 m1017
sketches/m1-017-01-sz1 m1017
photos/m1-018-01 m1018
sketches/m1-018-01-sz1 m1018
photos/m1-019-01 m1019
sketches/m1-019-01-sz1 m1019
photos/m1-020-01 m1020
sketches/m1-020-01-sz1 m1020
photos/m1-021-01 m1021
sketches/m1-021-01-sz1 m1021
photos/m1-022-01 m1022
sketches/m1-022-01-sz1 m1022
photos/m1-023-01 m1023
sketches/m1-023-01-sz1 m1023
photos/m1-024-01 m1024
sketches/m1-024-01-sz1 m1024
photos/m1-025-01 m1025
sketches/m1-025-01-sz1 m1025
photos/m1-026-01 m1026
sketches/m1-026-01-sz1 m1026
photos/m1-027-01 m1027
sketches/m1-027-01-sz1 m1027
photos/m1-028-01 m1028
sketches/m1-028-01-sz1 m1028
photos/m1-029-01 m1029
sketches/m1-029-01-sz1 m1029
photos/m1-030-01 m1030
sketches/m1-030-01-sz1 m1030
photos/m1-031-01 m1031
sketches/m1-031-01-sz1 m1031
photos/m1-032-01 m1032
sketches/m1-032-01-sz1 m1032
photos/m1-033-01 m1033
sketches/m1-033-01-sz1 m1033
photos/m1-034-01 m1034
sketches/m1-034-01-sz1 m1034
photos/m1-035-01 m1035
sketches/m1-035-01-sz1 m1035
photos/m1-036-01 m1036
sketches/m1-036-01-sz1 m1036
photos/m1-037-01 m1037
sketches/m1-037-01-sz1 m1037
photos/m1-038-01 m1038
sketches/m1-038-01-sz1 m1038
photos/m1-039-01 m1039
sketches/m1-039-01-sz1 m1039
photos/m1-040-01 m1040
sketches/m1-040-01-sz1 m1040
photos/m1-041-01 m1041
sketches/m1-041-01-sz1 m1041
......@@ -29,11 +29,10 @@ from utils import ARFACEWrapper, XM2VTSWrapper, CUHKWrapper
def add_clients(session, verbose = True):
"""Adds the clients and split up the groups 'world', 'dev', and 'eval'"""
#import ipdb; ipdb.set_trace();
#Adding the clients from ARFACE
arface_clients = ARFACEWrapper.get_clients()
arface = ARFACEWrapper()
arface_clients = arface.get_clients()
if verbose>=1: print('Adding ARFACE clients to the database ...')
......@@ -45,7 +44,7 @@ def add_clients(session, verbose = True):
if verbose>=1: print(" Adding client {0}".format(original_client_id))
session.add(Client(id=id,
gender=ARFACEWrapper.get_gender_from_client_id(original_client_id),
gender = arface.get_gender_from_client_id(original_client_id),
original_id = original_client_id,
original_database = "arface"
))
......@@ -53,7 +52,8 @@ def add_clients(session, verbose = True):
#Adding the clients from XM2VTS
xm2vts_clients = XM2VTSWrapper.get_clients()
xm2vts = XM2VTSWrapper()
xm2vts_clients = xm2vts.get_clients()
if verbose>=1: print('Adding XM2VTS clients to the database ...')
......@@ -64,7 +64,7 @@ def add_clients(session, verbose = True):
if verbose>=1: print(" Adding client {0}".format(original_client_id))
session.add(Client(id=id_offset,
gender=XM2VTSWrapper.get_gender(),
gender=xm2vts.get_gender(),
original_id = original_client_id,
original_database = "xm2vts"
))
......@@ -72,7 +72,8 @@ def add_clients(session, verbose = True):
#Adding the clients from CUHK
cuhk_clients = CUHKWrapper.get_clients()
cuhk = CUHKWrapper()
cuhk_clients = cuhk.get_clients()
if verbose>=1: print('Adding CUHK clients to the database ...')
......@@ -83,7 +84,7 @@ def add_clients(session, verbose = True):
if verbose>=1: print(" Adding client {0}".format(original_client_id))
session.add(Client(id=id_offset,
gender=CUHKWrapper.get_gender_from_client_id(original_client_id),
gender=cuhk.get_gender_from_client_id(original_client_id),
original_id = original_client_id,
original_database = "cuhk"
))
......@@ -95,17 +96,96 @@ def add_clients(session, verbose = True):
def add_files(session, directory, annotations_file, verbose):
def add_files(session, verbose):
"""
Adds files with their respective information into the Database
:param session: DB session
:param directory: directory to the CASME2 directory containing the folders of subjects.
:param annotations_file: annotations for the dataset file path
:param verbose: whether or not to show some information on CLI
"""
return None
if verbose>=1: print('Adding ARFACE files to the database ...')
if verbose>=1: print('Adding PHOTOS ...')
arface = ARFACEWrapper()
files = arface.get_files_from_modality(modality='photo')
id_offset = 1 #ID
for f in files:
if verbose>=1: print(" Adding file {0}".format(f.path))
f.id = id_offset
id_offset+=1
session.add(f)
if verbose>=1: print('Adding SKETCHES ...')
files = arface.get_files_from_modality(modality='sketches')
for f in files:
if verbose>=1: print(" Adding file {0}".format(f.path))
f.id = id_offset
id_offset+=1
session.add(f)
del arface
########
if verbose>=1: print('Adding XM2VTS files to the database ...')
if verbose>=1: print('Adding PHOTOS ...')
xm2vts = XM2VTSWrapper()
files = xm2vts.get_files_from_modality(modality='photo')
for f in files:
if verbose>=1: print(" Adding file {0}".format(f.path))
f.id = id_offset
id_offset+=1
session.add(f)
if verbose>=1: print('Adding SKETCHES ...')
files = xm2vts.get_files_from_modality(modality='sketches')
for f in files:
if verbose>=1: print(" Adding file {0}".format(f.path))
f.id = id_offset
id_offset+=1
session.add(f)
#######
if verbose>=1: print('Adding CUHK files to the database ...')
cuhk = CUHKWrapper()
files = cuhk.get_files()
for f in files:
if verbose>=1: print(" Adding file {0}".format(f.path))
f.id = id_offset
id_offset+=1
session.add(f)
session.commit()
def add_annotations(session, annotation_dir, verbose):
"""
Adds the annotations
"""
if verbose>=1: print('Adding ARFACE Annotations to the database ...')
arface = ARFACEWrapper()
annotations = arface.get_annotations(annotation_dir, annotation_extension='.dat')
for a in annotations:
session.add(a)
if verbose>=1: print('Adding XM2VTS Annotations to the database ...')
xm2vts = XM2VTSWrapper()
annotations = xm2vts.get_annotations(annotation_dir, annotation_extension='.dat')
for a in annotations:
session.add(a)
if verbose>=1: print('Adding CUHK Annotations to the database ...')
cuhk = CUHKWrapper()
annotations = cuhk.get_annotations(annotation_dir, annotation_extension='.dat')
for a in annotations:
session.add(a)
session.commit()
def create_tables(args):
......@@ -141,7 +221,9 @@ def create(args):
create_tables(args)
s = session_try_nolock(args.type, args.files[0], echo=(args.verbose >= 2))
add_clients(s, args.verbose)
#add_files(s, args.directory, args.annotdir, args.verbose)
add_files(s, args.verbose)
add_annotations(s, args.annotation_dir, args.verbose)
#add_protocols(s, args.verbose)
#add_clientxprotocols(s, args.verbose)
s.commit()
......@@ -152,10 +234,8 @@ def add_command(subparsers):
parser = subparsers.add_parser('create', help=create.__doc__)
parser.add_argument('-R', '--recreate', action='store_true', help='If set, I\'ll first erase the current database')
parser.add_argument('-v', '--verbose', action='count', help='Do SQL operations in a verbose way?')
parser.add_argument('-D', '--directory', metavar='DIR', default='../CASME2/Cropped/', help='The path to the directory containing the subjects folders, which have the frames')
parser.add_argument('--extension', metavar='STR', default='.jpg', help='The file extension of the image files from the CASME2 database')
parser.add_argument('-A', '--annotdir', metavar='DIR', default='bob/db/casme2/annotations.csv', help="Change the relative path to the directory containing the action_unit information file of the CASME2 database (defaults to %(default)s)")
parser.add_argument('-r', '--recreate', action='store_true', help='If set, I\'ll first erase the current database')
parser.add_argument('-v', '--verbose', action='count', help='Increase verbosity?')
parser.add_argument('-a', '--annotation-dir', default='.', help="The annotation directory. HAS TO BE THE SAME STRUCTURE AS PROVIDED BY THE DATABASE PROVIDERS (defaults to %(default)s)")
parser.set_defaults(func=create) #action
Mp-002-1-sz1
Mp-003-1-sz1
Mp-005-1-sz1
Mp-006-1-sz1
Mp-007-1-sz1
Mp-008-1-sz1
Mp-009-1-sz1
Mp-010-1-sz1
Mp-011-1-sz1
Mp-013-1-sz1
Mp-014-1-sz1
Mp-015-1-sz1
Mp-016-1-sz1
Mp-017-1-sz1
Mp-018-1-sz1
Mp-020-1-sz1
Mp-021-1-sz1
Mp-022-1-sz1
Mp-023-1-sz1
Mp-024-1-sz1
Mp-025-1-sz1
Mp-026-1-sz1
Mp-027-1-sz1
Mp-028-1-sz1
Mp-029-1-sz1
Mp-030-1-sz1
Mp-031-1-sz1
Mp-032-1-sz1
Mp-033-1-sz1
Mp-035-1-sz1
Mp-036-1-sz1
Mp-037-1-sz1
Mp-038-1-sz1
Mp-039-1-sz1
Mp-040-1-sz1
Mp-041-1-sz1
Mp-042-1-sz1
Mp-043-1-sz1
Mp-044-1-sz1
Mp-045-1-sz1
Mp-046-1-sz1
Mp-047-1-sz1
Mp-048-1-sz1
Mp-049-1-sz1
Mp-050-1-sz1
Mp-051-1-sz1
Mp-052-1-sz1
Mp-053-1-sz1
Mp-054-1-sz1
Mp-055-1-sz1
Mp-056-1-sz1
Mp-057-1-sz1
Mp-058-1-sz1
Mp-059-1-sz1
Mp-060-1-sz1
Mp-061-1-sz1
Mp-062-1-sz1
Mp-063-1-sz1
Mp-064-1-sz1
Mp-065-1-sz1
Mp-066-1-sz1
Mp-067-1-sz1
Mp-068-1-sz1
Mp-069-1-sz1
Mp-070-1-sz1
Mp-071-1-sz1
Mp-072-1-sz1
Mp-073-1-sz1
Mp-074-1-sz1
Mp-075-1-sz1
Wp-001-1-sz1
Wp-002-1-sz1
Wp-003-1-sz1
Wp-004-1-sz1
Wp-005-1-sz1
Wp-007-1-sz1
Wp-008-1-sz1
Wp-014-1-sz1
Wp-015-1-sz1
Wp-016-1-sz1
Wp-017-1-sz1
Wp-018-1-sz1
Wp-019-1-sz1
Wp-020-1-sz1
Wp-021-1-sz1
Wp-022-1-sz1
Wp-023-1-sz1
Wp-024-1-sz1
Wp-025-1-sz1
Wp-026-1-sz1
Wp-027-1-sz1
Wp-028-1-sz1
Wp-029-1-sz1
Wp-030-1-sz1
Wp-031-1-sz1
Wp-032-1-sz1
Wp-033-1-sz1
Wp-034-1-sz1
Wp-035-1-sz1
Wp-036-1-sz1
Wp-037-1-sz1
Wp-038-1-sz1
Wp-039-1-sz1
Wp-040-1-sz1
Wp-041-1-sz1
Wp-042-1-sz1
Wp-043-1-sz1
Wp-044-1-sz1
Wp-045-1-sz1
Wp-046-1-sz1
Wp-047-1-sz1
Wp-048-1-sz1
Wp-049-1-sz1
Wp-050-1-sz1
Wp-051-1-sz1
Wp-052-1-sz1
Wp-053-1-sz1
Wp-054-1-sz1
Wp-055-1-sz1
Wp-056-1-sz1
Wp-057-1-sz1
Wp-058-1-sz1
Wp-059-1-sz1
000_1_1_sz1
001_1_1_sz1
002_1_1_sz1
003_1_1_sz1
004_1_1_sz1
005_1_1_sz1
006_1_1_sz1
007_1_1_sz1
008_1_1_sz1
009_1_1_sz1
010_1_1_sz1
011_1_1_sz1
012_1_1_sz1
013_1_1_sz1
016_1_1_sz1
017_1_1_sz1
018_1_1_sz1
019_1_1_sz1
020_1_1_sz1
021_1_1_sz1
022_1_1_sz1
023_1_1_sz1
024_1_1_sz1
025_1_1_sz1
026_1_1_sz1
027_1_1_sz1
028_1_1_sz1
029_1_1_sz1
030_1_1_sz1
031_1_1_sz1
032_1_1_sz1
033_1_1_sz1
034_1_1_sz1
035_1_1_sz1
036_1_1_sz1
037_1_1_sz1
038_1_1_sz1
039_1_1_sz1
040_1_1_sz1
041_1_1_sz1
042_1_1_sz1
043_1_1_sz1
044_1_1_sz1
045_1_1_sz1
046_1_1_sz1
047_1_1_sz1
048_1_1_sz1
049_1_1_sz1
050_1_1_sz1
051_1_1_sz1
052_1_1_sz1
053_1_1_sz1
054_1_1_sz1
055_1_1_sz1
056_1_1_sz1
057_1_1_sz1
058_1_1_sz1
059_1_1_sz1
060_1_1_sz1
061_1_1_sz1
062_1_1_sz1
064_1_1_sz1
065_1_1_sz1
066_1_1_sz1
067_1_1_sz1
068_1_1_sz1
069_1_1_sz1
070_1_1_sz1
071_1_1_sz1
072_1_1_sz1
073_1_1_sz1
074_1_1_sz1
075_1_1_sz1
078_1_1_sz1
079_1_1_sz1
080_1_1_sz1
081_1_1_sz1
082_1_1_sz1
083_1_1_sz1
085_1_1_sz1
086_1_1_sz1
087_1_1_sz1
088_1_1_sz1
089_1_1_sz1
090_1_1_sz1
091_1_1_sz1
092_1_1_sz1
093_1_1_sz1
095_1_1_sz1
096_1_1_sz1
098_1_1_sz1
099_1_1_sz1
101_1_1_sz1
102_1_1_sz1
103_1_1_sz1
104_1_1_sz1
105_1_1_sz1
107_1_1_sz1
108_1_1_sz1
109_1_1_sz1
110_1_1_sz1
111_1_1_sz1
112_1_1_sz1
113_1_1_sz1
114_1_1_sz1
115_1_1_sz1
116_1_1_sz1
119_1_1_sz1
120_1_1_sz1
121_1_1_sz1
122_1_1_sz1
123_1_1_sz1
124_1_1_sz1
125_1_1_sz1
126_1_1_sz1
127_1_1_sz1
128_1_1_sz1
129_1_1_sz1
130_1_1_sz1
131_1_1_sz1
132_1_1_sz1
133_1_1_sz1
134_1_1_sz1
135_1_1_sz1
136_1_1_sz1
137_1_1_sz1
138_1_1_sz1
140_1_1_sz1
141_1_1_sz1
142_1_1_sz1
143_1_1_sz1
145_1_1_sz1
146_1_1_sz1
147_1_1_sz1
148_1_1_sz1
149_1_1_sz1
150_1_1_sz1
152_1_1_sz1
153_1_1_sz1
154_1_1_sz1
155_1_1_sz1
157_1_1_sz1
158_1_1_sz1
159_1_1_sz1
160_1_1_sz1
161_1_1_sz1
163_1_1_sz1
164_1_1_sz1
165_1_1_sz1
166_1_1_sz1
167_1_1_sz1
168_1_1_sz1
169_1_1_sz1
170_1_1_sz1
171_1_1_sz1
172_1_1_sz1
173_1_1_sz1
174_1_1_sz1
175_1_1_sz1
176_1_1_sz1
177_1_1_sz1
178_1_1_sz1
179_1_1_sz1
180_1_1_sz1
181_1_1_sz1
182_1_1_sz1
183_1_1_sz1
185_1_1_sz1
187_1_1_sz1
188_1_1_sz1
189_1_1_sz1
190_1_1_sz1
191_1_1_sz1
193_1_1_sz1
196_1_1_sz1
197_1_1_sz1
198_1_1_sz1
199_1_1_sz1
200_1_1_sz1
201_1_1_sz1
202_1_1_sz1
203_1_1_sz1
206_1_1_sz1
207_1_1_sz1
208_1_1_sz1
209_1_1_sz1
210_1_1_sz1
211_1_1_sz1
212_1_1_sz1
213_1_1_sz1
215_1_1_sz1
216_1_1_sz1
218_1_1_sz1
219_1_1_sz1
221_1_1_sz1
222_1_1_sz1
224_1_1_sz1
225_1_1_sz1
226_1_1_sz1
227_1_1_sz1
228_1_1_sz1
229_1_1_sz1
231_1_1_sz1
232_1_1_sz1
233_1_1_sz1
234_1_1_sz1
235_1_1_sz1
236_1_1_sz1
237_1_1_sz1
240_1_1_sz1
241_1_1_sz1
242_1_1_sz1
243_1_1_sz1
244_1_1_sz1
246_1_1_sz1
248_1_1_sz1
249_1_1_sz1
250_1_1_sz1
253_1_1_sz1
255_1_1_sz1
258_1_1_sz1
259_1_1_sz1
261_1_1_sz1
263_1_1_sz1
264_1_1_sz1
266_1_1_sz1
267_1_1_sz1
269_1_1_sz1
270_1_1_sz1
271_1_1_sz1
272_1_1_sz1
274_1_1_sz1
275_1_1_sz1
276_1_1_sz1
278_1_1_sz1
279_1_1_sz1
280_1_1_sz1
281_1_1_sz1
282_1_1_sz1
283_1_1_sz1
284_1_1_sz1
285_1_1_sz1
286_1_1_sz1
287_1_1_sz1
288_1_1_sz1
289_1_1_sz1
290_1_1_sz1
292_1_1_sz1
293_1_1_sz1
295_1_1_sz1
300_1_1_sz1
301_1_1_sz1
305_1_1_sz1
310_1_1_sz1
312_1_1_sz1
313_1_1_sz1
314_1_1_sz1
315_1_1_sz1
316_1_1_sz1
317_1_1_sz1
318_1_1_sz1
319_1_1_sz1
320_1_1_sz1
321_1_1_sz1
322_1_1_sz1
323_1_1_sz1
324_1_1_sz1
325_1_1_sz1
328_1_1_sz1
329_1_1_sz1
330_1_1_sz1
331_1_1_sz1
332_1_1_sz1
333_1_1_sz1
334_1_1_sz1
335_1_1_sz1
336_1_1_sz1
337_1_1_sz1
338_1_1_sz1
339_1_1_sz1
340_1_1_sz1
341_1_1_sz1
342_1_1_sz1
357_1_1_sz1
358_1_1_sz1
359_1_1_sz1
360_1_1_sz1
362_1_1_sz1
364_1_1_sz1
365_1_1_sz1
366_1_1_sz1
367_1_1_sz1
369_1_1_sz1
370_1_1_sz1
371_1_1_sz1
CUHK-student-dataset/sketch/f-039-01-sz1 f-039-01
CUHK-student-dataset/sketch/f-040-01-sz1 f-040-01
CUHK-student-dataset/sketch/f-041-01-sz1 f-041-01
CUHK-student-dataset/sketch/f-042-01-sz1 f-042-01
CUHK-student-dataset/sketch/f-043-01-sz1 f-043-01
CUHK-student-dataset/sketch/f1-001-01-sz1 f1-001-01
CUHK-student-dataset/sketch/f1-002-01-sz1 f1-002-01
CUHK-student-dataset/sketch/f1-003-01-sz1 f1-003-01
CUHK-student-dataset/sketch/f1-004-01-sz1 f1-004-01
CUHK-student-dataset/sketch/f1-005-01-sz1 f1-005-01
CUHK-student-dataset/sketch/f1-006-01-sz1 f1-006-01
CUHK-student-dataset/sketch/f1-007-01-sz1 f1-007-01
CUHK-student-dataset/sketch/f1-008-01-sz1 f1-008-01
CUHK-student-dataset/sketch/f1-009-01-sz1 f1-009-01
CUHK-student-dataset/sketch/f1-010-01-sz1 f1-010-01
CUHK-student-dataset/sketch/f1-011-01-sz1 f1-011-01
CUHK-student-dataset/sketch/f1-012-01-sz1 f1-012-01
CUHK-student-dataset/sketch/f1-013-01-sz1 f1-013-01
CUHK-student-dataset/sketch/f1-014-01-sz1 f1-014-01
CUHK-student-dataset/sketch/f1-015-01-sz1 f1-015-01
CUHK-student-dataset/sketch/f2-005-01-sz1 f2-005-01
CUHK-student-dataset/sketch/f2-006-01-sz1 f2-006-01
CUHK-student-dataset/sketch/f2-007-01-sz1 f2-007-01
CUHK-student-dataset/sketch/f2-008-01-sz1 f2-008-01
CUHK-student-dataset/sketch/f2-009-01-sz1 f2-009-01
CUHK-student-dataset/sketch/f2-010-01-sz1 f2-010-01
CUHK-student-dataset/sketch/f2-011-01-sz1 f2-011-01
CUHK-student-dataset/sketch/f2-012-01-sz1 f2-012-01
CUHK-student-dataset/sketch/f2-013-01-sz1 f2-013-01
CUHK-student-dataset/sketch/f2-014-01-sz1 f2-014-01
CUHK-student-dataset/sketch/f2-015-01-sz1 f2-015-01
CUHK-student-dataset/sketch/f2-016-01-sz1 f2-016-01
CUHK-student-dataset/sketch/f2-017-01-sz1 f2-017-01
CUHK-student-dataset/sketch/f2-018-01-sz1 f2-018-01
CUHK-student-dataset/sketch/f2-019-01-sz1 f2-019-01
CUHK-student-dataset/sketch/f2-020-01-sz1 f2-020-01
CUHK-student-dataset/sketch/f2-021-01-sz1 f2-021-01
CUHK-student-dataset/sketch/f2-022-01-sz1 f2-022-01
CUHK-student-dataset/sketch/f2-023-01-sz1 f2-023-01
CUHK-student-dataset/sketch/f2-024-01-sz1 f2-024-01
CUHK-student-dataset/sketch/f2-025-01-sz1 f2-025-01
CUHK-student-dataset/sketch/f2-026-01-sz1 f2-026-01
CUHK-student-dataset/sketch/f2-027-01-sz1 f2-027-01
CUHK-student-dataset/sketch/f2-028-01-sz1 f2-028-01
CUHK-student-dataset/sketch/f2-029-01-sz1 f2-029-01
CUHK-student-dataset/sketch/f2-030-01-sz1 f2-030-01
CUHK-student-dataset/sketch/f2-031-01-sz1 f2-031-01
CUHK-student-dataset/sketch/f2-032-01-sz1 f2-032-01
CUHK-student-dataset/sketch/f2-033-01-sz1 f2-033-01
CUHK-student-dataset/sketch/f2-034-01-sz1 f2-034-01
CUHK-student-dataset/sketch/f2-035-01-sz1 f2-035-01
CUHK-student-dataset/sketch/f2-036-01-sz1 f2-036-01
CUHK-student-dataset/sketch/f2-037-01-sz1 f2-037-01
CUHK-student-dataset/sketch/f2-038-01-sz1 f2-038-01
CUHK-student-dataset/sketch/m-063-01-sz1 m-063-01
CUHK-student-dataset/sketch/m-064-01-sz1 m-064-01
CUHK-student-dataset/sketch/m-065-01-sz1 m-065-01
CUHK-student-dataset/sketch/m-066-01-sz1 m-066-01
CUHK-student-dataset/sketch/m-067-01-sz1 m-067-01
CUHK-student-dataset/sketch/m-068-01-sz1 m-068-01
CUHK-student-dataset/sketch/m-069-01-sz1 m-069-01
CUHK-student-dataset/sketch/m-070-01-sz1 m-070-01
CUHK-student-dataset/sketch/m-071-01-sz1 m-071-01
CUHK-student-dataset/sketch/m-072-01-sz1 m-072-01
CUHK-student-dataset/sketch/m-073-01-sz1 m-073-01
CUHK-student-dataset/sketch/m-074-01-sz1 m-074-01
CUHK-student-dataset/sketch/m-075-01-sz1 m-075-01
CUHK-student-dataset/sketch/m-076-01-sz1 m-076-01
CUHK-student-dataset/sketch/m-077-01-sz1 m-077-01
CUHK-student-dataset/sketch/m-078-01-sz1 m-078-01
CUHK-student-dataset/sketch/m-079-01-sz1 m-079-01
CUHK-student-dataset/sketch/m-080-01-sz1 m-080-01
CUHK-student-dataset/sketch/m-081-01-sz1 m-081-01
CUHK-student-dataset/sketch/m-082-01-sz1 m-082-01
CUHK-student-dataset/sketch/m-083-01-sz1 m-083-01
CUHK-student-dataset/sketch/m-084-01-sz1 m-084-01
CUHK-student-dataset/sketch/m-085-01-sz1 m-085-01
CUHK-student-dataset/sketch/m-086-01-sz1 m-086-01
CUHK-student-dataset/sketch/m-087-01-sz1 m-087-01
CUHK-student-dataset/sketch/m-088-01-sz1 m-088-01
CUHK-student-dataset/sketch/m-089-01-sz1 m-089-01
CUHK-student-dataset/sketch/m-090-01-sz1 m-090-01
CUHK-student-dataset/sketch/m-091-01-sz1 m-091-01
CUHK-student-dataset/sketch/m-092-01-sz1 m-092-01
CUHK-student-dataset/sketch/m-093-01-sz1 m-093-01
CUHK-student-dataset/sketch/m-094-01-sz1 m-094-01
CUHK-student-dataset/sketch/m-095-01-sz1 m-095-01
CUHK-student-dataset/sketch/m-096-01-sz1 m-096-01
CUHK-student-dataset/sketch/m-097-01-sz1 m-097-01
CUHK-student-dataset/sketch/m-098-01-sz1 m-098-01
CUHK-student-dataset/sketch/m-099-01-sz1 m-099-01
CUHK-student-dataset/sketch/m-100-01-sz1 m-100-01
CUHK-student-dataset/sketch/m1-001-01-sz1 m1-001-01
CUHK-student-dataset/sketch/m1-002-01-sz1 m1-002-01
CUHK-student-dataset/sketch/m1-003-01-sz1 m1-003-01
CUHK-student-dataset/sketch/m1-004-01-sz1 m1-004-01
CUHK-student-dataset/sketch/m1-005-01-sz1 m1-005-01
CUHK-student-dataset/sketch/m1-006-01-sz1 m1-006-01
CUHK-student-dataset/sketch/m1-007-01-sz1 m1-007-01
CUHK-student-dataset/sketch/m1-008-01-sz1 m1-008-01
CUHK-student-dataset/sketch/m1-009-01-sz1 m1-009-01
CUHK-student-dataset/sketch/m1-010-01-sz1 m1-010-01
CUHK-student-dataset/sketch/m-101-01-sz1 m-101-01
CUHK-student-dataset/sketch/m1-011-01-sz1 m1-011-01
CUHK-student-dataset/sketch/m1-012-01-sz1 m1-012-01
CUHK-student-dataset/sketch/m1-013-01-sz1 m1-013-01
CUHK-student-dataset/sketch/m1-014-01-sz1 m1-014-01
CUHK-student-dataset/sketch/m1-015-01-sz1 m1-015-01
CUHK-student-dataset/sketch/m1-016-01-sz1 m1-016-01
CUHK-student-dataset/sketch/m1-017-01-sz1 m1-017-01
CUHK-student-dataset/sketch/m1-018-01-sz1 m1-018-01
CUHK-student-dataset/sketch/m1-019-01-sz1 m1-019-01
CUHK-student-dataset/sketch/m1-020-01-sz1 m1-020-01
CUHK-student-dataset/sketch/m1-021-01-sz1 m1-021-01
CUHK-student-dataset/sketch/m1-022-01-sz1 m1-022-01
CUHK-student-dataset/sketch/m1-023-01-sz1 m1-023-01
CUHK-student-dataset/sketch/m1-024-01-sz1 m1-024-01
CUHK-student-dataset/sketch/m1-025-01-sz1 m1-025-01
CUHK-student-dataset/sketch/m1-026-01-sz1 m1-026-01
CUHK-student-dataset/sketch/m1-027-01-sz1 m1-027-01
CUHK-student-dataset/sketch/m1-028-01-sz1 m1-028-01
CUHK-student-dataset/sketch/m1-029-01-sz1 m1-029-01
CUHK-student-dataset/sketch/m1-030-01-sz1 m1-030-01
CUHK-student-dataset/sketch/m1-031-01-sz1 m1-031-01
CUHK-student-dataset/sketch/m1-032-01-sz1 m1-032-01
CUHK-student-dataset/sketch/m1-033-01-sz1 m1-033-01
CUHK-student-dataset/sketch/m1-034-01-sz1 m1-034-01
CUHK-student-dataset/sketch/m1-035-01-sz1 m1-035-01
CUHK-student-dataset/sketch/m1-036-01-sz1 m1-036-01
CUHK-student-dataset/sketch/m1-037-01-sz1 m1-037-01
CUHK-student-dataset/sketch/m1-038-01-sz1 m1-038-01
CUHK-student-dataset/sketch/m1-039-01-sz1 m1-039-01
CUHK-student-dataset/sketch/m1-040-01-sz1 m1-040-01
CUHK-student-dataset/sketch/m1-041-01-sz1 m1-041-01
CUHK-student-dataset/sketch/m2-008-01-sz1 m2-008-01
CUHK-student-dataset/sketch/m2-009-01-sz1 m2-009-01
CUHK-student-dataset/sketch/m2-010-01-sz1 m2-010-01
CUHK-student-dataset/sketch/m2-011-01-sz1 m2-011-01
CUHK-student-dataset/sketch/m2-012-01-sz1 m2-012-01
CUHK-student-dataset/sketch/m2-013-01-sz1 m2-013-01
CUHK-student-dataset/sketch/m2-014-01-sz1 m2-014-01
CUHK-student-dataset/sketch/m2-015-01-sz1 m2-015-01
CUHK-student-dataset/sketch/m2-016-01-sz1 m2-016-01
CUHK-student-dataset/sketch/m2-017-01-sz1 m2-017-01
CUHK-student-dataset/sketch/m2-018-01-sz1 m2-018-01
CUHK-student-dataset/sketch/m2-019-01-sz1 m2-019-01
CUHK-student-dataset/sketch/m2-021-01-sz1 m2-021-01
CUHK-student-dataset/sketch/m2-022-01-sz1 m2-022-01
CUHK-student-dataset/sketch/m2-023-01-sz1 m2-023-01
CUHK-student-dataset/sketch/m2-024-01-sz1 m2-024-01
CUHK-student-dataset/sketch/m2-025-01-sz1 m2-025-01
CUHK-student-dataset/sketch/m2-026-01-sz1 m2-026-01
CUHK-student-dataset/sketch/m2-027-01-sz1 m2-027-01
CUHK-student-dataset/sketch/m2-028-01-sz1 m2-028-01
CUHK-student-dataset/sketch/m2-029-01-sz1 m2-029-01
CUHK-student-dataset/sketch/m2-030-01-sz1 m2-030-01
CUHK-student-dataset/sketch/m2-031-01-sz1 m2-031-01
CUHK-student-dataset/sketch/m2-032-01-sz1 m2-032-01
CUHK-student-dataset/sketch/m2-033-01-sz1 m2-033-01
CUHK-student-dataset/sketch/m2-034-01-sz1 m2-034-01
CUHK-student-dataset/sketch/m2-035-01-sz1 m2-035-01
CUHK-student-dataset/sketch/m2-036-01-sz1 m2-036-01
CUHK-student-dataset/sketch/m2-037-01-sz1 m2-037-01
CUHK-student-dataset/sketch/m2-038-01-sz1 m2-038-01
CUHK-student-dataset/sketch/m2-039-01-sz1 m2-039-01
CUHK-student-dataset/sketch/m2-040-01-sz1 m2-040-01
CUHK-student-dataset/sketch/m2-041-01-sz1 m2-041-01
CUHK-student-dataset/sketch/m2-042-01-sz1 m2-042-01
CUHK-student-dataset/sketch/m2-043-01-sz1 m2-043-01
CUHK-student-dataset/sketch/m2-044-01-sz1 m2-044-01
CUHK-student-dataset/sketch/m2-045-01-sz1 m2-045-01
CUHK-student-dataset/sketch/m2-046-01-sz1 m2-046-01
CUHK-student-dataset/sketch/m2-047-01-sz1 m2-047-01
CUHK-student-dataset/sketch/m2-048-01-sz1 m2-048-01
CUHK-student-dataset/sketch/m2-049-01-sz1 m2-049-01
CUHK-student-dataset/sketch/m2-050-01-sz1 m2-050-01
CUHK-student-dataset/sketch/m2-051-01-sz1 m2-051-01
CUHK-student-dataset/sketch/m2-052-01-sz1 m2-052-01
CUHK-student-dataset/sketch/m2-053-01-sz1 m2-053-01
CUHK-student-dataset/sketch/m2-054-01-sz1 m2-054-01
CUHK-student-dataset/sketch/m2-055-01-sz1 m2-055-01
CUHK-student-dataset/sketch/m2-056-01-sz1 m2-056-01
CUHK-student-dataset/sketch/m2-057-01-sz1 m2-057-01
CUHK-student-dataset/sketch/m2-058-01-sz1 m2-058-01
CUHK-student-dataset/sketch/m2-059-01-sz1 m2-059-01
CUHK-student-dataset/sketch/m2-060-01-sz1 m2-060-01
CUHK-student-dataset/sketch/m2-061-01-sz1 m2-061-01
CUHK-student-dataset/sketch/m2-062-01-sz1 m2-062-01
CUHK-student-dataset/photo/f-005-01 f-005-01
CUHK-student-dataset/photo/f-006-01 f-006-01
CUHK-student-dataset/photo/f-007-01 f-007-01
CUHK-student-dataset/photo/f-008-01 f-008-01
CUHK-student-dataset/photo/f-009-01 f-009-01
CUHK-student-dataset/photo/f-010-01 f-010-01
CUHK-student-dataset/photo/f-011-01 f-011-01
CUHK-student-dataset/photo/f-012-01 f-012-01
CUHK-student-dataset/photo/f-013-01 f-013-01
CUHK-student-dataset/photo/f-014-01 f-014-01
CUHK-student-dataset/photo/f-015-01 f-015-01
CUHK-student-dataset/photo/f-016-01 f-016-01
CUHK-student-dataset/photo/f-017-01 f-017-01
CUHK-student-dataset/photo/f-018-01 f-018-01
CUHK-student-dataset/photo/f-019-01 f-019-01
CUHK-student-dataset/photo/f-020-01 f-020-01
CUHK-student-dataset/photo/f-021-01 f-021-01
CUHK-student-dataset/photo/f-022-01 f-022-01
CUHK-student-dataset/photo/f-023-01 f-023-01
CUHK-student-dataset/photo/f-024-01 f-024-01
CUHK-student-dataset/photo/f-025-01 f-025-01
CUHK-student-dataset/photo/f-026-01 f-026-01
CUHK-student-dataset/photo/f-027-01 f-027-01
CUHK-student-dataset/photo/f-028-01 f-028-01
CUHK-student-dataset/photo/f-029-01 f-029-01
CUHK-student-dataset/photo/f-030-01 f-030-01
CUHK-student-dataset/photo/f-031-01 f-031-01
CUHK-student-dataset/photo/f-032-01 f-032-01
CUHK-student-dataset/photo/f-033-01 f-033-01
CUHK-student-dataset/photo/f-034-01 f-034-01
CUHK-student-dataset/photo/f-035-01 f-035-01
CUHK-student-dataset/photo/f-036-01 f-036-01
CUHK-student-dataset/photo/f-037-01 f-037-01
CUHK-student-dataset/photo/f-038-01 f-038-01
CUHK-student-dataset/photo/f-039-01 f-039-01
CUHK-student-dataset/photo/f-040-01 f-040-01
CUHK-student-dataset/photo/f-041-01 f-041-01
CUHK-student-dataset/photo/f-042-01 f-042-01
CUHK-student-dataset/photo/f-043-01 f-043-01
CUHK-student-dataset/photo/f1-001-01 f1-001-01
CUHK-student-dataset/photo/f1-002-01 f1-002-01
CUHK-student-dataset/photo/f1-003-01 f1-003-01
CUHK-student-dataset/photo/f1-004-01 f1-004-01
CUHK-student-dataset/photo/f1-005-01 f1-005-01
CUHK-student-dataset/photo/f1-006-01 f1-006-01
CUHK-student-dataset/photo/f1-007-01 f1-007-01
CUHK-student-dataset/photo/f1-008-01 f1-008-01
CUHK-student-dataset/photo/f1-009-01 f1-009-01
CUHK-student-dataset/photo/f1-010-01 f1-010-01
CUHK-student-dataset/photo/f1-011-01 f1-011-01
CUHK-student-dataset/photo/f1-012-01 f1-012-01
CUHK-student-dataset/photo/f1-013-01 f1-013-01
CUHK-student-dataset/photo/f1-014-01 f1-014-01
CUHK-student-dataset/photo/f1-015-01 f1-015-01
CUHK-student-dataset/photo/m-008-01 m-008-01
CUHK-student-dataset/photo/m-009-01 m-009-01
CUHK-student-dataset/photo/m-010-01 m-010-01
CUHK-student-dataset/photo/m-011-01 m-011-01
CUHK-student-dataset/photo/m-012-01 m-012-01
CUHK-student-dataset/photo/m-013-01 m-013-01
CUHK-student-dataset/photo/m-014-01 m-014-01
CUHK-student-dataset/photo/m-015-01 m-015-01
CUHK-student-dataset/photo/m-016-01 m-016-01
CUHK-student-dataset/photo/m-017-01 m-017-01
CUHK-student-dataset/photo/m-018-01 m-018-01
CUHK-student-dataset/photo/m-019-01 m-019-01
CUHK-student-dataset/photo/m-021-01 m-021-01
CUHK-student-dataset/photo/m-022-01 m-022-01
CUHK-student-dataset/photo/m-023-01 m-023-01
CUHK-student-dataset/photo/m-024-01 m-024-01
CUHK-student-dataset/photo/m-025-01 m-025-01
CUHK-student-dataset/photo/m-026-01 m-026-01
CUHK-student-dataset/photo/m-027-01 m-027-01
CUHK-student-dataset/photo/m-028-01 m-028-01
CUHK-student-dataset/photo/m-029-01 m-029-01
CUHK-student-dataset/photo/m-030-01 m-030-01
CUHK-student-dataset/photo/m-031-01 m-031-01
CUHK-student-dataset/photo/m-032-01 m-032-01
CUHK-student-dataset/photo/m-033-01 m-033-01
CUHK-student-dataset/photo/m-034-01 m-034-01
CUHK-student-dataset/photo/m-035-01 m-035-01
CUHK-student-dataset/photo/m-036-01 m-036-01
CUHK-student-dataset/photo/m-037-01 m-037-01
CUHK-student-dataset/photo/m-038-01 m-038-01
CUHK-student-dataset/photo/m-039-01 m-039-01
CUHK-student-dataset/photo/m-040-01 m-040-01
CUHK-student-dataset/photo/m-041-01 m-041-01
CUHK-student-dataset/photo/m-042-01 m-042-01
CUHK-student-dataset/photo/m-043-01 m-043-01
CUHK-student-dataset/photo/m-044-01 m-044-01
CUHK-student-dataset/photo/m-045-01 m-045-01
CUHK-student-dataset/photo/m-046-01 m-046-01
CUHK-student-dataset/photo/m-047-01 m-047-01
CUHK-student-dataset/photo/m-048-01 m-048-01
CUHK-student-dataset/photo/m-049-01 m-049-01
CUHK-student-dataset/photo/m-050-01 m-050-01
CUHK-student-dataset/photo/m-051-01 m-051-01
CUHK-student-dataset/photo/m-052-01 m-052-01
CUHK-student-dataset/photo/m-053-01 m-053-01
CUHK-student-dataset/photo/m-054-01 m-054-01
CUHK-student-dataset/photo/m-055-01 m-055-01
CUHK-student-dataset/photo/m-056-01 m-056-01
CUHK-student-dataset/photo/m-057-01 m-057-01
CUHK-student-dataset/photo/m-058-01 m-058-01
CUHK-student-dataset/photo/m-059-01 m-059-01
CUHK-student-dataset/photo/m-060-01 m-060-01
CUHK-student-dataset/photo/m-061-01 m-061-01
CUHK-student-dataset/photo/m-062-01 m-062-01
CUHK-student-dataset/photo/m-063-01 m-063-01
CUHK-student-dataset/photo/m-064-01 m-064-01
CUHK-student-dataset/photo/m-065-01 m-065-01
CUHK-student-dataset/photo/m-066-01 m-066-01
CUHK-student-dataset/photo/m-067-01 m-067-01
CUHK-student-dataset/photo/m-068-01 m-068-01
CUHK-student-dataset/photo/m-069-01 m-069-01
CUHK-student-dataset/photo/m-070-01 m-070-01
CUHK-student-dataset/photo/m-071-01 m-071-01
CUHK-student-dataset/photo/m-072-01 m-072-01
CUHK-student-dataset/photo/m-073-01 m-073-01
CUHK-student-dataset/photo/m-074-01 m-074-01
CUHK-student-dataset/photo/m-075-01 m-075-01
CUHK-student-dataset/photo/m-076-01 m-076-01
CUHK-student-dataset/photo/m-077-01 m-077-01
CUHK-student-dataset/photo/m-078-01 m-078-01
CUHK-student-dataset/photo/m-079-01 m-079-01
CUHK-student-dataset/photo/m-080-01 m-080-01
CUHK-student-dataset/photo/m-081-01 m-081-01
CUHK-student-dataset/photo/m-082-01 m-082-01
CUHK-student-dataset/photo/m-083-01 m-083-01
CUHK-student-dataset/photo/m-084-01 m-084-01
CUHK-student-dataset/photo/m-085-01 m-085-01
CUHK-student-dataset/photo/m-086-01 m-086-01
CUHK-student-dataset/photo/m-087-01 m-087-01
CUHK-student-dataset/photo/m-088-01 m-088-01
CUHK-student-dataset/photo/m-089-01 m-089-01
CUHK-student-dataset/photo/m-090-01 m-090-01
CUHK-student-dataset/photo/m-091-01 m-091-01
CUHK-student-dataset/photo/m-092-01 m-092-01
CUHK-student-dataset/photo/m-093-01 m-093-01
CUHK-student-dataset/photo/m-094-01 m-094-01
CUHK-student-dataset/photo/m-095-01 m-095-01
CUHK-student-dataset/photo/m-096-01 m-096-01
CUHK-student-dataset/photo/m-097-01 m-097-01
CUHK-student-dataset/photo/m-098-01 m-098-01
CUHK-student-dataset/photo/m-099-01 m-099-01
CUHK-student-dataset/photo/m-100-01 m-100-01
CUHK-student-dataset/photo/m1-001-01 m1-001-01
CUHK-student-dataset/photo/m1-002-01 m1-002-01
CUHK-student-dataset/photo/m1-003-01 m1-003-01
CUHK-student-dataset/photo/m1-004-01 m1-004-01
CUHK-student-dataset/photo/m1-005-01 m1-005-01
CUHK-student-dataset/photo/m1-006-01 m1-006-01
CUHK-student-dataset/photo/m1-007-01 m1-007-01
CUHK-student-dataset/photo/m1-008-01 m1-008-01
CUHK-student-dataset/photo/m1-009-01 m1-009-01
CUHK-student-dataset/photo/m1-010-01 m1-010-01
CUHK-student-dataset/photo/m-101-01 m-101-01
CUHK-student-dataset/photo/m1-011-01 m1-011-01
CUHK-student-dataset/photo/m1-012-01 m1-012-01
CUHK-student-dataset/photo/m1-013-01 m1-013-01
CUHK-student-dataset/photo/m1-014-01 m1-014-01
CUHK-student-dataset/photo/m1-015-01 m1-015-01
CUHK-student-dataset/photo/m1-016-01 m1-016-01
CUHK-student-dataset/photo/m1-017-01 m1-017-01
CUHK-student-dataset/photo/m1-018-01 m1-018-01
CUHK-student-dataset/photo/m1-019-01 m1-019-01
CUHK-student-dataset/photo/m1-020-01 m1-020-01
CUHK-student-dataset/photo/m1-021-01 m1-021-01
CUHK-student-dataset/photo/m1-022-01 m1-022-01
CUHK-student-dataset/photo/m1-023-01 m1-023-01
CUHK-student-dataset/photo/m1-024-01 m1-024-01
CUHK-student-dataset/photo/m1-025-01 m1-025-01
CUHK-student-dataset/photo/m1-026-01 m1-026-01
CUHK-student-dataset/photo/m1-027-01 m1-027-01
CUHK-student-dataset/photo/m1-028-01 m1-028-01
CUHK-student-dataset/photo/m1-029-01 m1-029-01
CUHK-student-dataset/photo/m1-030-01 m1-030-01
CUHK-student-dataset/photo/m1-031-01 m1-031-01
CUHK-student-dataset/photo/m1-032-01 m1-032-01
CUHK-student-dataset/photo/m1-033-01 m1-033-01
CUHK-student-dataset/photo/m1-034-01 m1-034-01
CUHK-student-dataset/photo/m1-035-01 m1-035-01
CUHK-student-dataset/photo/m1-036-01 m1-036-01
CUHK-student-dataset/photo/m1-037-01 m1-037-01
CUHK-student-dataset/photo/m1-038-01 m1-038-01
CUHK-student-dataset/photo/m1-039-01 m1-039-01
CUHK-student-dataset/photo/m1-040-01 m1-040-01
CUHK-student-dataset/photo/m1-041-01 m1-041-01
......@@ -75,7 +75,7 @@ class Client(Base):
self.original_database = original_database
def __repr__(self):
return "<Client('%d', '%s', '%s')>" % self.id, self.original_database, self.original_id
return "<Client({0}, {1}, {2})>".format(self.id, self.original_database, self.original_id)
class File(Base, bob.db.verification.utils.File):
......@@ -89,20 +89,33 @@ class File(Base, bob.db.verification.utils.File):
modality_choices = ('photo', 'sketch')
id = Column(String(100), primary_key=True)
id = Column(String(100), primary_key=True, autoincrement=True)
path = Column(String(100), unique=True)
client_id = Column(Integer, ForeignKey('client.id'))
modality = Column(Enum(*modality_choices))
# a back-reference from the client class to a list of files
client = relationship("Client", backref=backref("file", order_by=id))
annotations = relationship("Annotation", backref=backref("file"), uselist=True)
all_annotations = relationship("Annotation", backref=backref("file"), uselist=True)
def __init__(self, id, image_name, client_id):
def __init__(self, id, image_name, client_id, modality):
# call base class constructor
bob.db.verification.utils.File.__init__(self, file_id = id, client_id = client_id, path = image_name)
#bob.db.verification.utils.File.__init__(self, client_id = client_id, path = image_name)
self.modality = modality
def annotations(self, annotation_type="eyes_center"):
if annotation_type=="eyes_center":
return {'reye' : (self.all_annotations[16].y, self.all_annotations[16].x), 'leye' : (self.all_annotations[18].y, self.all_annotations[18].x) }
else:
data = {}
for i in range(len(self.all_annotations)):
a = self.all_annotations[i]
data[i] = (a.y, a.x)
return data
class Annotation(Base):
"""
......@@ -121,8 +134,8 @@ class Annotation(Base):
x = Column(Integer, primary_key=True)
y = Column(Integer, primary_key=True)
def __init__(self, annotation, x,y):
self.annotation = annotation
def __init__(self, file_id, x,y):
self.file_id = file_id
self.x = x
self.y = y
......
......@@ -9,74 +9,354 @@ This file has some utilities to deal with the files provided by the database
"""
import os
import bob.db.arface
def read_annotations(file_name):
"""
Read the annotations in the format
X Y\n
X Y\n
.
.
.
"""
original_annotations = open(file_name).readlines()
annotations = []
for a in original_annotations:
a = a.rstrip("\n").rstrip("\r")
data = a.split(" ")
if(len(data)!=2): #NEED TO HAVE ONLY 2 COORDINATES
continue
else:
annotations.append(data)
return annotations
class ARFACEWrapper():
"""
Utility functions to deal with the AR Face database.
"""
@staticmethod
def get_clients(file_name=os.path.join(os.path.curdir,"bob","db","cuhk","AR_file_names_of_photos.txt")):
def __init__(self,
photo_file_name=os.path.join(os.path.curdir,"bob","db","cuhk","data","AR_file_names_of_photos.txt"),
sketch_file_name=os.path.join(os.path.curdir,"bob","db","cuhk","data","AR_file_names_of_sketches.txt")
):
self.m_photo_file_name = photo_file_name
self.m_sketch_file_name = sketch_file_name
def get_clients(self):
"""
Basically read the input file and extract the clients from the original file_name
"""
raw_clients = open(file_name).readlines()
raw_clients = open(self.m_photo_file_name).readlines()
clients = []
for c in raw_clients:
clients.append(c[5:10])
return clients
@staticmethod
def get_gender_from_client_id(client_id):
def get_gender_from_client_id(self,client_id):
return 'man' if client_id[0]=='m' else 'woman'
def get_annotations(self, annotation_dir, annotation_extension='.dat'):
"""
Get the annotation objects
"""
db = bob.db.cuhk.Database()
annotations = []
#import ipdb; ipdb.set_trace();
for o in db.query(bob.db.cuhk.File).join(bob.db.cuhk.Client).filter(bob.db.cuhk.Client.original_database=="arface"):
#making the path
if(o.modality=="sketch"):
path = os.path.join(annotation_dir, o.path) + annotation_extension
else:
path = os.path.join(annotation_dir,"ARFACE", "photo", o.path) + annotation_extension
#Reading the annotation file
original_annotations = read_annotations(path)
for a in original_annotations:
annotations.append(bob.db.cuhk.Annotation(o.id,
a[0],
a[1]
))
return annotations
def get_files_from_modality(self, modality):
"""
For a given modality, get the correct file object.
If modality=='photo', all the information will be taken from bob.db.arface
else, the data will be read from the original data files
**Parameters**
modality: Modality (photo | sketch)
clients: The list of bob.db.cuhk.clients
"""
files = []
if(modality=='photo'):
db = bob.db.arface.Database()
#Parsing the provided data
raw_files = open(self.m_photo_file_name).readlines()
original_files = []
for f in raw_files:
original_files.append(f[5:12])
#Searching in the original database
original_files = db.files(ids=original_files)
for f in original_files:
#self, id, image_name, client_id, modality
client = bob.db.cuhk.Database().query(bob.db.cuhk.Client).filter(bob.db.cuhk.Client.original_id == f.id[0:5])
assert client.count() == 1
client = client[0]
files.append(bob.db.cuhk.File(id = 0,
client_id=client.id,
image_name=f.path,
modality = 'photo'
)
)
else:
#Parsing the provided data
raw_files = open(self.m_sketch_file_name).readlines()
for f in raw_files:
f = f.rstrip("\n")
original_client_id = f[0] + f[2:6] #the original client id is [m|w]-number
client = bob.db.cuhk.Database().query(bob.db.cuhk.Client).filter(bob.db.cuhk.Client.original_id == original_client_id.lower()) #GEtting the client_id
assert client.count() == 1
client = client[0]
f = os.path.join("ARFACE","sketch",f)
files.append(bob.db.cuhk.File(id = 0,
client_id = client.id,
image_name = f,
modality = 'sketch'
)
)
return files
class XM2VTSWrapper():
"""
Utility functions to deal with the XM2VTS database.
"""
@staticmethod
def get_clients(file_name=os.path.join(os.path.curdir,"bob","db","cuhk","XM2VTS_file_names_of_photos.txt")):
def __init__(self,
photo_file_name=os.path.join(os.path.curdir,"bob","db","cuhk","data","XM2VTS_file_names_of_photos.txt"),
sketch_file_name=os.path.join(os.path.curdir,"bob","db","cuhk","data","XM2VTS_file_names_of_sketches.txt")
):
self.m_photo_file_name = photo_file_name
self.m_sketch_file_name = sketch_file_name
def get_clients(self):
"""
Basically read the input file and extract the clients from the original file_name
"""
raw_clients = open(file_name).readlines()
raw_clients = open(self.m_photo_file_name).readlines()
clients = []
for c in raw_clients:
clients.append(c[5:8])
return clients
@staticmethod
def get_gender():
def get_gender(self):
return 'none'
def get_annotations(self, annotation_dir, annotation_extension='.dat'):
"""
Get the annotation objects
"""
db = bob.db.cuhk.Database()
annotations = []
for o in db.query(bob.db.cuhk.File).join(bob.db.cuhk.Client).filter(bob.db.cuhk.Client.original_database=="xm2vts"):
#making the path
if(o.modality=="sketch"):
path = os.path.join(annotation_dir, o.path) + annotation_extension
else:
#import ipdb; ipdb.set_trace();
file_name = o.path.split("/")[2] #THE ORIGINAL XM2VTS RELATIVE PATH IS: XXX\XXX\XXX
path = os.path.join(annotation_dir,"xm2vts", "photo", file_name) + "_f02" + annotation_extension #FOR SOME REASON THE AUTHORS SET THIS '_f02 IN THE END OF THE FILE'
#Reading the annotation file
original_annotations = read_annotations(path)
for a in original_annotations:
annotations.append(bob.db.cuhk.Annotation(o.id,
a[0],
a[1]
))
return annotations
def get_files_from_modality(self, modality):
"""
For a given modality, get the correct file object.
If modality=='photo', all the information will be taken from bob.db.arface
else, the data will be read from the original data files
**Parameters**
modality: Modality (photo | sketch)
clients: The list of bob.db.cuhk.clients
"""
files = []
if(modality=='photo'):
db = bob.db.xm2vts.Database()
#Parsing the provided data
raw_files = open(self.m_photo_file_name).readlines()
original_files = []
for f in raw_files:
original_files.append(f[5:12])
for f in original_files:
#getting the original file object
query = db.query(bob.db.xm2vts.File).filter(bob.db.xm2vts.File.path.endswith(f))
assert query.count()==1
f_obj = query[0]
#getting the CUHK-CUFS file
client = bob.db.cuhk.Database().query(bob.db.cuhk.Client).filter(bob.db.cuhk.Client.original_id == f[0:3])
assert client.count() == 1
client = client[0]
files.append(bob.db.cuhk.File(id = 0,
client_id=client.id,
image_name=f_obj.path,
modality = 'photo'
)
)
else:
#Parsing the provided data
raw_files = open(self.m_sketch_file_name).readlines()
for f in raw_files:
f = f.rstrip("\n")
original_client_id = str(int(f[0:3]))
client = bob.db.cuhk.Database().query(bob.db.cuhk.Client).filter(bob.db.cuhk.Client.original_id == original_client_id)
assert client.count() == 1
client = client[0]
f = os.path.join("xm2vts","sketch",f)
files.append(bob.db.cuhk.File(id = 0,
client_id = client.id,
image_name = f,
modality = 'sketch'
)
)
return files
class CUHKWrapper():
"""
Utility functions to deal with the CUHK database.
"""
@staticmethod
def get_clients(file_name=os.path.join(os.path.curdir,"bob","db","cuhk","all-cuhk.lst")):
def __init__(self,
file_name=os.path.join(os.path.curdir,"bob","db","cuhk","data","all-cuhk.txt"),
):
self.m_file_name = file_name
def get_clients(self):
"""
Basically read the input file and extract the clients from the original file_name
"""
raw_clients = open(file_name).readlines()
raw_clients = open(self.m_file_name).readlines()
clients = []
for c in raw_clients:
clients.append(c.split(" ")[1].rstrip("\n"))
return list(set(clients))
@staticmethod
def get_gender_from_client_id(client_id):
def get_gender_from_client_id(self, client_id):
return 'man' if client_id[0]=='m' else 'woman'
def get_annotations(self, annotation_dir, annotation_extension='.dat'):
"""
Get the annotation objects
"""
db = bob.db.cuhk.Database()
annotations = []
for o in db.query(bob.db.cuhk.File).join(bob.db.cuhk.Client).filter(bob.db.cuhk.Client.original_database=="cuhk"):
#making the path
path = os.path.join(annotation_dir, o.path) + annotation_extension
#Reading the annotation file
original_annotations = read_annotations(path)
for a in original_annotations:
annotations.append(bob.db.cuhk.Annotation(o.id,
a[0],
a[1]
))
return annotations
def get_files(self):
"""
Get the correct file object from insert
"""
raw_data = open(self.m_file_name).readlines()
files = []
for d in raw_data:
d = d.rstrip("\n")
original_client_id = d.split(" ")[1]
image_name = d.split(" ")[0]
modality = 'sketch' if (image_name.find('sketch')>-1) else 'photo'
client = bob.db.cuhk.Database().query(bob.db.cuhk.Client).filter(bob.db.cuhk.Client.original_id == original_client_id)
assert client.count() == 1
client = client[0]
files.append(bob.db.cuhk.File(id = 0,
client_id = client.id,
image_name = image_name,
modality = modality
)
)
return files
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment