シールの検出とセグメンテーションのためにモデルをトレーニングした方法

こんにちは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.  , , .





: -  coco.py  .  .  seal.py





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








All Articles