Перейти к содержимому
Compvision.ru

Smorodov

Главные администраторы
  • Количество публикаций

    3 873
  • Зарегистрирован

  • Посещение

  • Days Won

    346

Все публикации пользователя Smorodov

  1. svm.predict возвращает int, вместо float.

    Что то мне подсказывает, что SVR служит для интерполяции функций по точкам.
  2. svm.predict возвращает int, вместо float.

    Есть один выход, открыть исходники и посмотреть, что делается при установленном флаге returnDFVal = true.
  3. svm.predict возвращает int, вместо float.

    Проверить не могу, у меня версия 3.x там такого параметра нет, только что попробовал.
  4. svm.predict возвращает int, вместо float.

    По поводу svm.get_support_vector, в SVM по определению расстояния до опорных векторов вроде как всегда равно единице (ну или величине зазора, если они не нормированы, но одинаковые), в SVM c "мягкой" (soft margin svm) границей возможны варианты. Параметр С, насколько я помню, как раз и задает "жесткость" границы. Не параметр целочисленный, а, возможно, сетка целочисленная используется при решении, поэтому и расстояния целые. Я расстояния до границы не использовал в SVM, так что могу только предполагать.
  5. svm.predict возвращает int, вместо float.

    В смысле целые числа, так-то функция возвращает float. Попробуйте запустить OpenCV-шный пример points_classifier, для SVM ну допилить чуть, чтобы выдавал расстояние, до границы, сможете визуально проверить то он выдает или нет. Глянул еще раз документацию, похоже оптимизация идет на сетке Generates a grid for SVM parameters. C++: CvParamGrid CvSVM::get_default_grid(int param_id) Parameters: param_id – SVM parameters IDs that must be one of the following: CvSVM::C CvSVM::GAMMA CvSVM::P CvSVM::NU CvSVM::COEF CvSVM::DEGREE The grid is generated for the parameter with this ID. The function generates a grid for the specified parameter of the SVM algorithm. The grid may be passed to the function CvSVM::train_auto(). Сетка строится по параметрам, которые вы задаете, возможно она в вашем случае целочисленная. Но вообще там double CvParamGrid::CvParamGrid The constructors. C++: CvParamGrid::CvParamGrid() C++: CvParamGrid::CvParamGrid(double min_val, double max_val, double log_step) The full constructor initializes corresponding members. The default constructor creates a dummy grid: CvParamGrid::CvParamGrid() { min_val = max_val = step = 0; }
  6. svm.predict возвращает int, вместо float.

    SVM дискриминативный метод, а не генеративный, то есть по умолчанию вероятности не дает, а дает только границу разделения. Но можно приспособить расстояние до границы разделения,как упомянуто выше, даже добавить сигмоиды, будет очень похоже внешне, но это не вероятность.
  7. Не работает функция cvWriteFrame

    Поток GUI работает в цикле WinMain, там обрабатываются сообщения системы, чтобы закрыть, нужно отправить соответствующее сообщение. Тогда программа завершит этот цикл и теоретически должна закрыться. Но может надо просто камеру вначале закрыть, она тоже может держать программу.
  8. Не работает функция cvWriteFrame

    Не знаю, с cli + IplImage не работал. Может умны указатель убирает сам за собой ?
  9. Не работает функция cvWriteFrame

    Упс, цикл у вас в обработчике нажатия кнопки. Не ну это так не делается. В обработчиках событий должен быть короткий быстро выполняющийся код, ну никак не вечный цикл. То что у вас сделано, это очень плохо. Посмотрите, на форуме есть примеры вывода видео на форму.
  10. Не работает функция cvWriteFrame

    С формами такое не работает. Вам нужно сделать нормальный выход из программы, послать сообщение закрытия например. Цикл крутите отдельным потоком?
  11. mat::inv() - не работает?

    https://ru.wikipedia.org/wiki/Обратная_матрица Очень универсальная вещь, используется, в основном, при решении систем линейных уравнений. Но далеко не только для этого.
  12. mat::inv() - не работает?

    Это обращение матрицы, линейная алгебра, а не инверсия цветов.
  13. Чем лучше распознать цифры?

    Вначале уменьшить изображение до разумных размеров.
  14. Бинарники тессеракта x64 для windows. https://github.com/tesseract-ocr/tesseract/wiki/4.0-with-LSTM#400-alpha-for-windows Бинарники OpenCV (не знаю какая разрядность, скорее всего x32 для windows.) https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.2.0/
  15. Наверное точка крутится вокруг минимума, медленно к нему приближаясь. А может датасет не перемешан нормально.
  16. Ну можно посмотреть исходники GIMP-а. У них там своя библиотека функций с использованием SIMD, но все можно выковырять при определенной настойчивости.
  17. Чем лучше распознать цифры?

    У вас же здесь цифры в прямоугольнике, прямоугольник белый, найдите его контур, впишите в прямоугольник (minarearect), вот вам и наклон. http://docs.opencv.org/2.4/doc/tutorials/imgproc/shapedescriptors/bounding_rotated_ellipses/bounding_rotated_ellipses.html Дальше повернуть изображение в обратную сторону.
  18. Наткнулся на интересную статейку, не тестировал, просто чтобы не забыть. https://blog.google/topics/google-cloud/google-cloud-offer-tpus-machine-learning/ Может кто пробовал, и поделится опытом ?
  19. matchShapes()

    Да, правильно. cvGetCentralMoment нужна когда нужно вычислить именно моменты как есть, например для поиска центра масс и осей инерции.
  20. matchShapes()

    Моменты используются внутри MatchShapes, на вход функция принимает контуры. Посмотрите здесь, вроде простой пример: http://derykstack.blogspot.ru/2014/07/example-using-matchshapes-in-opencv.html
  21. Вообще можно тупо скользящим средним сглаживать. У меня были случаи, что ошибка уменьшалась отскоками, падает, горб, снова падает, но уже ниже, опять горб, и так далее. И тут уже сглаживание не поможет. Причем интервалы между горбами одинаковые, и горбы эти не низенькие, а такие что вполне можно кнопку "стоп" нажать, так и делал, пока не передержал по недосмотру. Уменьшение шага только меняло период.
  22. Да вроде в общих чертах похоже. Только классификатору передаются массивы (векторы) чисел а не числа по одному.
  23. Ну там не то что бы одно и то-же, но получается компактная область, которая и выделяется при обучении классификатора. Что внутри области - лицо, что снаружи не лицо. При добавлении дополнительных измерений такие области можно отделить гиперплоскостью. Ну например как здесь:
  24. Да, классификатору в принципе все равно откуда вы берете дескрипторы, ему важно чтобы классы были разделимы его средствами. Он даже не должен знать набор признаков, который вы использовали, но важно использовать один и тот же набор признаков на всем множестве картинок с которыми вы работаете. Извлечение признаков, переводит вашу картинку из одной системы координат в другую.
  25. Да число, это число есть отклик признака. Каждый признак откликнется на изображение под ним по своему. Будет что то вроде такого, если писать словами: Изображение на 12% похоже на горизонтальный перепад яркости, на 5% на вертикальный, на 7% похоже на черную точку на белом фоне, на 4% на диагональный перепад яркости. Вместе они опишут структуру изображения.
×