SqueezeBrains SDK 1.13
Change log

Release 1.13.0

(release date: 01 September 2023)

Release 1.12.3

(release date: 6 July 2023)

Release 1.12.2

(release date: 7 June 2023)

  • New features
    1. sb_svl_run
      • automatic management of svl dataset with unbalanced data (background and defects area strongly unbalanced) has beed added for Deep Surface projects.
      • changes in svl loss function to improve the management of optional defects and collaborating model for Deep Surface projects.
  • Bug fix
    1. sb_svl_run : fixed an error in handling blocks out of the image, only with Surface projects.
    2. sb_folder_load :
      • the function filtered files with the name starting with '.', Linux only
      • the function returned SB_ERR_INTERNAL error if there was a corrupted symbolic link, Linux only
      • memory leak on error, Windows only
  • General
    1. Functions added

Release 1.12.1

(release date: 12 May 2023)

Release 1.12.0

(release date: 23 December 2022)

Release 1.11.3

(release date: 24 November 2022)

Release 1.11.2

(release date: 19 October 2022)

Release 1.11.1

(release date: 20 September 2022)

Release 1.11.0

(release date: 12 September 2022)

Release 1.10.0 (deprecated)

(release date: 04 August 2022)

Release 1.9.7

(release date: 22 March 2022)

Release 1.9.6

(release date: 07 February 2022)

Release 1.9.5

(release date: 21 December 2021)

Release 1.9.4

(release date: 19 November 2021)

Release 1.9.3

(release date: 16 June 2021)

  • Bug fix
    1. sb_svl_run : it returns error if there are enabled models with no levels enabled

Release 1.9.2

(release date: 24 May 2021)

Release 1.9.1

(release date: 16 April 2021)

Release 1.9.0

(release date: 13 January 2021)

Release 1.8.4

(release date: 30 June 2020)

  • Bug fix
    1. Surface SVL: a defect near the edge of the analysis roi with an optional part outside the analysis roi could be considered Out Of Roi.
    2. Retina SVL: if a svl was made without putting a sample, mandatory or optional, it happened that, even adding the sample, the training remained corrupt and to unlock the situation it was necessary to reset the svl.

Release 1.8.3

(release date: 16 June 2020)

  • Bug fix
    1. SVL: with both optional and mandatory samples of the same model the svl could end with the error SB_ERR_INTERNAL .
    2. Surface SVL: it could happen that a defect close to but outside the roi generated a sample of defect inside the roi, therefore in the background. This sample created serious training problems.
    3. Surface SVL: it could happen that a defect close but outside the ROI was not counted as Out Of Roi.
    4. Surface SVL: a defect near the edge of the analysis roi with an optional part outside the analysis roi could be considered Out Of Roi.

Release 1.8.1

(release date: 2 April 2020)

  • New features
    1. SVL has been made faster.
    2. Feature 3A has also been enable for grayscale image
    3. Feature 3B, 3C, 3D, 3E have been added
    4. On Linux system the image resize with bilinear interpolation has been added
    5. The vote plane border has been reduced
    6. Surface SVL: SVL works with only warped2roi lut
  • Bug fix
    1. sb_project_get_res : no more error if the roi used for detection has a bounding box with a width/height less than 4. In this case surface planes are not allocated
    2. sb_roi_create : the width_step of the image was not aligned to 4 bytes.
    3. Retina: the weight of the samples was made independent of the position of the analysis ROI
    4. Surface: the quantization of the values close to zero in the voting plan has been corrected. Negative values close to zero are set to 127 instead of 128.
    5. Surface: for scale greater than 1 the value of the pixel of vote plane was made independent of the position of the analysis ROI.
    6. Surface SVL: fixed svl issues in case of too little roi on last svl image and low free memory condition
    7. Surface: fixed incorrect expansion of 3 pixels at the bottom of the voting plan.
    8. sb_surface_blob_analysis considers the defect starting from values greater or equal than 0 instead of greater than 0.
    9. Surface: sb_project_detection didn't consider the value set with function sb_set_circular_image_width
    10. Surface SVL: incremental SVL has been fixed with scale greater than 1x and warping enabled
    11. Surface SVL: SVL worked differently if the same image dataset was passed in RGB format instead of BGR
    12. sb_image_save : fixed false error of memory detected by sb_malloc_check_memory_leak in case of saving of png images
    13. sb_svl_run : the memory leak was fixed if the function was called more than once
    14. sb_svl_run : the function crashes when the project is loaded with SB_PROJECT_LOAD_DETECTION_ONLY
    15. If there are multiple models, sb_svl_run can return the SB_ERR_WRONG_PARAMETER error in the following case: the size of some models has been changed and the labeling of other models has been corrected because the sample has not been inserted in one or more points.
    16. SVL: error management of samples with same UUID
    17. sb_license_get_info : in case of difficult network connection it could happen that the function set sb_t_license_module::err with generic error SB_ERR_LICENSE instead of SB_ERR_LICENSE_FILE . In this case the SB GUI did not start the license tutorial.
  • General
    1. Enums added
    2. Defines added
    3. Functions added

Release 1.8.0

(release date: 17 February 2020)

Release 1.7.11

(release date: 11 Nov 2020)

Release 1.7.10

(release date: 08 Oct 2020)

Release 1.7.9

(release date: 02 Oct 2020)

  • Bug fix
    1. Surface SVL: the first SVL after a change in the models collaborations did not manage the collaborations correctly.

Release 1.7.8

(release date: 22 Jun 2020)

  • New features
    1. Image: image compression and decompression functions
  • Bug fix
    1. SVL: with both optional and mandatory samples of the same model the svl could end with the error SB_ERR_INTERNAL .
    2. Surface SVL: it could happen that a defect close to but outside the roi generated a sample of defect inside the roi, therefore in the background. This sample created serious training problems.
    3. Surface SVL: it could happen that a defect close but outside the ROI was not counted as Out Of Roi.
    4. Surface SVL: a defect near the edge of the analysis roi with an optional part outside the analysis roi could be considered Out Of Roi.
    5. sb_project_save returned error with 64 models.
    6. Surface SVL: correct repeatibility of training in case of different OR defects
    7. Surface SVL: with warped2roi lut, the samples that have the same coordinates on the original image as others already taken are discarded
    8. Surface SVL: the area of the image labeled as defect for a model is ignored by the collaborating models during the training
    9. Retina SVL: if a svl was made without putting a sample, mandatory or optional, it happened that, even adding the sample, the training remained corrupt and to unlock the situation it was necessary to reset the svl.
  • General
    1. Functions modified
    2. Functions added

Release 1.7.7

(release date: 08 May 2020)

  • New features
    1. Retina SVL: SVL works with only warped2roi lut
    2. Surface SVL: Fast mode modified, same features for all the models
  • Bug fix
    1. Retina SVL: in SB_SVL_PAR_OPTIMIZATION_TIME_FAST
      • the user is offered the mandatory reset if there are two or more models with different features
      • the user is offered the mandatory reset if there are multiple models, some of which are trained and others are not
    2. Surface SVL: in some cases if the user had performed a reset, a reset message was erroneously displayed when the SVL was launched

Release 1.7.6

(release date: 27 March 2020)

  • New features
    1. The vote plane border has been reduced
    2. Surface SVL: SVL works with only warped2roi lut
  • Bug fix
    1. Retina: the weight of the samples was made independent of the position of the analysis ROI
    2. Surface: sb_surface_detection didn't consider the value set with the function sb_set_circular_image_width
    3. Surface SVL: incremental SVL has been fixed with scale greater than 1x and warping enabled
    4. Surface SVL: SVL worked differently if the same image dataset was passed in RGB format instead of BGR
    5. sb_image_save : fixed false error of memory detected by sb_malloc_check_memory_leak in case of saving of png images
    6. If there are multiple models, sb_svl_run can return the SB_ERR_WRONG_PARAMETER error in the following case: the size of some models has been changed and the labeling of other models has been corrected because the sample has not been inserted in one or more points.
    7. SVL: error management of samples with same UUID

Release 1.7.5

(release date: 11 March 2020)

  • New features
    1. SVL has been made faster.
    2. Feature 3A has also been enable for grayscale image
    3. On Linux system the image resize with bilinear interpolation has been added
  • Bug fix
    1. sb_surface_blob_analysis : fixed stat update in case of null or too small roi.
    2. Retina: the weight of the samples was made independent of the position of the analysis ROI
    3. Surface: the quantization of the values close to zero in the voting plan has been corrected. Negative values close to zero are set to 127 instead of 128.
    4. Surface: for scale greater than 1 the value of the pixel of vote plane was made independent of the position of the analysis ROI.
    5. Surface SVL: fixed svl issues in case of too little roi on last svl image and low free memory condition
    6. Surface: fixed incorrect expansion of 3 pixels at the bottom of the voting plan.
    7. sb_surface_blob_analysis considers the defect starting from values greater or equal than 0 instead of greater than 0.

Release 1.7.4

(release date: 20 February 2020)

Release 1.7.3

(release date: 27 September 2019)

  1. Bug fix
    • linux: shared object libsb.so not compiled correctly

Release 1.7.1

(release date: 06 September 2019)

  1. New features
    • project notes, image notes, project custom parameters: enabled UNICODE characters
  2. Bug fix
    • sb_project_set_par returned error when called to add a model after has been called to removed a model.
    • sb_project_load , sb_retina_load and sb_surface_load invalidate classificator of the disabled models.

Release 1.7.0

(release date: 29 August 2019)

  1. New features
    • The parameters structures of Retina and Surface projects have been unified.
    • Surface multi model
    • For the classification of optional samples, two specific classes have been added: Optional Positive (SB_TRUTH_OPTIONAL_POSITIVE ) and Optional Negative (and SB_TRUTH_OPTIONAL_NEGATIVE )
    • CPU RAM usage has been optimazed in order to reduce the used space
  2. Bug fix
    • SVL: management of the command SB_SVL_COMMAND_CONTINUE in case of reason SB_SVL_STOP_CONFLICT was fixed.
    • SVL: the samples OUT OF ROI are not used for training
    • SVL: due to wrong assessment, training could have stopped before the required goodness target was reached.
    • SVL: memory leak of the function sb_svl_run was fixed in case an error was returned.
    • It could happen that an image, without samples and without required occurrences with enabled models, would not be classified as True Negative.
  3. General
    1. Functions renamed
    2. Functions eliminated
      • sb_retina_par_init_model
      • sb_retina_par_remove_model (substituted by sb_par_remove_model )
      • sb_retina_par_format (substituted by sb_par_format )
      • sb_retina_get_par (substituted by sb_project_get_par )
      • sb_retina_set_par (substituted by sb_project_set_par )
      • sb_retina_project_get_version (sustituted by sb_project_get_version)
      • sb_retina_get_note (sustituted by sb_project_get_note )
      • sb_retina_set_note (sustituted by sb_project_set_note )
      • sb_retina_invalidate (sustituted by sb_project_invalidate )
      • sb_retina_trained (sustituted by sb_check_trained )
      • sb_retina_detection (sustituted by sb_project_detection )
      • sb_surface_par_init_model
      • sb_surface_par_remove_model (substituted by sb_par_remove_model )
      • sb_surface_par_format (substituted by sb_par_format )
      • sb_surface_get_par (substituted by sb_project_get_par )
      • sb_surface_set_par (substituted by sb_project_set_par )
      • sb_surface_project_get_version (sustituted by sb_project_get_version)
      • sb_surface_get_note (sustituted by sb_project_get_note )
      • sb_surface_set_note (sustituted by sb_project_set_note )
      • sb_surface_invalidate (sustituted by sb_project_invalidate )
      • sb_surface_trained (sustituted by sb_check_trained )
      • sb_surface_detection (sustituted by sb_project_detection )
    3. Functions modified
    4. Functions added
    5. Structures modified
      • sb_t_retina_par and sb_t_surface_par have been merged into sb_t_par.
      • sb_t_sample: field model_index has been removed.
      • sb_t_res: field models has been substituted with field par.
      • sb_t_res: fields global and models have been added.
      • sb_t_stat: field models_number has been removed.
      • sb_t_stat: field par has been added.
      • sb_t_stat: fields op, on have been added
      • sb_t_stat_model: fields name and enabled have been removed.
      • sb_t_stat_model: fields op, on, op_weight_max, op_weight_min, on_weight_max, on_weight_min have been added
      • sb_t_surface_res: field weigth has been renamed to weight
      • sb_t_svl_res: fields list_op, par and list_on have been added
      • sb_t_svl_res: field models_number has been removed
      • sb_t_svl_res_image: fields op and on have been added
      • sb_t_svl_stat: fields op and on have been added
      • sb_t_svl_stat: fields enabled, name and obj_size have been added
      • sb_t_blob: fields lut, model_name, deleted have been added
      • sb_t_blob: field model_index has been removed
      • sb_t_blob_par: field keep_deleted has been added
    6. Structures added
    7. Enums added
    8. Enums modified

Release 1.6.2

(release date: 07 Jun 2019)

  1. New features
    • Demo license has been enabled on Virual Machine.
  2. Bug fix
  3. General
    1. Parameter blob_par.merge_area_min in the structure sb_t_surface_par is initialized to 1 instead of 100.
    2. Function sb_surface_blob_analysis computes the number of TP considering the defects occurrencies instead of the defects ground truth.
    3. Functions added
      • sb_calc_stat_from_res
    4. SB_ERR_LICENSE_VM message has been changed.
    5. The license now also uses the MAC address of ethernet interfaces that are disableb.

Release 1.6.0

(release date: 14 May 2019)

  1. New features
    • Training has been enhanced
    • Training of collaborative models has been enhanced
    • sb_surface_detection : multi thread has been enabled
    • sb_retina_detection : OCR has been added
    • Surface: training has been time optimized
    • Surface: optional defects
    • Surface: training without defects
    • Surface: image classification (good, overkill, escape, no good) has been added
    • Surface: possibility to set the scale factor used to elaborate the image. See parameter scale in structure sb_t_surface_par
    • License with 3 configuration: Basic, Standard, Premium
    • Sample weight has been limited between -1 and 1
    • New features rotation invariant have been added
    • The 32-bit ROI mask has been replaced by the 8-bit BW image representation, see sb_t_roi
    • In the case of Surface, the lists of samples in the structure sb_t_svl_res have been limited to 200 elements
  2. Bug fix
    • Function that evaluates the distance between samples has been fixed.
      The problem concerned the case in which the models had different "objects dimension" and/or "distance between objects".
    • Check of out of roi condition has been fixed
    • If type of project in a image info changes then samples and defects information are removed
    • SVL failed if one of image hasn't defect roi in image_info
    • SVL failed the saving in image info of the learning information if .rtn file contained more projects
  3. General
    1. Functions added
    2. Functions modified
      • Functions sb_threshold_set and sb_threshold_get
        • field scale has been added
      • Function sb_fp_svl_pre_elaboration
        • field image_info has been added
        • field handle has been removed
      • Function sb_image_info_change_project :
        • field project_info_new has been replaced with field module_handle_new
    3. Structures added
    4. Structures modified
      • Structures sb_t_svl_par, sb_t_retina_par, sb_t_surface_par
        • field num_threads: if value equal to 0, the behavior has been changed for physical machines: from all available threads to half of available threads
      • Structure sb_t_surface_par
        • fields model and models_number have been replaced by field models
        • field scale has been added
      • Structure sb_t_blob_par
        • fields gray_min, gray_max have been replaced by field lut
      • Structure sb_t_blob
        • field model_index has been added
      • Structure sb_t_blobs
        • field info_gt has been added
      • Structure sb_t_image
        • Type of field free_data has been changed from int to char*
    5. Defines added:
      • SB_DELIMITER
    6. Defines modified
    7. Enums modified
      • Enum sb_t_project_type
        • value SB_PROJECT_TYPE_BOTH has been added
    8. Error codes added:
  4. Features
    1. New features rotation invariant have been added:
    2. Other features added:
    3. Features removed:
      • SB_FEATURE_2A_RGB
      • SB_FEATURE_2B_RGB
      • SB_FEATURE_2C_RGB
      • SB_FEATURE_2D_RGB
  5. Changes for detection results
    1. Functions added
    2. Functions modified
      • Function sb_retina_copy_res has been renamed to sb_copy_res
    3. Structures added
    4. Structures modified
      • Structure sb_t_res
        • field ocr has been added
        • field models has been added
        • fields v_plane, t_plane and defects_blobs have been replaced by field surface
      • Structure sb_t_stat
        • field good has been added
        • field no_good has been added
        • field overkill has been added
        • field escape has been added
    5. Enums added
      • sb_t_surface_image_truth
  6. Changes for new ROI management
    1. Functions added
    2. Functions modified
    3. Structures added
    4. Structure sb_t_roi
      • fields width, height, width_step, free_data, data have been replaced by field img
      • fields seg, n_seg have been replaced by field rle
      • field bit_mask has been replaced by field lut
    5. Defines removed
      • SB_SURFACE_DEFECTS_OPTIONAL_MASK
    6. Enums removed
      • sb_t_roi_set_operation
  7. Changes for new management of license with configuration (Basic, Standard, Premium)
    1. The following errors code have been added
    2. Error code SB_ERR_LICENSE_FILE_NULL has been renamed to SB_ERR_LICENSE_FILE
    3. Structures added
    4. Structure sb_t_license_module
      • field configuration has been added
      • field training has been added
    5. Enums eliminated
      • sb_t_license_module_code
    6. Enums added
    7. Functions eliminated:
      • sb_license_format_module_code
    8. Functions modified:
    9. Functions added:

Release 1.5.1

(release date: 13 May 2019)

  1. Bug fix
    • sb_folder_remove: fixed a problem that prevents the removing of the folder in some specific conditions

Release 1.5.0

(release date: 31 Oct 2018)

  1. Bug fix
    • Loading of SVl results of project with version less than 1.3.1.2 has been fixed.
  2. New features
    • "Surface" module has been added
    • Blob Analysis
  3. Functions added
  4. Defines added:
    • SB_FEATURE_2D
    • SB_FEATURE_2A_R
    • SB_FEATURE_2AA_R
    • SB_FEATURE_2B_R
    • SB_FEATURE_2C_R
    • SB_FEATURE_2D_R
    • SB_FEATURE_2A_G
    • SB_FEATURE_2AA_G
    • SB_FEATURE_2B_G
    • SB_FEATURE_2C_G
    • SB_FEATURE_2D_G
    • SB_FEATURE_2A_B
    • SB_FEATURE_2AA_B
    • SB_FEATURE_2B_B
    • SB_FEATURE_2C_B
    • SB_FEATURE_2D_B
    • SB_FEATURE_2A_RGB
    • SB_FEATURE_2B_RGB
    • SB_FEATURE_2C_RGB
    • SB_FEATURE_2D_RGB
    • SB_PAR_FEATURES_NAMES_LEN
  5. Enums added
  6. Enums removed
    • sb_t_svl_save_mode
  7. Structures added
  8. Structure sb_t_svl_par
    • field project_file has been removed
  9. Structure sb_t_projects_info
    • field projects has been renamed to info
    • field projects_num has been renamed to size
  10. structure sb_t_svl_res_image
    • field tn has been added
  11. Structure sb_t_sample
    • field bitmask has been removed
  12. Structure sb_t_sample
    • field image_name dimension changed to SB_PAR_STRING_LEN
  13. Structure sb_t_stat_model
    • fields or_weight_max and or_weight_min have been added
  14. Enum sb_t_svl_command:
    • SB_SVL_COMMAND_ABORT has been added
  15. Enum sb_t_license_type:
    • SB_LICENSE_NOT_PRESENT has been added
  16. Function sb_fp_svl_pre_elaboration
    • parameter handle has been added
  17. Function sb_samples_get
    • parameter retina_par has been removed
  18. The following functions have been replaced:
    • sb_retina_save by sb_save
    • sb_svl_save by sb_save
    • sb_retina_svl_load by sb_load
    • sb_retina_destroy by sb_destroy
    • sb_retina_svl_destroy by sb_destroy
    • sb_retina_par_set_custom by sb_par_set_custom
    • sb_retina_par_get_custom by sb_par_get_custom
    • sb_retina_par_remove_custom by sb_par_remove_custom
    • sb_retina_sample_format_truth by sb_format_truth
    • sb_retina_sample_copy by sb_sample_copy
    • sb_retina_sample_weights_image_overlay by sb_sample_weights_image_overlay
    • sb_retina_samples_create by sb_samples_create
    • sb_retina_samples_get by sb_samples_get
    • sb_retina_samples_destroy by sb_samples_destroy
    • sb_retina_samples_copy by sb_samples_copy
    • sb_retina_samples_insert by sb_samples_insert
    • sb_retina_samples_remove by sb_samples_remove
    • sb_retina_samples_set by sb_samples_set
    • sb_retina_sample_get_vertex by sb_sample_get_vertex
    • sb_retina_image_load by sb_image_info_load
    • sb_retina_image_destroy by sb_image_info_destroy
    • sb_retina_image_save by sb_image_info_save
    • sb_retina_image_add_sample by sb_image_info_add_sample
    • sb_retina_image_reset by sb_image_info_reset
    • sb_retina_image_get_classified by sb_image_info_get_classified
    • sb_retina_image_set_classified by sb_image_info_set_classified
    • sb_retina_image_get_type by sb_image_info_get_type
    • sb_retina_image_set_note by sb_image_info_set_note
    • sb_retina_image_get_name by sb_image_info_get_name
    • sb_retina_image_remove_model by sb_image_info_remove_model
    • sb_retina_image_rename_model by sb_image_info_rename_model
    • sb_retina_image_set_note by sb_image_info_set_note
    • sb_retina_image_set_note by sb_image_info_set_note
  19. SB_RETINA_PAR_MODELS_NUM has been renamed to SB_PAR_MODELS_NUM.
  20. SB_RETINA_SAMPLE_SCALE_MIN has been renamed to SB_SAMPLE_SCALE_MIN.
  21. SB_RETINA_SAMPLE_SCALE_MAX has been renamed to SB_SAMPLE_SCALE_MAX.
  22. SB_RETINA_PAR_PERTURBATIONS_NUM has been renamed to SB_PAR_PERTURBATIONS_NUM.
  23. SB_RETINA_VALUE_NOT_SET has been renamed to SB_VALUE_NOT_SET.
  24. SB_RETINA_TRUTH_UNDEFINED has been renamed to SB_TRUTH_UNDEFINED.
  25. SB_RETINA_TRUE_POSITIVE has been renamed to SB_TRUTH_TRUE_POSITIVE.
  26. SB_RETINA_TRUE_NEGATIVE has been renamed to SB_TRUTH_TRUE_NEGATIVE.
  27. SB_RETINA_FALSE_POSITIVE has been renamed to SB_TRUTH_FALSE_POSITIVE.
  28. SB_RETINA_FALSE_NEGATIVE has been renamed to SB_TRUTH_FALSE_NEGATIVE.
  29. SB_RETINA_OUT_OF_ROI has been renamed to SB_TRUTH_OUT_OF_ROI.
  30. SB_RETINA_MODEL_DISABLED has been renamed to SB_TRUTH_MODEL_DISABLED.
  31. SB_RETINA_SAMPLE_REQUIRED has been renamed to SB_SAMPLE_REQUIRED.
  32. SB_RETINA_SAMPLE_OPTIONAL has been renamed to SB_SAMPLE_OPTIONAL.
  33. SB_RETINA_OBJ_TEST has been renamed to SB_OBJ_TEST.
  34. SB_RETINA_OBJ_LEARNING has been renamed to SB_OBJ_LEARNING.
  35. SB_PAR_MODEL_NAME_LEN has been renamed to SB_PAR_STRING_LEN.
  36. sb_t_retina_par_perturbations has been renamed to sb_t_par_perturbations.
  37. sb_t_retina_par_perturbation has been renamed to sb_t_par_perturbation.
  38. sb_t_retina_sample_truth has been renamed to sb_t_truth.
  39. sb_t_retina_sample_classify_mode has been renamed to sb_t_sample_classify_mode.
  40. sb_t_retina_obj_type has been renamed to sb_t_sample_obj_type.
  41. sb_t_retina_sample_weights_image has been renamed to sb_t_sample_weights_image.
  42. sb_t_retina_sample has been renamed to sb_t_sample.
  43. sb_t_retina_samples has been renamed to sb_t_samples.
  44. sb_retina_sample_weights_image_overlay has been renamed to sb_sample_weights_image_overlay.

Release 1.4.0

(release date: 30 Aug 2018)

  1. New features
    • SVL has been improved
    • SVL execution time has been reduced in case there is more than one model
    • Tutorial 8 have been added.
  2. Bug fix
    • The evaluation of the weight of FN or TN samples with scale greater than 0 has been corrected.
    • An incremental SVL did not consider correctly the changes of the samples.
    • During SVL, it could happen that the callback sb_fp_retina_svl_progress was not called that several seconds.
    • Management of images with extension with one or more uppercase characters has been corrected.
    • The SVL could give the error "The function has been called with a parameter with a wrong value" when adding a model after an SVL.
  3. Now sb_retina_image_set_classified clears all the information set by SVL.
  4. Functions added
  5. Structure sb_t_retina_stat_model
    • Field enabled has been added
  6. The following functions have been changed the prototype:
  7. structure sb_t_retina_sample
    • field bit_mask has been removed
  8. structure sb_t_retina_svl_stat
    • field num_obj_l has been renamed to num_img_l
    • field num_obj_l_old has been renamed to num_img_l_old
    • field num_obj has been renamed to num_img
    • field num_obj_old has been renamed to num_img_old
  9. Define SB_RETINA_SCALE_GRANULARITY has been added

Release 1.3.3

(release date: 22 Jun 2018)

  1. Bug fix
    • If the sample was almost as large as the image, the perturbations of rotation could give an error.
    • An error has been fixed in the function that search the best features during SVL. The error could happen only in the case of multiple models and the first model was disabled.

Release 1.3.2.6

(release date: 21 Gen 2019)

  1. compiled for linux with -g option, in order to generates debug information to be used by GDB debugger

Release 1.3.2.5

(release date: 11 Jun 2018)

  1. Bug fix
    • correct loading of project file with version less than 1.1.0.0
    • compatibility of sb_retina_detection with project with version less than 1.1.0.0
    • SVL: if user stops svl during the SB_RETINA_SVL_STEP_SEARCH_BEST_RECIPE, the next SVL doesn't work correctly

Release 1.3.2

(release date: 24 Apr 2018)

  1. New features
    • Automatic reset of the SVL of a model in case:
      1. the features selected in the previous SVL are not more compatible with the format (BW, color) of the images in the data set for SVL
      2. in the features available there isn't some feature used by the previous SVL
      3. the features available when the last SVL was done are changed
      4. the optimization mode when the last SVL was done is changed
    • The user can create the set of the features among which SVL will choose the best features.
    • The user can force SVL to use a set of features
    • The default number of threads used by sb_retina_detection has been set to 1
    • The function sb_retina_get_res also exports occurrences with negative weight.
    • The function sb_retina_get_res also exports, for each sample, the image of the weights.
    • sb_t_retina_svl_par: default value of field free_memory_percentage, for windows os has been changed to 10%
  2. Bug fix
    • If an incremental SVL was made and there was an FN, than the goodness remained at -SB_RETINA_VALUE_NOT_SET and consequently the statistics of the samples (TP, FP, FN) were no longer exported in the SVL results.
    • If a model has a perturbation which does nothing the SVL gives exception.
    • sb_t_retina_sample: field user_data wasn't copied correctly internally
    • In the results of the svl it could happen that the first sample TN did not have the weight equal to the negated of the goodness.
  3. Function sb_retina_get_res
    • parameter details has been added
  4. New errors code added:
    • SB_ERR_NO_FEATURES_AVAILABLE
    • SB_ERR_NO_POINT_FOUND
  5. Structures eliminated
    • sb_t_retina_svl_cls_type
    • sb_t_retina_svl_feature_type
  6. Functions eliminated
    • sb_retina_svl_cls_type_format
    • sb_retina_svl_feature_type_format
    • sb_retina_sample_check
  7. Functions added
    • sb_retina_feature_description
    • sb_file_extract_folder
    • sb_retina_sample_weights_image_overlay
    • sb_retina_image_rename_model
  8. Defines eliminated:
    • SB_RETINA_PAR_FEATURES_NUM
  9. New defines added:
    • SB_RETINA_CLS_0
    • SB_RETINA_CLS_1
    • SB_RETINA_FEATURE_0A
    • SB_RETINA_FEATURE_0B
    • SB_RETINA_FEATURE_2A
    • SB_RETINA_FEATURE_2B
    • SB_RETINA_FEATURE_2C
    • SB_RETINA_FEATURE_3A
    • SB_RETINA_FEATURES
  10. Structure sb_t_retina_par_model
    • field num_occurrences has been added
  11. Structure sb_t_retina_svl_par
    • field features has been added
  12. Structure sb_t_retina_svl_stat
    • field cls_type has been removed
    • field feature_type has been removed
    • field classificator has been added
    • field features has been added
    • field features_available has been added
    • field reset has been added
    • field optimization_mode has been added
    • field optimization_effectiveness has been added
  13. Structure sb_t_retina_sample
    • field vertex_warp has been added
    • field weights_image has been added
  14. Structure sb_t_retina_samples
    • field n_sample has been renamed to size
  15. Structure sb_t_res
    • field sample and nsample replaced by field samples of type sb_t_samples
  16. Structure sb_t_samples
    • field n_sample renamed to size
  17. structure sb_t_retina_stat_model
    • fields tp_weight_min and tp_weight_max have been added
  18. enum sb_t_retina_svl_stop_reason
    • value SB_RETINA_SVL_STOP_MEMORY has been added
    • value SB_RETINA_SVL_STOP_RESET_REQUEST has been added
  19. enum sb_t_svl_par_optimization_mode:
    • SB_SVL_PAR_OPTIMIZATION_USE_SELECTED has been added
  20. enum sb_t_svl_running_step:
    • SB_SVL_STEP_FINALIZATION has been added

Release 1.3.1

(release date: 01 Feb 2018)

  1. New features
    • You can enable and disable separately each model of a project
    • A model can has a different classifcator and features from the other one
    • Classifier and features type used for each model are exported in SVL results.
    • sb_retina_detect has been optimized both using openmp and algoritmic tecnique.
    • TIFF image format management.
      The following compression methods are implemented:
      • none
      • LZW
      • pack bits
    • JPEG image format management.
  2. Bug fix
    • The cls type found by SVL wasn't save in the project file
    • If cls 1 has been selected by SVL all the samples are marked as unused by SVL.
  3. Define SB_INIT_ONLY_SB_LICENSE_KEY has been added.
  4. SB_RETINA_SAMPLE_SCALE_MAX has been increased from 10 to 32
  5. SB_RETINA_SAMPLE_MIN_SCALE has been renamed to SB_RETINA_SAMPLE_SCALE_MIN.
  6. SB_RETINA_SAMPLE_MAX_SCALE has been renamed to SB_RETINA_SAMPLE_SCALE_MAX.
  7. SB_RETINA_SVL_PAR_OPTIMIZATION_GOODNESS has been renamed to SB_RETINA_SVL_PAR_OPTIMIZATION_TIME_SLOW.
  8. SB_RETINA_SVL_PAR_OPTIMIZATION_TIME has been renamed to SB_RETINA_SVL_PAR_OPTIMIZATION_TIME_MEDIUM.
  9. SB_RETINA_SVL_PAR_OPTIMIZATION_TIME_FAST has been added.
  10. "tif;tiff;jpg;jpeg" was added to the define SB_IMAGE_FILE_EXTENSIONS
  11. SB_RETINA_MODEL_DISABLED has been added to enum sb_t_retina_sample_truth
  12. Structure sb_t_retina_par
    • field optimization_mode has been added
  13. Structure sb_t_retina_par_model
    • field enabled has been added
  14. Structure sb_t_retina_svl_stat
    • field mod_disabled has been added
    • field enabled has been added
  15. Structure sb_t_retina_svl_res_image
    • field mod_disabled has been added
  16. Structure sb_t_retina_res
    • field mod_disabled has been added
    • field err has been added
    • field is_valid has been added
  17. Structure sb_t_retina_stat_model
    • field tn has been added
    • field mod_disabled has been added
  18. Structure sb_t_retina_stat
    • field cnt_images has been renamed to elaborated.
    • field time_us_total has been renamed to time_us.
    • field tn has been added
    • field mod_disabled has been added
  19. Structure sb_t_retina_svl_err
    • field num_pos has been renamed to num_samples
  20. The following fields has beed removed from sb_t_retina_sample structure:
    • model_index_gt
    • model_name_gt
    • sample_index
    • ground_truth_dist
  21. sb_retina_detection: the field samples became const.
  22. Field running_step has been added to structure sb_t_retina_svl_res.
  23. New enums added:
    • sb_t_retina_svl_running_step
    • sb_t_retina_svl_cls_type
    • sb_t_retina_svl_feature_type
  24. New functions added: -sb_retina_svl_par_optimization_mode_format
    • sb_retina_svl_running_step_format
    • sb_retina_svl_cls_type_format
    • sb_retina_svl_feature_type_format
    • sb_retina_par_optimization_mode_format
    • sb_retina_image_load
    • sb_retina_image_destroy
    • sb_retina_image_save
    • sb_retina_image_remove_model
    • sb_retina_image_add_sample
    • sb_retina_image_get_name
    • sb_retina_samples_create
  25. The following functions have been replaced:
    • sb_roi_save by sb_roi_set
    • sb_roi_load by sb_roi_get
    • sb_retina_samples_load by sb_retina_samples_get
    • sb_retina_sample_add by sb_retina_image_add_sample
    • sb_retina_samples_reset by sb_retina_image_reset
    • sb_retina_svl_invalidate by sb_retina_invalidate
    • sb_retina_svl_trained by sb_retina_trained
    • sb_retina_project_set_note by sb_retina_set_note
    • sb_retina_project_get_note by sb_retina_get_note
  26. The following functions have been changed the prototype:
    • sb_retina_image_add_sample
    • sb_retina_image_get_classified
    • sb_retina_image_set_classified
    • sb_retina_image_get_type
    • sb_retina_image_set_note
    • sb_retina_image_get_note

Release 1.3.0

(release date: 11 Oct 2017)

  1. New features
    • SVL improvement
    • A new classifier has been added
    • New feature for color detection
    • Multi-feature management
    • PNG image format management
    • Now is possible to invalidate a single model
    • The structure of ROI has been set visible.
  2. "png" was added to the define SB_IMAGE_FILE_EXTENSIONS
  3. Fix an error in function sb_roi_load.
  4. Memory leak fix if version of .rtn file was different from the version of library
  5. The following functions have been removed:
    • sb_roi_set_bit_mask
    • sb_roi_get_ptr
    • sb_roi_get_size
    • sb_roi_set_color
    • sb_roi_get_color
  6. The following functions have been added:
    • sb_folder_load
    • sb_folder_destroy
    • sb_folder_erase
    • sb_folder_create
    • sb_folder_remove
    • sb_folder_exist
    • sb_file_extract_name
    • sb_retina_reset_stat
    • sb_retina_get_stat
    • sb_retina_destroy_stat
    • sb_retina_copy_res
    • sb_version
    • sb_roi_create_header
    • sb_roi_copy
    • sb_roi_compress
    • sb_roi_decompress
  7. Function sb_roi_set_ptr has been renamed to sb_roi_set_data
  8. Structure sb_t_retina_stat has been added.
  9. Structure sb_t_rgba has been added.
  10. Define SB_RETINA_VALUE_NOT_SET has been added
  11. Type of the parameter data of the function sb_image_set_data has been changed from void* to unsigned char**
  12. In the structure sb_t_retina_svl_res field num_img_unclassified has been renamed to num_img_test and field num_img_elab has been renamed to num_img_svl.
  13. Prototype of functions sb_image_create and sb_image_create_header have been changed.
  14. Function sb_retina_load: you cannot longer pass the NULL value for project_file parameter.
  15. sb_retina_svl_invalidate has been changed: the model_name parameter has been added.
  16. sb_retina_svl_trained has been changed: the model_name parameter has been added.
  17. The following error codes have been added:
    • SB_ERR_IMAGE_DECODE
    • SB_ERR_IMAGE_ENCODE

Release 1.2.7

(release date: 30 Jun 2017)

  1. Fix an SVL internal error.
  2. The True Negative samples near a sample SB_SAMPLE_OPTIONAL will no longer be added in the TN list of SVL results.

Release 1.2.6

(release date: 27 Jun 2017)

  1. Fix a roi management error in the SVL procedure

Release 1.2.5

(release date: 05 Jun 2017)

  1. Eliminated the use of std::string

Release 1.2.4

(release date: 25 May 2017)

  1. New features:
    • the ROI can be saved/load in the RTN file referred to acquired image
  2. SB_SVL_PAR_OPTIMIZATION_AUTO has been renamed to SB_SVL_PAR_OPTIMIZATION_GOODNESS
  3. Define SB_IMAGE_EXTENSIONS has been added.
  4. Structure sb_t_svl_par: size of field image_ext has been imcreased from 16 to 64 bytes.
  5. Structure sb_t_bgra has been added.
  6. Function sb_roi_set_color has been added.
  7. Function sb_roi_get_color has been added.
  8. Function sb_trace has been added.
  9. Structure sb_t_retina_par: field num_threads has been added
  10. Prototipe of function sb_roi_load has been changed.

Release 1.2.3

(release date: 05 May 2017)

  1. New features:
    • Sentinel key management has been added.
    • SVL works considering the optimization mode.
    • "scaler" has been added in order to find object with different scale factor.
  2. sb_roi_get_ptr: output parameter width_step has been added.
  3. Error code SB_ERR_SENTINEL has been added.
  4. Error code SB_ERR_LICENSE_FILE_NULL has been renamed to SB_ERR_LICENSE_NOT_FOUND.
  5. Define SB_INIT_ONLY_HW_KEY has been added.
  6. Define SB_INIT_NO_KEY has been added.
  7. Enum sb_t_license_module_status: SB_LICENSE_MODULE_STATUS_WAIT_SERVER has been eliminated.
  8. struct sb_t_svl_res:
    • field iterations has been removed.
    • field best_iteration has been removed.
    • field time_ms_last_improvement has been added.
  9. struct sb_t_svl_par:
    • field optimization_mode has been added.
  10. struct sb_t_retina_par:
    • fields levels, min_scale, max_scale have been removed.
  11. struct sb_t_sample:
    • field image_name contains the name of the file of the image with extension but without path.
  12. SB_RETINA_PAR_MIN_SCALE has been renamed to SB_RETINA_SAMPLE_MIN_SCALE.
  13. SB_RETINA_PAR_MAX_SCALE has been renamed to SB_RETINA_SAMPLE_MAX_SCALE.
  14. SB_RETINA_PAR_SCALE_LEVELS_NUM has been eliminated.
  15. Enum sb_t_retina_reset_mode has been removed.
  16. Function sb_retina_project_reset: parameter mode has been removed.
  17. Function sb_retina_samples_reset: parameter mode has been removed.
  18. struct sb_t_sample:
    • field uuid has been added.
    • field scale_index has been removed.
  19. The following functions have been added
    • sb_retina_sample_get_vertex
    • sb_get_uuid
    • sb_roi_evaluate_bounding_box
    • sb_retina_sample_check
    • sb_image_copy_rect
    • sb_image_flip
    • sb_image_rotate
    • sb_image_resize
    • sb_image_rotate_roi
  20. Parameter msg has been removed from the callback prototype sb_fp_svl_progress.
  21. Function sb_retina_res_destroy has been renamed to sb_destroy_res.

Release 1.2.2

(release date: 28 Feb 2017)

  1. New features: the function sb_retina_svl_load loads the results of the previous executions of SVL. You can use the function sb_svl_get_res to get it.
  2. Bug fix If more models could be that the SVL did not stop by itself.
  3. Bug fix If the first sample is optional a complete SVL returns the error SB_ERR_SAMPLE_NUMBER.
  4. Bug fix sb_retina_detection wrong management of the samples coordinates in case of warping.
  5. Added function sb_retina_svl_reset.
  6. Added function sb_retina_project_get_version.
  7. struct sb_t_retina_svl_par:
    • field incremental has been removed.
    • field images_max_size has been removed.
    • field free_memory_percentage has been added.
  8. struct sb_t_retina_svl_res:
    • field incremental has been removed.
    • field save_res_enabled has been removed.
  9. struct sb_t_retina_svl_stat: field obj_size has been added.
  10. struct sb_t_info:
    • field malloc_size has been added.
    • field malloc_size_max has been added.

Release 1.2.1

(release date: 14 feb 2017)

  1. Renamed from SB_RETINA_OUT_OF_MASK to SB_RETINA_OUT_OF_ROI.
  2. Added function sb_retina_sample_format_truth.
  3. The execution time of SVL has been optimized in the case there were wrong samples.
  4. The execution time of detection has been optimized.
  5. sb_retina_image_set_note: the error code in case the file name is empty has been corrected.
  6. sb_retina_image_get_note: the error code in case the file name is empty has been corrected.
  7. The numbering of errors code has been changed.
  8. The following error codes have been added:
    • SB_ERR_SVL_WAS_NOT_DONE
    • SB_ERR_SVL_WRONG
  9. The following error codes have been renamed:
    • SB_ERR_OCCURRENCE_NOT_FOUND -> SB_ERR_SAMPLE_NOT_FOUND
    • SB_RETINA_SAMPLE_MANDATORY -> SB_RETINA_SAMPLE_REQUIRED
    • SB_ERR_SAMPLES_DISTANCE -> SB_ERR_SAMPLE_DISTANCE
    • SB_ERR_RCF_NAME_EMPTY -> SB_ERR_RPF_NAME_EMPTY
    • SB_ERR_WRONG_SAMPLE -> SB_ERR_SAMPLE_WRONG
    • SB_ERR_WRONG_STRUCT_HEADER_CODE -> SB_ERR_STRUCT_HEADER_WRONG_CODE
    • SB_ERR_WRONG_STRUCT_HEADER_SIZE -> SB_ERR_STRUCT_HEADER_WRONG_SIZE
    • SB_ERR_WRONG_STRUCT_HEADER_VERSION -> SB_ERR_STRUCT_HEADER_WRONG_VERSION
  10. SB_ERR_INVALID_IP has been eliminated and substituted with SB_ERR_SOCKET_INVALID_IP.
  11. SB_ERR_WRONG_TRUTH has been eliminated and substituted with SB_ERR_WRONG_PARAMETER.
  12. Bug fix: the number of sample in the list of TN in the SVL result was 79 instead of 80.

Release 1.2.0

(release date: 03 feb 2017) The first release.

Known but unsolved bugs

Bug:
  1. SB-GUI: with windows 10 virtual machines it can happen that the graphics are overturned