


AI hat Sie klar gesehen, YOLO+ByteTrack+Multi-Label-Klassifizierungsnetzwerk
Heute werde ich Ihnen ein System zur Analyse von Fußgängerattributen vorstellen. Fußgänger können anhand von Video- oder Kamera-Videostreams identifiziert und die Attribute jeder Person markiert werden.
Die identifizierten Attribute umfassen die folgenden 10 Kategorien
Einige Kategorien haben mehrere Attribute, wenn die Körperausrichtung ist: vorne, seitlich und hinten, sodass es im Abschlusstraining 26 Attribute gibt.
Es sind drei Schritte erforderlich, um ein solches System zu implementieren:
- Verwenden Sie YOlOv5, um Fußgänger zu identifizieren.
- Verwenden Sie ByteTrack, um dieselbe Person zu verfolgen und zu markieren.
- Trainieren Sie ein Bildklassifizierungsnetzwerk mit mehreren Etiketten, um 26 Attribute von Fußgängern zu identifizieren.
1. Fußgängererkennung und -verfolgung
Die Fußgängererkennung verwendet das YOLOv5-Zielerkennungsmodell. Sie können das Modell selbst trainieren oder direkt das vorab trainierte YOLOv5-Modell verwenden.
Bei der Fußgängerverfolgung kommt die Multi-Object-Tracking-Technologie (MOT) zum Einsatz. Das Video besteht aus einem Bild. Obwohl wir Menschen dieselbe Person auf verschiedenen Bildern identifizieren können, kann die KI nicht identifiziert werden. MOT-Technologie ist erforderlich, um dieselbe Person zu verfolgen und jedem Fußgänger eine eindeutige ID zuzuweisen.
Das Training und die Verwendung des YOLOv5-Modells sowie die Prinzipien und Implementierungslösungen der Multi-Object-Tracking-Technologie (MOT) werden im vorherigen Artikel ausführlich beschrieben. Interessierte Freunde können sich den Artikel „YOLOv5+ByteTrack Statistics“ ansehen „Verkehrsfluss“.
2. Trainieren Sie ein Multi-Label-Klassifizierungsnetzwerk
Die meisten Bildklassifizierungen, mit denen wir zuerst in Kontakt kamen, waren Ein-Label-Klassifizierungen, das heißt: Ein Bild wird in eine Kategorie klassifiziert, und die Kategorie kann aus zwei Kategorien oder mehreren Kategorien bestehen . Unter der Annahme, dass es drei Kategorien gibt, kann die jedem Bild entsprechende Beschriftung das folgende allgemeine Format haben:
001.jpg010 002.jpg100 003.jpg100
BeschriftungNur eine Position ist 1.
Das Multi-Label-Klassifizierungsnetzwerk, das wir heute trainieren werden, ist ein Bild, das mehrere Kategorien gleichzeitig enthält. Das Label-Format ist wie folgt:
001.jpg011 002.jpg111 003.jpg100
label kann mehrere Positionen von 1 haben.
Es gibt zwei Möglichkeiten, ein solches Netzwerk zu trainieren. Eine davon besteht darin, jede Kategorie als Einzeletikettenklassifizierung zu behandeln, den Verlust separat zu berechnen, die Gesamtsumme zusammenzufassen und den Gradienten zu berechnen, um die Netzwerkparameter zu aktualisieren.
Der andere kann direkt trainiert werden, aber Sie müssen auf die Netzwerkdetails achten. Nehmen Sie ResNet50 als Beispiel.
resnet50 = ResNet50(include_top=False, weights='imagenet') # 迁移学习,不重新训练卷积层 for layer in resnet50.layers: layer.trainable = False # 新的全连接层 x = Flatten()(resnet50.output) x = Dense(1024)(x) x = Activation('relu')(x) x = BatchNormalization()(x) x = Dropout(0.5)(x) # 输出 26 个属性的多分类标签 x = Dense(26, activatinotallow='sigmoid')(x) model = Model(inputs = resnet50.input, outputs=x)
Die Aktivierungsfunktion der endgültigen Ausgabeschicht muss Sigmoid sein, da die Wahrscheinlichkeit separat berechnet werden muss jedes Attribut. Auf die gleiche Weise muss auch die Verlustfunktion während des Trainings die Binär_Kreuzentropie verwenden.
Tatsächlich sind die Prinzipien der beiden oben genannten Methoden ähnlich, aber der Entwicklungsaufwand ist unterschiedlich.
Der Einfachheit halber verwende ich PaddleCls zum Training. Die Konfiguration von Paddle ist einfach, aber der Nachteil besteht darin, dass es sich um eine Art Blackbox handelt. Man kann nur seine eigenen Regeln befolgen und es ist schwieriger, es anzupassen.
Das Modelltraining verwendet den PA100K-Datensatz. Es ist zu beachten, dass die durch den PA100K-Datensatz definierte Originalbezeichnung zwar dieselbe Bedeutung wie Paddle hat, die Reihenfolge jedoch unterschiedlich ist.
Zum Beispiel: Die 1. Ziffer des Originaletiketts gibt an, ob das Etikett weiblich ist, während Paddle die 1. Ziffer benötigt, um anzugeben, ob das Etikett einen Hut trägt, und die 22. Ziffer gibt an, ob das Etikett weiblich ist.
Wir können die ursprüngliche Etikettenposition entsprechend den Anforderungen von Paddle anpassen, damit unsere Argumentation später einfacher wird.
PaddleClas herunterladen
git clone https://github.com/PaddlePaddle/PaddleClas
Entpacken Sie den heruntergeladenen Datensatz und legen Sie ihn im Datensatzverzeichnis von PaddleClas ab.
Suchen Sie die Konfigurationsdatei ppcls/configs/PULC/person_attribute/PPLCNet_x1_0.yaml und konfigurieren Sie die Bild- und Etikettenpfade. Das Format von
DataLoader: Train: dataset: name: MultiLabelDataset image_root: "dataset/pa100k/" #指定训练AI hat Sie klar gesehen, YOLO+ByteTrack+Multi-Label-Klassifizierungsnetzwerk所在根路径 cls_label_path: "dataset/pa100k/train_list.txt" #指定训练列表文件位置 label_ratio: True transform_ops: Eval: dataset: name: MultiLabelDataset image_root: "dataset/pa100k/" #指定评估AI hat Sie klar gesehen, YOLO+ByteTrack+Multi-Label-Klassifizierungsnetzwerk所在根路径 cls_label_path: "dataset/pa100k/val_list.txt" #指定评估列表文件位置 label_ratio: True transform_ops:
train_list.txt ist
00001.jpg0,0,1,0,....
Nach der Konfiguration können Sie direkt trainieren
python3 tools/train.py -c ./ppcls/configs/PULC/person_attribute/PPLCNet_x1_0.yaml
Nach dem Training exportieren Sie das Modell
python3 tools/export_model.py -c ./ppcls/configs/PULC/person_attribute/PPLCNet_x1_0.yaml -o Global.pretrained_model=output/PPLCNet_x1_0/best_model -o Global.save_inference_dir=deploy/models/PPLCNet_x1_0_person_attribute_infer
und platzieren Sie die exportierten Ergebnisse in ~/.paddleclas/inference_model/PULC/person_attribute/ In Im Verzeichnis
können Sie die von PaddleCls bereitgestellte Funktion verwenden, um
import paddleclas model = paddleclas.PaddleClas(model_name="person_attribute") result = model.predict(input_data="./test_imgs/000001.jpg") print(result)
direkt aufzurufen. Die Ausgabeergebnisse lauten wie folgt:
[{'attributes': ['Female', 'Age18-60', 'Front', 'Glasses: False', 'Hat: False', 'HoldObjectsInFront: True', 'ShoulderBag', 'Upper: ShortSleeve', 'Lower:Trousers', 'No boots'], 'output': [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0], 'filename': './test_imgs/000001.jpg'}]
Der Modelltrainingsprozess endet hier, der Datensatz und der Quellcode des gesamten Projekts liegen vor verpackt worden.
Das obige ist der detaillierte Inhalt vonAI hat Sie klar gesehen, YOLO+ByteTrack+Multi-Label-Klassifizierungsnetzwerk. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Der Befehl centOS stilldown wird heruntergefahren und die Syntax wird von [Optionen] ausgeführt [Informationen]. Zu den Optionen gehören: -h das System sofort stoppen; -P schalten Sie die Leistung nach dem Herunterfahren aus; -r neu starten; -t Wartezeit. Zeiten können als unmittelbar (jetzt), Minuten (Minuten) oder als bestimmte Zeit (HH: MM) angegeben werden. Hinzugefügten Informationen können in Systemmeldungen angezeigt werden.

Backup- und Wiederherstellungsrichtlinie von GitLab im Rahmen von CentOS -System Um die Datensicherheit und Wiederherstellung der Daten zu gewährleisten, bietet GitLab on CentOS eine Vielzahl von Sicherungsmethoden. In diesem Artikel werden mehrere gängige Sicherungsmethoden, Konfigurationsparameter und Wiederherstellungsprozesse im Detail eingeführt, um eine vollständige GitLab -Sicherungs- und Wiederherstellungsstrategie aufzubauen. 1. Manuell Backup Verwenden Sie den GitLab-RakegitLab: Backup: Befehl erstellen, um die manuelle Sicherung auszuführen. Dieser Befehl unterstützt wichtige Informationen wie GitLab Repository, Datenbank, Benutzer, Benutzergruppen, Schlüssel und Berechtigungen. Die Standardsicherungsdatei wird im Verzeichnis/var/opt/gitlab/backups gespeichert. Sie können /etc /gitlab ändern

Vollständige Anleitung zur Überprüfung der HDFS -Konfiguration in CentOS -Systemen In diesem Artikel wird die Konfiguration und den laufenden Status von HDFS auf CentOS -Systemen effektiv überprüft. Die folgenden Schritte helfen Ihnen dabei, das Setup und den Betrieb von HDFs vollständig zu verstehen. Überprüfen Sie die Hadoop -Umgebungsvariable: Stellen Sie zunächst sicher, dass die Hadoop -Umgebungsvariable korrekt eingestellt ist. Führen Sie im Terminal den folgenden Befehl aus, um zu überprüfen, ob Hadoop ordnungsgemäß installiert und konfiguriert ist: Hadoopsion-Check HDFS-Konfigurationsdatei: Die Kernkonfigurationsdatei von HDFS befindet sich im/etc/hadoop/conf/verzeichnis, wobei core-site.xml und hdfs-site.xml von entscheidender Bedeutung sind. verwenden

Aktivieren Sie die Pytorch -GPU -Beschleunigung am CentOS -System erfordert die Installation von CUDA-, CUDNN- und GPU -Versionen von Pytorch. Die folgenden Schritte führen Sie durch den Prozess: Cuda und Cudnn Installation Bestimmen Sie die CUDA-Version Kompatibilität: Verwenden Sie den Befehl nvidia-smi, um die von Ihrer NVIDIA-Grafikkarte unterstützte CUDA-Version anzuzeigen. Beispielsweise kann Ihre MX450 -Grafikkarte CUDA11.1 oder höher unterstützen. Download und installieren Sie Cudatoolkit: Besuchen Sie die offizielle Website von Nvidiacudatoolkit und laden Sie die entsprechende Version gemäß der höchsten CUDA -Version herunter und installieren Sie sie, die von Ihrer Grafikkarte unterstützt wird. Installieren Sie die Cudnn -Bibliothek:

Die Installation von MySQL auf CentOS umfasst die folgenden Schritte: Hinzufügen der entsprechenden MySQL Yum -Quelle. Führen Sie den Befehl mySQL-server aus, um den MySQL-Server zu installieren. Verwenden Sie den Befehl mySQL_SECURE_INSTALLATION, um Sicherheitseinstellungen vorzunehmen, z. B. das Festlegen des Stammbenutzerkennworts. Passen Sie die MySQL -Konfigurationsdatei nach Bedarf an. Tune MySQL -Parameter und optimieren Sie Datenbanken für die Leistung.

Docker verwendet Linux -Kernel -Funktionen, um eine effiziente und isolierte Anwendungsumgebung zu bieten. Sein Arbeitsprinzip lautet wie folgt: 1. Der Spiegel wird als schreibgeschützte Vorlage verwendet, die alles enthält, was Sie für die Ausführung der Anwendung benötigen. 2. Das Union File System (UnionFS) stapelt mehrere Dateisysteme, speichert nur die Unterschiede, speichert Platz und beschleunigt. 3. Der Daemon verwaltet die Spiegel und Container, und der Kunde verwendet sie für die Interaktion. 4. Namespaces und CGroups implementieren Container -Isolation und Ressourcenbeschränkungen; 5. Mehrere Netzwerkmodi unterstützen die Containerverbindung. Nur wenn Sie diese Kernkonzepte verstehen, können Sie Docker besser nutzen.

Der Befehl zum Neustart des SSH -Dienstes lautet: SystemCTL Neustart SSHD. Detaillierte Schritte: 1. Zugriff auf das Terminal und eine Verbindung zum Server; 2. Geben Sie den Befehl ein: SystemCTL Neustart SSHD; 1. Überprüfen Sie den Dienststatus: SystemCTL -Status SSHD.

Pytorch Distributed Training on CentOS -System erfordert die folgenden Schritte: Pytorch -Installation: Die Prämisse ist, dass Python und PIP im CentOS -System installiert sind. Nehmen Sie abhängig von Ihrer CUDA -Version den entsprechenden Installationsbefehl von der offiziellen Pytorch -Website ab. Für CPU-Schulungen können Sie den folgenden Befehl verwenden: PipinstallTorChTorChVisionTorChaudio Wenn Sie GPU-Unterstützung benötigen, stellen Sie sicher, dass die entsprechende Version von CUDA und CUDNN installiert ist und die entsprechende Pytorch-Version für die Installation verwenden. Konfiguration der verteilten Umgebung: Verteiltes Training erfordert in der Regel mehrere Maschinen oder mehrere Maschinen-Mehrfach-GPUs. Ort
