mirror of
https://github.com/blakeblackshear/frigate.git
synced 2025-01-02 00:07:11 +01:00
Fix: workaround for drawing non-latin characters (#7686)
* Add transliteration support to draw_box_with_label function * isort
This commit is contained in:
parent
3dd0192fe6
commit
500d369c50
@ -23,6 +23,7 @@ scipy == 1.11.*
|
|||||||
norfair == 2.2.*
|
norfair == 2.2.*
|
||||||
setproctitle == 1.3.*
|
setproctitle == 1.3.*
|
||||||
ws4py == 0.5.*
|
ws4py == 0.5.*
|
||||||
|
unidecode == 1.3.*
|
||||||
# Openvino Library - Custom built with MYRIAD support
|
# Openvino Library - Custom built with MYRIAD support
|
||||||
openvino @ https://github.com/NateMeyer/openvino-wheels/releases/download/multi-arch_2022.3.1/openvino-2022.3.1-1-cp39-cp39-manylinux_2_31_x86_64.whl; platform_machine == 'x86_64'
|
openvino @ https://github.com/NateMeyer/openvino-wheels/releases/download/multi-arch_2022.3.1/openvino-2022.3.1-1-cp39-cp39-manylinux_2_31_x86_64.whl; platform_machine == 'x86_64'
|
||||||
openvino @ https://github.com/NateMeyer/openvino-wheels/releases/download/multi-arch_2022.3.1/openvino-2022.3.1-1-cp39-cp39-linux_aarch64.whl; platform_machine == 'aarch64'
|
openvino @ https://github.com/NateMeyer/openvino-wheels/releases/download/multi-arch_2022.3.1/openvino-2022.3.1-1-cp39-cp39-linux_aarch64.whl; platform_machine == 'aarch64'
|
||||||
|
@ -5,7 +5,7 @@ import numpy as np
|
|||||||
from norfair.drawing.color import Palette
|
from norfair.drawing.color import Palette
|
||||||
from norfair.drawing.drawer import Drawer
|
from norfair.drawing.drawer import Drawer
|
||||||
|
|
||||||
from frigate.util.image import intersection
|
from frigate.util.image import intersection, transliterate_to_latin
|
||||||
from frigate.util.object import (
|
from frigate.util.object import (
|
||||||
get_cluster_boundary,
|
get_cluster_boundary,
|
||||||
get_cluster_candidates,
|
get_cluster_candidates,
|
||||||
@ -82,6 +82,11 @@ class TestRegion(unittest.TestCase):
|
|||||||
|
|
||||||
assert len(cluster_candidates) == 2
|
assert len(cluster_candidates) == 2
|
||||||
|
|
||||||
|
def test_transliterate_to_latin(self):
|
||||||
|
self.assertEqual(transliterate_to_latin("frégate"), "fregate")
|
||||||
|
self.assertEqual(transliterate_to_latin("utilité"), "utilite")
|
||||||
|
self.assertEqual(transliterate_to_latin("imágé"), "image")
|
||||||
|
|
||||||
def test_cluster_boundary(self):
|
def test_cluster_boundary(self):
|
||||||
boxes = [(100, 100, 200, 200), (215, 215, 325, 325)]
|
boxes = [(100, 100, 200, 200), (215, 215, 325, 325)]
|
||||||
boundary_boxes = [
|
boundary_boxes = [
|
||||||
|
@ -9,10 +9,32 @@ from typing import AnyStr, Optional
|
|||||||
|
|
||||||
import cv2
|
import cv2
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
from unidecode import unidecode
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
def transliterate_to_latin(text: str) -> str:
|
||||||
|
"""
|
||||||
|
Transliterate a given text to Latin.
|
||||||
|
|
||||||
|
This function uses the unidecode library to transliterate the input text to Latin.
|
||||||
|
It is useful for converting texts with diacritics or non-Latin characters to a
|
||||||
|
Latin equivalent.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
text (str): The text to be transliterated.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
str: The transliterated text.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
>>> transliterate_to_latin('frégate')
|
||||||
|
'fregate'
|
||||||
|
"""
|
||||||
|
return unidecode(text)
|
||||||
|
|
||||||
|
|
||||||
def draw_timestamp(
|
def draw_timestamp(
|
||||||
frame,
|
frame,
|
||||||
timestamp,
|
timestamp,
|
||||||
@ -116,6 +138,9 @@ def draw_box_with_label(
|
|||||||
):
|
):
|
||||||
if color is None:
|
if color is None:
|
||||||
color = (0, 0, 255)
|
color = (0, 0, 255)
|
||||||
|
try:
|
||||||
|
display_text = transliterate_to_latin("{}: {}".format(label, info))
|
||||||
|
except Exception:
|
||||||
display_text = "{}: {}".format(label, info)
|
display_text = "{}: {}".format(label, info)
|
||||||
cv2.rectangle(frame, (x_min, y_min), (x_max, y_max), color, thickness)
|
cv2.rectangle(frame, (x_min, y_min), (x_max, y_max), color, thickness)
|
||||||
font_scale = 0.5
|
font_scale = 0.5
|
||||||
|
Loading…
Reference in New Issue
Block a user