Object Detection With Simp13

မွတ္ခ်က္။ ။ဒီ tutorial သည္ ubuntu မွာပဲ စမ္းထားရေသးပါတယ္။

က်ြန္ေတာ္ ဒီေန့မွာေတာ့ က်ြန္ေတာ့္ရဲ့ library ျဖစ္တဲ့ simp13 နဲ့ ဘယ္လုိ object detect လုပ္ရမယ္ကုိျပသြားေပးပါမယ္။simp13 ရဲ့ ရည္ရြယ္ခ်က္သည္ မိတ္ေဆြတုိ့ ေရးေနရတာေတြကို လြယ္လြယ္ကူကူျပီးသြားေစခ်င္လုိ့ပါ။အဲ့ေတာ့ က်ြန္ေတာ္တုိ့ စလုိက္ၾကရေအာင္။

ပထမဆုံး simp13 library ကုိ install လုပ္ရပါမယ္။အဲ့တြက္ virtualenv တစ္ခုေဆာက္ပါ။ဘာလုိ့virtualenv ကုိသုံးခုိင္းလဲ သိေစခ်င္ရင္ Why you should create virtualenv for your project and how to setup it မွာဖတ္ပါ။

က်ြန္ေတာ္တုိ့ ပထမဆုံး virutalenv ကုိ ေဆာက္ျပီး မသုံးခ်င္ေတာ့ရင္ deactivate ဆုိျပီး ရုိက္လုိက္ရင္ အလုပ္မလုပ္ေတာ့ပါဘူး။ျပန္သုံးခ်င္ရင္ေတာ့ workon နဲ့ ျပန္သုံးလုိ့ရပါတယ္။

ျပီးရင္ေတာ့ ေသခ်ာေပါက္ workon ကုိသုံးျပီး simp13 virtualenv ထဲ ၀င္ထားပါ။

လုိ့ရုိက္လုိက္ရင္ opencv,numpy စတဲ့ လုိအပ္တဲ့ lib ေတြ အလုိလုိ install လုပ္ပါလိမ့္မယ္။

အဲ့ေတာ့ က်ြန္ေတာ္တုိ့ ေနာက္တစ္ဆင့္ကေတာ့ simp13 ကုိ သုံးျပီး object detect လုပ္ဖုိ့ပါ။

တကယ္ေတာ့ က်ြန္ေတ္ာ ဒီေန့ blog ပုိ့စ္ တြက္ပဲ library ကုိ ေရးရေသးတာပါ။က်ြန္ေတာ္ဒီရက္ပုိင္းအလုပ္ေတာ္ေတာ္မ်ားေနေတာ့ ေနာက္ပုိင္းက် update လုပ္သြားေပးျပီး ဒီblog မွာပဲ  simp13 library နဲ့ ပတ္သတ္တဲ့ tutorial ေတြတင္ေပးသြားပါမယ္။

က်ြန္ေတ္ာတုိ့ code ကုိၾကည့္မယ္ဆုိ ပထမဆုံး command line ကေန argument လက္ခံနုိ္င္ေအာင္လုိ့ လုပ္ထားပါတယ္။

ျပီးရင္ေတာ့ အေရးၾကီးဆုံးျဖစ္တဲ့ simp13 ရဲ့ object detector class ကုိေခါ္လုိက္ျပီး YOLO model ကုိသုံးမယ္ဆုိျပီးေျပာလိုက္ပါတယ္။

ပီးရင္ေတာ့ detect() ဆုိတဲ့ method ကိုေခါ္ျပီး object ေတြကုိ detect လုပ္လုိ့ရလာတဲ့ width ေတြ height ေတြနဲ့ ဥပမာ person လား car လား ဆုိတဲ့ label ေတြကုိျပန္ယူလုိက္ပါတယ္။ ျပီးရင္ေတာ့ က်ြန္ေတာ္တုိ့ ပုံေပါ္မွာ အဲ့တာေတြကို ျပန္ဆြဲလုိက္တာေလးပါပဲ။ဘယ္ေလာက္လြယ္လဲ။

ပုံေပါ္မွာ label ေတြ သူတုိ့ rectanlge ေတြကို ျပန္ဆြဲျပီးျပီဆုိေတာ့ imshow နဲ့ ဆြဲထားတဲ့ ပုံကုိျပန္ျပလုိက္ပါတယ္။ဒါေလးပါပဲ။

လုိအပ္ေနတာက ကုိယ္ detect လုပ္ခ်င္တဲ့ object ပဲ detect လုပ္လုိ့မရေသးပါဘူး။ေနာက္ update versionက်ထည့္ထားေပးပါမယ္။

တစ္ခုသိထားရမွာက detect method ကိုေခါ္ရင္ yolo model မိတ္ေဆြရဲ့ စက္ထဲမွာ ရွိမရွိ စစ္ျပီး download ဆြဲပါတယ္။

က်ြန္ေတာ္ လက္ရွိ yolo model နဲ့ ဒီပုိ့္စ္တြက္ပဲ library မွာေရးထားရေသးတယ္လုိ့ေျပာထားပါတယ္။ဒီ model ကို terminal ကေန auto download ဆြဲတာသည္ မိတ္ေဆြရဲ့ internet line ေပါ္မူတည္ျပီးၾကာနုိင္ပါတယ္။file size က 250mb ပါ။အဲ့ေတာ့ က်ြန္ေတာ္တုိ့ တျခား downloader ကေန download ဆြဲမယ္ဆုိ ပုိျမန္ပါတယ္။အဲ့ေတာ့ auto မသြားပဲ manual ကုိယ္တုိင္ေဒါင္းေလာ့ဆြဲျပီး model file ကုိ simp13 library သိမယ့္ေနရာမွာသြားထားတာက ပုိေကာင္းပါတယ္။

Click Here To Download Yolo Model

download ဆြဲျပီးရင္ေတာ့ simp13 library သည္ မိတ္ေဆြရဲ့ project folder ထဲက .simp13/models/ ထဲမွာ model ကုိသြားရွာပါတယ္။အဲ့ေတာ့ က်ြန္ေတ္ာတုိ့ project structure ကိုၾက္ည့မယ္ဆုိ

  • object_detection
    • object_detect.py
    • .simp13
      • models
        • yolo
          • coco.names
          • yolov3.weights
          • yolov3.cfg

ဆုိျပီးရွိေနပါမယ္။yolo ေအာက္က file 3 files သည္ မိတ္ေဆြတုိ့ download ဆြဲျပီး ရလာတယ့္ zip file ထဲမွာပါပါတယ္။အဲ့ေတာ့ .simp13/models/yolo folders ေတြေဆာက္ဖုိ့လုိလာပါျပီး။ ‘.’ ခံလုိက္ရင္ linux system မွာဆုိ ေပ်ာက္သြားပါတယ္။အဲ့ေတာ့ show hidden files ကုိ အမွန္ျခစ္ထားပါ။

.simp13 ဆုိတဲ့ folder ကုိေတြ့ျပီဆုိ အဲ့ထဲမွာ models ဆုိတဲ့ folder ကုိေဆာက္လုိက္ပါ။models ထဲမွာ yolo ကုိထက္ေဆာက္ျပီး zip files ထဲက 3 files ကုိ yolo ထဲမွာ extract လုပ္လုိက္ပါ။ျပီးရင္ေတာ့ ေအာက္က full script ကုိ ေရးျပီး runလုိ့ရပါျပီ။

Full Script

Run

ဒီပုိ့စ္နဲ့ ပတ္သတ္ျပီး အခက္ခဲတစ္ခုခုရွိခဲ့တယ္ဆုိ page မွာလာေမးနုိင္ပါတယ္။

facebook page-https://www.facebook.com/pyrobocity

က်ြန္ေတာ္ ပုိ့စ္ေတြထဲက code ေတြကုိ ၾကိုက္သလုိသုံးနုိင္ပါတယ္။credit ေပးစရာမလုိပါဘူး။က်ြန္ေတာ္ ဒီlibrary ကုိတတ္နုိင္သေလာက္ update လုပ္ဖုိ့နဲ့မိတ္ေဆြတုိ့တြက္ က်ြန္ေတာ္ေရးေပးတာေတြကအကူညီျဖစ္ျပီး မိတေ္ဆြတုိ့ ဒီblog ကုိ support ေပးခ်င္တယ္ဆုိ တတ္နုိင္သေလာက္ donate လုပ္ေပးနုိင္ပါတယ္။မိတ္ေဆြတုိ့ တတ္နုိင္သေလာက္ ငါးေထာင္တစ္ေသာင္း donate လုပ္ေပးျခင္းျဖင့္ ဒီblog ကိုအမ်ားၾကီးအေထာက္အကူျဖစ္ေစမွာပါ။က်ြန္ေတာ္သည္ မိတ္ေဆြတုိ့ေပးတဲ့သူမ်ားကို ေက်းဇူးတင္တဲ့အေနနဲ့ donate လုပ္ေပးတဲ့ သူမ်ားကုိသာ က်ြန္ေတ္ာ့ရဲ့ unpublic project ေတြကုိ shareလုပ္ေပးပါမယ္။အားလုံးေက်းဇူးတင္ပါတယ္။

အကယ္လုိ့ donate လုပ္ေပးခ်င္တယ္ဆုိရင္ေတာ့ page ကိုဆက္သြယ္ေပးပါ။

Share:

Leave a Reply