🤯Вызов принят! Робот для плетения картин из гвоздей и ниток. Часть 1
HTML-код
- Опубликовано: 21 мар 2023
- Сегодня попробуем научиться плести картины из гвоздей и ниток!
★ Познакомьтесь с основами Python-разработки на бесплатном курсе от Яндекс Практикума - clck.ru/33qcmS
▼ Сайт проекта ▼
alexgyver.github.io/
Жду ваших доработок!
★★ МОИ ПОДБОРКИ ПОЛЕЗНЫХ ТОВАРОВ С ALI ★★
► 3D принтеры и советы alexgyver.ru/3d-printers/
► Всё для электронщиков (паяльники, приспособления) alexgyver.ru/all-for-soldering/
► Инструменты (шуруповёрты, дремели, ручное) alexgyver.ru/my_instruments/
► Все существующие модули и сенсоры Arduino alexgyver.ru/arduino_shop/
► Аккумуляторы, платы защиты alexgyver.ru/18650/
Теги: #самоделки #эксперимент #arduino #электроника
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
✔ Официальный сайт: alexgyver.ru/
✔ Telegram: t.me/alexgyvershow
✔ ВКонтакте: alexgyvershow
✔ Форум: community.alexgyver.ru/
✔ Поддержать канал денежкой alexgyver.ru/support_alex/ - Наука
А заметили какие Алекс красивые руки роботу, который нитки плёл, сделал!? Даже ногти ему накрасил. Видно робот любит Алекса, потому как, только у любящего робота хватит терпения столько ниток заплести. Лайк!
Алекс вообще молодец. Он роботу и сиськи приделал, на 20:06 видно :) Если серьезно, то крутой проект. Можно ещё в приложение диктовку голосом добавить. Чтобы оно голосом проговаривало какие гвозди соединять.
Еще и в 2 часа ночи)
Какая то толстая женщина плела ...
Секс робот
ещё и из сантеха такое замутить! Ну, мастер!
Я думаю, у меня есть неплохой фикс для твоего алгоритма. Чтобы светлые части изображения не затемнялись нитками так сильно, я бы попробовал не просто вычитать цвет из исходного изображения вплоть до нуля (если считать белый нулем), а уходить в минус (хранить "отрицательный" цвет можно например в отдельном канале или во вспомогательном изображении). Дело в том, что в твоем алгоритме учитывается оставшийся темный цвет на рисунке но не учитывается сколько же черного мы уже добавили в светлые области. То есть при вычислении суммы черных пикселей на рисунке нужно корректировать значение с учетом уже нарисованных там линий. Получится что значение для линия проходящей через точки где уже "есть" нитки будет меньше. И чем больше таких точек тем меньше вероятность что алгоритм выберет эту линию в качестве следующий. С таким подходом я уверен не нужны будут костыли с запретными зонами и количеством нитий на гвоздь.
согласен
Ну что-то в этом есть.... (😏Зовите санитаров)
Еще проще - можно не рисовать белую линию на исходном изображении, а сумму черного для линии считать как сумма черного на исходном минус сумма черного на текущем полученном.
а что если попробовать не из черного в белый а из белого в черный в таком случаи картину загружать в инверсионном виде тогда прогрессия будет расти в обратную сторону
Если не пропускать нитку по белому вообще это сократит количество гвоздей и получится ерунда для самого белого цвета нужно ограничить количество пропусков нитки через эту область до 1.
Природа настолько очистилась, что Алекс начал выпускать по 2 видео в неделю!
Это робот бармен помогает
Это чаталекс все за него делает
ШЕДЕВР получается тогда, когда человеку нравиться то, чем он занимается.
Молодец Алекс!
"Нравится" пишется без мягкого знака ☝️
@@mudofel согласен. Но для человека, который знает три языка, причем русский не родной, думаю это не так важно...
Ого 2 видео за неделю, так неожиданно и приятно😊
Согласен
Полностью согл
+
Это значет что ближайшее месяца 3 видео не будет😊
Адвокат Егоров включился )
Спасибо тебе Саня! Те знания которые ты даёшь, никогда, никто не даст ни в одном учебном заведении, так, как это преподносишь ты. Учиться становится действительно интересно.
Чему тебя тут научили? Тебе дали всё готовое, а ты создаешь иллюзию что это ты сам до этого допер. Если тебе нравится учиться, значит ты где-то ошибаешься, человеческий мозг очень ленив и все попытки вбивания информации всячески пытается избегать. Соответственно он не может приносить удовольствия. Другой момент, если тебе это реально интересно и ты получаешь ответы на свои вопросы и потребности, которые будут исчерпаны на поверхностном уровне. В любом случае, извини что вмешался и успехов в обучении.
лол, типичный неуч, косинусы и алгоритмы тут основа, а их учат в уч. заведениях, а не на ютубе. Ну, по крайней мере у нас, в России.
@@undetectby вот так вот взял и разрушил его мирок
В очередной раз мне не слишком интересны такие "картины", и вообще поделки. Но совершенно балдею от процесса рассуждения и достижения результата методом проб и ошибок в совершенно необычных областях! За это уважаю и ценю! Спасибо Алекс!
Плюсую. Гораздо интереснее разработка робота, «красящего стенку», чем покрашенная стенка.
Обалдеть, какая титаническая работа проделана! Восхищаюсь твоему упорству и тяге к познанию. И разобрался и запрограммировал и алгоритмы сам придумал... 👍
Гениальный Гайвер, как приятно видеть видосы так часто. Вдохновляешь на свершения! Сам торчу в самоделках и программировании, включая Пайтон.
ЗЫ: ОООЧень жду твой обещанный румтур!
Бабушки старше 72 лет на лавочке
Алекс , могу ошибаться но когда у тебя тянется нитка ты вычитаешь пиксели из исходной картины , но когда ты проводишь еще одну которая пересекает первую ты не добавляешь обратно пиксель в месте пересечения из за этого и появляется оочень много черного без полутонов
Самый лучший канал на ЮТУБЕ ! РЕСПЕКТ! Гений, а не человек! Очень рад, что наткнулся на твой канал 3 года назад!))
Спасибо!!! Обязательно повторю !
Видео огонь, спасибо за такие проекты, давно видел их рекламу, но не хотел тратить деньги, сейчас даже еще интереснее, посмотреть как будет реализован проект и обязательно его повторить, еще раз большое спасибо и удачи!)
Спасибо большое за твой труд друг!
18:35 ты уже сделал робота? Красава!
Гениально! С нетерпением ждем продолжения проекта! Спасибо!
Круто! Начинал смотреть канал, когда поделки были попроще. А теперь не угнаться за тобой. Спасибо, всегда очень интересно!
это обалденно. ждём вторую часть
Видео огонь! Сразу захотелось открыть пайчарм. Есть идея, что нужно при выборе траектории нити учитывать не количество перекрываемого черного, а процент черного цвета в отношении к общей длине линии. То есть короткая линия может содержать в сумме меньше черного, чем более длинная линия. Но правильнее будет выбрать ту, которая "чернее" безотносительно длины в пикселях.
Вместо жесткого ограничения на минимальный угол, можно добавить вес - чем меньше угол между хордами, тем алгоритму должно быть труднее провести хорду. Аналогично с числом ниток на гвоздь.
Ну будет у тебя на 100 метров 30 см погрешности. Тебе не ракету из этих ниток строить.
Если человек талант, то он талант во всём!!! Молодец, кайфую от твоих видео)))
Спасибо большое за видео, Александр! Было очень интересно и познавательно. Мне, конечно, очень и очень далеко до уровня Александра, но у меня есть один вопрос к алгоритму, который выбирает, на какой гвоздь будет наматываться нитка. Автор сказал, что выбирается нитка, которая покроет наибольшее кол-во черных пикселей. Мне кажется, что лучше будет рассматривать не количество чёрных пикселей, ведь расстояния до разных гвоздей разные. Попробую привести пример. Если у алгоритма будет выбор между ниткой, которая покроет 100 черных пикселей + 100 белых, и другой ниткой, которая вся должна быть черной, но включает в себя только 50 пикселей, то будет выбрана первая нитка, хотя она будет правильной лишь на 50%, а вторая нитка на 100%. Мне кажется, что стоит немного изменить алгоритм так, чтобы он выбирал нить, которая будет иметь наибольший процент черных пикселей от кол-ва всех пикселей, покрываемой этой нитью. Надеюсь, что понятно выразился. А так видео очень классное, ещё раз спасибо)
так у него так оно и работает вроде, где наибольшее количество чёрного, там нить и идёт, а белого соответственно меньше
@@user-do8dk7gu4r, как я понял, Александр учитывал кол-во черных пикселей, а не их процентное соотношение
Супер. Видос огонь!)
Дополнительный лайк за майку)
Большой уважение тебе. Очень давно смотрю и прям получаю удовольствие 👍👍👍
Занимался программированием давно. Так же рассуждал и анализировал.
Потом судьба не сложилась.
Только вчера задумался как сделать такую картину самому, а тот вот ответ сразу. Красавчик.
Радуешь второй день подряд))
Ошибка в том, что вы считаете только черный, поэтому у вас получается на светлых областях слишком много черного. Вам нужно считать белый или как минимум учитывать уже нарисованный черный, а не делать вид, что теперь у вас там белая линия.
там вопрос уровня белого и снижения числа градация серого в исходном изображении.
еще есть вероятность что надо определять условную глубину изображения по полутонам и раскладывать картинку на слои и вот уже по каждому отдельному слою строить сетку.....
Именно так. Можно например не рисовать белую линию на исходном изображении, а сумму черного на линии считать как сумма черного на исходном минус сумма черного на текущем полученном. Тогда будут учитываться уже полученные нити на светлых областях. А сейчас эта информация совсем теряется.
Класс, а теперь иди и сделай пулл реквест или хотя ишью, в котором подробно и понятным хоть немного техническим языком опиши, что конкретно ты имел ввиду
лол,все в видосе
Ну просто очень круто!) Alex, ты лучший! У меня зрение очень плохое, рингстринг еле сплел, а сделать шаблон самому и мечтать нечего, но я знал, что гайвер сможет и окунет нас в процесс с головой!) удачи тебе во всем!
Блин, думал буквально месяц назад про то, чтобы автоматизировать этот процесс и тут вижу "Час назад" вышел ролик от Алекса Гайвера. Интересно, посмотрим.
Кайф! Ждём с нетерпением допиливания) я загорелся пойду шкаф ломать, доску жалко покупать) а гвозди заменю на саморезы😂
Ура мой любимый канал выпускает сразу два видео за неделю, спасибо
Хоть это все слишком сложно, но безумно интересно наблюдать за творческим человеком!
Вау! Какие крутые идеи.
Обожаю смотреть, как ты инженеришь
Мысль для улучшения:
Может нужно позволить нитке идти иногда не через картину, а по внешнему кругу. Тогда получится как бы скипнуть некоторые места и наоборот дозакрасить более светлые.
Не знаю по каким параметрам разрешать программе это делать, но я думаю можно определить методом тыка
Не, плохой вариант
@@ivanromanchenko459 лол. Ну ладно. Раз ты сказала, значит не надо.
Может все же объяснишь?
@@Stepan.K Могут появиться чрезмерно толстые края у рисунка. В одном месте будет жирный край, а в другом - нет.
@@user-cp1sz4wx9z, может ограничить это каким-то параметром или взять нитку потоньше
Да, сделать как-то, чтобы ценность изображения возрастала по приближению к центру картины и если области по краям будут чуть темнее, чем нужно, то это нестрашно
Супер! Спасибо! Интересно!
Честно, ну ты умище, Алекс. Просто гений. В одиночку такие проекты делаешь, что и группам людей не под силу. Восхищаюсь твоими навыками.
Ура, Гайвер вернулся) Наконец-то настоящий проект)
Очень ждал этого робота!
Спасибо за видео! Можно узнать когда планируется 2я часть?)
Шикарный проект, гайвер огромное спасибо!
Спасибо! Ждем вторую часть.
Еще одно возможное улучшение - добавить в алгос трассировки возможность просчитывать изменение цвета на несколько шагов вперед и выбирать тот, в котором будет больше заполнение черного. Это позволит более четко обводить кривые линии, к примеру
Такой кайф знать питон и другие языки программирования
Круто очень! И ещё благодарю за идеи, что можно с этим всем делать. Если не заленюсь, буду пробовать. Реклама готовых наборов такой творческий порыв не вызывала...
Как всегда посмотрел и подумал, не ужели во всём этом реально можно разбираться) спасибо за позновательные видео!
Жду вторую часть - год первый
Ура! Давно ждал когда сделаешь это. Надеюсь смогу сделать картину ракеты)
Я так думаю- надо сразу вводить ограничение на нити.
Пиксели разделить по яркости.
240 всего.
Шаг 24.
Всего 10 шагов.
Каждый шаг- одна проходящая нитка.
При яркости 240- 0 нитей проходящих через пиксель.
При яркости 0- 10.
При яркости 120- 5.
И тд.
Не всегда получится идеально, поэтому разрешить погрешность в 2 нити.
Если по другому никак, то можно провести или пропустить нить или две через пиксель.
Ну ты просто человечище)) большой респект за работу)
Ты красава 💪🤝
Пора внедрять твои уроки в школьный курс , это не только интересно и познавательно,но и мозг заставляет развиваться .
Интересный проект!
Возможно, стоит рассмотреть возможность использования белой нитки.
Так и до цветных ниток дойти можно 🤗
С нетерпением жду продолжения! Как всегда интересно!
Зачот!
Молодец. Надо возвращать молодому поколению ум и очумелые ручки!
Наверное алгоритм оригинала предусматривает ещё и параллельные линии, для равномерной "заливки" к.л. области...
Ну вот, а то уже нет сил на паяльники 3 год смотреть..)
Друже, есть чудная идея как раз для тебя! Про робота и chatgpt.
Как на счёт принять такой вызов: сделать робота, который будет ездить за тобой по квартире, слушать твои вопросы, передавать их - chatgpt и отвечать его ответ, через какой-нибудь онлайн голосовой синтезатор ??
Залайкайте, плес, чтоб Алекс увидел и попробовал сделать это)
Ох! Прям до мурашек! 😊 В прошлом году, ещё до выхода RingString, сделал в подарок портрет из нитей. Конечно код я не писал, но сколько интернетов и генераторов я перепробовал… Потом несколько недель работы, и самым сложным было сделать холст. Кстати, такой способ распечатки карты холста постером в Acrobat Reader тоже думал, но по каким-то причинам не подошло (уже не помню). Холст был радиусом 50см на рамке 76*76см. Подготовка и ручная разметка точек для гвоздиков, подбор этих самих гвоздиков, выбор материала и обработки деревянного холста и прочего. Особое счастье словил когда купил готовальню, о которой мог только мечтать в школьные годы, а потом такой кайф работы с циркулем и карандашом… Мне кажется я получил больше удовольствия от изготовления, работая руками, чем получатель подарка от дарения 😅 В результате получился портрет прекрасной девушки, картина с каркасом и рамкой, с дополнительным кожухом для транспортировки и портрет даже виден в темноте.
Теперь после просмотра зачесалось повторить… Наконец понятный, бесплатный и понятный генератор картин! Возможно попробую заснять и поделюсь процессом с фидбеком на работу генератора. :)
Два замечания к использованному подходу в алгоритме:
1. Для функции оптимизации прокладывания нити стоит учитывать не только вклад нити в чёрный цвет, но и сколько белых точек она затемняет - т.е. функция должна учитывать не только вклад в результат, но и порчу тоже
2. Стоит вначале нарисовать все линии от каждого гвоздя, а потом уже пройтись по кругу и выбрать последовательность обхода гвоздей (обычная задача комивояжёра по графу), чтобы сделать это одной нитью
С первым пунктом полностью согласен. Для каждой нити надо вычислять её ошибку как корень суммы квадратов расхождения для каждого пикселя деленный на количество пикселей.
Хаха, обычная задача коммивояжера, обычная np полная задача, на графе в 100+ вершин, куда уж проще то :)
@@Samiron вот тоже об этом подумал)
@@Samiron Дык не нужно оптимальное решение; достаточно "более-менее близкого к оптимальному" (или "не слишком уж неоптимального") -- тут уже не NP, а полиномиальная сложность (а при некоторых приёмчиках упрощения - и с невысокими показателями степеней).
@@dmitryvodolazsky по этим "эвристикам" некоторые кандидатские защищают, вам не кажется что это не совсем то что можно назвать "обычная задача коммивояжера"?
Алекс, классная реализация! Мне кажется, ограничение угла и т.п. - это все "костыли", правильный алгоритм должен сразу работать правильно. Посмотрите на фото от RingString, там весь фон равномерно серый. Раз прохождения нитей через белые области не избежать, то надо постепенно "сдвигать" белый цвет в серую область. Т.е. раз в одном месте нити прошли через белую область и сделали ее серой, то и все остальные белые области должны стать такими же серыми. Таким образом удастся сделать равномерно серый фон. И это как раз заставит алгоритм равномернее распределять нити.
Ждем с нетерпением вторую часть.
Круть! Очень понравилось! Удачи в развитии проекта!
Думаю можно добавить в алгоритм разрешение на разрыв нити, то есть можно идти по окружности до нового гвоздя и начинать движение уже с него
Как это робота нет? Вот же он, на 18:35
У меня кстати дома такой же, посуду моет, уборку делает, кушать готовит... Короче удобная штука))
японский?)
@@AlexGyverShow не, у меня Башкирский))
Как он настраивается?
Просто Супер!!! Ждём продолжения!
Ооооочень круто! Жду продолжения!)
Алекс, Спасибо очень крутой проект) ждем модернизацию.... я добрался до паяльника и пробую сделать кое что из ваших проектов, так что желаю вам и дальнейших творческих успехов)
Отличный проект! Будет круто если бы станок смог бы создавать такие картины!
Шикарно, Алекс!
Вот это подход! Наверное это один из лучших проектов после Гайверночника и пневматической пушки!
Когда будет Вторая часть??
Ух! Это в честь чего два видоса в два дня?)
Вот он чудесный мир программирования! В умелых руках всё в чудо превращается! 👏
Классный и интересный проект. Удачно её реализовать. А мы ждём видео и все подробности.
Было бы здорово учитывать ещё и толщину гвоздей и с какой стороны гвоздя заводить/выводить нитку, поскольку гвоздь не точка и при плетении систематическая погрешность😅
Ого, класс!
Как же круто, спасибо за ролик!
Это просто прекрасно! Кайфанула)
А сможете из говна и палок в следующий раз, я думаю, будет многим интересно так как из подручных материалов
когда же выйдет вторая часть, уже с улучшенным алгоритмом
Даёшь 2 часть! ❤
Дорогой Кекс ! всё супер продолжай свои эксперименты дальше ждём-с.
Гайвер сделай обзор на газовых паяльников
Эка куда вас, коллега, занесло! Но все инженеры веселятся как хотят)
Заспойлерил робоплëта с красивыми руками. Теперь с нетерпентем жду следующую серию, что бы увидить робоплëта во всей красе 😊
Алекс спасибо за ролик и что стал их делать чаще. ❤😊
Алекс, думаю, ты и сам об этом думаешь, но как доведёшь свои чёрно-белые ниточные картины до идеала, можно попробовать в цвете!
Такого я ещё нигде не слышал.
Красавчик! Мне очень нравятся твои ролики!
Быть добру!
А чьи руки плели картину?
Гайвер на маник сходил)))
@@Vozhd_Hitromordyh что такое маник? Пирог?
@@4eptogbycla маникюр)
@@Vozhd_Hitromordyh обрати внимание, маникюр был на женских руках, а под конец видео Алекс показал исходный продукт своими руками без манишка.
Он поди поженился?!
Или робота с женскими руками сварганил...
@@4eptogbycla, Уже давно женился)) Был ролик с зашифрованным сообщением. Вот это сообщение было о том, что женился)
Молодщина! Огромный труд
Спасибо за отличные видео. Всегда очень интересно смотреть.
Почему бы не применить к изначальному изображению фильтр выделения границ? Например, использовать оператор Собеля
Было бы ещё прикольно сделать что-то типа монитора используя лазер вместо нити и поворотные зеркала вместо гвоздиков
Сложность в том, что направления отражений в одной точке должно быть много разных 🙁
@@nikola-nikrasov понятное дело. А так же точность позиционирования зеркал очень важна. Единственный вариант - жертвовать детализацией изображения.
Жду с нетерпением продолжение))
Я так понимаю, это первый проект, который не смог поддаться сразу. Давай АлексГайвер, мы в тебя верим!
В алгоритме не хватает рандома, желательно синего шума. А ещё для эстетичности расчётов думаю надо чтобы чёрная нить на белых пикселях отнимала очки оценки полезности, а не просто не давала их. Так мы проанализируем самые бесполезные линии.
Урааааа!!!!
Наконец-то интересное видео среди этих скучных однообразных роликов у других блогеров
Ждемс видос на румтур! Интересно, как ты все сделал))
Будет куда более интересно посмотреть следующую часть
У вас изначально неправильная концепция: картина закрашивается не нитями, а их пересечениями! нужен рекурсивный алгоритм для поиска всех пересечений следующего шага, а не пикселей! человеческий глаз устроен так, что пересечение двух нитей для него намного значимее чем вся нить! кроме того очень важен угол пересечения, чем он больше тем менее значим!
Если бы нас в школе учили на питоне, нет, учили на паскале, даже посмеялся когда услышал
Видос топ, давно думал сделать такую картину
Ты еще про ку бейсик вспомни))))
Какая разница, тебя что на паскале, что на питоне обучат только основам, а они везде одинаковые. Не нужно свою лень перекладывать на других.
меня был вижуал бейсик в школе)
Вот он следующий проект (после эмбилайта), который я повторю!
Эмбилайт повторял кстати 3 раза и еще повторять буду))) спасибо огромное!
Количество проделанной работы впечатляет. Однозначно лайк!