Im Moment verwende ich Alexnet, um eine Klassifizierungsaufgabe zu erledigen.Warum verbessert die Datenerweiterung nicht die Genauigkeit der Texturklassifizierung in CNNs?
Die Größe jeder Eingangsabtastwert ist 480 * 680 wie folgt aus:
ein normales Netzwerk, durch beschnittene Eingänge der Größe 256 * 256 (erzeugt in Vorverarbeitungsschritte) mit der Ansatzgröße eingespeist von 8, gibt mir die Genauigkeitsrate von 92%.
Aber, wenn ich versuche, 5 Kulturen jeder (480 * 680) Probe zu erzeugen (Ecken sowie ein Zentrum Ernte) unter Verwendung der folgende Ernte Schichten:
# this is the reference blob of the cropping process which determines cropping size
layer {
name: "reference-blob"
type: "Input"
top: "reference"
input_param { shape: { dim: 8 dim: 3 dim: 227 dim: 227 } }
}
# upper-left crop
layer{
name: "crop-1"
type: "Crop"
bottom: "data"
bottom: "reference"
top: "crop-1"
crop_param {
axis: 2
offset: 1
offset: 1
}
}
# upper-right crop
layer{
name: "crop-2"
type: "Crop"
bottom: "data"
bottom: "reference"
top: "crop-2"
crop_param {
axis: 2
offset: 1
offset: 412
}
}
# lower-left crop
layer{
name: "crop-3"
type: "Crop"
bottom: "data"
bottom: "reference"
top: "crop-3"
crop_param {
axis: 2
offset: 252
offset: 1
}
}
# lower-right crop
layer{
name: "crop-4"
type: "Crop"
bottom: "data"
bottom: "reference"
top: "crop-4"
crop_param {
axis: 2
offset: 252
offset: 412
}
}
# center crop
layer{
name: "crop-5"
type: "Crop"
bottom: "data"
bottom: "reference"
top: "crop-5"
crop_param {
axis: 2
offset: 127
offset: 207
}
}
# concat all the crop results to feed the next layer
layer{
name: "crop_concat"
type: "Concat"
bottom: "crop-1"
bottom: "crop-2"
bottom: "crop-3"
bottom: "crop-4"
bottom: "crop-5"
top: "all_crops"
concat_param {
axis: 0
}
}
# generating enough labels for all the crop results
layer{
name: "label_concat"
type: "Concat"
bottom: "label"
bottom: "label"
bottom: "label"
bottom: "label"
bottom: "label"
top: "all-labels"
concat_param {
axis: 0
}
}
diese Genauigkeitsrate von 90,6% führt die ist komisch.
Irgendeine Idee?
Könnten Sie ein Beispielbild (480x640) (vor der Vorverarbeitung) posten? In den beschnittenen Bildern gibt es nur minimale Überschneidungen. Sind Sie also sicher, dass alle die gewünschte Klassifizierung korrekt wiedergeben? Normalerweise umfasst diese Art der Datenerweiterung das Erzeugen mehrerer beschnittener Bilder, die sich meistens überlappen, so dass das eigentliche Objekt, das Sie klassifizieren möchten, in jedem beschnittenen Bild nur um einen kleinen Betrag übersetzt wird. Wenn jedes der Eckbilder nur ein kleiner Teil des Objekts ist, das Sie klassifizieren möchten, kann dies die Klassifizierungsaufgabe unbeabsichtigterweise erheblich erschweren. – Aenimated1
@ Aenimated1 Danke für die Wiederholung. Eigentlich sind sie Texturbilder. Ich persönlich denke, dass es in diesem Fall nicht sehr hilfreich sein kann, solche beschnittenen Versionen zu erzeugen, aber ich habe irgendwo gelesen, dass es die Genauigkeit verbessern kann. – Ali