Превратить экран Macbook в сенсорный с помощью машинного распознавания образов, зеркала, горячего клея — и потратить $1 Статьи редакции

Перевод материала из блога студента Массачусетского технологического института Аниша Аталье.

Мы превратили экран Macbook в сенсорный с помощью оборудования общей стоимостью $1 и машинного распознавания образов. Эксперимент под названием «Сикстинский проект» (в честь нашей фотографии-пародии на фреску «Создание Адама») разработан и проведён мной, Кевином, Гильермо и Логаном за 16 часов.

Механизм работы

Основной принцип работы устройства прост: если посмотреть на поверхность монитора под углом, можно увидеть отражение и по положению пальца понять, касается он экрана или нет. Если палец лежит на экране, то он как бы упирается в своё отражение.

Кевин ещё в средней школе заметил это и создал ShinyTouch. С помощью внешней веб-камеры он построил систему сенсорного ввода, не требующую практически никаких настроек.

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

Оборудование

Настроить аппаратуру оказалось просто. Всё, что требовалось от нас, — установить зеркало перед камерой под определённым углом. Вот список использованных материалов:

  • Маленькое зеркало.
  • Жёсткий лист бумаги.
  • Дверная петля.
  • Горячий клей.

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

Вот как выглядит готовое изделие:

Обнаружение касания

Прежде чем начать процесс обработки видео, необходимо обнаружить палец. Вот пример того, что видит веб-камера:

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

  1. Отфильтровать цвет кожи и провести бинаризацию изображения.
  2. Обнаружить контуры.
  3. Найти два длинных контура — пальца и его отражения — и убедиться, что они пересекаются по горизонтали и что меньший контур находится над большим.

  4. Установить точку касания в центре линии, по которой соединяются верхушка нижнего контура и низ верхнего контура.

  5. Отличить касание от зависшего над монитором пальца по длине между двумя контурами.

Результат такого процесса, вид через веб-камеру. Палец и его отражение (контуры) показаны салатовым, ограничительная рамка красным, а точка касания — ярко-розовым

Преобразование данных и настройка

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

Собрав все данные, которые сопоставляют координаты веб-камеры с координатами на мониторе, мы можем выполнить гомографическое преобразование с помощью метода RANSAC (Random Sample Consensus — метод оценки на основе случайных выборок). Оно даст нам матрицу проекции, которая преобразует координаты камеры в координаты на мониторе.

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

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

Применение

Сейчас мы переводим касания и наведения в события мыши, делая существующие приложения сенсорными.

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

Для прототипа «Сикстинский проект» работает вполне неплохо. При наличии небольших усовершенствований, например веб-камеры с более высоким разрешением (разрешение нашей составляет 480 пикселей) и вогнутого монитора, который позволит камере видеть монитор полностью, «Сикстинский проект» может стать практичной и дешёвой сенсорной системой.

Исходный код

Код прототипа находится в открытом доступе и выпущен на основании лицензии Массачусетского технологического института.

0
42 комментария
Написать комментарий...
Наталия Потёмина

Если взять листок бумаги,
Ручку, ножницы и клей
И немножечко отваги,
Можно сделать сто рублей

Ответить
Развернуть ветку
Thom Lucky

ok.ru

Ответить
Развернуть ветку
Pegasus

Блин я вот то же самое собирался написать просто даже прочитав один заголовок..

Ответить
Развернуть ветку
Василий Алёшин

А черные пальцы распознает?

Ответить
Развернуть ветку
Вы в федеральном розыске

Опачки, а вот и первый судебный иск разработчику!

Ответить
Развернуть ветку
Ivan Vishnyakov

У них ладони белые. Нужно просто перевернутой вверх рукой водить

Ответить
Развернуть ветку
Артём

Когда ты - черный и сел покушать перед сенсорным макбуком

Ответить
Развернуть ветку
towardsahead

У нас было маленькое зеркало, жесткий лист бумаги, дверная петля, тюбик, наполовину наполненный клеем, целое море свободного времени и $1.

Ответить
Развернуть ветку
Вы в федеральном розыске

Продолжай, вы должны были подсесть на какую-то дрянь

Ответить
Развернуть ветку
Eugene Gultyaev

А пол тюбика клея куда по вашему делось?

Ответить
Развернуть ветку
Denis Bystruev

Apple должен ребят купить, я считаю.

Ответить
Развернуть ветку
Kuper

Зачем если тут за 1$ )
Хотя некоторые стартапы со странными технологиями покупают по непонятным ценам,
и реального выхлопа толком из них нет. А потом успешно закрывают.

Ответить
Развернуть ветку
Павел

Ей богу, как будто себестоимость технологии когда-то мешала Apple продавать аксессуар за овердохуя. Будут спокойно продавать это зеркальце за $99 при себестоимости в $1, и еще и ПО по подписке будет.

Ответить
Развернуть ветку
Denis Bystruev

Apple не хочет ставить touch screen на MacBook, чтобы не утолщать экран.

Тут идея совсем другая, можно попробовать развить, только зеркало переместить вниз, в район Touch Bar'а, чтобы не выступало.

Ответить
Развернуть ветку
Виктор Говнинов

В принципе сомнительно — зачем на ноутбуке может понадобиться тыкать в экран

Ответить
Развернуть ветку
Denis Bystruev

Пока Apple так и обосновывает: https://www.imore.com/where-are-touch-screen-macs

У ноутбуков с тач-скрином есть пара use-кейсов — например, презентация с ноутбука коллеге, или использование ноутбука, как планшета (но здесь у Apple уже есть iPad).

Но никто не мешает поэкспериментировать, если основное эстетическое препятствие — дополнительная толщина экрана — будет убрано.

Ответить
Развернуть ветку
Kuper

Единственный плюс тача вижу) лишь выделить объект скриншота)
У меня был hp трансформер, один из первых моделей, со стилусом в корпусе. Не разу не доставал) только показать что он умеет) с учётом того что он сильно грелся, на коленках в сложенном состоянии не "потАчишь" на нем)
Он работал, только со стилусом вроде, не помню, а пальцем экран 15" тыкать, такое себе. Ляпять только его.
По-любому аппле когда нить выпустят, когда китайцы начнут на каждом сенсор втыкать)
Пару лет назад, юзал, нетбук с ссд, с ай3, относительно понравилось тыкать, но единственное что я тыкал меню пуск, чтобы выключить))

Ответить
Развернуть ветку
Анатолий Б.

Вмешаюсь: у меня ноут-слайдер Sony Duo с тачем. Единственный и последний из этой серии. Я на нем стилусом рисую в Ai. Очень удобно и быстро.

Ответить
Развернуть ветку
Bond

На Microsoft Surface Pro использую тач для скролла, нажимания кнопок и других моментов, когда вазякать мышкой по экрану слишком долго.

Ответить
Развернуть ветку
akademik21
Apple не хочет ставить touch screen на MacBook, чтобы не

каннибализировать продажи iPad
Поправил

Ответить
Развернуть ветку
Erik Gimaletdinov

Любой банкомат без сенсорного экрана можно сделать таким. Круто, конечно.

Ответить
Развернуть ветку
Nikita Yasenkov

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

Ответить
Развернуть ветку
Роман Коренчук

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

Не подскажите, какую программу мне поставить на свой 11-летний ноутбук, чтобы я на нем мог нормально поиграть в современные игры?

Ответить
Развернуть ветку
Nikita Yasenkov

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

Ответить
Развернуть ветку
Алексей Тарасов

Там не с тачскрином беда, а в том, что это всё крутится внутри браузера, который запущен на Атоме, и со связью на убогом GSM.

Ответить
Развернуть ветку
бонч

Один вопрос: нах*я?

Ответить
Развернуть ветку
Art

не твоя вот ты и бесишься

Ответить
Развернуть ветку
Вы в федеральном розыске

Как это н*ахуя? Молодцы ребята

Ответить
Развернуть ветку
Кирилл Дутов

Ответ: потому что могут

Ответить
Развернуть ветку
Роман Романов

Т.е. задумку не вызывает у вас уважения человеческой изобретательности?

Ответить
Развернуть ветку
Степан Фадеев

У Них дверные петли по 65 рублей? Живут же люди.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Андрей Чигаров

Можно было продать Макбук, купить ноут с сенсорным экраном, и ещё и заработать.

Ответить
Развернуть ветку
Serge Sokolov

Зашел смеха-ради на исходники — Latest commit cd68e49 on 28 Sep 2018. А вообще все трех-летней давности.

Ответить
Развернуть ветку
Птиц

Если увеличить расстояние до зеркала, разве весь экран не влезет?

Ответить
Развернуть ветку
Bender Rodriguez

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

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Pepe Elefes

Так зачем вообще в экран тыкать? Добавить пару дешевых камер, расположенных так, чтобы хорошо распознавать X и Y координаты пальца, обучить алгоритм регистрировать ховер на расстоянии Z см от экрана как нажатие. Z настраивает сам пользователь как ему удобно, до нескольких сантиметров. Зеркало выдвигается или откидывается, чтобы ноут закрывался нормально. При захлопывании экрана срабатывает защита и зеркало складывается. Будет положен конец десятилетнему холивару на тему залапанного экрана, да и в принципе чем меньше руку тянешь тем удобнее.

Ответить
Развернуть ветку
Вы в федеральном розыске

Пара дешёвых камер - это больше 1$
К тому же, это решение намного проще, чем геморрой с двумя камерами

Ответить
Развернуть ветку
Алексей Ельменов

Привет, Leap Motion. У них подобные сенсоры, но не к экрану. Это к вопросу «чем меньше тянешься, тем лучше».

https://youtu.be/_d6KuiuteIA

Ответить
Развернуть ветку
Stanislav Kozin

Браво!

Ответить
Развернуть ветку
akademik21
веб-камеры с более высоким разрешением и вогнутого монитора

Если бы у бабушки был хуй, то она была бы дедушкой.

Ответить
Развернуть ветку
Максим Мирошник

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

Ответить
Развернуть ветку
39 комментариев
Раскрывать всегда