์ฐธ์กฐ ultralytics/utils/__init__.py
์ฐธ๊ณ
์ด ํ์ผ์ https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/utils/init.py์์ ํ์ธํ ์ ์์ต๋๋ค. ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ํ ๋ฆฌํ์คํธ (๐ ๏ธ)๋ฅผ ์ ์ถํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ก ๋์์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค ๐!
ultralytics.utils.TQDM
๋ฒ ์ด์ค: tqdm
๊ธฐ๋ณธ ์ธ์๊ฐ ๋ค๋ฅธ ์ฌ์ฉ์ ์ ์ Ultralytics tqdm ํด๋์ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
*args |
list
|
์์น ์ธ์๊ฐ ์๋ณธ tqdm์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค. |
()
|
**kwargs |
any
|
์ฌ์ฉ์ ์ง์ ๊ธฐ๋ณธ๊ฐ์ด ์ ์ฉ๋ ํค์๋ ์ธ์์ ๋๋ค. |
{}
|
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
__init__(*args, **kwargs)
๋ค๋ฅธ ๊ธฐ๋ณธ ์ธ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์ง์ Ultralytics tqdm ํด๋์ค๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
TQDM์ ํธ์ถํ ๋์๋ ์ด๋ฌํ ๊ธฐ๋ฅ์ ์ฌ์ ์ํ ์ ์์ต๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.SimpleClass
Ultralytics SimpleClass๋ ์ ์ฉํ ๋ฌธ์์ด ํํ, ์ค๋ฅ ๋ณด๊ณ ๋ฐ ์์ฑ ์ก์ธ์ค ๋ฉ์๋๋ฅผ ์ ๊ณตํ์ฌ ๋๋ฒ๊น ๊ณผ ์ฌ์ฉ์ ์ฉ์ดํ๊ฒ ํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
__getattr__(attr)
์ ์ฉํ ์ ๋ณด๊ฐ ํฌํจ๋ ์ฌ์ฉ์ ์ง์ ์์ฑ ์ก์ธ์ค ์ค๋ฅ ๋ฉ์์ง.
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
__repr__()
__str__()
๊ฐ์ฒด์ ์ฌ๋์ด ์ฝ์ ์ ์๋ ๋ฌธ์์ด ํํ์ ๋ฐํํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.IterableSimpleNamespace
๋ฒ ์ด์ค: SimpleNamespace
Ultralytics IterableSimpleNamespace๋ ์ดํฐ๋ฌ๋ธ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ dict() ๋ฐ ๋ฃจํ์ ์ฌ์ฉํ ์ ์๋๋ก ํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
__getattr__(attr)
์ ์ฉํ ์ ๋ณด๊ฐ ํฌํจ๋ ์ฌ์ฉ์ ์ง์ ์์ฑ ์ก์ธ์ค ์ค๋ฅ ๋ฉ์์ง.
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
__iter__()
__str__()
get(key, default=None)
์ง์ ๋ ํค๊ฐ ์กด์ฌํ๋ฉด ํด๋น ๊ฐ์ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ์ ๋ฐํํฉ๋๋ค.
ultralytics.utils.ThreadingLocked
ํจ์๋ ๋ฉ์๋์ ์ค๋ ๋ ์์ ์คํ์ ๋ณด์ฅํ๊ธฐ ์ํ ๋ฐ์ฝ๋ ์ดํฐ ํด๋์ค์ ๋๋ค. ์ด ํด๋์ค๋ ๋ฐ์ฝ๋ ์ดํฐ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฅผ ์ฌ์ฉํ์ฌ ์ฅ์๋ ํจ์๊ฐ ์ฌ๋ฌ ์ค๋ ๋์์ ํธ์ถ๋๋ ๊ฒฝ์ฐ ํ ๋ฒ์ ํ๋์ ์ค๋ ๋๋ง ํจ์๋ฅผ ์คํํ ์ ์๋๋ก ํฉ๋๋ค.
์์ฑ:
์ด๋ฆ | ์ ํ | ์ค๋ช |
---|---|---|
lock |
Lock
|
์ฅ์๋ ํจ์์ ๋ํ ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ ๊ธ ๊ฐ์ฒด์ ๋๋ค. |
์
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
__call__(f)
ํจ์ ๋๋ ๋ฉ์๋์ ์ค๋ ๋ ์์ ์คํ์ ์คํํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
__init__()
ํจ์๋ ๋ฉ์๋์ ์ค๋ ๋ ์์ ์คํ์ ์ํด ๋ฐ์ฝ๋ ์ดํฐ ํด๋์ค๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
ultralytics.utils.TryExcept
๋ฒ ์ด์ค: ContextDecorator
Ultralytics TryExcept ํด๋์ค. TryExcept() ๋ฐ์ฝ๋ ์ดํฐ ๋๋ 'with TryExcept():' ์ปจํ ์คํธ ๊ด๋ฆฌ์๋ก ์ฌ์ฉํฉ๋๋ค.
์์:
๋ฐ์ฝ๋ ์ดํฐ๋ก์:
>>> @TryExcept(msg="Error occurred in func", verbose=True)
>>> def func():
>>> # Function logic here
>>> pass
์ปจํ ์คํธ ๊ด๋ฆฌ์๋ก์:
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
__enter__()
__exit__(exc_type, value, traceback)
'with' ๋ธ๋ก์ ์ข ๋ฃํ ๋์ ๋์์ ์ ์ํ๊ณ ํ์ํ ๊ฒฝ์ฐ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ธ์ํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
__init__(msg='', verbose=True)
์ ํ์ ๋ฉ์์ง ๋ฐ ์์ธ๋ ์ค์ ์ผ๋ก TryExcept ํด๋์ค๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
ultralytics.utils.Retry
๋ฒ ์ด์ค: ContextDecorator
์ง์ ๋ฐฑ์คํ๊ฐ ์๋ ํจ์ ์คํ์ ์ํ ์ฌ์๋ ํด๋์ค.
๋ฐ์ฝ๋ ์ดํฐ ๋๋ ์ปจํ ์คํธ ๊ด๋ฆฌ์๋ก ์ฌ์ฉํ์ฌ ์์ธ์ ๋ํ ํจ์ ๋๋ ์ฝ๋ ๋ธ๋ก์ ์ฌ์๋ํ ์ ์์ต๋๋ค. ์ง์ ๋ ํ์๊น์ง, ์ฌ์๋ ์ฌ์ด์ ๊ธฐํ๊ธ์์ ์ผ๋ก ์ฆ๊ฐํ๋ ์ง์ฐ ์๊ฐ์ผ๋ก ์ฌ์๋ํ ์ ์์ต๋๋ค.
์์:
๋ฐ์ฝ๋ ์ดํฐ๋ก ์ฌ์ฉํ๋ ์์์ ๋๋ค:
>>> @Retry(times=3, delay=2)
>>> def test_func():
>>> # Replace with function logic that may raise exceptions
>>> return True
์ปจํ ์คํธ ๊ด๋ฆฌ์๋ก์์ ์ฌ์ฉ ์์:
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
__call__(func)
์ง์ ๋ฐฑ์คํ๋ฅผ ์ฌ์ฉํ ์ฌ์๋๋ฅผ ์ํ ๋ฐ์ฝ๋ ์ดํฐ ๊ตฌํ.
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
__enter__()
__exit__(exc_type, exc_value, traceback)
์ง์ ๋ฐฑ์คํ๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๊ฐ์ฒด์ ๊ด๋ จ๋ ๋ฐํ์ ์ปจํ ์คํธ๋ฅผ ์ข ๋ฃํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
__init__(times=3, delay=2)
์ง์ ๋ ์ฌ์๋ ํ์ ๋ฐ ์ง์ฐ์ผ๋ก ์ฌ์๋ ํด๋์ค๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
ultralytics.utils.SettingsManager
๋ฒ ์ด์ค: dict
YAML ํ์ผ์ ์ ์ฅ๋ Ultralytics ์ค์ ์ ๊ด๋ฆฌํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
file |
str | Path
|
Ultralytics ์ค์ YAML ํ์ผ์ ๊ฒฝ๋ก์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ USER_CONFIG_DIR / 'settings.yaml'์ ๋๋ค. |
SETTINGS_YAML
|
version |
str
|
์ค์ ๋ฒ์ . ๋ก์ปฌ ๋ฒ์ ์ด ์ผ์นํ์ง ์๋ ๊ฒฝ์ฐ ์ ๊ธฐ๋ณธ ์ค์ ์ด ์ ์ฅ๋ฉ๋๋ค. |
'0.0.4'
|
์ ์์ค ์ฝ๋ 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')
๊ธฐ๋ณธ ์ค์ ์ผ๋ก ์ค์ ๊ด๋ฆฌ์๋ฅผ ์ด๊ธฐํํ๊ณ , YAML ํ์ผ์์ ํ์ฌ ์ค์ ์ ๋ก๋ํ๊ณ ์ ํจ์ฑ์ ๊ฒ์ฌํฉ๋๋ค. ํ์ผ์์ ํ์ฌ ์ค์ ์ ๋ก๋ํ๊ณ ์ ํจ์ฑ์ ๊ฒ์ฌํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
load()
reset()
save()
ultralytics.utils.plt_settings(rcparams=None, backend='Agg')
๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์์๋ก rc ๋งค๊ฐ๋ณ์์ ํ๋กํ ํจ์๋ฅผ ์ํ ๋ฐฑ์๋๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
์
decorator: @plt_settings({"font.size": 12}) context manager: with plt_settings({"font.size": 12}):
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
rcparams |
dict
|
์ค์ ํ RC ๋งค๊ฐ๋ณ์ ์ฌ์ . |
None
|
backend |
str
|
์ฌ์ฉํ ๋ฐฑ์๋์ ์ด๋ฆ์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ 'Agg'์ ๋๋ค. |
'Agg'
|
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
Callable
|
์์๋ก ์ค์ ๋ rc ๋งค๊ฐ๋ณ์์ ๋ฐฑ์๋๋ก ์ฅ์๋ ๊ธฐ๋ฅ์ ๋๋ค. ์ด ๋ฐ์ฝ๋ ์ดํฐ๋ ๋ ์คํ์ ์ํด ํน์ matplotlib rc ๋งค๊ฐ๋ณ์์ ๋ฐฑ์๋๊ฐ ํ์ํ ๋ชจ๋ ํจ์์ ์ ์ฉํ ์ ์์ต๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.set_logging(name='LOGGING_NAME', verbose=True)
UTF-8 ์ธ์ฝ๋ฉ ์ง์์ผ๋ก ์ง์ ๋ ์ด๋ฆ์ ๋ํ ๋ก๊น ์ ์ค์ ํ์ฌ ๋ค์ํ ํ๊ฒฝ์์์ ํธํ์ฑ์ ๋ณด์ฅํฉ๋๋ค. ํธํ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.emojis(string='')
ํ๋ซํผ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ์ด๋ชจํฐ์ฝ ์์ ๋ฒ์ ์ ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค.
ultralytics.utils.yaml_save(file='data.yaml', data=None, header='')
YAML ๋ฐ์ดํฐ๋ฅผ ํ์ผ์ ์ ์ฅํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
file |
str
|
ํ์ผ ์ด๋ฆ. ๊ธฐ๋ณธ๊ฐ์ 'data.yaml'์ ๋๋ค. |
'data.yaml'
|
data |
dict
|
๋ฐ์ดํฐ๋ฅผ YAML ํ์์ผ๋ก ์ ์ฅํฉ๋๋ค. |
None
|
header |
str
|
YAML ํค๋๋ฅผ ์ถ๊ฐํฉ๋๋ค. |
''
|
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
None
|
๋ฐ์ดํฐ๊ฐ ์ง์ ๋ ํ์ผ์ ์ ์ฅ๋ฉ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.yaml_load(file='data.yaml', append_filename=False)
ํ์ผ์์ YAML ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
file |
str
|
ํ์ผ ์ด๋ฆ. ๊ธฐ๋ณธ๊ฐ์ 'data.yaml'์ ๋๋ค. |
'data.yaml'
|
append_filename |
bool
|
YAML ํ์ผ๋ช ์ YAML ์ฌ์ ์ ์ถ๊ฐํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ False์ ๋๋ค. |
False
|
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
dict
|
YAML ๋ฐ์ดํฐ ๋ฐ ํ์ผ ์ด๋ฆ. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.yaml_print(yaml_file)
YAML ํ์ผ ๋๋ YAML ํ์์ ์ฌ์ ์ ์์๊ฒ ์ธ์ํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
yaml_file |
Union[str, Path, dict]
|
YAML ํ์ผ ๋๋ YAML ํ์์ ์ฌ์ ์ ํ์ผ ๊ฒฝ๋ก์ ๋๋ค. |
ํ์ |
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
None
|
(์์) |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.read_device_model()
์์คํ ์์ ์ฅ์น ๋ชจ๋ธ ์ ๋ณด๋ฅผ ์ฝ๊ณ ๋น ๋ฅธ ์ก์ธ์ค๋ฅผ ์ํด ์บ์์ ์ ์ฅํฉ๋๋ค. is_jetson() ๋ฐ is_raspberrypi().
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
str
|
์ฑ๊ณต์ ์ผ๋ก ์ฝ์ผ๋ฉด ํ์ผ ๋ด์ฉ์ ๋ชจ๋ธ๋งํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ๋น ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.is_ubuntu()
OS๊ฐ ์ฐ๋ถํฌ์ธ์ง ํ์ธํฉ๋๋ค.
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
bool
|
OS๊ฐ ์ฐ๋ถํฌ์ธ ๊ฒฝ์ฐ ์ฐธ, ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฑฐ์ง์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.is_colab()
ํ์ฌ ์คํฌ๋ฆฝํธ๊ฐ Google Colab ๋ ธํธ๋ถ ๋ด์์ ์คํ๋๊ณ ์๋์ง ํ์ธํ์ธ์.
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
bool
|
Colab ๋ ธํธ๋ถ ๋ด์์ ์คํ ์ค์ด๋ฉด True, ๊ทธ๋ ์ง ์์ผ๋ฉด False์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.is_kaggle()
ํ์ฌ ์คํฌ๋ฆฝํธ๊ฐ Kaggle ์ปค๋ ๋ด์์ ์คํ๋๊ณ ์๋์ง ํ์ธํฉ๋๋ค.
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
bool
|
Kaggle ์ปค๋ ๋ด๋ถ์์ ์คํ๋๋ ๊ฒฝ์ฐ True, ๊ทธ๋ ์ง ์์ผ๋ฉด False์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.is_jupyter()
ํ์ฌ ์คํฌ๋ฆฝํธ๊ฐ ์ฃผํผํฐ ๋ ธํธ๋ถ ๋ด์์ ์คํ๋๊ณ ์๋์ง ํ์ธํฉ๋๋ค. Colab, Jupyterlab, Kaggle, Paperspace ์์ ํ์ธ๋์์ต๋๋ค.
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
bool
|
์ฃผํผํฐ ๋ ธํธ๋ถ ๋ด๋ถ์์ ์คํ ์ค์ด๋ฉด ์ฐธ, ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฑฐ์ง์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.is_docker()
์คํฌ๋ฆฝํธ๊ฐ Docker ์ปจํ ์ด๋ ๋ด์์ ์คํ๋๊ณ ์๋์ง ํ์ธํฉ๋๋ค.
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
bool
|
์คํฌ๋ฆฝํธ๊ฐ Docker ์ปจํ ์ด๋ ๋ด์์ ์คํ ์ค์ด๋ฉด True, ๊ทธ๋ ์ง ์์ผ๋ฉด False์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.is_raspberrypi()
์ฅ์น ๋ชจ๋ธ ์ ๋ณด๋ฅผ ํ์ธํ์ฌ Python ํ๊ฒฝ์ด ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด์์ ์คํ ์ค์ธ์ง ํ์ธํฉ๋๋ค.
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
bool
|
๋ผ์ฆ๋ฒ ๋ฆฌ ํ์ด์์ ์คํ ์ค์ด๋ฉด ์ฐธ, ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฑฐ์ง์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.is_jetson()
์ฅ์น ๋ชจ๋ธ์ ํ์ธํ์ฌ Python ํ๊ฒฝ์ด Jetson Nano ์ฅ์น์์ ์คํ ์ค์ธ์ง ๋๋ Jetson Orin ์ฅ์น์์ ์คํ ์ค์ธ์ง ํ์ธํฉ๋๋ค. ์ ๋ณด๋ฅผ ํ์ธํฉ๋๋ค.
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
bool
|
Jetson Nano ๋๋ Jetson Orin์์ ์คํ ์ค์ธ ๊ฒฝ์ฐ True, ๊ทธ๋ ์ง ์์ผ๋ฉด False์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.is_online()
์๋ ค์ง ์จ๋ผ์ธ ํธ์คํธ์ ์ฐ๊ฒฐ์ ์๋ํ์ฌ ์ธํฐ๋ท ์ฐ๊ฒฐ์ ํ์ธํฉ๋๋ค.
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
bool
|
์ฐ๊ฒฐ์ ์ฑ๊ณตํ๋ฉด ์ฐธ์ด๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฑฐ์ง์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.is_pip_package(filepath=__name__)
์ง์ ๋ ํ์ผ ๊ฒฝ๋ก์ ์๋ ํ์ผ์ด pip ํจํค์ง์ ์ผ๋ถ์ธ์ง ํ์ธํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
filepath |
str
|
ํ์ธํ ํ์ผ ๊ฒฝ๋ก์ ๋๋ค. |
__name__
|
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
bool
|
ํ์ผ์ด pip ํจํค์ง์ ์ผ๋ถ์ธ ๊ฒฝ์ฐ ์ฐธ์ด๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฑฐ์ง์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.is_dir_writeable(dir_path)
๋๋ ํฐ๋ฆฌ์ ์ฐ๊ธฐ ๊ฐ๋ฅํ์ง ํ์ธํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
dir_path |
str | Path
|
๋๋ ํฐ๋ฆฌ ๊ฒฝ๋ก์ ๋๋ค. |
ํ์ |
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
bool
|
๋๋ ํฐ๋ฆฌ์ ์ฐ๊ธฐ ๊ฐ๋ฅํ๋ฉด True, ๊ทธ๋ ์ง ์์ผ๋ฉด False์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.is_pytest_running()
ํ์ฌ pytest๊ฐ ์คํ ์ค์ธ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
bool
|
pytest๊ฐ ์คํ ์ค์ด๋ฉด True, ๊ทธ๋ ์ง ์์ผ๋ฉด False์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.is_github_action_running()
ํ์ฌ ํ๊ฒฝ์ด GitHub Actions ๋ฌ๋์ธ์ง ํ์ธํฉ๋๋ค.
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
bool
|
ํ์ฌ ํ๊ฒฝ์ด GitHub Actions ์คํ๊ธฐ์ธ ๊ฒฝ์ฐ True, ๊ทธ๋ ์ง ์์ผ๋ฉด False์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.get_git_dir()
ํ์ฌ ํ์ผ์ด git ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ํด ์๋์ง ํ์ธํ๊ณ , ์ํด ์๋ค๋ฉด ๋ฆฌํฌ์งํ ๋ฆฌ ๋ฃจํธ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ฐํํฉ๋๋ค. ๋ง์ฝ ์ด๋ฉด ํ์ฌ ํ์ผ์ด git ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ผ๋ถ๊ฐ ์๋ ๊ฒฝ์ฐ None์ ๋ฐํํฉ๋๋ค.
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
Path | None
|
๋ฃจํธ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ฐพ์ผ๋ฉด Git, ์ฐพ์ง ๋ชปํ๋ฉด ์์์ผ๋ก ์ค์ ํฉ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.is_git_dir()
ํ์ฌ ํ์ผ์ด git ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ผ๋ถ์ธ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค. ํ์ฌ ํ์ผ์ด git ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ผ๋ถ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ํ์ง ์์ผ๋ฉด None์ ๋ฐํํฉ๋๋ค.
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
bool
|
ํ์ฌ ํ์ผ์ด git ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ผ๋ถ์ธ ๊ฒฝ์ฐ true์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.get_git_origin_url()
git ๋ฆฌํฌ์งํ ๋ฆฌ์ ์๋ณธ URL์ ๊ฒ์ํฉ๋๋ค.
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
str | None
|
git ๋ฆฌํฌ์งํ ๋ฆฌ์ ์๋ณธ URL(git ๋๋ ํฐ๋ฆฌ๊ฐ ์๋ ๊ฒฝ์ฐ ์์)์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.get_git_branch()
ํ์ฌ git ๋ธ๋์น ์ด๋ฆ์ ๋ฐํํฉ๋๋ค. git ๋ฆฌํฌ์งํ ๋ฆฌ์ ์๋ ๊ฒฝ์ฐ None์ ๋ฐํํฉ๋๋ค.
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
str | None
|
ํ์ฌ git ๋ธ๋์น ์ด๋ฆ ๋๋ git ๋๋ ํฐ๋ฆฌ๊ฐ ์๋ ๊ฒฝ์ฐ ์์์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.get_default_args(func)
ํจ์์ ๋ํ ๊ธฐ๋ณธ ์ธ์์ ๋์ ๋๋ฆฌ๋ฅผ ๋ฐํํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
func |
callable
|
๊ฒ์ฌ ๊ธฐ๋ฅ์ ๋๋ค. |
ํ์ |
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
dict
|
๊ฐ ํค๊ฐ ๋งค๊ฐ๋ณ์ ์ด๋ฆ์ด๊ณ ๊ฐ ๊ฐ์ด ํด๋น ๋งค๊ฐ๋ณ์์ ๊ธฐ๋ณธ๊ฐ์ธ ๋์ ๋๋ฆฌ์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.get_ubuntu_version()
OS๊ฐ ์ฐ๋ถํฌ์ธ ๊ฒฝ์ฐ ์ฐ๋ถํฌ ๋ฒ์ ์ ๊ฒ์ํฉ๋๋ค.
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
str
|
์ฐ๋ถํฌ ๋ฒ์ ๋๋ ์ฐ๋ถํฌ OS๊ฐ ์๋ ๊ฒฝ์ฐ ์์. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.get_user_config_dir(sub_dir='Ultralytics')
ํ๊ฒฝ ์ด์ ์ฒด์ ์ ๋ฐ๋ผ ์ ์ ํ ์ค์ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ฐํํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
sub_dir |
str
|
๋ง๋ค ํ์ ๋๋ ํฐ๋ฆฌ์ ์ด๋ฆ์ ๋๋ค. |
'Ultralytics'
|
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
Path
|
์ฌ์ฉ์ ๊ตฌ์ฑ ๋๋ ํฐ๋ฆฌ ๊ฒฝ๋ก์ ๋๋ค. |
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.colorstr(*input)
์ ๊ณต๋ ์์ ๋ฐ ์คํ์ผ ์ธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฌธ์์ด์ ์์ ์ง์ ํฉ๋๋ค. ANSI ์ด์ค์ผ์ดํ ์ฝ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ https://en.wikipedia.org/wiki/ANSI_escape_code ์ ์ฐธ์กฐํ์ธ์.
์ด ํจ์๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ํธ์ถํ ์ ์์ต๋๋ค.
- colorstr('color', 'style', 'your string')
- colorstr('๋ฌธ์์ด')
๋ ๋ฒ์งธ ์์์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก 'ํ๋์'๊ณผ '๊ตต๊ฒ'๊ฐ ์ ์ฉ๋ฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
*input |
str
|
์ฒ์ n-1๊ฐ์ ๋ฌธ์์ด์ด ์์ ๋ฐ ์คํ์ผ ์ธ์์ธ ๋ฌธ์์ด ์ํ์ค์ ๋๋ค, ๋ง์ง๋ง ๋ฌธ์์ด์ ์์ ์ง์ ํ ๋ฌธ์์ด์ ๋๋ค. |
()
|
์ง์๋๋ ์์ ๋ฐ ์คํ์ผ
๊ธฐ๋ณธ ์์: '๋ธ๋', '๋ ๋', '๊ทธ๋ฆฐ', '์๋ก์ฐ', '๋ธ๋ฃจ', '๋ง์ ํ', '์์', 'ํ์ดํธ' ๋ฐ์ ์์: 'bright_black', 'bright_red', 'bright_green', 'bright_yellow', 'bright_blue', 'bright_magenta', 'bright_cyan', 'bright_white' ๊ธฐํ: '๋', '๊ตต๊ฒ', '๋ฐ์ค'
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
str
|
์ง์ ๋ ์์ ๋ฐ ์คํ์ผ์ ๋ํ ANSI ์ด์ค์ผ์ดํ ์ฝ๋๋ก ๋ํ๋ ์ ๋ ฅ ๋ฌธ์์ด์ ๋๋ค. |
์์:
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.remove_colorstr(input_string)
๋ฌธ์์ด์์ ANSI ์ด์ค์ผ์ดํ ์ฝ๋๋ฅผ ์ ๊ฑฐํ์ฌ ํจ๊ณผ์ ์ผ๋ก ์์์ ํด์ ํฉ๋๋ค.
๋งค๊ฐ๋ณ์:
์ด๋ฆ | ์ ํ | ์ค๋ช | ๊ธฐ๋ณธ๊ฐ |
---|---|---|---|
input_string |
str
|
์์ ๋ฐ ์คํ์ผ์ ์ ๊ฑฐํ ๋ฌธ์์ด์ ๋๋ค. |
ํ์ |
๋ฐํํฉ๋๋ค:
์ ํ | ์ค๋ช |
---|---|
str
|
๋ชจ๋ ANSI ์ด์ค์ผ์ดํ ์ฝ๋๊ฐ ์ ๊ฑฐ๋ ์ ๋ฌธ์์ด์ ๋๋ค. |
์์:
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.threaded(func)
๊ธฐ๋ณธ์ ์ผ๋ก ๋์ ํจ์๋ฅผ ๋ฉํฐ ์ค๋ ๋ํ๊ณ ์ค๋ ๋ ๋๋ ํจ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
์ค๋ ๋ ๋ฐ์ฝ๋ ์ดํฐ๋ก ์ฌ์ฉํฉ๋๋ค. 'threaded=False'๊ฐ ์ ๋ฌ๋์ง ์๋ ํ ํจ์๋ ๋ณ๋์ ์ค๋ ๋์์ ์คํ๋ฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.set_sentry()
์ค๋ฅ ์ถ์ ๋ฐ ๋ณด๊ณ ๋ฅผ ์ํด ์ผํธ๋ฆฌ SDK๋ฅผ ์ด๊ธฐํํฉ๋๋ค. sentry_sdk ํจํค์ง๊ฐ ์ค์น๋์ด ์๊ณ ์ค์ ์์ ์ค์ ์์ sync=False์ธ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉ๋ฉ๋๋ค. 'yolo settings'๋ฅผ ์คํํ์ฌ ์ค์ YAML ํ์ผ์ ํ์ธํ๊ณ ์ ๋ฐ์ดํธํฉ๋๋ค.
์ค๋ฅ ์ ์ก์ ํ์ํ ์กฐ๊ฑด(๋ชจ๋ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋์ง ์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋ณด๊ณ ๋์ง ์์): - sentry_sdk ํจํค์ง๊ฐ ์ค์น๋จ - YOLO ์ค์ ์์ sync=true - pytest๊ฐ ์คํ๋๊ณ ์์ง ์์ - pip ํจํค์ง ์ค์น์์ ์คํ ์ค - git์ด ์๋ ๋๋ ํฐ๋ฆฌ์์ ์คํ ์ค - ์์ -1 ๋๋ 0์ผ๋ก ์คํ ์ค - ์จ๋ผ์ธ ํ๊ฒฝ - CLI ํจํค์ง๋ฅผ ์คํํ๋ ๋ฐ ์ฌ์ฉ๋จ(๊ธฐ๋ณธ CLI ๋ช ๋ น์ ์ด๋ฆ์ผ๋ก 'yolo'๋ก ํ์ธ)
๋ํ ์ด ํจ์๋ ํค๋ณด๋ ์ธํฐ๋ฝํธ ๋ฐ FileNotFoundError ์์ธ๋ฅผ ๋ฌด์ํ๊ณ ์์ธ ๋ฉ์์ง์ '๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ'์ด ์๋ ์ด๋ฒคํธ๋ฅผ ์ ์ธํ๋๋ก ์ค์ ํฉ๋๋ค.
๋ํ ์ด ๊ธฐ๋ฅ์ ์ผํธ๋ฆฌ ์ด๋ฒคํธ์ ๋ํ ์ฌ์ฉ์ ์ง์ ํ๊ทธ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.deprecation_warn(arg, new_arg, version=None)
๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ์ธ์๊ฐ ์ฌ์ฉ๋๋ฉด ์ฌ์ฉ ์ค๋จ ๊ฒฝ๊ณ ๋ฅผ ๋ฐํํ์ฌ ์ ๋ฐ์ดํธ๋ ์ธ์๋ฅผ ์ ์ํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.clean_url(url)
URL์์ ์ธ์ฆ์ ์ ๊ฑฐํฉ๋๋ค(์: https://url.com/file.txt?auth -> https://url.com/file.txt).
์ ์์ค ์ฝ๋ ultralytics/utils/__init__.py
ultralytics.utils.url2file(url)
์์ฑ 2023-11-12, ์ ๋ฐ์ดํธ 2024-05-08
์์ฑ์: Burhan-Q (1), ๊ธ๋ -์กฐ์ฒ (8), ์๋-ํ (1)