def process_image(self, image): """Process an image.""" self._state = None self._targets_confidences = [] self._predictions = {} try: self._dsobject.detect(image) except ds.DeepstackException as exc: _LOGGER.error("Depstack error : %s", exc) return predictions = self._dsobject.predictions.copy() if len(predictions) > 0: raw_confidences = ds.get_object_confidences(predictions, self._target) self._targets_confidences = [ ds.format_confidence(confidence) for confidence in raw_confidences ] self._state = len( ds.get_confidences_above_threshold( self._targets_confidences, self._confidence ) ) self._predictions = ds.get_objects_summary(predictions) self.fire_prediction_events(predictions, self._confidence) if hasattr(self, "_save_file_folder") and self._state > 0: self.save_image( image, predictions, self._target, self._save_file_folder )
def process_image(self, image): """Process an image.""" self._image_width, self._image_height = Image.open( io.BytesIO(bytearray(image))).size self._state = None self._targets_confidences = [] self._predictions = {} self._summary = {} try: self._dsobject.detect(image) except ds.DeepstackException as exc: _LOGGER.error("Depstack error : %s", exc) return self._predictions = self._dsobject.predictions.copy() if len(self._predictions) > 0: raw_confidences = ds.get_object_confidences( self._predictions, self._target) self._targets_confidences = [ ds.format_confidence(confidence) for confidence in raw_confidences ] self._state = len( ds.get_confidences_above_threshold(self._targets_confidences, self._confidence)) if self._state > 0: self._last_detection = dt_util.now().strftime(DATETIME_FORMAT) self._summary = ds.get_objects_summary(self._predictions) self.fire_prediction_events(self._predictions, self._confidence) if hasattr(self, "_save_file_folder") and self._state > 0: self.save_image(image, self._predictions, self._target, self._save_file_folder)
def test_get_object_confidences(): object_confidences = ds.get_object_confidences(MOCK_OBJECT_PREDICTIONS, "person") assert object_confidences == MOCK_OBJECT_CONFIDENCES