              return
          color = self.colors[color_id]
          for idx, roi in enumerate(self.roi):
              top_left = [point for point in roi.squeeze()[0]]
              top_left = (top_left[0], top_left[1] - 10)
              cv2.putText(self.image,  # pylint: disable=no-member
                          str(idx),
                          top_left,
                          cv2.FONT_HERSHEY_DUPLEX,  # pylint: disable=no-member
 
</s> remove             putText(self.image, str(idx), top_left, FONT_HERSHEY_DUPLEX, 1.0,
                    color, thickness)
            polylines(self.image, [roi], True, color, thickness)
 </s> add             cv2.putText(self.image,  # pylint: disable=no-member
                        str(idx),
                        top_left,
                        cv2.FONT_HERSHEY_DUPLEX,  # pylint: disable=no-member
                        1.0,
                        color,
                        thickness)
            cv2.polylines(self.image, [roi], True, color, thickness)  # pylint: disable=no-member </s> remove                 fillPoly(overlay, roi, (0, 0, 0))
        addWeighted(overlay, alpha, self.image, 1 - alpha, 0, self.image)
 </s> add                 logger.trace("Greying out face: (idx: %s, roi: %s)", idx, roi)
                cv2.fillPoly(overlay, roi, (0, 0, 0))  # pylint: disable=no-member
        cv2.addWeighted(overlay,  # pylint: disable=no-member
                        alpha,
                        self.image,
                        1 - alpha,
                        0,
                        self.image) </s> remove             bottom_right = (alignment["x"] + alignment["w"],
                            alignment["y"] + alignment["h"])
            rectangle(self.image, top_left, bottom_right,
                      color, thickness)
 </s> add             bottom_right = (alignment["x"] + alignment["w"], alignment["y"] + alignment["h"])
            logger.trace("Drawing bounding box: (top_left: %s, bottom_right: %s, color: %s, "
                         "thickness: %s)", top_left, bottom_right, color, thickness)
            cv2.rectangle(self.image,  # pylint: disable=no-member
                          top_left,
                          bottom_right,
                          color,
                          thickness) </s> remove                 circle(self.image, (pos_x, pos_y), radius, color, -1)
 </s> add                 cv2.circle(self.image,  # pylint: disable=no-member
                           (pos_x, pos_y),
                           radius,
                           color,
                           -1)
            logger.trace("Drawing Extract Box: (idx: %s, roi: %s)", idx, roi)
              return
          color = self.colors[color_id]
          for idx, roi in enumerate(self.roi):
            logger.trace("Drawing Extract Box: (idx: %s, roi: %s)", idx, roi)
              top_left = [point for point in roi.squeeze()[0]]
              top_left = (top_left[0], top_left[1] - 10)
              cv2.putText(self.image,  # pylint: disable=no-member
                          str(idx),
                          top_left,
                          cv2.FONT_HERSHEY_DUPLEX,  # pylint: disable=no-member
keep keep add keep keep keep keep keep keep
 Add Face Hashes to Alignments (#550)

* Convert main scripts to use face hashes

* Alignment tool: Use hashes, add logging, add face rename function

* More logging. Update Manual tool to work with hashing 
tools/lib_alignments/annotate.py