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

6.4 KiB

Tangkap Gambar - Perkakasan IoT Maya

Dalam bahagian pelajaran ini, anda akan menambah sensor kamera pada peranti IoT maya anda, dan membaca gambar daripadanya.

Perkakasan

Peranti IoT maya akan menggunakan kamera simulasi yang menghantar sama ada gambar daripada fail atau daripada kamera web anda.

Tambah kamera ke CounterFit

Untuk menggunakan kamera maya, anda perlu menambah satu ke aplikasi CounterFit.

Tugasan - tambah kamera ke CounterFit

Tambah kamera ke aplikasi CounterFit.

  1. Cipta aplikasi Python baharu pada komputer anda dalam folder bernama fruit-quality-detector dengan satu fail bernama app.py dan persekitaran maya Python, serta tambahkan pakej pip CounterFit.

    ⚠️ Anda boleh merujuk kepada arahan untuk mencipta dan menyediakan projek Python CounterFit dalam pelajaran 1 jika diperlukan.

  2. Pasang pakej Pip tambahan untuk memasang shim CounterFit yang boleh berkomunikasi dengan sensor Kamera dengan mensimulasikan beberapa fungsi daripada Pakej Pip Picamera. Pastikan anda memasangnya dari terminal dengan persekitaran maya diaktifkan.

    pip install counterfit-shims-picamera
    
  3. Pastikan aplikasi web CounterFit sedang berjalan.

  4. Cipta kamera:

    1. Dalam kotak Create sensor di panel Sensors, klik pada kotak Sensor type dan pilih Camera.

    2. Tetapkan Name kepada Picamera.

    3. Pilih butang Add untuk mencipta kamera.

    Tetapan kamera

    Kamera akan dicipta dan muncul dalam senarai sensor.

    Kamera telah dicipta

Programkan kamera

Peranti IoT maya kini boleh diprogramkan untuk menggunakan kamera maya.

Tugasan - programkan kamera

Programkan peranti.

  1. Pastikan aplikasi fruit-quality-detector dibuka dalam VS Code.

  2. Buka fail app.py.

  3. Tambahkan kod berikut di bahagian atas app.py untuk menyambungkan aplikasi ke CounterFit:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    
  4. Tambahkan kod berikut ke fail app.py anda:

    import io
    from counterfit_shims_picamera import PiCamera
    

    Kod ini mengimport beberapa perpustakaan yang diperlukan, termasuk kelas PiCamera daripada perpustakaan counterfit_shims_picamera.

  5. Tambahkan kod berikut di bawah ini untuk memulakan kamera:

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

    Kod ini mencipta objek PiCamera, menetapkan resolusi kepada 640x480. Walaupun resolusi yang lebih tinggi disokong, pengklasifikasi imej berfungsi pada imej yang jauh lebih kecil (227x227), jadi tidak perlu menangkap dan menghantar imej yang lebih besar.

    Baris camera.rotation = 0 menetapkan putaran imej dalam darjah. Jika anda perlu memutar imej daripada kamera web atau fail, tetapkan nilai ini mengikut keperluan. Sebagai contoh, jika anda ingin menukar imej pisang pada kamera web dalam mod landskap kepada mod potret, tetapkan camera.rotation = 90.

  6. Tambahkan kod berikut di bawah ini untuk menangkap imej sebagai data binari:

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

    Kod ini mencipta objek BytesIO untuk menyimpan data binari. Imej dibaca daripada kamera sebagai fail JPEG dan disimpan dalam objek ini. Objek ini mempunyai penunjuk kedudukan untuk mengetahui di mana ia berada dalam data supaya lebih banyak data boleh ditulis di hujung jika diperlukan, jadi baris image.seek(0) menggerakkan kedudukan ini kembali ke permulaan supaya semua data boleh dibaca kemudian.

  7. Di bawah ini, tambahkan kod berikut untuk menyimpan imej ke fail:

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

    Kod ini membuka fail bernama image.jpg untuk penulisan, kemudian membaca semua data daripada objek BytesIO dan menulisnya ke fail.

    💁 Anda boleh menangkap imej terus ke fail dan bukannya objek BytesIO dengan memberikan nama fail kepada panggilan camera.capture. Sebab menggunakan objek BytesIO adalah supaya nanti dalam pelajaran ini anda boleh menghantar imej ke pengklasifikasi imej anda.

  8. Konfigurasikan imej yang akan ditangkap oleh kamera dalam CounterFit. Anda boleh menetapkan Source kepada File, kemudian muat naik fail imej, atau menetapkan Source kepada WebCam, dan imej akan ditangkap daripada kamera web anda. Pastikan anda memilih butang Set selepas memilih gambar atau kamera web anda.

    CounterFit dengan fail ditetapkan sebagai sumber imej, dan kamera web menunjukkan seseorang memegang pisang dalam pratonton kamera web

  9. Imej akan ditangkap dan disimpan sebagai image.jpg dalam folder semasa. Anda akan melihat fail ini dalam penjelajah VS Code. Pilih fail untuk melihat imej. Jika ia memerlukan putaran, kemas kini baris camera.rotation = 0 mengikut keperluan dan ambil gambar lain.

💁 Anda boleh menemui kod ini dalam folder code-camera/virtual-iot-device.

😀 Program kamera anda berjaya!


Penafian:
Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI Co-op Translator. Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.