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

Андрей_Андрей

Пользователи
  • Количество публикаций

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

  • Посещение

Репутация

0 Новичек

О Андрей_Андрей

  • Звание
    Эксперт

Посетители профиля

621 просмотр профиля
  1. не удается загрузить модель в dnn

    Спасибо, большое за ответ, теперь я сделал так: python tf_text_graph_faster_rcnn.py --input hr_model_lstm.pb --config example.config --output hr_model_lstm.pbtxt в качестве конфига взял # Faster R-CNN with Inception Resnet v2, Atrous version; В ответ при импорте в net = cv2.dnn.readNetFromTensorflow(weights, config) получил ошибку: [libprotobuf ERROR D:\Build\OpenCV\opencv-3.4.4\3rdparty\protobuf\src\google\protobuf\text_format.cc:288] Error parsing text-format opencv_tensorflow.GraphDef: 13334:5: Unknown enumeration value of "20" for field "type". раньше он ругался на значение DT_RESOURCE, теперь ругается на значение 20. нода из pbtxt выглядит так: node { name: "lstm1_b/while/TensorArrayWrite/TensorArrayWriteV3/Enter" op: "Enter" input: "lstm1_b/TensorArray" attr { key: "T" value { type: 20 } } attr { key: "_class" value { list { s: "loc:@lstm1_b/while/mul_5" } } } attr { key: "frame_name" value { s: "lstm1_b/while/while_context" } } attr { key: "is_constant" value { b: true } } attr { key: "parallel_iterations" value { i: 32 } } } что я не так делаю?
  2. Коллеги, суть проблемы: не удается загрузить мной созданную модель tensorFlow в opencv.dnn методом cv2.dnn.readNetFromTensorflow(weights,config) выдается ошибка распарсивания графа вида Error parsing text-format opencv_tensorflow.GraphDef: 4059:5: Unknown enumeration value of "DT_RESOURCE" for field "type". гугление приводит к рецептам вроде заморозьте граф, преобразуйте файл *.pbtxt с помощью файлов, входящих в opencv, конфиг для сети при этом скачайте по ссылке, везде рекомендации, примерно как тут: https://github.com/opencv/opencv/wiki/TensorFlow-Object-Detection-API вопрос: но ведь это-же для конкретной заранее спроектированной сети - mobilenet, rcnn, yolo и других известных, я правильно понимаю или нет? и если да, то, что делать, если моя структура самописная? это не lenet, не guglonet, не yolo, это моя собственная сетка. мне что, не удастся ее в dnn прочитать? Спасибо.
  3. DNN на CPU из C++

    GRU не хватает. я так понимаю тема давно поднималась, но не хватает до сих пор...
  4. svm.predict возвращает int, вместо float.

    нет, это не скользящее окно. это символы автомобильного номера, разделенные по градиенту яркости вдоль широкой стороны номера. в целом все хорошо, но есть символы, которые этим алгоритмом режутся пополам ( м, н, 8, 6 ) - у всех них есть ложный максимум гистограммы яркости посередине, довольно большой, простым сравнением с соседними надежно отфильтровать его не удается. А для буквы М он даже выше чем соседние максимумы. И вот дилемма - то-ли это 2 цифры "1"? то-ли одна буква "м"... вот как-то так. вроде питонская библиотека sklearn.svm обучает классификатор с возможностью определять вероятность, но эта либа не для С++. Ищу аналог. вот народ вроде про аналоги пишет: https://stackoverflow.com/questions/11378819/scikit-learn-equivalent-for-c не знаю во что у меня все эти приседания выльются в плане быстродействия...
  5. svm.predict возвращает int, вместо float.

    Коллеги, огромное спасибо за Ваши комментарии. Насколько я понимаю, получить значение функции для классификации у меня нет вариантов, бо я распознаю 22 символа (буквы и цифры) и это никак не бинарная классификация. У меня нет проблемы, что получить из алгоритма - надежность (confidence) или вероятность (probability) - мне хоть-бы что-нибудь заиметь, уже было-бы неплохо, т.к. сейчас нет вообще ничего. Из описания упомянутого mrgloom'ом в предыдущем посте хака, я вынес только то, что все сказанное справедливо только для бинарной классификации, что не есть мой случай. Разбираюсь в упомянутом RVM. Беда моя в том, что без достоверности (вероятности),в любом виде, ничего у меня не выйдет, т.к. у меня нет четких областей в которых я распознаю символ. а есть набор предположительно областей, каждую из которых я отправляю на распознавание и вот по достоверности( вероятности) хотел определять, что-же за символ на самом деле передо мной. Что еще можно придумать, прежде чем отказаться от SVM в пользу другого алгоритма?
  6. svm.predict возвращает int, вместо float.

    Похоже проблема в том, что я использую классификацию, CvSVM::C_SVC C-Support Vector Classification; а должен исп регрессию CvSVM::EPS_SVR \epsilon-Support Vector Regression. тогда predict вернет значение функции. переучиваю каскад. UPD. predict стал возвращать float. но количество ошибок с 0.11% выросло до 74%... а новый *.dat файл стал размером в 1 кБ вместо 6кБ у старого.. что-то не так..
  7. svm.predict возвращает int, вместо float.

    может у вас это getDecisionFunction()? в opencv2 svm.predict(Mat img, true) должен мне возвращать это значение отражающее дистанцию от плоскости. но почему-то он мне возвращает label... Кто знает почему?
  8. svm.predict возвращает int, вместо float.

    ну например значения векторов у меня такие: 0.055761, 0.0971997, 0.188256, 0.149404, 0.176307, 0.16017, 0.167007, 0.0969387 количество векторов - всегда 5650, сумма значений длин векторов для разных символов тоже одинаковая. Например для первого она вседа 536.1, для второго 634.7 и т.д. но эти цифры повторяются, для разных символов, в том числе для неправильно распознанных. Я как-раз все и делаю на основе этого примера. Вот тут: http://www.recognition.mccme.ru/pub/RecognitionLab.html/methods.html#nonLinearSVM автор в разделе Уверенность классификации говорит о некоем значении классифицирующей функции, по которому можно судить о достоверности классификации. Где ее, эту функцию взять?
  9. svm.predict возвращает int, вместо float.

    оох. Андрей Владимирович, расстояние не меняется ни в примере points_classifier, ни у меня в программе, и не зависит от параметра С. я ставил С =1000, и цифры суппорт вектора абсолютно такие-же вне зависимости даже от того, корректно распознался символ, или нет. Подскажите что еще можно подумать?
  10. svm.predict возвращает int, вместо float.

    Спасибо. запускаю points_classifier, разбираюсь. svm.predict возвращает float, но десятичная часть всегда ==0 . я не очень Вас понял - какой именно параметр из Вашего списка у меня может быть целочисленный? я распознаю символы на картинке методом hog + svm пробую выводить svm.get_support_vector(i) - для совершенно разных символов он мне выводит абсолютно одинаковые числа.
  11. svm.predict возвращает int, вместо float.

    дистанция до гиперплоскости меня абсолютно устроит. и в документации говорят, что, мол если returnDFVal = true, то predict ее и вернет . а у меня все равно int на выходе... как мне ее (дистанцию) получить?
  12. svm.predict возвращает int, вместо float.

    да, но я ставлю returnDFVal = true
  13. svm.predict возвращает int, вместо float.

    Коллеги, svm.predict возвращает мне int, вместо float. Я никак не могу оценить с какой достоверностью он мне распознает. Что я делаю не так? код примерно такой (С++): vector <float>predicted_vector(img_vector.size());{ for (int i = 0; i < img_vector.size(); i++){ img_vector = symbRecognitor.deskew(img_vector); //наклон перед распознаванием hists = symbRecognitor.preprocess_hog(img_vector); // hog predicted_vector = svm.predict(hists, true); .... } вот параметры: SVMParams param; param.kernel_type = SVM::POLY; param.svm_type = SVM::C_SVC; param.C = 1; svm.load(datFilePath);
  14. Чем лучше распознать цифры?

    я искал связанные контуры (findContours), оставлял из всех только символы ( по размеру и соотношению сторон), преобразовывал их в полигоны (approxPolyDP), и обводил их прямоугольниками (boundingRect) . Потом строил прямую между левыми нижними углами прямоугольников в одной строке, и искал наклон (арктангенс разности по y / разность по x.), и потом этот наклон компенсировал. Получилось хорошо.
  15. Здравствуйте. Наша фирма занимается разработкой микропроцессорных встраиваемых систем. Появились новые проекты, и нам требуется программист Python, C++ Требования: Уверенные знания Python, CPP, опыт разработки приложений под Windows, Linux от 2-х лет. Опыт работы с opencv, уверенное знание основного функционала этой библиотеки. Опыт работы с системой контроля версий, багтрекером (любыми) Приветствуется опыт решения задач классификации объектов, использования нейронных сетей. Мы предлагаем: Работу над проектами в области машинного зрения, систем "Умный город", интеллектуальных транспортных систем. Дружный коллектив, спокойная, доброжелательная атмосфера. Работа в офисе в 3 минутах ходьбы от метро Фонвизинская. Полное соблюдение трудового законодательства РФ. ЗП по результатам собеседования. Не агентство, прямой работодатель. пишите: fader@mail.ru
×