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

Почему?

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

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

Первым делом я подумал, что это сетка для птиц, но по какой-то причине она не подошла для моего случая.

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

Проверь это.

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

Как?

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

Первоначальный план

Итак, на самом начальном уровне я подумал об использовании Android-вещей, пьезо-зуммера, raspberry pi, базы данных реального времени firebase и приложения для Android. Я мог подумать об использовании специального мобильного устройства, потому что у меня очень старый запасной мобильный телефон, сенсор которого не работает должным образом и почти умирает. Так что лучше было вынуть его из шкафа и использовать с пользой.

Согласно первоначальному плану, приложение для Android будет постоянно сканировать голубей, используя любые методы обнаружения, скорее всего, облачное зрение Google. Когда приложение обнаруживает голубя, оно может активировать какой-либо флаг в базе данных firebase в реальном времени. С другой стороны, Android-устройства внутри raspberry pi будут прослушивать этот флаг в firebase и воспроизводить звук в пьезозуммере.

Это оставалось только на бумаге в течение нескольких месяцев. Но недавно Google IO18event анонсировал новый ML Kit в Firebase.

Я видел это видео, проверял это официальное объявление и видел, что комплект ML предоставляет пять готовых к использованию различных API. Такие как

  • Распознавание текста
  • Распознавание лиц
  • Сканирование штрих-кода
  • Маркировка изображений
  • Признание вехой

Я был очень взволнован, узнав, что API, который меня интересовал, был в ML Kit, и это маркировка изображений. Он действительно распознает объекты на изображении, поэтому я мог легко интегрироваться в приложение для Android и обнаруживать голубей. Это фактически дало толчок этому проекту, и я начал новую жизнь.

Окончательный план

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

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

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

Тестировать это приложение было немного сложно, так как у меня не может быть голубей все время передо мной. Я тестировал его, показывая приложению изображение голубей. Во время тестирования я обнаружил несколько вещей…

Проблема 1: поскольку я сделал это приложение для работы только с голубями, оно также может работать с любой другой птицей, потому что обратный вызов, который приложение получал от ML Kit, содержал метку «Птица», а не «голубь» и Это произошло потому, что я использую API на устройстве с более чем 400 ярлыками, охватывающими наиболее часто встречающиеся концепции на фотографиях. Мы также можем использовать Cloud API для точного обнаружения голубей, но для этого нам нужно установить цены, и мне было комфортно с бесплатным API на устройстве.

Проблема 2: приложение начинает воспроизводить звук, даже если видит перья какой-либо птицы, а не саму птицу или голубей в моем случае. Я обнаружил, что обратные вызовы из комплекта ML также внушают уверенность в результате. Поэтому, когда я установил уверенность более 65%, теперь приложение будет звучать только в том случае, если обнаружит и имеет более 65% уверенности в том, что это птица. Таким образом, установив порог достоверности на 65%, проблема была решена. Он больше не может воспроизводить звук на перьях птицы.

Проблема 3: звук. Я не был уверен, что голуби испугаются любого случайного звука уведомления с телефона. Я поискал звук, пугающий голубей, и скачал его.

Последний по порядку, но не по значимости. Мне пришлось дать этому приложению имя, и мне на ум пришло «Furr». Не знаю почему, но понравилось, и я решил оставить себе.

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

Вот так я разместил мобильный телефон под управлением Furr.

Мех в действии

ПРИМЕЧАНИЕ. Это не полное доказательство. В нем есть несколько ошибок. В большинстве случаев это может не работать полностью или быть непрактичным. Я просто заставил это работать в моем случае использования, и Это всего лишь мое небольшое усилие в решении этой проблемы с помощью технологий.

Я использую открытый исходный код для этого приложения. Вот полный исходный код.



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

Привет, я Пинкеш Даржи. Я пишу о Flutter на https://flutterbeads.com/. Я люблю решать проблемы с помощью технологий, которые значительно улучшают жизнь пользователей. Последние несколько лет я занимаюсь разработкой и ведением различных мобильных приложений в разных сферах. Я люблю писать не только программирование, но и технические статьи.