ЙОЛО (Дар knet): Как определить целый каталог изображений? - PullRequest
0 голосов
/ 26 февраля 2020

Дар knet руководство по обнаружению объектов на изображениях с использованием предварительно обученных весов находится здесь: https://pjreddie.com/darknet/yolo/

Команда для запуска:

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

Последний аргумент - это путь к файлу, я пытался изменить его на data/*.jpg, но не работал.

Как использовать Dar knet обнаружить целый каталог изображений?

Ответы [ 3 ]

2 голосов
/ 26 февраля 2020

По ссылке, указанной ниже, можно использовать модуль cv2.dnn.readNetFromDar knet для чтения dar knet, обученных весов и файла конфигурации для создания загруженной модели в python. Как только модель загружена, можно просто использовать для прогнозирования l oop. Пожалуйста, обратитесь к этой ссылке для уточнения

0 голосов
/ 26 февраля 2020

Другим решением является загрузка Dar knet из Python2 (не 3, Dar knet использует Python2).

1a) Клон dar knet, как описано в https://pjreddie.com/darknet/yolo/

1b) Go в клонированный каталог, загрузите yolov3-tiny.weights и yolov3.weights, как указано в https://pjreddie.com/darknet/yolo/

2) Копировать darknet/examples/detector.py до darknet dir

3) Отредактируйте новый детектор.py

  • Измените строку .load _net для использования: cfg/yolov3-tiny.cfg и yolov3-tiny.weights
  • Измените строку .load_meta для использования: cfg/coco.data

4a) Обнаружьте объекты на изображениях, добавив несколько dn.dectect строк вinder.py

4b) Запустите детектор .py

0 голосов
/ 26 февраля 2020

Есть способ сделать так, чтобы Dar knet исполняемый файл загружался один раз и выводил несколько файлов изображений. Используйте expect, чтобы выполнить трюк.

Установите expect:

sudo yum install expect -y
#sudo apt install expect -y

Выполните обнаружение объекта на нескольких изображениях:

expect <<"HEREDOC"
  puts "Spawning...";
  spawn ./darknet detect cfg/yolov3-tiny.cfg yolov3-tiny.weights;
  set I 0;

  expect {
    "Enter Image Path" {
      set timeout -1;

      if {$I == 0} {
        send "data/dog.jpg\r";
        incr I;
      } elseif {$I == 1} {
        send "data/kite.jpg\r";
        incr I;
      } else {
        exit;
      }

      exp_continue;
    }
  }
HEREDOC
...