ROC SDK  2.4.0
Scalable Face Recognition Software
roc-represent

Construct templates from images.

This command line application corresponds to the roc_represent function in the Application Programming Interface. For representing videos from the command line see roc-track.

Options

Option Meaning Default
-b Treat input files as OpenBR galleries Treat input files as individual images
-c <int> Rotate the image using roc_rotate Don't rotate the image
-d <float>,... Specify manual landmarks Don't specify manual landmarks
-e Run in Evaluation Mode Don't run in evaluation mode
-f <float> Specify face detection False Detection Rate Use ROC_SUGGESTED_FALSE_DETECTION_RATE
-g Estimate face analytics with ROC_ANALYTICS Don't estimate face analytics
-i Ignore detections provided in OpenBR galleries Don't ignore ground truth detections
-j Maximum thread count CPU thread count
-k <int> Specify the Maximum Faces per image 1
-l Treat input files as newline-separated image lists Treat input files as individual images
-m <int> Specify face detection Minimum Size in pixels Use ROC_SUGGESTED_ABSOLUTE_MIN_SIZE
-min-representation-size <int> Specify face representation minimum size in pixels 0
-n <float> Specify face detection roc_adaptive_minimum_size Use ROC_SUGGESTED_RELATIVE_MIN_SIZE
-o Estimate pitch, yaw and lips with ROC_PITCHYAW Don't estimate pitch, yaw and lips
-r Treat input files as folders of images Treat input files as individual images
-t Construct face thumbnail with ROC_THUMBNAIL Don't construct face thumbnail
-p Estimate ICAO quality metrics with ROC_ICAO_METRICS Don't estimate ICAO quality metrics
-u Run ROC_ICAO_BACKGROUND quality metric Don't estimate ICAO uniform background metric
-y Abort on an image decoding error Print a warning
-z <int>,<int>,<float>,<float> Specify roc_set_thumbnail_parameters Use default thumbnail parameters
--standard Use ROC_STANDARD_REPRESENTATION with other representations Use only the specified representation
--deep Use ROC_DEEP_REPRESENTATION face representation Use ROC_STANDARD_REPRESENTATION
--fast Use ROC_FAST_REPRESENTATION face representation Use ROC_STANDARD_REPRESENTATION
--rotate-on-fte Rotate images and retry if face detection fails Don't rotate and retry
--spoof Static face liveness estimation with ROC_SPOOF Don't estimate face liveness
--detection-log-level Set detection face count log level Don't set face count log level
--cuda Use CUDA acceleration Don't use CUDA acceleration
--min-quality <float> Minimum template face quality Use roc_get_suggested_quality_threshold
--no-min-quality Disable quality filtering Remove templates below quality threshold
--represent-tattoos Use ROC_TATTOO_REPRESENTATION Use ROC_STANDARD_REPRESENTATION
--detect-tattoos Use ROC_TATTOO_DETECTION Don't detect tattoos
--archive <path> Copy images to the specified roc_database Don't copy images
--frontal Use ROC_FRONTAL_DETECTION Use ROC_STANDARD_DETECTION
--ignore-artwork Use ROC_IGNORE_ARTWORK Don't use ROC_IGNORE_ARTWORK
--ignore-partial Use ROC_IGNORE_PARTIAL Don't use ROC_IGNORE_PARTIAL
--opportunistic-batch-size <int> Process images jointly with roc_set_opportunistic_batching Process images independently
--opportunistic-max-latency <int> Maximum wait when accumulating a batch for processing Wait up to one second
--exif Include roc_read_exif output in template metadata Don't include Exif in template metadata
--model-path Path to dynamically loaded models Don't load extra models
--detect-text Use ROC_TEXT_DETECTION Don't detect text
--detect-airplanes Use ROC_AIRPLANE_DETECTION to detect airplanes Don't detect airplanes
--detect-bicycles Use ROC_BICYCLE_DETECTION to detect bicycles Don't detect bicycles
--detect-boats Use ROC_BOAT_DETECTION to detect boats Don't detect boats
--detect-buses Use ROC_BUS_DETECTION to detect buses Don't detect buses
--detect-cars Use ROC_CAR_DETECTION to detect cars Don't detect cars
--detect-guns Use ROC_GUN_DETECTION to detect guns Don't detect guns
--detect-license-plates Use ROC_LICENSE_PLATE_DETECTION to detect license plates Don't detect license plates
--detect-military-vehicles Use ROC_MILITARY_VEHICLE_DETECTION to detect military vehicles Don't detect military vehicles
--detect-motorcycles Use ROC_MOTORCYCLE_DETECTION to detect motorcycles Don't detect motorcycles
--detect-people Use ROC_PERSON_DETECTION to detect people Don't detect people
--detect-trucks Use ROC_TRUCK_DETECTION to detect trucks Don't detect trucks
--detect-all-objects Use ROC_ALL_OBJECT_DETECTION to detect all objects Don't detect objects
--represent-objects Use ROC_OBJECT_REPRESENTATION to represent objects for search Don't represent objects
--represent-color Use ROC_COLOR_REPRESENTATION to represent an object's color(s) Don't represent color
--recognize-text Use ROC_TEXT_REPRESENTATION Don't recognize text
--fingerprint Use ROC_FINGERPRINT_REPRESENTATION Don't use ROC_FINGERPRINT_REPRESENTATION
--finger-id Set a roc_finger_options identifier for the image Set finger id to ROC_UNKNOWN_FINGER
--resolution Set a image resolution for fingerprint recognition. 500 PPI
--num-fingers Set the number of fingers expected in an image. 1
--keep-alive Attempt to recover from failed network transmissions Generate an error on a failed network transmission
--roi <int>,<int>,<int>,<int> Specify roc_represent_roi region of interest Don't crop images
--log-stdout> Log messages to STDOUT Don't log messages
--log-file <file> Log messages to a file Don't log messages
--sender-id Transmission identifier unique to this application roc_uuid_get_random
--background-color <R>,<G>,<B> Specify roc_set_icao_background_color Use default background color

Evaluation Mode

When evaluating the accuracy of an algorithm it is often helpful to enforce the count and order of the templates. In evaluation mode exactly k templates will be constructed per image. When k is greater than the number of successful detections, additional Empty Template will be constructed.

Rotate images

Rotate images using roc_rotate on face detection failure. See the ImageRotation template metadata field in order to correct original image orientation for face bounding box display purposes.

Detection Log Levels

Print to stderr the number of faces detected in each image.
0 - Don't log face count
1 - Log images with no faces detected
2 - Log face count for all images.

Examples

Show help
Print application usage and supported arguments.
$ roc-represent -h 
Represent a single image
Represent a single image face.jpg to a gallery face.t.
$ roc-represent face.jpg face.t 
Represent multiple images
Represent a folder of images images/* to a gallery faces.t.
$ roc-represent -r images/ faces.t 
Represent from stdin
Represent images from stdin to a gallery faces.t.
$ ls -1 images/* | roc-represent faces.t 
Represent to stdout
Represent images from stdin to stdout.
$ ls -1 images/* | roc-represent > faces.t 
Represent multiple faces per image
Represent up to 5 faces in faces.jpg to a gallery faces.t.
$ roc-represent -k 5 faces.jpg faces.t 
Represent a face by providing manual landmark locations
Landmarks must be provided in the format right_eye_x,right_eye_y,left_eye_x,left_eye_y,chin_x,chin_y . See roc_landmarks_to_detection.
$ roc-represent --landmarks 505,227,581,236,535,373 face.jpg face.t 
Represent a set of images read from a .csv file.
The format of the .csv file is expected to be in the "OpenBR" format with the following unique elements.
$ roc-represent -b /path/to/file.csv faces.t 
  • Path Must be the first header. Location of the image to represent.
  • FaceID (or TemplateID)(optional) Unique template identifier in roc_uuid format {00000000-0000-0000-0000-000000000000}.
  • PersonID (optional) Unique person identifier in roc_uuid format {00000000-0000-0000-0000-000000000000}.
  • RotatedFace (optional) Four pixel coordinates defining the detection bounding box. Add four headers: RotatedFace_X,RotatedFace_Y,RotatedFace_Width,RotatedFace_Height.
  • Face (optional) Four pixel coordinates defining the detection bounding box. Add four headers: Face_X,Face_Y,Face_Width,Face_Height.
.csv file example:
File,PersonID,TemplateID
../data/josh_1.jpg,{7437e6ac-9018-42b4-ae99-2ca1db3fae71},{461bf7f0-6444-11ed-81ce-0242ac120002}
../data/josh_2.jpg,{7437e6ac-0000-0000-ae99-2ca1db3fae71},{d230e49c-97eb-46e9-ab53-2c8491bb0498}
.csv file example with detection bounding box
File,PersonID,TemplateID,Face_X,Face_Y,Face_Width,Face_Height
../data/josh_1.jpg,{7437e6ac-9018-42b4-ae99-2ca1db3fae71},{461bf7f0-6444-11ed-81ce-0242ac120002},541,282,175,175
../data/josh_2.jpg,{7437e6ac-0000-0000-ae99-2ca1db3fae71},{d230e49c-97eb-46e9-ab53-2c8491bb0498},529,330,210,210
Additional columns in the .csv will be added to the template's metadata. In the event that the column name collides with a metadata key already in the generated template, the value already in the template (computed by roc_represent) will be preferred.