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

Smorodov

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

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

  • Посещение

  • Days Won

    346

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

  1. Ошибка при компиляции corr.hpp

    Вероятно открылась только одна камера. У VideoCapture есть метод isOpened, желательно бы его тоже проверять после открытия камер. Если не открываются, то надо проверять могут ли эти камеры вообще совместно работать. Нашел, кстати свой тест 3-х камер: #include "opencv2/highgui/highgui.hpp" #include <opencv2/objdetect/objdetect.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream> #include <vector> #include <stdio.h> using namespace cv; using namespace std; int main(int ac, char** av) { VideoCapture capture0(0); VideoCapture capture1(1); VideoCapture capture2(2); if (!capture0.isOpened()) { cout << "Cam 0 failed to open." << endl; return 0; } if (!capture1.isOpened()) { cout << "Cam 1 failed to open." << endl; return 0; } if (!capture0.isOpened()) { cout << "Cam 2 failed to open." << endl; return 0; } namedWindow("Cam0"); namedWindow("Cam1"); namedWindow("Cam2"); Mat frame0; Mat frame1; Mat frame2; int k = 0; while (k != 27) { capture0 >> frame0; capture1 >> frame1; capture2 >> frame2; if (!frame0.empty()) { imshow("Cam0", frame0); } else { cout << "frame from cam 0 empty" << endl; } if (!frame1.empty()) { imshow("Cam1", frame1); } else { cout << "frame from cam 1 empty" << endl; } if (!frame2.empty()) { imshow("Cam2", frame2); } else { cout << "frame from cam 2 empty" << endl; } k = waitKey(20); } return 0; } Код проверок добавил сейчас, не компилировал, должно работать, но мог где нибудь опечататься.
  2. Ошибка при компиляции corr.hpp

    Ну тогда надо идти в отладчик и смотреть где падает, и что чему равно. Проверьте открылись ли камеры, открываются ли они по одной, не идут ли пустые кадры, в общем добавьте нормальную обвязку с обработкой ошибок. Нумерация камер у вас в системе вполне может вас удивить, попробуйте разные варианты. Я читал с трех камер и все было нормально. ЗЫ: Не нужно каждый раз звать waitKey, достаточно одного раза для обновления всех окон.
  3. GTX1070 работает в TF с CUDA 8.0 на Ubuntu 16.04. Как ставил, если честно не помню уже, вроде проблем не было. TF особо не использую, тестил на немного модифицированном скрипте из примеров (добавил установку девайса): # Copyright 2015 The TensorFlow Authors. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================== """A very simple MNIST classifier. See extensive documentation at http://tensorflow.org/tutorials/mnist/beginners/index.md """ from __future__ import absolute_import from __future__ import division from __future__ import print_function # Import data from tensorflow.examples.tutorials.mnist import input_data import tensorflow as tf with tf.device('/gpu:0'): flags = tf.app.flags FLAGS = flags.FLAGS flags.DEFINE_string('data_dir', '/tmp/data/', 'Directory for storing data') mnist = input_data.read_data_sets(FLAGS.data_dir, one_hot=True) sess = tf.InteractiveSession() # Create the model x = tf.placeholder(tf.float32, [None, 784]) W = tf.Variable(tf.zeros([784, 10])) b = tf.Variable(tf.zeros([10])) y = tf.nn.softmax(tf.matmul(x, W) + b) # Define loss and optimizer y_ = tf.placeholder(tf.float32, [None, 10]) cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1])) train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy) # Train tf.initialize_all_variables().run() for i in range(1000): batch_xs, batch_ys = mnist.train.next_batch(100) train_step.run({x: batch_xs, y_: batch_ys}) # Test trained model correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) print(accuracy.eval({x: mnist.test.images, y_: mnist.test.labels})) Лог скрипта: В configure вроде явно спрашивают про GPU. configure Еще наткнулся на похожие вопроы на SO: http://stackoverflow.com/questions/39817645/cuda-cudnn-installed-but-tensorflow-cant-use-the-gpu и http://stackoverflow.com/questions/38794497/tensorflow-bazel-0-3-0-build-cuda-8-0-gtx-1070-fails
  4. Ошибка при компиляции corr.hpp

    А если проверять что изображение не пустое перед отображением ?
  5. Работа с контурами

    Можно извлечь дескрипторы контуров (например дескрипторы Фурье, или моменты hu (hu moments), или еще какие ) и хранить их.
  6. Ну это перебор конечно. 50-200 нейронов в скрытом слое вполне хватит (по опыту), (в несколько раз больше кол-ва нейронов выходного слоя). И одного скрытого слоя вполне хватит.
  7. Нормально должна полносвязная работать. Не такая уж она и большая для данного случая. Только нормализацию данных предварительно проведите (вычесть среднее, привести к диапазону [0:1] или [-1:1] ).
  8. Ошибка при компиляции corr.hpp

    Почитайте этот топик: А так то, в большинстве случаев с консольным вариантом удобнее работать.
  9. Ошибка при компиляции corr.hpp

    Получится, но лучше было бы vs2015 community edition, он более новый и бесплатный. На ютубе полно видео по установке:
  10. Ошибка при компиляции corr.hpp

    Borland C тоже в шаблонах не силен , тем более такой старый, то что Вы привели выше, только верхушка айсберга. Лучше переходите на visual studio или Qt, намного меньше проблем будет.
  11. OpenCV + NetBeans + Ubuntu

    Да вроде отсюда: http://releases.ubuntu.com/16.04/
  12. OpenCV + NetBeans + Ubuntu

    Ну не знаю, у меня по тому руководству на свежепоставленную ubuntu 16.04 все сразу установилось безо всяких манипуляций с FFMPEG. Для CUDA 8.0 пришлось поставить свежий thrust, а так все без проблем.
  13. Работа с камерами

    Ну так PID/VID гуглите и libusb . Не заводской номер конечно, но большего я думаю можно добиться только через драйвер (если заводской номер там вообще вытаскивается).
  14. OpenCV + NetBeans + Ubuntu

    Попробуйте поставить: sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
  15. OpenCV + NetBeans + Ubuntu

    А пробовали другие форматы видео файлов ?
  16. OpenCV + NetBeans + Ubuntu

    Я ставил примерно как здесь написано: http://embedonix.com/articles/image-processing/installing-opencv-3-1-0-on-ubuntu/ может еще с кодеками проблемы, изображения читаются нормально ?
  17. Мне думается, здесь важно иметь "опорные" цвета, их можно вычислить зная что за объекты изображены на картинке. Для этого нужна сегментация сцены. По абстрактной кучке пикселей, мне кажется параметры хорошо установить не получится.
  18. Соорудите датасет, состоящий из изображений со сбитыми вами параметрами как вход, и величины на которые сбиты параметры как желаемый выход. Еще посмотрите родственный по теме проект: https://github.com/richzhang/colorization
  19. Кстати DIGITS умеет как то делать батчи больше за счет последовательной обработки при нехватке памяти. Не тестировал, но видел эту фичу.
  20. Ну если на других сетях учится, значит caffe работает. Можно попробовать среднее вычесть, если это не делается до сих пор. Обычно первые итерации сеть примерно этим и занимается.
  21. Может быть из за GPU, у меня было что то очень похожее, но вроде как это был баг 0.16 версии. На 970 сеть училась, а на 1070 нет. А может проблема настроек сети: похожий коммент bhargavaurala commented on 8 Jan Hi @mavenlin. I am using the NiN architecture to train ImageNet 2012. After about 50k iterations, the validation accuracy is around 0.1% which corresponds to random chance. I am using the same structure and initialization as you have. Can you please let me know when (iteration number) the validation accuracy starts to increase? This will help me decide if the network is learning anything useful and if I should restart with different hyperparameters. Thanks.
  22. Еще вот этот проект посмотрите, там вшита параметрическая модель номера. objectmarker.cpp данные к программке: https://cloud.mail.ru/public/7ZU4/Hmt6Xa4Gp
  23. Вот проект нашел, делал давно, посмотрите, может что полезное найдете. Он, насколько помню, извлекал цифры номера, без распознавания. Справлялся с довольно сложными случаями. Кстати, вы свой детектор тестировали на грязных номерах ? LicensePlateDetector.zip
  24. Интересно, а что за фрагменты сверху-справа? Там вроде номер почти не появляется.
  25. cpu быстрее gpu

    gpu-шные версии opencv-шных команд по-любому используют не одно ядро. Наибольшие издержки обычно возникают при передаче данных host-device и обратно, также занимает время выделение/освобождение памяти (gpuMat), которое у вас в цикле. Еще неплохо бы инициализировать GPU, насколько помню метод setDevice или что то в этом роде, иначе первая операция занимает много времени. Плюс к тому, можно одновременно производить загрузку следующей порции данных и обработку текущей. В общем почитайте, про оптимизацию для CUDA.
×