Какой тип CNN используется в Keras для классификации изображений?

У меня есть архитектура CNN, которую я обучаю распознавать некоторые объекты, которые мне нужно в конечном итоге использовать в реальном времени, а затем использовать вывод обнаруженных объектов для дальнейшей работы. У меня есть два вопроса по этому поводу, на которые мне нужно ответить, чтобы оценить следующий шаг, который мне нужно сделать:

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

  2. Созданная модель помогает мне определить, находится ли объект, который я ищу, на изображении или нет, но я также хочу найти область предсказания на изображении. Возможно ли это с использованием той же архитектуры или мне нужно использовать что-то еще, например YOLO?


classifier = Sequential()

classifier.add(Conv2D(32, (3, 3), input_shape= (128, 128, 3), activation = 'relu' ))

classifier.add(MaxPooling2D(pool_size = (2, 2)))

classifier.add(Conv2D(64, (3, 3), activation = 'relu' ))
classifier.add(MaxPooling2D(pool_size = (2, 2)))

classifier.add(Conv2D(128, (3, 3), activation = 'relu' ))
classifier.add(MaxPooling2D(pool_size = (2, 2)))

classifier.add(Flatten())

classifier.add(Dense(units = 128, activation = 'relu'))
classifier.add(Dense(units = 1, activation = 'sigmoid'))

classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])

РЕДАКТИРОВАТЬ: Чтобы быть более конкретным, я хочу знать, предоставляет ли то, что использует тензорный поток или какой-либо бэкэнд-керас, базовую CNN, и то, как мы определяем архитектуру, определяет, какой тип CNN мы используем, например региональный CNN, быстрый CNN или быстрее Си-Эн-Эн? или это что-то определенное на другом уровне?

Надеюсь, я ясно выразился.


person ibrahim.bond    schedule 17.04.2019    source источник
comment
@ ibrahim-bond ты получил ответ на этот вопрос?   -  person Allaye    schedule 19.01.2020
comment
@allaye какой именно вопрос? Я считаю приведенный ниже ответ удовлетворительным.   -  person ibrahim.bond    schedule 28.01.2020
comment
о маске rcnn?   -  person Allaye    schedule 29.01.2020


Ответы (1)


Что касается вашего первого вопроса: Keras — это «просто» общий API, который можно использовать с разными бэкэндами, а именно с TensorFlow, Theano или CNTK.

Keras определяет ряд различных сверточных слоев в layers.convolutional, все из которых задокументированы здесь. Поскольку вы используете TensorFlow в качестве серверной части, вы можете посмотреть backend.tensorflow_backend, чтобы узнать, какие слои TensorFlow использует Keras.

Однако обратите внимание, что R-CNN, Fast R-CNN и т. д. — это не специальные типы сверточных слоев, а архитектуры CNN (как и YOLO). Вы можете узнать больше об общих архитектурах в этот пост в блоге. Вы можете найти реализацию Keras для R-CNN на GitHub.

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

person IonicSolutions    schedule 17.04.2019
comment
в моем случае я использую tensorflow. Я попробовал простой поиск в гугле, но ничего не нашел. у вас есть идея или где я могу найти такую ​​информацию? - person ibrahim.bond; 17.04.2019