ہم نے اوپن سی وی کی بنیادی باتیں سیکھنے کے ساتھ شروع کیا اور پھر کچھ بنیادی تصویری پروسیسنگ اور تصاویر پر ہیرا پھیری کی جس کے بعد تصویری قطعات اور اوپن سی وی اور ازگر زبان کا استعمال کرتے ہوئے بہت سے دوسرے کام انجام دیئے گئے۔ یہاں ، اس حصے میں ، ہم ٹیمپلیٹ ملاپ کا استعمال کرتے ہوئے کچھ آسان چیزوں کی نشاندہی کرنے کی تکنیک کو انجام دیں گے ۔ ہمیں کسی شبیہہ میں کوئی شے ملے گی اور پھر ہم اس کی خصوصیات بیان کریں گے۔ خصوصیات شبیہہ کی عام خصوصیات ہیں جیسے کونے ، کناروں وغیرہ۔ ہم کچھ عام اور مشہور آبجیکٹ کا پتہ لگانے والے الگورتھم جیسے سیفٹ ، سرف ، فاسٹ ، بریف اور او آر بی پر بھی نگاہ ڈالیں گے۔
جیسا کہ پچھلے سبق میں بتایا گیا ہے ، اوپن سی وی اوپن سورس کامور وژن لائبریری ہے جس میں C ++ ، ازگر اور جاوا انٹرفیس ہیں اور وہ ونڈوز ، لینکس ، میک او ایس ، آئی او ایس اور اینڈروئیڈ کو سپورٹ کرتا ہے۔ لہذا یہ راسبیری پائی میں ازگر اور لینکس ماحول کے ساتھ آسانی سے انسٹال کیا جاسکتا ہے۔ اور اوپن سی وی اور منسلک کیمرہ کے ساتھ رسبری پائی کا استعمال بہت سے ریئل ٹائم امیج پراسیسنگ ایپلی کیشنز بنانے کے لئے کیا جاسکتا ہے جیسے چہرہ کا پتہ لگانا ، چہرہ لاک ، آبجیکٹ سے باخبر رہنے ، کار کی نمبر پلیٹ کا پتہ لگانا ، ہوم سیکیورٹی سسٹم وغیرہ۔
آبجیکٹ کی نشاندہی اور پہچان کمپیوٹر وژن کے لئے استعمال میں اہم ترین معاملہ ہے ، ان کا استعمال طاقتور چیزوں جیسے کرنے کے لئے کیا جاتا ہے
- لیبل لگانے والے مناظر
- روبوٹ نیویگیشن
- خود چلانے والی کاریں
- جسمانی شناخت (مائیکروسافٹ کائنکٹ)
- بیماری اور کینسر کا پتہ لگانا
- چہرے کی پہچان
- لکھاوٹ کی پہچان
- سیٹیلائٹ کی تصاویر میں اشیاء کی نشاندہی کرنا
اعتراض کا پتہ لگانے VS کی شناخت
آبجیکٹ کی شناخت آبجیکٹ کا پتہ لگانے کا دوسرا درجہ ہے جس میں کمپیوٹر ایک شبیہہ میں ایک سے زیادہ اشیاء سے کسی شے کو پہچاننے کے قابل ہے اور ممکن ہے کہ اس کی شناخت کرسکے۔
اب ، ہم کسی شبیہہ سے شے کو تلاش کرنے کے ل image کچھ امیج پروسیسنگ افعال انجام دیں گے۔
شبیہہ سے کوئی شے تلاش کرنا
یہاں ہم کسی شبیہہ میں کردار / آبجیکٹ تلاش کرنے کے لئے ٹیمپلیٹ مماثل استعمال کریں گے ، اس شے کو تلاش کرنے کے لئے اوپن سی وی کی cv2.matchTemplate () فنکشن استعمال کریں گے۔
درآمد cv2 درآمد nump کو بطور NP
ان پٹ تصویر لوڈ کریں اور اسے گرے میں تبدیل کریں
تصویری = cv2.imread ('WaldoBeach.jpg') cv2.imshow ('people'، image) cv2.waitKey (0) سرمئی = cv2.cvt رنگ (تصویر ، cv2.COLOR_BGR2GRAY)
ٹیمپلیٹ کی تصویر لوڈ کریں
ٹیمپلیٹ = cv2.imread ('waldo.jpg'، 0) # شبیہہ کے نتائج پر اعتراض کی مماثلت کے سانچے کا نتیجہ = cv2.matchTemplate (سرمئی ، ٹیمپلیٹ ، cv2.TM_CCOEFF) sin_val ، max_val ، min_loc، max_loc = cv2.minMaxLoc (نتیجہ)
پابند خانہ بنائیں
چوٹی_لیفٹ = میکس_لوک # پابند مستطیل کے سائز کو 50 پکسلز بٹھا کر نیچے_ سیدھا = (ٹاپ_لیفٹ + 50 ، ٹاپ_لیفٹ + 50) سی وی 2.ریکٹینگ (شبیہ ، ٹاپ_لیفٹ ، نیچے_دائیں ، (0،255،0)، 5) cv2.imshow ('آبجیکٹ پایا گیا') ، تصویر) cv2.waitKey (0) cv2.destroyAllWindows ()
میں cv2.matchTemplate (گرے، سانچے، cv2.TM_CCOEFF) ، ان پٹ سرمئی پیمانے پر تصویر کا اعتراض اور سانچے کو تلاش کرنے کے لئے. پھر شبیہہ سے اشیاء کو ڈھونڈنے کے لئے ٹیمپلیٹ مماثل طریقہ استعمال کریں ، یہاں cv2.TM_CCOEFF استعمال ہوتا ہے۔
پورے فنکشن میں ایک صف ملتی ہے جس کے نتیجے میں ان پٹ لگا ہوتا ہے ، جو ٹیمپلیٹ سے ملنے والے طریقہ کار کا نتیجہ ہے۔
اور پھر ہم cv2.minMaxLoc (نتیجہ) کا استعمال کرتے ہیں ، جس سے نقاط یا باؤنڈنگ باکس ملتا ہے جہاں شبیہہ میں کوئی شے پایا جاتا ہے ، اور جب ہمیں یہ نقاط ملتے ہیں تو اس پر ایک مستطیل کھینچ لیا جاتا ہے ، اور باکس کی تھوڑی سی جہتیں بڑھاتے ہیں تاکہ اعتراض آسانی سے مستطیل کے اندر فٹ ہوجاتا ہے۔
ٹیمپلیٹ مماثلت انجام دینے کے لئے متعدد طریقے ہیں اور اس معاملے میں ہم cv2.TM_CCOEFF استعمال کررہے ہیں جس کا مطلب ہے ارتباط کے قابلیت کا ۔
یہاں کیپس (X ، Y) نقاط ہیں جو سیفٹ ڈٹیکٹر کا استعمال کرتے ہوئے نکالا جاتا ہے اور cv2 ڈرا کیپائنٹ فنکشن کا استعمال کرتے ہوئے شبیہ کے اوپر تیار کیا جاتا ہے۔
سرف
درآمد cv2 درآمد نپٹی بطور این پی امیج = cv2.imread ('paris.jpg') گرے = cv2.cvt رنگ (تصویر ، cv2.COLOR_BGR2GRAY)
SURF Feature Detector آبجیکٹ بنائیں ، یہاں ہم 500 کے حساب سے ہسیئن کی حد مقرر کرتے ہیں
سرف = cv2.xfeatures2d.SURF_create (500) کیپ پوائنٹس ، وضاحتی = surf.detectAndCompute (سرمئی ، کوئی نہیں) پرنٹ (" اہم نکات کی نشاندہی :" ، لین (کیپس))
ان پٹ امیج پر بھرپور اہم نکات بنائیں
تصویری = cv2.drawKeypPoint (شبیہ ، کیپپوائنٹس ، کوئی نہیں ، جھنڈے = cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS) cv2.imshow ('خصوصیت کا طریقہ - SURF' ، تصویری) cv2.waitKey () cv2.desty ()
کنسول آؤٹ پٹ:
تیز
درآمد cv2 درآمد نپٹی بطور این پی امیج = cv2.imread ('paris.jpg') گرے = cv2.cvt رنگ (تصویر ، cv2.COLOR_BGR2GRAY)
فاسٹ ویکشک آبجیکٹ بنائیں
فاسٹ = سی وی 2۔ فاسٹ فیچرڈیٹیکٹر_کرائٹ () # کلیدی نکات حاصل کریں ، بطور ڈیفالٹ غیر زیادہ سے زیادہ دباؤ سیٹ آن کرنے کے لئے # آن ہے۔ سیٹ بوول ('نان میکس سوپریشن' ، جھوٹا) کیپ پوائنٹ = فاسٹ۔ڈیٹیکٹ (گرے ، کوئی بھی نہیں) پرنٹ (" اہم نکات کی تعداد" پتہ چلا: "، لین (کلیدی نقطہ))
ان پٹ امیج پر بھرپور اہم نقاط ڈرا کریں
تصویری = cv2.drawKeypPoint (شبیہ ، کیپپوائنٹس ، کوئی نہیں ، جھنڈے = cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS) cv2.imshow ('خصوصیت کا طریقہ - تیز' ، تصویری) cv2.waitKey () cv2.windesAAwestay
کنسول آؤٹ پٹ:
مختصر
درآمد cv2 درآمد نپٹی بطور این پی امیج = cv2.imread ('paris.jpg') گرے = cv2.cvt رنگ (تصویر ، cv2.COLOR_BGR2GRAY)
فاسٹ ڈیٹیکٹر آبجیکٹ بنائیں
مختصر = cv2.xfeatures2d. بریف ڈیزائنر ایکسٹریکٹر_کرائٹ ()
بریف ایکسٹریکٹر آبجیکٹ بنائیں
# بریف = سی وی 2۔ڈیسکرٹر ایکسٹریکٹر_کرائٹ ("BRIEF") # اہم نکات کا تعین کریں اہم نکات = تیزرفتار (نشاندہی کریں)
BRIEF کا استعمال کرتے ہوئے ڈسکریٹر اور نئی حتمی اہم نکات حاصل کریں
کیپیائنٹس ، ڈسریپریٹرز = بریٹ ڈاٹ پیٹ (گرے ، کیپپوائنٹس) پرنٹ (" اہم نکات کی نشاندہی :" ، لین (کلیدی نقطہ))
ان پٹ امیج پر بھرپور اہم نقاط ڈرا کریں
تصویری = cv2.drawKeypPoint (شبیہ ، کیپپوائنٹس ، کوئی نہیں ، جھنڈے = cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS) cv2.imshow ('خصوصیت کا طریقہ - BRIEF ' ، تصویری) cv2.waitKey () cv2.windro
کنسول آؤٹ پٹ:
ORB
درآمد cv2 درآمد نپٹی بطور این پی امیج = cv2.imread ('paris.jpg') گرے = cv2.cvt رنگ (تصویر ، cv2.COLOR_BGR2GRAY)
ORB آبجیکٹ بنائیں ، ہم ان اہم نکات کی تعداد بیان کرسکتے ہیں جن کی ہماری خواہش ہے
orb = cv2.ORB_create () # اہم نکات کا تعین کریں keypPoint = orb.detect (سرمئی ، کوئی نہیں)
بیان کرنے والوں کو حاصل کریں
کلیدی نقطہ ، وضاحت کنندہ = orb.compute (بھوری رنگ کی ، اہم اشارے) پرنٹ (" اہم نکات کی نشاندہی :" ، لین (اہم نقطہ))
ان پٹ امیج پر بھرپور اہم نقاط ڈرا کریں
تصویری = cv2.drawKeypPoint (شبیہ ، کیپ پوائنٹ ، کوئی نہیں ، جھنڈے = cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS) cv2.imshow ('خصوصیت کا طریقہ - ORB' ، تصویری) cv2.waitKey () cv2.windesAAAdesyA
کنسول آؤٹ پٹ:
ہم ان اہم نکات کی تعداد متعین کرسکتے ہیں جن کی زیادہ سے زیادہ حد 5000 ہے ، تاہم پہلے سے طے شدہ قیمت 500 ہے ، یعنی او آر بی خود بخود بہترین 500 اہم نکات کا پتہ لگاسکتا ہے اگر کیپائنٹس کی کسی بھی قیمت کے لئے مخصوص نہیں کیا جاتا ہے۔
لہذا اس طرح اوپن سی وی میں آبجیکٹ کی کھوج کی جگہ لی جاتی ہے ، اوپن سی وی انسٹال شدہ راسبیری پِی میں بھی وہی پروگرام چلایا جاسکتا ہے اور گوگل پورینس والے اسمارٹ فونز جیسے پورٹیبل ڈیوائس کے طور پر استعمال کیا جاسکتا ہے۔
اس مضمون کو راجیف رتن کے ذریعہ تیار کردہ اڈیمی پر ڈیپ لرننگ کورس کے ساتھ ازگر میں ماسٹر کمپیوٹر وژن ™ اوپن سی وی 4 سے ملا ہے ، کمپیوٹر وژن اور ازگر کے بارے میں مزید معلومات کے ل it اس کو سبسکرائب کریں۔