Vision হল Apple-এর কম্পিউটার ভিশন ফ্রেমওয়ার্ক, যা iOS, macOS এবং iPadOS-এ বিল্ট-ইন এবং ছবি, ভিডিও এবং রিয়েল-টাইম ডেটা বিশ্লেষণের জন্য রেডি-মেড API প্রদান করে। এটি ফেস ডিটেকশন, টেক্সট রিকগনিশন, বারকোড, অবজেক্ট কনট্যুর এবং মোশন ট্র্যাকিং কভার করে — সবকিছু ডিভাইসেই সার্ভারে ডেটা না পাঠিয়ে। Apple Vision Documentation (2026) অনুসারে, ফ্রেমওয়ার্কটি A14 চিপ এবং তার নতুন ডিভাইসে প্রতি সেকেন্ডে 60 ফ্রেম পর্যন্ত প্রসেস করে।
মূল পয়েন্ট
Vision হল একটি উচ্চ-স্তরের কম্পিউটার ভিশন ফ্রেমওয়ার্ক যা Apple WWDC 2017-এ উপস্থাপন করেছে। এটি ডেভেলপারদের কম্পিউটার ভিশন গণিত বা নির্দিষ্ট নিউরাল প্রসেসরের জন্য অপ্টিমাইজেশনে না গিয়ে বিভিন্ন ছবি এবং ভিডিও বিশ্লেষণ কাজ সম্পাদনের জন্য একটি ইউনিফাইড ইন্টারফেস প্রদান করে। Vision স্বয়ংক্রিয়ভাবে A12+ চিপযুক্ত ডিভাইসে Apple Neural Engine ব্যবহার করে।
OpenCV-এর মতো নিম্ন-স্তরের লাইব্রেরির বিপরীতে, Vision জটিলতা অ্যাবস্ট্রাক্ট করে: ডেভেলপার একটি VNRequest অবজেক্ট তৈরি করে, প্যারামিটার কনফিগার করে এবং VNImageRequestHandler-এর মাধ্যমে প্রসেসিং চালায়। ফ্রেমওয়ার্ক নিজেই সিদ্ধান্ত নেয় কোন কম্পিউট ইউনিট ব্যবহার করবে — CPU, GPU বা ANE — এবং স্ট্রাকচার্ড ফলাফল ফেরত দেয়। Apple (WWDC 2025) অনুসারে, Vision ছবি নিয়ে কাজ করে এমন 40% App Store অ্যাপ্লিকেশনে ব্যবহৃত হয়।
Vision-এ ফেস এবং ল্যান্ডমার্ক ডিটেকশন (68 পয়েন্ট পর্যন্ত), টেক্সট রিকগনিশন (OCR) 30+ ভাষার সাপোর্ট সহ, QR এবং EAN বারকোড স্ক্যানিং, ফ্রেমের মধ্যে অবজেক্ট ট্র্যাকিং, আয়তক্ষেত্র এবং কনট্যুর ডিটেকশন, Core ML-এর মাধ্যমে ইমেজ ক্লাসিফিকেশন, মোশন এস্টিমেশন এবং অপটিক্যাল ফ্লো, এবং সেগমেন্টেশন সহ হিউম্যান ডিটেকশনের জন্য API অন্তর্ভুক্ত রয়েছে। প্রত্যেক অপারেশন VNRequest-এর একটি পৃথক সাবক্লাস দ্বারা উপস্থাপিত হয়।
Vision Request → Handler → Results আর্কিটেকচারের উপর নির্মিত, যেখানে প্রতিটি রিকোয়েস্ট একটি নির্দিষ্ট কাজ: মুখ খোঁজা, টেক্সট শনাক্ত করা, অবজেক্ট ট্র্যাক করা। আসুন সবচেয়ে বেশি ব্যবহৃত API দেখি।
VNRequest হল একটি অ্যাবস্ট্রাক্ট বেস ক্লাস যা থেকে সব কংক্রিট Vision রিকোয়েস্ট ইনহেরিট করে। প্রতিটি রিকোয়েস্টে completionHandler, কনফিগারেশন প্যারামিটার এবং ইমেজের একটি অংশ প্রসেস করার জন্য regionOfInterest থাকে। রিকোয়েস্ট তৈরি করার পরে, এটি VNImageRequestHandler (স্থির ছবির জন্য) বা VNSequenceRequestHandler (ভিডিও স্ট্রিমের জন্য) এ পাঠানো হয়। ফলাফলগুলি VNObservation-এর সাবক্লাস — পর্যবেক্ষণের একটি অ্যারে হিসাবে ফেরত দেওয়া হয়।
VNDetectFaceRectanglesRequest একটি ইমেজে সব মুখ খুঁজে বের করে এবং তাদের বাউন্ডিং বক্স ফেরত দেয়। VNDetectFaceLandmarksRequest অতিরিক্তভাবে 68টি মূল ল্যান্ডমার্ক শনাক্ত করে: চোখের কনট্যুর, ভ্রু, নাক, ঠোঁট এবং চোয়াল। VNDetectFaceCaptureQualityRequest ফেস ক্যাপচার গুণমান মূল্যায়ন করে — 0 থেকে 1 পর্যন্ত — বায়োমেট্রিক্সের জন্য উপযোগী। Apple-এর মতে, Neural Engine যুক্ত ডিভাইসে ফেস ডিটেকশন নির্ভুলতা সামনের কোণে 99% পর্যন্ত পৌঁছায়।
VNRecognizeTextRequest হল ইমেজে অপটিক্যাল ক্যারেক্টার রিকগনিশন (OCR)-এর জন্য API। এটি ল্যাটিন, সিরিলিক, চাইনিজ, জাপানিজ, কোরিয়ান এবং অন্যান্য ভাষায় মুদ্রিত টেক্সট সাপোর্ট করে। ফলাফল হল VNRecognizedTextObservation অবজেক্টের একটি অ্যারে, প্রতিটিতে একটি টেক্সট স্ট্রিং, বাউন্ডিং বক্স এবং কনফিডেন্স লেভেল থাকে। দুটি মোড উপলব্ধ: দ্রুত (Fast) ডকুমেন্ট স্ক্যানিংয়ের জন্য এবং নির্ভুল (Accurate) জটিল ফন্টের জন্য।
Vision ব্যবহার করতে, শুধু ফ্রেমওয়ার্ক ইম্পোর্ট করুন, একটি VNRequest অবজেক্ট তৈরি করুন এবং এটি VNImageRequestHandler-এ পাঠান। আসুন একটি ছবিতে টেক্সট রিকগনিশনের উদাহরণ দেখি।
কোডটি নির্ভুল রিকগনিশন মোড সহ একটি VNRecognizeTextRequest তৈরি করে, এটি একটি ইমেজে চালায় এবং শনাক্ত করা টেক্সট কনসোলে আউটপুট করে। এই সহজ উদাহরণটি কয়েক লাইন কোডে VNImageRequestHandler ব্যবহার করে একটি Swift প্রজেক্টে ন্যূনতম Vision ইন্টিগ্রেশন প্রদর্শন করে।
import Vision
// 1. একটি টেক্সট রিকগনিশন রিকোয়েস্ট তৈরি করা
let request = VNRecognizeTextRequest { request, error in
guard let observations = request.results
as? [VNRecognizedTextObservation]
else { return }
for observation in observations {
let topCandidate = observation
.topCandidates(1)
.first
print("টেক্সট: \(topCandidate?.string ?? "")")
}
}
// 2. নির্ভুল মোড সক্ষম করা
request.recognitionLevel = .accurate
request.usesLanguageCorrection = true
// 3. হ্যান্ডলার চালানো
let handler = VNImageRequestHandler(
url: imageURL, options: [:]
)
try? handler.perform([request])
Swift কোডটি নির্ভুল রিকগনিশন লেভেল এবং ভাষা সংশোধন সক্ষম সহ একটি VNRecognizeTextRequest কনফিগার করে। VNImageRequestHandler একটি URL থেকে ছবি লোড করে এবং রিকোয়েস্ট এক্সিকিউট করে। ফলাফলে প্রতিটি টোকেনের জন্য বাউন্ডিং বক্স এবং কনফিডেন্স স্কোর সহ শনাক্ত করা টেক্সট স্ট্রিং থাকে। VNRecognizedTextObservation অ্যারে সহজেই স্ক্রিনে প্রদর্শন করা যেতে পারে।
রিয়েল-টাইম ভিডিও প্রসেসিংয়ের জন্য, VNImageRequestHandler-এর পরিবর্তে VNSequenceRequestHandler ব্যবহার করুন। এটি ইমেজের (ফ্রেম) একটি অ্যারে গ্রহণ করে এবং ফ্রেমের মধ্যে অবস্থা ধরে রাখার সময় একই রিকোয়েস্ট ক্রমান্বয়ে এক্সিকিউট করে — অবজেক্ট ট্র্যাকিংয়ের জন্য অপরিহার্য। VNSequenceRequestHandler স্বয়ংক্রিয়ভাবে মেমরি পরিচালনা করে: যখন একটি অবজেক্ট ফ্রেম ছেড়ে যায় তখন পুরানো পর্যবেক্ষণগুলি সরানো হয়। রিয়েল-টাইম পারফরম্যান্স রিকোয়েস্ট জটিলতার উপর নির্ভর করে: ফেস ডিটেকশন 60 FPS-এ চলে, যখন টেক্সট রিকগনিশন A16 চিপযুক্ত ডিভাইসে 15–30 FPS-এ চলে।
Vision এবং Core Image হল ইমেজ নিয়ে কাজ করার জন্য Apple-এর দুটি ফ্রেমওয়ার্ক, কিন্তু তারা মৌলিকভাবে ভিন্ন কাজ সমাধান করে। Core Image হল ইমেজ ফিল্টারিং এবং ট্রান্সফর্ম করার ফ্রেমওয়ার্ক (ফিল্টার প্রয়োগ, রঙ সংশোধন, ব্লার করা)। Vision হল ইমেজের বিষয়বস্তু বোঝার ফ্রেমওয়ার্ক: এতে কী চিত্রিত হয়েছে।
| বৈশিষ্ট্য | Vision | Core Image |
|---|---|---|
| কাজ | বিশ্লেষণ এবং শনাক্তকরণ | ফিল্টারিং এবং প্রসেসিং |
| ফেস ডিটেকশন | হ্যাঁ, ল্যান্ডমার্ক সহ | শুধু CIDetector |
| টেক্সট রিকগনিশন | হ্যাঁ (OCR) | না |
| ফিল্টার | না | 200+ ফিল্টার |
| Core ML ইন্টিগ্রেশন | হ্যাঁ (VNCoreMLRequest) | না |
| অবজেক্ট ট্র্যাকিং | হ্যাঁ (VNTrackObjectRequest) | না |
| পারফরম্যান্স | ANE-এর জন্য অপ্টিমাইজড | GPU (Metal) |
Vision ব্যবহার করুন যখন আপনার বুঝতে হবে ইমেজে কী আছে: মুখ, টেক্সট, QR কোড, অবজেক্ট। Core Image ব্যবহার করুন যখন আপনার ইমেজ পরিবর্তন করতে হবে: ফিল্টার প্রয়োগ, রঙ সামঞ্জস্য, ক্রপ। প্রায়শই এই দুটি ফ্রেমওয়ার্ক একত্রিত হয়: প্রথমে Core Image ছবির গুণমান উন্নত করে, তারপর Vision তাতে টেক্সট শনাক্ত করে।
অনুশীলনে, Vision এবং Core Image ডকুমেন্ট স্ক্যানিং অ্যাপ্লিকেশনে একসাথে ব্যবহৃত হয়। Core Image স্বয়ংক্রিয়ভাবে কনট্রাস্ট বাড়ায় এবং ছায়া সরিয়ে দেয় (CIFilter with CIPhotoEffectNoir), যখন Vision উন্নত ছবিতে টেক্সট শনাক্ত করে। Apple (WWDC 2025) অনুসারে, কাঁচা ক্যামেরা ফ্রেমের তুলনায় Core Image-এর মাধ্যমে ইমেজ প্রিপ্রসেস করলে OCR নির্ভুলতা 15–20% বৃদ্ধি পায়।
সম্মিলিত ব্যবহারের আরেকটি গুরুত্বপূর্ণ ক্ষেত্র হল অগমেন্টেড রিয়েলিটি অ্যাপ্লিকেশনের জন্য রিয়েল-টাইম ফেস বিশ্লেষণ। Vision মুখ শনাক্ত করে এবং 68টি ল্যান্ডমার্ক চিহ্নিত করে, যখন Core Image শনাক্ত এলাকায় ফিল্টার প্রয়োগ করে। ARKit ফেস ট্র্যাকিংয়ের জন্য Vision এবং ইফেক্ট রেন্ডারিংয়ের জন্য Core Image ব্যবহার করে, যার ফলে A15+ চিপযুক্ত ডিভাইসে মোট 16 ms-এর কম লেটেন্সি হয়।
Vision ইন্টিগ্রেশনের জন্য SwiftUI-তে ডেভেলপ করার সময়, Representable প্রোটোকল ব্যবহার করা হয়, যা AVCaptureSession এবং VNImageRequestHandler-কে UIViewRepresentable-এ র্যাপ করে। ক্যামেরা PreviewView-এর মাধ্যমে প্রদর্শিত হয়, প্রতিটি ফ্রেম AVCaptureVideoDataOutputSampleBufferDelegate-এর মাধ্যমে VisionRequestHandler-এ পাঠানো হয়। এই আর্কিটেকচারাল পদ্ধতি SwiftUI-এর রিঅ্যাকটিভিটি সংরক্ষণ করে এবং তাৎক্ষণিক UI আপডেটের জন্য Vision বিশ্লেষণের ফলাফল @Published প্রপার্টি হিসাবে সরবরাহ করে।
Vision iOS অ্যাপ্লিকেশনের বিস্তৃত পরিসরে ব্যবহৃত হয়: ডকুমেন্ট স্ক্যানার থেকে অগমেন্টেড রিয়েলিটি অ্যাপ পর্যন্ত। আসুন তিনটি সাধারণ পরিস্থিতি দেখি।
VNDetectDocumentSegmentationRequest (iOS 17+ থেকে উপলব্ধ) স্বয়ংক্রিয়ভাবে ইমেজে ডকুমেন্টের সীমানা শনাক্ত করে, দৃষ্টিকোণ সংশোধন করে এবং একটি সোজা ইমেজ ফেরত দেয়। VNRecognizeTextRequest-এর সাথে মিলিত হয়ে, এটি একটি পূর্ণ-বৈশিষ্ট্যযুক্ত OCR স্ক্যানার তৈরি করে যা চালান, বিজনেস কার্ড এবং বইয়ের পৃষ্ঠা শনাক্ত করতে সক্ষম। Apple-এর মতে, A15 চিপযুক্ত ডিভাইসে ডকুমেন্ট সেগমেন্টেশন 30–80 ms সময় নেয়।
VNTrackObjectRequest রিয়েল টাইমে ভিডিও ফ্রেমের মধ্যে একটি নির্বাচিত অবজেক্টের গতিবিধি ট্র্যাক করে। ডেভেলপার প্রথম ফ্রেমে অবজেক্টের বাউন্ডিং বক্স নির্দিষ্ট করে, এবং Vision স্বয়ংক্রিয়ভাবে পরবর্তী ফ্রেমে তার নতুন অবস্থান গণনা করে। ট্র্যাকিং ভিডিও অ্যানালিটিক্স অ্যাপ্লিকেশন, AR গেম এবং নজরদারি সিস্টেমে ব্যবহৃত হয়। A16 চিপে ট্র্যাকিং নির্ভুলতা প্রতি ফ্রেমে 30 পিক্সেল পর্যন্ত অবজেক্ট গতিতে 95%।
VNDetectRectanglesRequest ইমেজে আয়তক্ষেত্রাকার এলাকা খুঁজে পায়: স্ক্রিন, কাগজের শীট, সাইন, ডকুমেন্ট। API দৃষ্টিকোণ সংশোধন সহ কোণার স্থানাঙ্ক ফেরত দেয়। VNDetectContoursRequest-এর সাথে আয়তক্ষেত্র একত্রিত করে, সঠিক অবজেক্ট কনট্যুর বের করা যায় — অগমেন্টেড রিয়েলিটি অ্যাপ্লিকেশন এবং গ্রাফিক্স এডিটরের জন্য উপযোগী। VNDetectContoursRequest কনট্যুর কন্ট্রোল পয়েন্টের একটি অ্যারে ফেরত দেয় যা রেন্ডারিংয়ের জন্য UIBezierPath-এ রূপান্তর করা যায়।
সচরাচর জিজ্ঞাসিত প্রশ্ন
iOS 11+ বেসিক API-র জন্য, iOS 13+ টেক্সট রিকগনিশনের (VNRecognizeTextRequest) জন্য, iOS 17+ ডকুমেন্ট সেগমেন্টেশনের জন্য। Vision macOS 10.13+ এবং iPadOS 13+-এও উপলব্ধ।
হ্যাঁ, Vision VNSequenceRequestHandler এবং AVFoundation-এর মাধ্যমে ভিডিও স্ট্রিম প্রসেস করে। ফ্রেমওয়ার্ক দ্রুত রিকোয়েস্ট ব্যবহার করার সময় A14+ চিপযুক্ত ডিভাইসে 60 FPS পর্যন্ত সাপোর্ট করে।
Vision — ANE এবং GPU-র জন্য স্বয়ংক্রিয় অপ্টিমাইজেশন সহ Apple-এর নেটিভ ফ্রেমওয়ার্ক। OpenCV — বিস্তৃত ক্ষমতা সম্পন্ন ক্রস-প্ল্যাটফর্ম লাইব্রেরি কিন্তু ম্যানুয়াল অপ্টিমাইজেশন প্রয়োজন এবং Neural Engine সাপোর্ট করে না।
VNCoreMLRequest-এর মাধ্যমে: একটি Core ML মডেল তৈরি করুন, VNCoreMLModel ইনিশিয়ালাইজ করুন, এটি VNCoreMLRequest-এ পাঠান এবং VNImageRequestHandler-এর মাধ্যমে চালান। Xcode স্বয়ংক্রিয়ভাবে মডেলের জন্য একটি Swift ক্লাস জেনারেট করবে।
পরোক্ষভাবে — VNDetectFaceLandmarksRequest মুখের মূল পয়েন্টগুলির অবস্থান নির্ধারণ করে, এবং VNDetectFaceExpressionsRequest (iOS 17+) বন্ধ চোখের মাধ্যমে হাসি এবং চোখ টিপে দেওয়ার মূল্যায়ন করে।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন