Задача

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

Датасет- https://www.kaggle.com/sshikamaru/fruit-recognition

Набор данных состоит из 33 выбранных различных видов фруктов. Каждая папка названа в честь фрукта и содержит более 400 изображений этого фрукта в разных ракурсах и при разном освещении. На основе данного изображения нам нужно классифицировать фрукты как одну из 33 категорий.

Предварительная обработка -

  • Во-первых, импортируйте все необходимые библиотеки -
  • Загрузите данные и разархивируйте их, чтобы получить доступ к изображениям и этикеткам из вашей записной книжки.
  • Всего в нашем наборе данных 33 вида фруктов. Сопоставьте их и распечатайте соответственно

вывод:

{'Pepper Green': 0, 'Lemon': 1, 'Cantaloupe': 2, 'Passion Fruit': 3, 'Pineapple': 4, 'Apricot': 5, 'Banana': 6, 'Pomegranate': 7, 'Pear': 8, 'Avocado': 9, 'Potato Red': 10, 'Plum': 11, 'Cucumber Ripe': 12, 'Strawberry': 13, 'Cactus fruit': 14, 'Raspberry': 15, 'Tomato': 16, 'Pepper Red': 17, 'Peach': 18, 'Blueberry': 19, 'Onion White': 20, 'Orange': 21, 'Watermelon': 22, 'Kiwi': 23, 'Limes': 24, 'Apple Granny Smith': 25, 'Apple Braeburn': 26, 'Cherry': 27, 'Grape Blue': 28, 'Corn': 29, 'Mango': 30, 'Clementine': 31, 'Papaya': 32}

Разделите изображения на поезд, проверку, тестовые наборы

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

вывод:

Found 13309 images belonging to 33 classes.
Found 3314 images belonging to 33 classes.

Обучение модели

  • Скомпилируйте и подгоните модель

вывод:

Epoch 1/10
415/415 [==============================] - 43s 103ms/step - loss: 2.1697 - accuracy: 0.3067 - val_loss: 0.8547 - val_accuracy: 0.6739
Epoch 2/10
415/415 [==============================] - 42s 102ms/step - loss: 0.7189 - accuracy: 0.7288 - val_loss: 0.3619 - val_accuracy: 0.8514
Epoch 3/10
415/415 [==============================] - 43s 103ms/step - loss: 0.3826 - accuracy: 0.8639 - val_loss: 0.2193 - val_accuracy: 0.9215
Epoch 4/10
415/415 [==============================] - 43s 102ms/step - loss: 0.2220 - accuracy: 0.9222 - val_loss: 0.1437 - val_accuracy: 0.9478
Epoch 5/10
415/415 [==============================] - 43s 104ms/step - loss: 0.2096 - accuracy: 0.9319 - val_loss: 0.0678 - val_accuracy: 0.9789
Epoch 6/10
415/415 [==============================] - 43s 103ms/step - loss: 0.1355 - accuracy: 0.9560 - val_loss: 0.0984 - val_accuracy: 0.9635
Epoch 7/10
415/415 [==============================] - 44s 106ms/step - loss: 0.1193 - accuracy: 0.9596 - val_loss: 0.0309 - val_accuracy: 0.9900
Epoch 8/10
415/415 [==============================] - 43s 103ms/step - loss: 0.1169 - accuracy: 0.9626 - val_loss: 0.0714 - val_accuracy: 0.9740
Epoch 9/10
415/415 [==============================] - 43s 104ms/step - loss: 0.1030 - accuracy: 0.9677 - val_loss: 0.0205 - val_accuracy: 0.9934
Epoch 10/10
415/415 [==============================] - 42s 102ms/step - loss: 0.0963 - accuracy: 0.9704 - val_loss: 0.0706 - val_accuracy: 0.9749

Графики потерь и точности -

Прогнозирование плода из тестового набора

  • Я выбрал случайное изображение из тестового набора

  • Загрузите изображение и преобразуйте его в подходящий размер
  • Делать предсказания

вывод:

Prediction is Pineapple.

Вывод

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

Ссылка на блокнот: https://cainvas.ai-tech.systems/use-cases/fruits-classification-app/

Фото: Амрута Коше