Halo habr! Hari ini saya ingin berbagi kasus saya. Mendeteksi segel akan mengotomatiskan banyak tugas rutin, membuat pekerjaan manusia lebih mudah. Untuk tugas saya, saya menggunakan model Mask R-CNN .
Mask R-CNN adalah struktur dua tahap: pada tahap pertama, gambar dipindai dan kalimat (area yang mungkin berisi objek) dibuat . Pada langkah kedua, kalimat diklasifikasikan dan kotak pembatas dan topeng dibuat.
Apa itu segmentasi?
Segmentasi adalah tugas untuk menentukan kontur suatu objek pada tingkat piksel. Dibandingkan dengan tugas serupa dari computer vision, ini adalah salah satu tugas penglihatan yang paling sulit. Harap perhatikan pertanyaan berikut:
Klasifikasi: Ada seekor kucing di gambar ini.
Deteksi Objek: Pada gambar ini, ada dua kucing, satu anjing dan seekor bebek di lokasi ini. Kami mulai mempertimbangkan objek yang tumpang tindih.
Segmentasi: Ada 4 sembulan di lokasi ini dan ini adalah piksel yang dimiliki masing-masing.
Mempersiapkan set data untuk pelatihan
, ( ), . . 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 , . , .
Anda dapat mengunduh timbangan terlatih untuk deteksi dan segmentasi di sini . Untuk menggunakan, tambahkan proyek ke folder sampel di Mask R-CNN. Jika ada kebutuhan untuk kumpulan data, kirim ke saya melalui surat: galym55010@gmail.com