我从https://github.com/AlexeyAB/darknet训练了一个定制的Darknet。我训练了1个物体以进行检测。我有60张图像训练该对象,训练模型后,我的平均损失为0.02。
如果我将这个物体放在Yolo的检测下,它会高精度地检测到该物体,但是如果我将另一个具有相同尺寸和颜色的物体放置起来,它会像训练后的物体一样检测到这个物体。
获得此结果后,我训练了第二个对象,并在训练了模型之后,可以正确检测到两个对象。但是,如果我放置与它们相似的其他对象,它会像训练过的对象一样检测并标记更高的精度,但它不是同一对象。
我可以在Yolo中配置任何内容以仅检测对象是否为训练对象。
例如,我想检测不同纸盒的牛奶。如果我有两个(其中一个受过训练(A),而另一个未经受过训练(B))但颜色和尺寸相似,则Yolo会像(A)一样检测两盒牛奶。 yolo是否有任何配置可以改善这种情况,或者,如果我想以更高的精度检测模型,则除了在所有纸箱牛奶中训练模型之外,没有其他方法可以使用。
我使用的是YoloV3,这是我的配置文件yolov3-tiny.cfg:
[net]
# Testing
batch=64
subdivisions=8
# Training
# batch=64
# subdivisions=2
width=416
height=416
channels=3
momentum=0.9
decay=0.0005
angle=0
saturation = 1.5
exposure = 1.5
hue=.1
learning_rate=0.001
burn_in=1000
max_batches = 6000
policy=steps
steps=4800,5400
scales=.1,.1
[convolutional]
batch_normalize=1
filters=16
size=3
stride=1
pad=1
activation=leaky
[maxpool]
size=2
stride=2
[convolutional]
batch_normalize=1
filters=32
size=3
stride=1
pad=1
activation=leaky
[maxpool]
size=2
stride=2
[convolutional]
batch_normalize=1
filters=64
size=3
stride=1
pad=1
activation=leaky
[maxpool]
size=2
stride=2
[convolutional]
batch_normalize=1
filters=128
size=3
stride=1
pad=1
activation=leaky
[maxpool]
size=2
stride=2
[convolutional]
batch_normalize=1
filters=256
size=3
stride=1
pad=1
activation=leaky
[maxpool]
size=2
stride=2
[convolutional]
batch_normalize=1
filters=512
size=3
stride=1
pad=1
activation=leaky
[maxpool]
size=2
stride=1
[convolutional]
batch_normalize=1
filters=1024
size=3
stride=1
pad=1
activation=leaky
###########
[convolutional]
batch_normalize=1
filters=256
size=1
stride=1
pad=1
activation=leaky
[convolutional]
batch_normalize=1
filters=512
size=3
stride=1
pad=1
activation=leaky
[convolutional]
size=1
stride=1
pad=1
filters=21
activation=linear
[yolo]
mask = 3,4,5
anchors = 130,76, 133,86, 50,232, 132,111, 126,175, 102,220
classes=2
num=6
jitter=.3
ignore_thresh = .7
truth_thresh = 1
random=1
[route]
layers = -4
[convolutional]
batch_normalize=1
filters=128
size=1
stride=1
pad=1
activation=leaky
[upsample]
stride=2
[route]
layers = -1, 8
[convolutional]
batch_normalize=1
filters=256
size=3
stride=1
pad=1
activation=leaky
[convolutional]
size=1
stride=1
pad=1
filters=21
activation=linear
[yolo]
mask = 0,1,2
anchors = 130,76, 133,86, 50,232, 132,111, 126,175, 102,220
classes=2
num=6
jitter=.3
ignore_thresh = .7
truth_thresh = 1
random=1
此刻我没有图像来分享示例。在接下来的几天里,我会搜索图像。
预先感谢您的答复。
最好的问候。