      def compile_detection_images(self, images):
          """ Compile the detection images into batches """
          detect_images = list()
          for image in images:
              self.set_scale(image, is_square=True, scale_up=True)
              detect_images.append(self.set_detect_image(image))
 
</s> remove         try:
            while True:
                exhausted, batch = self.get_batch()
                if not batch:
                    break
                filenames, images = map(list, zip(*batch))
                detect_images = self.compile_detection_images(images)
                batch_detected = self.detect_batch(detect_images)
                processed = self.process_output(batch_detected,
                                                indexes=None,
                                                rotation_matrix=None,
                                                output=None)
                if not all(faces
                           for faces in processed) and self.rotation != [0]:
                    processed = self.process_rotations(detect_images,
                                                       processed)
                for idx, faces in enumerate(processed):
                    retval = {"filename": filenames[idx],
                              "image": images[idx],
                              "detected_faces": faces}
                    self.finalize(retval)
                if exhausted:
                    break
        except:
            retval = {"exception": True}
            self.queues["out"].put(retval)
            del self.detector  # Free up VRAM
            raise

 </s> add         while True:
            exhausted, batch = self.get_batch()
            if not batch:
                break
            filenames = list()
            images = list()
            for item in batch:
                filenames.append(item["filename"])
                images.append(item["image"])
            detect_images = self.compile_detection_images(images)
            batch_detected = self.detect_batch(detect_images)
            processed = self.process_output(batch_detected,
                                            indexes=None,
                                            rotation_matrix=None,
                                            output=None)
            if not all(faces for faces in processed) and self.rotation != [0]:
                processed = self.process_rotations(detect_images, processed)
            for idx, faces in enumerate(processed):
                filename = filenames[idx]
                for b_idx, item in enumerate(batch):
                    if item["filename"] == filename:
                        output = item
                        del_idx = b_idx
                        break
                output["detected_faces"] = faces
                self.finalize(output)
                del batch[del_idx]
            if exhausted:
                break
        logger.trace("Compiling Detection Images: %s", len(images))
      def compile_detection_images(self, images):
          """ Compile the detection images into batches """
        logger.trace("Compiling Detection Images: %s", len(images))
          detect_images = list()
          for image in images:
              self.set_scale(image, is_square=True, scale_up=True)
              detect_images.append(self.set_detect_image(image))
keep add keep keep keep keep
 Logging (#541)

* Convert prints to logger. Further logging improvements. Tidy  up

* Fix system verbosity. Allow SystemExit

* Fix reload extract bug

* Child Traceback handling

* Safer shutdown procedure

* Add shutdown event to queue manager

* landmarks_as_xy > property. GUI notes + linting. Aligner bugfix

* fix FaceFilter. Enable nFilter when no Filter is supplied

* Fix blurry face filter

* Continue on IO error. Better error handling

* Explicitly print stack trace tocrash log

* Windows Multiprocessing bugfix

* Add git info and conda version to crash log

* Windows/Anaconda mp bugfix

* Logging fixes for training 
plugins/extract/detect/dlib_cnn.py