|
Сортировка фруктов с использованием OpenCV
на Raspberry Pi
Сортировка фруктов по одному руками - одна из самых утомительных работ. Это требует больших усилий и рабочей силы, а также отнимает много времени. В наше время отрасли внедряют автоматизацию и интеллектуальные машины, чтобы упростить и повысить эффективность своей работы, и сортировка фруктов с использованием openCV на Raspberry Pi может сделать это.
Итак, мы попытались включить автоматизацию, сделав умную сортировочную машину для фруктов. Система сортировки фруктов OpenCV использует модули обработки изображений и TensorFlow для обнаружения фруктов, определения их категории и последующего присвоения имени этому фрукту. Предположим, фермер собрал в своем саду кучу фруктов, таких как бананы, яблоки, апельсины и т. Д., И хочет их отсортировать. Затем машина обнаружит разные фрукты и отсортирует их по нашему выбору. Он также может подсчитать количество отсортированных фруктов. В этом проекте мы делаем машину для сортировки апельсинов, для которой нам потребуется камера Raspberry Pi. Используя TensorFlow и OpenCV, мы попытаемся обнаружить апельсин. Серводвигатель, подключенный к Raspberry Pi, затем отсортирует апельсин и поместит его в корзину.
Итак, соберем для нашего проекта следующие компоненты.
Предпосылки
Предполагая, что вы уже установили последнюю версию ОС Raspbian и среду Python на свою плату Raspberry Pi, откройте терминал Linux, а затем установите необходимые модули и библиотеки, используя следующий синтаксис.
sudo apt-get update
sudo apt-get upgrade
sudo nano / etc / dphys-swapfile
Затем измените строку CONF_SWAPSIZE = 100 на CONF_SWAPSIZE = 1024
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
sudo pip3 установить opencv
sudo pip3 установить numpy
wget https://bootstrap.pypa.io/get-pip.py
pip3 установить dlib
pip3 установить тензор потока
После установки вы можете приступить к клонированию модулей, примеров и файлов TF , используя следующую команду:
git clone https://github.com/tensorflow/tensorflow.git
Кодирование
Теперь перейдите в каталог, в который вы загрузили папку TensorFlow, а затем откройте папку object_detection.
tenorflow1 / модели / исследования / object_detection
Теперь откройте папку с данными и создайте файл с именем fruit.pbtxt. Здесь составьте список фруктов, которые нужно обнаружить. (См. Рис. 1.)
Рисунок 1.
Вернитесь в папку Object_detection и создайте новый файл с именем fruithort.py. Сделайте некоторые изменения в коде и поймите его.
Прежде всего, импортируем в код необходимые библиотеки. Здесь мы используем следующий набор библиотек и модулей Tensor. (См. Рис. 2.)
Операционные системы
cv2
Numpy
PiCamera
тензорный поток
argparse
sys
дата и время
gpiozero import Servo
Время
Следующая часть кода состоит из пути модели обнаружения объекта Tensorflow и пути модели метки обнаружения объекта. Здесь мы меняем файл метки обнаружения объекта на наш файл fruit.pbtxt, который мы создали ранее. (См. Рис. 2).
Рис 2.
В следующей части кода мы создали переменную имени, в которой хранятся результаты вывода объекта, обнаруженного камерой. После этого у нас есть еще две строковые переменные с именами substring1 и substring2, в которых мы устанавливаем имена фруктов, которые нужно отсортировать. Затем мы посчитаем имя подстроки в выходном результате обнаруженного объекта, чтобы получить точное количество фруктов, обнаруженное камерой.
Затем условие if () проверяет, превышает ли количество обнаруженных апельсинов 1. Если да, то он перемещает вал сервопривода, чтобы отделить этот фрукт от других, а также подсчитать это количество фруктов. В следующем фрагменте кода мы сохраним данные об общем количестве фруктов с отметкой времени в текстовом файле.
Рис 3.
Связь
Теперь подключите компоненты, как показано на принципиальной схеме ниже.
Рис 4.
Тестирование
Включите Raspberry Pi, а затем запустите созданный нами код Python. После этого поместите камеру рядом с фруктами, которые размещены на движущейся конвейерной ленте. При обнаружении фрукта с названием апельсин сервопривод перемещает его, чтобы бросить его в корзину и держать отдельно от других фруктов. Вы можете увидеть общее количество обнаруженных фруктов, поскольку они подсчитываются в терминале Python. Он также сохранит общее количество фруктов, обнаруженных в текстовом файле, с отметкой времени в базе данных.
Скачать исходный код