Техника Алина Окунева
15 933

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

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

В закладки
Аудио

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Применение

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

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

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

Исходный код

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

#macbook #сенсорныеэкраны

{ "author_name": "Алина Окунева", "author_type": "self", "tags": ["\u0441\u0435\u043d\u0441\u043e\u0440\u043d\u044b\u0435\u044d\u043a\u0440\u0430\u043d\u044b","macbook"], "comments": 41, "likes": 127, "favorites": 116, "is_advertisement": false, "subsite_label": "tech", "id": 78582, "is_wide": false, "is_ugc": true, "date": "Thu, 08 Aug 2019 13:09:23 +0300" }
{"average":25937,"one":95,"ten":75}
Сколько денег вы откладываете в месяц?
Ответьте и узнаете, сколько копят другие.
0 ₽
70 000+ ₽
0 ₽
{ "id": 78582, "author_id": 258318, "diff_limit": 1000, "urls": {"diff":"\/comments\/78582\/get","add":"\/comments\/78582\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/78582"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199117, "last_count_and_date": null }
41 комментарий

Популярные

По порядку

Написать комментарий...
79

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

Ответить
0

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

Ответить
44

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

Ответить
37

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

Ответить
1

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

Ответить
17

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

Ответить
5

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

Ответить
5

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

Ответить
10

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

Ответить
4

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

Ответить
5

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

Ответить
0

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

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

Ответить
1

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

Ответить
0

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

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

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

Ответить
0

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

Ответить
0

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

Ответить
0

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

Ответить
0

Apple не хочет ставить touch screen на MacBook, чтобы не

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

Ответить
9

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

Ответить
0

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

Ответить
15

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

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

Ответить
2

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

Ответить
1

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

Ответить
10

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

Ответить
2

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

Ответить
1

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

Ответить
0

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

Ответить
0

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

Ответить
3

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

Ответить
2

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

Ответить
1

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

Ответить
0

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

Ответить
1

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

Ответить

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

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

0

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

Ответить
0

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

Ответить
–1

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

https://youtu.be/_d6KuiuteIA

Ответить
0

Браво!

Ответить
0

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

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

Ответить
0

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

Ответить
0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Нейронная сеть научилась читать стихи
голосом Пастернака и смотреть в окно на осень
Подписаться на push-уведомления
{ "page_type": "default" }