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

Читать полностью »
Рубрика «image processing» - 2
Пицца аля-semi-supervised
2018-09-13 в 11:05, admin, рубрики: computer vision, DBrain, deep learning, image processing, kaggle, pizza, python, segmentation, Блог компании Open Data Science, машинное обучение, обработка изображенийkaggle: IEEE’s Camera Model Identification
2018-07-05 в 11:05, admin, рубрики: computer science, computer vision, image processing, kaggle, python, Блог компании Open Data Science, машинное обучение, обработка изображений, управление разработкойВ конце зимы этого года прошло соревнование IEEE's Signal Processing Society — Camera Model Identification. Я участвовал в этом командном соревновании в качестве ментора. Об альтернативном способе формирования команды, решении и втором этапе под катом

Читать полностью »
Автоматическая векторизация спутниковых снимков: одна модель — два первых места
2018-03-22 в 11:00, admin, рубрики: deep learning, image processing, kaggle, neural networks, python, satellite imaging, segmentation, Topcoder, Алгоритмы, Блог компании Open Data Science, машинное обучение, обработка изображений
Всем привет!
В данной статье хочу поделиться с вами историей о том, как одна и та же архитектура модели принесла сразу две победы в соревновательном машинном обучении на платформе topcoder с интервалом месяц.
Речь пойдёт о следующих соревнованиях:
- Urban 3d mapper — поиск домиков на спутниковых снимках. Соревнование длилось 2 месяца, было 54 участников и пять призовых мест.
- Spacenet: road detection challenge — поиск графа дорог. На решение также давалось 2 месяца, включало 33 участника и пять призовых позиций.
В статье рассказывается об общих подходах к решению таких задач и особенностях реализации для конкретных конкурсов.
Для комфортного чтения статьи желательно обладать базовыми знаниями о свёрточных нейронных сетях и их обучении.
Оптимизация изображений для web
2018-03-17 в 9:08, admin, рубрики: C, Go, golang, image processing, libvips, linux, Mozjpeg, open source, pngquant, высокая производительность, обработка изображений
В интернете достаточно статей и проектов для ресайза изображений. Почему же нужна еще одна? В этой статье я расскажу почему нас не удовлетворили текущие решения и пришлось пилить собственное.
Читать полностью »
Детектирование и отслеживание множественных объектов в видеопотоке на FPGA
2017-04-23 в 21:14, admin, рубрики: fpga, image processing, video streaming, Алгоритмы, обработка изображений, программирование микроконтроллеров
В этой статье я хочу рассказать о реализации системы обнаружения и отслеживания множественных объектов в видеопотоке. Данная статья базируется на двух предыдущих: Детектирование движения в видеопотоке на FPGA и Фильтрация изображения методом математической морфологии на FPGA. Захват и первичная обработка изображения осуществляется при помощи методов, описанных в первой статье, а фильтрация изображения описана во второй.
Следуя целям, поставленным в первой статье, я решил реализовать алгоритм отрисовки рамки вокруг обнаруженного объекта. В процессе выполнения этой задачи, я столкнулся с вопросом: а вокруг какого именно объекта надо рисовать рамку? Объектов, попавших в кадр после фильтрации, может оказаться множество: одни из них маленькие, а другие большие. Если рисовать одну рамку вокруг всех объектов, попавших в кадр, то это делается не сложно, но результат работы такой системы вряд ли кому будет интересен.
Читать полностью »
Вращение изображения на FPGA
2017-03-30 в 14:57, admin, рубрики: fpga, image processing, video captute, Алгоритмы, обработка изображений, программирование микроконтроллеров
Пол года назад я наткнулся в сети вот на это видео.
Первой мыслью было то, что это очень круто и у меня такое никогда не получится повторить. Шло время, читались статьи, изучались методы и я искал примеры реализации подобного, но к моему огорчению, в сети ничего конкретного не находилось. Наткнувшись однажды на вычисления тригонометрических функций с использованием алгоритмов CORDIC, я решил попробовать создать свою собственную вращалку изображения на ПЛИС.
Читать полностью »
Изменение размера изображения с учётом содержимого
2017-03-18 в 21:31, admin, рубрики: image processing, image resize, liquid resize, Rust, seam carving, Алгоритмы, изображения, масштабирование, обработка изображений, ПрограммированиеИзменение размера изображения с учётом содержимого (Content Aware Image Resize), жидкое растяжение (liquid resizing), ретаргетинг (retargeting) или вырезание шва (seam carving) относятся к методу изменения размера изображения, где можно вставлять или удалять швы, или наименее важные пути, для уменьшения или наращивания изображения. Об этой идее я узнал из ролика на YouTube, от Shai Avidan и Ariel Shamir.
В этой статье будет рассмотрена простая пробная реализация идеи изменения размера изображения с учётом содержимого, естественно на языке Rust :)
Для подопытной картинки, я поискал по запросу1 "sample image", и нашел её2:
Pix2Pix: Как работает генератор кошечек
2017-03-07 в 3:32, admin, рубрики: deep learning, image processing, машинное обучение, обработка изображенийВы все, наверное, уже видели сверх-реалистичных кошечек, которых можно рисовать вот тут:
https://affinelayer.com/pixsrv/

Давайте разбираться, что же там внутре.
Pillow-SIMD
2016-05-24 в 10:00, admin, рубрики: AVX2, gaussian blur, image processing, image resize, imagemagick, pillow, pillow-simd, python, simd, SSE4, высокая производительность, обработка изображенийУскорение операций в 2.5 раза по сравнению с Pillow и в 10 по сравнению с ImageMagick

Pillow-SIMD — это «форк-последователь» библиотеки работы с изображениями Pillow (которая сама является форком библиотеки PIL, ныне покойной). «Последователь» означает, что проект не становится самостоятельным, а будет обновляться вместе с Pillow и иметь ту же нумерацию версий, только с суффиксом. Я надеюсь более-менее оперативно выпускать версии Pillow-SIMD сразу после выхода версий Pillow.
Почему SIMD
Есть несколько способов улучшения производительности обработки изображений (да и всех остальных вещей, наверное, тоже).
- Можно использовать более хорошие алгоритмы, которые дают такой же результат.
- Можно сделать более быструю реализацию существующего алгоритма.
- Можно подключить больше вычислительных ресурсов для решения той же задачи: дополнительные ядра CPU, GPU.
Сжатие и передача потокового видео по TCP с помощью OpenCV
2016-05-17 в 11:11, admin, рубрики: c++, image processing, opencv, обработка изображений, С++, Сетевые технологииПо работе я занимаюсь разработкой алгоритмов обработки изображений и в частности алгоритмами автоматического слежения за объектами на видео для специального применения. Недавно понадобилось сделать модель алгоритма, управляемую с удаленного компьютера для отладки логики работы в сложной системе. Раньше такая задача не стояла, т.к. все алгоритмы реализовывались в итоге на FPGA. Давно работаю с OpenCV и, потерев руки, подошел к написанию программы. Но энтузиазм быстро погас, когда столкнулся непосредственно с передачей видео по сети.
Задача заключалась в следующем:
1. Написать программу сервер, которая загружает видео из файла, сжимает в JPEG и передает по протоколу TCP программе клиенту.
2. Написать программу клиент, которая принимает видео по TCP, декодирует и отображает.
Читать полностью »

