Common preprocessing and postprocessing scripts to be used in benchmarking
programs such as ck-tensorflow:program:object-detection-tflite, etc.
A client program has to reference scripts in its meta in the section run_time, e.g.:
"run_cmds": {
"default": {
"run_time": {
"pre_process_via_ck": {
"data_uoa": "24c98b0cee248d93",
"module_uoa": "script",
"script_name": "preprocess"
},
"post_process_via_ck": {
"data_uoa": "24c98b0cee248d93",
"module_uoa": "script",
"script_name": "postprocess"
},
"run_cmd_main": "$#BIN_FILE#$",
It is supposed that the client program provides required enviroment variables and dependencies with suitable names that scripts will search for.
The preprocessing script prepares images for a client program.
Preprocessing steps:
Read the required number of images from a dataset. The number of images is governed by program parameters CK_BATCH_COUNT and CK_BATCH_SIZE.
Prepare images for loading into a model. Preparation includes scaling images to a size defined by the input images size of the model being benchmarked. See the section Input preprocessing parameters below.
Store prepared images into a cache directory.
As a result, the preprocessing script provides a set of variables (in separate env.ini file) that a client program should use:
MODEL_DATASET_TYPE - point to dataset type which the model was trained on (coco for example)MODEL_TFLITE_GRAPH - path to model's .tflite fileMODEL_IMAGE_CHANNELS - number of color channels in image. Default value: 3MODEL_IMAGE_HEIGHT, MODEL_IMAGE_WIDTH - the sizes of an image, which it should have to be processed on by the modelMODEL_NEED_BACKGROUND_CORRECTION - indicate that model don't consider "background" class (True or False)MODEL_NORMALIZE_DATA - indicate that image should be "normalized" before processing (True or False)MODEL_SUBTRACT_MEAN - indicate that operation "subtract mean" should be executed on the image before processing
DETECTIONS_OUT_DIR - path to results of detections (text files, one per image)
PREPROCESS_OUT_DIR - path to a directory containing preprocessed images.PREPROCESSED_FILES - path to a file containing list of images to be processed with their original sizes file.mame;width;height. This file contains only image file names without paths.
IMAGE_COUNT - count of images which will be taken from dataset to process. Default value: 1.
BATCH_SIZE - size of batch (number of images that can be processed "simultaneously"). Now batch processing by TF Lite is not supporting. Should be: 1
NUMBER_OF_PROCESSORS - indicate how many threads TF Lite can use to process images. Default value: 1.
FULL_REPORT - additional logging level (True or False)VERBOSE - maximal logging level (True or False)A client program may contain its own additional preprocessing script preprocess-next.py. If it exists, it will be called after the common preprocessing.
A client program should provide access to the dataset via run-time dependency dataset, e.g.:
"run_deps": {
"dataset": {
"local": "yes",
"name": "Object detection dataset",
"sort": 20,
"tags": "dataset,object-detection"
},
The model for benchmarking is provided by a client program's run-time dependency weights, e.g.:
"run_deps": {
"weights": {
"force_target_as_host": "yes",
"local": "yes",
"name": "TensorFlow model",
"sort": 60,
"tags": "ssd,tflite,model,object-detection"
}
Here we describe a client program's parameters affecting the pre/post-processig stages.
CK_BATCH_COUNTThe number of processed images
Default: 1.
CK_SKIP_IMAGESThe number of images which will be skiped before processed images
Default: 0.