Программист о...
1.17K subscribers
166 photos
60 videos
46 links
Программист о событиях в мире АйТи и не только

По всем вопросам: @cane4ka_limonov
Download Telegram
Я уже как-то делал пост о распознавании символов.

Сегодня хочу рассказать о прикладном применении нейронок для распознавания символов, с которым сталкиваются практически все😎

Речь пойдет о распознавании номеров транспортных средств.

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

📌 Прежде чем определять номер, нужно выяснить, где он вообще расположен на кадре

📌 При распознавании номеров нас интересуют не просто отдельные символы, а последовательности символов, используемых в номерах разных стран 🌐

📌 При детекции номера в видеопотоке не обойтись без трекинга:

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

📌 Хоть количество допустимых символов ограничено (и в идеале они написаны черным по белому), никто не отменял загрязнение номера, а значит, детекторы должны быть натренированы "читать" номера в сложных ситуациях - когда, например, часть символа просто скрыта 🧟 грязью.

Как видите, распознавание номера и определение скорости ТС весьма непростая задача.

Всё, что выше указал, это проблемы нейронок. Но есть и отдельная большая проблема по работе самих камер. Напишу обо всём подробнее в отдельных постах ☝️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🙏3027👏19🔥8💯2🥰1
Сегодня поговорим о том, как нейронки определяют где находится автомобильный номер.

Общепринятым является каскадный подход - сначала находим машину, потом находим сам номер, а потом уже "читаем" 📖 его.

Чаще всего для поиска машин подходит нейросеть YOLOv8n. Она легковесная и быстрая, а это критично важно, так как позволяет запустить её прямо на самой камере со встроенным NPU.
Мощности камеры на много не хватит, поэтому есть ещё вариант с edge-сервером, который устанавливается рядом с камерой или обслуживает сразу несколько камер в одном месте.

На этапе поиска 🚘 машины детектору можно дать подсказку.

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


Мы можем использовать эту информацию и:

▪️ определить под каким углом и в каком направлении едет машина в указанном участке

▪️ убрать необходимость анализировать целый кадр

▪️ выполнить постобработку изображения

Далее нейронка ищет в выбранной части кадра расположение номера.

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

На последнем этапе происходит следующее:

☑️ Проверка что в найденной области действительно есть номер

☑️ Сглаживание изображения и удаление артефактов от видеокодека

☑️ Корректировка перспективы кадра (камера может снимать видео под углом, а для распознавания номера лучше иметь изображение будто мы смотрим на него под прямым углом)

С поиском номера и подготовкой изображения закончили. На очереди распознавание номера, о котором расскажу в следущий раз.
👍24🔥20🤝20🥰11🤔73👏1
Ещё помните мои посты про эволюцию компьютерной мышки?

1️⃣ Первый прототип мышки
2️⃣ Шариковые мышки
3️⃣ Оптические и лазерные мышки
4️⃣ Характеристики современных мышек

И теперь вот вам обещанный розыгрыш вертикальной компьютерной мышки.

Сам для работы использую такую, и рука с ней действительно меньше устаёт. А показателя DPI хватит для работы и с FullHD, и с QuadHD монитором. Подключить мышь можно сразу к 3 устройствам - по bluetooth два канала и ещё есть usb-коннектор. Без проблем переключаюсь с рабочего на домашний ПК.

Вам для участия в розыгрыше нужно следующее:

❗️ Быть подписанным на мой канал

❗️ Нажать УЧАСТВОВАТЬ под постом

❗️ Иметь поблизости пункт выдачи OZON.


И всё!

Итоги подведу 17 октября в 21:00 по МСК!
👍22🔥11🤩91
This media is not supported in your browser
VIEW IN TELEGRAM
Когда после пятничного релиза в понедельник читаешь рабочие чаты😈
Please open Telegram to view this post
VIEW IN TELEGRAM
💯24😁20🔥17🐳14👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Продолжаем разбор того, как детектируется номер 🚙 машины.

Как всё-таки распознаётся этот номер?

Тема интересная, но если ограничиться здесь только словами, то будет скучно.

Поэтому я заморочился 🦸‍♂️ и сделал простую нейронку с 16 нейронами (с одним скрытым слоем на 20 нейронов), которая может обучаться и распознавать цифры от 0 до 9, изображённые в квадрате 4х4 пикселя.

Что происходит на видео:

1) Передаётся картинка с числом на вход с некоторой примесью помех.

2) Изображение переводится в массив из 16 чисел - чем цвет в пикселе ярче, тем выше значение числа в соответствующей ячейке.

3) Далее этот массив передается нейронке.

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

В нижней части ролика находится визуализация вероятности того, какое число на входном изображении. Эту вероятность считает 👨‍💻 нейронка.

Конечно, во "взрослых" сетях все намного 🚶‍♂️ сложнее, я упростил и обрисовал как этот процесс происходит в принципе.

Если у вас есть какие-то вопросы/комментарии/уточнения по посту или видео, пишите под постом, с удовольствием отвечу.

И буду рад вашим 👏 реакциям. Это мой первый опыт подготовки поста в том числе через видео формат 🎬
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥22😱151👏1
Сегодня рубрика "дело было вечером, делать было нечего" 😉

Сделал сайт с визуализацией работы алгоритмов и нейросетей.

На вкладке с поиском пути вы найдете визуализацию работы алгоритма, который используют враги в играх для поиска 🫣 игрока.

На вкладке с нейросетью вы прямо в браузере обучите простую сеть и сможете в реальном времени наблюдать как крепнут связи между нейронами в процессе обучения.

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

В общем, буду 🫶 рад, если перейдете по ссылке, потыкаете и потестируйте.
В комментариях можете оставлять свои скриншоты и вопросы/уточнения.

https://web-visualizer-algorithm.vercel.app/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍20💯205
Воскресная задачка переехала на вечер понедельника 🙂

Задача несложная, но требует внимательности:

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

Зайдя в комнату, вы можете делать с 💡💡💡 лампочками все что угодно, вот только назад к выключателям вы уже вернуться не сможете. Теперь сам вопрос. Вам надо сказать к какой из лампочек относится каждый выключатель. К примеру, второй выключатель работает с третьей лампочкой и так далее.


Пишите ответы в комментариях. Вместе разгадаем😼
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27👏2624🥰1
Сегодня расскажу про фракталы.

Фракталы - это геометрические фигуры, части которых повторяют саму фигуру.


Фракталы имеют несколько примечательных особенностей:

🔅 При кажущейся случайности геометрии, фракталы на самом деле чётко структурированы и имеют предсказуемую форму.

🔅 Фракталы встречаются в природе, причем их можно найти в самых разных проявлениях: сосуды в кровеносной 🩸 системе, листья 🌿 папоротников, ❄️ снежинки.

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

🤹 Покрутить разные типы фракталов и поэкспериментировать с ними можно на сайте во вкладке фракталы

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

Сайт собрал сегодня сам, специально для визуализации вам 👀

https://visualalgorithm.ru/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍22👏1715🥰4
🐈 Нашел ещё необычных мышек вам!

📎 Первая детская мышь 1991 года от Logitech в виде реальной мышки с ушками

📎 Мышь в виде гоночной Mazda RX-7

📎 Модель Clip Mouse оснащена сенсорными кнопками и как бы надевается на пальцы

📎 Дизайнерская мышь DUNE из стекла без кнопок и колёсика, но с сенсорами

📎 Ретро мышка для ностальгирующих по 80ым геймеров

📎 Трёхмерный контроллер MinVerse с тактильной обратной связью. Позиционируется для разработчиков, инженеров и 3D-художников

Выглядят они конечно здорово, но вряд ли хоть одной можно пользоваться постоянно)

Все успели принять участие в розыгрыше вертикальной мышки?
Результаты уже в эту пятницу 🏅
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥137👍6
Сегодня покажу вам игру "Жизнь".

Это так называемый клеточный 🎰 автомат, придуманный Джоном Конвеем в 1970 году.

Правила игры очень простые:

1) Живая клетка с 2-3 соседями выживает.
2) Живая клетка с <2 или >3 соседями умирает.
3) Мертвая клетка с 3 соседями оживает.

Несмотря на кажущуюся простоту, запуск симуляции такой игры приводит к интересным эффектам, посмотреть на них вы можете всё на том же моем сайте во вкладке игра "Жизнь".

🔅 Нарисуйте (или выберите готовый паттерн) на поле любое количество живых клеток, можно в произвольном порядке
🔅 Нажмите кнопку Играть
🔅 Наслаждайтесь дальнейшей визуализацией

В качестве бонуса добавил режим войны между 🟦 синими и 🟥 красными клетками.

https://visualalgorithm.ru/
👍24🔥2319💯10👏2
This media is not supported in your browser
VIEW IN TELEGRAM
Когда тебя назначили ментором джунов, и у них есть "пара вопросов" 👨‍🦽
#почтипятничное
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣20😁18🐳18🔥11👍9
Быстрый опрос. Как считаете, скорость света влияет на конструкцию современных компьютеров?
Final Results
65%
Да
22%
Нет
13%
Не знаю, но хочу посмотреть ответ
👍21👌19🤔15
Многие ответили на вопрос 👆 выше правильно. Теперь давайте подробнее расскажу про эту связь скорости света с современными компами.

😊 Факт интересный, но ему почти не уделяют внимания в теме работы оперативной памяти и процессора.

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

На заре зарождения ПК так и можно было считать (частота тогда была очень низкой и памяти было мало). Но в наше время с гигагерцовыми частотами начинает играть роль новый фактор - скорость света.

Скорость света равна 299 792 458 м / с в вакууме.

Представим, что у нас память работает на частоте 5 Ггц (типичная скорость актуальной памяти DDR5).

Чтобы такая память работала максимально эффективно, она должна находиться 🤯 не дальше 6 см от процессора (это расчёт исходя из скорости света в вакууме, а не в вакууме скорость в проводах будет ещё медленнее).
При расстоянии 6 см и более скорости света будет недостаточно для передачи сигналов за длительность одного такта, а это, в данном примере, 100 пикосекунд, соответственно будет расти задержка доступа к памяти.

Почему низкая задержка так важна?

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

Именно поэтому память располагают как можно ближе к процессору.

👀 Где-то в параллельной Вселенной для максимальной эффективности оперативную память располагают непосредственно на самом процессоре.
Но почему так не делают в нашем измерении в обычных ПК? 🤔 Расскажу в другой раз.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍23🤔204👏1
Продолжаю рассказ про оперативную память компьютера.

В прошлом посте мы выяснили почему оперативную память нужно располагать как можно ближе к процессору, но почему бы не расположить её внутри самого процессора?

🤲 На самом деле память присутствует в процессоре и называется кэшем. Кэш бывает первого, второго и третьего уровней. Компания AMD (крупный производитель процессоров) ещё придумала так называемый 😵‍💫 3D кэш (расширение кэша третьего уровня).

А в мире видеокарт и ИИ ускорителей распространена HBM память - она также расположена с процессором либо бок о бок, либо на нём, но HBM память плохо подходит для процессоров по своим характеристикам.

🧐 Но почему же кэш не может заменить оперативную память, раз он уже расположен в процессоре?

Кэш обладает выдающимися 😼 характеристиками по сравнению с оперативной памятью:

✔️ скорость выше на несколько порядков
✔️ задержки на порядки меньше


Но есть пара нюансов:

🔶 Все перечисленные выше уровни кэша могут предложить суммарный объем в самых дорогих процессорах в сотни мегабайт (а в потребительских чаще всего речь идёт о паре десятков), и это очень мало для необходимой работы с данными.

🔶 При своём небольшом объеме кэш занимает, как правило, значительную часть площади процессора (другими словами кэш очень дорого обходится при производстве чипов).

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

📷 На изображении показана схема актуального процессора AMD.
Можете наглядно посмотреть сколько места занимает всего 32 мегабайта.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍18👌1044❤‍🔥3