Ошибка подтверждения обнаружения лица в OpenCV в функции 'cv :: dnn :: ConvolutionLayerImpl :: getMemoryShapes' - PullRequest
0 голосов
/ 13 февраля 2019

Я следовал учебнику , чтобы реализовать распознавание лиц по изображению с OpenCV и средой глубокого обучения SSD.

modelFile = "./ssd/res10_300x300_ssd_iter_140000.caffemodel"
configFile = "./ssd/deploy.prototxt"
net = cv2.dnn.readNetFromCaffe(configFile, modelFile)
image = cv2.imread("face.jpg")
(h, w) = image.shape[:2]
blob = cv2.dnn.blobFromImage(cv2.resize(image, (300, 300)), 1.0, (300, 300), (104.0, 177.0, 123.0))
net.setInput(blob)
detections = net.forward()

, но detections = net.forward() возвращает ошибку:

error: OpenCV(4.0.0) C:\projects\opencv-python\opencv\modules\dnn\src\layers\convolution_layer.cpp:236: error: (-215:Assertion failed) blobs.size() != 0 in function 'cv::dnn::ConvolutionLayerImpl::getMemoryShapes'

Все еще ищете дополнительную информацию, но не знаете, является ли это ошибкой в ​​коде или ошибкой в ​​библиотеке ... Кто-нибудь знает, что может вызвать проблемы?Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Мне кажется, я знаю, в чем ваша проблема, проверьте эти два файла "deploy.prototxt" и "res10_300x300_ssd_iter_140000.caffemodel" в папке ssd.Если размер файлов не равен нулю, может случиться так, что ваша загрузка была заблокирована / прервана (заблокирована брандмауэром, сбоями соединения и т. Д.), Сравнив ее с исходным размером.Если размер равен нулю, он вообще не загружается.

В обоих случаях, пожалуйста, перейдите в "https://github.com/opencv/opencv/blob/master/samples/dnn/face_detector/deploy.prototxt" репозиторий github

и

"https://github.com/opencv/opencv_3rdparty/raw/dnn_samples_face_detector_20170830/res10_300x300_ssd_iter_140000.caffemodel", чтобы загрузить два файла с одинаковыми именами и заменить их.

Или вы можете использовать тот же источник, который использовали ранее.

0 голосов
/ 13 февраля 2019

Я не могу воспроизвести вашу проблему, используя OpenCV 3.4.2 и OpenCV 4.0.0.

Вот что я получаю:

enter image description here

PS Я загружаю res10_300x300_ssd_iter_140000.caffemodel из https://raw.githubusercontent.com/opencv/opencv_3rdparty/dnn_samples_face_detector_20170830/res10_300x300_ssd_iter_140000.caffemodel и deploy.prototxt изhttps://github.com/opencv/opencv/raw/3.4.0/samples/dnn/face_detector/deploy.prototxt.

...