Пакет Dynami c не поддерживается в Intel NCS2 vpu - PullRequest
1 голос
/ 14 февраля 2020

Я пытаюсь запустить FP16 person-detection-retail-0013 и person-reidentification-retail-0079 на оборудовании Intel Neural Compute Stick, но как только я запускаю приложение для загрузки сетей на устройстве, я получаю следующее исключение:

[INFERENCE ENGINE EXCEPTION] Dynamic batch is not supported

Я загрузил net с настройкой максимального размера партии в 1, и я начал свой проект с демонстрации пешеходного трекера в набор инструментов OpenVINO:

main. cpp -> CreatePedestrianTracker

    CnnConfig reid_config(reid_model, reid_weights);
    reid_config.max_batch_size = 16;

    try {
        if (ie.GetConfig(deviceName, CONFIG_KEY(DYN_BATCH_ENABLED)).as<std::string>() != 
            PluginConfigParams::YES) {
            reid_config.max_batch_size = 1;
            std::cerr << "[DEBUG] Dynamic batch is not supported for " << deviceName << ". Fall back 
            to batch 1." << std::endl;
        }
    }
    catch (const InferenceEngine::details::InferenceEngineException& e) {
        reid_config.max_batch_size = 1;
        std::cerr << e.what() << " for " << deviceName << ". Fall back to batch 1." << std::endl;
    }

Cnn. cpp -> void CnnBase :: InferBatch

void CnnBase::InferBatch(
const std::vector<cv::Mat>& frames,
std::function<void(const InferenceEngine::BlobMap&, size_t)> fetch_results) const {
const size_t batch_size = input_blob_->getTensorDesc().getDims()[0];

size_t num_imgs = frames.size();
for (size_t batch_i = 0; batch_i < num_imgs; batch_i += batch_size) {

    const size_t current_batch_size = std::min(batch_size, num_imgs - batch_i);

    for (size_t b = 0; b < current_batch_size; b++) {
        matU8ToBlob<uint8_t>(frames[batch_i + b], input_blob_, b); 
    }

    if ((deviceName_.find("MYRIAD") == std::string::npos) && (deviceName_.find("HDDL") == 
        std::string::npos)) {
        infer_request_.SetBatch(current_batch_size); 
    }

    infer_request_.Infer();

    fetch_results(outputs_, current_batch_size);
 }
}

Я полагаю, что проблема может заключаться в топологии обнаружения net, но я спрашиваю, была ли у кого-то такая же проблема и решена ли проблема.
Спасибо.

1 Ответ

1 голос
/ 27 февраля 2020

Боюсь, множество плагинов не поддерживает динамический c пакет. Пожалуйста, попробуйте обновленную версию демо. Вы можете найти его, например, здесь: https://github.com/opencv/open_model_zoo/tree/master/demos/pedestrian_tracker_demo Демо-версия обновлена, чтобы вообще не использовать динамический c пакет.

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