
Андрей_Андрей
Пользователи-
Content count
43 -
Joined
-
Last visited
-
непонятный артефакт на снимке
Андрей_Андрей replied to Андрей_Андрей's topic in Обсуждение общих вопросов
-
Над дорогой установлена камера с ик подсветкой. На фото наблюдаю непонятные артефакты - обведены на снимке. На разных фото они всегда в разных местах. Иногда они появляются над автомобилем, иногда перед ним, иногда их нет совсем. Но если они есть, то всегда недалеко от автомобиля. Что это такое может быть?
-
не удается загрузить модель в dnn
Андрей_Андрей replied to Андрей_Андрей's topic in Вопросы по нейросетям и ИИ
Спасибо, большое за ответ, теперь я сделал так: 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 } } } что я не так делаю? -
Андрей_Андрей started following не удается загрузить модель в dnn
-
Коллеги, суть проблемы: не удается загрузить мной созданную модель 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 прочитать? Спасибо.
-
GRU не хватает. я так понимаю тема давно поднималась, но не хватает до сих пор...
-
нет, это не скользящее окно. это символы автомобильного номера, разделенные по градиенту яркости вдоль широкой стороны номера. в целом все хорошо, но есть символы, которые этим алгоритмом режутся пополам ( м, н, 8, 6 ) - у всех них есть ложный максимум гистограммы яркости посередине, довольно большой, простым сравнением с соседними надежно отфильтровать его не удается. А для буквы М он даже выше чем соседние максимумы. И вот дилемма - то-ли это 2 цифры "1"? то-ли одна буква "м"... вот как-то так. вроде питонская библиотека sklearn.svm обучает классификатор с возможностью определять вероятность, но эта либа не для С++. Ищу аналог. вот народ вроде про аналоги пишет: https://stackoverflow.com/questions/11378819/scikit-learn-equivalent-for-c не знаю во что у меня все эти приседания выльются в плане быстродействия...
-
Коллеги, огромное спасибо за Ваши комментарии. Насколько я понимаю, получить значение функции для классификации у меня нет вариантов, бо я распознаю 22 символа (буквы и цифры) и это никак не бинарная классификация. У меня нет проблемы, что получить из алгоритма - надежность (confidence) или вероятность (probability) - мне хоть-бы что-нибудь заиметь, уже было-бы неплохо, т.к. сейчас нет вообще ничего. Из описания упомянутого mrgloom'ом в предыдущем посте хака, я вынес только то, что все сказанное справедливо только для бинарной классификации, что не есть мой случай. Разбираюсь в упомянутом RVM. Беда моя в том, что без достоверности (вероятности),в любом виде, ничего у меня не выйдет, т.к. у меня нет четких областей в которых я распознаю символ. а есть набор предположительно областей, каждую из которых я отправляю на распознавание и вот по достоверности( вероятности) хотел определять, что-же за символ на самом деле передо мной. Что еще можно придумать, прежде чем отказаться от SVM в пользу другого алгоритма?
-
Похоже проблема в том, что я использую классификацию, CvSVM::C_SVC C-Support Vector Classification; а должен исп регрессию CvSVM::EPS_SVR \epsilon-Support Vector Regression. тогда predict вернет значение функции. переучиваю каскад. UPD. predict стал возвращать float. но количество ошибок с 0.11% выросло до 74%... а новый *.dat файл стал размером в 1 кБ вместо 6кБ у старого.. что-то не так..
-
может у вас это getDecisionFunction()? в opencv2 svm.predict(Mat img, true) должен мне возвращать это значение отражающее дистанцию от плоскости. но почему-то он мне возвращает label... Кто знает почему?
-
ну например значения векторов у меня такие: 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 автор в разделе Уверенность классификации говорит о некоем значении классифицирующей функции, по которому можно судить о достоверности классификации. Где ее, эту функцию взять?
-
оох. Андрей Владимирович, расстояние не меняется ни в примере points_classifier, ни у меня в программе, и не зависит от параметра С. я ставил С =1000, и цифры суппорт вектора абсолютно такие-же вне зависимости даже от того, корректно распознался символ, или нет. Подскажите что еще можно подумать?
-
Спасибо. запускаю points_classifier, разбираюсь. svm.predict возвращает float, но десятичная часть всегда ==0 . я не очень Вас понял - какой именно параметр из Вашего списка у меня может быть целочисленный? я распознаю символы на картинке методом hog + svm пробую выводить svm.get_support_vector(i) - для совершенно разных символов он мне выводит абсолютно одинаковые числа.
-
дистанция до гиперплоскости меня абсолютно устроит. и в документации говорят, что, мол если returnDFVal = true, то predict ее и вернет . а у меня все равно int на выходе... как мне ее (дистанцию) получить?
-
да, но я ставлю returnDFVal = true
-
Коллеги, 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);