Pull to refresh
1
@tron_lineread⁠-⁠only

User

Send message

Основы TCP/IP для будущих дилетантов

Reading time11 min
Views489K
Предположим, что вы плохо владеете сетевыми технологиями, и даже не знаете элементарных основ. Но вам поставили задачу: в быстрые сроки построить информационную сеть на небольшом предприятии. У вас нет ни времени, ни желания изучать толстые талмуды по проектированию сетей, инструкции по использованию сетевого оборудования и вникать в сетевую безопасность. И, главное, в дальнейшем у вас нет никакого желания становиться профессионалом в этой области. Тогда эта статья для вас.

Читать дальше →

Железные хирурги: прошлое, настоящее и будущее медицинских роботов

Reading time28 min
Views30K


Считается, что роботы-хирурги — технология будущего, но они принципиально не менялись вот уже 20 лет. Некоторые врачи считают роботов-хирургов ненужной тратой денег, в то время как другие — в восторге от открывающихся возможностей.


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

Читать дальше →

Реализация асинхронной защищенной системы связи на основе TCP сокетов и центрального OpenVPN сервера

Reading time13 min
Views2.4K
В этой статье я хочу рассказать, о моей реализации мессенджера с двойным шифрованием сообщений на основе tcp сокетов, OpenVPN сервера, PowerDNS сервера.
Суть задачи — обеспечить обмен сообщениями через интернет минуя NAT между клиентами на различных платформах (IOS, Android, Windows, Linux). Также необходимо обеспечить безопасность передаваемых данных.
Читать дальше →

Основы компьютерных сетей. Тема №1. Основные сетевые термины и сетевые модели

Reading time14 min
Views1.6M
Всем привет. На днях возникла идея написать статьи про основы компьютерных сетей, разобрать работу самых важных протоколов и как строятся сети простым языком. Заинтересовавшихся приглашаю под кат.


Читать дальше →

Кроссплатформенный многопоточный TCP/IP сервер на C++

Reading time16 min
Views105K

Решил задаться целью написать простой в использовании и при этом быстрый многопоточного TCP/IP сервера на C++ и при этом кроссплатформенный — как минимум чтобы работал на платформах Windows и Linux без требования как-либо изменять код за пределами самописной библиотеки. Ранее, на чистом C++ без библиотек вроде Qt, сетевым программировнием не занимался, и предвещал себе долгое время мучений с платформо-зависимостью. Но как оказалось всё гораздо проще чем казалось на первый взгляд, ведь в основном интерфейсы сокетов обоих систем похожи как две капли воды и различаются лишь в мелких деталях.

Читать дальше →

Тестирование BMС: поговорим о нагрузочном тестировании

Level of difficultyMedium
Reading time7 min
Views2.3K

Хабр, привет! Мы в компании Аквариус стремимся к тому, чтобы тестирование проходило без активного участия человека. Поэтому, продолжая предыдущую нашу статью про автоматизированное тестирование BMC: Тестирование BMC: Автоматизировать! Нельзя все руками, я расскажу про универсальное решение, которое мы создаем для получения показателей производительности BMC. Зачем это нужно и как мы пытаемся применять накопленный опыт в других направлениях, например при тестировании производительности нового для компании направления — СХД (Система Хранения Данных).

Читать далее

Кроссплатформенные приложения на Python с Flet и FastAPI: Полное руководство по разработке

Reading time39 min
Views33K

Сегодня я покажу вам, что для создания полноценных кроссплатформенных приложений достаточно одного языка — Python. С помощью всего нескольких библиотек и фреймворков можно легко обойтись без JavaScript для веб-разработки, без Kotlin и Swift для мобильных приложений и даже без C++ для десктопных программ. В этой статье разберем, как, используя Flet и FastAPI, можно создавать мощные и удобные решения для любой платформы!

Читать далее

Распознавание мяча в волейболе с OpenCV и Tensorflow

Reading time4 min
Views7.4K
После первого опыта распознавания спортивных движений у меня зачесались руки сделать что-нибудь еще в этом направлении. Домашняя физкультура уже казалась слишком мелкой целью, так что я замахнулся на игровые виды спорта.

Применение искусственного интеллекта к спорту — недавняя тенденция, но уже есть интересные материалы:


Лично мне ближе всего волейбольная тема. По ссылке выше находится сайт одного австрийского института, где занимаются разбором игры местной любительской лиги. Есть несколько документов на почитать, но что более важно — опубликован видео-датасет, который можно свободно использовать.

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

Детектор приседаний на OpenCV и Tensorflow

Reading time5 min
Views11K
В эпоху заточения хорошо заниматься физкультурой, но вот беда — не все домашние с этим согласны, так что приходилось прикладывать некоторые усилия. Работать надзирателем однако хотелось не очень, потому как надо было собственно работать, а пущеный на самотек спортивный процесс, наблюдаемый в лучшем случае одним глазом, заимел тенденцию скатываться в халяву.

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

Начать было решено с приседаний. Фундаментальное движение, с явными состояниями, большой амплитудой, в общем, идеальный выбор.
Читать дальше →

Tutorial к автоматизации разметки изображений с использованием OpenCV Python

Reading time17 min
Views14K

Разметка- самая важная часть проекта глубокого обучения. Это решающий фактор того, насколько хорошо модель обучится. Однако это очень утомительно и отнимает много времени. Одним из решений является использование автоматизированного инструмента разметки изображений, который значительно сокращает время.

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

Читать далее

Бот для аркады. Часть №2: подключаем OpenCV

Reading time12 min
Views42K

Введение

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

Для обработки изображений возьмем широкораспространенную библиотеку OpenCV. Она неродная (unmanaged) для .net, поэтому подключим ее через wrapper OpenCvSharp.

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


Затрагиваемые темы: выбор библиотеки для обработки изображений, выбор wrapper-а для работы с OpenCV, основные функции OpenCV, выделение движущихся объектов, цветовая модель HSV.


Читать дальше →

Компьютерное зрение на С++: подключаем ML-библиотеки и обрабатываем результаты поиска объектов

Reading time25 min
Views8.5K

Привет, Хабр! Меня зовут Кирилл Колодяжный, я разрабатываю системы хранения данных в YADRO и изучаю нестандартные подходы к машинному обучению: создаю ML-проекты на С++. 

Это вторая часть цикла о разработке приложения для обнаружения предметов на С++. В прошлом материале мы выяснили, как создать проект в IDE Android Studio, реализовать сессию непрерывного захвата и преобразовать изображение в матрицу OpenCV. Ссылку вы найдете в конце статьи.

В этой статье продолжим реализацию проекта и обсудим следующие шаги:

• Как подключить к проекту библиотеки машинного обучения PyTorch и NCNN.

• Как получить модели YOLOv5 и YOLOv4 для использования на мобильном устройстве.

• Как реализовать инференс моделей для обнаружения объектов.

• Как обработать результаты работы моделей YOLO, реализовав алгоритмы Non-Maximum-Suppression и Intersection-Over-Union.

В конце сравним производительность PyTorch и NCNN и решим, какой фреймворк подойдет для задачи лучше.

Читать далее

Создаём сортировщик деталей Lego Technic, распознающий объекты в реальном времени

Level of difficultyMedium
Reading time8 min
Views5.8K

Когда я проходил стажировку в Nullspace Robotics, мне повезло участвовать в проекте, нацеленном на расширение возможностей компании. Мы совместили системы обнаружения объектов и распознавания изображений для создания модели, классифицирующей детали конструктора Lego Technic в реальном времени.

В этой статье я расскажу о том, с какими сложностями столкнулся наш проект, и как мы довели его до успешного завершения.
Читать дальше →

Новая CMOS-матрица расширяет возможности съемки движущихся объектов

Reading time5 min
Views6.6K
Это перевод-адаптация статьи, опубликованной инженерами Canon в японском журнале по прикладной физике Japanese Journal of Applied Physic.

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

image

Чтобы понять суть возникших затруднений, нужно разобрать принцип работы светочувствительных матриц.
Читать дальше →

Сжатие и передача потокового видео по TCP с помощью OpenCV

Reading time3 min
Views16K
По работе я занимаюсь разработкой алгоритмов обработки изображений и в частности алгоритмами автоматического слежения за объектами на видео для специального применения. Недавно понадобилось сделать модель алгоритма, управляемую с удаленного компьютера для отладки логики работы в сложной системе. Раньше такая задача не стояла, т.к. все алгоритмы реализовывались в итоге на FPGA. Давно работаю с OpenCV и, потерев руки, подошел к написанию программы. Но энтузиазм быстро погас, когда столкнулся непосредственно с передачей видео по сети.

Задача заключалась в следующем:

1. Написать программу сервер, которая загружает видео из файла, сжимает в JPEG и передает по протоколу TCP программе клиенту.
2. Написать программу клиент, которая принимает видео по TCP, декодирует и отображает.
Читать дальше →

Быстрая маркировка изображений с использованием внешних контуров

Reading time9 min
Views8.9K
В статье расскажу как достаточно быстро перечислить связные объекты на бинарном растре. Этот алгоритм мы использовали для распознавания изображений и текстов; он отличается от подобных высокой скоростью обработки (на картинках до 3200x2400, с некоторыми оговорками, он отрабатывает за миллисекунды) и доступностью в понимании (при наличии некоторых знаний C++). Отмечу, что исходная картинка будет трактоваться алгоритмом как «только для чтения» (зачем портить то, с чем могут работать другие методы), и в связи с этим, алгоритму потребуется небольшое количество дополнительной памяти. Кроме того, внешние контуры являются полезным объектом для анализа и векторизации изображений.
Читать дальше →

Поиск людей на фотографиях на Android с помощью OpenCV

Reading time6 min
Views42K
Недавеча столкнулся с одной интересной задачкой для мобильного “коня” на Android’e- необходимо определить контуры людей на фотографиях (если таковы там были, естественно). После поиска в интернете, было решено использовать open source проект OpenCV, который может работать на платформе Android.

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


Читать дальше →

Калибровка Kinect v2 с помощью OpenCV на Python

Reading time8 min
Views27K
Не так давно мы начали пару проектов, в которых необходима оптическая система с каналом дальности, и решили для этого использовать Kinect v2. Поскольку проекты реализуются на Python, то для начала нужно было заставить работать Kinect из Python, а затем откалибровать его, так как Kinect из коробки вносит некоторые геометрические искажения в кадры и дает сантиметровые ошибки в определении глубины.

До этого я никогда не имел дела ни с компьютерным зрением, ни с OpenCV, ни с Kinect. Исчерпывающую инструкцию, как со всем этим хозяйством работать, мне найти тоже не удалось, так что в итоге пришлось порядком повозиться. И я решил, что будет не лишним систематизировать полученный опыт в этой статье. Быть может, она окажется небесполезной для какого-нибудь страждущего, а еще нам нужна популярная статья для галочки в отчетности.

image
Читать дальше →

Как мы используем алгоритмы компьютерного зрения: обработка видео в мобильном браузере с помощью OpenCV.js

Reading time7 min
Views4K
Для идентификации личности онлайн уже есть все возможности, но пока их применяют крайне редко. Пожалуй, одними из первых мы реализовали оптимальный сценарий для пользователя – зайти на сайт со смартфона, сфотографировать свои водительские права или паспорт и отправить данные в систему.

Рассмотрим, как алгоритмы компьютерного зрения помогают распознавать документы в видеопотоке прямо в браузерах мобильных устройств. В статье делимся опытом, как мы в SimbirSoft использовали для этого OpenCV.js, какие возможны сложности, как обеспечить быстродействие и получить «гладкий» UX без подтормаживания.


Читать дальше →

Использование градиента в качестве фона страницы

Reading time12 min
Views11K
За время существования web 2.0 в сети появились некоторые приемы так называемого web 2.0 дизайна, один из которых это градиент.
 
Создание подобного эффекта, если не брать в расчет элементы с фиксированной высотой доставляет верстальщику не мало сложностей. Ключевым моментом реализации является оптимизация графики, но с другой стороны слишком "пережатый" файл теряет качество, что особенно заметно при использовании такого элемента с нефиксированной высотой. А что делать если эффект градиента необходимо использовать в фоне страницы ?
Читать дальше →

Information

Rating
Does not participate
Registered
Activity

Specialization

Software Developer, Game Developer
Python
OOP
C++
Unreal Engine
Shaders
Game Development
AR and VR development