Как переименовать классы в YOLO: пошаговое руководство с юмором!

Привет, друзья! Вы не представляете, сколько я времени провел, мучаясь с переименованием классов в YOLO. Три дня — это не шутка, и благодаря нейросети, которая подсказала мне решение на сайте документации https://docs.ultralytics.com/models/yolov8/, я наконец-то выбрался из этого горячего ада!

Переименование классов в YOLO

Итак, давайте перейдем к делу! Чтобы поменять названия классов в модели YOLO, нужен код, которым я делюсь с вами ниже. Это как делать тосты: немного терпения, и все получится!


    from ultralytics import YOLO

    model = YOLO('models/best_original.pt')

    # Get current names
    print('Before: ')
    print(model.model.names)

    new_class_names = {
        0: 'Helm',
        1: 'Mask',
        2: 'No_Helm',
        3: 'No_Mask',
        4: 'No_Vest',
        5: 'Person',
        6: 'Safety_Cone',
        7: 'Vest',
        8: 'Machinery',
        9: 'Vehicle'
    }

    # Change name here
    for key in new_class_names.keys():
        model.model.names[key] = new_class_names[key]

    print('After: ')
    print(model.model.names)

    if input('save?') == 'y':
        model.save('models/rename_original.pt')
        print('After in rename_original: ')
        model = YOLO('models/rename_original.pt')
        print(model.model.names)
    

Итак, вот краткий курс действия:

  1. Импортируем модель YOLO из библиотеки Ultralyics. Ничего сложного, просто как плевать в стену.
  2. Получаем текущие названия классов, чтобы посмотреть, что у нас тут за шедевры.
  3. Создаем словарь new_class_names, который будет хранить новые названия классов. Звучит просто, правда?
  4. Запускаем цикл, который проходит по ключам нашего словаря и заменяет старые названия на новые. Можно было бы даже устроить вечеринку, но лучше сохранить хоть какую-то серьезность.
  5. Выводим список классов после замен и спрашиваем, не хотим ли мы сохранить изменения. Если да, то сохраняем в файл, чтобы больше не париться с этим вопросом!

После всего этого, вы увидите «After» с вашими новыми, блестящими названиями классов. Прямо как у меня:


    {0: 'Helm', 1: 'Mask', 2: 'No_Helm', 3: 'No_Mask', 4: 'No_Vest', 5: 'Person', 6: 'Safety_Cone', 7: 'Vest', 8: 'Machinery', 9: 'Vehicle'}
    

В общем, не делайте, как я, и не теряйте три дня — просто следуйте этой инструкции, и у вас все получится с первого раза! Удачи вам в переименовании классов, и пусть нейросети всегда будут на вашей стороне!

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.