Fünf Möglichkeiten zur DIY-Deep-Learning-Beschriftung

Fünf Möglichkeiten, ein Etikett zu erstellen:

1. CVAT (Open Data Annotation Platform)

  1. lernen
  2. CVAT Open Annotation Platform: https://www.cvat.ai/
    Fügen Sie hier eine Bildbeschreibung ein
    Diese Plattform wird
    Fügen Sie hier eine Bildbeschreibung ein
    gemeinsam entwickelt von: Bildklassifizierung, Objekterkennung, Semantik- und Instanzsegmentierung, Punktwolke/Radar, 3D-Würfel, Videoannotation und Skelett usw.
    Fügen Sie hier eine Bildbeschreibung ein
  3. bereit zum Start
  4. Online: https://app.cvat.ai/tasks?page=1
  5. Offline:
    Installation unter Ubuntu,
    Installation unter Windows 10,
    Installation unter Mac OS
    (1) E-Mail-Registrierung erforderlich:
    Fügen Sie hier eine Bildbeschreibung ein
    (2) Start:
    Fügen Sie hier eine Bildbeschreibung ein
    Fügen Sie hier eine Bildbeschreibung ein
    Fügen Sie hier eine Bildbeschreibung ein
    (Ergänzung, erweiterte Konfiguration umfasst: Datenformat, Bildqualität, Dataset-Warehouse-URL usw.), markiert mit Handbuch Polygone Zum Beispiel:
    Fügen Sie hier eine Bildbeschreibung einFügen Sie hier eine Bildbeschreibung ein
    Referenz:
    Object Detection Dataset Annotation Tool CVAT So
    verwenden Sie Amazon SageMaker, um das automatische Bildanmerkungssystem CVAT AI bereitzustellen

2. EISeg (Efficient Interactive Segmentation) automatische Beschriftung

Code- und Papier-URL:
https://github.com/PaddlePaddle/PaddleSeg
EISeg: Effektive interaktive Segmentierung

  1. Erfahren Sie mehr über
    eine effiziente und intelligente interaktive Segmentierungs- und Kennzeichnungssoftware, die auf Paddle basiert. Es deckt hochwertige interaktive Segmentierungsmodelle in den Bereichen Allgemein, Porträt, Fernerkundung, Medizin, Video und andere Richtungen ab. Darüber hinaus kann durch Anwenden der von EISeg erhaltenen Annotationen auf andere von PaddleSeg für das Training bereitgestellte Segmentierungsmodelle ein hochpräzises Modell einer benutzerdefinierten Szene erhalten und der gesamte Prozess der Segmentierungsaufgaben von der Datenannotation bis zum Modelltraining und zur Vorhersage durchgeführt werden geöffnet.
    Fügen Sie hier eine Bildbeschreibung ein
  2. Installieren:
pip install opencv-python==4.5.5.64
pip install opencv-contrib-python==4.5.5.64
pip install opencv-python-headless==4.5.5.64
pip install eiseg

Fügen Sie hier eine Bildbeschreibung ein
Referenz: Baidu Intelligent Semantic Segmentation Open Source Software EIseg Novice Installation Guide
Ich habe PaddlePaddle-gpu installiert,
Terminaleingabe: eiseg open:
Modell herunterladen:
Fügen Sie hier eine Bildbeschreibung ein
Ich habe Folgendes heruntergeladen: Hochpräzisionsmodell, allgemeine Bildanmerkungsszene, EdgeFlow, static_edgeflow_cocolvis.
Beim Laden trat dann
Fügen Sie hier eine Bildbeschreibung ein
ein Fehler auf: OMP: Fehler Nr. 15: Initialisierung von libiomp5md.dll, aber libiomp5md.dll wurde bereits initialisiert gefunden.
OMP: Hinweis Dies bedeutet, dass mehrere Kopien der OpenMP-Laufzeitumgebung in das Programm eingebunden wurden. Das ist gefährlich, da es die Leistung beeinträchtigen oder zu falschen Ergebnissen führen kann. Am besten stellen Sie sicher, dass nur eine einzige OpenMP-Laufzeitumgebung in den Prozess eingebunden wird, indem Sie beispielsweise eine statische Verknüpfung der OpenMP-Laufzeitumgebung in einer beliebigen Bibliothek vermeiden. Als unsichere, nicht unterstützte und undokumentierte Problemumgehung können Sie die Umgebungsvariable KMP_DUPLICATE_LIB_OK=TRUE festlegen, um die weitere Ausführung des Programms zu ermöglichen. Dies kann jedoch zu Abstürzen führen oder stillschweigend zu falschen Ergebnissen führen.
Weitere Informationen finden Sie unter http://www.intel.com/software/products/support/
.

import os
os.environ["KMP_DUPLICATE_LIB_OK"]  =  "TRUE"

Nach längerem Laden:
Fügen Sie hier eine Bildbeschreibung ein
Es kann normal verwendet werden.
Denn was ich brauche, ist eine Etikettendatei im Yolo-Format, aber das Eiseg unterstützt nur die Formate Coco und JSON, daher gibt es eine Python-Code-Referenz für json2txt:

#处理labelme多边形矩阵的标注  json转化txt
#!/usr/bin/ python
# -*- encoding: utf-8 -*-
import json
import cv2
import numpy as np
import glob

def totxt():
        # 第二列:中心归一化横坐标(x)
        # 第三列:中心归一化纵坐标(y)
        # 第四列:归一化宽度(w)
        # 第五列:归一化高度(h)

        height,width = img.shape[0],img.shape[1]
        dw = 1 / width
        dh = 1/ height
        
        with open(out_txt_file, "w+") as f:
            for shape in data:
                points = shape["points"]
                cls_id = shape["labelIdx"]-1
                xmin, ymin, w, h = cv2.boundingRect(np.array(points, dtype=np.int))
                xmax = xmin+w
                ymax = ymin+h

                x = (xmin + xmax) / 2.0 - 1
                y = (ymin + ymax) / 2.0 - 1
                w = xmax - xmin
                h = ymax - ymin
                if w < 50 or h < 50:
                    continue
                x = x * dw
                w = w * dw
                y = y * dh
                h = h * dh
                f.write("%s %s %s %s %s\n"%(cls_id,x, y, w, h))


if __name__=="__main__":
    # 文件列表
    json_list = glob.glob("Annotations/*.json")
    for file in json_list:
        basename = file.split("\\")[-1].split(".")[0]
        # 读取图片
        img = cv2.imread("images/"+basename+".png")
        if img is None:
            continue
        # 读取json文件
        data = ""
        with open(file, 'r', encoding='utf-8') as f:
            data = json.load(f)
      	# yololabels
        out_txt_file = "labels/" + basename + ".txt"
        totxt()

Referenz:
Verwenden Sie EISeg, um Daten automatisch zu kennzeichnen, yolov5-Trainingsmodell (Nanny-Tutorial)
PaddlePaddle/PaddleSeg
PaddleLabel, maschinelles Lernen, unterstützte Kennzeichnungs-Backend-
EISeg-Segmentierungskennzeichnungssoftware

3. Erstellen Sie Sence-Online-Anmerkungen (sehr kompatibel mit Yolo- und VOC-Formaten)

Website: https://www.makesense.ai/
Fügen Sie hier eine Bildbeschreibung ein
Der Einstieg ist sehr einfach:
Fügen Sie hier eine Bildbeschreibung ein
Die Annotation ist beendet, das Polygon unterstützt den Export der Formate VGG Json und COCO Json und der rechteckige Rahmen unterstützt den Export der Formate Yolo, CSV und VOC XML.
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

4.LabelImg und Labelme

LabelImg-Beschriftungstool: https://github.com/heartexlabs/labelImg
Vor der Installation von LabelImg müssen Sie Folgendes installieren:

pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install PyQt5_tools -i https://pypi.tuna.tsinghua.edu.cn/simple

Die Schnittstelle von LabelImg lautet wie folgt:
Fügen Sie hier eine Bildbeschreibung ein
Sie kann nur quadratisch sein und ist für die Klassifizierung geeignet, jedoch nicht für die Kennzeichnung von Datensätzen mit Instanzsegmentierung. LabelImg kann drei Datenformate speichern: PASCAL VOC: XML-Format von voc, Yolo-Format und ML-Format.
Und labelme kann direkt installiert werden:

pip install labelme

Offen:
Fügen Sie hier eine Bildbeschreibung ein

labelme unterstützt Polygonoperationen und kann nur im JSON-Format exportieren. Bei Bedarf muss es in XML oder TXT konvertiert werden.

Fügen Sie Python-Skripte von json2txt und json2xml ein (andere Konvertierungsskripte werden kontinuierlich aktualisiert ...)

Eine Sammlung von Konvertierungsdateien für die Sprache Python+Matlab+Halcon

Supongo que te gusta

Origin blog.csdn.net/weixin_44348719/article/details/130883990
Recomendado
Clasificación