6.5 KiB
Užfiksuokite vaizdą - Virtuali IoT aparatinė įranga
Šioje pamokos dalyje pridėsite kameros jutiklį prie savo virtualaus IoT įrenginio ir skaitysite vaizdus iš jo.
Aparatinė įranga
Virtualus IoT įrenginys naudos imituotą kamerą, kuri siunčia vaizdus iš failų arba iš jūsų internetinės kameros.
Pridėkite kamerą prie CounterFit
Norėdami naudoti virtualią kamerą, turite ją pridėti prie CounterFit programos.
Užduotis - pridėkite kamerą prie CounterFit
Pridėkite kamerą prie CounterFit programos.
-
Sukurkite naują Python programą savo kompiuteryje aplanke, pavadintame
fruit-quality-detector
, su vienu failu, pavadintuapp.py
, ir Python virtualią aplinką, tada pridėkite CounterFit pip paketus.⚠️ Jei reikia, galite peržiūrėti instrukcijas, kaip sukurti ir nustatyti CounterFit Python projektą 1-oje pamokoje.
-
Įdiekite papildomą Pip paketą, kuris įdiegs CounterFit shim, galintį bendrauti su kameros jutikliais, imituojant kai kurias Picamera Pip paketo funkcijas. Įsitikinkite, kad tai darote terminale su aktyvuota virtualia aplinka.
pip install counterfit-shims-picamera
-
Įsitikinkite, kad CounterFit žiniatinklio programa veikia.
-
Sukurkite kamerą:
-
Laukelyje Create sensor skiltyje Sensors išskleidžiamajame meniu Sensor type pasirinkite Camera.
-
Nustatykite Name kaip
Picamera
. -
Pasirinkite mygtuką Add, kad sukurtumėte kamerą.
Kamera bus sukurta ir pasirodys jutiklių sąraše.
-
Užprogramuokite kamerą
Dabar virtualus IoT įrenginys gali būti užprogramuotas naudoti virtualią kamerą.
Užduotis - užprogramuokite kamerą
Užprogramuokite įrenginį.
-
Įsitikinkite, kad
fruit-quality-detector
programa yra atidaryta VS Code. -
Atidarykite
app.py
failą. -
Pridėkite šį kodą į
app.py
viršų, kad prijungtumėte programą prie CounterFit:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Pridėkite šį kodą į savo
app.py
failą:import io from counterfit_shims_picamera import PiCamera
Šis kodas importuoja kai kurias reikalingas bibliotekas, įskaitant
PiCamera
klasę iš counterfit_shims_picamera bibliotekos. -
Pridėkite šį kodą žemiau, kad inicializuotumėte kamerą:
camera = PiCamera() camera.resolution = (640, 480) camera.rotation = 0
Šis kodas sukuria PiCamera objektą, nustato raišką į 640x480. Nors palaikomos ir didesnės raiškos, vaizdų klasifikatorius veikia su daug mažesniais vaizdais (227x227), todėl nėra reikalo fiksuoti ir siųsti didesnių vaizdų.
Eilutė
camera.rotation = 0
nustato vaizdo pasukimą laipsniais. Jei reikia pasukti vaizdą iš internetinės kameros ar failo, nustatykite tai pagal poreikį. Pavyzdžiui, jei norite pakeisti banano vaizdą iš internetinės kameros kraštovaizdžio režime į portretą, nustatykitecamera.rotation = 90
. -
Pridėkite šį kodą žemiau, kad užfiksuotumėte vaizdą kaip dvejetainius duomenis:
image = io.BytesIO() camera.capture(image, 'jpeg') image.seek(0)
Šis kodas sukuria
BytesIO
objektą dvejetainiams duomenims saugoti. Vaizdas nuskaitomas iš kameros kaip JPEG failas ir saugomas šiame objekte. Šis objektas turi pozicijos indikatorių, kuris nurodo, kurioje duomenų vietoje jis yra, kad prireikus būtų galima pridėti daugiau duomenų. Eilutėimage.seek(0)
perkelia šią poziciją atgal į pradžią, kad vėliau būtų galima perskaityti visus duomenis. -
Po to pridėkite šį kodą, kad išsaugotumėte vaizdą faile:
with open('image.jpg', 'wb') as image_file: image_file.write(image.read())
Šis kodas atidaro failą, pavadintą
image.jpg
, rašymui, tada perskaito visus duomenis išBytesIO
objekto ir įrašo juos į failą.💁 Galite užfiksuoti vaizdą tiesiai į failą, o ne į
BytesIO
objektą, perduodami failo pavadinimącamera.capture
kvietimui. Priežastis, kodėl naudojamasBytesIO
objektas, yra ta, kad vėliau šioje pamokoje galėsite siųsti vaizdą į savo vaizdų klasifikatorių. -
Sujunkite vaizdą, kurį CounterFit kamera užfiksuos. Galite nustatyti Source kaip File, tada įkelti vaizdo failą, arba nustatyti Source kaip WebCam, ir vaizdai bus užfiksuoti iš jūsų internetinės kameros. Įsitikinkite, kad paspaudėte mygtuką Set po paveikslėlio pasirinkimo arba internetinės kameros pasirinkimo.
-
Vaizdas bus užfiksuotas ir išsaugotas kaip
image.jpg
dabartiniame aplanke. Šį failą matysite VS Code naršyklėje. Pasirinkite failą, kad peržiūrėtumėte vaizdą. Jei reikia pasukti, atnaujinkite eilutęcamera.rotation = 0
pagal poreikį ir užfiksuokite kitą nuotrauką.
💁 Šį kodą galite rasti code-camera/virtual-iot-device aplanke.
😀 Jūsų kameros programa pavyko!
Atsakomybės apribojimas:
Šis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą Co-op Translator. Nors siekiame tikslumo, atkreipkite dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojama naudoti profesionalų žmogaus vertimą. Mes neprisiimame atsakomybės už nesusipratimus ar klaidingus aiškinimus, kylančius dėl šio vertimo naudojimo.