Проект обнаружения объектов (корневая архитектура) с использованием Tensorflow + Keras.Размер образца изображения для точного обучения модели? - PullRequest
0 голосов
/ 28 сентября 2018

В настоящее время я работаю над проектом в университете, где мы используем python + tenorflow и keras для обучения детектора объектов изображения, чтобы обнаружить различные части корневой системы арабидопсиса.

Наши нынешние результаты довольно хорошиплохо, поскольку у нас есть только около 100 изображений для обучения модели на данный момент, но в настоящее время мы работаем над культивированием большего количества растений, чтобы получить больше изображений (больше данных) для обучения модели тензорного потока.

Мы реализовали следующую модель Mask_RCNN: Github-Mask_RCNN тензор потока Мы собираемся обнаружить три объекта: ствол, основной корень и вторичный корень.Но модель неправильно определяет основные корни в местах расположения вторичных корней.Должно быть в состоянии обнаружить что-то вроде этого: Пример обнаружения корня

Обучающий набор корневых данных, который мы используем сейчас: обучающие образы

Каков обычный размер выборки, который используется для обучения точных результатов нейронной сети?

1 Ответ

0 голосов
/ 29 сентября 2018

Прежде всего: я думаю, что не существует простого правила для оценки размера выборки, но, по крайней мере, это зависит от:

1.Качество ваших изображений

Я скачал изображения и думаю, что вам нужно предварительно обработать их, прежде чем вы сможете использовать их, чтобы уменьшить «сложность проблемы».В некоторых проектах, в которых я работал с биологическими данными, удаление фона (изображение - фильтр нижних частот) было ключом к получению лучших результатов.Но вы должны обязательно удалить / обрезать область за пределами области вашего интереса (например, ленту и линейку).Я бы попытался получить как можно более чистый набор данных (включая ручные настройки cv2 / gimp / и т. Д.), Чтобы сфокусировать сеть для решения «правильной проблемы». После этого вы можете применить некоторые случайные искажения ксделайте так, чтобы он также работал с нечеткими / плохими / реалистичными изображениями.

2.Как вы работаете с вашими данными

Есть несколько хитростей, которые позволяют вам «расширить» ваш набор данных.Иногда очень полезно позволить генератору метод обрезать случайные маленькие патчи из ваших входных данных.Это позволяет вам работать с большим количеством пакетов (на небольших графических процессорах) и дает вашей сети больше «разнообразия» (просто подумайте о задаче conv2d: если вы не используете случайную обрезку, ваши фильтры будут скользить по одним и тем же областям снова и снова(на том же изображении)).По той же причине: примените случайное искажение, переверните и поверните изображения .

3.Сетевая архитектура

В вашем случае я бы предпочел архитектуру U-Net с последним выводом conv2d из 3 (ваших классов) функциональных карт, окончательной активацией softmax иКатегориальная_кросентропия позволяет вам играть с глубиной, потому что иногда вам нужны сложные архитектуры для решения проблемы (около 100%), но в вашем случае вы просто хотите увидеть первый рабочий результат.Таким образом, меньше слоев и простая архитектура также могут помочь вам добиться успеха.Может быть, есть некоторые обученные веса сети для U-Net, которые отвечают вашим требованиям (например, поиск по kaggle).Потому что также полезно (для сокращения необходимых вам данных) использовать « Transfer Learning » -> использовать первые уровни сети (веса), которые уже обучены.Используя семантическую сегментацию, первые фильтры станут чем-то вроде обнаружения края для большинства заданных проблем / изображений.

4.Ваша ментальная модель «точных результатов»

Это самая сложная часть .. потому что она развивается во время вашего проекта.Например.в тот же момент, когда ваши сети начинают хорошо работать с предварительно обработанными входными изображениями, вы начнете думать об изменениях архитектуры / данных, чтобы они работали и с нечеткими изображениями.Вот почему вы должны начать с выполнимой проблемы, но всегда улучшайте свой набор данных (включая редкие виды корней) и настраивайте сетевую архитектуру шаг за шагом .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...