Hello habr! Hoje quero compartilhar meu caso. A detecção de focas automatizaria muitas tarefas de rotina, tornando o trabalho humano mais fácil. Para minha tarefa, uso o modelo Mask R-CNN .
A máscara R-CNN é uma estrutura de dois estágios: no primeiro estágio, uma imagem é digitalizada e frases (áreas que podem conter um objeto) são geradas . Na segunda etapa, as sentenças são classificadas e caixas delimitadoras e máscaras são criadas.
O que é segmentação?
A segmentação é a tarefa de definir os contornos de um objeto no nível do pixel. Em comparação com tarefas semelhantes de visão computacional, esta é uma das tarefas de visão mais difíceis. Observe as seguintes perguntas:

Classificação: Há um gato nesta imagem.
Detecção de objetos: nesta imagem, há dois gatos, um cachorro e um pato nesses locais. Estamos começando a considerar a sobreposição de objetos.
Segmentação: Existem 4 pop-ups nesses locais e esses são os pixels que cada um possui.
Preparando um conjunto de dados para treinamento
, ( ), . . 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 , . , .

Você pode baixar as escalas pré-treinadas para detecção e segmentação aqui . Para usar, adicione o projeto à pasta samples no Mask R-CNN. Se houver necessidade de um conjunto de dados, escreva para mim no e-mail: galym55010@gmail.com