¡Hola habr! Hoy quiero compartir mi caso. La detección de sellos automatizaría muchas tareas rutinarias, facilitando el trabajo humano. Para mi tarea, utilizo el modelo Mask R-CNN .
Mask R-CNN es una estructura de dos etapas: en la primera etapa, se escanea una imagen y se generan oraciones (áreas que pueden contener un objeto). En el segundo paso, se clasifican las oraciones y se crean cuadros delimitadores y máscaras.
¿Qué es la segmentación?
La segmentación es la tarea de definir los contornos de un objeto a nivel de píxel. En comparación con tareas similares de visión por computadora, esta es una de las tareas de visión más difíciles. Tenga en cuenta las siguientes preguntas:
Clasificación: Hay un gato en esta imagen.
Detección de objetos: en esta imagen, hay dos gatos, un perro y un pato en estos lugares. Empezamos a considerar la superposición de objetos.
Segmentación: Hay 4 ventanas emergentes en estas ubicaciones y estos son los píxeles que posee cada uno.
Preparar un conjunto de datos para el entrenamiento
, ( ), . . 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 , . , .
Puede descargar las escalas previamente entrenadas para detección y segmentación aquí . Para usarlo, agregue el proyecto a la carpeta de muestras en Mask R-CNN. Si es necesario un conjunto de datos, escríbame por correo: galym55010@gmail.com