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/virtual-device-camera.md

6.5 KiB

Zachycení obrázku - Virtuální IoT hardware

V této části lekce přidáte kamerový senzor do svého virtuálního IoT zařízení a budete z něj číst obrázky.

Hardware

Virtuální IoT zařízení bude používat simulovanou kameru, která posílá buď obrázky ze souborů, nebo z vaší webové kamery.

Přidání kamery do CounterFit

Pro použití virtuální kamery je potřeba ji přidat do aplikace CounterFit.

Úkol - přidání kamery do CounterFit

Přidejte kameru do aplikace CounterFit.

  1. Vytvořte novou Python aplikaci na svém počítači ve složce nazvané fruit-quality-detector s jediným souborem nazvaným app.py a Python virtuálním prostředím, a přidejte CounterFit pip balíčky.

    ⚠️ Můžete se podívat na instrukce pro vytvoření a nastavení CounterFit Python projektu v lekci 1, pokud je to potřeba.

  2. Nainstalujte další Pip balíček, který přidá CounterFit shim, jenž dokáže komunikovat s kamerovými senzory simulací některých funkcí Picamera Pip balíčku. Ujistěte se, že instalaci provádíte z terminálu s aktivovaným virtuálním prostředím.

    pip install counterfit-shims-picamera
    
  3. Ujistěte se, že webová aplikace CounterFit běží.

  4. Vytvořte kameru:

    1. V poli Create sensor v panelu Sensors rozbalte pole Sensor type a vyberte Camera.

    2. Nastavte Name na Picamera.

    3. Vyberte tlačítko Add pro vytvoření kamery.

    Nastavení kamery

    Kamera bude vytvořena a objeví se v seznamu senzorů.

    Vytvořená kamera

Programování kamery

Virtuální IoT zařízení nyní může být naprogramováno pro použití virtuální kamery.

Úkol - programování kamery

Naprogramujte zařízení.

  1. Ujistěte se, že aplikace fruit-quality-detector je otevřená ve VS Code.

  2. Otevřete soubor app.py.

  3. Přidejte následující kód na začátek souboru app.py pro připojení aplikace k CounterFit:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    
  4. Přidejte následující kód do souboru app.py:

    import io
    from counterfit_shims_picamera import PiCamera
    

    Tento kód importuje některé potřebné knihovny, včetně třídy PiCamera z knihovny counterfit_shims_picamera.

  5. Přidejte následující kód pod tento pro inicializaci kamery:

    camera = PiCamera()
    camera.resolution = (640, 480)
    camera.rotation = 0
    

    Tento kód vytvoří objekt PiCamera, nastaví rozlišení na 640x480. Ačkoliv jsou podporována vyšší rozlišení, klasifikátor obrázků pracuje s mnohem menšími obrázky (227x227), takže není potřeba zachytávat a posílat větší obrázky.

    Řádek camera.rotation = 0 nastavuje rotaci obrázku ve stupních. Pokud potřebujete otočit obrázek z webové kamery nebo souboru, nastavte tuto hodnotu podle potřeby. Například pokud chcete změnit obrázek banánu na webové kameře v režimu na šířku na režim na výšku, nastavte camera.rotation = 90.

  6. Přidejte následující kód pod tento pro zachycení obrázku jako binárních dat:

    image = io.BytesIO()
    camera.capture(image, 'jpeg')
    image.seek(0)
    

    Tento kód vytvoří objekt BytesIO pro uložení binárních dat. Obrázek je přečten z kamery jako JPEG soubor a uložen do tohoto objektu. Tento objekt má ukazatel pozice, který určuje, kde se nachází v datech, aby bylo možné přidávat další data na konec, pokud je to potřeba, takže řádek image.seek(0) posune tento ukazatel zpět na začátek, aby bylo možné později přečíst všechna data.

  7. Pod tento kód přidejte následující pro uložení obrázku do souboru:

    with open('image.jpg', 'wb') as image_file:
        image_file.write(image.read())
    

    Tento kód otevře soubor nazvaný image.jpg pro zápis, poté přečte všechna data z objektu BytesIO a zapíše je do souboru.

    💁 Obrázek můžete zachytit přímo do souboru místo objektu BytesIO předáním názvu souboru do volání camera.capture. Důvodem použití objektu BytesIO je, že později v této lekci můžete obrázek poslat do svého klasifikátoru obrázků.

  8. Nakonfigurujte obrázek, který kamera v CounterFit zachytí. Můžete buď nastavit Source na File, poté nahrát obrázkový soubor, nebo nastavit Source na WebCam, a obrázky budou zachyceny z vaší webové kamery. Ujistěte se, že po výběru obrázku nebo webové kamery stisknete tlačítko Set.

    CounterFit s nastaveným souborem jako zdrojem obrázku a webovou kamerou zobrazující osobu držící banán v náhledu webové kamery

  9. Obrázek bude zachycen a uložen jako image.jpg v aktuální složce. Tento soubor uvidíte v průzkumníku VS Code. Vyberte soubor pro zobrazení obrázku. Pokud je potřeba rotace, upravte řádek camera.rotation = 0 podle potřeby a pořiďte další snímek.

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

😀 Programování kamery bylo úspěšné!


Prohlášení:
Tento dokument byl přeložen pomocí služby pro automatický překlad Co-op Translator. Ačkoli se snažíme o 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 autoritativní zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádné nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.