Прежде всего, позвольте мне сказать вам, что я люблю голубей и особенно белых голубей. Потом,
Почему?
Поэтому, когда я переехал в новый дом, через пару дней я начал слышать голубиный звук ранним утром, а иногда и днем. Мне приходилось вставать 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/. Я люблю решать проблемы с помощью технологий, которые значительно улучшают жизнь пользователей. Последние несколько лет я занимаюсь разработкой и ведением различных мобильных приложений в разных сферах. Я люблю писать не только программирование, но и технические статьи.