Jump to content
Compvision.ru

All Activity

This stream auto-updates     

  1. Last week
  2. Earlier
  3. Не совсем так, yolo - это детектор для которого уже есть предобученные модели на десятки классов (coco >80,voc pascal 20 классов ), которых может вам будет и дестаточно. Он выдает рамку + индекс класса. Если не найдете все что нужно, надо учить, но это обучение не потребует учить с нуля, часть слоев будет "заморожена", а учатся толко несколько последних слоев. Пример обучения на своих данных : https://github.com/AntonMu/TrainYourOwnYOLO Это не требует очень много данных. Датасеты лучше не смешивать как попало, они обычно специально готовятся. Когда сеть нашла собаку, она может, например, узнать породу, запустив специально обученную сеть. https://github.com/ShihanUTSA/Dog-breed-classifier--Convolutional-Neural-Network
  4. Smorodov, т.е. я если я правильно вас понял, то для первичного обучения мне можно использовать датасет вообще не по моей тематике. Грубо говоря, если доска будет ориентирована на животных, я могу обучать ее на зданиях/машинах/предметах и т.д. Чем больше я ее обучаю на первичном класстеризаторе, тем четче она будет понимать разницу между объектами ? Так ? Просто если идея выйдет на этап реализации, вероятнее всего на старте у меня будет очень мало данных для обучения, для примера пусть это будет по 100 фотографий на каждую из конечных категорий. Прекрасно понимаю, что чем больше данных, тем точнее сеть понимает, что я ей показываю. Как быть в этом случае ? Имеет ли смысл задействовать другие готовые не тематические сеты для тренировки ? Вы написали про COCO. Что будет, если к нему добавить датесет Fashion MNIST и др ? Поможет ли это улучшить зрение сети или лишь раздует ее не нужными данными и не даст никакого практического результата в конечном счете ?
  5. Все правильно, лучше по иерархии - от общего к частному. Вначале детектор-классификатор, типа YOLO v3 (4, 5), обученный на датасете типа COCO . А дальше специализированные классификаторы по подклассам. Их придется учтить на своих данных. Доучивать на расширенном датасете (после добавления данных) можно, но имеет смысл когда собралось достаточно много данных. Классификация цвета не такой тривиальный вопрос как может показаться. Еще в помощь NLP например : https://github.com/natasha/natasha Может быть еще captioning networks пригодятся https://github.com/zhjohnchan/awesome-image-captioning .
  6. Приветствую. Задача пока теоретическая, без четкого понимания теории не вижу смысла в практике Допустим у нас есть абстрактная доска объявления (а-ля авито/юла). Каждый раздел имеет свои подразделы. Нейросеть выступает в роли кластеризатора, которая по фотографии определяет, что это за объект, переносит его в соответствующий раздел/подраздел. Далее начинает его изучать более досконально, перенося уже в более "узкие подразделы" и определять ключевые параметры. Грубо говоря: 1. Отправляю фотографию телефона, нейронка определяет, что это смартфон, переносит его в соответствующий раздел, а дальше пытается понять, что за производитель, модель, цвет и т.д. 2. Отправляю фото цветка, переносит в раздел растения, понимает, комнатное или нет, цвет бутонов. 3. Отправляю фото котэ, переносить в животные -> кошки, определяет породу и цвет окраса, и т.д. Объясните пожалуйста: 1. Как для такой глубокой кластеризации на старте обучать сеть. Начинать с верхнего уровня и углубляться все глубже и глубже или как ? 2. Нужно ли сразу дробление по цветам или для начала сеть должна понимать объект, а цвет определить не так уж и сложно ? 3. Все загружаемые фотографии могут расширять исходный датасет и участвовать параллельно в обучении сети или потребуется ее переобучать, когда наберется критическая масса новых изображений? Благодарю за ответы. Надеюсь мои вопросы не слишком дебильные )
  7. Ну там же стандартный текст, сравните со словариком и уберите )
  8. Здравствуйте! А как вам удалось выделить в паспорте ФИО? При этом не выделяя остальной не нужный текст?(3 картинка)
  9. Камеры Basler

    Кто-нибудь Basler или аналогами в последнее время закупался? Если да, то можно ссылку.
  10. Спасибо! Соберу тогда без CUDA.
  11. Спасибо Nuzhny, помогло. Лог приложил, как я понимая, не ошибаюсь, что всё нормально. OpenCV_make_LOG_1.txt
  12. В 2022 Студии могут быть проблемы, если ты используешь CUDA. Она поддерживает только CUDA 11.6
  13. Хз, попробуйте, отключить gapi. Я обычно собираю под студию, ставлю поддержку Qt и все норм. На днях планирую перестроить под 22 студию, заодно и проверю.
  14. Перед тем, как делать Configure в CMake отключи тесты и perf тесты
  15. Скачал последнюю версию, CMake настроил на mingw, работаю с Qt. Configure и Generate прошло без ошибок. А компиляция остановилась на 92 проценте. Лог в приложении. Как исправить эту ошибку? OpenCV_make_LOG.txt
  16. Стабилизация лицевых точек OpenCV

    Посмотрите еще TLD tracker, ну и https://github.com/Smorodov/Multitarget-tracker . LK tracker быстрый, но не самый надежный вариант. Я имею ввиду, комбинацию трекеров, простой и быстрый, для коротких треков, между вызовами сложных и точных, для захвата/восстановления трека. Это даст регулируесый уровень компромиса между надежностью и вычислительными затратами/плавностью трека. Кстати, я как то делал проект с BFM : https://github.com/Smorodov/nano_bfm И еще SMPL: https://github.com/Smorodov/nano_smpl
  17. Стабилизация лицевых точек OpenCV

    Отвечу на свой вопрос, может быть кому-то пригодится. Christoph Rackwitz дал мне хороший совет: Я изменил алгоритм. Когда угловые точки передаются алгоритму MOSSE, а не оптическому потоку то курсор ведет себя гораздо стабильнее. Возникла небольшая проблема с дискретным перемещением, поскольку рамки объектов перемещались одновременно на равное число пикселей. Поэтому и курсор двигался скачками. Поэтому пришлось устанавливать фильтр не на курсор, а на каждую точку. Но, как видно на видео, в итоге нагрузка на процессор не увеличилась. https://www.youtube.com/watch?v=WKwuas0GVkA 1. Lucas-Kanade optical flow: goodFeaturesToTrack(), cornerSubPix(), calcOpticalFlowPyrLK(), cursor EWMA filter 2. MOSSE object tracking: goodFeaturesToTrack(), cornerSubPix(), cv::legacy::TrackerMOSSE, all points EWMA filtration И, конечно, мне нужно было не забывать включить библиотеку tracking453.lib to Linker. Я потратил полдня, выясняя причину unresolved external symbol LNK2001 error при включении cv::legacy::Tracker. Почему то включение трекера из основной библиотеки (cv::Tracker) не приводило к этой ошибке компиляции, это сбивало с толку. Basel Face model, если получится, попробую для отслеживания мимики. Smorodov, спасибо что обратили внимание!
  18. Стабилизация лицевых точек OpenCV

    Здравствуйте, предварительныя обработка может убрать шум, если усрежнять кадры или делать морфологию, но, как вы заметили, это не сильно добавляет стабильности, за исключением некоторых редких случаев. Намного лучшие результаты дают фильтры по модели. Это предполагает, что лицо имеет меньше степеней свободы чем независимые точки в том количестве что выдает детектор. Если кратко то у точек 3*N степеней свободы, а у лица M + 6, где N - количество точек, M - количество независимых групп мышц. Соответственно, точки не могут гулять как попало, они должны принадлежать модели. Есть параметрические модели лиц, например Basel Face model одна из наиьолее популярных, она довольно тяжелая, но можно достать из нее только нужные точки. Дальше линейная оптимизация, поможет сопоставить 2D и 3D, найти поворот, масштаб, смещение и параметры формы. Вот тут посмотрите: https://github.com/3d-morphable-models/curated-list-of-awesome-3D-Morphable-Model-software-and-data
  19. Добрый день, Я сделал приложение на OpenCV + MFC для управления мышкой людьми с неврологическими нарушениям https://preability.com/face-controlled-mouse/ Человек сидит и двигает головой перед вебкой ноутбука, мышка двигается, он улыбается – происходит клик и пр. В целом, курсор удалось стабилизировать за счет отслеживания согласованного движения точек + EWMA фильтра (Калмана тяжелее и оказался не особо лучше). Разрежение угловых точек по всей площади тоже помогло немного. Но я вижу, что у похожей старой программы (eViacam) идет предварительная обработка изображения (с такими же древними внешними библиотеками для вебкамер). И за счет этого угловые точки стабильнее. Я включил equalizeHist() для ROI в области лица. В темноте детектор стал работать гораздо лучше. Но лицевые точки все равно пляшут при неровном освещении. Старая прога справлялась. Я абсолютно не в теме предварительной обработки и хочу понять, что можно сделать с видео на входе дектектора? Пробовал подключить морфологию openCV, но не особо улучшил, зато нагрузил процессор. А у многих людей ноуты на целеронах. Подскажите, пожалуйста, кто в теме, как улучшить видео для детектора??? Не обязательно библиотеки OpenCV, главное на лету и не слишком нагружая процессор...
  20. Камеры Basler

    Все так, пообщался уже с sensotek, но увы сроки поставки от них 26-28 недель, что крайне долго. Каких еще производителей можно рассмотреть взамен Basler usb 3.0 камер?
  21. Камеры Basler

    На официальном сайте говорится, что в России есть официальное представительство: sensotek
  22. Камеры Basler

    Доброго времени суток. Никак не могу найти поставщиков usb камер Basler. Ранее поставками занимались https://visionmachines.ru, но больше не поставляют. Прошу подсказать где можно заказать и приобрести Basler.
  23. Если шаблон в изображении встпечается всегда, то можно использовать https://www.ccoderun.ca/programming/doxygen/opencv/group__imgproc__object.html#ga586ebfb0a7fb604b35a23d85391329be . Функция matchTemplate поможет найти положение шаблона, но это не детектор, который скажет о наличии или отсутствии его на изображении. Если нужен детектор, то надо обучить его на ваш объект. Погуглите OpenCV objtct detector.
  24. всем привет. я не давно начал изучать opencv, версия 4.5.3 потихоньку изучаю документацию прошу помочь и написать названия функций и методов, в какую сторону гуглить для моей задачи: есть картинка 250х250 пикселей и есть картинка 8х8 пикселей мне нужно найти есть ли маленькая картинка на большой? я написал функции по преобразованию искомой картинки в ч\б и для их сравнения высчитываю хэш. как искать теперь эту картинку на большой? нужно объявлять ROI 8х8 пикселей в начальной точке координат Х,У, преобразовывать в ч\б, считать хэш и сравнивать? Если не найдено, сдвигать на 1 пиксель в бок и сравнивать опять? И так пока не пройду всю картинку 250х250? как ROI (это же cv::Rect?) преобразовать к cv::Mat? может есть какие-то примеры?
  25. в общем. это не задача для гана. решилось все обычным автоэнкодером. пока только в 2D по одному признаку выравнил. для кодера хватило 3 слоя свертки с макспулингом, батч норм и нелинейностью. декодер в обратной последовательности. вместо макспулинга - апсемплинг. теперь в 3D делаю. и по нескольким признакам.
  26. OpenCV 4.5.3 c поддержкой freetype

    Посмотрите тут: Конечно это не встраивание, но может это и лучше ) Ну а если более гибкий интерфейс нужен посмотрите в сторону ImGui или Qt шаблон для Imgui + opencv можно взять здесь: https://github.com/Smorodov/imgui_opencv_template русский язык и ttf шрифты поддерживаются.
  27. Доброго времени суток уважаемые форумчане! Бьюсь над проблемой уже 3-и сутки и не могу собрать OpenCV через CMake c поддержкой freetype. Исходники opencv и contrib скачаны с офф ветки (релиз 4.5.3) все распаковано как надо в extra_modules_pass подключены contrib., собираю статику., но проблема в том что в отличие от остальных модулей freetype просто не собирается (отсутствует в папке opencv2 includes и соответственно в libs его тоже нет). Перерыл интернет., понимаю что нужно при сборке CMake как то подключить зависимости: harfbuzz и freetype., а может и не нужно??? Очень хочется русский язык в видеопоток., помогите плиз разобраться что куда... Здесь вывод симэйка (во вложении) cmakeout.txt
  1. Load more activity
×