Hallo habr! Heute möchte ich meinen Fall teilen. Das Erkennen von Siegeln würde viele Routineaufgaben automatisieren und die menschliche Arbeit erleichtern. Für meine Aufgabe verwende ich das Mask R-CNN- Modell .
Die Maske R-CNN ist eine zweistufige Struktur: In der ersten Stufe wird ein Bild gescannt und Sätze (Bereiche, die ein Objekt enthalten können) werden erzeugt . Im zweiten Schritt werden die Sätze klassifiziert und Begrenzungsrahmen und Masken erstellt.
Was ist Segmentierung?
Die Segmentierung ist die Aufgabe, die Umrisse eines Objekts auf Pixelebene zu definieren. Im Vergleich zu ähnlichen Aufgaben der Bildverarbeitung ist dies eine der schwierigsten Aufgaben der Bildverarbeitung. Bitte beachten Sie die folgenden Fragen:

Klassifizierung: In diesem Bild befindet sich eine Katze.
Objekterkennung: In diesem Bild befinden sich zwei Katzen, ein Hund und eine Ente an diesen Stellen. Wir fangen an, überlappende Objekte in Betracht zu ziehen.
Segmentierung: An diesen Stellen befinden sich 4 Popups, und dies sind die Pixel, die jeder besitzt.
Vorbereiten eines Datensatzes für das Training
, ( ), . . 2 . . - .

, , 2 ? , . . , , COCO ( Mask R-CNN ). COCO , (~ 120 ), , , .
VIA (VGG Image Annotator). HTML-, . , , 20 .

. PNG, - . , , .
VIA JSON, . , , JSON. , , .
SealDataset
:
class SealDataset(utils.Dataset):
def load_balloons(self, dataset_dir, subset):
...
def load_mask(self, image_id):
...
def image_reference(self, image_id):
...
load_balloons
JSON, add_class
add_image
.
load_mask
.
image_reference
, . .
, . load_image
Dataset
. .
, , Jupyter . , , , , . , :

: , inspect_data.ipynb , COCO, , Seal.
, COCO, 3 . Dataset
, Config
:
class BalloonConfig(Config):
# Give the configuration a recognizable name
NAME = "seal"
# Number of classes (including background)
NUM_CLASSES = 1 + 1 # Background + seal
# Number of training steps per epoch
STEPS_PER_EPOCH = 100
1024x1024 . . , .
R-CNN - . . Quadro M2000 c 4 . 3-4 .
, seal
. , COCO. :
python seal.py train --dataset=/// --model=coco
, :
python seal.py train --dataset=/// --model=last
inspect_seal_model , . , .

Sie können die vortrainierter Skalen zur Erfassung und Segmentierung Download hier . Fügen Sie das Projekt zur Verwendung dem Beispielordner in Mask R-CNN hinzu. Wenn ein Datensatz benötigt wird, schreiben Sie mir per E-Mail: galym55010@gmail.com