	{"id":745,"date":"2018-10-26T13:17:33","date_gmt":"2018-10-26T12:17:33","guid":{"rendered":"https:\/\/www.artefact.com\/?post_type=news&#038;p=745"},"modified":"2024-09-20T17:45:00","modified_gmt":"2024-09-20T16:45:00","slug":"tensorflow-and-open-source-made-product-recognition-model","status":"publish","type":"blog","link":"https:\/\/www.artefact.com\/de\/blog\/tensorflow-and-open-source-made-product-recognition-model\/","title":{"rendered":"Wie Sie Tensorflow und die damit verbundenen Open-Source-Beitr\u00e4ge nutzen, um ein ma\u00dfgeschneidertes Produkterkennungsmodell zu erstellen"},"content":{"rendered":"<p><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:0px;--awb-padding-right:0px;--awb-padding-bottom:0px;--awb-padding-left:0px;--awb-margin-bottom:40px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:calc( 1440px + 20px );margin-left: calc(-20px \/ 2 );margin-right: calc(-20px \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_2 1_2 fusion-flex-column avada-news-bloc-image\" style=\"--awb-bg-size:cover;--awb-width-large:50%;--awb-margin-top-large:0px;--awb-spacing-right-large:10px;--awb-margin-bottom-large:0px;--awb-spacing-left-large:10px;--awb-width-medium:50%;--awb-order-medium:0;--awb-spacing-right-medium:10px;--awb-spacing-left-medium:10px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:10px;--awb-spacing-left-small:10px;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-image-element\" style=\"text-align:left;--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\"fusion-imageframe imageframe-none imageframe-1 hover-type-none\"><img decoding=\"async\" width=\"1057\" height=\"591\" title=\"data-driven\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%271057%27%20height%3D%27591%27%20viewBox%3D%270%200%201057%20591%27%3E%3Crect%20width%3D%271057%27%20height%3D%27591%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-orig-src=\"https:\/\/www.artefact.com\/wp-content\/uploads\/2019\/10\/image00.0.0.jpg\" alt class=\"lazyload img-responsive wp-image-30246\"\/><\/span><\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_2 1_2 fusion-flex-column\" style=\"--awb-padding-top:10px;--awb-padding-right:10px;--awb-padding-bottom:10px;--awb-padding-left:10px;--awb-bg-size:cover;--awb-width-large:50%;--awb-margin-top-large:0px;--awb-spacing-right-large:10px;--awb-margin-bottom-large:0px;--awb-spacing-left-large:10px;--awb-width-medium:50%;--awb-order-medium:0;--awb-spacing-right-medium:10px;--awb-spacing-left-medium:10px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:10px;--awb-spacing-left-small:10px;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-1\"><p>NACHRICHTEN \/ DATENWISSENSCHAFT<\/p>\n<\/div><div class=\"fusion-text fusion-text-2\"><p>Stellen Sie sich vor, Sie sind der Direktor eines neuen High-Tech-Start-ups, das ein brandneues Produkt (sagen wir ein neues IoT-Ger\u00e4t) auf den Markt bringen m\u00f6chte. Sie haben an vielen Konferenzen, Ausstellungen und Demos teilgenommen, um im Vorfeld \u00fcber Ihr Produkt zu informieren und den Bekanntheitsgrad zu steigern. Sie erwarten, dass die Verkaufszahlen Ihres Produkts nach der Markteinf\u00fchrung hoch genug sein werden, um Ihre Ziele zu erreichen.<\/p>\n<\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-2 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-background-color:#ffffff;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:calc( 1440px + 20px );margin-left: calc(-20px \/ 2 );margin-right: calc(-20px \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-color:#ffffff;--awb-bg-color-hover:#ffffff;--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:10px;--awb-margin-bottom-large:0px;--awb-spacing-left-large:10px;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:10px;--awb-spacing-left-medium:10px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:10px;--awb-spacing-left-small:10px;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-3\" style=\"--awb-text-color:#000000;\"><p><span style=\"font-weight: 400;\">Stellen Sie sich vor, Sie sind der Direktor eines neuen High-Tech-Start-ups, das ein brandneues Produkt (sagen wir ein neues IoT-Ger\u00e4t) auf den Markt bringen m\u00f6chte. Sie haben an vielen Konferenzen, Ausstellungen und Demos teilgenommen, um im Vorfeld \u00fcber Ihr Produkt zu informieren und den Bekanntheitsgrad zu steigern. Sie erwarten, dass die Verkaufszahlen Ihres Produkts nach der Markteinf\u00fchrung hoch genug sein werden, um Ihre Ziele zu erreichen.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Hier gibt es ein Problem: Sie haben keine M\u00f6glichkeit, die Nachfrage nach Ihrem Produkt vorherzusehen und abzusch\u00e4tzen.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Eine einfache Tatsache, die Sie \u00fcberpr\u00fcfen k\u00f6nnten, ist, wie viel im Internet \u00fcber Ihr Produkt gesprochen wird. Sie k\u00f6nnten einen Blick auf die wichtigsten sozialen Netzwerke (Facebook, Twitter, Instagram...) werfen und ermitteln, in wie vielen Beitr\u00e4gen Ihr Produkt erw\u00e4hnt wird. Das w\u00fcrde Ihnen eine Vorstellung davon geben, wie viel Umsatz Sie erwarten k\u00f6nnen.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Sie haben zwei M\u00f6glichkeiten, ein Produkt in einem sozialen Posting zu erkennen. Sie k\u00f6nnen entweder den Text analysieren, indem Sie Text Mining durchf\u00fchren, oder Sie k\u00f6nnen eine Bilderkennung f\u00fcr das Bild des Beitrags durchf\u00fchren. Bei der Analyse des Textes gibt es jedoch ein Problem: Wenn ein Produkt auf den Markt kommt, ist die Wahrscheinlichkeit gering, dass jeder seinen Namen kennt und es gleich nach der Ver\u00f6ffentlichung erw\u00e4hnt. Die Bilderkennung ist daher die bevorzugte L\u00f6sung. Um ein Produkt auf Bildern zu erkennen (wenn Sie mehrere Produkte zu erkennen haben), m\u00fcssen Sie Folgendes durchf\u00fchren <\/span><b>Objekt-Erkennung<\/b><span style=\"font-weight: 400;\"> und genau hier kommt Tensorflow ins Spiel.<\/span><\/p>\n<h3><strong><span style=\"color: #ff0066;\">Was ist Tensorflow?<\/span><\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Tensorflow ist ein <strong>Open-Source<\/strong> mathematische Bibliothek, die stabile Python- und C-APIs bereitstellt und f\u00fcr verschiedene data-Manipulationsaufgaben verwendet wird. Sie ist sehr bekannt und wird f\u00fcr Machine Learning und Deep Learning-Anwendungen wie neuronale Netze verwendet. Die Anwendungsf\u00e4lle, f\u00fcr die Tensorflow am bekanntesten ist, sind Bilderkennung, Verarbeitung nat\u00fcrlicher Sprache und Analyse von Sprache in Text.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Unser spezieller Anwendungsfall ist <strong>Objekt-Erkennung<\/strong>. Sie k\u00f6nnen Tensorflow auf verschiedenen Ebenen verwenden:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><strong>Stufe 1<\/strong><span style=\"font-weight: 400;\"><strong>:<\/strong> Verwenden Sie ein vorgefertigtes Modell von der Stange und wenden Sie es direkt auf Ihr data an, um die Produkte zu erkennen. Diese Methode ist die am wenigsten komplexe und schnellste, da Sie kein Modell erstellen oder trainieren m\u00fcssen.<\/span><\/li>\n<li style=\"font-weight: 400;\"><strong>Stufe 2<\/strong><span style=\"font-weight: 400;\"><strong>:<\/strong> Trainieren Sie ein Modell auf Ihren eigenen data, damit das Modell lernen kann und die Bandbreite Ihrer Produkte genau kennt. Diese Stufe erfordert das Trainieren eines Modells auf data, die Sie zuvor beschriftet haben. Dies nimmt mehr Zeit in Anspruch, liefert aber relevantere Ergebnisse, da das Modell die genauen Produktreferenzen erkennt.<\/span><\/li>\n<li style=\"font-weight: 400;\"><strong>Stufe 3<\/strong><span style=\"font-weight: 400;\"><strong>:<\/strong> Erstellen Sie Ihr eigenes Modell von Grund auf. In dieser Stufe trainieren Sie nicht nur ein Modell, sondern Sie bauen es von Anfang an auf. Dabei kann es sich sowohl um die Anpassung von Parametern eines bestehenden Modells als auch um die Entwicklung einer neuen neuronalen Netzwerkarchitektur handeln. Dieser Ansatz ist eher f\u00fcr Forschungszwecke geeignet, da er sehr zeitaufw\u00e4ndig ist.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Im Folgenden beschreiben wir jede Ebene der Nutzung von Tensorflow im Detail.<\/span><\/p>\n<h3><strong><span style=\"color: #ff0066;\">Stufe 1 - Verwenden Sie ein vortrainiertes Modell<\/span><\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Die erste grundlegende Verwendung ist die Verwendung eines Modells, das bereits auf einem beschrifteten data-Set trainiert wurde. Diese Option sollte immer dann gew\u00e4hlt werden, wenn die data, auf die Sie das Modell anwenden m\u00f6chten, der Trainings-data sehr \u00e4hnlich ist. Zum Beispiel, wenn Sie generische Objekte wie Schuhe, Smartphones, Taschen usw. erkennen wollen. Dieser Ansatz ist daher nicht geeignet, wenn Sie erwarten, eine Marke und ein bestimmtes Modell aus Ihrer Produktpalette zu erkennen.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Normalerweise werden solche Modelle auf Standard-data-Sets trainiert, wie dem <\/span><strong>Coco dataset<\/strong><span style=\"font-weight: 400;\"> (<\/span><a href=\"https:\/\/github.com\/cocodataset\/cocoapi\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Github-Link hier<\/span><\/a><span style=\"font-weight: 400;\">) oder <\/span><strong>ImageNet dataset<\/strong><span style=\"font-weight: 400;\"> (<\/span><a href=\"http:\/\/image-net.org\/\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Link hier<\/span><\/a><span style=\"font-weight: 400;\">). Diese data-Sets bestehen aus riesigen Sammlungen von Bildern, die bereits beschriftet und f\u00fcr das Modelltraining einsatzbereit sind. Sie werden h\u00e4ufig zum Trainieren von Bildklassifizierungs- und Objekterkennungsmodellen verwendet, die als vortrainierte Modelle f\u00fcr die allgemeine Produkterkennung genutzt werden k\u00f6nnen.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Da wir nun mehr \u00fcber das data wissen, lassen Sie uns einen kurzen \u00dcberblick \u00fcber das vortrainierte Modell geben, das Sie verwenden k\u00f6nnen. Eine der gebr\u00e4uchlichsten Quellen, um vortrainierte Modelle zu finden, ist <\/span><strong>Keras<\/strong><span style=\"font-weight: 400;\">. Es verf\u00fcgt \u00fcber ein Modul, in dem Sie verschiedene Arten von Bildklassifizierungsmodellen (VGG16, ResNet50, IncetopnV3...) finden k\u00f6nnen, die auf Standard-data-Sets trainiert wurden. ImageNet f\u00fcr diese F\u00e4lle. Der Arbeitsablauf ist dann ganz einfach: Sie laden das Modell und wenden es direkt auf Ihre Bilder an, um die Merkmale zu extrahieren. So k\u00f6nnen Sie zum Beispiel direkt klassifizieren, welche Ihrer Bilder Uhren, Kopfh\u00f6rer, Headsets usw. enthalten. Es gibt noch ein weiteres Beispiel, das spezifischer auf den Anwendungsfall der Objekterkennung zugeschnitten ist und vom Tensorflow-Team von Google entwickelt wurde. Sie haben eine Reihe von vortrainierten Modellen erstellt (eines davon basiert auf dem Coco dataset), die direkt auf neuen Bildern zur Objekterkennung verwendet werden k\u00f6nnen (<\/span><a href=\"https:\/\/github.com\/tensorflow\/models\/tree\/master\/research\/object_detection\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400;\">Github-Link hier<\/span><\/a><span style=\"font-weight: 400;\">). Diese Modelle k\u00f6nnen Sie auch als Vorlage f\u00fcr Ihr eigenes data verwenden, mit dem wir uns in Stufe 2 besch\u00e4ftigen werden.<\/span><\/p>\n<h3><strong><span style=\"color: #ff0066;\">Stufe 2 - Trainieren Sie selbst ein Modell data<\/span><\/strong><\/h3>\n<p><span style=\"font-weight: 400;\">Wenn Sie mit einem dataset arbeiten, das sich von dem urspr\u00fcnglichen dataset unterscheidet, das f\u00fcr das Training des Modells verwendet wurde, wird es nicht funktionieren, dieses einfach anzuwenden. Sie m\u00fcssen Ihr eigenes dataset f\u00fcr das Training erstellen und das Modell damit neu trainieren. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Die meisten Probleme der Bilderkennung erfordern den Einsatz von Convolutional Neural Networks (CNN). Die ersten Schichten (Faltungsschichten) extrahieren Muster und Merkmale aus dem Bild. Diese Merkmale werden dann an die letzten Schichten (voll verkn\u00fcpfte Schichten) zur Vorhersage weitergegeben. Es gibt zwei Methoden, um ein Modell auf Ihrem eigenen data zu trainieren: <\/span><strong>Lernen \u00fcbertragen<\/strong><span style=\"font-weight: 400;\"> und <\/span><strong>Feinabstimmung<\/strong><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><strong>Lernen \u00fcbertragen<\/strong> besteht darin, die vortrainierten Faltungsschichten des urspr\u00fcnglichen Modells zu verwenden und die voll verkn\u00fcpften Schichten mit den Merkmalen zu trainieren, die aus unserem Bildsatz extrahiert wurden. Die Idee dabei ist, das Wissen, das beim Training des Modells auf dem urspr\u00fcnglichen dataset gewonnen wurde, f\u00fcr unser Problem zu nutzen. Diese Technik ist effizient, wenn die beiden data-Sets \u00e4hnlich sind. Ein Modell, das f\u00fcr die Erkennung von Autos trainiert wurde, k\u00f6nnte zum Beispiel auf die Erkennung von Lastwagen umtrainiert werden. Der Grund daf\u00fcr ist, dass die Bilder von Autos den Bildern von Lastwagen \u00e4hnlich sind und die von den Faltungsschichten aus diesen Bildern extrahierten Muster wahrscheinlich \u00e4hnlich sind. Die Abbildung unten veranschaulicht den Prozess:<\/span><\/p>\n<p><img decoding=\"async\" class=\"lazyload wp-image-747 aligncenter\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27694%27%20height%3D%27243%27%20viewBox%3D%270%200%20694%20243%27%3E%3Crect%20width%3D%27694%27%20height%3D%27243%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-orig-src=\"http:\/\/briqahg.cluster028.hosting.ovh.net\/wp\/wp-content\/uploads\/2019\/10\/Training-last-layer-300x105.png\" alt=\"\" width=\"694\" height=\"243\" \/><\/p>\n<div class=\"articleblock text\">\n<div class=\"content\">\n<p>Wenn sich Ihr dataset stark vom Original dataset unterscheidet, m\u00fcssen Sie Folgendes tun\u00a0<strong>Feinabstimmung<\/strong>. Im Gegensatz zum Transfer Learning wird hier das gesamte Netzwerk (oder zumindest die meisten Faltungsschichten) neu trainiert. So werden die Faltungsschichten auf Ihre Bilder trainiert und k\u00f6nnen Merkmale extrahieren, die vollst\u00e4ndig an Ihre Bilder angepasst sind. Der Vorteil der Feinabstimmung besteht darin, dass das Modell vollst\u00e4ndig auf das dataset trainiert wird und wahrscheinlich eine bessere Leistung erzielt, aber es ist auch zeitaufw\u00e4ndiger und rechenintensiver. Die folgende Abbildung veranschaulicht den Prozess:<\/p>\n<\/div>\n<\/div>\n<p><img decoding=\"async\" class=\"lazyload wp-image-748 aligncenter\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27697%27%20height%3D%27223%27%20viewBox%3D%270%200%20697%20223%27%3E%3Crect%20width%3D%27697%27%20height%3D%27223%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-orig-src=\"http:\/\/briqahg.cluster028.hosting.ovh.net\/wp\/wp-content\/uploads\/2019\/10\/original-labels-300x96.png\" alt=\"\" width=\"697\" height=\"223\" \/><\/p>\n<p>Um ein dataset f\u00fcr die Objekterkennung zu erstellen, m\u00fcssen Sie eine Menge Trainingsbilder sammeln, aber \"Wie viele genau?\", k\u00f6nnte man fragen. Einige sagen Hunderte, andere sagen Tausende oder sogar Hunderttausende, aber es gibt keine wirkliche Wahrheit. Es ist jedoch empfehlenswert, mehr als hundert Bilder f\u00fcr jede Klasse zu haben, die Ihr Modell erkennen soll.<\/p>\n<p>Sobald Sie Ihre Bilder gesammelt haben, m\u00fcssen Sie sie beschriften.\u00a0<strong>Der Beschriftungsprozess besteht aus der Erstellung von JSON-Dateien, die die Koordinaten und die Klasse des Objekts enthalten, das das Modell auf jedem Bild erkennen und wiedererkennen soll<\/strong>. Dieser Teil wird in der Regel manuell durchgef\u00fchrt, kann aber durch Code halbautomatisiert werden. Es wurden mehrere Open-Source-Tools entwickelt, um die manuelle Beschriftung zu beschleunigen, und eines davon ist das<a href=\"https:\/\/github.com\/puzzledqs\/BBox-Label-Tool\" target=\"_blank\" rel=\"noopener\">\u00a0BBox-Etiketten-Tool<\/a>\u00a0auf Github. Das Tool besteht aus einer Benutzeroberfl\u00e4che, die alle Bilder l\u00e4dt und es dem Benutzer erm\u00f6glicht, ein Bild mit 2 Klicks zu beschriften:<\/p>\n<p><img decoding=\"async\" class=\"lazyload wp-image-749 aligncenter\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27912%27%20height%3D%27511%27%20viewBox%3D%270%200%20912%20511%27%3E%3Crect%20width%3D%27912%27%20height%3D%27511%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-orig-src=\"http:\/\/briqahg.cluster028.hosting.ovh.net\/wp\/wp-content\/uploads\/2019\/10\/img-wear-300x168.png\" alt=\"\" width=\"912\" height=\"511\" \/><\/p>\n<p>Der Benutzer muss nur auf die obere linke Ecke und die untere rechte Ecke des Objekts klicken, dann zeichnet das Tool ein Rechteck um das Bild und speichert die Koordinaten in einer Datei. Dadurch wird die Beschriftungszeit (abgesehen vom Hinzuf\u00fcgen der Objektklasse) auf 3 Sekunden reduziert. Die endg\u00fcltige JSON-Datei sollte nach dem Hinzuf\u00fcgen der Objektklasse wie folgt aussehen: <\/p>\n<p>Der letzte Schritt besteht darin, die Dateien in eine einzige Datei zu konvertieren, die speziell f\u00fcr Tensorflow formatiert ist. Hier finden Sie eine einfache Anleitung<a href=\"https:\/\/medium.com\/@WuStangDan\/step-by-step-tensorflow-object-detection-api-tutorial-part-2-converting-dataset-to-tfrecord-47f24be9248d\" target=\"_blank\" rel=\"noopener\">\u00a0Hier<\/a>.<\/p>\n<p>Sobald Sie Ihr dataset erstellt haben, k\u00f6nnen Sie damit beginnen, Ihr Modell zu trainieren, aber zuerst m\u00fcssen Sie ein vortrainiertes Modell finden! J\u00fcngste Forschungen auf dem Gebiet des Deep Learning haben zur Entwicklung mehrerer Modelle auf der Grundlage neuronaler Netze f\u00fcr die Objekterkennung gef\u00fchrt. Eine bekannte Architektur ist das Faster R-CNN, das auf Region Proposal Networks (RPN) basiert. Faster R-CNN besteht aus zwei Netzwerken: einem RPN zur Erzeugung von Regionsvorschl\u00e4gen und einem Netzwerk, das diese Vorschl\u00e4ge zur Erkennung von Objekten verwendet. Das Tensorflow-Team bei Google hat eine Reihe von Deep-Learning-Modellen entwickelt, die f\u00fcr data-Wissenschaftler leicht nutzbar sind, und eines davon ist ein Objekterkennungsmodell, das auf Faster R-CNN basiert. Das Modell wird auf der Tensorflow-Website zur Verf\u00fcgung gestellt.<a href=\"https:\/\/github.com\/tensorflow\/models\/tree\/master\/research\/object_detection\" target=\"_blank\" rel=\"noopener\">\u00a0Github<\/a>\u00a0Seite mit einer Anleitung. Die<a href=\"https:\/\/github.com\/tensorflow\/models\/blob\/master\/research\/object_detection\/g3doc\/running_pets.md\" target=\"_blank\" rel=\"noopener\">\u00a0Lernprogramm<\/a>\u00a0zeigt die Schritte zum erneuten Trainieren des Modells (mit Transfer Learning) und dessen Bereitstellung auf Google ML Engine.<\/p>\n<h3><strong><span style=\"color: #ff0066;\">Level 3 - Erstellen Sie Ihr eigenes Modell von Grund auf<\/span><\/strong><\/h3>\n<p>Wenn Sie die Seele eines Forschers haben oder ein sehr spezifisches Computer Vision Problem haben, k\u00f6nnen Sie Ihr eigenes Modell von Grund auf erstellen. In diesem Fall haben Sie drei M\u00f6glichkeiten:<\/p>\n<ul>\n<li><strong>Erstellen Sie ein Modell zur Bildklassifizierung mit CNNs<\/strong><\/li>\n<\/ul>\n<p>Die einfachste L\u00f6sung f\u00fcr die Produkterkennung ist die Klassifizierung von Bildern mit der Architektur des Convolutional Neural Network. Diese Modelle nehmen ein Bild als Eingabe und geben ein Etikett aus, das das Objekt angibt. Sie sollten daher nur verwendet werden, wenn Ihre Bilder nur ein Objekt enthalten, das Sie erkennen m\u00f6chten. Die Verwendung eines Bildklassifizierungsmodells f\u00fcr die Objekterkennung ist jedoch aufgrund des Rauschens rund um das Objekt im Bild wahrscheinlich nicht sehr leistungsf\u00e4hig. Bildklassifizierungsmodelle sind darauf ausgelegt, Merkmale aus dem gesamten Bild zu extrahieren und das Bild als Ganzes zu klassifizieren. Das Problem dabei ist, dass zwei verschiedene Bilder, z. B. ein Bild eines Zimmers und ein Bild einer Stra\u00dfe, die beide das gew\u00fcnschte Objekt enthalten, die gleiche Bezeichnung haben k\u00f6nnen. Das macht die Klassifizierung schwierig. Hier sind<a href=\"https:\/\/www.tensorflow.org\/tutorials\/estimators\/cnn\" target=\"_blank\" rel=\"noopener\">\u00a0zwei<\/a><a href=\"https:\/\/medium.com\/@mroman09\/building-a-convolutional-neural-network-to-classify-images-in-fashion-mnist-57589b94898e\" target=\"_blank\" rel=\"noopener\">\u00a0Tutorials<\/a>\u00a0wie Sie CNNs von Grund auf neu aufbauen k\u00f6nnen.<\/p>\n<ul>\n<li><strong>Erstellen Sie ein Objekterkennungsmodell<\/strong><\/li>\n<\/ul>\n<p>Wie bereits erw\u00e4hnt, sind die Modelle zur Objekterkennung erst k\u00fcrzlich durch die Forschung im Bereich Deep Learning entstanden. Die Faster R-CNN-Architektur wurde Ende 2015 als eine Iteration der \u00e4lteren Architektur Fast R-CNN eingef\u00fchrt. Sie gibt aus:<\/p>\n<p>a) eine Liste von Bounding Boxen<\/p>\n<p>b) ein jedem Begrenzungsrahmen zugewiesenes Etikett<\/p>\n<p>c) eine Wahrscheinlichkeit f\u00fcr jedes Label und jede Bounding Box<\/p>\n<p>Zun\u00e4chst wird ein vortrainiertes CNN auf das Bild angewendet und eine Merkmalskarte erstellt. Diese Merkmale werden dann an ein RPZ weitergegeben, um Kandidatenregionen (Bounding Boxes) zu finden, die relevante Objekte enthalten. Der letzte Schritt besteht darin, die vom CNN berechneten Merkmale und die Bounding Boxes zu verwenden, um den Inhalt der Bounding Boxes zu klassifizieren und ihre Koordinaten anzupassen (damit sie besser zum Objekt passen). Dies geschieht \u00fcber das RCNN-Modul. Die Abbildung unten veranschaulicht die Architektur:<\/p>\n<p><img decoding=\"async\" class=\"lazyload wp-image-750 aligncenter\" src=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27752%27%20height%3D%27178%27%20viewBox%3D%270%200%20752%20178%27%3E%3Crect%20width%3D%27752%27%20height%3D%27178%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-orig-src=\"http:\/\/briqahg.cluster028.hosting.ovh.net\/wp\/wp-content\/uploads\/2019\/10\/RPN-300x71.png\" alt=\"\" width=\"752\" height=\"178\" \/><\/p>\n<p>Weitere Einzelheiten finden Sie in diesem<a href=\"https:\/\/tryolabs.com\/blog\/2018\/01\/18\/faster-r-cnn-down-the-rabbit-hole-of-modern-object-detection\/\" target=\"_blank\" rel=\"noopener\">\u00a0Lernprogramm<\/a>, und Open-Source-Arbeiten zu diesem Thema sind verf\u00fcgbar<a href=\"https:\/\/github.com\/tryolabs\/luminoth\/tree\/master\/luminoth\/models\/fasterrcnn\" target=\"_blank\" rel=\"noopener\">\u00a0Hier<\/a>.<\/p>\n<ul>\n<li><strong>Erstellen Sie ein hybrides Modell mit Objekterkennungsarchitekturen und CNNs<\/strong><\/li>\n<\/ul>\n<p>Wenn Sie Ihre Leistung steigern m\u00f6chten, k\u00f6nnen Sie den hybriden Ansatz in Betracht ziehen. Es ist m\u00f6glich, dass ein Objekterkennungsansatz zu einer schlechten Klassifizierung f\u00fchrt (das Objekt wird gut erkannt, aber die falsche Bezeichnung wird vorhergesagt). In diesem Fall k\u00f6nnen Sie zun\u00e4chst ein Objekterkennungsmodell auf Ihrem dataset mit nur einem Label (z.B. \"Objekt\") trainieren und dann Ihre Bilder auf der Grundlage der Koordinaten der Bounding Boxes zuschneiden. Auf diese Weise wird ein Satz von Bildern erstellt, der nur das relevante Objekt enth\u00e4lt, das in den Originalbildern erkannt wurde. Dieses Set k\u00f6nnen Sie dann als Trainingsset f\u00fcr die CNN-Bildklassifizierung verwenden.<\/p>\n<h3><strong><span style=\"color: #ff0066;\">Erweiterung - Automatisiertes maschinelles Lernen<\/span><\/strong><\/h3>\n<p>Heutzutage k\u00f6nnen wir die Entwicklung neuer Initiativen beobachten, die darauf abzielen, den Prozess der Erstellung und Anpassung Ihres eigenen Modells f\u00fcr jeden zug\u00e4nglich zu machen, auch f\u00fcr Personen ohne technischen Hintergrund. Das Ziel ist, dass Sie statt fertiger Modelle (wie Level 1) Ihr eigenes Modell trainieren k\u00f6nnen, ohne dass Sie \u00fcber das zugrundeliegende Wissen verf\u00fcgen m\u00fcssen.<\/p>\n<p><strong>Wie funktioniert das?<\/strong><\/p>\n<p>Die L\u00f6sung automatisiert die Erstellung des Bildklassifizierungsmodells oder des Objekterkennungsmodells. Sie m\u00fcssen lediglich ein beschriftetes data-Set mit Ihren Bildern bereitstellen und diese dann an die L\u00f6sung senden. Diese data wird eingelesen, um ein Computer Vision Modell darauf zu trainieren (als Level 2 oder Level 3). Es gibt ein trainiertes Modell aus, manchmal sogar eine API, mit der Sie die Beschriftungen vorhersagen und Objekte auf neuen Bildern lokalisieren k\u00f6nnen. Das Modell optimiert sich selbst, so dass Sie nicht wissen m\u00fcssen, wie es zu implementieren und zu parametrisieren ist.<\/p>\n<p><strong>Was sind die L\u00f6sungen?<\/strong><\/p>\n<p>Zwei Hauptakteure tauchen in diesem Bereich auf und haben Tools ver\u00f6ffentlicht, die sich derzeit noch im Beta-Stadium befinden.<\/p>\n<ul>\n<li>Erstens haben wir Google und seine Google Cloud AutoML-Komponente aus seiner Cloud-Plattform-Suite (<a href=\"https:\/\/cloud.google.com\/automl\/\" target=\"_blank\" rel=\"noopener\">Link hier<\/a>). Cloud AutoML wurde nicht nur f\u00fcr Computer-Vision-Probleme entwickelt, sondern kann auch f\u00fcr alle Anwendungen des maschinellen Lernens sowie f\u00fcr die Verarbeitung nat\u00fcrlicher Sprache und die \u00dcbersetzung verwendet werden.<\/li>\n<li>Zweitens haben wir die Open-Source-Initiative AutoKeras (<a href=\"https:\/\/autokeras.com\/start\/\" target=\"_blank\" rel=\"noopener\">Link hier<\/a>). Es basiert auf Keras und st\u00fctzt sich auf die automatische Suche nach der Architektur und den Hyperparametern von Deep Learning-Modellen.<\/li>\n<\/ul>\n<p><em>Gemeinsam verfasster Artikel von Matthieu Montaigu und Kasra Mansouri, Data-Wissenschaftler bei Artefact.<\/em><\/p>\n<p><strong>Sie m\u00f6chten mehr \u00fcber Absatzprognosen dank ma\u00dfgeschneiderter Modelle zur Produkterkennung erfahren? Unsere Experten stehen Ihnen gerne zur Verf\u00fcgung, um alle Ihre Fragen zu beantworten!\u00a0<\/strong><\/p>\n<\/div><\/div><\/div><\/div><\/div><\/p>","protected":false},"excerpt":{"rendered":"<p>Stellen Sie sich vor, Sie sind der Direktor eines neuen High-Tech-Start-ups, das ein brandneues Produkt (sagen wir ein neues IoT-Ger\u00e4t) auf den Markt bringen m\u00f6chte. Sie haben an vielen Konferenzen, Ausstellungen und Demos teilgenommen, um im Vorfeld \u00fcber Ihr Produkt zu informieren und den Bekanntheitsgrad zu steigern. Sie erwarten, dass die Verkaufszahlen Ihres Produkts nach der Markteinf\u00fchrung hoch genug sein werden, um Ihre Ziele zu erreichen.<\/p>","protected":false},"featured_media":746,"parent":0,"template":"","meta":{"_acf_changed":false,"ep_exclude_from_search":false},"blog-category":[22035],"blog-language":[2991],"class_list":["post-745","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog-category-data-ai-consulting","blog-language-en"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.artefact.com\/de\/wp-json\/wp\/v2\/blog\/745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.artefact.com\/de\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.artefact.com\/de\/wp-json\/wp\/v2\/types\/blog"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.artefact.com\/de\/wp-json\/wp\/v2\/media\/746"}],"wp:attachment":[{"href":"https:\/\/www.artefact.com\/de\/wp-json\/wp\/v2\/media?parent=745"}],"wp:term":[{"taxonomy":"blog-category","embeddable":true,"href":"https:\/\/www.artefact.com\/de\/wp-json\/wp\/v2\/blog-category?post=745"},{"taxonomy":"blog-language","embeddable":true,"href":"https:\/\/www.artefact.com\/de\/wp-json\/wp\/v2\/blog-language?post=745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}