Как узнать, что искать в Google, если вы не знаете, что ищете?

Как разработчик программного обеспечения, я думал научиться использовать компьютерное зрение для сканирования изображений, как Vivino 🍷 делает с винными этикетками… пока не начал пробовать.

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

3,4 миллиарда результатов поиска! Да, это не сработает. Давайте попробуем что-нибудь более конкретное, например, «как распознать элемент на изображении»:

Чего ждать? Есть еще больше результатов для этого! Слишком много информации — это проблема, с которой вы столкнетесь, пытаясь научиться компьютерному зрению. Перегруженность грозит полностью отвлечь вас от темы.

Итак, если вы, как и я, визуальный ученик, вы, скорее всего, обратитесь к YouTube за визуальным комфортом. Учебник за учебником будет всплывать. Все они обещают научить вас компьютерному зрению за один день или меньше!

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

Это не будет быстро и легко!

Отказ от ответственности! Это будет не быстро и не легко. Люди получают степень магистра в области компьютерного зрения, так как же выучить его за 30 минут?

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

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

Некоторые из самых популярных включают в себя:

  • Классификация изображений. Вероятно, это самый известный метод. Это процесс присвоения изображению метки для его классификации.
  • Обнаружение объектов: процесс идентификации нескольких объектов на одном изображении, их маркировки и вывода ограничивающих рамок вокруг объектов.
  • Отслеживание объекта. Относится к процессу отслеживания объекта в движущейся сцене.
  • Сегментация изображения. Объекты на изображении группируются на основе определенных категорий. Например, «пешеходы», «велосипеды», «транспортные средства», «тротуары» могут быть сегментами уличной сцены. (Несколько объектов в одной категории рассматриваются как единое целое)
  • Сегментация экземпляров. Определите каждый экземпляр определенной категории. Например, на изображении трафика мы могли бы искать каждый экземпляр транспортного средства, в котором транспортное средство категории разбито на «автомобили», «мотоциклы», «грузовики» и т. д.

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

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

Даже если это в 2 раза быстрее, это поможет вам узнать о важных темах в области компьютерного зрения, что поможет вам сузить поиск в Google, чтобы глубже понять область компьютерного зрения и то, как оно работает!

Пара ресурсов, которые я рекомендую:

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

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

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

Что дальше?

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

TensorFlow, PyTorch и Keras — это программное обеспечение с открытым исходным кодом, которое позволяет вам создавать приложения компьютерного зрения с помощью описанных выше методов без необходимости реализации всех математических аспектов, связанных с компьютерным зрением.

Теперь приступим к работе!

Обо мне

Я штатный Backend Software Engineer в команде инноваций в Lunchbox. На жизненном пути изучения всего в Интернете.