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

Smorodov

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

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

  • Посещение

  • Days Won

    346

Сообщения, опубликованные пользователем Smorodov


  1. pch это precompiled headers , заголовки импользуемые для ускорения компиляции, их использование можно отключать. Я не ставлю обычно openCV из бинарников, а собираю из исходников, так надежнее и настроить можно как надо, плюс примеры тоже собрать можно. Ни разу не подводило. Ну и на рабочем столе держать, лучще не надо, там структура директорий довольно глубокая и с пробелами, плюс русские буквы. Сделайте путь попроще, желательно без пробелов и латиноцей, предупредите потенциальные проблемы в будущем.


  2. Привет!

    Отмасштабировать в видимый спектр, и отрисовать, преобразовав в RGB, например как здесь:
    https://gist.github.com/friendly/67a7df339aa999e2bcfcfec88311abfc
    Ну или напрямую, через 
    https://docs.opencv.org/4.x/d3/d50/group__imgproc__colormap.html
    Нормировав к диапазону 0-255.

    • Thanks 1

  3. Здравствуйте, вам нужны не нейронки а вероятностные графовые модели (PGM), посмотрите редактор который я прикрепил для примера:  
     samiam30_windows_amd64.zip   Их как раз используют для вывода вероятностей по заданным факторам, причем эта штука обучаемая по данным.samiam30_windows_amd64.zip
    На coursera есть курс Probabilistic graphical models, там как раз на этой софтинке упражнения были, правда я проходил его давно, может что то поменялось.


  4. Интересная тема, но юридически неоднозначная. Кстати из видео прото нарезался датасет. Затем училась сеть, прогонялась по видео, вырезались ошибочные срабатывания,  добавлялись в датасет и все по новой. 
    А с психическими отклонениями думаю без динамики сложно будет точность приемлемую получить. 
    Хотя, обратите внимание на морщины, они должны отражать статистику движений. 


  5. Но даже простая нейронка, типа LeNet, по ощущениям работает лучше. Правда данных много надо было, я 5 териков видео скормил, работало очень четко, эмоции пропорионально выводило, даже с самых слабых. Вход был всего 64х64, в серых тонах, работало в реалтайме на мобиле. Видел на гитхабе подобные. 
    FACS все теки на человека больше расчитана, как можно сократили количество признаков для удобства использования.

     


  6. Ну так если проверять, то должны быть известны эталонные контуры. Вот находите в базе эталонов тот, с которым в данный момент работаете и сравнивайте с ним по ключевым точкам. Простейший метод скавнения контуров - по моментам контура. Выровняйте оси и центры, и найдите точки на контуре, ближайшие к точкам на эталоне. 


  7. Всегда ли одинаковая форма детали? Если да, то упростите контур, найдите какую то начальную точку, отсчитайте от нее нужные отрезки и будут вам координаты.
    По поводу упрощения контуров: https://pyimagesearch.com/2021/10/06/opencv-contour-approximation/


  8. Так в программе, которую Вы приводите выше, координаты прямоугольника, ограничивающего контур, x,y - это верзнй левый угол, w, h - ширина и вытота.

    Центр - x+w/2, y+h/2

    Как выводить текст, см. пример по ссылке в моем предыдущем ответе.

    Русские буквы стандартный cv2.outText не выведет, используйте латиницу.

    • Thanks 1

  9. А зачем карту глубины? Если надо найти координату на дороге, или скорость, то дорога плоская, координата и направление камеры известны. Точнее получится просто использовать 2D рамку. 3D генерируемые координаты, от монокулярных сеток, весьма приблизительные, вычисления тяжелые. Ну если очень надо, можно использовать 3D на основе оптического потока, думаю оно точнее будет.  Ну если очень-очень хочется нейронкой, просто вычисляйте скользящее среднее по кадрам глубины, и используйте его, там конечно нужна будет коррекция с учетом скорости удаления/приближения, но это вроде должно аналитически выводиться аналитически.  


  10. Да возьмите или все координаты пикселей дуги, или каждую N-нную, или точки, и прогоните рансаком https://github.com/aerolalit/RANSAC-Algorithm , или скелетизируйие,  например так:  https://github.com/LingDong-/skeleton-tracing  или https://stackoverflow.com/questions/22058485/how-to-implement-an-function-equivalent-to-bwmorph-matlab-function-in-opencv/22060992#22060992

    MSE более чувствителен к шуму и равномерности плотности семплирования точек, чем рансак, но если данные чистые, то большой разницы не будет. Но чистые данные, это обычно большая редкость )


  11. Если точки знаем точно, окружность определяется тремя точками. Центр можно найти пересечением нормалей, радиус - расстояние от центра до любой точки.
    Есть много кода по этому поводу. 


    Если координаты с шумом, или точность хромает, то 
    есть метод RANSAC который использует статистические методы для улучшения точности. 

    https://sdg002.github.io/ransac-circle/index.html


  12. А, кстати, вы точно распознавание делаете, или детектирование? Вопрос не прпздный, их частенько путают.
     Если распознавание, то какая сеть ? У меня на gtx 1070 распознающая сеть, требовала 0.3 секунды на 1 лицо, база содержала около 6000 фоток, точность 99.6%.
    Сеть занимала 600 Мб.
    Но если база только "папа, мама, я" то можно и что-то сильно попроще и побыстрее использовать.


  13. Ну все зависит от параметров, (разрешение, что за модель сети, требуемая частота кадров, и т.д.) . С K20 подробно не знаком, вроде старовата архитекрура. Может новую, какую нибудь типа 3080 или 2080 взять? Хоть не уработанная криптой будет.  Сравнения быстродействия, на сайте нвидии есть.

    https://versus.com/ru/nvidia-geforce-rtx-3080-vs-nvidia-tesla-k20#group_performance

    Вообше, 20xx или 30xx должно хватить для большинства задач. 4 потока, правда лучше как-то предобрабатывать оддельно (дешифровать, может разрешение уменьшать ).  Но можно несколько если что поставить в параллель ).
    Но параметры условий работы неплохо-бы привести, а то " сферический хомячек в вакууме" получается.


  14. Да Nuzhny, в общем, правильно советует. Люди, не зная вас, как будут получать первое впечатление о вас? Ведь вначале они видят сайт. Лучше закончить с оформлением и отладкой витрины вначале. Это произведет впечатление о вас как о серьезной группе. И контракты будут дороже ) 
    Взгляд со стороны полезная штука. 
    Удача!


  15. Дело хорошее, но может попробовать вначале на сайте фриланса вначале заработать репутацию? Там есть группы разработчиков. 
    Мне начали писать рекрутеры всех мастей когда рейтинг на stack overflow начал быстро расти. Еще можно поучаствовать в соревнованиях по теме, например на Kaggle (там кстати и курсы дельные), ну и репа на гитхабе не помешает. Заработать имя не очень быстрое дело. Удачи! )

    PS: Касперыч на ваш сайт ругается.
     

    Остановлен переход на недоверенный сайт

    Один или более сертификатов этого сайта недействительны, и мы не можем гарантировать его подлинность. Такое бывает, когда владелец сайта вовремя не обновил сертификат или когда сайт поддельный. Посещение таких сайтов делает вас более уязвимыми для атак.

    "Лаборатория Касперского" защитила вас от перехода на этот сайт. Можете закрыть его без риска.

    Скрыть детали

    Обнаружено: 22.06.2022 14:19:13

    Веб-адрес: powerok.site

    Причина: Самоподписанный сертификат


  16. Не совсем так, yolo - это детектор для которого уже есть предобученные модели на десятки классов (coco >80,voc pascal 20 классов ), которых может вам будет и дестаточно.

    Он выдает рамку + индекс класса. Если не найдете все что нужно, надо учить, но это обучение не потребует учить с нуля, часть слоев будет "заморожена", а учатся толко несколько последних слоев. 

    Пример обучения на своих данных : https://github.com/AntonMu/TrainYourOwnYOLO

    Это не требует очень много данных.

    Датасеты лучше не смешивать как попало, они обычно специально готовятся.

    Когда сеть нашла собаку, она может, например, узнать породу, запустив специально обученную сеть. 

    https://github.com/ShihanUTSA/Dog-breed-classifier--Convolutional-Neural-Network


  17. Все правильно, лучше по иерархии - от общего к частному.

    Вначале детектор-классификатор, типа YOLO v3 (4, 5), обученный на датасете типа COCO . 

    А дальше специализированные классификаторы по подклассам. Их придется учтить на своих данных.

    Доучивать на расширенном датасете (после добавления данных) можно, но имеет смысл когда собралось достаточно много данных.

    Классификация цвета не такой тривиальный вопрос как может показаться.

    Еще в помощь NLP например : https://github.com/natasha/natasha

    Может быть еще captioning networks пригодятся https://github.com/zhjohnchan/awesome-image-captioning .

     

×