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

Вся активность

Этот поток обновляется автоматически     

  1. Последняя неделя
  2. Лучи солнца, засветка

    Сталкивался, в основном решил "гистограммами", нашел усредненные значения яркости и насыщенности и "выравнивал" картинку
  3. Dasha92 https://github.com/MimusTriurus/QtVideoStreamer Стриминг видео средствами OpenCv. Есть русcкое readme c описанием порядка сборки. Есть пример клиента и сервера. Работает на Windows, Linux
  4. Лучи солнца, засветка

    Добрый день. Кто-нибудь сталкивался ли с проблемой по засветке или лучам солнца на камере в солнечный день? по форуму ничего не нашел по запросу (быть может я неверно искала конечно). Хотелось бы если сталкивались, то какие пути решения нашли? Спасибо заранее!
  5. Пусть программа и исполтзует OpenCV, не вижу никаких проблем. Ты же не будешь использовать OpenCV для работы с базами данных.
  6. Все бы ничего, но моя программа использует OpenCV, без неё никак. Были мысли, может как-то можно реализовать на Си или Си++ какой-то стрим, который потом инклудом будет в главном файле с OpenCV вызываться. Даже не знаю в какую сторону копать или где примеры какие можно найти
  7. Я бы не заморачивался и сделал всё на ffmpeg (на С разумеется). OpenCV вообще никак не приспособлен для этого.
  8. Всем привет! Подскажите пожалуйста, в данный момент при помощи OpenCV я получаю видео с камеры(код на си), как я могу сделать на СИ клиент сервер с целью передать на какой-то другой компьютер получаемый видеопоток. Заранее спасибо за Ваши ответы!
  9. Ранее
  10. Недавно где-то читал, что на UNet очень плохо заходит multi-class (плюс дисбаланс классов). Лучше использовать UNet только для бинарной.
  11. У меня всё получилось! Почти год прошел. Что я только не пробовал, к кому только не обращался за помощью...а в итоге сделал сам.
  12. Работа с камерами

    Я уже несколько лет не занимался всем этим видеозахватом. Но сегодня увидел предложение отключить в OpenCV поддержку vfw и DirectShow как устаревшие технологии. Поэтому я бы не стал доверять OpenCV в таком вопросе. Я не о том, что они что-то неправильно делают, технологии и правда очень старые, им десятилетия. Но если захват видео с требуемой скоростью - это критическая задача, то лучше делать всё самому на требуемом API, а не полагаться на стороннего разработчика, который в угоду стройности идей своей библиотеки может либо замедлить, либо отключить что-то важное. Всё таки в OpenCV видеозахват - это не главное. Важно только, чтобы он был.
  13. Работа с камерами

    Во второй версии opencv просто нет команды чтобы задать формат видео usb видеокамере, там есть файлик в сорцах cap_dshow.cpp и там есть приоритет и первый понимаемый камерой формат работает, а в моем случае это YUY2, а не MJPG. Поэтому нужно исправить и сбилдить заново opencv, только я пока не могу разобраться в обилие галочек в cmake
  14. Работа с камерами

    Спасибо, установил, я так понимаю там в "connect to running" должны появится варианты, opencv приложение и скайп не видит, что-то не так делаю?
  15. Работа с камерами

    Можешь это попробовать: http://www.infognition.com/GraphEditPlus/
  16. Работа с камерами

    По поводу объемов данных. Объем не более 480 мбит/c, потому что подключение Usb 2.0, я запускал вашу программу cameracontrol, она дает такие данные: Размер: x=640 y=360 FPS: 330 битрейт: 1 824 768 000 бит/пиксель:24 И еще пока только одна камера подключена, а использовать две буду, а в боевой версии возможно переход будет на usb 3.0 и большее разрешение, fps, тоесть до 5 ГБ/сек. GraphEdit идет с sdk, а sdk с visalstudio? пока не понял как установить, по идее он уже должен быть, он есть в бесплатной версии visualstudio?
  17. Работа с камерами

    Думаю, что для получения такого высокого fps всё равно прийдётся разбираться с захватом видео на низком уровне. Почему DirectShow может тормозить? Потому что там может стоять не только Frame grabber, но и несколько других фильтров, которые в обычных условиях практически не дают дополнительной нагрузки, немного улучшая качество видео. А это дополнительные копирования памяти. Какое разрешение видео? Если FullHD, то при 330 fps и кадре RGB мы получим поток: 3 байт/пиксель * 1920 * 1080 * 330 = 2 Гбайта/сек. Многовато? Да. С такими объёмами надо минимизировать количество копирований и выделения памяти любыми способами. Чем декодируется видео? Аппаратным декодером или программным? Надо убедиться, что аппаратным. Почему древний vfw может быть быстрее DirectShow? Потому что он ничего не умеет, кроме самых базовых вещей, вот и работает быстрее. Копирует ли OpenCV внутри себя память, когда он выдаёт наружу cv::Mat? Да, копирует, а это лишнее. Поможет ли Линукс и/или более мощный комп? Может помочь, а может и нет, зависит от причины тормозов. Я бы всё таки начал с GraphEdit и посмотрел на результат.
  18. Работа с камерами

    Спасибо большое за ответ, в боевой версии нужна только логика, вывод не важен, потому что нужен, если только для себя визуализировать. Как думаете, на более мощном компьютере или линукс может вырасти фпс? Или для этого все равно придется
  19. Работа с камерами

    Я так понимаю, что тут 2 вопроса: почему не 330 захватывается и почему только 60 выводится. Захват осуществляется не самой OpenCV, который выступает исключительно в виде фронтэнда в этом случае, а с помощью одного из используемых бэкэндов. Надо узнать, что это за бэкэнд! Думаю, что для web-камер под Windows используется DirectShow или vfw. Классический VirtualDub использует vfw, скорее всего OpenCV 2 также. Отсюда и высокий fps. Предположу, что OpenCV 3 использует уже DirectShow, поэтому получается медленнее. Можно взять VirtualDub DirectShow mod, лучше просто GraphEdit и проверить что да как. В GraphEdit можно и подобрать правильные фильтры/муксеры/декодеры для получения максимального fps. Посмотреть в стороны DXVA2. Ну и узнать в конце-концов, чем декодирует OpenCV и где тормоза с помощью профайлера. Всё таки библиотека опенсорсная, надо пользоваться этим.
  20. Работа с камерами

    Здравствуйте! Проблема с фпс, кто сталкивался? Я новичок пока что в деле компьютерного видения. Есть камеры usb 2.0, которые дают 330 фпс, virtualdub подтверждает, но в opencv выжать больше 192 не получилось на 2ой версии, а на 3 даже 90 еле еле, нагрузка на процессор 50%, что может быть? Гуглил, французы пришли к выводу, что на 3 версии не mjpeg захватывается, поэтому. Но на 2ой пишут, что должны 330. Если выводить на экран, то 60 фпс, система Windows 10, ide visual studio 15
  21. Это зря, завидовать тут нечему. Я, например, одну из своих задач уже как год решаю, и всё безуспешно. Сперва пробовал пакетом OpenCV, потом ML(классификаторы разные) + OpenCV. И только теперь DL. Ну и есть четкое деление ML и CV. Это две разные области наук. Они конечно частично пересекаются, но крайне незначительно. CV нужна для поиска признаков (сегменты, цвета сегментов, линии, да всё что угодно). В ML по этим признакам можно обучить модель, которая и будет "искать" трещины и царапины. Есть еще DL, но там вообще всё сложно. За пару дней вашу задачу вряд ли кто решит. За месяц, имея большой датасет с картинками, может быть. Если хотите решать самостоятельно, то это очень надолго. Изучить Python, пройти пару курсов по ML, посмотреть примеры работ по CV. А если не взлетит, то смотреть в сторону DL. Как-то так... Естественно, ИМХО. Возможно у знатоков будет другое мнение.
  22. Вы правы. Много того, о чём здесь писали знающие люди, я не понял) Т.к. в компьютерном зрении я тотал новичок. Прям совсем никогда и ни разу не сталкивался с этим. Это всё выливается, пока что, в мою мини-научную работу, так скажем. Сроки поджимают уже, поэтому я хотел в самом что ни на есть простейшем виде реализовать хотя бы поиск трещин. Для этого я попробую изучить фильтр, который вы мне посоветовали. На сегодняшний момент удалось в довольно-таки сыром виде реализовать проверку на геометрическую форму, измерение геометрических размеров, нахождение углов. Я прям завидую вашим познаниям в ML Обладая такими же знаниями, я бы, наверное, за пару дней написал прогу требуемую
  23. Реализован. Но это не панацея. Фильтрами можно будет уловить большие трещины под углами (это быстро, просто и мало кода). С пятнами уже тяжелее будет. И совсем невозможно будет уловить отбитые куски на краях плитки. Поэтому просто фильтров недостаточно. Действительно, одним из простых способов решения подобных задач является создание классификатора. Но, как мне кажется, с подобными терминами вы еще не знакомы. Только на обучение ML в среднем уходит от 3 месяцев. Плюс поиск признаков для классификатора: цвет, тон, насыщенность, а может средний тон сегмента, а может кластеризацией можно что-то сегментировать и т.д. В общем, это всё выльется в месяцы работы, если самому впервые разбираться (это я по своему горькому опыту). И самое печальное здесь, не факт, что заработает на должном уровне. Такой он, machine learning. Это своего рода искусство.
  24. Кстати, а зачем? Нейросетка и так съесть картинку без всех этих телодвижений. См. пример U-Net сетей. Например Carvana на Kaggle. Другое дело с разметкой -- это на месяцы
  25. Главная сложность(зависит от фото) это детектирование ректа плитки, потом разворот, кроп. Любой бинарный классификатор который отвечает на да\нет например linear SVM, любые фичи color hist например и т.д. или сразу пихать в CNN кроп. Для классификатора сложность так же может представлять если кол-во битых плиток очень маленькое (несбалансированная выборка).
  26. LexaP, спасибо за совет. idrua, меня заинтересовал ваш второй способ) Попробую изучить данный фильтр. Надо глянуть реализован ли он на OpenCV, что-то не встречал такой. mrgloom, область по какому критерию искать? И в какой классификатор вставить потом? В какой-то сторонний, который раскидывает дефект на вид дефекта (скол, трещина, царапина и т.д.)? Я понимаю, что трудно предложить решение задачи, не имея при этом примерной картинки. Но дело в том, что я сам не знаю какого рода картинка должна быть. Мне чисто на словах описали суть проблемы (мол, нужно определять дефектованные плитки на их производстве). Вот я и стараюсь максимально нарыть информации по решению данного вопроса и попробовать хотя бы какой-нибудь макет накидать программы. Пусть он даже в реальности пока что не будет 10 из 10 дефектов ловить и идентифицировать. Хоть что-то. Пусть какой-то дефект не сильно заметный пропустит (не спалит), а другой более явный (внешне) заметит. p.s. определять какой конкретно дефект присутствует не требуется, нужно просто забраковать плитку, если нашёлся хоть какой-нибудь дефект (ну естественно ввести какие-то допустимые рамки + реализовать так, чтоб он случайный переход цвета не принимал за дефект)
  1. Загрузить больше активности
×