Вы найдете различные методы конвертации собранных здесь моделей YOLO. В статье объясняется, как преобразовать ваши модели Darknet или, скорее, YOLO в другие форматы фреймворков, такие как TensorFlow или TensorFlowLite (с квантованием и без него).

Я буду использовать Google Collaboratory, чтобы продемонстрировать процесс.

Примечание. В разных методах используются разные версии TensorFlow, перезапускайте среду выполнения каждый раз!

Из даркнета к TensorFlow

Формат TensorFlow, сгенерированный на выходе, представляет собой формат замороженного графика (.pb). Помните, что файлы .cfg всегда следует загружать (или клонировать) в формате RAW. То есть ссылка на файл cfg для v3-tiny: https://raw.githubusercontent.com/pjreddie/darknet/master/cfg/yolov3-tiny.cfg, а НЕ https://github.com/ pjreddie / darknet / blob / master / cfg / yolov3-tiny.cfg .

Метод 1. Использование Darkflow (.weights - ›.pb)

  • Поддерживает только YOLO v2, v2-tiny и некоторые модели классификации изображений (проверено в Darknet-53)
  • Каждый раз, когда вы выбираете модель для преобразования, не забывайте копировать содержимое файла: labels.txt, находящегося в клонированной папке DarkFlow. Для v2-tiny и v3-tiny метки основаны на наборе данных COCO, и их можно найти здесь: https://github.com/pjreddie/darknet/blob/master/data/coco.names. Первоначально и наконец файл txt выглядит так, как показано:

Метод 2. Использование метода Mystic (.weights - ›.pb)

  • На основе методики, предложенной Mystic.
  • Проверено на YOLO v3 и v3-tiny
  • В файле сохраняется выходной замороженный график с тем же именем: «frozen_darknet_yolov3_model.pb». Итак, не забудьте сохранить / переименовать результат перед запуском следующей команды.

Метод 3. Использование DW2TF (.weights - ›.pb)

  • Поддерживает YOLO v2, v2-tiny, v3 и v3-tiny.
  • Метод выводит, как показано:

DarkNet в ONNX в TensorFlow

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

TensorFlow в TFLite (.pb - ›tflite)

  • Суть проверена на модели YOLO-v2-tiny COCO.
  • Для этого требуются два параметра: input_arrays и output_arrays. Чтобы получить их, следуйте этому методу (с использованием Netron) https://stackoverflow.com/a/61242604/9625777.

P.S. Статья регулярно обновляется.

Если бы я мог вам помочь, вы также можете отправить мне криптовалюту, такую ​​как Solana, Ethereum, Doge или монеты, на BSC. 🤠

Кошелек SOL: Geyvsojk1KAegziagYAJ5HWaDuAFYKZAS2KpqZeag9DM

Кошелек BSC: 0x47acC4B652166AE55fb462e4cD7DD26eFa97Da04

Кошелек ETH: 0x47acC4B652166AE55fb462e4cD7DD26eFa97Da04

Кошелек Doge: DFT6Pydzw7RAYG1ww4RRfctBKqyiXbbBwk