Приємно знати, що нам вдалося наповнити роботів нашими вродженими здібностями вчитися на прикладі та сприймати оточення. Основна проблема полягає в тому, щоб навчити комп’ютери «бачити», як людям потрібно набагато більше часу та зусиль.
Однак, якщо врахувати практичну цінність, яку ця вміння надає організаціям і підприємствам, ці зусилля варті того. У цій статті ви дізнаєтеся про класифікацію зображень, як вона працює та її практичне застосування. Давайте почнемо.
Що таке класифікація зображень?
Завдання подачі зображення в a нейронної мережі і надання йому певної форми мітки для цього зображення відоме як розпізнавання зображення. Вихідна мітка мережі відповідатиме попередньо визначеному класу.
Зображенню може бути призначено безліч класів або просто один. Коли існує лише один клас, часто використовується термін «розпізнавання», тоді як при наявності кількох класів часто використовується термін «класифікація».
Виявлення об'єктів це підмножина класифікації зображень, у якій окремі екземпляри об’єктів виявляються як належні до певного класу, наприклад тварини, транспортні засоби чи люди.
Як працює класифікація зображень?
Зображення у вигляді пікселів аналізується комп’ютером. Він досягає цього, розглядаючи зображення як набір матриць, розмір яких визначається роздільною здатністю зображення. Простіше кажучи, класифікація зображень - це дослідження статистичних даних з використанням алгоритмів з точки зору комп'ютера.
Класифікація зображень здійснюється при обробці цифрових зображень шляхом групування пікселів у заздалегідь визначені групи або «класи». Алгоритми поділяють зображення на ряд важливих характеристик, що зменшує навантаження на остаточний класифікатор.
Ці якості інформують класифікатора про значення зображення та його потенційну класифікацію. Оскільки решта процесів у класифікації зображення залежать від нього, метод виділення характеристики є найбільш критичним етапом.
Команда надані дані Алгоритм також має вирішальне значення в класифікації зображень, особливо контрольованої. У порівнянні з жахливим набором даних із дисбалансом даних на основі класу та низької якості зображення та анотацій, добре оптимізований набір даних класифікації працює чудово.
Класифікація зображень за допомогою Tensorflow & Keras в python
Ми будемо використовувати ЦИФАР-10 набір даних (який включає літаки, літаки, птахів та інші 7 речей).
1. Вимоги до встановлення
Наведений нижче код встановить усі необхідні умови.
2. Імпорт залежностей
Зробіть файл train.py на Python. Наведений нижче код імпортує залежності Tensorflow та Keras.
3. Параметри ініціалізації
CIFAR-10 включає лише 10 категорій зображень, отже, кількість класів просто відноситься до кількості категорій для класифікації.
4. Завантаження набору даних
Функція використовує модуль Tensorflow Datasets для завантаження набору даних, і ми встановлюємо для параметра info значення True, щоб отримати деяку інформацію про нього. Ви можете роздрукувати його, щоб побачити, які поля та їх значення, і ми використаємо цю інформацію, щоб отримати кількість зразків у наборах для навчання та тестування.
5. Створення моделі
Тепер ми побудуємо три рівні, кожен із яких складається з двох мереж ConvNet з максимальним об’єднанням і функцією активації ReLU, а потім повністю підключеною системою з 1024 одиниць. У порівнянні з ResNet50 або Xception, які є найсучаснішими моделями, це може бути порівняно крихітною моделлю.
6. Навчання моделі
Я використовував Tensorboard, щоб виміряти точність і втрати в кожну епоху і надати нам чудовий дисплей після імпорту даних та створення моделі. Запустіть наступний код; залежно від вашого CPU/GPU, навчання триватиме кілька хвилин.
Щоб використовувати tensorboard, просто введіть таку команду в терміналі або командному рядку в поточному каталозі:
Ви побачите, що втрати перевірки зменшуються, а точність зростає приблизно до 81%. Це фантастично!
Тестування моделі
Коли тренування закінчено, остаточна модель і ваги зберігаються в папці результатів, що дозволяє нам тренуватися один раз і робити прогнози, коли завгодно. Дотримуйтесь коду в новому файлі Python з назвою test.py.
7. Імпорт утиліт для тестування
8. Створення каталогу python
Створіть словник Python, який перекладає кожне ціле значення у відповідну мітку набору даних:
9. Завантаження тестових даних і моделі
Наступний код завантажить тестові дані та модель.
10. Оцінка та передбачення
Наступний код оцінюватиме та прогнозує зображення жаб.
11. Результати
Модель передбачила жабу з точністю 80.62%.
Висновок
Гаразд, ми закінчили з цим уроком. Хоча 80.62% не підходить для невеликого CNN, я настійно раджу вам змінити модель або подивитися на ResNet50, Xception або інші передові моделі для кращих результатів.
Тепер, коли ви створили свою першу мережу розпізнавання зображень у Keras, вам слід поекспериментувати з моделлю, щоб дізнатися, як різні параметри впливають на її продуктивність.
залишити коментар