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/cs/4-manufacturing/lessons/2-check-fruit-from-device/single-board-computer-class...

5.2 KiB

Klasifikace obrázku - Virtuální IoT hardware a Raspberry Pi

V této části lekce pošlete obrázek zachycený kamerou do služby Custom Vision, aby byl klasifikován.

Odeslání obrázků do Custom Vision

Služba Custom Vision má Python SDK, které můžete použít ke klasifikaci obrázků.

Úkol - odeslání obrázků do Custom Vision

  1. Otevřete složku fruit-quality-detector ve VS Code. Pokud používáte virtuální IoT zařízení, ujistěte se, že virtuální prostředí běží v terminálu.

  2. Python SDK pro odesílání obrázků do Custom Vision je dostupné jako balíček Pip. Nainstalujte ho pomocí následujícího příkazu:

    pip3 install azure-cognitiveservices-vision-customvision
    
  3. Přidejte následující importy na začátek souboru app.py:

    from msrest.authentication import ApiKeyCredentials
    from azure.cognitiveservices.vision.customvision.prediction import CustomVisionPredictionClient
    

    Tyto moduly z knihoven Custom Vision umožňují autentizaci pomocí predikčního klíče a poskytují klientskou třídu pro volání Custom Vision.

  4. Přidejte následující kód na konec souboru:

    prediction_url = '<prediction_url>'
    prediction_key = '<prediction key>'
    

    Nahraďte <prediction_url> URL adresou, kterou jste zkopírovali z dialogu Prediction URL dříve v této lekci. Nahraďte <prediction key> predikčním klíčem, který jste zkopírovali ze stejného dialogu.

  5. URL adresa predikce, kterou poskytl dialog Prediction URL, je navržena pro přímé volání REST endpointu. Python SDK používá části této URL na různých místech. Přidejte následující kód, který rozloží tuto URL na potřebné části:

    parts = prediction_url.split('/')
    endpoint = 'https://' + parts[2]
    project_id = parts[6]
    iteration_name = parts[9]
    

    Tento kód rozloží URL, extrahuje endpoint https://<location>.api.cognitive.microsoft.com, ID projektu a název publikované iterace.

  6. Vytvořte objekt prediktoru pro provedení predikce pomocí následujícího kódu:

    prediction_credentials = ApiKeyCredentials(in_headers={"Prediction-key": prediction_key})
    predictor = CustomVisionPredictionClient(endpoint, prediction_credentials)
    

    prediction_credentials obalí predikční klíč. Tyto údaje se pak použijí k vytvoření klientského objektu predikce, který ukazuje na endpoint.

  7. Odešlete obrázek do Custom Vision pomocí následujícího kódu:

    image.seek(0)
    results = predictor.classify_image(project_id, iteration_name, image)
    

    Tento kód vrátí obrázek na začátek a odešle ho klientovi predikce.

  8. Nakonec zobrazte výsledky pomocí následujícího kódu:

    for prediction in results.predictions:
        print(f'{prediction.tag_name}:\t{prediction.probability * 100:.2f}%')
    

    Tento kód projde všechny vrácené predikce a zobrazí je v terminálu. Pravděpodobnosti jsou vráceny jako desetinná čísla od 0 do 1, kde 0 znamená 0% šanci na shodu s tagem a 1 znamená 100% šanci.

    💁 Klasifikátory obrázků vrátí procenta pro všechny tagy, které byly použity. Každý tag bude mít pravděpodobnost, že obrázek odpovídá danému tagu.

  9. Spusťte svůj kód, s kamerou namířenou na nějaké ovoce, nebo na vhodnou sadu obrázků, nebo na ovoce viditelné na vaší webkameře, pokud používáte virtuální IoT hardware. Výstup uvidíte v konzoli:

    (.venv) ➜  fruit-quality-detector python app.py
    ripe:   56.84%
    unripe: 43.16%
    

    Budete schopni vidět obrázek, který byl pořízen, a tyto hodnoty na záložce Predictions v Custom Vision.

    Banán v Custom Vision předpovězený jako zralý na 56,8 % a nezralý na 43,1 %

💁 Tento kód najdete ve složce code-classify/pi nebo code-classify/virtual-iot-device.

😀 Váš program pro klasifikaci kvality ovoce byl úspěšný!


Upozornění:
Tento dokument byl přeložen pomocí služby pro automatický překlad Co-op Translator. I když se snažíme o co největší přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za závazný zdroj. Pro kritické informace doporučujeme profesionální lidský překlad. Neodpovídáme za jakékoli nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.