Как использовать удаленную камеру при использовании Caffe SSD?

Как вопрос, описанный в названии, я попытался использовать caffe ssd для обнаружения вещей. https://github.com/weiliu89/caffe/blob/ssd/examples/ssd/ssd_pascal_webcam.py ссылка - это проект, который я клонировал и использовал. Когда я попытался использовать веб-камеру для анализа в реальном времени, я обнаружил, что в проекте для выполнения этой задачи можно использовать только USB-камеру, но я хочу использовать другую камеру на другом сервере (например, порт камеры aaa@10.131.234.12:334), как я могу переписать этот код, чтобы я мог использовать удаленную камеру? Спасибо

1 ответ

Чтобы свести к минимуму изменения в коде кафе, вы можете сохранить веб-адрес в video_file и установить device_id к чему-то другому, чем 0, Чтобы добавить эту поддержку, измените файл https://github.com/weiliu89/caffe/blob/ssd/src/caffe/layers/video_data_layer.cpp, заменив строку 45-47 следующим текстом:

// suppose 101 is the code for remote webcam
if(device_id == 101){
    CHECK(video_data_param.has_video_file()) << "Must provide webcam address";
    const string& video_file = video_data_param.video_file();
    if (!cap_.open(video_file)) {
        LOG(FATAL) << "Failed to open remote webcam: " << video_file;
    }
}else {
    if (!cap_.open(device_id)) {
        LOG(FATAL) << "Failed to open webcam: " << device_id;
    }
}

Теперь восстановите кафе. Отредактируйте свою https://github.com/weiliu89/caffe/blob/ssd/examples/ssd/ssd_pascal_webcam.py строку 117, например:

video_data_param = {
    'video_type': P.VideoData.WEBCAM,
    'device_id': 101,
    'skip_frames': skip_frames,
    'video_file': "remote webcam address"
}

Примечание: для удаленной веб-камеры вам может понадобиться opencv с ffmpeg,

Другие вопросы по тегам