Какой тип CNN подойдет для обработки подводных изображений? - PullRequest
1 голос
/ 08 марта 2019

Основная цель (моя назначенная работа) состоит в том, чтобы сделать сегментацию изображения для подводных изображений, используя сверточную нейронную сеть.Снимки с камеры, сделанные с подводной конструкции, будут иметь плохое качество изображения из-за сильного шума и плохой освещенности.Чтобы добиться более высокой точности классификации, я хочу сделать автоматическое улучшение изображений (см. Прикрепленный файл).Итак, я хочу знать, какая архитектура CNN будет лучше всего выполнять обе задачи.Пожалуйста, предложите любые возможные решения для достижения цели.

См. Изображение для справки

1 Ответ

1 голос
/ 08 марта 2019

Что нужно сегментировать? Я был бы хорош, так что посмотрите некоторые метки сегментации.

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

Что касается архитектур CNN, то это зависит от ограничений, которые у вас есть с вычислительной мощностью и точностью. Если это не является ограничением, например, MaskRCNN , проверьте, что репо является хорошей отправной точкой, некоторые результаты выглядят так: enter image description here Имейте в виду, что это немного сложная архитектура, поэтому время вывода может быть слишком большим (но это выполнимо в режиме реального времени в зависимости от вашего графического процессора).

Другими простыми архитектурами являются FCN (полностью сверточные сети), в основном это ваш CNN, но вместо полностью связанных уровней: enter image description here

Вы заменяете на Полностью сверточные слои: enter image description here

Изображения взяты ЗДЕСЬ .

Преимущество этих FCN заключается в том, что они действительно просты в реализации и модификации, поскольку вы можете перейти от простых архитектур (FCN-Alexnet) к более сложным и более точным (FCN-VGG, FCN-Resnet).

Кроме того, я думаю, что вы не упоминаете framework, есть из чего выбирать, и это зависит от того, насколько хорошо вы знакомы с языками, большинство из них вы можете делать с помощью python:

  • TensorFlow
  • Pytorch
  • MXNet

Но если вы новичок, попробуйте начать с графического интерфейса, Nvidia Digits - отличная отправная точка и его очень легко настроить, он основан на Caffe, поэтому он довольно быстр при развертывании и может легко интегрироваться с ускорителями типа TensorRT.

...