Съдържание[Крия][Покажи]
- Какво е класификация на изображения?
- Как работи класификацията на изображения?
Класификация на изображения с помощта на Tensorflow & Keras в python+-
- 1. Изисквания за инсталиране
- 2. Импортиране на зависимости
- 3. Инициализиране на параметри
- 4. Зареждане на набора от данни
- 5. Създаване на модела
- 6. Обучение на модела
- Тестване на модела
- 7. Импортиране на помощните програми за тестване
- 8. Създаване на python директория
- 9. Зареждане на тестови данни и модел
- 10. Оценка и прогноза
- 11. Резултати
- Заключение
Успокояващо е да знаем, че сме успели да вдъхнем на роботите нашите вродени способности да учат чрез пример и да възприемат заобикалящата ги среда. Основното предизвикателство е, че обучението на компютрите да „виждат“ като хората ще изисква много повече време и усилия.
Въпреки това, когато вземем предвид практическата стойност, която това умение предоставя в момента на организациите и предприятията, усилията си заслужават. В тази статия ще научите за класифицирането на изображения, как работи и практическото му прилагане. Нека да започнем.
Какво е класификация на изображения?
Работата по подаване на изображение в a невронна мрежа и извеждането на някаква форма на етикет за тази картина е известно като разпознаване на изображение. Изходният етикет на мрежата ще съответства на предварително дефиниран клас.
Може да има множество класове, присвоени на картината, или просто един. Когато има само един клас, често се използва терминът „разпознаване“, докато когато има няколко класа, често се използва терминът „класификация“.
Откриване на обект е подмножество от класификация на картини, в която определени екземпляри на обекти се откриват като принадлежащи към даден клас като животни, превозни средства или хора.
Как работи класификацията на изображения?
Изображение под формата на пиксели се анализира от компютър. Той постига това, като третира картината като колекция от матрици, чийто размер се определя от разделителната способност на изображението. Най-просто казано, класификацията на картината е изследване на статистически данни, използващи алгоритми от гледна точка на компютър.
Класификацията на изображенията се извършва при обработка на цифрови изображения чрез групиране на пиксели в предварително определени групи или „класове“. Алгоритмите разделят изображението на последователност от забележителни характеристики, което намалява тежестта за крайния класификатор.
Тези качества информират класификатора за значението на изображението и потенциалната класификация. Тъй като останалите процеси при класифициране на картина зависят от него, методът за извличане на характеристики е най-критичната фаза.
- предоставени данни към алгоритъма също е от решаващо значение при класификацията на изображенията, особено при контролираната класификация. В сравнение с ужасен набор от данни с дисбаланс на данните въз основа на клас и ниско качество на картината и анотациите, добре оптимизираният набор от данни за класификация се представя отлично.
Класификация на изображения с помощта на Tensorflow & Keras в python
Ние ще използваме ЦИФАР-10 набор от данни (който включва самолети, самолети, птици и други 7 неща).
1. Изисквания за инсталиране
Кодът по-долу ще инсталира всички предпоставки.
2. Импортиране на зависимости
Направете файл train.py в Python. Кодът по-долу ще импортира зависимостите Tensorflow и Keras.
3. Инициализиране на параметри
CIFAR-10 включва само 10 категории картини, следователно брой класове просто се отнасят до броя категории за класифициране.
4. Зареждане на набора от данни
Функцията използва модула Tensorflow Datasets, за да зареди набора от данни и ние задаваме с информация True, за да получим някаква информация за него. Можете да го отпечатате, за да видите какви са полетата и техните стойности, и ние ще използваме информацията, за да извлечем броя на пробите в комплектите за обучение и тестване.
5. Създаване на модела
Сега ще изградим три слоя, всеки от които се състои от две ConvNets с функция за максимално обединяване и 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, трябва да експериментирате с модела, за да откриете как различните параметри влияят на неговата производителност.
Оставете коментар