检测图像中的徽标

时间:2018-07-08 18:44:40

标签: python opencv classification cascade detect

我在这里是因为我正在从事一个项目,该项目包括识别图像中的徽标/品牌。特别是我必须对汽车轮胎的品牌进行分类。

我的应用程序现在可以获取轮胎并将其拉伸到如下所示的矩形上:

here one example

现在我必须检测品牌。我还对预处理图像尝试了多种技术(例如匹配模板,关键点检测),这是一个示例,但效果不佳:

here one example

现在,我正在尝试创建神经网络分类器,以预测图像是否包含米其林徽标。因此,我将图像划分为多个正方形,然后采用“正数”,即包含胖小矮人的正方形。

这是我的一组训练(肯定):

Here a piece of my training-set (positives)

这是我训练集(负数)的一部分:

Here a piece of my training-set (negatives)

我有300个正数和600个负数。

我的预测变量无法获得我需要的功能:因此它可以预测100%的肯定...

我不知道这种方法是否是最佳方法(以及预处理阶段),我认为级联分类器的性能更好,但是在此之前,我问您是否可以改善神经网络。

先谢谢大家

我的神经网络代码(我想对它进行改进):

train_datagen = ImageDataGenerator(rescale = 1./255)
test_datagen = ImageDataGenerator(rescale = 1./255)
size = (100,100)
train_generator =  train_datagen.flow_from_directory(dir_path+'\\mydata_preproc\\train',
                                                     target_size=size,
                                                     class_mode='binary')
test_generator =  train_datagen.flow_from_directory(dir_path+'\\mydata_preproc\\test',
                                                     target_size=size,
                                                     class_mode='binary')
model = Sequential()
model.add(Conv2D(64, kernel_size=(3,3), activation='relu', padding='same',
                 input_shape=size+(3,)))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Dropout(0.3))
model.add(Flatten())
model.add(Dense(500,activation='relu'))
model.add(Dropout(0.3))
model.add(Dense(1,activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit_generator(train_generator,
                    steps_per_epoch=20,
                    epochs=30,
                    verbose=1,
                    validation_data=test_generator)

0 个答案:

没有答案