Jump to content
Compvision.ru

Smorodov

Главные администраторы
  • Content count

    3,752
  • Joined

  • Last visited

  • Days Won

    335

Everything posted by Smorodov

  1. Создание dll, использующей openCV (C++)

    Ну так вся OpenCV состоит из DLL, использующих OpenCV Откройте исходники, и сравните с тем что у вас.
  2. Ну если облако точек относительно системы координат камеры известно, и известны координаты камеры во внешнем мире, то преобразование производится переносом и поворотом точек на разницу. Чтобы сделать быстро, можно использовать шейдеры, opencl, cuda, ... короче GPU. Подружиться с GPU все равно придется.
  3. Если есть RGBD, то поставьте где-нибудь маркер в виде ортов системы координат. Распознавайте ее точки на цветном изображении, затем, используя глубину, получайте 3Д точки. Есть базис, есть координаты и ориентация камеры. Преобразование x,y,D в 3д точку должно быть в API камеры. В принципе, при известных размерах маркера, задача решается даже без компоненты глубины, гуглите opencv solvepnp. По поводу скелетов посмотрите здесь: https://github.com/topics/skeleton-tracking
  4. Сам бы хотел знать Обычно обострение начинается ближе к сессии. А вообще, раньше был хороший форум у МГУ-шников, правда сейчас не знаю как он там. Многие пересели на нейросети.
  5. Поиск стекла на фотографии

    Если провести бинаризацию, может и не сильно, надо пробовать. У меня этот метод давал неплохой результат: https://stackoverflow.com/questions/22122309/opencv-adaptive-threshold-ocr/22127181#22127181 Еще думается если найти фазовый сдвиг, то он тоже даст границу стекла. Можно после бинаризации наложить изображения по И темные линии станут толще, затем инверсия, эрозия, и найти convex hull.
  6. Поиск стекла на фотографии

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

    Стенд всегда такой, освещение? Короче, среда управляемая нами?
  8. Гляньте здесь: http://donvideo.ru/blog/29/ думаю с включенной HLC должно работать лучше, т.к. на фотках выше что с подсветкой, что без, для номера без разницы.
  9. На фотках верхняя без подсветки, а нижняя подсвечена ?
  10. Возможно связано с засветкой. Ведь диафрагма открыта на полную. Номер покрыт световозвращающим покрытием и может просто слепить камеру. Да и изображение через широкую диафрагму по определению менее четкое.
  11. Перенаправить вывод в линуксе можно стандартно: SomeCommand > SomeFile.txt Подробнее тут: https://askubuntu.com/questions/420981/how-do-i-save-terminal-output-to-a-file
  12. Нашел тот старый проект TF_EX.RAR посмотрите, может пригодится.
  13. Не уверен что хуже, задавать размер тензора вручную, или мешать C и C++, но так-то теоретически возможно: https://www.oracle.com/technetwork/articles/servers-storage-dev/mixingcandcpluspluscode-305840.html Может оптимально будет просто записывать при заморозке еще один файл, с дополнительной инфой ?
  14. Так там вроде как размеры тензоров при заморозке фиксируются, и надо самому их знать по модели. Вроде как получение размеров тензоров и не поддерживалось. Но тут у меня опыта немного, могу ошибаться.
  15. Кстати, еще подумалось, ведь уровень абстракции сети растет от входа к выходу, то есть чтобы получить признаки для описания конкретного экземпляра объекта, нужно просто отрезать побольше выходных слоев.
  16. Подкину еще один скрипт, выдранный из работающего проекта. FreezeMe.py тут некоторых вещей нехватает, но может чем и пригодится. И еще, чтобы смотреть что записалось попробуйте Netron, я его как то уже упоминал.
  17. Ну тут от сети зависит, есть ведь сети для распознавания лиц, например. Что мешает обучить сеть на пешеходах под разными углами зрения, и научить извлекать признаки для различения их между собой. И соорудить каскад, тип объекта + дескриптор.
  18. По поводу нейронок, согласен, с мелкими объектами их применять проблематично. Но можно попробовать применить метод, похожий на распознавание лиц, когда вычисляют расстояние или угол между векторами, выдаваемыми сетью. Где то видел трекер, в котором используется подобная технология. Там берется что то вроде AlexNet и обрубается последний слой, и выходы предпоследнего слоя, используются как признаки для трекинга. Вот их и используют как часть метрики схожести, наряду с расстоянием и скоростью.
  19. Я не использовал питоновскую либу, но помнится намучился строить TF на MSVS, проект сейчас не нашел, было давно. Но помнится, что там еще много чего надо было кроме DLL-ины. Вот здесь посмотрите, может поможет: https://joe-antognini.github.io/machine-learning/windows-tf-project
  20. Там все на базель завязано, проекты тоже в нем собираются. Дело вкуса, но мне эта штука не нравится, и как решение, можно попробовать напрямую грузить замороженные модели прямо OpenCV-шным dnn модулем, либо преобразовать через ONNX в любой другой формат и опять же, либо через OpenCV, либо CAFFE, ncnn, .... или другой понравившийся фреймворк. TF -> ONNX: https://github.com/onnx/tensorflow-onnx Кстати, классная штука: https://github.com/lutzroeder/netron И эта тулза может пригодиться: https://github.com/daquexian/onnx-simplifier
  21. Скрипт заморозки модельки, на всякий случай. Keras2pb.py
  22. Не работает imread

    Здравствуйте, если запускаете под отладчиком, задайте путь отладки (где exe-шник лежит).
  23. Используется еще вектор скорости. Предполагается что объекты инертны, и векторы скорости быстро не меняют. Ну еще копайте разные фильтры Кальмана и иже с ними. Есть еще наш с Сергеем Нужным проект: https://github.com/Smorodov/Multitarget-tracker правда по коммитам сейчас он много больше его чем мой
  24. Пожалуйста, пишите по сути, что-нибудь практически полезное.
×