Loading...
Image සහ Video Analysis වලට නැතුවම බැරි OpenCV ගැන දැනගනිමු

වර්තමාන තාක්ෂණික ලෝකය Visual Data මත වැඩි වැඩියෙන් රඳා පවතින ප්‍රවණතාව ශීග්‍රයෙන් වර්ධනය වෙමින් පවතී,  මෙහිදී Visual Data එක්රැස් කර Process කිරීමේදී Computer Vision තාක්ෂණයට ප්‍රමුඛස්ථානයක් හිමිවේ. මෙමගින් මිනිස් ඇස මෙන් visual information Interpret කිරීමට සහ අර්ථ දැක්වීමට Machines වලට හැකියාව ලබා දෙයි. OpenCV (Open-Source Computer Vision Library) Face Detection සිට Self-driving cars දක්වා බොහෝ අති නවීන Technological Applications වලට Base එක ලෙස කටයුතු කරන Powerful Software Library එක බවට අද වනවිට පත්ව ඇත.

OpenCV යනු කුමක්ද?

OpenCV යනු Computer Vision Applications හා Machine Learning සඳහා අවශ්‍ය Infrastructure Facilities සැපයීම සඳහා Develop කරන ලද Open-Source Computer Vision Library එකක් වන අතර ඔබ ඉංජිනේරුවෙකු, පර්යේෂකවරයෙක් හෝ Developer කෙනෙකු අතරින් කුමන හෝ අයෙකු වුවද, Image and video analysis සම්බන්ධව පුළුල් පරාසයක Tasks කිරීමට නම් ඔබ OpenCV Software Library එක ඔබගේ Project එක පුරාවටම භාවිතා කල යුතු වනවා. මෙහි Core එක C සහ C++ වලින් ලියා ඇති නමුත් එය Python, Java ඇතුළුව විවිධ Programming Languages සඳහා අතුරුමුහුණත් සපයයි.

OpenCV ඉතිහාසය කෙටියෙන්

OpenCV මුලින්ම නිර්මාණය කරන ලද්දේ Gary Bradski විසින් 1999 දී Advance Computer Vision සම්බන්ධ Researches දියුණු කිරීමේ ඔහුගේ උත්සාහයේ කොටසක් ලෙසය. ඒ වන විට පවතී Open-Source Nature සහ Unified, standardized computer vision library එකක අවශ්‍යතාවය හේතුවෙන් මෙය ඊට අනුගතව Develop කරන ලදී. වසර ගණනාවක් පුරා, මෙය බොහෝ Updates සහ Revisions වලට ලක්වී ඇති අතර, අද වන විට භාවිතා වන Powerful Software Library වන එක තෙක් දියුණු වී ඇත. අද වන විට OpenCV Software Library එක ලොවපුරා Dedicated developers සහ Researchers Community එක විසින් නිරන්තරයෙන්ම Actively maintain කරන අතර අඛණ්ඩව පුළුල් කරන Software Library එකක් බවට පත්ව ඇත.

OpenCV වල Key Features

1. Open Source and Cross-Platform

OpenCV, BSD License එක යටතේ නිකුත් කර ඇත, එයින් අදහස් වන්නේ එය Academic සහ Commercial Use සඳහා නොමිලේ භාවිතා කල බවයි. මෙහි Open-source nature එක නිසා Basic tutorials වල සිට Pre-trained models දක්වා විශාල resources ප්‍රමාණයක් develop කර ඒවා Users ලා අතර Share කර ඇති අතර තව දුරත් මම Library එක Update කිරීමට හැකියාවන් ඇති අයටද Development වලට සම්බන්ද වීම සදහා මෙම Community එක Encourage කිරීම නිරන්තරයෙන් සිදු කරයි. මෙය Highly portable හා Windows, Linux, macOS, Android, සහ iOS ඇතුළු විවිධ Platforms වල Run කරන්න පුළුවන් හැකියාව නිසා වැඩි වශයෙන් ජනප්‍රිය වී ඇත.

2. Rich Functionality

OpenCV Library එක මගින් Image and video processing වලට functions ඉතා විශාල ප්‍රමාණයක් release කර ඇත. මෙහි core capabilities ලෙස Image filtering, feature detection, object recognition, image stitching, camera calibration, and motion tracking දක්වන්න පුළුවන් තවද මෙම Library එක 2D සහ 3D image processing සඳහාද  සහය දක්වයි.

3. Computer Vision Algorithms

OpenCV Software Library එකේ වඩාත්ම කපීපෙනන අංගයක් වන්නේ එහි ඇති built-in computer vision algorithms collection එක. මෙම Algorithms වල Object detection, facial recognition, gesture analysis සහ තවත් බොහෝ දේ සඳහා  speed and accuracy techniques ඇතුළත් වේ.

4. Machine Learning Integration

OpenCV TensorFlow සහ PyTorch වැනි Machine Learning Libraries සමඟ කිසිම බාධාවකින් තොරව Integrate කල හැකිවේ. එම නිසා මෙය භාවිතා කරන ඕනෑම කෙනෙකුටම තමන්ටම Image classification models හදාගෙන Object detection systems දක්වා Intelligent computer vision systems develop කිරීමට හැකියාව ලබා දෙයි.

5. Extensive Language Support

OpenCV එක programming language එකකට සීමා නොවේ එය විවිධ Languages සඳහා API (Application Programming Interface) සපයයි, මෙයින් Python වඩාත් ජනප්‍රිය තේරීම වේ. මෙම Multi-Language support සහාය විවිධ software ecosystems  වලට integration පහසුකම් සපයන අතර එමගින් Development process එක සරල කරයි.

6. Community and Documentation

OpenCV Community එක ඉතා විශාල වශයෙන් ලෝකයේ පුරාවටම දක්නට ලැබෙන අතර ඉන් බොහොමයක් OpenCV projects වලට Active contribution එක ලබාදේ. ඔබ Beginner කෙනෙක් නම් ඔබට ඕනා තරම් Forums, mailing lists, ඉතා හොද Tutorials සහ  Documentation ඔබට Internet, YouTube පුරාවටම සොයාගත හැක. ඔබ beginnerකෙනෙක් හෝ professional user කෙනෙක් වුවවද ඔබට අවශ්‍ය ඕනෑම Support එකක් ලබා ගැනීමට පුළුවන් හැකියාවක් පවතී.

Applications of OpenCV

OpenCV (Open-Source Computer Vision Library) යනු විවිධ යෙදුම් සඳහා පුළුල් පරාස වල applications සදහා  tools සහ functions සපයන ප්‍රබල Open-source computer vision and image processing library එකක් වන බව මේ වන විට ඔබ දන්නා කරුණකි. OpenCV හි Common applications:

  1. Image and Video Processing: OpenCV භාවිතාකර basic image and video processing සිදුකරගත හැකි වන අතර මෙය Loading, saving, displaying, and enhancing images and videos tasks මෙය භාවිතයෙන් වඩා පහසුවෙන් සිදු කර හැක.
  2. Object Detection and Recognition: Object detection, face recognition සහ feature matching tasks වලට OpenCV පරිශීලකයන අතර වඩාත් ජනප්‍රියවී ඇත. Object Detection සහ Face Recognition සඳහා pre-trained models සැදීමේ හැකියාව මෙයින් ලැබෙන නිසා ඒවා යෙදුම් Applications වලට පහසුවෙන් Implement කල හැක.
  3. Motion Tracking: වීඩියෝවල Objects motion tracking වලට OpenCV library එක Optimized නිසා OpenCV surveillance and robotics applications වලට භාවිතා කරයි.
  4. Image Stitching: OpenCV Library එක හට Automatically multiple images combine කර තනි panoramic image නිර්මාණය කළ හැක, එමනිසා 360-degree photography applications සඳහා ප්‍රයෝජනවත් වේ.
  5. Camera Calibration: Camera Calibration කිරීමට සහ Distortions correct කිරීමට OpenCV භාවිතා කළ හැකි අතර, Accurate camera geometry අත්‍යවශ්‍ය Computer vision applications සඳහා එය ප්‍රයෝජනවත් වේ.
  6. Augmented Reality (AR): කැමරාවක් මගින් Capture කරගන්න Digital information සහ Graphics , OpenCV භාවිතයෙන් Real-world view මතින් තැබීමට, එය AR applications සඳහා නැතිවම බැරි ඉතා වටිනා Library එකක් බවට OpenCV පත්ව ඇත.
  7. Gesture Recognition: User interfaces and Gaming වලදී Hand gestures හඳුනා ගැනීමට සහ Track කිරීමට  භාවිතා කරයි.
  8. Optical Character Recognition (OCR): OpenCV, Tesseract වැනි Additional libraries සමඟ, Images, Videos and documents වලින් text extract කිරීමට භාවිතා කරයි.
  9. Machine Learning and Deep Learning Integration: Custom object detection or image classification වැනි Advanced computer vision applications නිර්මාණය කිරීම සඳහා OpenCV සමග Deep learning frameworks and deep learning frameworks සමඟ Integrate කළ හැකිය.
  10. Medical Image Analysis: X-rays සහ  MRIs වැනි medical images වල පිළිකා හඳුනා ගැනීම සහ කොටස් කිරීම වැනි විවිධ medical imaging applications මත OpenCV භාවිතා වේ.
  11. Robotics:  Navigation, obstacle detection සහ path planning කිරීම වැනි කාර්යයන් සඳහා OpenCV රොබෝ තාක්ෂණයේ බහුලව භාවිතා වේ.
  12. Video Analysis:  Counting objects monitoring traffic and detecting anomalies වැනි වීඩියෝ Video Analysis Application වල භාවිතා වේ.
  13. Image Filters and Effects: OpenCV මගින් image filters and effects යෙදීම සඳහා tools සපයයි, ඒවා in image editing applications වල භාවිතා කළ හැක.
  14. Machine Vision in Manufacturing: OpenCV භාවිතයෙන් Production lines වල Quality control සහ defect detection වැනි කාර්යයන් සඳහා භාවිතා වේ.
  15. Sports Analytics: Sports videos වල Players ලාගේ Movements track කිරීමට සහ Analyze කිරීමට, පුහුණුකරුවන්ට සහ විශ්ලේෂකයින්ට Insights ලබා ගැනීමට OpenCV භාවිතා කළ කරයි.
  16. Geospatial Applications: Satellite image analysis and GIS (Geographic Information Systems) වැනි Geospatial applications වල OpenCV භාවිතා කරයි.
  17. Artificial Intelligence Art: OpenCV බොහෝ විට creative projects වල දක්නට ලැබෙන AI techniques භාවිතයෙන් Art create සහ Generate කිරීමට භාවිතා කරයි.
  18. Facial Filters and Emoticons: බොහෝ Mobile applications වල Selfies and videos සඳහා Facial filters and emoticons add කිරීම සඳහා OpenCV භාවිතා කරයි.

Computer Vision සහ OpenCV Software Library එක ගැන Basic Idea එකක් ගන්න මේ Article එක Help වෙන්න ඇති කියලා මම හිතනවා. ඉදිරියේදී OpenCV ගැන Basic to Deep Article සෙට් එකක් Python වලින් ගෙන එන බලාපොරොත්තුවෙන් අද Article එක ඉවර කරනවා.

ඉදිරියේදීත් මෙවැනිම වූ තොරතුරු දැන ගැනීම සඳහා Android වැඩකාරයෝ අප සමඟම රැඳී සිටින්න.

Cover Image: pythongeeks.org