创建图像分类器时如何检测很小的特征?

时间:2019-05-05 09:46:09

标签: image-processing keras neural-network classification surf

我想创建一个图像分类器,根据图像上关键点的数量对图像进行分类。这些关键点是通过将图像通过SURF函数传递的结果而生成的。 SURF功能是一种功能检测器,可在图像上生成关键点。我想建立一个分类器,根据关键点的数量对图像进行分类。我有两类,一类具有很多关键点的图像,另一类具有很少关键点的图像。

以下图像的关键点数量较少。 ![https://i.imgur.com/tqHZIXX.jpg]

下面的图像具有更多的关键点。 ![https://i.imgur.com/BEKjCLG.png]

我正在使用一个数据集,该数据集将1600张图像分为两类,将200张图像用于两类测试。

是否可以通过更改CNN的参数(例如input_sizefilter_sizeepochkernel等)来实现这一目标?

我尝试减少分类器的时代数和输入图像的大小。

这是我的CNN的代码。

model.add(Conv2D(32, (3, 3), input_shape=(64, 64, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Flatten())  
model.add(Dense(64))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(1))
model.add(Activation('sigmoid'))

这是SURF函数的代码:

surf = cv2.xfeatures2d.SURF_create(1500)
keypoints, descriptors = surf.detectAndCompute(fus, None)
fus_surf = cv2.drawKeypoints(fus, keypoints, None)

我希望分类器能够检测到关键点并根据关键点的数量进行预测。

0 个答案:

没有答案