[PYTHON] Ich habe versucht, die Objekte aus dem Bild des Steak-Sets zu sortieren. ① Objekterkennung

Einführung

Zuvor habe ich die Objekterkennung mit OpenCV durchgeführt, aber wie groß ist der Unterschied in der Genauigkeit, da es eine Bibliothek mit dem Namen Selective Search gibt? Ich habe versucht zu vergleichen.

Außerdem habe ich zuvor eine andere Methode ausprobiert, nachdem ich die Umgebungskonstruktion überprüft hatte, die ich nicht sehr gut verstand. Es ist also ein bisschen anders.

Als ich es ausprobiert habe, funktioniert die selektive Suche außerdem nicht richtig, da die Funktion in Python3 unterschiedlich ist.

Selective Search

Selective Search

Pakuri Original

Ich habe versucht, die selektive Suche als R-CNN zu verwenden

Umgebung

# OS/Software/Bibliothek Ausführung
1 Mac OS X EI Capitan
2 Python 2.7er Serie
3 OpenCV 3.2 System
4 Selective Search
5 matplotlib 2.0 Serie

Bauen

Mit vorherigen

Auf den neuesten Stand gebracht

brew update

tap

brew tap homebrew/python
brew tap homebrew/science

Python-Installation

brew install python

Überprüfen Sie den Pfad

which python
/usr/local/bin/python ※1

PFAD-Einstellung

.zshrc


if [ -d $(brew --prefix)/lib/python2.7/site-packages ];then
  export PYTHONPATH=$(brew --prefix)/lib/python2.7/site-packages:$PYTHONPAT
fi

Version prüfen

python
Python 2.7.13 (default, Apr  4 2017, 08:46:44) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Anders als hier

Fügen Sie einen Link in Anwendungen ein

brew linkapps

Installieren Sie pip

easy_install pip

Aktualisieren Sie die Setup-Tools auf die neueste Version

pip install --upgrade setuptools

Aktualisieren Sie pip auf die neueste Version

pip install --upgrade pip

Installieren Sie OpenCV3

pip install opencv-python

Installieren Sie NumPy

pip install numpy

Installieren Sie MatplotLib

pip install matplotlib

Installieren Sie Selective Search

pip install selectivesearch

Vergleich

Bild

Dieses Mal werde ich dieses Steak-Set-Essen verwenden. Verwenden Sie Zurück als Quellcode für den Vergleich der Objekterkennung.

steak.jpg

Quellcode für die selektive Suche

Ich benutze es so wie es ist ich habe versucht, die selektive Suche als R-CNN zu verwenden.

grouping_image.py


import cv2
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import selectivesearch

def main():
        # loading lena image
    img = cv2.imread("{Bildpfad}")

    # perform selective search
    img_lbl, regions = selectivesearch.selective_search(
        img, scale=500, sigma=0.9, min_size=10)

    candidates = set()
    for r in regions:
        # excluding same rectangle (with different segments)
        if r['rect'] in candidates:
            continue
        # excluding regions smaller than 2000 pixels
        if r['size'] < 2000:
            continue
        # distorted rects
        x, y, w, h = r['rect']
        if w / h > 1.2 or h / w > 1.2:
            continue
        candidates.add(r['rect'])

    # draw rectangles on the original image
    fig, ax = plt.subplots(ncols=1, nrows=1, figsize=(6, 6))
    ax.imshow(img)
    for x, y, w, h in candidates:
        print(x, y, w, h)
        rect = mpatches.Rectangle(
            (x, y), w, h, fill=False, edgecolor='red', linewidth=1)
        ax.add_patch(rect)

        cv2.imwrite('{Verzeichnispfad}' + str(x) + '.jpg', img[y:y + h, x:x + w])

    plt.show()

if __name__ == "__main__":
    main()

Ergebnis

Vergleichen Sie, wie viele Gerichte, Lebensmittel und Gewürze konturiert werden können. Was das Level betrifft, bin ich streng, weil es für ein Gefäß oder eine Schale extrahiert werden kann.

Normalfall

Zwei

56.jpg

223.jpg

Für die selektive Suche

5

57.jpg

227.jpg

379.jpg

405.jpg

273.jpg

Impressionen

329.jpg

238.jpg

――Ist es verschiedene Verarbeitungsschritte? Die selektive Suche dauerte einige Zeit (ca. 10 Sekunden?). ――Die Funktionen sind je nach Version von Python oder OpenCV sehr unterschiedlich, was problematisch ist. ――Ich habe nicht das Gefühl, Python oder OpenCV von Grund auf neu schreiben zu können, obwohl ich verschiedene Dinge getan habe.

Alle Seitenlinks

Recommended Posts

Ich habe versucht, die Objekte aus dem Bild des Steak-Sets zu sortieren. ① Objekterkennung
Ich habe versucht, Objekte aus dem Bild des Steak-Sets zu sortieren
Ich habe versucht, Objekte aus dem Bild des Steak-Set-Essens zu sortieren - Ähnliches Bild Wärmekartenerkennung
Ich habe versucht, die Objekte aus dem Bild des Steak-Sets zu sortieren. ⑤ Ähnliche Erkennung von Bildmerkmalen
Ich habe versucht, die Objekte aus dem Bild des Steak-Sets zu sortieren. ② Sortieren der Überlappungsnummern
Ich habe versucht, ein Standbild aus dem Video auszuschneiden
Ich habe versucht, die Trapezform des Bildes zu korrigieren
Ich habe versucht, Iris aus dem Kamerabild zu erkennen
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich habe versucht, das SD-Boot-Image von LicheePi Nano zu erstellen
Ich habe versucht, das Gesichtsbild mit sparse_image_warp von TensorFlow Addons zu transformieren
Ich habe versucht, die Trefferergebnisse von Hachinai mithilfe der Bildverarbeitung zu erhalten
Ich habe versucht, die logische Denkweise über Objektorientierung zusammenzufassen.
Ich habe versucht, den Bildfilter von OpenCV zu verwenden
Ich habe versucht, die Texte von Hinatazaka 46 zu vektorisieren!
[Python] Ich habe versucht, das Mitgliederbild der Idolgruppe mithilfe von Keras zu beurteilen
Ich habe versucht, Objekte mit YOLO v3 (TensorFlow 2.1) auf der GPU von Windows zu erkennen!
Ich habe versucht, die Gesichtsverdeckungsarbeit des Koordinationsbildes für das Tragen zu automatisieren
Ich habe versucht, die Anzahl der mit dem Coronavirus infizierten Personen unter Berücksichtigung der Auswirkung des Verzichts auf das Ausgehen vorherzusagen
Ich habe versucht, die Grundform von GPLVM zusammenzufassen
Ich habe versucht, die Spacha-Informationen von VTuber zu visualisieren
Ich habe versucht, den negativen Teil von Meros zu löschen
Ich habe versucht, die Stimmen der Sprecher zu klassifizieren
Ich habe versucht, das Bild mithilfe von maschinellem Lernen zu komprimieren
Ich habe versucht, die String-Operationen von Python zusammenzufassen
Ich habe versucht, den Text in der Bilddatei mit Tesseract der OCR-Engine zu extrahieren
[Pferderennen] Ich habe versucht, die Stärke des Rennpferdes zu quantifizieren
Ich habe versucht, das Bild mit Python + OpenCV "gammakorrektur" zu machen
Ich habe versucht, die Standortinformationen des Odakyu-Busses zu erhalten
Ich habe versucht, mit TensorFlow den Durchschnitt mehrerer Spalten zu ermitteln
[Python] Ich habe versucht, die folgende Beziehung von Twitter zu visualisieren
[Maschinelles Lernen] Ich habe versucht, die Theorie von Adaboost zusammenzufassen
Ich habe versucht, das Musikgenre anhand des Songtitels im Recurrent Neural Network vorherzusagen
Ich habe versucht, das lokale Minimum der Goldstein-Preis-Funktion zu bekämpfen
Ich möchte mit Python nur das Gesicht aus einem Personenbild ausschneiden und speichern ~ Gesichtserkennung und Zuschneiden mit face_recognition ~
Ich habe versucht, das Python-Skript unter Windows 10 von 2.7.11 auf 3.6.0 zu ändern
Ich habe versucht, verschiedene Informationen von der Codeforces-API abzurufen
Ich habe versucht, mit PI Fu aus einem Bild ein 3D-Modell einer Person zu erstellen
Ich habe versucht, den Trend der Anzahl der Schiffe in der Bucht von Tokio anhand von Satellitenbildern zu ermitteln.
[Für Anfänger] Ich habe versucht, die Tensorflow-Objekterkennungs-API zu verwenden
[Linux] Ich habe versucht, die Ressourcenbestätigungsbefehle zusammenzufassen
Ich habe versucht, den Index der Liste mithilfe der Aufzählungsfunktion abzurufen
Ich habe versucht, die Bewässerung des Pflanzgefäßes mit Raspberry Pi zu automatisieren
Ich habe versucht, das Bild mit OpenCV im "Skizzenstil" zu verarbeiten
Ich habe versucht, das Bild mit OpenCV im "Bleistift-Zeichenstil" zu verarbeiten
Ich habe versucht, die Größe des logischen Volumes mit LVM zu erweitern
Ich habe versucht, die häufig verwendete Implementierungsmethode von pytest-mock zusammenzufassen
Ich habe versucht, die Effizienz der täglichen Arbeit mit Python zu verbessern
Ich habe versucht, den allgemeinen Zustand der VTuber-Kanalbetrachter zu visualisieren
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, den Abschnitt zu schätzen.
[Python] Ich habe versucht, das Fluchtprogramm zu reproduzieren, um aus der Welt zurückzukehren und aus der modifizierten Welt von "Das Verschwinden von Haruhi Suzumiya" zurückzukehren.
Ich habe versucht, E-Mails von Node.js und Python mithilfe des E-Mail-Zustelldienstes (SendGrid) von IBM Cloud zuzustellen!
[Python] Ich habe versucht, den kollektiven Typ (Satz) auf leicht verständliche Weise zusammenzufassen.
Ich habe versucht, das Bild durch Klicken mit der rechten und linken Maustaste in den angegebenen Ordner zu verschieben