How To Use IMAGENET Pretrained Model With Python And Keras (ResNet50)

Deep Learning လုိ့ေျပာလာျပီဆုိ အားလုံးေျပးျမင္က်တဲ့ library ေတြကေတာ့ tensorflow,theano,mxnet,cntk စတဲ့ နာမည္ၾကီး တာေတြကုိ ျမင္က်မွာပါ။Keras သည္ pyrobocity blog မွာ ဒီပုိ့စ္ေလးနဲ့ စတင္မိတ္ဆက္ေပးတာပါ။Author အၾကိုက္ဆုံး library ဆုိလဲမမွားပါဘူး။ဘာလုိ့ၾကိုက္တာလဲဆုိ လြယ္တယ္ ရုိးရွင္းတယ္ production တြက္လဲ အရမ္းၾကီၚသာ လုိအပ္ခ်က္ေတြသတ္မွတ္စရာမလုိဘူးဆုိ အလုံးစုံ အဆင္ေျပေနတယ့္ library မုိ့ပါ။

ဒီေန့မွာေတာ့ imagenet dataset ကုိ train ထားတဲ့ model ေတြက တစ္ခုကုိ သုံးျပသြားမွာပါ။ imagenet သည္ photo ေပါင္း million နဲ့ခ်ီ ပါ၀င္တယ့္ dataset တစ္ခုပါ။ဘာလုိ့ မိတ္ဆက္ေပးရလဲဆုိ beginner ေတြအေနနဲ့ သိခ်င္မွသိဦးမွာပါ။အဲ့ေတာ့ ဒီလုိ million ခ်ီပါ၀င္တယ့္ dataset ကုိ accuracy မွန္မွန္နဲ့ train ထားနုိင္တယ့္ model weight file မ်ားသည္ အသုံး၀င္တာကေတာ့ အမ်ားၾကီးပါ။ဒီေန့မွာေတာ့ က်ြန္ေတာ္တုိ့သည္ input ပုံတစ္ပုံေပးျပီး ဘာပုံလဲဆုိတာ ျပန္ေျပာနုိင္မယ့္ program ေလးေရးၾကပါမယ္။

ResNet သည္ နာမည္ၾကီး company ျဖစ္တဲ့ microsoft က ေရးဆြဲထားတာပါ။resnet သည္ ေလာေလာဆယ္ သိထားရမွာကေတာ့ input image ကုိ 224 x 224 size နဲ့လက္ခံပါတယ္။ဒါေလးမွတ္ထားရပါမယ္။

စလုိက္ၾကရေအာင္

Installation

Code

အေပါ္ကတုိင္း လုိအပ္တာေတြ import လုပ္လုိက္ပါတယ္။မိတ္ေဆြသည္ တကူးတက resnet50 ကုိေဒါင္းေနစရာမလုိပါဘူး။ဒီprogram ကုိ run တာနဲ့ keras က auto download ဆြဲခ်ေပးပါတယ္။

အဲ့ေတာ့ က်ြန္ေတာ္ပုိ့္စ္ေတြနဲ ရင္းနွီးတယ္ဆုိ argument parser ကေျပာစရာမလုိေလာက္ေတာ့ပါဘူး။command line ကေန image path ကုိလက္ခံဖုိ့ပါ။

ျပီးရင္ေတာ့ resnet50 model ကုိ ေၾကညာလုိက္ျပီး command line ကေန ထည့္ေပးလုိက္တဲ့ image ကုိ opencv နဲ့ read လုပ္လုိက္ပါတယ္။input_image_copy သည္ ပုံေပါ္ စာျပန္ေရးတဲ့အခါ သုံးဖုိ့အတြက္ပါ။ဘာမွမဟုတ္ပါဘူး။ျပီးရင္ေတာ့ ေျပာခဲ့သလုိမ်ိဳး 224 x 224  နဲ့ လက္ခံတယ္ဆိုလုိ့ image ကုိ resize လုပ္ရပါတယ္။

keras neural network မ်ားသည္ images ေတြအေနနဲ့လက္ခံလုိ့ က်ြန္ေတာ္တုိ့က dimension ထပ္ထည့္ျပီး neural network ကေသခ်ာနားလည္ေအာင္ အေပါ္မွာ preprocess_input ကုိသုံးျပီး data ကုိ normalize လုပ္လုိက္ပါတယ္။

ျပီးရင္ေတာ့ အလြယ္တကူ model ကုိ ခန့္မွန္းခုိင္းယံုပါပဲ။

က်ြန္ေတာ္တုိ့သည္ model ကုိ ခန့္မွန္းခုိင္းျပီး top=5 လုိ့ပါလုိ့ ငါးခု ခန့္မွန္းေပးပါတယ္။ျပီးရင္ေတာ့ ရလာတဲ့ class မ်ားကုိ image  width – 250 ဆုိေတာ့ ညာဘက္မွာ ကပ္ျပီး အစိမ္းေရာင္ကာလာေလးနဲ့ ေရးေပးလုိက္တာပါ။အားလုံးနားလည္မယ္လုိ့ ထင္ပါတယ္။ေက်းဇူးတင္ပါတယ္။

Run

 

Share:

Leave a Reply