Использование свёрточной сети на Raspberry Pi для подсчёта пчёл


детектирование пчёл
Вручную разметив фотографии пчёл и используя нейросетевую архитектуру u-net на одноплатнике Raspberry Pi, автору удалось подсчитывать пчёл на входе в улей.

Частичное обучение

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

В основе этого трюка лежит очень простой подход:
1. захватить 10’000 изображений
2. разметить 100 изображений и на этих данных обучить самую первую модель — model_1
3. использовать model_1 для разметки других 9’900 изображений
4. обучить вторую модель model_2 уже на этих «размеченных» 10’000 изображениях
В результате, качество model_2, будет выше, чем model_1.

Кроме того, после 3-го шага — можно исправить плохую разметку первой модели, что сделать быстрее, чем размечать картинку с нуля.
В итоге, приходим к следующему подходу разметки и обучения моделей:
1. разметить 10 изображений и натренировать модель,
2. использовать модель для разметки следующих 100 изображений,
3. использовать инструмент для разметки, чтобы исправить метки на этих 100 изображениях,
4. обучить модель уже на 110 размеченных изображениях,
5. повторить.

Запуск обученной TensorFlow-модели на Raspberry Pi показал очень медленную скорость работы — всего 1 картинка в секунду, поэтому автор работает над запуском модели на Movidius Neural Compute Stick.

Ссылки
counting bees on a rasp pi with a conv net
https://github.com/matpalm/bnn

По теме
Сегментация изображений при помощи нейронной сети: U-Net
Установка TensorFlow на Raspberry Pi 3
Использование TensorFlow для распознавания ваших объектов
Программа с нейросетью для закрывания окон на компьютере при приближении начальника
Сортировщик огурцов на Arduino, Raspberry Pi 3 и TensorFlow
Проблемы применения машинного обучения для решения реальных задач

Нейронная сеть
Нейронная сеть — введение
Принцип обучения многослойной нейронной сети с помощью алгоритма обратного распространения
Пример работы самоорганизующейся инкрементной нейронной сети SOINN


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Arduino Bluetooth CraftDuino DIY Google IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение