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/sl/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md

6.2 KiB

Zajem slike - Virtualna IoT strojna oprema

V tem delu lekcije boste svoji virtualni IoT napravi dodali senzor kamere in iz njega prebrali slike.

Strojna oprema

Virtualna IoT naprava bo uporabljala simulirano kamero, ki pošilja slike bodisi iz datotek bodisi iz vaše spletne kamere.

Dodajanje kamere v CounterFit

Za uporabo virtualne kamere jo morate dodati v aplikacijo CounterFit.

Naloga - dodajte kamero v CounterFit

Dodajte kamero v aplikacijo CounterFit.

  1. Na svojem računalniku ustvarite novo Python aplikacijo v mapi z imenom fruit-quality-detector z eno datoteko z imenom app.py in Python virtualnim okoljem ter dodajte CounterFit pip pakete.

    ⚠️ Po potrebi si lahko ogledate navodila za ustvarjanje in nastavitev CounterFit Python projekta v lekciji 1.

  2. Namestite dodaten Pip paket za namestitev CounterFit shima, ki lahko komunicira s senzorji kamere s simulacijo nekaterih funkcij Picamera Pip paketa. Prepričajte se, da to nameščate iz terminala z aktiviranim virtualnim okoljem.

    pip install counterfit-shims-picamera
    
  3. Prepričajte se, da je spletna aplikacija CounterFit zagnana.

  4. Ustvarite kamero:

    1. V polju Create sensor v podoknu Sensors izberite spustni meni Sensor type in izberite Camera.

    2. Nastavite Name na Picamera.

    3. Izberite gumb Add, da ustvarite kamero.

    Nastavitve kamere

    Kamera bo ustvarjena in se bo pojavila na seznamu senzorjev.

    Ustvarjena kamera

Programiranje kamere

Virtualna IoT naprava je zdaj pripravljena za programiranje za uporabo virtualne kamere.

Naloga - programirajte kamero

Programirajte napravo.

  1. Prepričajte se, da je aplikacija fruit-quality-detector odprta v VS Code.

  2. Odprite datoteko app.py.

  3. Dodajte naslednjo kodo na vrh datoteke app.py, da povežete aplikacijo s CounterFit:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    
  4. Dodajte naslednjo kodo v datoteko app.py:

    import io
    from counterfit_shims_picamera import PiCamera
    

    Ta koda uvozi nekaj potrebnih knjižnic, vključno s PiCamera razredom iz knjižnice counterfit_shims_picamera.

  5. Dodajte naslednjo kodo pod to, da inicializirate kamero:

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

    Ta koda ustvari objekt PiCamera, nastavi ločljivost na 640x480. Čeprav so podprte višje ločljivosti, slikovni klasifikator deluje na veliko manjših slikah (227x227), zato ni potrebe po zajemanju in pošiljanju večjih slik.

    Vrstica camera.rotation = 0 nastavi rotacijo slike v stopinjah. Če morate sliko iz spletne kamere ali datoteke zasukati, to nastavite ustrezno. Na primer, če želite spremeniti sliko banane na spletni kameri v ležečem načinu v pokončni način, nastavite camera.rotation = 90.

  6. Dodajte naslednjo kodo pod to, da zajamete sliko kot binarne podatke:

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

    Ta koda ustvari objekt BytesIO za shranjevanje binarnih podatkov. Slika se prebere iz kamere kot JPEG datoteka in shrani v ta objekt. Ta objekt ima kazalec položaja, ki označuje, kje se nahaja v podatkih, tako da se lahko po potrebi doda več podatkov na konec. Vrstica image.seek(0) premakne ta kazalec nazaj na začetek, da se lahko kasneje preberejo vsi podatki.

  7. Pod to dodajte naslednjo kodo za shranjevanje slike v datoteko:

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

    Ta koda odpre datoteko z imenom image.jpg za pisanje, nato prebere vse podatke iz objekta BytesIO in jih zapiše v datoteko.

    💁 Slika se lahko zajame neposredno v datoteko namesto v objekt BytesIO tako, da se ime datoteke posreduje klicu camera.capture. Razlog za uporabo objekta BytesIO je, da boste kasneje v tej lekciji sliko poslali svojemu slikovnemu klasifikatorju.

  8. Konfigurirajte sliko, ki jo bo kamera v CounterFit zajela. Lahko nastavite Source na File, nato naložite slikovno datoteko, ali pa nastavite Source na WebCam, in slike bodo zajete iz vaše spletne kamere. Prepričajte se, da ste po izbiri slike ali spletne kamere izbrali gumb Set.

    CounterFit z datoteko, nastavljeno kot vir slike, in spletno kamero, ki prikazuje osebo, ki drži banano, v predogledu spletne kamere

  9. Slika bo zajeta in shranjena kot image.jpg v trenutni mapi. To datoteko boste videli v raziskovalcu VS Code. Izberite datoteko, da si ogledate sliko. Če jo je treba zasukati, posodobite vrstico camera.rotation = 0 po potrebi in posnemite novo sliko.

💁 To kodo lahko najdete v mapi code-camera/virtual-iot-device.

😀 Vaš program za kamero je bil uspešen!


Omejitev odgovornosti:
Ta dokument je bil preveden z uporabo storitve za strojno prevajanje Co-op Translator. Čeprav si prizadevamo za natančnost, vas prosimo, da upoštevate, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v njegovem izvirnem jeziku je treba obravnavati kot avtoritativni vir. Za ključne informacije priporočamo strokovno človeško prevajanje. Ne prevzemamo odgovornosti za morebitna nesporazumevanja ali napačne razlage, ki izhajajo iz uporabe tega prevoda.