Что нужно сегментировать? Я был бы хорош, так что посмотрите некоторые метки сегментации.
Возможно, вам не нужно улучшать изображение, если весь ваш набор данных имеет такой же уровень шума, сеть будет обобщаться правильно.
Что касается архитектур CNN, то это зависит от ограничений, которые у вас есть с вычислительной мощностью и точностью. Если это не является ограничением, например, MaskRCNN , проверьте, что репо является хорошей отправной точкой, некоторые результаты выглядят так:
Имейте в виду, что это немного сложная архитектура, поэтому время вывода может быть слишком большим (но это выполнимо в режиме реального времени в зависимости от вашего графического процессора).
Другими простыми архитектурами являются FCN (полностью сверточные сети), в основном это ваш CNN, но вместо полностью связанных уровней:
Вы заменяете на Полностью сверточные слои:
Изображения взяты ЗДЕСЬ .
Преимущество этих FCN заключается в том, что они действительно просты в реализации и модификации, поскольку вы можете перейти от простых архитектур (FCN-Alexnet) к более сложным и более точным (FCN-VGG, FCN-Resnet).
Кроме того, я думаю, что вы не упоминаете framework, есть из чего выбирать, и это зависит от того, насколько хорошо вы знакомы с языками, большинство из них вы можете делать с помощью python:
Но если вы новичок, попробуйте начать с графического интерфейса, Nvidia Digits - отличная отправная точка и его очень легко настроить, он основан на Caffe, поэтому он довольно быстр при развертывании и может легко интегрироваться с ускорителями типа TensorRT.