12 KiB
ပုံတစ်ပုံကိုဖမ်းယူခြင်း - အိမ်တွင်း IoT စက်ပစ္စည်း
ဒီသင်ခန်းစာအပိုင်းမှာ သင့်ရဲ့ အိမ်တွင်း IoT စက်ပစ္စည်းမှာ ကင်မရာအာရုံခံကိရိယာတစ်ခု ထည့်သွင်းပြီး ပုံများကို ဖတ်ရှုမည်ဖြစ်သည်။
စက်ပစ္စည်း
အိမ်တွင်း IoT စက်ပစ္စည်းသည် ဖိုင်များမှပုံများ သို့မဟုတ် သင့်ရဲ့ webcam မှပုံများကို ပေးပို့သော ကင်မရာကို အတုအယောင်အသုံးပြုမည်ဖြစ်သည်။
CounterFit တွင် ကင်မရာထည့်သွင်းခြင်း
အတုအယောင်ကင်မရာကို အသုံးပြုရန် CounterFit app တွင် ထည့်သွင်းရန်လိုအပ်သည်။
လုပ်ဆောင်ရန် - CounterFit တွင် ကင်မရာထည့်သွင်းခြင်း
CounterFit app တွင် ကင်မရာထည့်သွင်းပါ။
-
သင့်ကွန်ပျူတာတွင်
fruit-quality-detector
ဟုခေါ်သော ဖိုလ်ဒါတစ်ခုတွင်app.py
ဟုခေါ်သော ဖိုင်တစ်ခုနှင့် Python virtual environment တစ်ခုပါရှိသော Python app အသစ်တစ်ခု ဖန်တီးပြီး CounterFit pip packages ကို ထည့်သွင်းပါ။ -
Camera sensors နှင့် ဆက်သွယ်နိုင်ရန် CounterFit shim ကို ထည့်သွင်းရန်အတွက် Picamera Pip package အချို့ကို အတုအယောင်ပြုလုပ်သော Pip package ထပ်တစ်ခုကို ထည့်သွင်းပါ။ Virtual environment ကို active လုပ်ထားသော terminal မှာ ထည့်သွင်းရမည်ဖြစ်သည်။
pip install counterfit-shims-picamera
-
CounterFit web app ကို run လုပ်ထားပါ။
-
ကင်မရာတစ်ခု ဖန်တီးပါ:
-
Sensors pane ရဲ့ Create sensor box မှာ Sensor type box ကို drop down လုပ်ပြီး Camera ကို ရွေးချယ်ပါ။
-
Name ကို
Picamera
ဟု သတ်မှတ်ပါ။ -
Add ခလုတ်ကို ရွေးချယ်ပြီး ကင်မရာကို ဖန်တီးပါ။
ကင်မရာကို ဖန်တီးပြီး sensors list မှာ ပေါ်လာမည်။
-
ကင်မရာကို အစီအစဉ်ရေးခြင်း
အိမ်တွင်း IoT စက်ပစ္စည်းသည် အတုအယောင်ကင်မရာကို အသုံးပြုရန် အစီအစဉ်ရေးနိုင်ပြီဖြစ်သည်။
လုပ်ဆောင်ရန် - ကင်မရာကို အစီအစဉ်ရေးခြင်း
စက်ပစ္စည်းကို အစီအစဉ်ရေးပါ။
-
fruit-quality-detector
app ကို VS Code တွင် ဖွင့်ထားပါ။ -
app.py
ဖိုင်ကို ဖွင့်ပါ။ -
CounterFit နှင့် app ကို ချိတ်ဆက်ရန်
app.py
ရဲ့ အပေါ်ပိုင်းတွင် အောက်ပါ code ကို ထည့်သွင်းပါ:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
app.py
ဖိုင်တွင် အောက်ပါ code ကို ထည့်သွင်းပါ:import io from counterfit_shims_picamera import PiCamera
ဒီ code ကလိုအပ်သော library များကို import လုပ်ပြီး counterfit_shims_picamera library မှ
PiCamera
class ကိုပါ ထည့်သွင်းသည်။ -
ကင်မရာကို initialize လုပ်ရန် အောက်ပါ code ကို ထည့်သွင်းပါ:
camera = PiCamera() camera.resolution = (640, 480) camera.rotation = 0
ဒီ code က PiCamera object တစ်ခု ဖန်တီးပြီး resolution ကို 640x480 သတ်မှတ်သည်။ Resolution ပိုမြင့်သောပုံများကို support လုပ်နိုင်သော်လည်း image classifier သည် ပိုသေးသောပုံများ (227x227) တွင်သာ အလုပ်လုပ်သဖြင့် ပိုကြီးသောပုံများကို ဖမ်းယူရန် မလိုအပ်ပါ။
camera.rotation = 0
ဆိုသော line သည် ပုံ၏ rotation ကို degree ဖြင့် သတ်မှတ်သည်။ Webcam သို့မဟုတ် ဖိုင်မှ ပုံကို လိုအပ်သလို rotate လုပ်ရန် ဒီ value ကို ပြောင်းလဲနိုင်သည်။ ဥပမာအားဖြင့် landscape mode မှ webcam ပေါ်ရှိ ငှက်ပုံကို portrait mode သို့ ပြောင်းလဲလိုပါကcamera.rotation = 90
ဟု သတ်မှတ်ပါ။ -
ပုံကို binary data အဖြစ် ဖမ်းယူရန် အောက်ပါ code ကို ထည့်သွင်းပါ:
image = io.BytesIO() camera.capture(image, 'jpeg') image.seek(0)
ဒီ code က binary data ကို သိမ်းဆည်းရန်
BytesIO
object တစ်ခု ဖန်တီးသည်။ ကင်မရာမှ JPEG ဖိုင်အဖြစ် ဖတ်ယူပြီး ဒီ object တွင် သိမ်းဆည်းသည်။ ဒီ object တွင် data ရေးသားနေသောနေရာကို သိရှိရန် position indicator ရှိပြီးimage.seek(0)
line သည် position ကို data ရှိသောအစပိုင်းသို့ ပြန်လည်ရွှေ့သည်။ -
ပုံကို ဖိုင်အဖြစ် သိမ်းဆည်းရန် အောက်ပါ code ကို ထည့်သွင်းပါ:
with open('image.jpg', 'wb') as image_file: image_file.write(image.read())
ဒီ code က
image.jpg
ဟုခေါ်သော ဖိုင်ကို ဖွင့်ပြီးBytesIO
object မှ data အားလုံးကို ဖတ်ယူကာ ဖိုင်ထဲသို့ ရေးသားသည်။💁 ပုံကို
BytesIO
object မသုံးဘဲ ဖိုင်ထဲသို့ တိုက်ရိုက် သိမ်းဆည်းနိုင်သည်။ သို့သော် ဒီသင်ခန်းစာတွင် image classifier သို့ ပုံကို ပေးပို့ရန်BytesIO
object ကို အသုံးပြုထားသည်။ -
CounterFit တွင် ကင်မရာဖမ်းယူမည့်ပုံကို configure လုပ်ပါ။ Source ကို File သို့မဟုတ် WebCam သတ်မှတ်ပြီး ပုံဖိုင်တစ်ခု upload လုပ်ပါ၊ သို့မဟုတ် webcam မှပုံများကို ဖမ်းယူပါ။ ပုံတစ်ခုကိုရွေးချယ်ပြီး သို့မဟုတ် webcam ကိုရွေးချယ်ပြီးနောက် Set ခလုတ်ကို ရွေးချယ်ပါ။
-
ပုံတစ်ပုံကို ဖမ်းယူပြီး
image.jpg
ဟုခေါ်သော ဖိုင်အဖြစ် လက်ရှိဖိုလ်ဒါတွင် သိမ်းဆည်းမည်။ ဒီဖိုင်ကို VS Code explorer တွင် တွေ့မြင်နိုင်မည်။ ဖိုင်ကို ရွေးချယ်ပြီး ပုံကို ကြည့်ရှုပါ။ Rotate လုပ်ရန်လိုအပ်ပါကcamera.rotation = 0
line ကို update လုပ်ပြီး ပုံကို ထပ်မံဖမ်းယူပါ။
💁 ဒီ code ကို code-camera/virtual-iot-device ဖိုလ်ဒါတွင် ရှာနိုင်သည်။
😀 သင့်ရဲ့ ကင်မရာအစီအစဉ်ရေးခြင်းအောင်မြင်ပါပြီ!
အကြောင်းကြားချက်:
ဤစာရွက်စာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု Co-op Translator ကို အသုံးပြု၍ ဘာသာပြန်ထားပါသည်။ ကျွန်ုပ်တို့သည် တိကျမှုအတွက် ကြိုးစားနေသော်လည်း၊ အလိုအလျောက် ဘာသာပြန်မှုများတွင် အမှားများ သို့မဟုတ် မတိကျမှုများ ပါဝင်နိုင်သည်ကို သတိပြုပါ။ မူရင်းဘာသာစကားဖြင့် ရေးသားထားသော စာရွက်စာတမ်းကို အာဏာတရ အရင်းအမြစ်အဖြစ် သတ်မှတ်သင့်ပါသည်။ အရေးကြီးသော အချက်အလက်များအတွက် လူ့ဘာသာပြန်ပညာရှင်များမှ ပရော်ဖက်ရှင်နယ် ဘာသာပြန်မှုကို အကြံပြုပါသည်။ ဤဘာသာပြန်မှုကို အသုံးပြုခြင်းမှ ဖြစ်ပေါ်လာသော အလွဲအလွတ်များ သို့မဟုတ် အနားလွဲမှုများအတွက် ကျွန်ုပ်တို့သည် တာဝန်မယူပါ။