You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/sv/5-retail/lessons/2-check-stock-device/single-board-computer-objec...

5.2 KiB

Anropa din objektdetektor från din IoT-enhet - Virtuell IoT-hårdvara och Raspberry Pi

När din objektdetektor har publicerats kan den användas från din IoT-enhet.

Kopiera bildklassificeringsprojektet

Majoriteten av din lagerdetektor är densamma som bildklassificeraren du skapade i en tidigare lektion.

Uppgift - kopiera bildklassificeringsprojektet

  1. Skapa en mapp som heter stock-counter antingen på din dator om du använder en virtuell IoT-enhet, eller på din Raspberry Pi. Om du använder en virtuell IoT-enhet, se till att du ställer in en virtuell miljö.

  2. Ställ in kamerahårdvaran.

    • Om du använder en Raspberry Pi behöver du montera PiCamera. Du kanske också vill fixera kameran i en fast position, till exempel genom att hänga kabeln över en låda eller burk, eller fästa kameran på en låda med dubbelhäftande tejp.
    • Om du använder en virtuell IoT-enhet behöver du installera CounterFit och CounterFit PyCamera shim. Om du ska använda stillbilder, fånga några bilder som din objektdetektor inte har sett tidigare. Om du ska använda din webbkamera, se till att den är placerad så att den kan se det lager du försöker detektera.
  3. Replikera stegen från lektion 2 i tillverkningsprojektet för att fånga bilder från kameran.

  4. Replikera stegen från lektion 2 i tillverkningsprojektet för att anropa bildklassificeraren. Majoriteten av denna kod kommer att återanvändas för att detektera objekt.

Ändra koden från en klassificerare till en objektdetektor

Koden du använde för att klassificera bilder är mycket lik koden för att detektera objekt. Den största skillnaden är metoden som anropas på Custom Vision SDK och resultaten av anropet.

Uppgift - ändra koden från en klassificerare till en objektdetektor

  1. Ta bort de tre raderna kod som klassificerar bilden och bearbetar förutsägelserna:

    results = predictor.classify_image(project_id, iteration_name, image)
    
    for prediction in results.predictions:
        print(f'{prediction.tag_name}:\t{prediction.probability * 100:.2f}%')
    

    Ta bort dessa tre rader.

  2. Lägg till följande kod för att detektera objekt i bilden:

    results = predictor.detect_image(project_id, iteration_name, image)
    
    threshold = 0.3
    
    predictions = list(prediction for prediction in results.predictions if prediction.probability > threshold)
    
    for prediction in predictions:
        print(f'{prediction.tag_name}:\t{prediction.probability * 100:.2f}%')
    

    Denna kod anropar metoden detect_image på prediktorn för att köra objektdetektorn. Den samlar sedan alla förutsägelser med en sannolikhet över en tröskel och skriver ut dem i konsolen.

    Till skillnad från en bildklassificerare som bara returnerar ett resultat per tag, kommer objektdetektorn att returnera flera resultat, så alla med låg sannolikhet måste filtreras bort.

  3. Kör denna kod och den kommer att fånga en bild, skicka den till objektdetektorn och skriva ut de detekterade objekten. Om du använder en virtuell IoT-enhet, se till att du har en lämplig bild inställd i CounterFit, eller att din webbkamera är vald. Om du använder en Raspberry Pi, se till att din kamera pekar mot objekt på en hylla.

    pi@raspberrypi:~/stock-counter $ python3 app.py 
    tomato paste:   34.13%
    tomato paste:   33.95%
    tomato paste:   35.05%
    tomato paste:   32.80%
    

    💁 Du kan behöva justera threshold till ett lämpligt värde för dina bilder.

    Du kommer att kunna se bilden som togs och dessa värden i fliken Predictions i Custom Vision.

    4 burkar tomatpuré på en hylla med förutsägelser för de 4 detektionerna på 35.8%, 33.5%, 25.7% och 16.6%

💁 Du kan hitta denna kod i mappen code-detect/pi eller code-detect/virtual-iot-device.

😀 Ditt lagerhanteringsprogram blev en framgång!


Ansvarsfriskrivning:
Detta dokument har översatts med hjälp av AI-översättningstjänsten Co-op Translator. Även om vi strävar efter noggrannhet, vänligen notera att automatiska översättningar kan innehålla fel eller felaktigheter. Det ursprungliga dokumentet på sitt originalspråk bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som uppstår vid användning av denna översättning.