こんにちはhabr!今日は私のケースを共有したいと思います。アザラシを検出すると、多くの日常的なタスクが自動化され、人間の作業が容易になります。私のタスクでは、MaskR-CNNモデルを使用します。
マスクR-CNNは2段階の構造です。最初の段階では、画像がスキャンされ、文 (オブジェクトを含む可能性のある領域)が生成され ます。2番目のステップでは、文が分類され、境界ボックスとマスクが作成されます。
セグメンテーションとは何ですか?
セグメンテーションは、ピクセルレベルでオブジェクトの輪郭を定義するタスクです。コンピュータビジョンの同様のタスクと比較して、これはビジョンの最も難しいタスクの1つです。次の質問に注意してください。

分類:この画像には猫がいます。
物体の検出: この画像では、これらの場所に2匹の猫、1匹の犬と1匹のアヒルがいます。重複するオブジェクトを検討し始めています。
セグメンテーション:これらの場所には4つのポップアップがあり、これらはそれぞれが所有するピクセルです。
トレーニング用のデータセットの準備
, ( ), . . 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 , . , .

検出とセグメンテーションのために事前にトレーニングされたスケールをここからダウンロードできます。使用するには、プロジェクトをMaskR-CNNのsamplesフォルダーに追加します。データセットが必要な場合は、メールで私に書いてください:galym55010@gmail.com