Erstellen Sie Ihren eigenen Alien-Datensatz


    Die Segmentierung von Personen, die neuronale Netze verwenden, wird niemanden überraschen. Es gibt viele Anwendungen wie Sticky Ai , Teleport Live und Instagram , mit denen Sie eine so schwierige Aufgabe auf einem Mobiltelefon in Echtzeit ausführen können.


    Nehmen wir also an, der Planet Erde steht vor außerirdischen Zivilisationen. Und von den Außerirdischen aus dem Sternensystem von Alpha Centauri geht die Bitte ein, ein neues Produkt zu entwickeln. Die Sticky Ai- Anwendung , mit der Sie Personen ausschneiden und Aufkleber erstellen können , hat ihnen sehr gut gefallen. Daher möchten sie die Anwendung auf ihren intergalaktischen Markt portieren.


    Leider ist unser neuronales Netzwerk, das in der Segmentierungsanwendung verwendet wird, nur auf Bildern der menschlichen Rasse trainiert, daher funktioniert es bei Außerirdischen schlecht. Es ist dringend erforderlich, unseren Datensatz durch Außerirdische zu erweitern.


    Nachdem wir die Außerirdischen nach mehreren tausend ihrer Bilder gefragt haben, fahren wir mit dem Markup fort.


    Aufgabe:
    Es gibt Alien-Bilder. Für jedes Bild müssen Sie eine Schwarzweißmaske erstellen, in der der Alien weiß und der Hintergrund schwarz hervorgehoben wird.



    Lösung:
    Zunächst müssen Sie einen ToR für Freiberufler erstellen, die die Bilder auslegen. Da wir eine sehr hohe Qualität benötigen, werden wir die Bilder in Photoshop markieren.


    Spoiler

    Wenn wir keine sehr gute Qualität benötigen oder das ausgewählte Objekt sehr einfach ist, kann ein solches Markup mithilfe von Polygonscheitelpunkten durchgeführt werden. Diese Art von Markup ist bei Amazon Mechanical Turk und Yandex.Toloke erhältlich , wo Arbeitskräfte sehr billig sind.


    Es ist möglich, ein TOR in Form eines 10-seitigen PDF-Dokuments zu erstellen, aber:


    1. Freiberufler lesen normalerweise nicht TK, sondern scrollen durch.
    2. In dem Dokument ist es schwierig, den Algorithmus für das korrekte und schnelle Markieren detailliert zu beschreiben.
    3. Das Kompilieren des Dokuments selbst nimmt viel Zeit in Anspruch.

    Daher haben wir den ToR jetzt in Form eines PDF-Dokuments vollständig aufgegeben und stellen die Aufgabe in
    Form eines Schulungsvideos bereit . Nach einer solchen Innovation:


    • Die Produktivität von Freiberuflern hat sich verdoppelt (da das Video den schnellsten und optimalsten Weg zum Markup zeigt).
    • Die Fragen der Freiberufler wurden um das Dreifache reduziert (da das Video jeden Schritt zeigt).
    • Es stellte sich heraus, dass sich die Markup-Kosten um das Zweifache verringerten (da sich der Preis für eine Arbeitsstunde nicht geändert hat, sich Freiberufler jedoch doppelt so schnell melden).

    Besondere Aufmerksamkeit sollte der Markup-Methode in Photoshop gewidmet werden. Photoshop ist ein sehr flexibles Programm, mit dem Markups auf verschiedene Arten erstellt werden können. Daher ist es ratsam, im Voraus zu bestimmen, welche Markup-Qualität Sie benötigen, verschiedene Auswahlwerkzeuge zu studieren, sie miteinander zu vergleichen und das auszuwählen, mit dem die Bildverarbeitung am schnellsten ist.


    Beispiel:
    Es gibt zwei Extraktionsmethoden:
    Methode A dauert 5 Minuten pro Bild.
    Methode B dauert 10 Minuten pro Bild.


    Bei Methode A markiert der Freiberufler 12 Bilder pro Stunde, sodass der Preis pro Bild 150/12 = 12,5 Rubel beträgt.
    Bei Methode B markiert der Freiberufler 6 Bilder pro Stunde, sodass der Preis pro Bild 150/6 = 25 Rubel beträgt.


    Also haben wir den besten Weg gefunden, um die Videoanweisung hervorzuheben und aufzuzeichnen. Wie geht es weiter?



    Es bleibt freiberuflich zu finden. Es gibt viele Freiberufler-Börsen wie Fl.ru , Weblancer , Freelans.ru .
    Vor kurzem haben wir den freiberuflichen WORK-ZILLA-Service genutzt, weil:


    1. Es gibt ziemlich billige Arbeitskräfte.
    2. Viele Künstler.
    3. Benutzerfreundliche Oberfläche zum Erstellen von Aufgaben.

    So erstellen Sie eine Aufgabe:
    Registrieren Sie sich, füllen Sie den Kontostand auf, klicken Sie auf "Aufgabe senden" und wählen Sie "Design" -> "Fotoverarbeitung".



    Geben Sie den Titel und die Beschreibung ein und bestimmen Sie die Zeit, um die Aufgabe abzuschließen. Nachdem ich mehrere Aliens verarbeitet hatte, bemerkte ich, dass es durchschnittlich 4 Minuten pro Bild dauert. Das heißt, 15 Bilder kommen pro Stunde heraus, daher setzen wir den Preis für ein Bild auf 150/15 = 10 Rubel.



    Unmittelbar nach Veröffentlichung des Auftrags beginnen die Darsteller, ihre Dienste anzubieten.



    Wir wählen das schönste anhand des Profilbildes aus , das von Rezensionen erfahren wurde, und bestätigen als Darsteller, dass wir Bilder ausgeben. Wie Sie sehen, haben wir weniger als 15 Minuten gebraucht, um einen Freiberufler zu finden.



    Am nächsten Morgen schickte der Darsteller einen Job.




    Wie überprüfe ich es jetzt?


    Natürlich können Sie jedes Bild in Photoshop öffnen und sehen, wie gut alles hervorgehoben ist. Aber was ist, wenn 20 Personen gleichzeitig für Sie arbeiten und jeder 40 Bilder pro Tag sendet?


    Automatisieren! Um die Überprüfung zu erleichtern, habe ich das folgende Skript in Python implementiert:


    import cv2
    import numpy as np
    import os
    import shutil
    from __future__ import print_function
    from tqdm import tqdm_notebook as tqdm
    #функция, которая рисует фон как в фотошопе
    def generate_checkerboard(shape, size):
        res = np.ones(shape, dtype=np.float32)
        for i in range(0, shape[0] // size + 1):
            for j in range(0, shape[1] // size + 1):
                if (i + j) % 2 == 0:
                    res[i * size:i * size + size, j * size:j * size + size] = 0.7
        return np.stack([res] * 3, axis=2)
    path = '01_Починок Сергей_13'
    files_im = filter(lambda x: x[-4:] == '.jpg', os.listdir(path  + '/images'))
    files_masks = filter(lambda x: x[-4:] == '.png', os.listdir(path  + '/masks'))
    print('Кол-во изображений: %s' % len(files_im))
    print('Кол-во масок: %s' % len(files_masks))
    if len(files_im) != len(files_masks):
        print('Кол-во изображений и масок не совпадает')
        raise Exception('bad count')   
    #создаем папку res, в которую будут записываться коллажи 
    os.makedirs(path + '/res')
    for idd in tqdm(map(lambda x: x[:-4], files_im)):
        print(idd)
        mask = cv2.imread(path + '/masks/' + idd + ".png") / 255.
        im = cv2.imread(path + '/images/' + idd + ".jpg")
        checkerboard = generate_checkerboard(im.shape[:2], 40) * 255
        cv2.imwrite(path + '/res/' + idd + ".jpg",
                    np.concatenate([im, im * (1 - mask), im * mask + (1 - mask) * checkerboard],axis=1))

    Das Skript nimmt das Originalbild, die Maske, und erstellt daraus eine Collage, die aus dem Originalbild, dem ausgeschnittenen Hintergrund und dem ausgeschnittenen Alien besteht.


    Führen Sie das Skript aus und erhalten Sie solche Collagen:











    Nach Durchsicht der Bilder stellen wir fest, dass der Künstler ein Bild nicht sehr gut ausgewählt hat.



    Bitte korrigieren Sie das Bild.



    Nachdem der Freiberufler alle unsere Kommentare korrigiert hat, bestätigen wir die Arbeit und geben dem Freiberufler ein dankbares Feedback.



    Fazit:
    Angenommen, Sie benötigen 2.000 Alien-Bilder, um ein neuronales Netzwerk zu trainieren.
    Um einen solchen Datensatz zu erfassen, müssen Sie nur 2000 x 10 = 20.000 Rubel ausgeben. Wenn Sie berücksichtigen, dass durchschnittlich ein Freiberufler 40 Bilder pro Tag verarbeitet und 10 Personen an dem Markup arbeiten, dauert das Erstellen eines Datensatzes 2000 / (10 x) 40) = 5 Tage.


    PS
    Natürlich sind wir noch keinen Außerirdischen begegnet, keines der Prisma AI-Teams wird Außerirdische segmentieren, aber mit diesem Beispiel wollte ich Ihnen zeigen, wie einfach und kostengünstig Sie Ihren eigenen Datensatz für jede Aufgabe erstellen können, sei es für die Fußgängererkennung eines unbemannten Fahrzeugs oder die Definition von Wäldern in Satellitenbildern.


    Jetzt auch beliebt: