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

13 KiB

ഒരു ചിത്രം പിടിക്കുക - വെർച്വൽ IoT ഹാർഡ്‌വെയർ

പാഠത്തിന്റെ ഈ ഭാഗത്ത്, നിങ്ങൾ നിങ്ങളുടെ വെർച്വൽ IoT ഉപകരണത്തിൽ ഒരു ക്യാമറ സെൻസർ ചേർക്കുകയും അതിൽ നിന്ന് ചിത്രങ്ങൾ വായിക്കുകയും ചെയ്യും.

ഹാർഡ്‌വെയർ

വെർച്വൽ IoT ഉപകരണം ഫയലുകളിൽ നിന്ന് ചിത്രങ്ങൾ അയയ്ക്കുന്നോ, അല്ലെങ്കിൽ നിങ്ങളുടെ വെബ്‌ക്യാമിൽ നിന്നോ ചിത്രങ്ങൾ അയക്കുന്ന സിമുലേറ്റഡ് ക്യാമറ ഉപയോഗിക്കും.

CounterFit-ലേക്ക് ക്യാമറ ചേർക്കുക

വെർച്വൽ ക്യാമറ ഉപയോഗിക്കാൻ, CounterFit ആപ്പിൽ ഒരു ക്യാമറ ചേർക്കേണ്ടതാണ്

ടാസ്‌ക് - CounterFit-ലേക്ക് ക്യാമറ ചേർക്കുക

CounterFit ആപ്പിലേക്ക് ക്യാമറ ചേർക്കുക.

  1. നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ fruit-quality-detector എന്ന ഫോൾഡറിൽ ഒരു പുതിയ Python ആപ്പ് സൃഷ്ടിക്കുക, അതിൽ app.py എന്ന ഒറ്റ ഫയലും Python വെർച്വൽ എൻവയോൺമെന്റും ഉണ്ടാക്കി, CounterFit പിപ്പ് പാക്കേജുകൾ ചേർക്കുക.

    ⚠️ ആവശ്യമായ പക്ഷം പാഠം 1 ലെ CounterFit Python പ്രോജക്ട് സൃഷ്ടിക്കൽ, സജ്ജമാക്കൽ നിർദ്ദേശങ്ങൾ കാണുക.

  2. കൂടുതൽ ഒരു പിപ്പ് പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുക, ഇത് ചില Picamera Pip പാക്കേജ് ഫംഗ്ഷനുകൾ സിമുലേറ്റ് ചെയ്ത് Camera സെൻസറുമായി സംസാരിക്കാൻ CounterFit ശിം ഇൻസ്റ്റാൾ ചെയ്യുന്നു. വെർച്വൽ എൻവയോൺമെന്റ് സജീവമാക്കി ടെർമിനൽ ഉപയോഗിച്ച് ഇത് ഇൻസ്റ്റാൾ ചെയ്യുന്നത് ഉറപ്പാക്കുക.

    pip install counterfit-shims-picamera
    
  3. CounterFit വെബ് ആപ്പ് പ്രവർത്തനത്തിലാണ് എന്ന് ഉറപ്പാക്കുക

  4. ഒരു ക്യാമറ സൃഷ്‌ടിക്കുക:

    1. Sensors പെയിൻിലുള്ള Create sensor ബോക്സിൽ Sensor type ഡ്രോപ് ഡൗൺ ബോക്സിൽ നിന്ന് Camera തിരഞ്ഞെടുക്കുക.

    2. Name ആയി Picamera സജ്ജമാക്കുക

    3. ക്യാമറ സൃഷ്ടിക്കാൻ Add ബട്ടൺ തിരഞ്ഞെടുക്കുക

    The camera settings

    ക്യാമറ സൃഷ്ടിച്ച് സെൻസറുകളുടെ പട്ടികയിൽ കാണിക്കും.

    The camera created

ക്യാമറ പ്രോഗ്രാം ചെയ്യുക

വെർച്വൽ IoT ഉപകരണം ഇപ്പോൾ വെർച്വൽ ക്യാമറ ഉപയോഗിക്കാൻ പ്രോഗ്രാം ചെയ്യാവുന്നതാണ്.

ടാസ്‌ക് - ക്യാമറ പ്രോഗ്രാം ചെയ്യുക

ഉപകരണം പ്രോഗ്രാം ചെയ്യുക.

  1. VS Codeയിൽ fruit-quality-detector ആപ്പ് തുറന്ന് ഉറപ്പാക്കുക

  2. app.py ഫയൽ തുറക്കുക

  3. CounterFit-നൊപ്പം ആപ്പ് ബന്ധിപ്പിക്കാൻ app.pyിന്റെ മുകളിൽ താഴെയുള്ള കോഡ് ചേർക്കുക:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    
  4. app.py ഫയലിൽ താഴെയുള്ള കോഡ് ചേർക്കുക:

    import io
    from counterfit_shims_picamera import PiCamera
    

    ഈ കോഡ് കുറച്ച് ലൈബ്രറികൾ ഇറക്കുമതി ചെയ്യുന്നു, അതിൽ ഒരു ഭാഗമായും counterfit_shims_picamera ലൈബ്രറിയിലെ PiCamera ക്ലാസ് ഉൾപ്പെടുന്നു.

  5. ക്യാമറ തുടങ്ങിയെടുക്കാൻ താഴെയുള്ള കോഡ് ചേർക്കുക:

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

    ഈ കോഡ് ഒരു PiCamera ഒബ്ജക്റ്റ് സൃഷ്ടിക്കുന്നു, റെസല്യുഷൻ 640x480 ആയി സജ്ജമാക്കുന്നു. ഉയർന്ന റെസല്യുഷനുകൾ പിന്തുണയ്ക്കപ്പെടുന്നു എങ്കിലും, ഇമേജ് ക്ലാസിഫയർ വളരെ ചെറിയ ചിത്രങ്ങളിൽ (227x227) പ്രവർത്തിക്കുന്നതിനാൽ, വലിയ ചിത്രങ്ങൾ പിടിക്കാൻ ഒരു ആവശ്യം ഇല്ല.

    camera.rotation = 0 വരി ചിത്രം ഡിഗ്രിയിൽ തിരിയുന്നത് സജ്ജമാക്കുന്നു. വെബ്‌ക്യാം അല്ലെങ്കിൽ ഫയലിലെ ചിത്രം തിരിയേണ്ടതുണ്ടെങ്കില്‍ ഇതിനെ അനുയോജ്യമായി സജ്ജമാക്കുക. ഉദാഹരണത്തിന്, ലാൻഡ്‌സ്‌കേപ്പ് മോഡിലുള്ള ഒരു വാഴപ്പഴ ചിത്രത്തെ പോർട്രെയ്റ്റ് ആക്കാൻ camera.rotation = 90 സജ്ജമാക്കുക.

  6. ചിത്രത്തെ ബൈനറി ഡാറ്റയായി പിടിക്കാൻ താഴെ കൊടുത്തിരിക്കുന്ന കോഡ് ചേർക്കുക:

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

    ഈ കോഡ് ബൈനറി ഡാറ്റ സംഭരിക്കാൻ BytesIO ഒബ്ജക്റ്റ് സൃഷ്ടിക്കുന്നു. ക്യാമറയിൽ നിന്നുള്ള ചിത്രം JPEG ഫയലായി വായിച്ച് ഈ ഒബ്ജക്റ്റിൽ സേവ് ചെയ്യുന്നു. ഈ ഒബ്ജക്റ്റിന് ഒരു സ്ഥാനം സൂചിപ്പിക്കുന്നതായി അത് എവിടെ നിൽക്കുന്നു എന്ന് അറിയാൻ, കൂടുതൽ ഡാറ്റ വേണമെങ്കിൽ അതിന്റെ അവസാനത്തേക്ക് എഴുതാമെന്നും image.seek(0) വരി അത് നിലവിലെ സ്ഥാനത്ത് നിന്നു തുടക്കത്തിലേക്ക് മാറ്റി പിന്നീട് ഡാറ്റ മുഴുവൻ വായിക്കാൻ സഹായിക്കുന്നു.

  7. ഇതിന് താഴെ, ചിത്രം ഒരു ഫയലിൽ സേവ് ചെയ്യാൻ താഴെ കൊടുത്തിരിക്കുന്ന കോഡ് ചേർക്കുക:

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

    ഈ കോഡ് image.jpg എന്ന ഫയൽ എഴുതുന്നത് തുറക്കുന്നു, തുടർന്ന് BytesIO ഒബ്ജക്റ്റിൽ നിന്ന് മുഴുവൻ ഡാറ്റ വായിച്ച് ഫയലിൽ എഴുതി സേവ് ചെയ്യുന്നുണ്ട്.

    💁 സാങ്കേതികമായി BytesIO ഒബ്ജക്റ്റിന് പകരം ഫയൽനാമം camera.capture കോളിൽ പാസ്സ് ചെയ്താൽ നേരിട്ട് ഫയലിലേക്ക് ചിത്രം പകർത്താവുന്നതാണ്. ഈ കൗണ്ടിഫിറ്റ് പാഠത്തിൽ പിന്നീട് ചിത്ര ക്ലാസിഫയറിലേക്ക് ചിത്രം അയയ്ക്കുന്നതിന് BytesIO ഒബ്ജക്റ്റ് ഉപയോഗിക്കുന്നതാണ് കാരണം.

  8. CounterFit-ൽ ക്യാമറ പിടിക്കുന്ന ചിത്രം കോൺഫിഗർ ചെയ്യുക. Source - File ആയി സജ്ജമാക്കി ഒരു ചിത്രം അപ്‌ലോഡ് ചെയ്യമെന്നോ, Source - WebCam ആയി സജ്ജമാക്കിയാൽ നിങ്ങളുടെ വെബ്‌ക്യാമിൽ നിന്നുള്ള ചിത്രങ്ങൾ പിടിക്കപ്പെടും. ചിത്രം തിരഞ്ഞെടുക്കുകയും വെബ്‌ക്യാം തിരഞ്ഞെടുക്കുകയും ചെയ്തതിന് ശേഷം Set ബട്ടൺ വലുതാക്കുക.

    CounterFit with a file set as the image source, and a web cam set showing a person holding a banana in a preview of the webcam

  9. ഒരു ചിത്രം പിടിച്ച് നിലവിലെ ഫോൾഡറിൽ image.jpg എന്ന പേരു നൽകി സേവ് ചെയ്യും. ഈ ഫയൽ VS Codeഫയൽ എക്‌സ്പ്ലോററിൽ കാണും. ചിത്രം കാണാൻ ഫയൽ തിരഞ്ഞെടുക്കുക. ചിത്രം തിരിവ് ആവശ്യമാണ് എങ്കിൽ camera.rotation = 0 വരി വേണമെങ്കിൽ പുതുക്കി മറ്റൊരു ചിത്രം എടുത്തു നോക്കുക.

💁 ഈ കോഡ് code-camera/virtual-iot-device ഫോള്ഡറിൽ ലഭ്യമാണ്.

😀 നിങ്ങളുടെ ക്യാമറ പ്രോഗ്രാം വിജയകരമായി പൂർത്തിയായി!


ഡിസ്‌ക്ലെയിമർ:
ഈ ഡോക്യുമെന്റ് AI ഭാഷാന്തര സേവനം Co-op Translator ഉപയോഗിച്ച് ഭാഷാന്തരപ്പെടുത്തിയിരിക്കുന്നു. ഞങ്ങൾ സത്യസന്ധതക്ക് ശ്രമിക്കുമ്പോഴും, സ്വയമേവ പ്രവേശിപ്പിച്ച ഭാഷാന്തരത്തിൽ പിഴവുകൾ അല്ലെങ്കിൽ തെറ്റുകൾ ഉണ്ടായിരിക്കാമെന്ന് ശ്രദ്ധിക്കണം. സഹജ ഭാഷയിൽ ഉള്ള യഥാർത്ഥ ഡോക്യുമെന്റ് മാത്രമാണ് അവകാശപ്പെട്ട സ്രോതസ്സ് എന്ന് പരിഗണിക്കേണ്ടത്. പ്രധാനപ്പെട്ട വിവരങ്ങൾക്ക് പ്രൊഫഷണൽ മനുഷ്യ ഭാഷാന്തരണം ശുപാർശ ചെയ്യപ്പെടുന്നു. ഈ ഭാഷാന്തരത്തിന്റെ ഉപയോഗത്തിൽ നിന്നുണ്ടാകുന്ന തെറ്റായ ധാരണകളോ വീഴ്ചകളോ സംബന്ധിച്ച് ഞങ്ങൾ ഉത്തരവാദിതി വഹിക്കുന്നില്ല.