Добрый день, в продолжении цикла статей: первый И второй об использовании камеры «рыбий глаз» с Raspberry Pi 3 и ROS я хотел бы поговорить об использовании предварительно обученных моделей глубокого обучения для компьютерного зрения с камерой «рыбий глаз» на Raspberry Pi 3. Для интересующихся см.
кат.
Классификация изображений
Как и в предыдущих статьях, мы будем использовать Ubuntu 16.04. Для работы нам понадобится библиотека Keras. Вы можете установить его на Ubuntu, следуя руководству.отсюда .
Пойдем страница и нажмите кнопку СКАЧАТЬ КОД! внизу страницы.
Вы получите электронное письмо с источниками.
Скачаем архив, разархивируем его и зайдем в папку.
Сначала давайте запустим скрипт классификации объектов на основе предварительно обученной модели GoogleNet:
Мы получаем этот вывод в терминалеcd pi-deep-learning/ python pi_deep_learning.py --prototxt models/bvlc_googlenet.prototxt \ --model models/bvlc_googlenet.caffemodel --labels synset_words.txt \ --image images/barbershop.png
[INFO] loading model.
[ INFO:0] Initialize OpenCL runtime.
[INFO] classification took 1.7103 seconds
[INFO] 1. label: barbershop, probability: 0.78055
[INFO] 2. label: barber chair, probability: 0.2194
[INFO] 3. label: rocking chair, probability: 3.4663e-05
[INFO] 4. label: restaurant, probability: 3.7257e-06
[INFO] 5. label: hair spray, probability: 1.4715e-06
Он использует модуль глубокой нейронной сети (DNN) из OpenCV 3.3. Вы можете прочитать о нем Здесь .
Теперь давайте попробуем классифицировать объекты с помощью предварительно обученной модели Squeezenet: python pi_deep_learning.py --prototxt models/squeezenet_v1.0.prototxt \
--model models/squeezenet_v1.0.caffemodel --labels synset_words.txt \
--image images/barbershop.png
[INFO] loading model.
[ INFO:0] Initialize OpenCL runtime.
[INFO] classification took 0.86275 seconds
[INFO] 1. label: barbershop, probability: 0.80578
[INFO] 2. label: barber chair, probability: 0.15124
[INFO] 3. label: half track, probability: 0.0052873
[INFO] 4. label: restaurant, probability: 0.0040124
[INFO] 5. label: desktop computer, probability: 0.0033352
Моя классификация сработала за 0,86 секунды.
Давайте теперь попробуем использовать изображение cobra.png: python pi_deep_learning.py --prototxt models/squeezenet_v1.0.prototxt \
--model models/squeezenet_v1.0.caffemodel --labels synset_words.txt \
--image images/cobra.png
Заключение: [INFO] classification took 0.87402 seconds
[INFO] 1. label: Indian cobra, probability: 0.47972
[INFO] 2. label: leatherback turtle, probability: 0.16858
[INFO] 3. label: water snake, probability: 0.10558
[INFO] 4. label: common iguana, probability: 0.059227
[INFO] 5. label: sea snake, probability: 0.046393
Обнаружение объектов
Теперь давайте попробуем обнаружить объекты с помощью Raspberry Pi с камерой «рыбий глаз».Пойдем страница и нажмите кнопку СКАЧАТЬ КОД! внизу страницы.
Вы получите электронное письмо с источниками.
Аналогично классификации скачиваем, разархивируем, заходим в папку.
Запустим скрипт обнаружения объектов: python pi_object_detection.py --prototxt MobileNetSSD_deploy.prototxt.txt --model MobileNetSSD_deploy.caffemodel
Заключение: [INFO] loading model.
[INFO] starting process.
[INFO] starting video stream.
[ INFO:0] Initialize OpenCL runtime.
libEGL warning: DRI3: failed to query the version
libEGL warning: DRI2: failed to authenticate
При запуске скрипта мы можем получить следующую ошибку: Error: AttributeError: ‘NoneType’ object has no attribute ‘shape’ (comment to post)
Чтобы решить проблему, откройте файл pi_object_detection.py и закомментируйте строку 74: vs = VideoStream(src=0).
start()
и раскомментируйте строку 75
vs = VideoStream(usePiCamera=True).
start()
Мы видим, что скрипт обнаруживает некоторые объекты, хотя и не все объекты распознает корректно.
По моим наблюдениям, скрипт довольно быстро обнаруживает объекты (к сожалению, fps не удалось записать).
Мы также можем запустить скрипт real_time_object_detection.py. В случае ошибки повторите процедуру для скрипта pi_object_detection.py: закомментируйте строку 38 и раскомментируйте строку 39. Результат
Это все на данный момент. Удачи всем и до новых встреч!
Теги: #Raspberry Pi #Робототехника #глубокое обучение #глубокое обучение #компьютерное зрение #обнаружение объектов #рыбий глаз
-
Компьютеры Не Страшны
19 Oct, 24 -
Введение В React
19 Oct, 24 -
Иду 2009 – Началась Регистрация
19 Oct, 24 -
Wiki Для Программистов Python
19 Oct, 24 -
Что Делает Хорошего Программиста Хорошим?
19 Oct, 24