Bonjour habr! Aujourd'hui, je veux partager mon cas. La détection des sceaux automatiserait de nombreuses tâches de routine, facilitant ainsi le travail humain. Pour ma tâche, j'utilise le modèle Mask R-CNN .
Le masque R-CNN est une structure en deux étapes: dans un premier temps, une image est scannée et des phrases (zones pouvant contenir un objet) sont générées . Dans la deuxième étape, les phrases sont classées et des cadres de délimitation et des masques sont créés.
Qu'est-ce que la segmentation?
La segmentation est la tâche de définir les contours d'un objet au niveau du pixel. Par rapport à des tâches similaires de vision par ordinateur, c'est l'une des tâches de vision les plus difficiles.Veuillez noter les questions suivantes:
Classification: Il y a un chat sur cette image.
Détection d'objets: Dans cette image, il y a deux chats, un chien et un canard à ces endroits. Nous commençons à envisager des objets qui se chevauchent.
Segmentation: Il y a 4 popups à ces emplacements et ce sont les pixels que chacun possède.
Préparation d'un ensemble de données pour la formation
, ( ), . . 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 , . , .
Vous pouvez télécharger les échelles pour la détection et pré - entraîné la segmentation ici . Pour l'utiliser, ajoutez le projet au dossier des échantillons dans Mask R-CNN. S'il y a un besoin d'un jeu de données, écrivez-moi par mail: galym55010@gmail.com