Митя об интересном – Telegram
Митя об интересном
198 subscribers
61 photos
13 videos
2 files
141 links
Люблю писать про 2D/3D генеративные модели, AR/VR, ML фокусы, и вообще про всякое интересное
Автор - 🗿
🗿 - @Xallt

Личное & смешное - @i_laughed_dont_tag_me
Download Telegram
Я уже долгое время интересовался как на низком уровне работает электроника (школьная физика меня подвела и почти ничего не закрепилось), и наконец появился повод — у меня сломалась клавиатура, и я её разобрал с целью хоть насколько-то разобраться как этот чёрный ящик работает.

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

Продолжил гуглить, причём конкретно хотел узнать как именно эта клава (Logitech K400 Plus) использует в себе эту компоненту. Загуглил "IQS550 logitech" и, о чудо о чудо, наткнулся на чей-то submission в Reverse Engineering Challenge где ровно разбирали мою клаву!!

И я продолжал-продолжал гуглить и изучать, так что просто перечислю все свои файндинги:

- Этот разбор клавы на самом деле не супер детальный, но как минимум там я узнал о "NSK Crystal" который используется для отслеживания времени, что видимо критично для любой такой схемки

- Там же написали что пластиковый лист под клавой это Mylar который часто используется в клавиатурах для передачи сигнала нажатии клавиши в микросхемку. А ещё, схема на этих Mylar'ах часто сделана из серебра, поэтому кто-то собирает их чтобы соскрести серебро

- В том числе мне гугл дал ссылку на release notes ядра Linux 5.2, где была строчка про добавление поддержки как раз IQS550 тачпадов. Я пошёл смотреть в коммит и поржал что в коде драйвера есть инструкция goto ;)) (я на самом деле не знаю насколько это норма для программирования драйверов — просто меня всегда учили что goto это кринж)

- Решил разобраться как вообще "читать" эти зелёные электросхемы — наткнулся на шикарные видео-пояснялки на ютубе: про PCB, про Капаситоры, про Резисторы, про Диоды (ректифаеры?). Видосы супер-классные и с практическими демонстрациями, рекомендую именно их смотреть если хотите прошариться

- Пока смотрел про Капаситоры (на русском видимо Конденсаторы, пофиг), услышал упоминание AC и DC электричества — пошёл гуглить, и оказывается реально в основном в проводах ток постоянно меняет направление (AC) и таким образом (пока не знаю почему) электричество оптимальнее на большие расстояния передавать, а внутри самих устройств этот ток преобразуется в постоянный односторонний (DC) ток. И это преобразование соответственно делается Диодами

Воть, интересно было в этом всём разбираться, и нашёл многие онлайн-пояснялки которые во мноооого раз лучше того что было в школе!!
🔥7
Вот как выглядит разобранный чёрный ящик
5
Пожалуй тоже подключусь к AI кодинг хайпу

Я почти с самого выхода Github Copilot пользуюсь им и расхваливал его, но в основном он был для меня Autocomplete buddy — за меня дописывает что-то что я сам очевидно знал как написать, просто ускоряет процесс.
И только недавно (около недели назад) я осознал что, ах да, вообще его можно промптить, запрашивать целые куски кода создавать / переписывать / пояснять. Было круто, но что-то сложное он всё ещё не до конца справлялся делать сам.

Но внезапно новый чемпион — Cursor — набирает обороты в популярности как THE AI coding buddy, и я решил сегодня тоже опробовать. И ооочень доволен.
Как все и пишут, это то чем изначально копилот должен был быть. Очень умело (и заметно быстрее) генерирует огромные куски кода, и быстро редактирует.

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

Ииии за 4 часа (было бы 2-3 если бы не сложные форматы в Notion API) есть вот это https://github.com/Xallt/obsidian-link-aggregator !!! Там много кода который я бы сам без AI помощи поленился бы писать, и в целом процесс был бы как минимум в 2 раза дольше.

И вот соответственно автоматически созданная табличка: https://rare-save-0fa.notion.site/860ea27b912941c9a467547a9dfb44e9?v=4dfe8bc0e29141248627a8212de90d34

Правда сейчас мне надо руками зайти в Notion на созданную табличку и нажать Publish, поэтому следующим шагом сделать так чтобы это опубликовывалось на мой сайтик https://xallt.github.io/

Короче, валидность хайпа подтверждаю, теперь быть 10x-50x инженером значительно проще. Я раньше был скептичен насчёт всего этого, но сейчас огого как передумал
6🔥4
Помните я вот тут объявлял о выходе на новую работу в Gracia, а вот тут даже писал как доволен своими результатами на ней?

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

Короче, хоть и проработал я в Gracia только 4 месяца, я успел там немало крутого сделать для фотореалистичных Gaussian Splatting сцен для VR шлемов. И до сих пор активно слежу за их dev апдейтами и радуюсь любому релизу.

Однако такой прикол произошел — внезапно Meta без каких-либо предпосылок релизнула Hyperscape который оочень напоминает продукт Gracia, только независимо от них и под очень узнаваемым брендом Meta.

Т.е. гигант-Meta с кучей привлеченных Phd-шников и связью с командами которые непосредственно разрабатывают VR-шлемы, выходит как конкурент достаточно скромной по размеру Gracia.

Они конечно малые-да-удалые, но в любом случае им там наверное тяжко... А я просто грущу что доступ к Hyperscape Beta пока только аккаунтам внутри США 🙃🙃🙃
🔥8😢1
Так вот, после ужасно утомляющего переезда в Израиль, у меня наконец появились силы читать статеечки MLные
(Да, как ни странно, моя работа сейчас не состоит на 50% из чтения статей)

Решил глянуть на Sapiens от Меты, заявившийся как первый Foundational Model для картинок с людьми — и для segmentation, и для pose estimation, и даже для depth estimation / normal estimation.

Как обычно, добывают много картинок — аж 300M (!!! офигеть вообще-то) на которых есть люди, предобучают на нем большой трансформер. Используемый подход называется Masked Auto Encoder, по сути трансформер обучают по супер-испорченной картинке (убили 75% пикселей) восстанавливать исходную. Задача странная и общая, но если научиться делать так для 300M картинок, причем на которых именно много людей, то что-то оно умное про людей в начальных слоях модели выучит. Чуть похоже на I-JEPA.

Так вот, pretraining провели, а осталось обучить непосредственно голову для каждой из задач (segmentation, depth estimation, …). Во-первых, для Pose estimation (т.е. предсказания ключевых точек на теле) они вообще создают новый стандарт с сильно бОльшим количеством точек, так еще и руками размечают новый датасет из 1M картинок??? Звучит абсурдно — это же все-таки Meta, наверняка они там настроили себе пайплайн полу-автоматической разметки наподобие того что было в SAM.

И что-то аналогичное для сегментации — размечают 100К картинок, заявляют что руками, не верю…

Но это не самое интересное — для обучения Depth Estimation / Normal Estimation, хрен там руками разметишь. Зато там на ура работают синтетические данные — т.е. авторы добывают себе супер-детальные 3D сканнеры, делают много сканов людей (базовая фотограмметрия видимо), и потом генерируют картинки, ставя реконструированные модели в рандомные HDRI бэкграунды. Т.к. у нас доступ к 3D модели, мы знаем глубину+нормали, поэтому есть данные высочайшего качества.

Хоть и есть некоторый domain shift между искусственными картинками и реальными, наличие огромного количества картинок в датасете, плюс то что искусственные данные все-таки не худшего качества, дает модель которая SOTA на реальных данных, хоть и файнтюнилась чисто на искусственных.

Короче, очень мне нравится направление в последнем ресерче что синтетические данные очень помогают. Генерировать данные — имхо веселее, чем их собирать другими способами, плюс в контексте Computer Vision это значит больше востребованности в экспертах в 3D Reconstruction)

Depth Anything V2 / SceneScript / RoboCat примеры работ достигших крутого результата именно засчет хороших синтетических данных.
6🔥2
Пока ресерчил на тему применения синтетических данных в ML решил сначала поглядеть в сторону применения в Reinforcement Learning, т.е. для обучения всяких роботов

Наткнулся на много упоминаний Isaac Gym о котором слышал раньше, но в практическом плане никогда не изучал — это распространенная система как раз для Physical Simulations.

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

Имплементаций physical simulations онлайн можно найти огромное количество, но конкретно Isaac Gym хорош тем, что абсолютно все в процессе RL: сама физическая симуляция, и прогон + обучение нейронки, может проходить очень эффективно на GPU

Общая философия в любой GPU разработке в том, что коммуникация между CPU и GPU очень низкопропускная, соответственно если уж используется GPU, нужно максимизировать его утилизацию (FLOPSы), и минимизировать data transfer CPU<->GPU.
Так что похоже, что в Isaac Gym все из GPU выжали на полную.


Потом выяснил что Isaac Gym уже устарел и Nvidia заменила его на Isaac Labs, который поновее и полноценно вписывается в их огромную систему Nvidia Omniverse. Очень интересный этот Omniverse, хочется как-нибудь потыкать в него и понять где и как его можно применить.

P.S.: Кажется, как следствие изучения книжки про компьютерную графику, про которую рассказывал в Real-time rendering посте, нашел там ссылку на какой-то интересный Real-time Physics Simulation Forum
👍1
Наконец-то догрузил лекцию про Synthetic Data!!

https://www.youtube.com/watch?v=n9rnwrC05EM

Первая лекция в Тель Авиве, с обрубленной записью 🙃
В любом случае получилось тоже хорошо, и тема сама по себе оказалась супер интересной

Презентация: https://docs.google.com/presentation/d/1UauURbh51VmHG9hecc6DFzDP79RF2PgX5v_zerXITGk/edit
4👍4🔥1
Рандомный безумно интересный факт — оказывается, магнитометры ставят в смартфоны / VR/AR устройства потому что они позволяют измерять магнитное поле Земли в точке, что помогает отслеживать позицию/поворот устройства в пространстве

mind blown

(и вообще я не знал про существование такого устройства как магнитометр, но логично)

Source: https://xinreality.com/wiki/Magnetometer

P.S.: Читал статью Project Aria и там наткнулся на упоминание магнитометров но не понимал зачем оно, поэтому загуглил
🔥3
TIL что для съемки The Lion King ремейка, Джон Фавро (да, оказывается он был директором ремейка) организовал использование VR шлемов на съемочной площадке

https://www.youtube.com/watch?v=CupdZeOJus4&t=407s

TLDR (насколько я понял):
Базовые анимации с Motion Capture на персонажей уже насадили, и cameraman'ы, видя некоторую предварительную анимацию в VR, понимают как лучше "снять" сцену, и это движение потом и используется в финальном кадре
👍2
Опубликовал постик про то как я разбирался в том что такое Homography Matrix и почему она линейная

https://xallt.github.io/posts/deriving-homography-matrix/

Оно меня совсем в какой-то момент запутало, но сесть и расписать полный вывод формулы очень помогло
1
Я тут опять HackerNews листал, и наткнулся на достаточно безобидный, но интересный пост про то как интересно работает калькулятор в Android

Мне очень понравилось как чел пишет, поэтому решил порыскать по его сайту, поглядеть другие посты — и на одном из них была ссылка на что-то про Stack is a Monoid что я еле-еле понял, но меня захватили эти слова в самом первом параграфе:
> it’s also well known that GPUs are good at algorithms like prefix sum
wtf? Пошел гуглить, нашел GPU Gem про Prefix Sum, и моя башка просто взорвалась от гениальности алгоритма

Для полного понимания мне пришлось еще глянуть на изначальную статью — там есть чуууть больше логики, и доказательство вообще работы алгоритма

Короче, очень классно гениально круто мозговзрывающе бомба
🔥6🤩2
Реалити чек по поводу всей темы с AI кодингом

https://deplet.ing/the-copilot-delusion/

У меня руки тянутся сделать пост из разряда "топ 10 лайфхаков как правильно использовать Cursor" но я могу написать лучше — эта хрень очень хаотичная, нужно много пробовать и нарабатывать собственную интуицию.

Любые посты, которые я читаю на эту тему, только малось дают идей
И все, что я напишу — абсолютно не заменит огромного времени проведенного за тюнингом Cursor Rules / пробой MCP серверов / и тд и тп.

Оно не панацея, и нужно много возиться чтобы стабильно получать выгоду без ущерба качеству продукта. Но вклад того стоит, так что рекомендую не отставать.
👍3🔥1🤔1
Расписал несколько заметок про CMake

https://xallt.github.io/posts/cmake-is-a-pain-in-the-ass/

C++ разработку люблю, но почему-то CMake для меня был всегда супер-больным местом — я пытался досконально понять каждую команду, достичь "Thinking from first principles".

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

Тем более стоит это принять когда дело касается Build System'ы, в которой много-много настроек, и черной магии, которая скрывает на самом деле за собой много-много неприятных деталей.
👍5
Расписал пост про то как настраивать разработку на C++ для чайников

https://xallt.github.io/posts/c-programming-setup-for-noobs/

Несколько месяцев назад переквалифицировался на работе на какое-то время в C++ разработчика — мне тыкаться в плюсы не в новинку, но для сурьезного проекта все-таки впервые.
6
TIL есть подходы для привлечения внимания человека к участку картинки засчет колебания цвета, при том что сами эти изменения незаметны

https://augvislab.github.io/projects/chroma-gazer-2025

Естественно много потенциальных применений в UX AR/VR приложений — и тот же подход может использоваться для невидимых QR-кодов!!!

И вообще мне недавно знакомый скинул ссылку на лабу в которой делают много интересностей в теме AR, вот зачитываюсь теперь:
https://augvislab.github.io/projects
🔥6💋1
Прикольное недавно найденное — супер-realtime трекинг объектов в изображении засчет Random Forests вместо этих ваших смузи нейронок

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

Очень актуально для любого XR управления телом, вот я уже делал доклад на тему трекинга рук для VR. А еще есть такие приколы с real-time makeup'ом

А еще присылал уже пример очень классной игры с применением Hand Tracking которая, как мне кажется, может существовать только в VR (ссылка на игру)
🔥5
Meta выпустила yet another 3D Foundation Model — MapAnything — по произвольному набору картинок + optional параметры камер + optional частичные depthmaps, дает все что можно

Имхо побился рекорд по количеству железа и VRAM используемого для обучения computer vision модели, смеюсь с того насколько абсурдно звучит 64 H200-140GB

И мы в рабочем чате такие "хммм а можем ли такие обучить с одной H100"
TIL про Assisted-GPS: https://en.wikipedia.org/wiki/Assisted_GNSS

У любой GPS-системы по сути есть два куска данных нужных для определения позиции устройства:
а) Данные о движении спутников — их точные позиции и скорости/направления движения по орбите (Ephemeris) — чтобы подсчитать их позицию относительно Земли в любой момент времени
б) Расстояние до каждого спутника — заполучается тривиально в real-time, и уже непосредственно используется для подсчета координат самого устройства

В куске (а) прям много данных — но их можно скачать один раз в начале, и дальше автоматом высчитывать состояние спутника в каждый момент времени.
А дальше трюк — чтобы не качать эти данные со спутников с скоростью 50 bit/s (ждать ~10 мин), телефон качает эти закешированные данные по сотовой связи / с спец-серверов.

(Пришлось разбираться потому что чинил GPS на старом телефоне)
🔥1
Готовлюсь к небольшому выступлению на нашей компанийской мини-конфе, буду рассказывать что-то разное про Фотограмметрию / NeRF'ы / Gaussian Splat'ы, впервые за долгое время что-то читал про них

Сборка интересностей:
- Один из авторов NeRFа, Ben Mildenhall, соосновал The World Labs и месяц назад они выпустили вроде дажу неплохую модельку Marble для Environment Generation. Хвастались как это можно использовать для генерации 3D миров для симуляций для роботов.

- Adobe раскрыли свой проект Project New Depths для редактора Gaussian Splatting сцен

- Apple раскрыли что их "Personas" из Apple Vision Pro таки реализованы с Gaussian Splatting

- На какой-то конференции показывали что Google Maps делают Gausssian-Splatting-based реконструкции интерьеров заведений которые можно даже смотреть в VR
🔥4