Что такое yolo land

Обновлено: 05.07.2024

Живем один раз! Эта фраза приобрела популярность в начале 10-х, и стала жизненным девизом некоторых людей. Я сама люблю этот подход. Пять лет назад я приняла этот образ жизни, и сейчас все еще продолжаю ему следовать, но уже более разумно. Мне захотелось рассказать об этом подходе, его истинном значении, пользе и рисках, чтобы вдохновить больше людей отвественно пользоваться им.

Настоящее значение YOLO

YOLO - это аббревиатура от «You Only Live Once» , что переводится как: «Живешь только раз» . Из-за постоянно растущей популярности этой фразы многие неправильно понимают ее смысл - для многих эта аббревиатура стала предлогом опрометчивых и глупых действий. Пик популярности движения YOLO был лет пять назад, когда молодые люди (в том числе я тогда :)) на все предложения отвечали YOLO, и это не всегда было рассудительно.

Итак, что на самом деле означает YOLO? Речь идет не о необдуманных или глупых решениях. У YOLO есть более глубокий смысл.

Подобно «carpe diem», что на латыни означает «ловить мгновенье»., YOLO - это фраза, которая постоянно напоминает нам наслаждаться каждым днем своей одной жизни, и максимально наполнять ее приключениями.

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

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

Польза применения YOLO

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

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

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

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

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

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

Риски YOLO

Пробовать новые смелые вещи - это весело и дает массу возможностей прожить яркую жизнь. Но как насчет сопутствующих опасностей?

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

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

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

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

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

Выводы

Попробуйте внедрить в свою жизнь образ жизни YOLO, но подходите к этому отвественно. Можно поставить себе какие-то границы. Например, выполнять по одному необычному действию в день. Или хотя бы три раза в неделю соглашаться с предложениями других людей поучаствовать в приключениях. Или можно устраивать специальные дни, когда вы с другом или партнером будете говорить "да" на все. Это стоит того!

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

Подписывайтесь на мой телеграмм- канал «life as a project» , где я публикую больше материалов об создании и управлении классной жизнью. А еще, у нас появился инстаграм .

Голубиная Методология

Влетает ваш начальник, гадит на всё вокруг, затем улетает.

ADD (Asshole Driven Development)

ADD , по-русски, РЧМ — Разработка Через Чудака.
Старая добрая метода, основные принципы которой — это команды, в которых есть величаший Чудак, который принимает все самые ответственные решения. Разумеется, мудрость, процессы и логика не завезены по-умолчанию.

Классификация объектов в режиме реального времени


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

YOLO — это передовая система обнаружения объектов в реальном времени. На официальном сайте вы можете найти SSD300, SSD500, YOLOv2 и Tiny YOLO, которые прошли обучение с двумя различными наборами данных: VOC 2007+2012 и COCO. Еще больше вариантов конфигураций и наборов данных для машинного обучения вы можете найти в Интернете (например, YOLO9k). Благодаря широкому диапазону доступных вариантов можно выбрать версию, наиболее подходящую для ваших нужд. Например, Tiny YOLO — это самый «компактный» вариант, который может работать быстро даже на смартфонах или Raspberry Pi. Последний вариант нам понравился, и мы использовали его в нашем проекте.

DarkNet и TensorFlow

Модель Yolo была разработана для нейронной сети на основе DarkNet, для нас же некоторые особенности этого решения не подходят. DarkNet хранит обученные коэффициенты (веса) в формате, который может быть распознан с помощью различных методов на различных платформах. Эта проблема может быть камнем преткновения, потому что вам может понадобиться обучить модель на сверхмощном оборудовании, а затем использовать ее на другом оборудование. DarkNet написан на C и не имеет другого программного интерфейса, поэтому, если требования платформы или собственные предпочтения заставят вас обратиться к другому языку программирования, вам придется дополнительно поработать над его интеграцией. Также он распространяется только в формате исходного кода, и процесс компиляции на некоторых платформах может быть весьма проблематичным.

С другой стороны, у нас есть TensorFlow, удобная и гибкая вычислительная система, которая может использоваться на большинстве платформ. TensorFlow предоставляет API для Python, C ++, Java, Go и других языков программирования, поддерживаемых сообществом. Фреймворк с конфигурацией по умолчанию может быть установлен одним кликом мыши, но если вы хотите большего (например, поддержки конкретных инструкций процессора), можно легко провести компиляцию из источника с автоматическим определением аппаратного обеспечения. Запуск TensorFlow на графическом процессоре также довольно прост. Все, что вам нужно — это NVIDIA CUDA и tenorflow-gpu, специальный пакет с поддержкой графического процессора. Огромное преимущество TensorFlow — его масштабируемость. Он может использовать как несколько графических процессоров для повышения производительности, так и кластеризацию для распределенной обработки данных.

Мы решили взять лучшее из обоих миров и адаптировать модель YOLO для TensorFlow.

Адаптивный Yolo для TensorFlow

Итак, наша задача состояла в том, чтобы перенести модель YOLO на TensorFlow. Мы хотели избежать любых сторонних зависимостей и использовать YOLO напрямую с TensorFlow. Сначала нам нужно было перенести структуру модели, единственный способ сделать это — повторить модель послойно. К счастью для нас, есть много конвертеров с открытым исходным кодом, которые могут это сделать. Для наших целей наиболее подходящим решением оказался DarkFlow. Мы добавили простую функцию к DarkFlow, которая позволяет нам сохранять контрольные точки TensorFlow в метаданные, ее код можно посмотреть здесь. Вы можете сделать это вручную, но если хотите попробовать разные модели, проще автоматизировать этот процесс.

Выбранная нами модель YOLO имеет строгий размер массива входных данных 608x608 пикселей. Нам нужен был какой-то интерфейс, который может принимать любое изображение, нормализовать его и подавать в нейронную сеть. И мы этот интерфейс разработали. Для нормализации он использует TensorFlow, который работает гораздо быстрее, чем другие опробованные нами решения (нативный Python, numpy, openCV).

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

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

Обучение модели

Для наших целей мы решили использовать предварительно обученную модель. Обученные коэффициенты доступны на официальном сайте YOLO. Следующей задачей было импортировать веса DarkNet в TensorFlow, это было сделано следующим образом:

  • Считывание данных слоя в файле конфигурации DarkNet;
  • Считывание обученных коэффициентов из файла весов DarkNet в соответствии со структурой слоя;
  • Подготовка слоя TensorFlow на основе данных слоя DarkNet;
  • Добавление связей в новом слое;
  • Повторение для каждого слоя.

Архитектура модели и поток данных


Обычно с каждой итерацией классификатор делает предположение относительно того, какой тип объекта находится в окне. Он выполняет тысячи прогнозов для каждого изображения. Это тормозит процесс, вследствие чего работа по распознаванию идет довольно медленно.

Самое большое преимущество модели YOLO, собственно, отражено в названии — You Only Look Once. Эта модель накладывает на изображение сетку, разделяя его на ячейки. Каждая ячейка пытается предсказать координаты зоны обнаружения с оценкой уверенности для этих полей и вероятностью классов. Затем оценка уверенности для каждой зоны обнаружения умножается на вероятность класса, чтобы получить окончательную оценку.



Иллюстрация с сайта YOLO.

Реализация

В нашем GitHub-репозитории вы можете найти демопроект, который представляет собой предварительно обученную модель TensorFlow YOLO2. Данная модель может распознать 80 классов. Для ее запуска вам нужно установить дополнительные зависимости, необходимые для демонстрационных целей (для интерфейса модели требуется только TensorFlow). После установки просто запустите python eval.py, и он будет захватывать видеопоток с вашей веб-камеры, оценивать его и отображать результаты в простом окне со своими прогнозами. Процесс оценки — покадровый — и может занять некоторое время в зависимости от оборудования, на котором он запущен. На Raspberry Pi для оценки одного кадра может потребоваться несколько секунд.

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

Интеграция с IoT

Конечно, было бы неплохо интегрировать в этот проект службу IoT, а также настроить доставку результатов распознавания туда, где к ним смогут получить доступ и другие службы.
Существует еще один демо-скрипт — python daemon.py, который будет запускать простой сервер, отображающий видеопоток с веб-камеры с прогнозами на .


Он также запускает клиент DeviceHive. Конфигурация доступна на .


Это позволяет отправлять всю прогнозируемую информацию в DeviceHive в виде уведомлений.

Вывод

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

P. S. За время разработки проекта и подготовки статьи к печати OpenCV обзавелся поддержкой YOLO внутри себя. Возможно, для некоторых случаев это решение будет более предпочтительным.

Что значит «YOLO»?

«YOLO» — это аббревиатура, которая расшифровывается как «You Only Live Once» («Живём только раз»). Она происходит от (о, неожиданность) латинского афоризма «Carpe diem» — «Живи одним днём». Изначальный и истинный смысл фразы заключался в том, что человек должен уметь наслаждаться жизнью со всеми теми трудностями, которые она ему преподносит. Позже в поп-культуре этот посыл был немного утерян, оправдывая пьянство и наркозависимость среди молодёжи. Распространение фраза получила после выхода песни «The Motto» американского рэпера Дрейка. В 2014 году в эфире передачи Saturday Night Live он извинился за то, что его посыл был неправильно понят молодёжью и используется ей не в том значении, которое он пытался вложить во фразу.

Поэтому если вы тоже используете эту фразу, лучше 10 раз подумайте, а правильно ли вы её понимаете.

CYAE (Cover Your Ass Engineering)

CYAE — по-русски, МХСКИ — Моя-Хата-С-Краю Инженерия.

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

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

FDD (Fear Driven Development)

FDD — Разработка Через Устрашение

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

YOLO и другие отвязные методологии

Позвольте поведать вам о совершенно новой методологии, которая радикально изменит ваши подходы в программировании. Итак, прервитесь ненадолго от своего стройного и прямолинейного кода и откройте для себя мир альтернативных IT-методологий.

Вообразите наше восхищение, когда манифест этой новаторской новой методологии попал в наши новостные ленты. Пророк YDD , она же YOLO Driven Development Todor Grudev высек в камне (на GitHub) 17 заповедей YDD . YOLO буквально означает — You Only Live Once, или по-русски: ВЖОР — Вы Живете Один Раз.

Узрите же постулаты YDD !

Забудьте все эти древние языческие традиции TDD и BDD . Новая методология каждый день уберегает вас от надоедливых консультантов! Пользователь Ruby.zigzo подытоживает данный YDD манифест следующим образом:

Однако, простой поиск на GitHub формулировки "потому что ВЖОР" выдает свыше 600 результатов, доказывающих, что многие разработчики уже начали применять ВЖОР -подходы:

Ну уж нет!

Итак, ВЖОР — это не ваш метод? Что ж, вот ряд других бодрящих IT методологий, которые можно взять на вооружение.

NDAD (No Developers Allowed in Decisions)

NDAD — Разработчикам Не Дано Принимать Решения.
Разработчикам всех видов и мастей строго воспрещается принимать какие-либо решения касательно проектов, начиная от дизайна бек-енда заканчивая сроками, потому что среднее управленческое звено и топ-менеджмент четко знают, чего они хотят, как это будет сделано и как много времени займет реализация.

Читайте также: