Compare commits

..

17 Commits

Author SHA1 Message Date
Hosted Weblate
46f97f9aae
Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 100.0% (40 of 40 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 100.0% (72 of 72 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 100.0% (639 of 639 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 100.0% (52 of 52 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 100.0% (116 of 116 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 100.0% (55 of 55 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 100.0% (48 of 48 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: OverTheHillsAndFarAway <prosjektx@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/nb_NO/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-12-02 15:21:41 +01:00
Hosted Weblate
c9c6dbb581
Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (55 of 55 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (40 of 40 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (92 of 92 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (119 of 119 strings)

Co-authored-by: GuoQing Liu <842607283@qq.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/zh_Hans/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-system
2025-12-02 15:21:40 +01:00
Hosted Weblate
12dd8570df
Translated using Weblate (Slovak)
Currently translated at 100.0% (116 of 116 strings)

Translated using Weblate (Slovak)

Currently translated at 100.0% (55 of 55 strings)

Translated using Weblate (Slovak)

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (Slovak)

Currently translated at 100.0% (501 of 501 strings)

Translated using Weblate (Slovak)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (Slovak)

Currently translated at 100.0% (52 of 52 strings)

Translated using Weblate (Slovak)

Currently translated at 100.0% (639 of 639 strings)

Translated using Weblate (Slovak)

Currently translated at 100.0% (128 of 128 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jakub K <klacanjakub0@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/sk/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-12-02 15:21:39 +01:00
Hosted Weblate
7e07111483
Translated using Weblate (Swedish)
Currently translated at 100.0% (118 of 118 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (40 of 40 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (Swedish)

Currently translated at 98.3% (117 of 119 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (55 of 55 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kristian Johansson <knmjohansson@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/sv/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
2025-12-02 15:21:38 +01:00
Hosted Weblate
4ccaecf294
Translated using Weblate (French)
Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (French)

Currently translated at 100.0% (40 of 40 strings)

Translated using Weblate (French)

Currently translated at 100.0% (55 of 55 strings)

Translated using Weblate (French)

Currently translated at 100.0% (128 of 128 strings)

Co-authored-by: Apocoloquintose <bertrand.moreux@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/fr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/fr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/fr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/fr/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
2025-12-02 15:21:37 +01:00
Hosted Weblate
bcaad3a017
Translated using Weblate (Spanish)
Currently translated at 90.2% (83 of 92 strings)

Co-authored-by: Hernán Rossetto <hmronline@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/es/
Translation: Frigate NVR/views-live
2025-12-02 15:21:37 +01:00
Hosted Weblate
8728ce228d
Translated using Weblate (Dutch)
Currently translated at 100.0% (40 of 40 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (55 of 55 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (128 of 128 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Marijn <168113859+Marijn0@users.noreply.github.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/nl/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
2025-12-02 15:21:36 +01:00
Hosted Weblate
952cf19593
Translated using Weblate (Italian)
Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (40 of 40 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (55 of 55 strings)

Co-authored-by: Gringo <ita.translations@tiscali.it>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/it/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
2025-12-02 15:21:35 +01:00
Hosted Weblate
21bbf25ba1
Translated using Weblate (Polish)
Currently translated at 89.2% (570 of 639 strings)

Translated using Weblate (Polish)

Currently translated at 92.9% (119 of 128 strings)

Translated using Weblate (Polish)

Currently translated at 98.1% (210 of 214 strings)

Translated using Weblate (Polish)

Currently translated at 85.4% (546 of 639 strings)

Translated using Weblate (Polish)

Currently translated at 95.0% (38 of 40 strings)

Translated using Weblate (Polish)

Currently translated at 83.5% (107 of 128 strings)

Translated using Weblate (Polish)

Currently translated at 98.0% (51 of 52 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (92 of 92 strings)

Translated using Weblate (Polish)

Currently translated at 37.8% (45 of 119 strings)

Co-authored-by: Bartlomiej Puls <bartlomiej.puls@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: piesu <dogiiee@proton.me>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/pl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/pl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/pl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/pl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/pl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/pl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/pl/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-12-02 15:21:34 +01:00
Hosted Weblate
88476b3117
Translated using Weblate (Czech)
Currently translated at 63.2% (404 of 639 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Martin Brož <code@martin-broz.cz>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/cs/
Translation: Frigate NVR/views-settings
2025-12-02 15:21:33 +01:00
Hosted Weblate
8127551d83
Translated using Weblate (Catalan)
Currently translated at 100.0% (40 of 40 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (55 of 55 strings)

Co-authored-by: Eduardo Pastor Fernández <123eduardoneko123@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/ca/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
2025-12-02 15:21:32 +01:00
Hosted Weblate
b2ad8a783b
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (40 of 40 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (55 of 55 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (128 of 128 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Максим Горпиніч <gorpinicmaksim0@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/uk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/uk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/uk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/uk/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
2025-12-02 15:21:31 +01:00
Hosted Weblate
01395cde9f
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Bulgarian)

Currently translated at 9.0% (5 of 55 strings)

Translated using Weblate (Bulgarian)

Currently translated at 0.7% (5 of 639 strings)

Translated using Weblate (Bulgarian)

Currently translated at 15.3% (2 of 13 strings)

Translated using Weblate (Bulgarian)

Currently translated at 31.5% (29 of 92 strings)

Translated using Weblate (Bulgarian)

Currently translated at 2.3% (3 of 128 strings)

Translated using Weblate (Bulgarian)

Currently translated at 20.0% (2 of 10 strings)

Translated using Weblate (Bulgarian)

Currently translated at 9.6% (5 of 52 strings)

Translated using Weblate (Bulgarian)

Currently translated at 22.5% (9 of 40 strings)

Translated using Weblate (Bulgarian)

Currently translated at 20.0% (2 of 10 strings)

Translated using Weblate (Bulgarian)

Currently translated at 6.2% (3 of 48 strings)

Translated using Weblate (Bulgarian)

Currently translated at 0.8% (1 of 119 strings)

Translated using Weblate (Bulgarian)

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Bulgarian)

Currently translated at 2.3% (3 of 128 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Skye Fox <mardymcfly1985@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/bg/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/bg/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-icons/bg/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-input/bg/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/bg/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/bg/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/bg/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/bg/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/bg/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/bg/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/bg/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/bg/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/bg/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/bg/
Translation: Frigate NVR/components-auth
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-icons
Translation: Frigate NVR/components-input
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-configeditor
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-12-02 15:21:30 +01:00
Hosted Weblate
5e51792fad
Translated using Weblate (Romanian)
Currently translated at 100.0% (40 of 40 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (55 of 55 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (128 of 128 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: lukasig <lukasig@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/ro/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
2025-12-02 15:21:29 +01:00
Hosted Weblate
3b4e5aae03
Translated using Weblate (German)
Currently translated at 100.0% (501 of 501 strings)

Translated using Weblate (German)

Currently translated at 100.0% (52 of 52 strings)

Translated using Weblate (German)

Currently translated at 99.8% (638 of 639 strings)

Translated using Weblate (German)

Currently translated at 99.8% (638 of 639 strings)

Translated using Weblate (German)

Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (German)

Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (German)

Currently translated at 100.0% (10 of 10 strings)

Translated using Weblate (German)

Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (German)

Currently translated at 100.0% (639 of 639 strings)

Translated using Weblate (German)

Currently translated at 100.0% (119 of 119 strings)

Translated using Weblate (German)

Currently translated at 100.0% (214 of 214 strings)

Translated using Weblate (German)

Currently translated at 100.0% (40 of 40 strings)

Translated using Weblate (German)

Currently translated at 100.0% (92 of 92 strings)

Translated using Weblate (German)

Currently translated at 100.0% (501 of 501 strings)

Translated using Weblate (German)

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (German)

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (German)

Currently translated at 99.5% (213 of 214 strings)

Translated using Weblate (German)

Currently translated at 99.5% (213 of 214 strings)

Translated using Weblate (German)

Currently translated at 83.5% (534 of 639 strings)

Translated using Weblate (German)

Currently translated at 93.8% (470 of 501 strings)

Translated using Weblate (German)

Currently translated at 98.9% (91 of 92 strings)

Translated using Weblate (German)

Currently translated at 100.0% (52 of 52 strings)

Translated using Weblate (German)

Currently translated at 100.0% (39 of 39 strings)

Translated using Weblate (German)

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (German)

Currently translated at 100.0% (128 of 128 strings)

Translated using Weblate (German)

Currently translated at 100.0% (116 of 116 strings)

Translated using Weblate (German)

Currently translated at 100.0% (116 of 116 strings)

Translated using Weblate (German)

Currently translated at 34.4% (40 of 116 strings)

Translated using Weblate (German)

Currently translated at 94.8% (37 of 39 strings)

Translated using Weblate (German)

Currently translated at 100.0% (55 of 55 strings)

Translated using Weblate (German)

Currently translated at 78.0% (499 of 639 strings)

Translated using Weblate (German)

Currently translated at 98.4% (126 of 128 strings)

Translated using Weblate (German)

Currently translated at 29.3% (34 of 116 strings)

Translated using Weblate (German)

Currently translated at 96.0% (123 of 128 strings)

Translated using Weblate (German)

Currently translated at 78.0% (499 of 639 strings)

Co-authored-by: Fuxle <moritz.hofmann2005@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Sebastian Sie <sebastian.neuplanitz@googlemail.com>
Co-authored-by: jmtatsch <julian@tatsch.it>
Co-authored-by: mvdberge <micha.vordemberge@christmann.info>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/de/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-auth
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-12-02 15:21:28 +01:00
Hosted Weblate
0e7fd7410f
Translated using Weblate (Portuguese (Brazil))
Currently translated at 29.3% (34 of 116 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jose Machado <machado.jm4@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/pt_BR/
Translation: Frigate NVR/views-classificationmodel
2025-12-02 15:21:27 +01:00
Hosted Weblate
198f19654c
Translated using Weblate (Turkish)
Currently translated at 98.5% (211 of 214 strings)

Translated using Weblate (Turkish)

Currently translated at 66.3% (77 of 116 strings)

Translated using Weblate (Turkish)

Currently translated at 63.7% (74 of 116 strings)

Translated using Weblate (Turkish)

Currently translated at 97.6% (209 of 214 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (55 of 55 strings)

Translated using Weblate (Turkish)

Currently translated at 94.5% (121 of 128 strings)

Translated using Weblate (Turkish)

Currently translated at 93.7% (120 of 128 strings)

Translated using Weblate (Turkish)

Currently translated at 94.5% (87 of 92 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (39 of 39 strings)

Translated using Weblate (Turkish)

Currently translated at 58.9% (377 of 639 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (52 of 52 strings)

Co-authored-by: Emircanos <emircan368@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/tr/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-12-02 15:21:26 +01:00
27 changed files with 113 additions and 666 deletions

View File

@ -136,6 +136,7 @@ jobs:
*.cache-to=type=registry,ref=${{ steps.setup.outputs.cache-name }}-tensorrt,mode=max
- name: AMD/ROCm general build
env:
AMDGPU: gfx
HSA_OVERRIDE: 0
uses: docker/bake-action@v6
with:

View File

@ -3,6 +3,7 @@
# https://askubuntu.com/questions/972516/debian-frontend-environment-variable
ARG DEBIAN_FRONTEND=noninteractive
ARG ROCM=1
ARG AMDGPU=gfx900
ARG HSA_OVERRIDE_GFX_VERSION
ARG HSA_OVERRIDE
@ -10,6 +11,7 @@ ARG HSA_OVERRIDE
FROM wget AS rocm
ARG ROCM
ARG AMDGPU
RUN apt update -qq && \
apt install -y wget gpg && \
@ -34,10 +36,7 @@ FROM deps AS deps-prelim
COPY docker/rocm/debian-backports.sources /etc/apt/sources.list.d/debian-backports.sources
RUN apt-get update && \
apt-get install -y libnuma1 && \
apt-get install -qq -y -t bookworm-backports mesa-va-drivers mesa-vulkan-drivers && \
# Install C++ standard library headers for HIPRTC kernel compilation fallback
apt-get install -qq -y libstdc++-12-dev && \
rm -rf /var/lib/apt/lists/*
apt-get install -qq -y -t bookworm-backports mesa-va-drivers mesa-vulkan-drivers
WORKDIR /opt/frigate
COPY --from=rootfs / /
@ -55,14 +54,12 @@ RUN pip3 uninstall -y onnxruntime \
FROM scratch AS rocm-dist
ARG ROCM
ARG AMDGPU
COPY --from=rocm /opt/rocm-$ROCM/bin/rocminfo /opt/rocm-$ROCM/bin/migraphx-driver /opt/rocm-$ROCM/bin/
# Copy MIOpen database files for gfx10xx and gfx11xx only (RDNA2/RDNA3)
COPY --from=rocm /opt/rocm-$ROCM/share/miopen/db/*gfx10* /opt/rocm-$ROCM/share/miopen/db/
COPY --from=rocm /opt/rocm-$ROCM/share/miopen/db/*gfx11* /opt/rocm-$ROCM/share/miopen/db/
# Copy rocBLAS library files for gfx10xx and gfx11xx only
COPY --from=rocm /opt/rocm-$ROCM/lib/rocblas/library/*gfx10* /opt/rocm-$ROCM/lib/rocblas/library/
COPY --from=rocm /opt/rocm-$ROCM/lib/rocblas/library/*gfx11* /opt/rocm-$ROCM/lib/rocblas/library/
COPY --from=rocm /opt/rocm-$ROCM/share/miopen/db/*$AMDGPU* /opt/rocm-$ROCM/share/miopen/db/
COPY --from=rocm /opt/rocm-$ROCM/share/miopen/db/*gfx908* /opt/rocm-$ROCM/share/miopen/db/
COPY --from=rocm /opt/rocm-$ROCM/lib/rocblas/library/*$AMDGPU* /opt/rocm-$ROCM/lib/rocblas/library/
COPY --from=rocm /opt/rocm-dist/ /
#######################################################################

View File

@ -1,3 +1,6 @@
variable "AMDGPU" {
default = "gfx900"
}
variable "ROCM" {
default = "7.1.1"
}
@ -35,6 +38,7 @@ target rocm {
}
platforms = ["linux/amd64"]
args = {
AMDGPU = AMDGPU,
ROCM = ROCM,
HSA_OVERRIDE_GFX_VERSION = HSA_OVERRIDE_GFX_VERSION,
HSA_OVERRIDE = HSA_OVERRIDE

View File

@ -1,15 +1,53 @@
BOARDS += rocm
# AMD/ROCm is chunky so we build couple of smaller images for specific chipsets
ROCM_CHIPSETS:=gfx900:9.0.0 gfx1030:10.3.0 gfx1100:11.0.0
local-rocm: version
$(foreach chipset,$(ROCM_CHIPSETS), \
AMDGPU=$(word 1,$(subst :, ,$(chipset))) \
HSA_OVERRIDE_GFX_VERSION=$(word 2,$(subst :, ,$(chipset))) \
HSA_OVERRIDE=1 \
docker buildx bake --file=docker/rocm/rocm.hcl rocm \
--set rocm.tags=frigate:latest-rocm-$(word 1,$(subst :, ,$(chipset))) \
--load \
&&) true
unset HSA_OVERRIDE_GFX_VERSION && \
HSA_OVERRIDE=0 \
AMDGPU=gfx \
docker buildx bake --file=docker/rocm/rocm.hcl rocm \
--set rocm.tags=frigate:latest-rocm \
--load
build-rocm: version
$(foreach chipset,$(ROCM_CHIPSETS), \
AMDGPU=$(word 1,$(subst :, ,$(chipset))) \
HSA_OVERRIDE_GFX_VERSION=$(word 2,$(subst :, ,$(chipset))) \
HSA_OVERRIDE=1 \
docker buildx bake --file=docker/rocm/rocm.hcl rocm \
--set rocm.tags=$(IMAGE_REPO):${GITHUB_REF_NAME}-$(COMMIT_HASH)-rocm-$(chipset) \
&&) true
unset HSA_OVERRIDE_GFX_VERSION && \
HSA_OVERRIDE=0 \
AMDGPU=gfx \
docker buildx bake --file=docker/rocm/rocm.hcl rocm \
--set rocm.tags=$(IMAGE_REPO):${GITHUB_REF_NAME}-$(COMMIT_HASH)-rocm
push-rocm: build-rocm
$(foreach chipset,$(ROCM_CHIPSETS), \
AMDGPU=$(word 1,$(subst :, ,$(chipset))) \
HSA_OVERRIDE_GFX_VERSION=$(word 2,$(subst :, ,$(chipset))) \
HSA_OVERRIDE=1 \
docker buildx bake --file=docker/rocm/rocm.hcl rocm \
--set rocm.tags=$(IMAGE_REPO):${GITHUB_REF_NAME}-$(COMMIT_HASH)-rocm-$(chipset) \
--push \
&&) true
unset HSA_OVERRIDE_GFX_VERSION && \
HSA_OVERRIDE=0 \
AMDGPU=gfx \
docker buildx bake --file=docker/rocm/rocm.hcl rocm \
--set rocm.tags=$(IMAGE_REPO):${GITHUB_REF_NAME}-$(COMMIT_HASH)-rocm \
--push

View File

@ -13,7 +13,7 @@ Frigate supports multiple different detectors that work on different types of ha
**Most Hardware**
- [Coral EdgeTPU](#edge-tpu-detector): The Google Coral EdgeTPU is available in USB, Mini PCIe, and m.2 formats allowing for a wide range of compatibility with devices.
- [Coral EdgeTPU](#edge-tpu-detector): The Google Coral EdgeTPU is available in USB and m.2 format allowing for a wide range of compatibility with devices.
- [Hailo](#hailo-8): The Hailo8 and Hailo8L AI Acceleration module is available in m.2 format with a HAT for RPi devices, offering a wide range of compatibility with devices.
- <CommunityBadge /> [MemryX](#memryx-mx3): The MX3 Acceleration module is available in m.2 format, offering broad compatibility across various platforms.
- <CommunityBadge /> [DeGirum](#degirum): Service for using hardware devices in the cloud or locally. Hardware and models provided on the cloud on [their website](https://hub.degirum.com).
@ -69,10 +69,12 @@ Frigate provides the following builtin detector types: `cpu`, `edgetpu`, `hailo8
## Edge TPU Detector
The Edge TPU detector type runs TensorFlow Lite models utilizing the Google Coral delegate for hardware acceleration. To configure an Edge TPU detector, set the `"type"` attribute to `"edgetpu"`.
The Edge TPU detector type runs a TensorFlow Lite model utilizing the Google Coral delegate for hardware acceleration. To configure an Edge TPU detector, set the `"type"` attribute to `"edgetpu"`.
The Edge TPU device can be specified using the `"device"` attribute according to the [Documentation for the TensorFlow Lite Python API](https://coral.ai/docs/edgetpu/multiple-edgetpu/#using-the-tensorflow-lite-python-api). If not set, the delegate will use the first device it finds.
A TensorFlow Lite model is provided in the container at `/edgetpu_model.tflite` and is used by this detector type by default. To provide your own model, bind mount the file into the container and provide the path with `model.path`.
:::tip
See [common Edge TPU troubleshooting steps](/troubleshooting/edgetpu) if the Edge TPU is not detected.
@ -144,52 +146,6 @@ detectors:
device: pci
```
### EdgeTPU Supported Models
| Model | Notes |
| ------------------------------------- | ------------------------------------------- |
| [MobileNet v2](#ssdlite-mobilenet-v2) | Default model |
| [YOLOv9](#yolo-v9) | More accurate but slower than default model |
#### SSDLite MobileNet v2
A TensorFlow Lite model is provided in the container at `/edgetpu_model.tflite` and is used by this detector type by default. To provide your own model, bind mount the file into the container and provide the path with `model.path`.
A Tensorflow Lite is provided in the container at `/openvino-model/ssdlite_mobilenet_v2.xml` and is used by this detector type by default. The model comes from Intel's Open Model Zoo [SSDLite MobileNet V2](https://github.com/openvinotoolkit/open_model_zoo/tree/master/models/public/ssdlite_mobilenet_v2) and is converted to an INT8 precision model.
#### YOLO v9
[YOLOv9](https://github.com/dbro/frigate-detector-edgetpu-yolo9/releases/download/v1.0/yolov9-s-relu6-best_320_int8_edgetpu.tflite) models that are compiled for Tensorflow Lite and properly quantized are supported, but not included by default. To provide your own model, bind mount the file into the container and provide the path with `model.path`. Note that the model may require a custom label file (eg. [use this 17 label file](https://raw.githubusercontent.com/dbro/frigate-detector-edgetpu-yolo9/refs/heads/main/labels-coco17.txt) for the model linked above.)
<details>
<summary>YOLOv9 Setup & Config</summary>
:::warning
If you are using a Frigate+ YOLOv9 model, you should not define any of the below `model` parameters in your config except for `path`. See [the Frigate+ model docs](/plus/first_model#step-3-set-your-model-id-in-the-config) for more information on setting up your model.
:::
After placing the downloaded files for the tflite model and labels in your config folder, you can use the following configuration:
```yaml
detectors:
coral:
type: edgetpu
device: usb
model:
model_type: yolo-generic
width: 320 # <--- should match the imgsize of the model, typically 320
height: 320 # <--- should match the imgsize of the model, typically 320
path: /config/model_cache/yolov9-s-relu6-best_320_int8_edgetpu.tflite
labelmap_path: /labelmap/labels-coco-17.txt
```
Note that the labelmap uses a subset of the complete COCO label set that has only 17 objects.
</details>
---
## Hailo-8

View File

@ -1,20 +1,19 @@
import logging
import math
import os
import cv2
import numpy as np
from pydantic import Field
from typing_extensions import Literal
from frigate.detectors.detection_api import DetectionApi
from frigate.detectors.detector_config import BaseDetectorConfig, ModelTypeEnum
from frigate.detectors.detector_config import BaseDetectorConfig
try:
from tflite_runtime.interpreter import Interpreter, load_delegate
except ModuleNotFoundError:
from tensorflow.lite.python.interpreter import Interpreter, load_delegate
logger = logging.getLogger(__name__)
DETECTOR_KEY = "edgetpu"
@ -27,10 +26,6 @@ class EdgeTpuDetectorConfig(BaseDetectorConfig):
class EdgeTpuTfl(DetectionApi):
type_key = DETECTOR_KEY
supported_models = [
ModelTypeEnum.ssd,
ModelTypeEnum.yologeneric,
]
def __init__(self, detector_config: EdgeTpuDetectorConfig):
device_config = {}
@ -68,294 +63,31 @@ class EdgeTpuTfl(DetectionApi):
self.tensor_input_details = self.interpreter.get_input_details()
self.tensor_output_details = self.interpreter.get_output_details()
self.model_width = detector_config.model.width
self.model_height = detector_config.model.height
self.min_score = 0.4
self.max_detections = 20
self.model_type = detector_config.model.model_type
self.model_requires_int8 = self.tensor_input_details[0]["dtype"] == np.int8
if self.model_type == ModelTypeEnum.yologeneric:
logger.debug("Using YOLO preprocessing/postprocessing")
if len(self.tensor_output_details) not in [2, 3]:
logger.error(
f"Invalid count of output tensors in YOLO model. Found {len(self.tensor_output_details)}, expecting 2 or 3."
)
raise
self.reg_max = 16 # = 64 dfl_channels // 4 # YOLO standard
self.min_logit_value = np.log(
self.min_score / (1 - self.min_score)
) # for filtering
self._generate_anchors_and_strides() # decode bounding box DFL
self.project = np.arange(
self.reg_max, dtype=np.float32
) # for decoding bounding box DFL information
# Determine YOLO tensor indices and quantization scales for
# boxes and class_scores the tensor ordering and names are
# not reliable, so use tensor shape to detect which tensor
# holds boxes or class scores.
# The tensors have shapes (B, N, C)
# where N is the number of candidates (=2100 for 320x320)
# this may guess wrong if the number of classes is exactly 64
output_boxes_index = None
output_classes_index = None
for i, x in enumerate(self.tensor_output_details):
# the nominal index seems to start at 1 instead of 0
if len(x["shape"]) == 3 and x["shape"][2] == 64:
output_boxes_index = i
elif len(x["shape"]) == 3 and x["shape"][2] > 1:
# require the number of classes to be more than 1
# to differentiate from (not used) max score tensor
output_classes_index = i
if output_boxes_index is None or output_classes_index is None:
logger.warning("Unrecognized model output, unexpected tensor shapes.")
output_classes_index = (
0
if (output_boxes_index is None or output_classes_index == 1)
else 1
) # 0 is default guess
output_boxes_index = 1 if (output_boxes_index == 0) else 0
scores_details = self.tensor_output_details[output_classes_index]
self.scores_tensor_index = scores_details["index"]
self.scores_scale, self.scores_zero_point = scores_details["quantization"]
# calculate the quantized version of the min_score
self.min_score_quantized = int(
(self.min_logit_value / self.scores_scale) + self.scores_zero_point
)
self.logit_shift_to_positive_values = (
max(0, math.ceil((128 + self.scores_zero_point) * self.scores_scale))
+ 1
) # round up
boxes_details = self.tensor_output_details[output_boxes_index]
self.boxes_tensor_index = boxes_details["index"]
self.boxes_scale, self.boxes_zero_point = boxes_details["quantization"]
elif self.model_type == ModelTypeEnum.ssd:
logger.debug("Using SSD preprocessing/postprocessing")
# SSD model indices (4 outputs: boxes, class_ids, scores, count)
for x in self.tensor_output_details:
if len(x["shape"]) == 3:
self.output_boxes_index = x["index"]
elif len(x["shape"]) == 1:
self.output_count_index = x["index"]
self.output_class_ids_index = None
self.output_class_scores_index = None
else:
raise Exception(
f"{self.model_type} is currently not supported for edgetpu. See the docs for more info on supported models."
)
def _generate_anchors_and_strides(self):
# for decoding the bounding box DFL information into xy coordinates
all_anchors = []
all_strides = []
strides = (8, 16, 32) # YOLO's small, medium, large detection heads
for stride in strides:
feat_h, feat_w = self.model_height // stride, self.model_width // stride
grid_y, grid_x = np.meshgrid(
np.arange(feat_h, dtype=np.float32),
np.arange(feat_w, dtype=np.float32),
indexing="ij",
)
grid_coords = np.stack((grid_x.flatten(), grid_y.flatten()), axis=1)
anchor_points = grid_coords + 0.5
all_anchors.append(anchor_points)
all_strides.append(np.full((feat_h * feat_w, 1), stride, dtype=np.float32))
self.anchors = np.concatenate(all_anchors, axis=0)
self.anchor_strides = np.concatenate(all_strides, axis=0)
def determine_indexes_for_non_yolo_models(self):
"""Legacy method for SSD models."""
if (
self.output_class_ids_index is None
or self.output_class_scores_index is None
):
for i in range(4):
index = self.tensor_output_details[i]["index"]
if (
index != self.output_boxes_index
and index != self.output_count_index
):
if (
np.mod(np.float32(self.interpreter.tensor(index)()[0][0]), 1)
== 0.0
):
self.output_class_ids_index = index
else:
self.output_scores_index = index
def pre_process(self, tensor_input):
if self.model_requires_int8:
tensor_input = np.bitwise_xor(tensor_input, 128).view(
np.int8
) # shift by -128
return tensor_input
def detect_raw(self, tensor_input):
tensor_input = self.pre_process(tensor_input)
self.interpreter.set_tensor(self.tensor_input_details[0]["index"], tensor_input)
self.interpreter.invoke()
if self.model_type == ModelTypeEnum.yologeneric:
# Multi-tensor YOLO model with (non-standard B(H*W)C output format).
# (the comments indicate the shape of tensors,
# using "2100" as the anchor count (for image size of 320x320),
# "NC" as number of classes,
# "N" as the count that survive after min-score filtering)
# TENSOR A) class scores (1, 2100, NC) with logit values
# TENSOR B) box coordinates (1, 2100, 64) encoded as dfl scores
# Recommend that the model clamp the logit values in tensor (A)
# to the range [-4,+4] to preserve precision from [2%,98%]
# and because NMS requires the min_score parameter to be >= 0
boxes = self.interpreter.tensor(self.tensor_output_details[0]["index"])()[0]
class_ids = self.interpreter.tensor(self.tensor_output_details[1]["index"])()[0]
scores = self.interpreter.tensor(self.tensor_output_details[2]["index"])()[0]
count = int(
self.interpreter.tensor(self.tensor_output_details[3]["index"])()[0]
)
# don't dequantize scores data yet, wait until the low-confidence
# candidates are filtered out from the overall result set.
# This reduces the work and makes post-processing faster.
# this method works with raw quantized numbers when possible,
# which relies on the value of the scale factor to be >0.
# This speeds up max and argmax operations.
# Get max confidence for each detection and create the mask
detections = np.zeros(
(self.max_detections, 6), np.float32
) # initialize zero results
scores_output_quantized = self.interpreter.get_tensor(
self.scores_tensor_index
)[0] # (2100, NC)
max_scores_quantized = np.max(scores_output_quantized, axis=1) # (2100,)
mask = max_scores_quantized >= self.min_score_quantized # (2100,)
detections = np.zeros((20, 6), np.float32)
if not np.any(mask):
return detections # empty results
max_scores_filtered_shiftedpositive = (
(max_scores_quantized[mask] - self.scores_zero_point)
* self.scores_scale
) + self.logit_shift_to_positive_values # (N,1) shifted logit values
scores_output_quantized_filtered = scores_output_quantized[mask]
# dequantize boxes. NMS needs them to be in float format
# remove candidates with probabilities < threshold
boxes_output_quantized_filtered = (
self.interpreter.get_tensor(self.boxes_tensor_index)[0]
)[mask] # (N, 64)
boxes_output_filtered = (
boxes_output_quantized_filtered.astype(np.float32)
- self.boxes_zero_point
) * self.boxes_scale
# 2. Decode DFL to distances (ltrb)
dfl_distributions = boxes_output_filtered.reshape(
-1, 4, self.reg_max
) # (N, 4, 16)
# Softmax over the 16 bins
dfl_max = np.max(dfl_distributions, axis=2, keepdims=True)
dfl_exp = np.exp(dfl_distributions - dfl_max)
dfl_probs = dfl_exp / np.sum(dfl_exp, axis=2, keepdims=True) # (N, 4, 16)
# Weighted sum: (N, 4, 16) * (16,) -> (N, 4)
distances = np.einsum("pcr,r->pc", dfl_probs, self.project)
# Calculate box corners in pixel coordinates
anchors_filtered = self.anchors[mask]
anchor_strides_filtered = self.anchor_strides[mask]
x1y1 = (
anchors_filtered - distances[:, [0, 1]]
) * anchor_strides_filtered # (N, 2)
x2y2 = (
anchors_filtered + distances[:, [2, 3]]
) * anchor_strides_filtered # (N, 2)
boxes_filtered_decoded = np.concatenate((x1y1, x2y2), axis=-1) # (N, 4)
# 9. Apply NMS. Use logit scores here to defer sigmoid()
# until after filtering out redundant boxes
# Shift the logit scores to be non-negative (required by cv2)
indices = cv2.dnn.NMSBoxes(
bboxes=boxes_filtered_decoded,
scores=max_scores_filtered_shiftedpositive,
score_threshold=(
self.min_logit_value + self.logit_shift_to_positive_values
),
nms_threshold=0.4, # should this be a model config setting?
)
num_detections = len(indices)
if num_detections == 0:
return detections # empty results
nms_indices = np.array(indices, dtype=np.int32).ravel() # or .flatten()
if num_detections > self.max_detections:
nms_indices = nms_indices[: self.max_detections]
num_detections = self.max_detections
kept_logits_quantized = scores_output_quantized_filtered[nms_indices]
class_ids_post_nms = np.argmax(kept_logits_quantized, axis=1)
# Extract the final boxes and scores using fancy indexing
final_boxes = boxes_filtered_decoded[nms_indices]
final_scores_logits = (
max_scores_filtered_shiftedpositive[nms_indices]
- self.logit_shift_to_positive_values
) # Unshifted logits
# Detections array format: [class_id, score, ymin, xmin, ymax, xmax]
detections[:num_detections, 0] = class_ids_post_nms
detections[:num_detections, 1] = 1.0 / (
1.0 + np.exp(-final_scores_logits)
) # sigmoid
detections[:num_detections, 2] = final_boxes[:, 1] / self.model_height
detections[:num_detections, 3] = final_boxes[:, 0] / self.model_width
detections[:num_detections, 4] = final_boxes[:, 3] / self.model_height
detections[:num_detections, 5] = final_boxes[:, 2] / self.model_width
return detections
elif self.model_type == ModelTypeEnum.ssd:
self.determine_indexes_for_non_yolo_models()
boxes = self.interpreter.tensor(self.tensor_output_details[0]["index"])()[0]
class_ids = self.interpreter.tensor(
self.tensor_output_details[1]["index"]
)()[0]
scores = self.interpreter.tensor(self.tensor_output_details[2]["index"])()[
0
for i in range(count):
if scores[i] < 0.4 or i == 20:
break
detections[i] = [
class_ids[i],
float(scores[i]),
boxes[i][0],
boxes[i][1],
boxes[i][2],
boxes[i][3],
]
count = int(
self.interpreter.tensor(self.tensor_output_details[3]["index"])()[0]
)
detections = np.zeros((self.max_detections, 6), np.float32)
for i in range(count):
if scores[i] < self.min_score:
break
if i == self.max_detections:
logger.debug(f"Too many detections ({count})!")
break
detections[i] = [
class_ids[i],
float(scores[i]),
boxes[i][0],
boxes[i][1],
boxes[i][2],
boxes[i][3],
]
return detections
else:
raise Exception(
f"{self.model_type} is currently not supported for edgetpu. See the docs for more info on supported models."
)
return detections

View File

@ -220,10 +220,6 @@
"viewTrackingDetails": {
"label": "Veure detalls de seguiment",
"aria": "Mostra els detalls de seguiment"
},
"downloadCleanSnapshot": {
"label": "Descarrega la instantània neta",
"aria": "Descarrega la instantània neta"
}
},
"noTrackedObjects": "No s'han trobat objectes rastrejats",

View File

@ -1,6 +1,6 @@
{
"time": {
"untilForTime": "Indtil {{time}}",
"untilForTime": "Indtil{{time}}",
"untilForRestart": "Indtil Frigate genstarter.",
"untilRestart": "Indtil genstart",
"ago": "{{timeAgo}} siden",

View File

@ -15,36 +15,5 @@
},
"count_one": "{{count}} Label",
"label": "Etiketter"
},
"zones": {
"label": "Zoner",
"all": {
"title": "Alle zoner",
"short": "Zoner"
}
},
"more": "Flere filtre",
"sort": {
"label": "Sortér",
"dateAsc": "Dato (Stigende)",
"dateDesc": "Dato (Faldende)",
"speedAsc": "Anslået hastighed (Stigende)",
"speedDesc": "Anslået hastighed (Faldende)",
"relevance": "Relevans"
},
"dates": {
"selectPreset": "Vælg en forudindstilling…",
"all": {
"title": "Alle datoer",
"short": "Datoer"
}
},
"reset": {
"label": "Nulstille filtre til standardværdier"
},
"timeRange": "Tidsinterval",
"estimatedSpeed": "Anslået hastighed ({{unit}})",
"features": {
"hasVideoClip": "Har et videoklip"
}
}

View File

@ -208,10 +208,6 @@
"viewTrackingDetails": {
"label": "Voir les détails du suivi",
"aria": "Afficher les détails du suivi"
},
"downloadCleanSnapshot": {
"label": "Télécharger l'instantané vierge",
"aria": "Télécharger l'instantané vierge"
}
},
"dialog": {

View File

@ -207,10 +207,6 @@
"viewTrackingDetails": {
"label": "Bekijk trackinggegevens",
"aria": "Toon de trackinggegevens"
},
"downloadCleanSnapshot": {
"label": "Download schone snapshot",
"aria": "Download schone snapshot"
}
},
"noTrackedObjects": "Geen gevolgde objecten gevonden",

View File

@ -218,10 +218,6 @@
},
"hideObjectDetails": {
"label": "Приховати шлях до об'єкта"
},
"downloadCleanSnapshot": {
"label": "Завантажити чистий знімок",
"aria": "Завантажити чистий знімок"
}
},
"noTrackedObjects": "Відстежуваних об'єктів не знайдено",

View File

@ -206,10 +206,6 @@
"viewTrackingDetails": {
"label": "查看追踪详情",
"aria": "显示追踪详情"
},
"downloadCleanSnapshot": {
"label": "下载干净快照",
"aria": "下载干净快照"
}
},
"dialog": {

View File

@ -65,17 +65,5 @@
"gargling": "漱口",
"stomach_rumble": "腸胃蠕動",
"burping": "打嗝",
"hiccup": "打噎",
"fart": "放屁",
"hands": "手",
"finger_snapping": "彈手指聲",
"clapping": "拍手",
"heartbeat": "心跳聲",
"heart_murmur": "心臟雜音",
"cheering": "歡呼聲",
"applause": "掌聲",
"chatter": "嘈雜聲",
"crowd": "人群聲",
"children_playing": "兒童嬉鬧聲",
"pets": "寵物"
"hiccup": "打噎"
}

View File

@ -39,8 +39,8 @@
"24hour": "M 月 d 日 HH:mm:ss"
},
"formattedTimestamp2": {
"12hour": "MM/dd h:mm:ssa",
"24hour": "d MMM HH:mm:ss"
"12hour": "MM 月 dd 日 ah:mm:ss",
"24hour": "MM 月 dd 日 HH:mm:ss"
},
"formattedTimestampHourMinute": {
"12hour": "a h:mm",
@ -64,12 +64,9 @@
},
"formattedTimestampMonthDay": "M 月 d 日",
"formattedTimestampFilename": {
"12hour": "MM-dd-yy-h-mm-ss-a",
"12hour": "yy年MM月dd日 ah時mm分ss秒",
"24hour": "yy年MM月dd日 HH時mm分ss秒"
},
"inProgress": "處理中",
"invalidStartTime": "無效的起始時間",
"invalidEndTime": "無效的結束時間"
}
},
"unit": {
"speed": {
@ -79,23 +76,10 @@
"length": {
"feet": "英尺",
"meters": "公尺"
},
"data": {
"kbps": "kB/秒",
"mbps": "MB/秒",
"gbps": "GB/秒",
"kbph": "kB/小時",
"mbph": "MB/小時",
"gbph": "GB/小時"
}
},
"label": {
"back": "返回",
"hide": "隱藏{{item}}",
"show": "顯示{{item}}",
"ID": "ID",
"none": "無",
"all": "全部"
"back": "返回"
},
"button": {
"apply": "套用",
@ -132,8 +116,7 @@
"unselect": "取消選取",
"export": "匯出",
"deleteNow": "立即刪除",
"next": "繼續",
"continue": "繼續"
"next": "繼續"
},
"menu": {
"system": "系統",
@ -177,15 +160,7 @@
"ca": "Català (加泰隆尼亞文)",
"withSystem": {
"label": "使用系統語言設定"
},
"ptBR": "Português brasileiro (巴西葡萄牙文)",
"sr": "Српски (塞爾維亞文)",
"sl": "Slovenščina (斯洛文尼亞文)",
"lt": "Lietuvių (立陶宛文)",
"bg": "Български (保加利亞文)",
"gl": "Galego (加利西亞文)",
"id": "Bahasa Indonesia (印尼文)",
"ur": "اردو (烏爾都文)"
}
},
"appearance": "外觀",
"darkMode": {
@ -232,8 +207,7 @@
"anonymous": "匿名",
"logout": "登出",
"setPassword": "設定密碼"
},
"classification": "標籤分類"
}
},
"toast": {
"copyUrlToClipboard": "已複製連結至剪貼簿。",
@ -274,17 +248,5 @@
"desc": "找不到頁面"
},
"selectItem": "選擇 {{item}}",
"readTheDocumentation": "閱讀文件",
"list": {
"two": "{{0}} 和 {{1}}",
"many": "{{items}}, 及 {{last}}",
"separatorWithSpace": ", "
},
"field": {
"optional": "可選的",
"internalID": "在Frigate 設定檔與資料庫使用的內部ID"
},
"information": {
"pixels": "{{area}}px"
}
"readTheDocumentation": "閱讀文件"
}

View File

@ -10,7 +10,6 @@
"rateLimit": "超過次數限制,請稍後再試。",
"loginFailed": "登入失敗",
"unknownError": "未知錯誤,請檢查日誌。"
},
"firstTimeLogin": "首次嘗試登入嗎?請從 Frigate 的日誌中查找產生的登入密碼等相關資訊。"
}
}
}

View File

@ -51,13 +51,12 @@
"export": "匯出",
"selectOrExport": "選擇或匯出",
"toast": {
"success": "成功開始匯出。至 /exports 頁查看匯出資料。",
"success": "成功開始匯出。請至 /exports 資料夾查看匯出資料。",
"error": {
"failed": "匯出失敗:{{error}}",
"endTimeMustAfterStartTime": "結束時間必須要在開始時間之後",
"noVaildTimeSelected": "沒有選取有效的時間範圍"
},
"view": "查看"
}
},
"fromTimeline": {
"saveExport": "保存匯出資料",
@ -107,15 +106,7 @@
"button": {
"export": "匯出",
"markAsReviewed": "標記為已審核",
"deleteNow": "立即刪除",
"markAsUnreviewed": "標記為未審核"
}
},
"imagePicker": {
"selectImage": "選取追蹤物件預覽圖",
"unknownLabel": "已儲存觸發圖片",
"search": {
"placeholder": "以標籤或子標籤搜尋..."
"deleteNow": "立即刪除"
}
}
}

View File

@ -3,7 +3,7 @@
"downloadVideo": {
"label": "下載影片",
"toast": {
"success": "你的審查項目影片已開始下載。"
"success": "你的審查影片已開始下載。"
}
}
}

View File

@ -2,84 +2,7 @@
"toast": {
"success": {
"deletedImage": "已刪除的圖片",
"deletedModel_other": "成功刪除 {{count}} 個模型",
"deletedCategory": "刪除分類",
"categorizedImage": "成功分類圖片",
"trainedModel": "訓練模型成功。",
"trainingModel": "已開始訓練模型。",
"updatedModel": "已更新模型配置",
"renamedCategory": "成功修改分類名稱為{{name}}"
},
"error": {
"deleteImageFailed": "刪除失敗:{{errorMessage}}",
"deleteCategoryFailed": "刪除分類標籤失敗: {{errorMessage}}",
"deleteModelFailed": "刪除模型失敗: {{errorMessage}}",
"categorizeFailed": "圖片分類失敗: {{errorMessage}}",
"trainingFailed": "模型訓練失敗。請至Frigate 日誌查看詳情。",
"trainingFailedToStart": "模型訓練啟動失敗: {{errorMessage}}",
"updateModelFailed": "模型更新失敗: {{errorMessage}}",
"renameCategoryFailed": "類別重新命名失敗: {{errorMessage}}"
"deletedModel_other": "成功刪除 {{count}} 個模型"
}
},
"documentTitle": "分類模型",
"details": {
"scoreInfo": "分數表示該目標所有偵測結果的平均分類置信度。"
},
"button": {
"deleteClassificationAttempts": "刪除分類圖片",
"renameCategory": "重新命名分類",
"deleteCategory": "刪除分類",
"deleteImages": "刪除圖片",
"trainModel": "訓練模型",
"addClassification": "添加分類",
"deleteModels": "刪除模型",
"editModel": "編輯模型"
},
"tooltip": {
"trainingInProgress": "模型正在訓練中",
"noNewImages": "沒有新的圖片可用於訓練。請先對數據集中的更多圖片進行分類。",
"noChanges": "自上次訓練以來,數據集未作任何更改。",
"modelNotReady": "模型尚未準備好進行訓練"
},
"deleteCategory": {
"title": "刪除類別",
"desc": "你確定要刪除類別{{name}}嗎? 這將刪除所有有關的圖片並需要重新訓練模型。",
"minClassesTitle": "無法刪除此類別",
"minClassesDesc": "分類模型必須至少擁有2個類別新增一個新的類別已刪除這個。"
},
"deleteModel": {
"title": "刪除分類模型",
"single": "你確定要刪除{{name}}嗎? 這將永久刪除包含圖片和訓練資料在內的所有相關資料。這個操作無法被復原。",
"desc_other": "你確定要刪除{{count}}個模型? 這將永久刪除包含圖片和訓練資料在內的所有相關資料。這個操作無法被復原。"
},
"edit": {
"title": "編輯分類模型",
"descriptionState": "編輯這個狀態分類模型的類別,變更將需要重新訓練模型。",
"descriptionObject": "編輯這個物件分類模型的物件種類與分類種類。",
"stateClassesInfo": "注意: 變更狀態類別後需要以更新後的類別重新訓練模型。"
},
"deleteDatasetImages": {
"title": "刪除圖片資料集合",
"desc_other": "你確定要從{{dataset}}中刪除{{count}}個圖片嗎? 這個操作將無法被復原且將需要重新訓練模型。"
},
"deleteTrainImages": {
"title": "刪除訓練圖片",
"desc_other": "你確定要刪除{{count}}個圖片? 這個操作無法被復原。"
},
"renameCategory": {
"title": "重新命名類別",
"desc": "輸入 {{name}} 的新名稱。您需要在名稱變更後重新訓練模型以套用變更。"
},
"description": {
"invalidName": "無效的名稱。名稱只能包涵英數字、空格、撇('、底線_及連字號-)。"
},
"train": {
"title": "最近的分類紀錄",
"titleShort": "最近",
"aria": "選取最近的分類紀錄"
},
"categories": "類別",
"createCategory": {
"new": "建立新的類別"
}
}

View File

@ -38,25 +38,5 @@
"suspiciousActivity": "可疑的活動",
"threateningActivity": "有威脅性的活動",
"zoomIn": "放大",
"zoomOut": "縮小",
"detail": {
"label": "詳細資訊",
"noDataFound": "沒有可供檢視的詳細資訊",
"aria": "開關詳細資訊視圖",
"trackedObject_one": "{{count}} 個物件",
"trackedObject_other": "{{count}} 個物件",
"noObjectDetailData": "沒有可用物件細節。",
"settings": "細節視圖設定",
"alwaysExpandActive": {
"title": "總是展開",
"desc": "在可用時總是展開當前物件的詳細資訊。"
}
},
"objectTrack": {
"trackedPoint": "追蹤點",
"clickToSeek": "點擊從此時間點尋找"
},
"normalActivity": "正常",
"needsReview": "待審核",
"securityConcern": "安全隱憂"
"zoomOut": "縮小"
}

View File

@ -104,9 +104,7 @@
"details": "詳情",
"snapshot": "截圖",
"video": "影片",
"object_lifecycle": "物件生命週期",
"thumbnail": "預覽圖",
"tracking_details": "追蹤詳情"
"object_lifecycle": "物件生命週期"
},
"objectLifecycle": {
"title": "物件生命週期",
@ -189,7 +187,7 @@
"dialog": {
"confirmDelete": {
"title": "確認刪除",
"desc": "刪除此追蹤物件將移除截圖、所有已保存的嵌入,以及所有相關的追蹤詳情。歷史記錄中的錄影<em>不會</em>被刪除。<br /><br />你確定要刪除嗎?"
"desc": "刪除此追蹤物件將移除截圖、所有已保存的嵌入,以及所有相關的物件生命週期紀錄。歷史記錄中的錄影<em>不會</em>被刪除。<br /><br />你確定要刪除嗎?"
}
},
"noTrackedObjects": "找不到追蹤物件",
@ -203,50 +201,5 @@
"error": "刪除追蹤物件失敗:{{errorMessage}}"
}
}
},
"trackingDetails": {
"title": "追蹤詳情",
"noImageFound": "沒有找到在此時間點的圖片。",
"createObjectMask": "建立物件遮罩",
"adjustAnnotationSettings": "調整標記設定",
"scrollViewTips": "點擊查看物件周期的關鍵時間。",
"autoTrackingTips": "自動追蹤鏡頭的邊框位置可能不準確。",
"count": "{{second}}之{{first}}",
"trackedPoint": "追蹤點",
"lifecycleItemDesc": {
"visible": "偵測到 {{label}}",
"entered_zone": "{{label}} 已進入 {{zones}}",
"active": "{{label}} 正在活動",
"stationary": "{{label}} 變為靜止",
"attribute": {
"faceOrLicense_plate": "偵測到{{label}} {{attribute}}",
"other": "{{label}} 被識別為 {{attribute}}"
},
"gone": "{{label}} 已離開",
"heard": "聽到了 {{label}}",
"external": "偵測到 {{label}}",
"header": {
"zones": "區域",
"ratio": "比例",
"score": "分數",
"area": "面積"
}
},
"annotationSettings": {
"title": "標記設定",
"showAllZones": {
"title": "顯示所有區域",
"desc": "總是在物件進入區域時在畫面上顯示區域範圍。"
},
"offset": {
"label": "標記偏移量",
"desc": "這個資料來自您的鏡頭的偵測串流源,但是被疊加在錄影串流源的畫面上,兩個串流源不太可能完美的同步,因此邊框與畫面無法完美的對齊。您可以用這項設定調整標記在時間上前後偏移的補償量來更好的將其與錄影畫面對齊。",
"millisecondsToOffset": "偵測標記偏移補償的毫秒數。<em>預設值: 0</em>",
"tips": "如果影片播放進度超前於方框和路徑點,則降低該值;如果影片播放進度落後於方框和路徑點,則增加該數值。該值可以為負數。",
"toast": {
"success": "{{camera}} 的標記偏移補償量已儲存至設定檔,重新啟動 Frigate 以套用變更。"
}
}
}
}
}

View File

@ -13,11 +13,5 @@
"renameExportFailed": "重新命名匯出內容失敗:{{errorMessage}}"
}
},
"deleteExport.desc": "你確定要刪除 {{exportName}} 嗎?",
"tooltip": {
"shareExport": "分享匯出",
"downloadVideo": "下載影片",
"editName": "編輯名稱",
"deleteExport": "刪除匯出"
}
"deleteExport.desc": "你確定要刪除 {{exportName}} 嗎?"
}

View File

@ -1,6 +1,6 @@
{
"description": {
"addFace": "上傳您的第一張照片至臉部資料庫以新增一個新的集合。",
"addFace": "了解如何新增圖片集合至人臉資料庫。",
"placeholder": "輸入此集合的名稱",
"invalidName": "無效的名稱。名稱只能包涵英數字、空格、撇('、底線_及連字號-)。"
},
@ -24,7 +24,7 @@
"title": "建立集合",
"desc": "建立新集合",
"new": "建立新人臉",
"nextSteps": "為了建立可靠的模型基底:<li>在最近的識別紀錄分頁中選擇並針對每個偵測到人的圖片進行訓練。</li><li>請優先使用正臉照以獲得最佳效果,請盡量避免使用從側面或有傾斜角度的人臉</li></ul>"
"nextSteps": "為了建立可靠的模型基底:<li>在訓練分頁中選擇並針對每個偵測到人的圖片進行訓練。</li><li>請優先使用正臉照以獲得最佳效果,請盡量避免使用從側面或有傾斜角度的人臉</li></ul>"
},
"steps": {
"faceName": "輸入人臉名稱",
@ -35,8 +35,8 @@
}
},
"train": {
"title": "最近的識別紀錄",
"aria": "選擇最近的識別紀錄",
"title": "訓練",
"aria": "選擇訓練",
"empty": "最近沒有辨識人臉的操作"
},
"selectFace": "選擇人臉",
@ -65,7 +65,7 @@
"selectImage": "請選擇一個圖片檔。"
},
"dropActive": "將圖片拖到這裡…",
"dropInstructions": "拖放或貼上圖片至此處,或點擊以選取",
"dropInstructions": "將圖片拖放至此處,或點擊以選取",
"maxSize": "最大檔案大小:{{size}}MB"
},
"nofaces": "沒有可用的人臉",
@ -81,7 +81,7 @@
"deletedName_other": "{{count}} 個人臉已成功刪除。",
"renamedFace": "成功將人臉重新命名為 {{name}}",
"trainedFace": "成功訓練人臉。",
"updatedFaceScore": "成功更新人臉分數{{name}}({{score}})。"
"updatedFaceScore": "成功更新人臉分數。"
},
"error": {
"uploadingImageFailed": "上傳圖片失敗:{{errorMessage}}",

View File

@ -86,8 +86,8 @@
"disable": "隱藏串流統計資料"
},
"manualRecording": {
"title": "應需",
"tips": "根據此鏡頭的錄影保留設定,下載快照或手動啟動事件。",
"title": "應需錄影",
"tips": "根據此鏡頭的錄影保留設定手動啟動事件。",
"playInBackground": {
"label": "背景播放",
"desc": "啟用此選項以在播放器被隱藏時繼續播放串流。"
@ -166,11 +166,5 @@
"transcription": {
"enable": "啟用即時語音轉錄",
"disable": "停用即時語音轉錄"
},
"snapshot": {
"takeSnapshot": "下載即時快照",
"noVideoSource": "沒有可用的影片資源以擷取快照。",
"captureFailed": "快照擷取失敗。",
"downloadStarted": "已開始下載快照。"
}
}

View File

@ -5,7 +5,7 @@
"button": {
"clear": "清空搜尋",
"filterActive": "過濾中",
"save": "存搜尋",
"save": "存搜尋",
"delete": "刪除保存的搜尋",
"filterInformation": "過濾資訊"
},

View File

@ -3,8 +3,8 @@
"default": "設定 - Frigate",
"authentication": "認證設定 - Frigate",
"camera": "鏡頭設定 - Frigate",
"enrichments": "進階功能設定 - Frigate",
"general": "使用者介面設定 - Frigate",
"enrichments": "進階設定 - Frigate",
"general": "一般設定 - Frigate",
"frigatePlus": "Frigate+ 設定 - Frigate",
"notifications": "通知設定 - Frigate",
"masksAndZones": "遮罩與區域編輯器 - Frigate",
@ -25,8 +25,7 @@
"frigateplus": "Frigate+",
"triggers": "觸發",
"cameraManagement": "管理",
"cameraReview": "預覽",
"roles": "角色"
"cameraReview": "預覽"
},
"dialog": {
"unsavedChanges": {
@ -39,7 +38,7 @@
"noCamera": "沒有鏡頭"
},
"general": {
"title": "使用者介面設定",
"title": "一般設定",
"liveDashboard": {
"title": "即時監控面板",
"automaticLiveView": {
@ -49,14 +48,6 @@
"playAlertVideos": {
"label": "播放警報影片",
"desc": "最近的警報影片預設會在即時監控面板中連續循環播放。取消這個選項,可以只顯示靜態的最近警報擷圖(僅套用於該裝置/瀏覽器)。"
},
"displayCameraNames": {
"label": "總是顯示鏡頭名稱",
"desc": "總是在多鏡頭直播頁面顯示鏡頭的名稱標籤。"
},
"liveFallbackTimeout": {
"label": "直播播放器回退逾時",
"desc": "當高畫質串流直播無法使用時,在此秒數後會回退成低流量模式。預設值: 3。"
}
},
"storedLayouts": {
@ -97,7 +88,7 @@
}
},
"enrichments": {
"title": "進階功能設定",
"title": "強化設定",
"unsavedChanges": "尚未儲存的強化設定變更",
"semanticSearch": {
"modelSize": {
@ -122,7 +113,7 @@
"testFailed": "串流測試失敗: {{error}}"
},
"step1": {
"description": "輸入相機詳細資訊並選擇自動偵測或手動選擇相機品牌。",
"description": "輸入相機詳細資訊並測試連線。",
"cameraName": "相機名稱",
"cameraNamePlaceholder": "例: 前門 / 後院",
"host": "主機/IP 位置",

View File

@ -2,8 +2,8 @@
"documentTitle": {
"cameras": "鏡頭統計 - Frigate",
"storage": "儲存裝置統計 - Frigate",
"general": "一般統計 - Frigate",
"enrichments": "進階功能統計 - Frigate",
"general": "統計總覽 - Frigate",
"enrichments": "進階統計 - Frigate",
"logs": {
"frigate": "Frigate 日誌 - Frigate",
"go2rtc": "Go2RTC 日誌 - Frigate",
@ -76,12 +76,7 @@
}
},
"npuUsage": "NPU 使用率",
"npuMemory": "NPU 記憶體",
"intelGpuWarning": {
"title": "Intel GPU 狀態警告",
"message": "GPU 狀態資訊不可用",
"description": "這是一個在Intel GPU 狀態回報工具 (intel_gpu_top) 中已知的 Bug該工具會故障並重複的回報 GPU占用率為 0%,甚至在硬體加速與物件偵測在 (i)GPU上正確運作時也是如此。這不是 Frigate 的 Bug。您可以透過重新啟動主機來暫時修復此問題以確認 GPU 運作正常。這不會影響效能。"
}
"npuMemory": "NPU 記憶體"
},
"otherProcesses": {
"title": "其他行程",