Wie wir in Kinos analysiert werden ... und nicht nur

Computer Vision wird zunehmend in unser Leben integriert. Gleichzeitig bemerken wir nicht einmal all diese Beobachtungen von uns. Heute sprechen wir über ein System, mit dem die Emotionen der Besucher auf Konferenzen, im Bildungsprozess, in Kinos und vielem mehr analysiert werden können. Übrigens werden wir den Code zeigen und über praktische Fälle sprechen. Schau unter die Katze!



Ich gebe dem Autor das Wort.

Möchten Sie das Publikum in der Halle, im Klassenzimmer, im Büro immer persönlich kennenlernen und verwalten? Die Frage ist überhaupt nicht untätig. Es geht um ein Offline-Publikum. Um die Geschäftsleistung zu verbessern, ist es von entscheidender Bedeutung, Informationen über das Verhalten Ihres Kunden, seine Reaktionen und Wünsche zu haben. Wie sammle ich diese Statistiken?

Mit einem Online-Publikum ist alles einfacher. Wenn sich das Unternehmen im Internet befindet, wird das Marketing erheblich vereinfacht und das Sammeln von Daten im Profil Ihrer Kunden sowie das unbegrenzte „Aufholen“ von Daten für eine unbegrenzte Zeit ist ganz einfach. Viele Werkzeuge - nehmen und verwenden, die Kosten steigen.

Im Offline-Modus gelten dieselben Methoden wie vor 50 Jahren: Fragebögen, Fragebögen, externe Beobachter mit einem Notizbuch usw. Die Qualität dieser Ansätze ist schlecht. Zuverlässigkeit ist zweifelhaft. Über Bequemlichkeit können Sie im Allgemeinen schweigen.

In diesem Artikel möchten wir über die neue CVizi-Lösung sprechen, die interessante und einzigartige Statistiken sammelt und dabei hilft, Informationen über Ihre Kunden / Besucher mithilfe von Computer Vision zu analysieren.

Videoanalyse und Kinos


Ursprünglich wurde das Produkt als Tool zum Zählen von Kinobesuchern und zum Vergleichen ihrer Anzahl mit Tickets entwickelt, die zur disziplinarischen Kontrolle des Servicepersonals und zur Verhinderung von Verstößen gekauft wurden. Aber wie sie sagen, kommt der Appetit mit dem Essen.

Die entwickelte Technologie ermöglichte die Erweiterung der Funktionen der Lösung. Es wurde möglich, die Alters- und Geschlechtsmerkmale der Kinobesucher sowie den emotionalen Hintergrund jeder Person während der Sitzung zu bestimmen.

Die Informationen werden umgehend aktualisiert, und der Benutzer muss lediglich in Ihr persönliches Konto gehen und Statistiken zur interessierenden Sitzung oder einen Analysebericht über die Zielgruppe anzeigen.



Zum Beispiel eröffnen wir eine Sitzung mit dem Film „Ice“ und sehen auf dem Realogramm der Halle die offensichtliche Dominanz weiblicher Zuschauer (im Prinzip vorhersehbar). Und dann schauen wir uns die Emotionen an, die die Menschen erlebt haben (jeder kann sie sehen).





Dies waren Daten für eine bestimmte Sitzung. Schauen wir uns nun die gleichen Daten im Allgemeinen für die gesamte Leihdauer des Films (in einem Kino) an und erhalten Sie ein relevanteres Bild.



In Bezug auf die Besucherzahlen gibt es eine klare Dominanz der weiblichen Zuschauer im Alter von 25 bis 34 Jahren. Männer sind 2,5-3 mal weniger. Das heißt, Werbung in einem neuen SUV in einem Anzeigenblock ist nicht so intelligent wie das Einsetzen einer neuen Wimperntusche. Obwohl dies ein strittiger Punkt ist. In jedem Fall können Sie dem Werbetreibenden nach nur wenigen Tagen Mietdauer die Zielgruppe sicher und sogar quantitativ garantieren.

Aus Sicht des emotionalen Hintergrunds wird das Bild vor allem für Distributoren und Distributoren von Interesse sein. Wem gefällt der Film und wen nervt er? Soll ich eine Fortsetzung drehen? Glauben Sie Bewertungen von Bots oder erhalten Sie zuverlässige Statistiken? In diesem Fall (der Film "Ice") ist der Film ziemlich hell in Emotionen. Die Summe der positiven und negativen Emotionen beträgt 18,5 von 100 Papageien. Der Rest ist neutral. Dies ist ein ziemlich guter Indikator. Zum Vergleich: Der emotionale Hintergrund in anderen Filmen ist möglicherweise nicht so rosig (im Durchschnitt in einem Krankenhaus für alle Altersgruppen und Geschlechter).



Zum Beispiel hat die Pazifikgrenze mit einer vergleichbaren Anzahl von Zuschauern im selben Zeitraum zweimal weniger positive Emotionen. Und der Film „Hallo, Oksana Sokolova“ ist eine solche Entdeckung für Frauen „50+“.



All dies sind einige Beispiele für Analysen, die in Filmnetzwerken verwendet werden können. Sie hatten diese Informationen einfach nicht, und nur wenige Menschen wissen, dass sie überhaupt erhältlich sind, und noch mehr für ihren eigenen Gebrauch.

Für Filmnetzwerke eröffnen sich große Möglichkeiten für eine eingehendere Analyse des Geschehens in der Halle entsprechend der Zusammensetzung des Publikums und ihrer Reaktion auf Filme an verschiedenen Orten.

Sie können sofort Folgendes hervorheben :

  1. Die Möglichkeit, jede Marketinghypothese zu testen, besteht darin, Echtzeit-Feedback zu erhalten und Zielgruppenänderungen und die Auswirkungen von Marketingaktivitäten objektiv zu bewerten.
  2. Die Möglichkeit, Werbetreibenden genaue Informationen über die Zielgruppe bereitzustellen, die die Anzeige angesehen hat. Darüber hinaus ist es dem Werbetreibenden möglich, die Anzeige von Anzeigen durch bestimmte Zielgruppen zu gewährleisten.
  3. Die Möglichkeit, auf dem Markt einzigartige Marketingangebote (Rabatte) für Besucher eines bestimmten Alters und Geschlechts zu erstellen, ohne das bestehende Arbeitsschema zu brechen und die aktuellen Finanzindikatoren nicht zu reduzieren.

Diese und viele andere Möglichkeiten, die sich aufgrund dieser Entscheidung ergeben haben, können den Markt für Kinonetzwerke verändern, den Umsatz steigern und die Effizienz sowohl einzelner Kinos als auch des gesamten Netzwerks verbessern.

In Anbetracht der Tatsache, dass die Lösung „einfach“ ist (keine Server, kein Streaming ins Internet), die Microsoft Azure-Cloud aktiv nutzt und erschwingliche Preise für den Markt bietet (in Form von regelmäßigen Abonnements des Dienstes), implementieren Kinonetzwerke in Russland und im Ausland sie aktiv.

Darüber hinaus spiegelt sich die geschaffene Technologie in anderen Lösungen in parallelen Bereichen wider.

Videoanalysen und Ereignisse


Veranstaltungen, Veranstaltungen, Foren, Gipfeltreffen, Konferenzen, Symposien ... Was wissen die Organisatoren über das neue Publikum? X Personen haben sich registriert, Y ist gekommen, Z hat die Fragebögen ausgefüllt. Das ist fast alles.

Fragen sind ein separater Schmerz: "Also, ich kenne diesen Kameraden gut, ich werde ihm 5 Punkte geben, obwohl der Bericht langweilig war." Wir führen dazu, dass die Zuverlässigkeit der Fragebögen gering ist.
Um die Effektivität der Konferenz zu verstehen, ist lediglich ein Feedback der Teilnehmer an den Veranstalter und die Sponsoren erforderlich.

Der Service zur Analyse des Publikums in Kinos überträgt sich perfekt auf den Konferenzort. CVizi testete diesen Fall auch, indem er zwei Experimente durchführte: in der Matrex-Halle in Skolkovo auf einer der Konferenzen und in der Digital October-Halle während des russischen Finales des studentischen Technologieprojektwettbewerbs Imagine Cup 2018.

Experiment 1. Matrex Hall in Skolkovo


In Matrex wurde die Kamera nicht wie in einem Kino über dem Bildschirm installiert, sondern auf einem Teleskopständer hinter den Lautsprechern. Somit stellte sich heraus, dass die Lösung mobil war. Es ist nur wenige Stunden vor dem Start erforderlich, eine Kamera zu installieren, ein Planogramm der Halle zu erstellen und einen Zeitplan für die Lautsprecher einzugeben. Dann macht das System alles selbst.





Jetzt kann der Veranstalter Daten zur Qualität der Berichte anhand der Anzahl der Teilnehmer in der Halle und ihrer Emotionen bei jeder Sitzung / jedem Bericht sammeln. Und das nächste Mal können Sie eine Veranstaltung anhand objektiver Fakten planen. Es gibt Berichte, nach denen die Teilnehmer einfach den Raum verlassen und der nächste Redner mit denen zusammenarbeitet, die geblieben sind oder keine Zeit hatten zu gehen. Dies ist falsch, und eine solche Prognose könnte den Effekt einfach dramatisch ändern, indem die Berichte neu angeordnet werden.

Experiment 2. Russisches Finale Imagine Cup


Hier war das Ziel etwas anders, aber der Ansatz ist der gleiche. Eine der Nominierungen des Wettbewerbs ist der Publikumspreis. Es sind die Zuschauer, die in der Halle sitzen, nicht die Online-Zuschauer. Zum ersten Mal beim Imagine Cup wurde der Publikumspreis an ein Team vergeben, das von künstlicher Intelligenz ausgewählt wurde. Das Team gewann, auf dessen Leistung das Publikum am positivsten reagierte, während die Jungs auf der Bühne standen. Hierzu wurden bereits zwei Kameras eingesetzt, von denen jede kontinuierlich ihren eigenen Bereich der Halle kontrollierte und die emotionalen Eigenschaften jedes Betrachters sammelte.

In diesem Fall könnten die Kameras an einem Lichtmast über der Bühne aufgehängt werden, was ihre garantierte Stabilität und Unbeweglichkeit gewährleistet. Und wir waren erneut davon überzeugt, dass 4G Internet ausreicht, damit der Dienst funktioniert. Das System erwies sich als so autonom wie möglich. Von den Veranstaltern wurden nur 220 V benötigt. Das ist wirklich wichtig, weil Bei Veranstaltungen dieser Größenordnung sind Kommunikationskanäle immer ein Engpass, und die Qualität des Dienstes hängt direkt von der Stabilität des Internetkanals ab.

Infolgedessen wurde der Preis des Publikums an das Team vergeben, das die maximale Anzahl positiver Emotionen für seine Leistung erzielt hat - Last Day Development von NNSU im. Lobachevsky.



Videoanalyse und Lernen


Der Bildungsbereich in Bezug auf die Automatisierung seiner Prozesse liegt immer noch weit hinter den übrigen Branchen zurück. Beispielsweise wird an vielen Universitäten immer noch die Anwesenheitskontrolle in Form eines externen Controllers mit einer Zeitschrift praktiziert: Eine Person kam herein, zählte Studenten bei Vorlesungen, gab eine Nummer in die Zeitschrift ein (welche Frage?) Und fuhr fort.

Die Technologie der Analyse des Publikums mit Computer-Vision-Methoden passt perfekt zum Bildungsbereich und eröffnet ein großes Feld für Experimente und Analysen. Mögliche zu lösende Aufgaben:

  1. Überwachung der Klassenteilnahme
  2. Studentenausweis
  3. Bewertung der Unterrichtsqualität
  4. Identifizierung negativer Emotionen des Schülers und Annahme vorbeugender Maßnahmen.
  5. Bewertung der Beteiligung eines Schülers oder eines Schülers an der Schule.

Die richtige Planung des Bildungsprozesses, einschließlich des Stundenplans, der Auswahl der Dozenten - dies ist die Grundlage für den Erfolg der Ausbildung. Wenn wir jedoch in den Wirtschaftsbereich wechseln, sind dies die Bildungskosten im Kontext jedes Schülers.

Videoanalyse in anderen Branchen


Die CVizi-Technologie ist nicht auf die vorgestellten Lösungen beschränkt, es gibt Lösungen für den Einzelhandel und die Produktion.

Eine interessante Lösung besteht beispielsweise darin, Informationen über die externe und interne Konvertierung des Geschäfts zu erhalten. Mit diesen beiden Indikatoren können Sie einen Offline-Verkaufstrichter erstellen:

  • Wie viele Leute gehen in die Nähe Ihres Geschäfts?
  • Wie viele Leute haben es betreten;
  • Wie viele Leute sind an die Kasse gekommen?

Hier ist ein Beispiel für eine externe Konvertierung für ein typisches Geschäft in einem Einkaufszentrum in Moskau:



Mit diesen Indikatoren kann ein Unternehmen effektiver Geld für die Kundengewinnung, das Testen von Marketinghypothesen und die Servicequalität ausgeben.

Wie funktioniert es


Jetzt möchte ich ein wenig über Technologie sprechen. Warum sagen wir, dass die Lösung „einfach“ ist? Alles dreht sich um Architektur. Es ist immer eine Belastung für jeden Kunden, eine teure Lösung und zusätzlich eine Flotte von Geräten in Form verschiedener Server, Registrare und anderer Dinge zu kaufen. Und dann alles einzurichten, sich zu paaren und zu begleiten. Wenn dem Kunden eine Box in Form eines Mikrocomputers von der Größe eines Mobiltelefons angeboten wird, kann jeder, der mit der Technik zumindest ein wenig vertraut ist, sie in seinem lokalen Netzwerk installieren und eine IP-Videokamera aufhängen. Die Analogie zum WLAN-Router zu Hause bietet sich an - ich habe ihn an eine Steckdose angeschlossen, das Internet verbunden und die einfachsten Einstellungen vorgenommen. Das ist alles. Es wird kein Kundendienst benötigt. Alles ist sehr einfach unabhängig zu erledigen.



Im persönlichen Konto sieht der Benutzer dann das gesamte System und kann Daten sowohl in Form von Berichten als auch in Form von Statistikprotokollen empfangen und diese Daten mithilfe der API in sein Unternehmens-IT-System übernehmen.

Somit muss der Benutzer nicht über die Infrastruktur nachdenken und sich darum kümmern. Das Anschließen von S-Box-Computergeräten ist sehr einfach. Es ist auch einfach, die Lösung auf andere Punkte zu replizieren: Hängen Sie die Kameras auf, schließen Sie die erforderliche Anzahl an S-Box an und sehen Sie das Objekt auf dem Portal sofort in Ihrem Konto.

Unter dem Portal und dem persönlichen Konto befindet sich ein ganzes System von Analysen, Datenbankspeichern, Geräteüberwachung und Benachrichtigung, das in Azure-Clouds bereitgestellt wird. Das System ist flexibel und alle erforderlichen Rechenressourcen werden dem Benutzer automatisch zugewiesen. Daher werden dem Benutzer die gesamten Kopfschmerzen an der Ausrüstung und ihrer Unterstützung entzogen. Er kauft nur einen Videoanalysedienst. Sehr bequem.

Welche Kameras können für die Videoanalyse des Publikums verwendet werden?


Angesichts der Tatsache, dass Sie am Ende das Gesicht des Betrachters in akzeptabler Qualität erhalten müssen, sollte die Kamera zum einen über eine gute Optik und einen guten Zoom verfügen und zum anderen über PTZ gesteuert werden.
Wir haben mehr als ein Dutzend Kameras verschiedener Marken getestet. Wir werden keine bestimmten Kameramodelle nennen, aber die Eigenschaften können geäußert werden.

Für Hallen mit bis zu 150-200 Personen reicht eine 20x Kamera mit einer 2MP Matrix. Für Hallen mit mehr als 200 Personen ist es besser, Kameras ab 25x zu verwenden. Sie sind sicherlich teurer, aber das ist der richtige Weg. Natürlich können Sie auch mit der Größe der Matrix herumspielen, aber Sie müssen verstehen, dass die Matrix im IR-Spektrum Rauschen erzeugt und der optische Zoom immer dem digitalen vorzuziehen ist.

Erkennungsgenauigkeit


Je näher wir uns auf dem Gesicht positionieren, desto klarer wird es. Alles scheint klar zu sein und das Kind versteht. Wenn bei der Geschlechtserkennung jedoch alles in Ordnung ist, kann die Genauigkeit der Altersbestimmung unabhängig von der Nähe der Kamera leicht ± 5 Jahre oder sogar mehr betragen. Dabei geht es nicht um die Qualität von Algorithmen und neuronalen Netzen, sondern darum, dass jeder Erwachsene versucht, so viel auszusehen, wie er in sein Aussehen investiert hat.

Daher gibt die Kamera das Alter an, in dem eine Person schaut oder versucht zu schauen. Das heißt, biologisches Alter und Alter laut Foto - dies können zwei große Unterschiede sein. Schließlich kann sich jeder von uns an Fälle erinnern, in denen er sich in der Alterseinstufung des Gesprächspartners geirrt hat. Gleichzeitig ist das menschliche Gehirn ein sehr leistungsfähiges und gut trainiertes neuronales Netzwerk.

Azure und seine Dienste


Das Herzstück all dessen ist der kognitive Dienst der Microsoft Face API. Dies ist ein sehr praktischer Dienst, auf den von nahezu jeder gängigen Entwicklungsumgebung aus auf die API zugegriffen werden kann. Wir nutzen die meisten unserer Dienste mit Python - dies ist auf der Cloud-Seite.

Die allgemeine Reihenfolge sieht folgendermaßen aus:

1) S-Box überträgt Bilder in die Cloud

2) Der Cloud-Dienst sammelt sie, sortiert sie und füttert sie in Cognitive Services zur Gesichtserkennung. Verwenden Sie Python, um gesammelte Bilder in die Cloud hochzuladen:

def upload_file(file_path, upload_file_type):
    """ Uploading file """
    ...
    if authData == '' or authData == 'undefined':
        ...
        try:
            r = requests.post(param_web_service_url_auth, headers={'authentication': base64string})
            if r.status_code == 200:
                authData = json.loads(r.text)['token']
                result = upload_file(file_path, upload_file_type)
                return result
            logging.error("Upload_file(%s) - UNEXPECTED AUTH RESULT CODE %d", file_path, r.status_code)
        except Exception as e:
            logging.error('Upload_file(%s) error', file_path)
            logging.exception('Upload exception ' + str(e))
        return False
    try:
        base_name = os.path.basename(file_path)
        txt_part, file_extension = os.path.splitext(base_name)
        files = {'file': open(file_path, 'rb')}
        ...
        if upload_file_type == 1:  # for upload full view
            ...
            payload = {'camid': cam_id, 'dt': dt, 'mac': mac}
            z = requests.post(uploaddatalinkhall, headers={'authentication': authData}, files=files, data=payload)
            if z.status_code == 200:
                return True
            logging.debug('post result -> %d', int(repr(z.status_code)))
        if upload_file_type == 0:
            ...
            payload = {'camid': cam_id, 'dt': dt, 'json_str': json_str, 'mac': mac}
            ...
            z = requests.post(param_web_service_url, headers={'authentication': authData}, files=files, data=payload)
            myfile.close()
            if z.status_code == 200:
                ...
                if len(debug_path) > 0:
                    # move
                    fnn = debug_path + os.sep + json_file
                    shutil.move(upload_folder + os.sep + json_file, fnn)
                else:
                    # delete
                    os.remove(upload_folder + os.sep + json_file)
                return True
            result = "UNEXPECTED STATUS CODE " + repr(z.status_code)
            logging.error('upload_file(%s) - ERROR. Res=%s, text: %s',
                          json_file, result, z.text)
        ...
    except Exception, e:
        ...
        logging.exception('Upload exception: ' + str(e))
    return False

3) Python

CF.face.detect , , MS Face detection Cognitive Service API, :

def faceapi_face_detect(url):
    …
    # API call
    image_url = url
    need_face_id = False
    need_landmarks = False
    attributes = 'age,gender,smile,facialHair,headPose,glasses,emotion,hair,makeup,accessory,occlusion,blur,exposure,noise'
    watcher = elapser_mod.Elapser()
    try:
        api_res = CF.face.detect(image_url, need_face_id, need_landmarks, attributes)
        # callback(url, need_face_id, need_landmarks, attributes, e.elapsed(), api_res)
        text = 'CF.face.detect image_url {}, need_face_id {}, need_landmarks {}, attributes {}, completed in {} s.'. \
            format(image_url, need_face_id, need_landmarks, attributes, watcher.elapsed())
        printlog(text)
        text2 = 'Detected {} faces.'.format(len(api_res))
        printlog(text2)
        text3 = '{}'.format(api_res)
        printlog(text3)
    except CF.CognitiveFaceException as exp:
        text = '[Error] CF.face.detect image_url {}, need_face_id {}, need_landmarks {}, attributes {}, failed in {} s.'. \
            format(image_url, need_face_id, need_landmarks, attributes, watcher.elapsed())
        printlog(text)
        text2 = 'Code: {}, Message: {}'.format(exp.code, exp.msg)
        printlog(text2)
        message = exp.msg
    …
    return api_res, message

. () . . , . . – .

? ! . API. – , , . , () .., «» . . .

.


— CVizi. : 'aosipov @ cvizi.com'. FB .

Source: https://habr.com/ru/post/de413015/


All Articles