Как использовать удаленную камеру при использовании 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
,