Referência para ultralytics/utils/__init__.py
Nota
Este ficheiro está disponível em https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/utils/init.py. Se detectares um problema, por favor ajuda a corrigi-lo contribuindo com um Pull Request 🛠️. Obrigado 🙏!
ultralytics.utils.TQDM
Bases: tqdm
Personaliza a classe Ultralytics tqdm com diferentes argumentos predefinidos.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
*args |
list
|
Argumentos posicionais passados para o tqdm original. |
()
|
**kwargs |
any
|
Argumentos de palavras-chave, com predefinições personalizadas aplicadas. |
{}
|
Código fonte em ultralytics/utils/__init__.py
__init__(*args, **kwargs)
Inicializa a classe Ultralytics tqdm personalizada com diferentes argumentos predefinidos.
Nota que estes podem ainda ser substituídos ao chamar o TQDM.
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.SimpleClass
Ultralytics SimpleClass é uma classe base que fornece uma representação de cadeia de caracteres útil, relatórios de erros e métodos de acesso a atributos para facilitar a depuração e o uso.
Código fonte em ultralytics/utils/__init__.py
__getattr__(attr)
Mensagem de erro de acesso a atributos personalizados com informações úteis.
Código fonte em ultralytics/utils/__init__.py
__repr__()
__str__()
Devolve uma representação de cadeia de caracteres legível por humanos do objeto.
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.IterableSimpleNamespace
Bases: SimpleNamespace
Ultralytics IterableSimpleNamespace é uma classe de extensão de SimpleNamespace que adiciona a funcionalidade iterável e permite a utilização com dict() e loops for.
Código fonte em ultralytics/utils/__init__.py
__getattr__(attr)
Mensagem de erro de acesso a atributos personalizados com informações úteis.
Código fonte em ultralytics/utils/__init__.py
__iter__()
__str__()
get(key, default=None)
Devolve o valor da chave especificada, se existir; caso contrário, devolve o valor predefinido.
ultralytics.utils.ThreadingLocked
Uma classe decoradora para garantir a execução thread-safe de uma função ou método. Esta classe pode ser usada como um decorador para garantir que, se a função decorada for chamada a partir de várias threads, apenas uma thread de cada vez será capaz de executar a função.
Atributos:
Nome | Tipo | Descrição |
---|---|---|
lock |
Lock
|
Um objeto de bloqueio utilizado para gerir o acesso à função decorada. |
Exemplo
Código fonte em ultralytics/utils/__init__.py
__call__(f)
Executa uma função ou método com segurança de thread.
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.TryExcept
Bases: ContextDecorator
Ultralytics Classe TryExcept. Utiliza como decorador @TryExcept() ou como gestor de contexto 'with TryExcept():'.
Exemplos:
Como decorador:
>>> @TryExcept(msg="Error occurred in func", verbose=True)
>>> def func():
>>> # Function logic here
>>> pass
Como gestor de contexto:
Código fonte em ultralytics/utils/__init__.py
__enter__()
__exit__(exc_type, value, traceback)
Define o comportamento ao sair de um bloco 'with', imprime uma mensagem de erro se necessário.
Código fonte em ultralytics/utils/__init__.py
__init__(msg='', verbose=True)
Inicializa a classe TryExcept com mensagens opcionais e definições de verbosidade.
ultralytics.utils.Retry
Bases: ContextDecorator
Classe de repetição para execução de funções com backoff exponencial.
Pode ser utilizado como um decorador ou um gestor de contexto para tentar novamente uma função ou bloco de código em excepções, até um número especificado de vezes com um atraso exponencialmente crescente entre tentativas.
Exemplos:
Exemplo de utilização como decorador:
>>> @Retry(times=3, delay=2)
>>> def test_func():
>>> # Replace with function logic that may raise exceptions
>>> return True
Exemplo de utilização como gestor de contexto:
Código fonte em ultralytics/utils/__init__.py
__call__(func)
Implementação de um decorador para Retry com backoff exponencial.
Código fonte em ultralytics/utils/__init__.py
__enter__()
__exit__(exc_type, exc_value, traceback)
Sai do contexto de tempo de execução relacionado com este objeto com backoff exponencial.
Código fonte em ultralytics/utils/__init__.py
__init__(times=3, delay=2)
Inicializa a classe Retry com o número de tentativas e o atraso especificados.
ultralytics.utils.SettingsManager
Bases: dict
Gere as definições de Ultralytics armazenadas num ficheiro YAML.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
file |
str | Path
|
Caminho para o ficheiro YAML das definições de Ultralytics . A predefinição é USER_CONFIG_DIR / 'settings.yaml'. |
SETTINGS_YAML
|
version |
str
|
Versão das definições. Se a versão local for diferente, serão guardadas as novas predefinições. |
'0.0.4'
|
Código fonte em ultralytics/utils/__init__.py
955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 |
|
__init__(file=SETTINGS_YAML, version='0.0.4')
Inicializa o SettingsManager com as configurações padrão, carrega e valida as configurações atuais do arquivo YAML do ficheiro YAML.
Código fonte em ultralytics/utils/__init__.py
load()
reset()
save()
ultralytics.utils.plt_settings(rcparams=None, backend='Agg')
Decorador para definir temporariamente os parâmetros rc e o backend para uma função de plotagem.
Exemplo
decorator: @plt_settings({"font.size": 12}) context manager: with plt_settings({"font.size": 12}):
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
rcparams |
dict
|
Dicionário de parâmetros rc a definir. |
None
|
backend |
str
|
Nome do backend a utilizar. A predefinição é "Agg". |
'Agg'
|
Devolve:
Tipo | Descrição |
---|---|
Callable
|
Função decorada com parâmetros rc e backend definidos temporariamente. Este decorador pode ser aplicado a qualquer função que precise de ter parâmetros rc matplotlib específicos e backend para a sua execução. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.set_logging(name='LOGGING_NAME', verbose=True)
Configura o registo para o nome fornecido com suporte de codificação UTF-8, garantindo a compatibilidade entre diferentes ambientes.
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.emojis(string='')
ultralytics.utils.yaml_save(file='data.yaml', data=None, header='')
Guarda os dados YAML num ficheiro.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
file |
str
|
Nome do ficheiro. A predefinição é "data.yaml". |
'data.yaml'
|
data |
dict
|
Dados a guardar no formato YAML. |
None
|
header |
str
|
Cabeçalho YAML a adicionar. |
''
|
Devolve:
Tipo | Descrição |
---|---|
None
|
Os dados são guardados no ficheiro especificado. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.yaml_load(file='data.yaml', append_filename=False)
Carrega dados YAML de um ficheiro.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
file |
str
|
Nome do ficheiro. A predefinição é "data.yaml". |
'data.yaml'
|
append_filename |
bool
|
Adiciona o nome do arquivo YAML ao dicionário YAML. A predefinição é False. |
False
|
Devolve:
Tipo | Descrição |
---|---|
dict
|
Dados YAML e nome do ficheiro. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.yaml_print(yaml_file)
Imprime um ficheiro YAML ou um dicionário formatado em YAML.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
yaml_file |
Union[str, Path, dict]
|
O caminho do ficheiro YAML ou um dicionário formatado em YAML. |
necessário |
Devolve:
Tipo | Descrição |
---|---|
None
|
(Nenhum) |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.read_device_model()
Lê as informações do modelo do dispositivo do sistema e as armazena em cache para acesso rápido. Usado por is_jetson() e is_raspberrypi().
Devolve:
Tipo | Descrição |
---|---|
str
|
Conteúdo do ficheiro modelo, se a leitura for bem sucedida, ou cadeia vazia, caso contrário. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.is_ubuntu()
Verifica se o sistema operativo é o Ubuntu.
Devolve:
Tipo | Descrição |
---|---|
bool
|
Verdadeiro se o SO for Ubuntu, Falso caso contrário. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.is_colab()
Verifica se o script atual está a ser executado dentro de um bloco de notas do Google Colab.
Devolve:
Tipo | Descrição |
---|---|
bool
|
Verdadeiro se estiveres a correr dentro de um bloco de notas Colab, Falso caso contrário. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.is_kaggle()
Verifica se o script atual está sendo executado dentro de um kernel do Kaggle.
Devolve:
Tipo | Descrição |
---|---|
bool
|
True se estiveres a correr dentro de um kernel Kaggle, False caso contrário. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.is_jupyter()
Verifica se o script atual está sendo executado dentro de um Jupyter Notebook. Verificado em Colab, Jupyterlab, Kaggle, Paperspace.
Devolve:
Tipo | Descrição |
---|---|
bool
|
True se estiveres a correr dentro de um Jupyter Notebook, False caso contrário. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.is_docker()
Determina se o script está a ser executado dentro de um contentor Docker.
Devolve:
Tipo | Descrição |
---|---|
bool
|
True se o script estiver a ser executado dentro de um contentor Docker, False caso contrário. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.is_raspberrypi()
Determina se o ambiente Python está sendo executado em um Raspberry Pi, verificando as informações do modelo do dispositivo.
Devolve:
Tipo | Descrição |
---|---|
bool
|
Verdadeiro se estiveres a correr num Raspberry Pi, Falso caso contrário. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.is_jetson()
Determina se o ambiente Python está sendo executado em um dispositivo Jetson Nano ou Jetson Orin, verificando as informações do modelo do dispositivo do dispositivo.
Devolve:
Tipo | Descrição |
---|---|
bool
|
Verdadeiro se estiveres a correr num Jetson Nano ou Jetson Orin, Falso caso contrário. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.is_online()
Verifica a conetividade com a Internet tentando ligar a um anfitrião online conhecido.
Devolve:
Tipo | Descrição |
---|---|
bool
|
Verdadeiro se a ligação for bem sucedida, Falso caso contrário. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.is_pip_package(filepath=__name__)
Determina se o arquivo no filepath dado é parte de um pacote pip.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
filepath |
str
|
O caminho do ficheiro a verificar. |
__name__
|
Devolve:
Tipo | Descrição |
---|---|
bool
|
Verdadeiro se o arquivo é parte de um pacote pip, Falso caso contrário. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.is_dir_writeable(dir_path)
Verifica se um diretório pode ser escrito.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
dir_path |
str | Path
|
O caminho para o diretório. |
necessário |
Devolve:
Tipo | Descrição |
---|---|
bool
|
Verdadeiro se o diretório for gravável, Falso caso contrário. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.is_pytest_running()
Determina se pytest está em execução ou não.
Devolve:
Tipo | Descrição |
---|---|
bool
|
Verdadeiro se pytest estiver em execução, Falso caso contrário. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.is_github_action_running()
Determina se o ambiente atual é um executor do GitHub Actions.
Devolve:
Tipo | Descrição |
---|---|
bool
|
True se o ambiente atual for um executor de GitHub Actions, False caso contrário. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.get_git_dir()
Determina se o ficheiro atual faz parte de um repositório git e, em caso afirmativo, devolve o diretório raiz do repositório. Se o ficheiro atual não fizer parte de um repositório git, devolve None.
Devolve:
Tipo | Descrição |
---|---|
Path | None
|
Diretório raiz do Git se encontrado ou None se não for encontrado. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.is_git_dir()
Determina se o arquivo atual faz parte de um repositório git. Se o ficheiro atual não fizer parte de um repositório git retorna None.
Devolve:
Tipo | Descrição |
---|---|
bool
|
Verdadeiro se o ficheiro atual fizer parte de um repositório git. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.get_git_origin_url()
Recupera o URL de origem de um repositório git.
Devolve:
Tipo | Descrição |
---|---|
str | None
|
O URL de origem do repositório git ou None se não for o diretório git. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.get_git_branch()
Devolve o nome do ramo git atual. Se não estiver em um repositório git, retorna None.
Devolve:
Tipo | Descrição |
---|---|
str | None
|
O nome do ramo git atual ou None se não for um diretório git. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.get_default_args(func)
Devolve um dicionário de argumentos predefinidos para uma função.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
func |
callable
|
A função a controlar. |
necessário |
Devolve:
Tipo | Descrição |
---|---|
dict
|
Um dicionário em que cada chave é um nome de parâmetro e cada valor é o valor predefinido desse parâmetro. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.get_ubuntu_version()
Obtém a versão do Ubuntu se o SO for Ubuntu.
Devolve:
Tipo | Descrição |
---|---|
str
|
Versão do Ubuntu ou Nenhum se não for um SO Ubuntu. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.get_user_config_dir(sub_dir='Ultralytics')
Devolve o diretório de configuração apropriado com base no ambiente do sistema operativo.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
sub_dir |
str
|
O nome do subdiretório a criar. |
'Ultralytics'
|
Devolve:
Tipo | Descrição |
---|---|
Path
|
O caminho para o diretório de configuração do utilizador. |
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.colorstr(*input)
Colore uma string com base nos argumentos de cor e estilo fornecidos. Utiliza códigos de escape ANSI. Vê https://en.wikipedia.org/wiki/ANSI_escape_code para mais detalhes.
Esta função pode ser chamada de duas maneiras
- colorstr('cor', 'estilo', 'a tua string')
- colorstr('a tua corda')
No segundo formulário, "azul" e "negrito" serão aplicados por defeito.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
*input |
str
|
Uma sequência de cadeias de caracteres em que as primeiras n-1 cadeias de caracteres são argumentos de cor e estilo, e a última cadeia de caracteres é a que vai ser colorida. |
()
|
Cores e estilos suportados
Cores básicas: 'preto', 'vermelho', 'verde', 'amarelo', 'azul', 'magenta', 'ciano', 'branco' Cores brilhantes: 'preto_brilhante', 'vermelho_brilhante', 'verde_brilhante', 'amarelo_brilhante', 'bright_blue', 'bright_magenta', 'bright_cyan', 'bright_white' Diversos: 'end', 'bold', 'underline'
Devolve:
Tipo | Descrição |
---|---|
str
|
A cadeia de entrada com códigos de escape ANSI para a cor e o estilo especificados. |
Exemplos:
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.remove_colorstr(input_string)
Remove os códigos de escape ANSI de uma string, descolorindo-a efetivamente.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
input_string |
str
|
A cadeia de caracteres da qual queres remover a cor e o estilo. |
necessário |
Devolve:
Tipo | Descrição |
---|---|
str
|
Uma nova cadeia de caracteres com todos os códigos de escape ANSI removidos. |
Exemplos:
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.threaded(func)
Multiencadeia uma função de destino por padrão e retorna o resultado do encadeamento ou da função.
Utiliza como decorador @threaded. A função é executada numa thread separada, a menos que seja passado 'threaded=False'.
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.set_sentry()
Inicializa o Sentry SDK para rastreamento e relatório de erros. Usado apenas se o pacote sentry_sdk estiver instalado e sync=True nas configurações. Executa 'yolo settings' para ver e atualizar o arquivo YAML de configurações.
Condições necessárias para enviar erros (TODAS as condições devem ser atendidas ou nenhum erro será relatado): - o pacote sentry_sdk está instalado - sync=True nas configurações de YOLO - pytest não está em execução - está sendo executado em uma instalação de pacote pip - está sendo executado em um diretório não-git - está rodando com rank -1 ou 0 - ambiente online - CLI usado para executar o pacote (verificado com 'yolo' como o nome do comando principal CLI )
A função também configura o Sentry SDK para ignorar as exceções KeyboardInterrupt e FileNotFoundError e para excluir eventos com 'out of memory' em sua mensagem de exceção.
Além disso, a função define etiquetas personalizadas e informações do utilizador para eventos Sentry.
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.deprecation_warn(arg, new_arg, version=None)
Emite um aviso de depreciação quando um argumento obsoleto é usado, sugerindo um argumento atualizado.
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.clean_url(url)
Retira a autenticação do URL, ou seja, https://url.com/file.txt?auth -> https://url.com/file.txt.
Código fonte em ultralytics/utils/__init__.py
ultralytics.utils.url2file(url)
Criado em 2023-11-12, Atualizado em 2024-05-08
Autores: Burhan-Q (1), glenn-jocher (8), Laughing-q (1)