как разделить датасет по папкам с именами классов
создали в label studio датасет для обучения модели распознавания животных на основе yolov5, и столкнулись с проблемами:
- после экспорта данных все изображения в единой папке, не по классам, как и аннотации, плюс имена получили что-то странное в начале "00a2537c-cow2387.jpg", такая же ситуация и с аннотациями "00a2537-cow2387.txt" подскажите пожалуйста скрипт, чтобы разделить датасет по папкам согласно названиям классов: cow, sheep, wolf
- Почистив один класс руками до 1к изображений в ручную столкнулся с той же сложностью - вытащить аннтоации из папки в соответстии с именами изображений прошу прощения за кривизну вопроса
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
я бы мог порекомендовать что-то подобного рода:
import shutil
dirname = pathlib.Path(Путь к папке с файлами)
mysets = ["cow", "sheep", "wolf"]
allfiles = list(dirname.glob('**/*'))
for i in mysets:
setdir = dirname/i
setdir.mkdir(parents=True, exist_ok=True)
for j in allfiles:
if i in j.stem:
shutil.copyfile(str(j), str(setdir/j.name))
настоятельно рекомендую сначала разобраться с тем, что этот скрипт делает, а потом уже применять.