Обучение YOLOv8 для задачи детекции

แชร์
ฝัง
  • เผยแพร่เมื่อ 14 พ.ย. 2023
  • Реализация полного процесса обучения - нарезка видео на фремы (ffmpeg), поднятие сервера по разметке CVAT, переподготовка данных к нужному формату YOLO, реализация обучения и инференса на тестовых видео + трекинг с использованием передовых подходов (bytetrack & botsort)
    Код полный с бэкапом проекта CVAT доступен по ссылке - drive.google.com/file/d/1ZpzY...
    Таймкоды из видео:
    4:45 - Разметка в CVAT + ffmpeg для генерации кадров из видео
    35:25 - Обучение нейронной сети YOLO
    53:50 - Использование на практике обученной сети
    Если захотите визуализовать результаты работы (инференса) обученной нейронной сети, то очень советую посмотреть это видео - • How to visualize YOLOv...
    Используйте для этого готовую библиотеку: pip install patched_yolo_infer
    Подписывайтесь на канал, чтобы быть в курсе новых видео и узнавать больше о компьютерном зрении!

ความคิดเห็น • 266

  • @Koldim2001
    @Koldim2001  4 หลายเดือนก่อน +10

    Пример использования версии CVAT без докера можете увидеть в новом видеоролике по yolov8-seg на моем канале. Советую глянуть, так как там я учел множество вопросов, возникших у подписчиков. Всем спасибо за вовлеченность
    Вот ссылка на туториал по yolo-seg - th-cam.com/video/FF3mIWF0vFs/w-d-xo.htmlsi=Jul4CMdlPYIBC24T
    -------------
    Если захотите визуализовать результаты работы (инференса) обученной нейронной сети, то очень советую посмотреть это видео - th-cam.com/video/nBQuWa63188/w-d-xo.htmlsi=z1Gl6Auv8QuYY_56
    Используйте для этого готовую библиотеку: pip install patched_yolo_infer

    • @user-pp7tr6tv6d
      @user-pp7tr6tv6d 3 หลายเดือนก่อน

      Здравствуйте, можно будет вашу идею через камеру и расбери пай реализовать?

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน

      @@user-pp7tr6tv6d да конечно можно. Но стоит тогда обучать модель размером n (то есть модель более легкую чтобы расбери выдержал инференс)

  • @elcolex777
    @elcolex777 4 หลายเดือนก่อน +12

    Я когда смотрю обучающее видео, и если мне стало немного понятно (мне достаточно тупому человеку)), то я считаю что автор классно объясняет и я ставлю лайк. Так вот, вы классно объясняете, ставлю лайк)))

    • @Koldim2001
      @Koldim2001  4 หลายเดือนก่อน

      Спасибо огромное))

  • @tanjiro_shuragashi
    @tanjiro_shuragashi 3 หลายเดือนก่อน +5

    Решаю сейчас задачу с детектированием на производстве свиней и подсчёт голов и наткнулся на ваша видео. Просто спасибо вам, подписка и лайк. 😅

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน +1

      Спасибо большое)) желаю удачи

  • @user-jz8od1ck4p
    @user-jz8od1ck4p หลายเดือนก่อน +2

    Спасибо за годный контент! Очень полезно, ничего лишнего. Давно такой ищу.

  • @user-or6tb7tb2q
    @user-or6tb7tb2q 2 หลายเดือนก่อน +1

    Класс!!! Спасибо за ваши труды и низкий поклон!

    • @Koldim2001
      @Koldim2001  2 หลายเดือนก่อน

      Спасибо большое)

  • @evgenynovichenko1895
    @evgenynovichenko1895 2 หลายเดือนก่อน +2

    спасибо, оффигенно помогло! Для того кто, я про себя)) кто не сталкивался с этим процессом

  • @igormalev2871
    @igormalev2871 3 หลายเดือนก่อน +1

    Спасибо огромное за уроки!!!!!!!!! Материал 🔥

  • @tyurinp
    @tyurinp หลายเดือนก่อน +1

    Большое спасибо! Очень полезное видео!

  • @Haie_Westhus
    @Haie_Westhus 4 หลายเดือนก่อน +1

    Хороший разбор материала. Это 100% подписка.

    • @Koldim2001
      @Koldim2001  4 หลายเดือนก่อน

      Спасибо большое ☺️

  • @cute-catsMurrrr
    @cute-catsMurrrr 5 หลายเดือนก่อน +1

    Крутое видео. Спасибо

  • @vitalyk3421
    @vitalyk3421 2 หลายเดือนก่อน +1

    Супер, спасибо!

  • @miklepoh6203
    @miklepoh6203 หลายเดือนก่อน +3

    Совет для тех кто не хочет ставить анаконду и столкнулся с проблемой __main__.py", line 4, in ModuleNotFoundError: No module named. Скопируйте указанные файлы после No module named , они лежат в папке CVAT2YOLO скопированной с гитхаба, в \Python\Python311\Lib это папке с установленными библиотеками для питона. После этого запускайте в терминале cvat2yolo --cvat my_datset --mode manual --output_folder my_dataset_yolov5 . Если получились пустые папки то значит где-то сделали не так как в видео. Например у меня фото были не в png , для этого я использовал cvat2yolo --cvat my_datset --mode manual --train_folder obj_Train_data --val_folder obj_Validation_data --test_folder obj_Test_data --img_format jpg --output_folder my_dataset_yolov5 здесь указан нужный формат фото и всё получилось.

  • @andreylazoryak7593
    @andreylazoryak7593 4 หลายเดือนก่อน +1

    спасибо, очень полезно

  • @bbbbbb9193
    @bbbbbb9193 5 หลายเดือนก่อน +1

    Класс!!!! Спасибо!!

    • @Koldim2001
      @Koldim2001  5 หลายเดือนก่อน +1

      😊

  • @user-hb3kr5wb7u
    @user-hb3kr5wb7u 4 หลายเดือนก่อน +3

    Привет! Спасибо тебе большое за столь хорошее видео. На РУ ютубе такого контента нет, по этому выражаю тебе отдельную благодарность - лайк и подписка тебе. Также, хотел бы у тебя уточнить:
    У меня есть задача связанная с классификацией различных кожных заболеваний (преимущественно угри, пустулы и тому подобное).
    1. Подойдет ли для таких целей YOLO или лучше использовать другую модель типо Resnet/VGG19(ты в других комментариях упоминал Resnet)?
    2. Как я понимаю, могут быть такие частные случаи когда лицо человека не видно полностью, а только его части. Является ли в таком случае корректным использование "двухстадийного подхода" - обучение на поиск лиц людей, а затем уже классификация внутри данного бокса
    Если сможешь что то подсказать буду очень благодарен!

    • @Koldim2001
      @Koldim2001  4 หลายเดือนก่อน

      Спасибо большое очень приятно. По поводу вопросов: 1) Да я бы посоветовал использовать подходы с transfer learning resnet сети. Это довольно несложно на пацторче и керасе реализуется. 2)По поводу идеи с двухстадийным пайплайном, то совершенно верно. Берем любой детектор лиц (проще на самом деле готовый взять а не самим обучать так как задача распотраненная и 100% найдешь что-то ex: как минимум у midiapipe видал) и уже потом на найденном прямоугольнике делаешь ресайз и на вход обученного классификатора подавай 👍🏻

  • @sechokito
    @sechokito หลายเดือนก่อน +1

    thank you from turkey

    • @sechokito
      @sechokito หลายเดือนก่อน

      though one member makes no importance.

    • @Koldim2001
      @Koldim2001  หลายเดือนก่อน

      👍🏻 🇹🇷 good luck

  • @Kate-rs7wt
    @Kate-rs7wt 2 วันที่ผ่านมา

    @Koldim2001 Спасибо за отличный обучающий урок! Но возник вопрос, материал из которого делается train, val и test - составляет 1 исходное видео? Т.е. взято какое-то видео о птицах, например на полчаса и из него вырезаны куски на 10 минут для test, и оставшееся на трейн и
    val?

    • @Koldim2001
      @Koldim2001  2 วันที่ผ่านมา

      Спасибо. Да все верно. Но это абстрактный пример. Само собой в вашем случае это будет более осознанная задача приуроченная к чему-то))

  • @user-uw5gx7gy1q
    @user-uw5gx7gy1q 5 หลายเดือนก่อน +1

    Отличое видео! Очень познавательно и что немаловажно - Детально расписан весь процесс обучения нейронки.
    P.S. Было бы интересно узнать больше о нейросетях, способных учитывать контекст времени.

    • @Koldim2001
      @Koldim2001  5 หลายเดือนก่อน

      Спасибо большое ☺️

  • @reeezvanov
    @reeezvanov หลายเดือนก่อน

    Здравствуйте! Спасибо за видео. Достаточно информативное для начинающих людей в нейросетях.
    Подскажите, с таким способом обучения сможет ли данная сеть определять птиц на других видео? Например, если силуэты будут такие же, а цвета, размеры другие?
    Спрашиваю, потому что хочу создать приложение, где нейросеть считает попадания и промахи баскетбольного мяча в кольцо с определённой позиции. Планирую обучить сеть по этому способу.

    • @Koldim2001
      @Koldim2001  หลายเดือนก่อน +1

      Да в идеале сможет. Сеть пытается понять общую логику того что есть птица и клюв. Но лучше специально при обучении набрать кадров с разных ракурсов с разными размерами птиц и прочим. То есть чем разнообразнее датасете тем лучше обобщающая возможностью нейронной сети

  • @user-gv9tr2fq5k
    @user-gv9tr2fq5k 4 หลายเดือนก่อน +2

    Дмитрий, большое спасибо вам за уроки.
    Подскажите пожалуйста как я могу реализовать такой функционал: у меня есть изображение и обученная модель. На изображении несколько типов одинаковых объектов, как мне создать словарь, куда передать номер объекта и его координаты?

    • @Koldim2001
      @Koldim2001  4 หลายเดือนก่อน

      Попробуйте разобраться как выглядит выход при прогоне фотки через модель. Там можно будет вытянуть координаты боксов и там же и значения классов так что это надо на практике посмотреть results[0].boxes

    • @user-gv9tr2fq5k
      @user-gv9tr2fq5k 4 หลายเดือนก่อน +1

      @@Koldim2001 хорошо, сейчас попробую

  • @davidnez2167
    @davidnez2167 3 หลายเดือนก่อน

    Видео классное, начинаю понимать, что нейросети не так уж и сложно (если не с нуля писать)
    Но для того, чтобы нормально запустить и настроить это ужас.
    То с Tenserflow были проблемы, теперь с докером, потом еще какая-то фигня вылезет.

  • @brooklynbaby6461
    @brooklynbaby6461 2 หลายเดือนก่อน

    Дмитрий, спасибо за видео! Хотел бы задать вопрос: скачал архив вашего проекта и запустил в VSCode, попытался обучить модель и, почему то, в качестве процессора он использует CPU, а не GPU. Никак не могу разобраться в чем дело. Вот что пишет: Ultralytics YOLOv8.1.40 🚀 Python-3.11.8 torch-2.2.2+cpu CPU (12th Gen Intel Core(TM) i5-12400F)

    • @Koldim2001
      @Koldim2001  2 หลายเดือนก่อน +1

      Так у вас torch с cpu стоит. Вам надо в новом отдельном окружении поставить сначала торч с поддержкой gpu и только потом ставить ультралитикс. Но и проверьте наличие CUDA на компе (если что установите)

    • @brooklynbaby6461
      @brooklynbaby6461 2 หลายเดือนก่อน +1

      @@Koldim2001 спасибо большое!

  • @teodorchaly184
    @teodorchaly184 5 หลายเดือนก่อน +1

    Интересное видео. Хотел узнать совет - если мне нужно найти точку середины лица на виде (в прямом эфиире) то как мне это лучше сделать? Я имею в виду - делать все через питон или через юоло? Какая разница между этими двумя способами?

    • @Koldim2001
      @Koldim2001  5 หลายเดือนก่อน +3

      Yolo это вид нейронной сети. Она пишется на питоне. Питон это язык программирования а yolo это модель (так что это совершенно разные вещи)
      Для вашей задачи советую использовать немного другую нейросеть. У меня есть видео как раз по вашей задаче. В следующем комментарии приложу ссылку на видос по распознаванию точек тела

    • @Koldim2001
      @Koldim2001  5 หลายเดือนก่อน +1

      Посмотрите это видео th-cam.com/video/RIiQeWJgjLw/w-d-xo.htmlsi=ulj-WbxiHdpj0Dxz

  • @user-oc8js5gy1f
    @user-oc8js5gy1f 3 หลายเดือนก่อน +1

    Круто! Насколько это просто, слов нет. А что бы использовать подобную модель для видео с камеры в лайв режиме, какой мощности необходим компьютер?
    Возможен ли запуск и нормальная работа на одноплатниках типа разюери пи, например?

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน

      Спасибо)) Все зависит от размера модели. Модель n можно запустить хоть на разбери. По поводу конфигурации компа то тут лучше экспериментально проверить. То есть по очереди запусти предобусенные сети n s m l (то есть по возрастанию сложности) и как раз поймешь какое fps обработки

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน

      Если юзать видеокарту то тогда можно на m спокойно 30-35 fps выбивать. А на моделях n так вообще все 60. Если на cpu то скорость значительно падает. Так что на разбери стоит не более n юзать

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน

      Есть и одноплатные компы с достойными видеокартами (но строит дороговато): supereyes.ru/catalog/mikrokompyutery_nvidia_jetson/

    • @user-oc8js5gy1f
      @user-oc8js5gy1f 3 หลายเดือนก่อน +1

      Думаю меня 5 кадров в секунду вполне устроит. Что бы какие нибудь оповещения в телегу кидать при обнаружении нужного мне обьекта, например. Вообще шок, что особо и шарить ни в чем мне нужно. Датасет подготовил, кнопку нажал, а оно само все случилось😄

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน +1

      @@user-oc8js5gy1f да сейчас все лучше и лучше в сфера обучения нейронок. Компании типа Ultralytics (создатели yolo) сразу предоставляют готовый код в несколько строк чтобы под капотом делать сложнейшую математику

  • @valeogamer
    @valeogamer 3 หลายเดือนก่อน +1

    Урок очень классный! Спасибо❤ Не могли бы пожалуйста подсказать в чем ошибка или это норма: Попробовал повторить на своем датасете обучить через google colab, было два класса это левая правая рука, разметил через CVAT, несколько раз перепроверил, но по пути runs/detect/train/train-batch0.jpg(batch1.jpg, batch2.jpg) отметки классов в виде цифр 0 и 1 расположены ошибочно, то есть в моем случае левая сторона это 0 правая 1, а там рандомно, когда как, но все что заканчивается на -labels все нормально, то есть где вместо 0 и 1 написано левая и правая они расположены правильно, влияет ли на обучение и должно ли быть так?)

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน +1

      Скорее всего дело в аугментациях yolo. Он при обучении по-разному аугментрует данные в том числе для наращивания датасета делает случайное отображение. Так что советую изучить как отключить эту опцию при обучении (random vertical flip)

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน +1

      Правая и левая рука не всегда очевидное явление так как в зеркале например может произойти переворот рук. Вообще сказал бы что такая модель ненадежной будет скорее всего. Лучше иметь один класс - рука. Но если надо различать правую от левой то есть готовая модель от mediapipe. Посмотрите мое видео про обнаружение основных точек тела (я там там посередине видео примерно про руки показываю модели готовые)

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน +1

      Вот ссылку на то видео th-cam.com/video/RIiQeWJgjLw/w-d-xo.htmlsi=8feG1aGR0R8YXpVS

    • @valeogamer
      @valeogamer 3 หลายเดือนก่อน

      @@Koldim2001 спасибо огромное!) Ждём ещё больше новых видосиков💥

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน

      @@valeogamer спасибо большое ☺️

  • @TheAlexanderMinsk
    @TheAlexanderMinsk 5 หลายเดือนก่อน +1

    Спасибо, интересно и полезно! А если надо натренировать сеть, что бы волосы различало (прически), куда советуете глянуть, искать уже размеченный дата-сет?

    • @Koldim2001
      @Koldim2001  5 หลายเดือนก่อน +1

      Возможно существуют готовые размеченные датасеты людей с разными прическами. Я бы подошел к этой задаче следующим образом: берём готовую предобученную сеть по детекции лиц (голов людей) И просто обучаем классификатор на основе кропов. Так что обучить надо будет лишь resnet на примерах результатах детекции готовой сети. То есть каждой голове ставим класс той или иной прически. Таким образом нам детекцию можно не делать многоклассовой. Достаточно взять готовую модель если найдёте, либо обучить свою по нахождению одного класса - голова человека. А далее уже на основе результатов масштабировать под разное число классов причёски

    • @TheAlexanderMinsk
      @TheAlexanderMinsk 5 หลายเดือนก่อน

      @@Koldim2001 Спасибо! буду пробовать, выбрал задачку для изучения темы: менять цвет прически на выбранный пользователем. Буду сражаться, спасибо за направление!

    • @Koldim2001
      @Koldim2001  5 หลายเดือนก่อน +1

      @@TheAlexanderMinsk тут стоит подойти к задаче как к сегментации а не детекции. То есть необходимо разметить Dataset причесок (именно выделяя сам контур прически) а потом по полученным найденным контурам задавать цветовые эффекты. Нашли контур прически и далее меняете для всех пикселей контура hue параметр (то есть цветность в hsv представлении)

    • @Koldim2001
      @Koldim2001  5 หลายเดือนก่อน +1

      @@TheAlexanderMinskдетекция нужна лишь когда цель обнаруживать или классифицировать объект прическа. Вам же надо менять прическу так что тут стоит другой подход юзать. Самый простой я как раз описал

    • @Koldim2001
      @Koldim2001  5 หลายเดือนก่อน +1

      @@TheAlexanderMinsk habrastorage.org/getpro/habr/upload_files/d6d/2ef/0f8/d6d2ef0f87e6f27023ca244903bbdeb3.png вот эта фотка может даст более хорошее представление о том, что должна уметь делать ваша сетка - сегментировать волосы. Изучите архитектуру UNET для данной задачи. На фотке показаны названия готовых датасетов так что вам не надо ничего размечать самостоятельно. Достаточно найти тот, что нравится и скачать а далее обучить unet

  • @desy1d
    @desy1d 3 หลายเดือนก่อน +1

    Класный видос, можешь подсказать, когда запускаю docker он жрет много оперативы практически всю, когда ставлю ограничение начинает работать жесткий диск на 100% (хотя просто только docker запущен) в чем может быть проблема не знаешь?

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน +1

      Честно говоря не сверх большой спец по докерам. Удивительно что он вообще жрет диск так активно во время работы контейнера. Он там к диску обращается лишь в моменты подгрузки чего-то на сиват или сохранении разметки.
      Если комп не вывозит сиват в контейнере то можешь юзать готовый сайт сивата не требующий локальной установки www.cvat.ai. Но на нем есть траблы с выгрузкой изображений так что надо будет руками их добавить в нужную папку при формировании разметки

    • @desy1d
      @desy1d 3 หลายเดือนก่อน

      @@Koldim2001 да меня тоже удивляет, что в простое ест 8 гигов и диск куда-то 1гб использует

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน

      @@desy1d Неа если он весит 8гб это вполне окей. Это же контейнеры в которых собственная операционная система практически. Так что докеры сильно жрут память при установке. Но после работают особо не общаясь к дополнительной памяти

    • @davidnez2167
      @davidnez2167 3 หลายเดือนก่อน +1

      Полгаю, что диск начинает жраться, т.к. включается "Файл подкачки" для облегчения работы оперативной памяти

  • @ivana88873
    @ivana88873 3 หลายเดือนก่อน

    Здравствуйте ! Делаю сейчас свой первый проект небольшой на yolov8 , правильно ли сделать два yaml files на тестовую и проверочную выборку ? и еще вопрос открывала файл run , там что его можно открыть и будут графики обучения ? в колабе его можно отрыть ?спасибо

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน +1

      Неа там один ямл файл нужен как в примере показано на видео. Просто укажите путь к нужным папкам в нем.
      Да все верно в runs будут результаты обучения и графики в колабе он тоже будет в директории появится где вы в текущий момент работаете

    • @ivana88873
      @ivana88873 3 หลายเดือนก่อน

      У меня почему-то получается текстовый файл без всяхих папок , как можно прописать путь ? А что yaml file бывает в папках и другой ? Еще Дима пожалуйста помогите мне , да папка runs после обучения отрывается , но как от туда выципить эти графики ? отрыть в колабе можно ? где точно там они ? спасибо вам большое @@Koldim2001

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน +1

      ⁠​⁠​⁠@@ivana88873попробуйте тогда реализовать в vscode если с колабом не выходит. В папке runs после обучения можно будет найти подпапку в которой лежат все фотки с процесса обучения и тестирования + итоговые веса. В видосе моем показано где именно находятся они.
      Вам надо правильно сконфигурировать ultralitics settings.yaml чтобы yolo знало откуда брать фотки и лейблы для обучения тогда процесс запустится и как только все отработает увидите результат в папке runs. Вообщем, следуйте туториалу чтоб все получились 😎

  • @ivan02081983s
    @ivan02081983s 4 หลายเดือนก่อน

    Дима, добрый день. Подскажи пожалуйста, в CVAT разметил 251 фото Train и Val 52 фото (6 классов) и при выгрузке пишет "Could not export dataset for the project 94349 Error: exporting project dataset with images is not available. Upgrade the account to extend the limits." не могу понять где я по лимиту упираюсь.

    • @Koldim2001
      @Koldim2001  4 หลายเดือนก่อน +1

      Используйте режим выгрузки без выбора «save images». Это особенность вэб версии сивата без использования докера. Потом просто руками добавите в выгруженный датасет фотографии из тасок по подобию как в видео показано и проблема решится

  • @user-im1wq2bv8l
    @user-im1wq2bv8l 5 หลายเดือนก่อน +1

    Доброго времени суток! А если у меня уже есть обученная модель на одном классе и я хочу добавить в эту модель еще несколько классов и до обучить ее, но не переобучать всю модель заново (то есть не использовать те изображения (датасет) которыми я обучал модель ранее , а до обучить ее на новых изображениях на которых будет выделены новые классы для распознавания ), что бы Н.С. распознавала и старый класс и новые добавленные, возможно ли это сделать?

    • @Koldim2001
      @Koldim2001  5 หลายเดือนก่อน

      Если вы хотите добавить новые классы в сеть, то вам придётся заново обучать весь детектор а не только новые классы. Действительно, если вы будете стартовать обучение с предыдущих уже вами полученных весов, то это может положительно отразится на итоговом результате всего обучение

    • @Koldim2001
      @Koldim2001  5 หลายเดือนก่อน

      Советую воспринимать логику примерно как человек обучается. Если вы изучаете новый предмет максимально досконально и никак не повторяете то, что изучали ранее, то ваши знания исчезают. Невозможно просто взять и изучить новую дисциплину, не забыв старые. Так что если вы хотите увеличить число классов или просто изменить их число, то надо переобучать сеть полностью. Но можно начинать такое обучение уже с весов предыдущего обучения и это повысит качество

    • @Koldim2001
      @Koldim2001  5 หลายเดือนก่อน

      Логика использования предобученной сети - это как обучать не ребёнка, а сразу профессора на новую сферу деятельности. Шансов на успех больше если сеть уже до этого что-то умела

    • @user-im1wq2bv8l
      @user-im1wq2bv8l 5 หลายเดือนก่อน

      @@Koldim2001 Большое спасибо вам за ответ!

  • @zloyleva
    @zloyleva หลายเดือนก่อน

    Привет. На каком железе запускал?

    • @Koldim2001
      @Koldim2001  หลายเดือนก่อน

      Core i7, rtx 4090

  • @Koldim2001
    @Koldim2001  6 หลายเดือนก่อน +4

    код из видео - drive.google.com/file/d/1ZpzY1OVPVmaAG5-Asvj9fYKWyKTu5vKb/view?usp=sharing

  • @t76480
    @t76480 2 หลายเดือนก่อน

    Мне необходимо распознавать номера машин. Есть комп с видеокартой. Подскажите какие нейросети можно использовать.

    • @Koldim2001
      @Koldim2001  2 หลายเดือนก่อน +1

      Тут нужно последовательно 2 сети использовать. Сначала детекциию самого номерного знака (тут как раз yolo подойдет). Далее этот вырезанный фрагмент найденного прямоугольника подается на любую OCR сеть. Тем самым вы распознаете текст внутри номера. Можно попробовать готовые сети типа keras-ocr, easy-ocr, tesseract. если качество будет плохим то надо будет свой OCR обучать

    • @liq8096
      @liq8096 2 หลายเดือนก่อน +1

      paddleocr хорошо номера распознает

  • @molven5336
    @molven5336 6 หลายเดือนก่อน

    Здравствуйте, почему то backup файл из описания не загружается на сайт CVAT. Может быть дело в том, что я пользуюсь онлайн сервисом, а не локально на своем ПК?

    • @Koldim2001
      @Koldim2001  6 หลายเดือนก่อน

      Да возможно. Я обычно использую локальное поднятие сервера в докере так что с вэб версией не работал. А какую он ошибок выдает если попробовать через сайт?

  • @alexeyb.3167
    @alexeyb.3167 16 วันที่ผ่านมา

    Большое спасибо, отличный урок! Буду благодарен, если подскажете, есть ли сейчас возможность дообучать (обучать итеративно) yolo модель? Да и не обязательно yolo. Кажется, это называется continual learning. Очень хочется обучать на новых пачках изображений, но не переучивая каждый раз с нуля. Допустим, я бы хотел взять другое видео с птицами, сделать из него датасет и дообучить сеть из этого видео, чтобы она лучше детектила птиц в разных условиях. И так много-много итераций для разных видео с разными птицами. Если постоянно переучивать с нуля, на новом, дополненном датасете, то время обучения в какой-то момент будет требовать как минимум серверных GPU, а это очень недешевое удовольствие. И даже с такими GPU будет долго :(

    • @Koldim2001
      @Koldim2001  16 วันที่ผ่านมา

      Да можно. В данном примере на видео я тоже не с нуля обучал в взял стартовые веса с coco датасета. Так что на старте перед запуском model.train вам надо вгрузить имеющиеся веса и можно приступать к обучению

    • @alexeyb.3167
      @alexeyb.3167 15 วันที่ผ่านมา

      @@Koldim2001 Похоже, я наступаю на catastrophic forgetting :( После какой-то итерации дообучения, плохо детектит на данных из первых итераций

    • @Koldim2001
      @Koldim2001  15 วันที่ผ่านมา

      @@alexeyb.3167а в примерах есть все желаемые классы?

    • @alexeyb.3167
      @alexeyb.3167 15 วันที่ผ่านมา

      ​@@Koldim2001 Странно, сначала первый ответ не отображался, а теперь продублировался. У меня, в моей задаче, вообще single class. Он, просто, выглядеть может по разному. И было бы удобно собирать датасет частями, где каждый новый кусок датасета - с тем же классом, но который выглядит иначе, чем предыдущие. Уже отказался от этой идеи, но все равно интересно, реализуемо ли такое.

    • @Koldim2001
      @Koldim2001  15 วันที่ผ่านมา

      @@alexeyb.3167да ты так можешь. В cvat просто добавляй новые таски и относи их на train или Val. В этом и суть тасок. Ты можешь последовательно увеличивать размер датасета и размечать постепенно

  • @Pisew423
    @Pisew423 20 วันที่ผ่านมา

    Можно ли самому подогнать требуемый йоло формат без этой программы из гит хаба, она у меня не запускается ни в какую. Просто перекинуть txt и png в отдельные папки?

    • @Pisew423
      @Pisew423 20 วันที่ผ่านมา

      есть другой репозиторий может?

    • @Koldim2001
      @Koldim2001  20 วันที่ผ่านมา

      Можете попробовать. Есть еще вариант выгрузить через coco формат из cvat и далее юзать конвертер этот: docs.ultralytics.com/ru/reference/data/converter/#ultralytics.data.converter.convert_coco
      Вот этот нужен ultralytics.data.converter.convert_coco

  • @_0261
    @_0261 29 วันที่ผ่านมา

    Всем привет. Подскажите пожалуйста, можно ли тоже с помощью yolo создать нейросеть для обнаружения цефалометрических точек с рентген снимков?

    • @Koldim2001
      @Koldim2001  29 วันที่ผ่านมา

      Думаю да хоть и не знаю что это такое) но если можно задачу переписать в парадигму нахождения чего-либо то точно yolo подойдет. Если что у них целый зоопарк моделей не только детекция есть. Так что можешь поизучать документацию ультралитикс

    • @_0261
      @_0261 29 วันที่ผ่านมา

      @@Koldim2001 хорошо, спасибо 👍

  • @XiLICe
    @XiLICe 5 หลายเดือนก่อน

    Такой вопрос, вот мы обучили модель, я лично при обучении модели выбрал модель yolov8x, будет ли она распозновать то на чём она была обучена ранее. То есть модель yolov8x была обучена на датасете COCO. будет ли она распозновать то что было в COCO?

    • @Koldim2001
      @Koldim2001  5 หลายเดือนก่อน

      Нет ты просто получишь веса обученной сети под новую твою задачу. Значение классов будет то что ты сам задал при обучении. Ты по сути взял за основу одну сеть а после обучения получаешь совершенно другую. Так что если при обучении не было класса человек то больше этого класса и не будет хотя в coco он имелся

    • @XiLICe
      @XiLICe 5 หลายเดือนก่อน

      @@Koldim2001 а можно ли обучить уже готовую модель оставив в ней то что было?

    • @Koldim2001
      @Koldim2001  5 หลายเดือนก่อน

      @@XiLICe честно говоря никогда с такой задачей не встречался. Обычно если надо юзать готовые классы из coco то просто стоит взять предобученную сеть и с ней работать

    • @elcolex777
      @elcolex777 4 หลายเดือนก่อน

      @@Koldim2001в конфигурации тренировки встречал параметр resume. Может он для этого? И еще такая мысль - в датасете coco 80 классов, может новые классы при разметке задавать не с 0 а с 80? Например, клюв - 81. Я, кстати, посмотрел - bird есть в списке coco, он не 0.

    • @Koldim2001
      @Koldim2001  4 หลายเดือนก่อน

      @@elcolex777 суть видео была в обучении собственной сети на основе архитекторы yolo. Так что классы и порядок задавал я сам. Эти ведь демонстративный пример. На практике можно делать любые классы и создавать свои датасеты. Необязательно брать готовые на подобии coco. В готовом даьасете само собой число классов заранее определено так и еще и порядок известен. Но чаще всего надо решать уникальные задачи, требующие своих классов и своих тренировочных примеров

  • @TheGoldArmada
    @TheGoldArmada 4 หลายเดือนก่อน

    Приветствую, столкнулся с проблемой, разметил в CVAT около 1200 изображений, но в большинстве отмечал обьекты с помощью многоугольника (polygon), когда скачал датасет, в большинстве txt файлов пусто, информация о классе и координатах есть только там, где я выбирал обьекты прямоугольниками, подскажите можно как-то исправить?

    • @Koldim2001
      @Koldim2001  4 หลายเดือนก่อน

      Да надо именно прямоугольники чтобы они были строго под 90 градусов и параллельно осям x, y поэтому у вас и не получается выгрузить такой датасет. Используйте разметку прямоугольниками в сивате тогда получится

    • @Koldim2001
      @Koldim2001  4 หลายเดือนก่อน

      Полигоны нужны для размеры инстанс сегментации (можете посмотреть мой ролик по yolov8-seg) я как раз там показал пример использования полигональных разметок для обучения yolo - th-cam.com/video/FF3mIWF0vFs/w-d-xo.htmlsi=Iop0y3taYucLFQvE

    • @TheGoldArmada
      @TheGoldArmada 4 หลายเดือนก่อน

      ​@@Koldim2001Спасибо, очень помогли!

  • @novikovv
    @novikovv 4 หลายเดือนก่อน

    А может вы знаете кого-то из ваших коллег или вы сами, кто мог бы обсудить проект для гуманитарной сферы с распознаванием на основе данных. Я не уверен, что мы можем освоить программирование так, чтобы хорошо отработать с YOLO? Данные и задача не стандартная. Задача научного плана. Можно ли это обсудить в частном порядке?

    • @Koldim2001
      @Koldim2001  4 หลายเดือนก่อน

      Напишите в тг kolesnikov_dima

  • @novikovv
    @novikovv 4 หลายเดือนก่อน

    Здравствуйте, для совсем чайника, если можно. По CVAT: 1. Можно ли распознавать просто в браузере в CVAT или это не правильно? 2. Зачем необходимо делать третью папку с validation и по какому принципу нужно туда отбирать фотографии? 3. Необходимо ли иметь всегда пустые изображения без распознаваемых объектов? 4. Есть ли жесткие требования по изображениям (не более 640 пикселей и png)? 5. Я правильно понял, что тасками (train) я могу поэтапно добавлять изображения для распознавания? По YOLO: какой набор программ необходимо иметь для работы на стационарном компьютере, чтобы запустить YOLO?

    • @Koldim2001
      @Koldim2001  4 หลายเดือนก่อน +1

      1) Да можете использовать версию браузерную просто будет немного ограничен функционал (например нельзя будет выгрузить изображения при экспорте датасета) и если у вас данные (изображения) являются NDA, то не стоят их на общедоступные сайты заливать только локально через докер советую

    • @Koldim2001
      @Koldim2001  4 หลายเดือนก่อน +1

      2) Я просто пример показал что можно создавать много отдельных тасок под валидацию и трейн. То есть вы можете постепенно наращивать датасет просто добавляя все новые и новые таски и определяя их вручную на трейн или валидацию. Так что в данном случае это я просто как пример показал что можно разбить фотки трейна на 2 отдельные таски сивата и последовательно разметить
      3) Необязательно, так как аугментации у yolo достаточно хороши, но все же не помешает парочку фоток добавить просто чтобы сеть понимала что порой объектов может вовсе не быть.

    • @Koldim2001
      @Koldim2001  4 หลายเดือนก่อน +1

      4) Жестких требований нет так как при обучении сети производится ресайз и это как раз один из параметров обучения. Ты сам задаешь размер в который все фотки переводятся при обучении
      5) На это я в подпункте 2 считай что ответил (можно так и трейн и валидацию наращивать постепенно)
      6) yolo это библиотека на питоне под названием ultralitics так что логично что нужно иметь питон и поставить через pip ultralytics и еще требуется отдельно pytorch

    • @novikovv
      @novikovv 4 หลายเดือนก่อน

      @@Koldim2001 То есть, если я готовлю датасет я могу просто использовать набор тасков с train и без папки валидация?

    • @Koldim2001
      @Koldim2001  4 หลายเดือนก่อน +1

      @@novikovvну да можно и без валидации но тогда есть шанс переобучения сети. Лучше все же контролировать процесс имея валидационный набор

  • @dimam538
    @dimam538 5 หลายเดือนก่อน +1

    Привет. Я так понял ты из бауманки, подскажи на каком факультете?

    • @Koldim2001
      @Koldim2001  5 หลายเดือนก่อน

      Я на магистратуре БМТ1 - интеллектуальные биомедицинские системы (как раз искусственный интеллект в сфере медицины)

    • @dimam538
      @dimam538 5 หลายเดือนก่อน +1

      Интересно​@@Koldim2001

  • @user-jd7zo6dg9d
    @user-jd7zo6dg9d 2 หลายเดือนก่อน

    Дмитрий, здравствуйте, подскажите пожалуйста, с чем может быть связана проблема. Форматирую исходные данные под формат YOLO с помощью репозитория вашего коллеги. У меня создаётся папка my_dataset_yolo, но всё содержимое этой папки: images, labels пусты.

    • @Koldim2001
      @Koldim2001  2 หลายเดือนก่อน

      Проверите то, что в вас исходные названия subset в сивате названы ровно так же как в видео. То есть должно быть все с большой буквы (Validation, Train) + проверьте наличие выгруженных фотографий после export dataset + если осталось проблемы в дебаг моде пройдите код и посмотрите где ошибка

    • @user-jd7zo6dg9d
      @user-jd7zo6dg9d 2 หลายเดือนก่อน

      @@Koldim2001, может быть ошибка связана с форматом изображений? У меня JPEG

    • @Koldim2001
      @Koldim2001  2 หลายเดือนก่อน

      @@user-jd7zo6dg9dдумаю нет. Вы докер версию используете или через онлайн на сайте?

    • @user-jd7zo6dg9d
      @user-jd7zo6dg9d 2 หลายเดือนก่อน

      @@Koldim2001 через сайт

    • @user-jd7zo6dg9d
      @user-jd7zo6dg9d 2 หลายเดือนก่อน

      @@Koldim2001 , через сайт

  • @roockeet3460
    @roockeet3460 6 หลายเดือนก่อน +1

    здраствуйте я ваш код чуть изменил для моих целей.сделал так чтоб скриншот передавался вместо кадров видео.frame = np.array(sct.grab(bounding_box)) results = model.track(frame, iou=0.4, conf=0.5, persist=True, imgsz=640, verbose=False, tracker="botsort.yaml"). почему не работает

    • @Koldim2001
      @Koldim2001  6 หลายเดือนก่อน

      Не очень понимаю причём в данном случае трекинг если цель идёт просто обнаружить боксы на одном конкретном кадре. Попробуй заменить model.track на model.predict(frame)

    • @Koldim2001
      @Koldim2001  6 หลายเดือนก่อน

      Можешь мне в тг написать подробнее разберем данный вопрос в беседе: @kolesnikov_dima

  • @roockeet3460
    @roockeet3460 6 หลายเดือนก่อน

    можете снять видео как сделать программу на python с использованием модели yolo которая в режиме реального времени будет распознавать изображение с экрана монитора

    • @Koldim2001
      @Koldim2001  6 หลายเดือนก่อน

      Ты имеешь ввиду с вебкамеры? Обычно либо по видео любому обработка либо риалтайм с камеры

    • @roockeet3460
      @roockeet3460 6 หลายเดือนก่อน

      нет, я имею ввиду нейронка будет в реал тайме распознавать что происходит на мониторе( например играешь в игру и нейронка видит там врагов, просто берет картинку с экрана монитора и ищет на ней объекты)просто не понятно как в коде обращаться к нейронке чтоб оно шло циклом и постояно анализировало что просиходит на экране@@Koldim2001

    • @Koldim2001
      @Koldim2001  6 หลายเดือนก่อน +1

      @@Red_Paper6495 да справляется. Можешь посмотреть видео SORT DEEPSORT трекинг на моем канале. Там я как раз показал как работать с риалтайм обработкой yolo

  • @dvinyaninov
    @dvinyaninov 2 หลายเดือนก่อน

    Добрый день! А можно ли сделать через это систему распознавания домашних животных?

    • @Koldim2001
      @Koldim2001  2 หลายเดือนก่อน

      Да конечно

    • @dvinyaninov
      @dvinyaninov 2 หลายเดือนก่อน +1

      @@Koldim2001 как можно связяться и обсудить этот вопрос?

    • @Koldim2001
      @Koldim2001  2 หลายเดือนก่อน

      @@dvinyaninovда конечно. Вот тг kolesnikov_dima

  • @user-th7jk1eb7s
    @user-th7jk1eb7s 5 หลายเดือนก่อน

    Добрый день! Репетитором не хотите подработать?

    • @Koldim2001
      @Koldim2001  5 หลายเดือนก่อน

      Напишите в лс телеграмм @kolesnikov_dima

  • @TheGoldArmada
    @TheGoldArmada 5 หลายเดือนก่อน

    Приветствую, столкнулся с проблемой, запускаю контейнер, захожу на localhost, страница загружается но пишет ошибку "Cannot connect to the server
    Make sure the CVAT backend and all necessary services (Database, Redis and Open Policy Agent) are running and available. If you upgraded from version 2.2.0 or earlier, manual actions may be needed, see the Upgrade Guide"

    • @Koldim2001
      @Koldim2001  5 หลายเดือนก่อน

      Это стоит посмотреть в документации CVAT или поискать отдельный туториал по его поднятию. Это проблема связана именно с бэкендом этого приложения. Так что чекни в инете

  • @user-qp1ew9tq8o
    @user-qp1ew9tq8o 2 หลายเดือนก่อน

    подойдет ли для определения кариеса на ранних стадиях? у меня дипломная прост

    • @Koldim2001
      @Koldim2001  2 หลายเดือนก่อน

      Скорее всего да. Размечаете зубы с кариесом, обучаете и просите по итогу сетку задатектиррвать на фотке зубы на которых есть кариес

    • @user-qp1ew9tq8o
      @user-qp1ew9tq8o 2 หลายเดือนก่อน

      @@Koldim2001 будет гайд?

    • @Koldim2001
      @Koldim2001  2 หลายเดือนก่อน

      Ну так вот это видео и есть общий гайд. Можешь еще про yolov8-seg посмотреть на моем канале и по аналогии размечать область кариеса и обучай

  • @user-ps5vt5hd5l
    @user-ps5vt5hd5l 3 หลายเดือนก่อน +1

    Я столкнулся с проблемой.... Что он не видит путь в файле к .yaml убил 3 часа пока тебя не нашёл.... СПАСИБО ТЕБЕ ОГРОМНОЕ

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน

      Очень рад что смог тебе помочь 😊

  • @cyber-chip3105
    @cyber-chip3105 6 หลายเดือนก่อน

    Здравствуйте. Комп какие параметры обязательны?

    • @Koldim2001
      @Koldim2001  6 หลายเดือนก่อน

      Не совсем понял вопрос

    • @cyber-chip3105
      @cyber-chip3105 6 หลายเดือนก่อน

      Можешь сказать какой мощности нужен комп и нужно ли устанавливать зависимости в консоле WSL, у меня идут ошибки @@Koldim2001

    • @cyber-chip3105
      @cyber-chip3105 6 หลายเดือนก่อน

      [2023-12-06 08:07:47,406] WARNING root: Failed to import module 'datumaro.plugins.tf_detection_api_format.extractor': The TensorFlow library was compiled to use AVX instructions, but these aren't available on your machine.
      Traceback (most recent call last):
      File "/home/django/manage.py", line 20, in
      execute_from_command_line(sys.argv)
      File "/opt/venv/lib/python3.10/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
      utility.execute()
      File "/opt/venv/lib/python3.10/site-packages/django/core/management/__init__.py", line 436, in execute
      self.fetch_command(subcommand).run_from_argv(self.argv)
      File "/opt/venv/lib/python3.10/site-packages/django/core/management/base.py", line 412, in run_from_argv
      self.execute(*args, **cmd_options)
      File "/opt/venv/lib/python3.10/site-packages/django/contrib/auth/management/commands/createsuperuser.py", line 88, in execute
      return super().execute(*args, **options)
      File "/opt/venv/lib/python3.10/site-packages/django/core/management/base.py", line 457, in execute
      self.check_migrations()
      File "/opt/venv/lib/python3.10/site-packages/django/core/management/base.py", line 574, in check_migrations
      executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
      File "/opt/venv/lib/python3.10/site-packages/django/db/migrations/executor.py", line 18, in __init__
      self.loader = MigrationLoader(self.connection)
      File "/opt/venv/lib/python3.10/site-packages/django/db/migrations/loader.py", line 58, in __init__
      self.build_graph()
      File "/opt/venv/lib/python3.10/site-packages/django/db/migrations/loader.py", line 235, in build_graph
      self.applied_migrations = recorder.applied_migrations()
      File "/opt/venv/lib/python3.10/site-packages/django/db/migrations/recorder.py", line 81, in applied_migrations
      if self.has_table():
      File "/opt/venv/lib/python3.10/site-packages/django/db/migrations/recorder.py", line 57, in has_table
      with self.connection.cursor() as cursor:
      File "/opt/venv/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
      return func(*args, **kwargs)
      File "/opt/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", line 330, in cursor
      return self._cursor()
      File "/opt/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", line 306, in _cursor
      self.ensure_connection()
      File "/opt/venv/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
      return func(*args, **kwargs)
      File "/opt/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", line 289, in ensure_connection
      self.connect()
      File "/opt/venv/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
      return func(*args, **kwargs)
      File "/opt/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", line 272, in connect
      self.init_connection_state()
      File "/opt/venv/lib/python3.10/site-packages/django/db/backends/postgresql/base.py", line 309, in init_connection_state
      super().init_connection_state()
      File "/opt/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", line 239, in init_connection_state
      self.check_database_version_supported()
      File "/opt/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", line 214, in check_database_version_supported
      raise NotSupportedError(
      django.db.utils.NotSupportedError: PostgreSQL 12 or later is required (found 10.23).@@Koldim2001

    • @Koldim2001
      @Koldim2001  6 หลายเดือนก่อน

      Можешь глянуть туториалы на ютубе по установке wsl и докера. По поводу точных требований к компу не смогу подсказать. Мой комп довольно мощный так что не пробовал на слабых.
      Если не выйдет то просто используй в своих задачах вэб версию CVAT и не ставь локально её на комп: app.cvat.ai/auth/login

    • @cyber-chip3105
      @cyber-chip3105 6 หลายเดือนก่อน +1

      спасибо!@@Koldim2001

  • @user-in7bs4op9q
    @user-in7bs4op9q 4 หลายเดือนก่อน +1

    Очень хороший полный разбор.
    Хотел бы увидеть подобную реализацию по распознаванию действий (YOWO) - последних версий (сечас вроде это YOWOv2)

    • @Koldim2001
      @Koldim2001  4 หลายเดือนก่อน

      Спасибо большое. К сожалению, в ближайшее время не планирую реализовывать обучения подобной архитектуры. В репозитории гитхаба по Yowov2 вполне неплохое описание + уверен есть на англоязычном ютубе похожие обзоры. Советую поискать))

    • @user-in7bs4op9q
      @user-in7bs4op9q 4 หลายเดือนก่อน +1

      @@Koldim2001 Сейчас этим и занимаюсь :)
      (не хватает понимания как это все устроено изнутри - увидеть бы построчное описание всего кода ))
      Так или иначе - удачи тебе :)

  • @racsafob4646
    @racsafob4646 3 หลายเดือนก่อน

    Здравствуйте, возникла проблемка на этапе использования CVAT2YOLO. все делал как на видео, таски разделены на validation и train. Конечный результат должен быть в папках test, train, val, но все они пустые. Пробовал и автосплит и мануал, все равно пустые папки.

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน

      Проверите что у вас исходно датасет выглядит именно так как у меня на видео. То есть структура исходного датасета должна быть строго такой.
      Сам код конвертатора писал не я, так что если считаете что проблема не на вашей стороне а именно в коде того разработчика, то можете написать issue под тем гит репозиторием.
      Но я предполагаю, что все же либо не совсем правильно установлено это расширение либо что-то все же отличается от пайплана на моем видео так как у остальных зрителей получилось конвертнуть

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน

      pip install PyYAML==6.0 требуется для работы этого репозитория и еще мб вы не выгрузили изображения. Они должны быть в той же папке что и разметка из CVAT так что надо чтоб стоял триггер save images или в противном случае руками положить эту папку с фотками в нужное место

    • @racsafob4646
      @racsafob4646 3 หลายเดือนก่อน

      Pyyaml установлен, изображения я тоже сохранил, всё файлы хранятся в таком же виде как у вас, тоесть изображение и текстовый файл с тем же названием. Скрипт запускал и через командную строку и вручную через редактор кода даже. Ошибок не выводит. Подскажите, через исходный датасет от сват можно ли тоже обучить сеть, или результат будет намного хуже или вообще не будет?

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน

      @@racsafob4646 можешь попробовать обучить но вроде там формат который yolo не пережует и выкинет ошибки

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน

      Проверь правильность регистра в именах папок. Должно быть с большой буквы как в примере Train Validation. Это как гипотеза

  • @ZerGeming
    @ZerGeming 2 หลายเดือนก่อน +1

    Можно оптимизировать код чтобы fps у видио на выходе было больше?

    • @Koldim2001
      @Koldim2001  2 หลายเดือนก่อน

      Да ставьте ниже размер модели. То есть быстрее всего модель yolov8n. Так же ускорить поможет использование видеокарты. Надо тогда установить пайторч с поддержкой cuda

  • @A_lot_A_lot_A_lot
    @A_lot_A_lot_A_lot 2 หลายเดือนก่อน

    Я скомпелировал python файл в exe запустил и он долго грузится после чего пишет Failed to execute script 'CarDetecter" due to unhandled exception! можно ли избезать этой ошибки?
    И кокой у вас процессор

    • @Koldim2001
      @Koldim2001  2 หลายเดือนก่อน

      Думаю проблема в окружении. Установите пустое окружение и поставьте туда Ultralytics библиотеку.
      Честно говоря не шарю что такой за скрипт кар детектор. Мб в нем ошибка где-то. Если запускаете сой код то там вроде траблов нет раз никто не жаловался из людей кто запускал его

    • @Koldim2001
      @Koldim2001  2 หลายเดือนก่อน

      У меня комп мощный i9 процессор но и на слабом железе норм работать должно

    • @A_lot_A_lot_A_lot
      @A_lot_A_lot_A_lot 2 หลายเดือนก่อน

      @@Koldim2001 Не должно у меня AMD Ryzen 5 3500U(видюша встроенная) 8гб оператива и CDD. Yolov8n обучается с датасета из 600 фото 720р 10 часов. А после обработки видио с 60fps 240p его fps падает ло 1

    • @Koldim2001
      @Koldim2001  2 หลายเดือนก่อน +1

      @@A_lot_A_lot_A_lot без видюхи нейронки всегда медленно работают. Твоя вюдюха не поддерживается просто. Нужна лишь NVIDIA. Так что снижай размер модели до yolov8n и тогда мб будет быстрее отработка. Но без видюхи все равно выше 25 fps не выжмешь

  • @fier1182
    @fier1182 หลายเดือนก่อน

    Это всё на Pycharm можно сделать?

    • @Koldim2001
      @Koldim2001  หลายเดือนก่อน

      Да любой IDE подойдет))

  • @pavel_nedoshivin
    @pavel_nedoshivin 2 หลายเดือนก่อน

    Столкнулся с проблемой RuntimeError: CUDA error: device-side assert triggered
    Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions. Может кто сталкивался?

    • @Koldim2001
      @Koldim2001  2 หลายเดือนก่อน

      Скорее всего проблема с торчом. Создай пустое окружение и заново поставь пайторч с поддержкой куды. Так же проверить стоит ли на компе вообще драйверы cuda. Если видеокарты нет, то не парься и просто юзай cpu версию

    • @pavel_nedoshivin
      @pavel_nedoshivin 2 หลายเดือนก่อน +1

      @@Koldim2001 Не как оказалось дело не в драйверах, и не в библиотеках. Я при подготовке датасета сделал 4 таски на обучение и 1 на валидацию, но так как разметка это очень нудное дело я разметил 2 таски на обучение и 1 на валидацию, а CVAT2YOLA налепила пустых записей и поэтому постоянно выскакивала ошибка неправильного индекса и то что описано выше ) в общем удалил, то что не размечено и все заработало. xD Спасибо!

  • @redguard6886
    @redguard6886 9 วันที่ผ่านมา

    Здравствуйте! Очень полезный материал! Но у меня возникла ошибка нехватки памяти, можете подсказать к ее решить в данном случае ?
    OutOfMemoryError: CUDA out of memory. Tried to allocate 20.00 MiB. GPU 0 has a total capacity of 12.00 GiB of which 6.24 GiB is free. Of the allocated memory 3.67 GiB is allocated by PyTorch, and 88.49 MiB is reserved by PyTorch but unallocated. If reserved but unallocated memory is large try setting PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True to avoid fragmentation. See documentation for Memory Management

    • @Koldim2001
      @Koldim2001  9 วันที่ผ่านมา

      Ставьте меньше размер батча при обучении. Перезапустите kernel и установи параметр batch=4 либо 2. Скорее всего видюха слабая

    • @redguard6886
      @redguard6886 8 วันที่ผ่านมา

      Спасибо, возьму на заметку, но проблему решил уменьшив image size до 320

    • @redguard6886
      @redguard6886 8 วันที่ผ่านมา

      Не могли бы чуть подробнее рассказать, как менять параметр batch. Не совсем понимаю, где его редактировать.

    • @Koldim2001
      @Koldim2001  8 วันที่ผ่านมา

      @@redguard6886там же где вы и размер поменяли. Там много разных параметров обучения можно указать в инете можете поискать документацию

    • @redguard6886
      @redguard6886 8 วันที่ผ่านมา

      Спасибо!

  • @user-vu8kn1ji5e
    @user-vu8kn1ji5e หลายเดือนก่อน

    Добрый день Дмитрий, супер материал, все получилось, но после запуска программы видео воспроизводится намного медленнее по сравнению с оригиналом. Перебрал все параметры, не могу понять как изменить скорость воспроизведения видео. Буду признателен за ответ. Диплом почти готов!)))

    • @Koldim2001
      @Koldim2001  หลายเดือนก่อน

      Это у тебя видюхи нет либо она слабая. Чем сильнее комп тем быстрее обработка

    • @user-vu8kn1ji5e
      @user-vu8kn1ji5e หลายเดือนก่อน

      @@Koldim2001 Вообще видеокарта 1660 супер, не очень мощная, но тем не менее должно хватать. Но есть нюансы, почему-то я не могу ее подключить при обучении. Пытался сначала исправить проблему, но не удалось и сетку обучал на процессоре. Может при выводе тоже что-то некорректно работает? Может есть какой туториал с настройкой видеокарты для работы с нейронками? Или может проблема с ПО. Работаю в пайчарме

    • @Koldim2001
      @Koldim2001  หลายเดือนก่อน

      @@user-vu8kn1ji5e th-cam.com/video/xTF_n1jp9n8/w-d-xo.htmlsi=XzNFc4BZ_Wq179C_ это видео посмотри и как уставишь все что тут далее надо поставить торч с поддержкой cuda (смотри на официальном сайте пайторча)
      Только после этого ставь ультралитикс

  • @polyglot9118
    @polyglot9118 6 หลายเดือนก่อน

    Здравствуйте!
    Может ли YOLO различать птиц по цвету и размеру?

    • @Koldim2001
      @Koldim2001  6 หลายเดือนก่อน +2

      Да конечно но тогда надо делать отдельные классы под каждый тип цвета. То есть обучать не просто как общий класс птица, а например как класс красная или например черная птица. Тем самым нейронная сеть подстроится так, чтобы различать это как два разных объекта. По поводу размера, то проще всего судить по размерам получаемого бокса. Например мы получили красную птицу и размер бокса столько-то пикселей. Зная высоту и ширину, можно просто по порогам самостоятельно определённым судить о том большой объект перед нами или маленький

    • @Koldim2001
      @Koldim2001  6 หลายเดือนก่อน +1

      Ещё одним из популярных решений чтобы не создавать дополнительные классы - использовать двухстадийный поход. То есть сеть йола находит саму птицу а далее полученный бокс кропается и по этому вырезанному изображению осуществляется CNN классификация (например resnet подойдет как архитектура).
      Ex:
      Таким образом примерно работает алгоритм по распознаванию лиц. То есть детектор находит лицо. Далее уже специфическая сеть по конкретному лицу получает дальнейший результат что за человек перед нами

    • @AgentSE
      @AgentSE 5 หลายเดือนก่อน

      Закинь 10 тысяч фотографий, раздели на классы (воробей, ворона, попугай и т.д. ) и все будет ок. Вот у меня другой вопрос. Потянет ли йола распознание характерного паттерна курса котировок, чтобы распознать разворот тренда. Или надо через входящие данные цифровые обрабатывать?

    • @Koldim2001
      @Koldim2001  5 หลายเดือนก่อน +1

      @@AgentSEя бы посоветовал использовать специфические сети под задачи анализа временных рядов. Изучите LSTM. Обычно его для таких задач используют

    • @AgentSE
      @AgentSE 5 หลายเดือนก่อน +1

      @@Koldim2001 большое спасибо!

  • @user-zy6ym6bj1v
    @user-zy6ym6bj1v วันที่ผ่านมา

    Как GPU использовать для обучения?

    • @Koldim2001
      @Koldim2001  วันที่ผ่านมา

      Надо поставить PyTorch с поддержкой cuda. Так что установи cuda драйвера а потом ставь в окружение пайторч с указанием твоей cuda версии. При обучении gpu само подхватится если выполнены перечисленные условия

  • @user-em2jy1yc5o
    @user-em2jy1yc5o 4 หลายเดือนก่อน

    Дмитрий, спасибо за урок. Но у меня возникла ошибка с вашим кодом:
    Model summary (fused): 218 layers, 25840918 parameters, 0 gradients, 78.7 GFLOPs
    Traceback (most recent call last):
    File "C:\Users\andre\OneDrive\Документы\python_Project\LessonsYoloV8\E1\2.py", line 105, in
    process_video_with_tracking(model, "C:/Users/andre/OneDrive/Документы/python_Project/LessonsYoloV8/E1/z2.mp4", show_video=True, save_video=False, output_video_path="output_video.mp4")
    File "C:\Users\andre\OneDrive\Документы\python_Project\LessonsYoloV8\E1\2.py", line 89, in process_video_with_tracking
    cv2.imshow("frame", frame)
    File "C:\Users\andre\AppData\Local\Programs\Python\Python311\Lib\site-packages\ultralytics\utils\patches.py", line 56, in imshow
    _imshow(winname.encode("unicode_escape").decode(), mat)
    cv2.error: OpenCV(4.8.0) D:\a\opencv-python\opencv-python\opencv\modules\highgui\src\window.cpp:1272: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvShowImage'
    Не подскажите в чем причина? Не могу разобраться...(
    Код полностью скопировал с вашего проекта, botsort добавил, импорты проверил

    • @Koldim2001
      @Koldim2001  4 หลายเดือนก่อน

      Причина связана с ошибкой библиотеки cv2. Так что сделайте pip uninstall opencv-python и заново его поставьте. Так же поможет создать отдельное окружение новое и в него поставить библиотеки заново. Видимо есть какие-то ошибки в текущем окружении

    • @user-em2jy1yc5o
      @user-em2jy1yc5o 4 หลายเดือนก่อน +1

      Помогло, спасибо@@Koldim2001

    • @Koldim2001
      @Koldim2001  4 หลายเดือนก่อน

      @@user-em2jy1yc5oрад помочь)

  • @user-or6tb7tb2q
    @user-or6tb7tb2q 2 หลายเดือนก่อน +1

    Дмитрий, видео файл test.mp4 из вашего архива "YOLOv8 детекция собственная.zip" не извлекается, выходит сообщение о повреждении. Остальные файлы, которые понадобились извлеклись нормально. Но кому надо, можно и с Ютуба взять, оно там под названием "Cat TV 4K : Birds for Cats Bedlam" th-cam.com/video/lGAtx4VfOKA/w-d-xo.html

    • @Koldim2001
      @Koldim2001  2 หลายเดือนก่อน

      Ох да возможно с видосом проблема. Но главное что код вам доступен. Тут скорее цель понять как работать с кодом чтобы свою задачу реализовать, нежели конкретно этот пример запустить)

  • @valerii7104
    @valerii7104 4 หลายเดือนก่อน

    А можно это реализовать через Google Colab?

    • @Koldim2001
      @Koldim2001  4 หลายเดือนก่อน

      Да конечно просто перенесите ноутбук в эту среду и можете спокойно работать

    • @Koldim2001
      @Koldim2001  4 หลายเดือนก่อน

      По поводу вашего прошлого вопроса про anaconda. То требуется установить это приложение на комп и прописать пусть к этому файлу в PATH вашего компьютера. Тогда команда conda станет доступна и можно будет перейти в окружение. Еще есть альтернативный вариант использовать venv для создания окружений

    • @valerii7104
      @valerii7104 4 หลายเดือนก่อน +1

      @@Koldim2001 я разобралась с этим так как там квадрелион терминалов и нужно было от анакоды запустить так как эти башовские не пропускают. Но я забил болт на pytorch та как там версия пайтона 3.8 нужна а я и так целый день учился по вашему примеру. Так что нервов не хватило. P.S думая на Colab это делать не требует дополнительных установок

    • @Koldim2001
      @Koldim2001  4 หลายเดือนก่อน

      @@valerii7104там поддерживается питон любой

  • @roockeet3460
    @roockeet3460 6 หลายเดือนก่อน +1

    вообще материала по yolo очень мало на ру ютубе

    • @Koldim2001
      @Koldim2001  6 หลายเดือนก่อน +1

      Советую глянуть мой видеоролик по трекингу (SORT & DeepSORT). Там как раз рассмотрено как работать с видеопотоком с камер при использовании yolo

  • @roockeet3460
    @roockeet3460 6 หลายเดือนก่อน +3

    я нигде не нашел ничего похожего на ютубе

  • @artemnazarenko7847
    @artemnazarenko7847 3 หลายเดือนก่อน

    Вроде все делал по видео, но видно где-то ошибся и обучение не происходит, первая эпоха не двигается, а потом просто кончается память, пытался на разных машинах, результат один и тот же, ошибок вроде как никаких не выскакивает при этом.

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน

      Снизить стоит размер батча или размер входного изображения чтоб вместилось обучение на gpu или cpu

    • @artemnazarenko7847
      @artemnazarenko7847 3 หลายเดือนก่อน

      @@Koldim2001 вроде помогло, но теперь пишет, что "No labels found in" директория где лежат лэйблы для тренировочных изображений, он еще в пути почему-то прописывает ...\train\task_1 может тут ошибка

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน

      @@artemnazarenko7847 проверь формат датасета чтоб он был прям как на видео по текстуре

    • @artemnazarenko7847
      @artemnazarenko7847 3 หลายเดือนก่อน +1

      @@Koldim2001 Ура, спасибо вам, я случайно оставил папки task_1 и 2 и он путаться начал

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน

      @@artemnazarenko7847 рад помочь)) удачи 👍🏻

  • @fier1182
    @fier1182 หลายเดือนก่อน

    у меня conda activate work не работает

    • @Koldim2001
      @Koldim2001  หลายเดือนก่อน

      Значит вы либо не установили саму анаконду, либо не создали внутри анаконды окружение с именем work, либо не прописали conda в переменные окружения на винде.
      Если вам анаконда не знакома, то используйте питон по умолчанию который вы поставили нативно на компьютер. Либо посмотрите туториалы про то как в питоне работать с виртуальными окружениями

  • @Oldman4051
    @Oldman4051 28 วันที่ผ่านมา

    Вот такие ошибки из-за чего могут быть и как их устранить?
    Ultralytics YOLOv8.2.10 Python-3.11.9 torch-2.3.0+cu121 CUDA:0 (NVIDIA GeForce RTX 4060 Ti, 16379MiB)
    engine\trainer: task=detect, mode=train, model=yolov8m.pt, data=my_dataset_yolo/data.yaml, epochs=100, time=None, patience=100, batch=16, imgsz=640, save=True, save_period=-1, cache=False, device=None, workers=8, project=None, name=train, exist_ok=False, pretrained=True, optimizer=auto, verbose=True, seed=0, deterministic=True, single_cls=False, rect=False, cos_lr=False, close_mosaic=10, resume=False, amp=True, fraction=1.0, profile=False, freeze=None, multi_scale=False, overlap_mask=True, mask_ratio=4, dropout=0.0, val=True, split=val, save_json=False, save_hybrid=False, conf=None, iou=0.7, max_det=300, half=False, dnn=False, plots=True, source=None, vid_stride=1, stream_buffer=False, visualize=False, augment=False, agnostic_nms=False, classes=None, retina_masks=False, embed=None, show=False, save_frames=False, save_txt=False, save_conf=False, save_crop=False, show_labels=True, show_conf=True, show_boxes=True, line_width=None, format=torchscript, keras=False, optimize=False, int8=False, dynamic=False, simplify=False, opset=None, workspace=4, nms=False, lr0=0.01, lrf=0.01, momentum=0.937, weight_decay=0.0005, warmup_epochs=3.0, warmup_momentum=0.8, warmup_bias_lr=0.1, box=7.5, cls=0.5, dfl=1.5, pose=12.0, kobj=1.0, label_smoothing=0.0, nbs=64, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, degrees=0.0, translate=0.1, scale=0.5, shear=0.0, perspective=0.0, flipud=0.0, fliplr=0.5, bgr=0.0, mosaic=1.0, mixup=0.0, copy_paste=0.0, auto_augment=randaugment, erasing=0.4, crop_fraction=1.0, cfg=None, tracker=botsort.yaml, save_dir=runs\detect\train
    Overriding model.yaml nc=80 with nc=2
    from n params module arguments
    0 -1 1 1392 ultralytics.nn.modules.conv.Conv [3, 48, 3, 2]
    1 -1 1 41664 ultralytics.nn.modules.conv.Conv [48, 96, 3, 2]
    2 -1 2 111360 ultralytics.nn.modules.block.C2f [96, 96, 2, True]
    3 -1 1 166272 ultralytics.nn.modules.conv.Conv [96, 192, 3, 2]
    4 -1 4 813312 ultralytics.nn.modules.block.C2f [192, 192, 4, True]
    5 -1 1 664320 ultralytics.nn.modules.conv.Conv [192, 384, 3, 2]
    6 -1 4 3248640 ultralytics.nn.modules.block.C2f [384, 384, 4, True]
    7 -1 1 1991808 ultralytics.nn.modules.conv.Conv [384, 576, 3, 2]
    8 -1 2 3985920 ultralytics.nn.modules.block.C2f [576, 576, 2, True]
    9 -1 1 831168 ultralytics.nn.modules.block.SPPF [576, 576, 5]
    10 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest']
    11 [-1, 6] 1 0 ultralytics.nn.modules.conv.Concat [1]
    12 -1 2 1993728 ultralytics.nn.modules.block.C2f [960, 384, 2]
    13 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest']
    14 [-1, 4] 1 0 ultralytics.nn.modules.conv.Concat [1]
    15 -1 2 517632 ultralytics.nn.modules.block.C2f [576, 192, 2]
    16 -1 1 332160 ultralytics.nn.modules.conv.Conv [192, 192, 3, 2]
    17 [-1, 12] 1 0 ultralytics.nn.modules.conv.Concat [1]
    18 -1 2 1846272 ultralytics.nn.modules.block.C2f [576, 384, 2]
    ...
    Transferred 469/475 items from pretrained weights
    Freezing layer 'model.22.dfl.conv.weight'
    AMP: running Automatic Mixed Precision (AMP) checks with YOLOv8n...
    Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...
    ---------------------------------------------------------------------------
    NotImplementedError Traceback (most recent call last)
    Cell In[1], line 7
    4 model = YOLO('yolov8m.pt') # load a pretrained model (recommended for training)
    6 # Train the model
    ----> 7 results = model.train(data='my_dataset_yolo/data.yaml', epochs=100, imgsz=640, model='yolov8m.pt')
    File c:\WORKS\anaconda3\envs\WORK\Lib\site-packages\ultralytics\engine\model.py:673, in Model.train(self, trainer, **kwargs)
    670 pass
    672 self.trainer.hub_session = self.session # attach optional HUB session
    --> 673 self.trainer.train()
    674 # Update model and cfg after training
    675 if RANK in {-1, 0}:
    File c:\WORKS\anaconda3\envs\WORK\Lib\site-packages\ultralytics\engine\trainer.py:199, in BaseTrainer.train(self)
    196 ddp_cleanup(self, str(file))
    198 else:
    --> 199 self._do_train(world_size)
    File c:\WORKS\anaconda3\envs\WORK\Lib\site-packages\ultralytics\engine\trainer.py:313, in BaseTrainer._do_train(self, world_size)
    311 if world_size > 1:
    312 self._setup_ddp(world_size)
    --> 313 self._setup_train(world_size)
    315 nb = len(self.train_loader) # number of batches
    316 nw = max(round(self.args.warmup_epochs * nb), 100) if self.args.warmup_epochs > 0 else -1 # warmup iterations
    ...
    PythonTLSSnapshot: registered at ..\aten\src\ATen\core\PythonFallbackKernel.cpp:162 [backend fallback]
    FuncTorchDynamicLayerFrontMode: registered at ..\aten\src\ATen\functorch\DynamicLayer.cpp:493 [backend fallback]
    PreDispatch: registered at ..\aten\src\ATen\core\PythonFallbackKernel.cpp:166 [backend fallback]
    PythonDispatcher: registered at ..\aten\src\ATen\core\PythonFallbackKernel.cpp:158 [backend fallback]
    Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...

    • @Koldim2001
      @Koldim2001  28 วันที่ผ่านมา +1

      Хех чисто по коду ошибки сказать не могу спроси у gpt. Что-то на c++ либы жалуется попробуй чистое окружение сделать и библиотеки заново поставить

  • @davidnez2167
    @davidnez2167 3 หลายเดือนก่อน

    Ага, мой комментарий удалился
    я не могу использовать докер, потому что любое действие в нем, требует подключения к сайту докера)))
    а он у меня даже не пингутеся))
    почему все им пользуются, когда он так не надежен?
    а офлайн докер можно использовать?)))

    • @davidnez2167
      @davidnez2167 3 หลายเดือนก่อน

      С докером, как я понял, проблема моей сети, дальше не шарю

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน

      Да докер работает локально а пингует докерхаб он в те моменты, когда ты скачиваешь готовые докер образы с докерхаба (сиват как раз хостится там вместе со всеми сторонними микросервисами типа баз данных и прочего от чего зависит компоуз сивата). Стоит ему разок скачать далее инет нет нужен будет

  • @fier1182
    @fier1182 หลายเดือนก่อน

    а как узнать пароль от shh ключа?

    • @Koldim2001
      @Koldim2001  หลายเดือนก่อน

      Ты же его сам создавал (если вообще создавал) при подключении к github. Если тебе это не знакомо, то выгрузи код с гита архивом вместо того, чтобы командой в терминале это делать

    • @fier1182
      @fier1182 หลายเดือนก่อน

      @@Koldim2001 пасиба

    • @fier1182
      @fier1182 หลายเดือนก่อน

      @@Koldim2001 у меня когда датасет конвертирую на yolo с cv то только одна полоска заполняется, а в папках Val,train ничего нету. Я тупой, объясните пожалуйста

    • @Koldim2001
      @Koldim2001  หลายเดือนก่อน

      @@fier1182 а вы разметили train и val выборки перед тем как выгружать? Сделали все прямо по туториалу?

    • @fier1182
      @fier1182 หลายเดือนก่อน

      @@Koldim2001 я домой приеду напишу, я сейчас не дома просто

  • @user-bd5wh2nz4c
    @user-bd5wh2nz4c 29 วันที่ผ่านมา

    Добрый день
    Спасибо большое за подробное объяснение.
    При запуске своей модели столкнулся с данной ошибкой:
    AttributeError
    Cell In[3], line 70
    68 model = YOLO('runs/tasks/train6/weights/best.pt')
    69 model.fuse()
    ---> 70 process_video_with_tracking(model,"test_2.mp4", show_video=True, save_video=False, output_video_path="output_video.mp4")
    Cell In[3], line 28
    25 break
    26 results = model.track(frame, iou=0.4, conf=0.5, persist=True, imgsz=640, verbose=False, tracker="botsort.yaml")
    ---> 28 if results[0].boxes.id != None: # this will ensure that id is not None -> exist tracks
    29 boxes = results[0].boxes.xyxy.cpu().numpy().astype(int)
    30 ids = results[0].boxes.id.cpu().numpy().astype(int)
    AttributeError: 'NoneType' object has no attribute 'id'

    • @Koldim2001
      @Koldim2001  29 วันที่ผ่านมา

      Честно говоря ошибок не ваша так как объект boxes должен присутствовать а не быть none type если у вас модель подружилась и кадры передалось в нее. Посмотрите по документации по их примерам проверите что у вас все работает что в примере: docs.ultralytics.com/ru/modes/track/#persisting-tracks-loop
      Если не работает даже это, то возможно версия текущая у библиотеки ultralytics не оч и стоит откатиться на чуть более старую

    • @user-bd5wh2nz4c
      @user-bd5wh2nz4c 29 วันที่ผ่านมา +1

      @@Koldim2001 Спасибо! Взял за основу код из примера. Для моей задачи более чем достаточно.

  • @ryozo2636
    @ryozo2636 2 หลายเดือนก่อน

    Видео интересное, но много воды и автор заранее не продумал структуру.

    • @Koldim2001
      @Koldim2001  2 หลายเดือนก่อน

      Спасибо за фидбэк. В новых видео стараюсь заранее продумывать структуру. Это видео действительно снималось экспромтом

  • @costablanca4727
    @costablanca4727 2 หลายเดือนก่อน +1

    Неудивительно что программисты зарабатывают много.Такую кашу в голове варить

    • @Koldim2001
      @Koldim2001  2 หลายเดือนก่อน

      Аххаха да это еще не много)) yolo это практически самое просто что есть в компьютерном зрении 😂

  • @user-np8nj6me7v
    @user-np8nj6me7v 5 ชั่วโมงที่ผ่านมา

    как же противно видеть крутые технологии в виде костылей для винды. фу

    • @Koldim2001
      @Koldim2001  2 ชั่วโมงที่ผ่านมา

      Хех что имеется ввиду?)

  • @ashimov1970
    @ashimov1970 3 หลายเดือนก่อน

    Roboflow тоже вроде инструмент разметки, не хуже Cvat, разве нет?

    • @Koldim2001
      @Koldim2001  3 หลายเดือนก่อน +1

      Да но он платный. Бесплатно он позволяет ограниченное число фоток разметить

  • @darkness21ru
    @darkness21ru วันที่ผ่านมา

    Здравствуйте, подскажите пожалуйста, делаю дипломную работу с помощью вашего урока, на моменте запуска train_yolo.ipunb (38:38) выдаёт ошибку OSError: [WinError 126] Не найден указанный модуль. Error loading "C:\Users\Darkness\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\torch\lib\shm.dll" or one of its dependencies. Причем shm.dll в этой папке есть, и папка указана в PATH. Я сам очень далёк от программирования, кучу раз переустанавливал torch по советам в интернете,устанавливал библиотеки и прочее, ничего не помогает. Подскажите пожалуйста

    • @darkness21ru
      @darkness21ru วันที่ผ่านมา

      А ещё я только сейчас понял, что должны использоваться cuda, а у меня видеокарта amd radeon rx 480, может ли быть причина в этом?

    • @Koldim2001
      @Koldim2001  วันที่ผ่านมา

      Не работай в главном окружении создай venv или conda окружение. У тебя конфликты библиотек возникают так как скорее всего уже очень много всего лишнего стоит в питоне. Сделай пустой питон и только пайторч и ультралитикс поставь тогда точно все заработает

    • @Koldim2001
      @Koldim2001  วันที่ผ่านมา

      Если нет cuda то ставь пайторч cpu версию чтобы точно все было ок

    • @darkness21ru
      @darkness21ru วันที่ผ่านมา

      @@Koldim2001 я устанавливал изначально через Conda чтоб было как на видео, но всё равно вадало эту ошибку, и да я видимо накачал очень много лишнего, но теперь не понимаю как всё это почистить

    • @Koldim2001
      @Koldim2001  วันที่ผ่านมา

      @@darkness21ru если вы делаете пустое окружение то у вас в нем ничего не будет лишнего. Изучите как venv окружение создать так проще всего будет