14 KiB
کمپیوٹر وژن کا تعارف
کمپیوٹر وژن ایک ایسا شعبہ ہے جس کا مقصد کمپیوٹرز کو ڈیجیٹل تصاویر کی اعلیٰ سطح کی سمجھ بوجھ دینا ہے۔ یہ ایک وسیع تعریف ہے کیونکہ سمجھ بوجھ مختلف چیزوں کا مطلب ہو سکتا ہے، جیسے تصویر میں کسی شے کو تلاش کرنا (آبجیکٹ ڈیٹیکشن)، یہ سمجھنا کہ کیا ہو رہا ہے (ایونٹ ڈیٹیکشن)، تصویر کو متن میں بیان کرنا، یا منظر کو 3D میں دوبارہ تشکیل دینا۔ انسانی تصاویر سے متعلق خاص کام بھی ہیں: عمر اور جذبات کا اندازہ لگانا، چہرے کی شناخت اور پہچان، اور 3D پوز کا اندازہ لگانا، وغیرہ۔
لیکچر سے پہلے کا کوئز
کمپیوٹر وژن کے سب سے آسان کاموں میں سے ایک امیج کلاسیفکیشن ہے۔
کمپیوٹر وژن کو اکثر AI کی ایک شاخ سمجھا جاتا ہے۔ آج کل، کمپیوٹر وژن کے زیادہ تر کام نیورل نیٹ ورکس کے ذریعے حل کیے جاتے ہیں۔ ہم اس سیکشن میں کمپیوٹر وژن کے لیے استعمال ہونے والے نیورل نیٹ ورکس کی ایک خاص قسم، کنوولوشنل نیورل نیٹ ورکس، کے بارے میں مزید سیکھیں گے۔
تاہم، تصویر کو نیورل نیٹ ورک میں بھیجنے سے پہلے، کئی صورتوں میں تصویر کو بہتر بنانے کے لیے کچھ الگورتھمک تکنیکوں کا استعمال کرنا سمجھداری ہو سکتی ہے۔
تصویر کی پروسیسنگ کے لیے کئی پائتھون لائبریریاں دستیاب ہیں:
- imageio مختلف امیج فارمیٹس کو پڑھنے/لکھنے کے لیے استعمال کی جا سکتی ہے۔ یہ ffmpeg کو بھی سپورٹ کرتی ہے، جو ویڈیو فریمز کو تصاویر میں تبدیل کرنے کا ایک مفید ٹول ہے۔
- Pillow (جسے PIL بھی کہا جاتا ہے) زیادہ طاقتور ہے، اور تصویر میں تبدیلی جیسے مورفنگ، پیلیٹ ایڈجسٹمنٹ، وغیرہ کو بھی سپورٹ کرتی ہے۔
- OpenCV ایک طاقتور امیج پروسیسنگ لائبریری ہے جو C++ میں لکھی گئی ہے، اور یہ امیج پروسیسنگ کے لیے ڈی فیکٹو معیار بن چکی ہے۔ اس کا ایک آسان پائتھون انٹرفیس بھی ہے۔
- dlib ایک C++ لائبریری ہے جو کئی مشین لرننگ الگورتھمز کو نافذ کرتی ہے، بشمول کچھ کمپیوٹر وژن الگورتھمز۔ اس کا ایک پائتھون انٹرفیس بھی ہے، اور یہ چہرے اور چہرے کے نشانات کی شناخت جیسے چیلنجنگ کاموں کے لیے استعمال ہو سکتی ہے۔
OpenCV
OpenCV کو امیج پروسیسنگ کے لیے ڈی فیکٹو معیار سمجھا جاتا ہے۔ اس میں بہت سے مفید الگورتھمز شامل ہیں، جو C++ میں نافذ کیے گئے ہیں۔ آپ OpenCV کو پائتھون سے بھی کال کر سکتے ہیں۔
OpenCV سیکھنے کے لیے ایک اچھا ذریعہ یہ کورس ہے۔ ہمارے نصاب میں، ہمارا مقصد OpenCV سیکھنا نہیں ہے، بلکہ آپ کو یہ دکھانا ہے کہ اسے کب اور کیسے استعمال کیا جا سکتا ہے۔
تصاویر لوڈ کرنا
پائتھون میں تصاویر کو آسانی سے NumPy arrays کے ذریعے ظاہر کیا جا سکتا ہے۔ مثال کے طور پر، 320x200 پکسلز کی گرے اسکیل تصاویر کو 200x320 array میں محفوظ کیا جائے گا، اور اسی سائز کی کلر تصاویر کا shape 200x320x3 ہوگا (3 کلر چینلز کے لیے)۔ تصویر کو لوڈ کرنے کے لیے، آپ درج ذیل کوڈ استعمال کر سکتے ہیں:
import cv2
import matplotlib.pyplot as plt
im = cv2.imread('image.jpeg')
plt.imshow(im)
روایتی طور پر، OpenCV کلر تصاویر کے لیے BGR (Blue-Green-Red) انکوڈنگ استعمال کرتا ہے، جبکہ پائتھون کے دیگر ٹولز زیادہ روایتی RGB (Red-Green-Blue) استعمال کرتے ہیں۔ تصویر کو درست دکھانے کے لیے، آپ کو اسے RGB کلر اسپیس میں تبدیل کرنا ہوگا، یا تو NumPy array میں dimensions کو تبدیل کر کے، یا OpenCV فنکشن کال کر کے:
im = cv2.cvtColor(im,cv2.COLOR_BGR2RGB)
یہی cvtColor فنکشن دیگر کلر اسپیس تبدیلیوں کے لیے بھی استعمال کیا جا سکتا ہے، جیسے تصویر کو گرے اسکیل یا HSV (Hue-Saturation-Value) کلر اسپیس میں تبدیل کرنا۔
آپ OpenCV کا استعمال کرتے ہوئے ویڈیو کو فریم بہ فریم بھی لوڈ کر سکتے ہیں - ایک مثال OpenCV Notebook میں دی گئی ہے۔
امیج پروسیسنگ
تصویر کو نیورل نیٹ ورک میں بھیجنے سے پہلے، آپ کئی پری پروسیسنگ مراحل لاگو کرنا چاہیں گے۔ OpenCV بہت کچھ کر سکتا ہے، بشمول:
- تصویر کو ری سائز کرنا
im = cv2.resize(im, (320,200),interpolation=cv2.INTER_LANCZOS)کے ذریعے۔ - تصویر کو بلر کرنا
im = cv2.medianBlur(im,3)یاim = cv2.GaussianBlur(im, (3,3), 0)کے ذریعے۔ - تصویر کی چمک اور تضاد کو تبدیل کرنا NumPy array کے ذریعے، جیسا کہ اس Stackoverflow نوٹ میں بیان کیا گیا ہے۔
- تھریشولڈنگ کا استعمال کرتے ہوئے
cv2.threshold/cv2.adaptiveThresholdفنکشنز کو کال کرنا، جو اکثر چمک یا تضاد کو ایڈجسٹ کرنے سے بہتر ہوتا ہے۔ - تصویر پر مختلف ٹرانسفارمیشنز لاگو کرنا:
- ایفائن ٹرانسفارمیشنز اگر آپ کو تصویر میں تین پوائنٹس کے ماخذ اور منزل کا مقام معلوم ہو تو یہ مفید ہو سکتی ہیں۔ ایفائن ٹرانسفارمیشنز متوازی لائنوں کو متوازی رکھتی ہیں۔
- پرسپیکٹیو ٹرانسفارمیشنز اگر آپ کو تصویر میں چار پوائنٹس کے ماخذ اور منزل کا مقام معلوم ہو تو یہ مفید ہو سکتی ہیں۔ مثال کے طور پر، اگر آپ اسمارٹ فون کیمرے سے کسی زاویے سے مستطیل دستاویز کی تصویر لیتے ہیں، اور آپ خود دستاویز کی مستطیل تصویر بنانا چاہتے ہیں۔
- تصویر کے اندر حرکت کو سمجھنا آپٹیکل فلو کا استعمال کرتے ہوئے۔
کمپیوٹر وژن کے استعمال کی مثالیں
ہمارے OpenCV Notebook میں، ہم کچھ مثالیں دیتے ہیں کہ کمپیوٹر وژن کو مخصوص کاموں کے لیے کب استعمال کیا جا سکتا ہے:
- بریل کتاب کی تصویر کو پری پروسیس کرنا۔ ہم اس پر توجہ مرکوز کرتے ہیں کہ کس طرح تھریشولڈنگ، فیچر ڈیٹیکشن، پرسپیکٹیو ٹرانسفارمیشن اور NumPy مینپولیشنز کا استعمال کرتے ہوئے انفرادی بریل علامات کو الگ کیا جا سکتا ہے تاکہ انہیں نیورل نیٹ ورک کے ذریعے مزید کلاسیفائی کیا جا سکے۔
![]() |
![]() |
![]() |
|---|
تصویر OpenCV.ipynb سے
- ویڈیو میں حرکت کا فریم فرق کے ذریعے پتہ لگانا۔ اگر کیمرہ فکسڈ ہے، تو کیمرہ فیڈ کے فریمز ایک دوسرے سے کافی حد تک مشابہ ہوں گے۔ چونکہ فریمز arrays کے طور پر ظاہر کیے جاتے ہیں، صرف ان arrays کو دو مسلسل فریمز کے لیے گھٹانے سے ہمیں پکسل فرق ملے گا، جو جامد فریمز کے لیے کم ہونا چاہیے، اور تصویر میں نمایاں حرکت ہونے پر زیادہ ہو جائے گا۔
تصویر OpenCV.ipynb سے
-
آپٹیکل فلو کا استعمال کرتے ہوئے حرکت کا پتہ لگانا۔ آپٹیکل فلو ہمیں یہ سمجھنے کی اجازت دیتا ہے کہ ویڈیو فریمز پر انفرادی پکسلز کیسے حرکت کرتے ہیں۔ آپٹیکل فلو کی دو اقسام ہیں:
- ڈینس آپٹیکل فلو ویکٹر فیلڈ کا حساب لگاتا ہے جو ہر پکسل کے لیے دکھاتا ہے کہ وہ کہاں حرکت کر رہا ہے۔
- اسپارس آپٹیکل فلو تصویر میں کچھ مخصوص فیچرز (مثلاً کنارے) لیتا ہے، اور ان کی فریم بہ فریم حرکت کا راستہ بناتا ہے۔
تصویر OpenCV.ipynb سے
✍️ مثال نوٹ بکس: OpenCV عملی طور پر OpenCV آزمائیں
آئیے OpenCV کے ساتھ کچھ تجربات کریں اور OpenCV Notebook کو دریافت کریں۔
نتیجہ
کبھی کبھار، نسبتاً پیچیدہ کام جیسے حرکت کا پتہ لگانا یا انگلی کے سرے کا پتہ لگانا صرف کمپیوٹر وژن کے ذریعے حل کیا جا سکتا ہے۔ اس لیے کمپیوٹر وژن کی بنیادی تکنیکوں کو جاننا، اور یہ کہ OpenCV جیسی لائبریریاں کیا کر سکتی ہیں، بہت مددگار ثابت ہوتا ہے۔
🚀 چیلنج
یہ ویڈیو دیکھیں جو AI شو سے ہے تاکہ Cortic Tigers پروجیکٹ کے بارے میں جان سکیں اور انہوں نے کمپیوٹر وژن کے کاموں کو ایک روبوٹ کے ذریعے جمہوری بنانے کے لیے بلاک پر مبنی حل کیسے بنایا۔ اس طرح کے دیگر پروجیکٹس پر تحقیق کریں جو نئے سیکھنے والوں کو اس شعبے میں شامل کرنے میں مدد کرتے ہیں۔
لیکچر کے بعد کا کوئز
جائزہ اور خود مطالعہ
آپٹیکل فلو پر مزید پڑھیں اس شاندار ٹیوٹوریل میں۔
اسائنمنٹ
اس لیب میں، آپ ایک ویڈیو لیں گے جس میں سادہ اشارے ہوں، اور آپ کا مقصد آپٹیکل فلو کا استعمال کرتے ہوئے اوپر/نیچے/بائیں/دائیں حرکتوں کو نکالنا ہوگا۔
ڈسکلیمر:
یہ دستاویز AI ترجمہ سروس Co-op Translator کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا عدم درستگی ہو سکتی ہیں۔ اصل دستاویز، جو اس کی مقامی زبان میں ہے، کو مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے لیے ہم ذمہ دار نہیں ہیں۔




