Как получить лучшие наборы данных для вас Задача компьютерного зрения
6 декабря 2022 г.Несложно понять, что «данные» являются наиболее важным аспектом науки о данных, и компьютерное зрение не является исключением. Возможно, вы знакомы с популярным выражением «мусор на входе — мусор на выходе».
Качество данных также чрезвычайно важно. Независимо от того, ищете ли вы свой набор данных в Интернете или фотографируете сами, эти советы помогут вам собрать более качественный набор данных.
Хорошее представление
Вы всегда должны думать о своем выводе и собирать набор данных на его основе. Если вы собираетесь делать выводы о камерах видеонаблюдения и объектах реального мира, вам не нужно добавлять мультфильмы или изображения игрушек. Вы должны попытаться воссоздать сценарий вывода и собрать наборы данных, близкие к реальной жизни. Для этого процесса вы должны помнить, что набор данных все равно должен быть разнообразным, поэтому вы должны собирать данные с разным освещением, временем года, фоном и даже разными камерами. Поэтому вы хотите убедиться, что ваша нейронная сеть будет готова к большинству реальных случаев.
Сбалансированный набор данных
Рекомендуется собрать одинаковое количество образцов для каждого класса. Вы всегда должны стремиться к балансу, но некоторый дисбаланс — это не всегда плохо. Сбалансированный набор данных поможет вашей модели избежать смещения для любого класса. В некоторых случаях вам могут понадобиться несбалансированные данные, если в реальности мировой сценарий, у вас будет этот дисбаланс. Но в худшем случае ваша модель может в конечном итоге предсказать только класс, и если вы используете точность в качестве своей метрики (что неверно в случае с несбалансированными данными), вы даже не увидите, что есть проблема. Вы не всегда можете получить идеально сбалансированные данные, но для этого можно использовать различные методы.
Хорошая маркировка
Вы должны быть последовательны в маркировке данных. Если у вас есть 2 типа повреждений в качестве классов, вы должны быть последовательны, когда классифицируете повреждения как тип 1 или 2. Вы должны пометить каждый объект вашего класса в наборе данных. Очень важно не оставлять целевые метки без меток. Вы также действительно хотите маркировать с хорошей точностью. Ваша ограничительная рамка должна быть как можно ближе к краям вашего объекта.
Достаточно данных
Конечно, чем больше данных, тем лучше. Но мы живем в реальном мире, поэтому получить больше данных всегда сложно. Количество данных, необходимых для обучения модели, действительно зависит от типа ваших объектов, поэтому я не могу просто дать совет по количеству данных, которые вам понадобятся. Но с предварительно обученными моделями жизнь намного проще. Если ваши изображения не очень специфичны, как данные МРТ или рентгеновских лучей, вы должны быть в порядке с предварительно обученными моделями, поскольку они уже могут извлекать низкоуровневые функции. Вам может понадобиться около 1000 изображений на класс, чтобы настроить модель для вашей задачи. Если ваши данные действительно специфичны, и вам нужно обучить модель с нуля, вам понадобится гораздо больше данных.
Фоновые изображения
Если вам нужно обнаружить аномалию или что-то редкое, и вы обрабатываете много кадров, у вас будут ложные срабатывания. Проблема будет еще хуже, если ваши объекты маленькие, а вы обрабатываете кадры в режиме реального времени 24/7.
Есть несколько методов решения этой проблемы, но вы должны начать с добавления фоновых изображений в свой набор данных. Фоновые изображения должны быть похожи на другие изображения в наборе данных, но без какого-либо целевого класса. Вы просто показываете модели то, что не является целью. Также неплохо добавить туда несколько объектов, визуально похожих на ваши целевые классы. Это также должно помочь уменьшить количество ложных срабатываний.
Дополнение
Аугментация помогает сделать ваш набор данных более разнообразным, а вашу модель — более универсальной. Например, вы берете свое изображение и немного поворачиваете его. Есть много способов дополнить ваши данные, альбументация — хорошая библиотека для этой цели.
Вы можете использовать увеличение двумя способами:
1 – чтобы искусственно увеличить набор данных или сбалансировать классы.
2 — для случайного применения дополнений во время выполнения. Второй метод используется чаще и часто реализуется в детекторах SOTA.
Разделение набора данных
Рекомендуется разделить набор данных на 3 части: обучение, проверка и тестирование. Вы используете данные обучения для обучения, набор данных проверки для выбора наилучших весов, а в конце обучения вы используете тестовые данные, чтобы убедиться, что вы не «перешли» к данным проверки. Вы не можете переобучить проверочные данные, так как вы не тренируетесь на них, но вы выбираете лучшие веса на основе проверочных данных. Тестовые данные не видны модели, но проверочные данные видны. Таким образом, вы хотите убедиться, что ваши показатели аналогичны данным проверки и тестирования.
Автоматическая маркировка
Если у вас есть рабочая модель и вы собираете больше данных, чтобы сделать ее лучше, вы можете использовать эту модель для маркировки новых данных. Во-первых, вы можете использовать свою модель в качестве инструмента для маркировки. Это поможет вам, хотя вам, возможно, придется исправить ограничивающие рамки. Повторное обучение на изображениях, где ваша модель уже может обнаруживать объект с высокой степенью достоверности, не имеет особого смысла, но полезно, если достоверность не столь высока.
Во-вторых, вы можете запустить свою модель на новых данных и посмотреть, в каких случаях она вообще не обнаружит объект, поэтому вы можете сделать больше изображений в этом стиле, чтобы помочь модели в будущем.
Оригинал