Objektumészlelés és példányszegmentálás Pythonban a Detectron2 PlatoBlockchain adatintelligenciával. Függőleges keresés. Ai.

Objektumészlelés és példányszegmentálás Pythonban a Detectron2 segítségével

Bevezetés

Az objektumészlelés a számítógépes látás nagy területe, és a számítógépes látás egyik legfontosabb alkalmazása „vadon”. Egyrészt fel lehet vele építeni autonóm rendszereket, amelyek az ügynököket a környezeteken keresztül navigálják – legyen szó feladatokat ellátó robotokról vagy önvezető autókról, de ehhez más területekkel való kereszteződés szükséges. Az anomáliák észlelése (például a vonalon lévő hibás termékek), a képeken belüli objektumok helymeghatározása, az arcfelismerés és az objektumészlelés különféle egyéb alkalmazásai azonban elvégezhetők anélkül, hogy más mezőket metszenek.

Az objektumészlelés nem annyira szabványos, mint a képbesorolás, főleg azért, mert a legtöbb új fejlesztést jellemzően egyéni kutatók, karbantartók és fejlesztők végzik, nem pedig nagy könyvtárak és keretrendszerek. Nehéz a szükséges segédprogram-szkripteket olyan keretrendszerbe csomagolni, mint a TensorFlow vagy a PyTorch, és fenntartani az API-irányelveket, amelyek a fejlesztést eddig irányították.

Ez némileg bonyolultabbá, jellemzően bőbeszédesebbé (de nem mindig) teszi az objektumok észlelését, és kevésbé megközelíthetővé, mint a képosztályozás. Az ökoszisztémában való tartózkodás egyik fő előnye, hogy lehetővé teszi, hogy ne keressen hasznos információkat a bevált gyakorlatokról, eszközökről és megközelítésekről. Tárgyérzékeléssel – a legtöbbnek sokkal többet kell kutatnia a terep táján, hogy jó tapadást érjen el.

Meta AI Detectron2 – Példányszegmentáció és objektumészlelés

Detectron2 a Meta AI (korábban FAIR – Facebook AI Research) nyílt forráskódú objektumészlelési, szegmentálási és pózbecslési csomagja – mindez egyben. Egy bemeneti kép esetén visszaadhatja az objektumok címkéit, határolókereteit, megbízhatósági pontszámait, maszkjait és vázait. Ez jól látható az adattár oldalán:

Úgy tervezték, hogy könyvtárként használják, amelyre kutatási projekteket építhet. Kínál a modell állatkert a legtöbb megvalósítás a Mask R-CNN-re és általában az R-CNN-ekre támaszkodik, a RetinaNet mellett. Nekik is van egy elég tisztességes dokumentáció. Futtassunk egy példamutató következtetési szkriptet!

Először telepítsük a függőségeket:

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

Ezután importáljuk a Detectron2 segédprogramokat – itt jön szóba a keret-tartomány tudás. A segítségével detektort készíthet DefaultPredictor osztályt egy konfigurációs objektum átadásával, amely beállítja. A Visualizer támogatást nyújt az eredmények megjelenítéséhez. MetadataCatalog és a DatasetCatalog a Detectron2 adat API-jához tartoznak, és információkat kínálnak a beépített adatkészletekről, valamint azok metaadatairól.

Importáljuk az általunk használt osztályokat és függvényeket:

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

<p></p> requests, letöltünk egy képet, és elmentjük a helyi meghajtónkra:

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))

Ennek eredményeként:

Objektumészlelés és példányszegmentálás Pythonban a Detectron2 PlatoBlockchain adatintelligenciával. Függőleges keresés. Ai.

Most betöltjük a konfigurációt, szükség esetén változtatásokat hajtunk végre (a modellek alapértelmezés szerint GPU-n futnak, tehát ha nincs GPU-ja, akkor a konfigurációban érdemes „cpu”-ra állítani az eszközt):

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")


Itt megadjuk, hogy melyik modellből szeretnénk futtatni model_zoo. Importáltunk egy példányszegmentációs modellt, amely a Mask R-CNN architektúrán alapul, és ResNet50 gerinchálózattal. Attól függően, hogy mit szeretne elérni (kulcspont-észlelés, példányszegmentálás, panoptikus szegmentálás vagy objektumészlelés), be kell töltenie a megfelelő modellt.

Végül ezzel prediktort konstruálhatunk cfg és futtasd a bemeneteken! A Visualizer osztályt arra használjuk, hogy előrejelzéseket rajzoljunk a képre (ebben az esetben szegmentált példányok, osztályok és határoló dobozok:

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])

Végül ennek eredménye:

Tekintse meg gyakorlatias, gyakorlati útmutatónkat a Git tanulásához, amely tartalmazza a bevált gyakorlatokat, az iparág által elfogadott szabványokat és a mellékelt csalólapot. Hagyd abba a guglizást a Git parancsokkal, és valójában tanulni meg!

Objektumészlelés és példányszegmentálás Pythonban a Detectron2 PlatoBlockchain adatintelligenciával. Függőleges keresés. Ai.

Továbblépve – Gyakorlati mélytanulás a számítógépes látáshoz

Érdeklődő természete arra készteti, hogy tovább menjen? Javasoljuk, hogy tekintse meg nálunk Tanfolyam: „Practical Deep Learning for Computer Vision with Python”.

Objektumészlelés és példányszegmentálás Pythonban a Detectron2 PlatoBlockchain adatintelligenciával. Függőleges keresés. Ai.

Újabb számítógépes látás tanfolyam?

Nem végezzük az MNIST számjegyek osztályozását vagy az MNIST divatot. Régen kiszolgálták a részüket. Túl sok tanulási erőforrás összpontosít az alapvető adatkészletekre és alapvető architektúrákra, mielőtt a fejlett feketedoboz-architektúrákra hagyná a teljesítmény terhét.

Mi arra szeretnénk koncentrálni demisztifikáció, gyakorlatiasság, megértés, intuíció és a valódi projektek. Tanulni akar hogyan tudsz változtatni? Elvezetjük Önt az agyunk képfeldolgozási módjától a mellrák kutatási szintű mélytanulási osztályozójának megírásáig a mély tanulási hálózatokig, amelyek „hallucinálnak”, gyakorlati munkán keresztül megtanítjuk az alapelveket és az elméletet, felkészítve a know-how és eszközök ahhoz, hogy szakértővé váljon a mélytanulás alkalmazásában a számítógépes látás megoldásában.

Mi van benne?

  • A látás első alapelvei és hogyan lehet a számítógépeket „látni” tanítani
  • A számítógépes látás különböző feladatai és alkalmazásai
  • A szakma eszközei, amelyek megkönnyítik a munkáját
  • Adatkészletek keresése, létrehozása és felhasználása számítógépes látáshoz
  • A konvolúciós neurális hálózatok elmélete és alkalmazása
  • Tartományeltolódás, együttes előfordulás és egyéb torzítások kezelése az adatkészletekben
  • Transzfer Tanulás és mások képzési idejének és számítási erőforrásainak felhasználása az Ön javára
  • Korszerű emlőrák osztályozó felépítése és betanítása
  • Hogyan alkalmazzunk egy egészséges adag szkepticizmust a mainstream ötletekhez, és hogyan értsük meg a széles körben elfogadott technikák következményeit
  • A ConvNet „koncepcióterének” megjelenítése t-SNE és PCA segítségével
  • Esettanulmányok arról, hogy a vállalatok hogyan használják a számítógépes látástechnikákat a jobb eredmények elérése érdekében
  • Megfelelő modellértékelés, látens tér vizualizáció és a modell figyelmének azonosítása
  • Domainkutatás végzése, saját adatkészletek feldolgozása és modelltesztek létrehozása
  • Élvonalbeli architektúrák, az ötletek fejlődése, mi teszi őket egyedivé és hogyan valósítsuk meg őket
  • KerasCV – WIP-könyvtár a legkorszerűbb csővezetékek és modellek létrehozásához
  • Hogyan elemezze és olvassa el a dolgozatokat, és saját maga hajtsa végre azokat
  • Modellek kiválasztása az alkalmazástól függően
  • Végpontok közötti gépi tanulási folyamat létrehozása
  • Tájkép és intuíció a tárgyfelismeréshez a gyorsabb R-CNN-ekkel, RetinaNetekkel, SSD-kkel és YOLO-val
  • Példány és szemantikai szegmentáció
  • Valós idejű objektumfelismerés a YOLOv5 segítségével
  • YOLOv5 objektumdetektorok képzése
  • Transzformátorokkal való munkavégzés KerasNLP-vel (ipari erősségű WIP-könyvtár)
  • Transformers integrálása ConvNetekkel a képek feliratainak létrehozásához
  • Deepdream

Következtetés

A példányszegmentálás egy lépéssel túlmutat a szemantikai szegmentáláson, és inkább az osztály egyes példányai (1. személy, 2. személy stb.) közötti minőségi különbséget jegyzi meg, nem pedig azt, hogy egy osztályhoz tartoznak-e. Bizonyos értelemben ez pixel szintű osztályozás.

Ebben a rövid útmutatóban áttekintettük, hogyan teszi a Detectron2 egyszerűvé és elérhetővé a példányszegmentálást és az objektumészlelést az API-jukon keresztül, egy Mask R-CNN használatával.

Időbélyeg:

Még több Stackabus