Как загрузить данные SVM из файла в OpenCV 3.1?
У меня проблема с загрузкой обученного SVM из файла. Я использую Python и OpenCv 3.1.0. Я создаю объект SVM:
svm = cv2.ml.SVM_create()
Затем я тренирую svm и сохраняю в файл:
svm.save('data.xml')
Теперь я хочу загрузить этот файл в другой скрипт Python. В документах я не могу найти какие-либо методы, чтобы сделать это.
Есть ли хитрость для загрузки SVM из файла? Спасибо за любые ответы.
1 ответ
Я думаю, что это немного сбивает с толку, что нет метода svm.load(filepath) как аналога svm.save(filepath), но когда я читаю справку по модулю, для меня имеет смысл, что SVM_load является потомком cv2.ml (брат SVM_create).
Убедитесь, что ваша основная ветка opencv обновлена (в настоящее время версия 3.1.0-dev)
>>> import cv2
>>> cv2.__version__
'3.1.0-dev'
>>> help(cv2.ml)
возвращается
SVM_create(...)
SVM_create() -> retval
SVM_load(...)
SVM_load(filepath) -> retval
так что вы можете просто использовать что-то вроде:
if not os.path.isfile('svm.dat'):
svm = cv2.ml.SVM_create()
...
svm.save('svm.dat')
else:
svm = cv2.ml.SVM_load('svm.dat')