opencv может рисовать прямоугольники и писать текст, что должно дать вам высокую гибкость.
#draw background box for text
cv2.rectangle(frame, (x1, y1 + offset), (x1+label_len_x, y1 + offset + label_len_y), classes_box_colors[class_], thickness = -1)
#draw label
cv2.putText(frame, (meta.names[class_]).decode("utf-8"), (x1, y1 + offset), 1, 1, classes_font_colors, 2, cv2.LINE_AA)