Deteksi Objek dan Segmentasi Instance dengan Python dengan Detectron2 PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Deteksi Objek dan Segmentasi Instance dengan Python dengan Detectron2

Pengantar

Deteksi objek adalah bidang besar dalam visi komputer, dan salah satu aplikasi visi komputer yang lebih penting "di alam liar". Di satu sisi, ini dapat digunakan untuk membangun sistem otonom yang menavigasi agen melalui lingkungan - baik itu robot yang melakukan tugas atau mobil yang mengemudi sendiri, tetapi ini membutuhkan persimpangan dengan bidang lain. Namun, deteksi anomali (seperti produk cacat pada garis), penempatan objek di dalam gambar, deteksi wajah, dan berbagai aplikasi deteksi objek lainnya dapat dilakukan tanpa memotong bidang lain.

Deteksi objek tidak standar seperti klasifikasi gambar, terutama karena sebagian besar perkembangan baru biasanya dilakukan oleh peneliti individu, pengelola dan pengembang, daripada perpustakaan besar dan kerangka kerja. Sulit untuk mengemas skrip utilitas yang diperlukan dalam kerangka kerja seperti TensorFlow atau PyTorch dan mempertahankan pedoman API yang memandu pengembangan sejauh ini.

Hal ini membuat deteksi objek agak lebih kompleks, biasanya lebih bertele-tele (tetapi tidak selalu), dan kurang mudah didekati daripada klasifikasi gambar. Salah satu manfaat utama berada dalam ekosistem adalah menyediakan cara untuk tidak mencari informasi berguna tentang praktik, alat, dan pendekatan yang baik untuk digunakan. Dengan deteksi objek โ€“ sebagian besar harus melakukan lebih banyak penelitian tentang lanskap lapangan untuk mendapatkan pegangan yang baik.

Meta AI's Detectron2 โ€“ Segmentasi Instance dan Deteksi Objek

Detektor2 adalah paket deteksi, segmentasi, dan estimasi pose open source dari Meta AI (sebelumnya FAIR โ€“ Facebook AI Research). Diberikan gambar input, itu dapat mengembalikan label, kotak pembatas, skor kepercayaan, topeng, dan kerangka objek. Ini terwakili dengan baik di halaman repositori:

Ini dimaksudkan untuk digunakan sebagai perpustakaan di mana Anda dapat membangun proyek penelitian. Ini menawarkan model kebun binatang dengan sebagian besar implementasi mengandalkan Mask R-CNN dan R-CNN secara umum, di samping RetinaNet. Mereka juga memiliki cukup baik dokumentasi. Mari kita jalankan skrip inferensi contoh!

Pertama, mari kita instal dependensinya:

$ pip install pyyaml==5.1
$ pip install 'git+https://github.com/facebookresearch/detectron2.git'

Selanjutnya, kita akan mengimpor utilitas Detectron2 โ€“ di sinilah pengetahuan domain-framework berperan. Anda dapat membuat detektor menggunakan DefaultPredictor kelas, dengan mengirimkan objek konfigurasi yang mengaturnya. Itu Visualizer menawarkan dukungan untuk memvisualisasikan hasil. MetadataCatalog dan DatasetCatalog milik API data Detectron2 dan menawarkan informasi tentang set data bawaan serta metadatanya.

Mari impor kelas dan fungsi yang akan kita gunakan:

import torch, detectron2
from detectron2.utils.logger import setup_logger
setup_logger()

from detectron2 import model_zoo
from detectron2.engine import DefaultPredictor
from detectron2.config import get_cfg
from detectron2.utils.visualizer import Visualizer
from detectron2.data import MetadataCatalog, DatasetCatalog

Menggunakan requests, kami akan mengunduh gambar dan menyimpannya ke drive lokal kami:

import matplotlib.pyplot as plt
import requests
response = requests.get('http://images.cocodataset.org/val2017/000000439715.jpg')
open("input.jpg", "wb").write(response.content)
    
im = cv2.imread("./input.jpg")
fig, ax = plt.subplots(figsize=(18, 8))
ax.imshow(cv2.cvtColor(im, cv2.COLOR_BGR2RGB))

Ini menghasilkan:

Deteksi Objek dan Segmentasi Instance dengan Python dengan Detectron2 PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Sekarang, kami memuat konfigurasi, memberlakukan perubahan jika perlu (model berjalan pada GPU secara default, jadi jika Anda tidak memiliki GPU, Anda ingin mengatur perangkat ke 'cpu' di konfigurasi):

cfg = get_cfg()

cfg.merge_from_file(model_zoo.get_config_file("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml"))
cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5
cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url("COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml")


Di sini, kami menentukan model mana yang ingin kami jalankan dari model_zoo. Kami telah mengimpor model segmentasi instans, berdasarkan arsitektur Mask R-CNN, dan dengan tulang punggung ResNet50. Bergantung pada apa yang ingin Anda capai (deteksi keypoint, segmentasi instans, segmentasi panoptik, atau deteksi objek), Anda akan memuat dalam model yang sesuai.

Akhirnya, kita dapat membuat prediktor dengan ini cfg dan jalankan di input! Itu Visualizer class digunakan untuk menggambar prediksi pada gambar (dalam hal ini, instance tersegmentasi, kelas, dan kotak pembatas:

predictor = DefaultPredictor(cfg)
outputs = predictor(im)

v = Visualizer(im[:, :, ::-1], MetadataCatalog.get(cfg.DATASETS.TRAIN[0]), scale=1.2)
out = v.draw_instance_predictions(outputs["instances"].to("cpu"))
fig, ax = plt.subplots(figsize=(18, 8))
ax.imshow(out.get_image()[:, :, ::-1])

Akhirnya, ini menghasilkan:

Lihat panduan praktis dan praktis kami untuk mempelajari Git, dengan praktik terbaik, standar yang diterima industri, dan termasuk lembar contekan. Hentikan perintah Googling Git dan sebenarnya belajar itu!

Deteksi Objek dan Segmentasi Instance dengan Python dengan Detectron2 PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Melangkah Lebih Jauh โ€“ Pembelajaran Mendalam Praktis untuk Visi Komputer

Sifat ingin tahu Anda membuat Anda ingin melangkah lebih jauh? Kami merekomendasikan untuk memeriksa kami Kelas: โ€œPembelajaran Mendalam Praktis untuk Visi Komputer dengan Pythonโ€.

Deteksi Objek dan Segmentasi Instance dengan Python dengan Detectron2 PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Kursus Computer Vision lainnya?

Kami tidak akan melakukan klasifikasi digit MNIST atau mode MNIST. Mereka melayani bagian mereka sejak lama. Terlalu banyak sumber belajar yang berfokus pada kumpulan data dasar dan arsitektur dasar sebelum membiarkan arsitektur kotak hitam tingkat lanjut memikul beban kinerja.

Kami ingin fokus pada demistifikasi, kepraktisan, pemahaman, intuisi dan proyek nyata. Mau belajar bagaimana Anda dapat membuat perbedaan? Kami akan membawa Anda dalam perjalanan dari cara otak kami memproses gambar hingga menulis pengklasifikasi pembelajaran mendalam tingkat penelitian untuk kanker payudara hingga jaringan pembelajaran mendalam yang "berhalusinasi", mengajari Anda prinsip dan teori melalui kerja praktik, membekali Anda dengan pengetahuan dan alat untuk menjadi ahli dalam menerapkan pembelajaran mendalam untuk memecahkan visi komputer.

Apa yang ada di dalam?

  • Prinsip pertama visi dan bagaimana komputer dapat diajarkan untuk "melihat"
  • Berbagai tugas dan aplikasi visi komputer
  • Alat perdagangan yang akan membuat pekerjaan Anda lebih mudah
  • Menemukan, membuat, dan memanfaatkan kumpulan data untuk visi komputer
  • Teori dan penerapan Jaringan Saraf Konvolusi
  • Menangani pergeseran domain, kejadian bersama, dan bias lainnya dalam kumpulan data
  • Transfer Belajar dan memanfaatkan waktu pelatihan dan sumber daya komputasi orang lain untuk keuntungan Anda
  • Membangun dan melatih pengklasifikasi kanker payudara yang canggih
  • Bagaimana menerapkan dosis skeptisisme yang sehat untuk mengarusutamakan gagasan dan memahami implikasi dari teknik yang diadopsi secara luas
  • Memvisualisasikan "ruang konsep" ConvNet menggunakan t-SNE dan PCA
  • Studi kasus tentang bagaimana perusahaan menggunakan teknik visi komputer untuk mencapai hasil yang lebih baik
  • Evaluasi model yang tepat, visualisasi ruang laten dan mengidentifikasi perhatian model
  • Melakukan penelitian domain, memproses kumpulan data Anda sendiri, dan membuat pengujian model
  • Arsitektur mutakhir, perkembangan ide, apa yang membuatnya unik dan bagaimana menerapkannya
  • KerasCV โ€“ perpustakaan WIP untuk menciptakan saluran pipa dan model yang canggih
  • Cara mengurai dan membaca makalah dan menerapkannya sendiri
  • Memilih model tergantung pada aplikasi Anda
  • Membuat pipeline machine learning ujung ke ujung
  • Lanskap dan intuisi pada deteksi objek dengan R-CNN, RetinaNet, SSD, dan YOLO yang Lebih Cepat
  • Instance dan segmentasi semantik
  • Pengenalan Objek Real-Time dengan YOLOv5
  • Melatih Detektor Objek YOLOv5
  • Bekerja dengan Transformers menggunakan KerasNLP (perpustakaan WIP kekuatan industri)
  • Mengintegrasikan Transformer dengan ConvNets untuk menghasilkan keterangan gambar
  • Deepdream

Kesimpulan

Segmentasi instance berjalan satu langkah di luar segmentasi semantik, dan mencatat perbedaan kualitatif antara instance individu dari suatu kelas (orang 1, orang 2, dll ...) daripada hanya apakah mereka termasuk dalam satu kelas. Di satu sisi โ€“ ini adalah klasifikasi tingkat piksel.

Dalam panduan singkat ini, kita telah melihat sekilas bagaimana Detectron2 membuat segmentasi instans dan deteksi objek menjadi mudah dan dapat diakses melalui API mereka, menggunakan Mask R-CNN.

Stempel Waktu:

Lebih dari penyalahgunaan