我正在尝试使用卷积神经网络检测射击目标中的子弹。该图像为标准射击目标。
数据集由9216张大小为96x96的图像组成,并且图像中只有一个子弹。我用弹孔中心的(x,y)标记每张图像。我还标准化了图像。
模型是这样的:
model = Sequential()
model.add(Convolution2D(32, 3, 3,
input_shape=(3,96, 96)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Convolution2D(64, 2, 2))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Convolution2D(128, 2, 2))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(2))
model.compile(loss='mean_squared_error', optimizer='rmsprop')
模型总是围绕图像的中心收敛。
任何建议吗?
在每个卷积层之后进行池化。我不认为这会让它学习到任何合理的特征,尤其是在输入附近。从我所看到的一些模型来看,在开始进行任何池化操作之前,最好有一些卷积层。