Vision: iOS میں کمپیوٹر ویژن فریم ورک

مصنف: IT Sectr اشاعت: 2026-07-19 مطالعے کا وقت: 9 منٹ

Vision Apple کا کمپیوٹر ویژن فریم ورک ہے، جو پہلی بار 2017 میں iOS 11 میں متعارف کرایا گیا تھا۔ Vision چہرے کا پتا لگانا، ٹیکسٹ ریکگنیشن (OCR)، بارکوڈ کا پتا لگانا، آبجیکٹ ٹریکنگ، امیج کلاسیفیکیشن اور کنٹور تجزیے کے لیے تیار الگورتھم فراہم کرتا ہے — یہ سب ڈیوائس پر Neural Engine استعمال کرکے انجام ہوتے ہیں۔ Apple WWDC 2023 کے مطابق، Vision کا استعمال معیاری Photos ایپ میں چہرے کی شناخت کے لیے اور Camera ایپ میں iPhone اور iPad پر ریئل ٹائم ٹیکسٹ دریافت کے لیے کیا جاتا ہے۔

اہم نکات

  • Vision — ڈیوائس پر مکمل تجزیے سائیکل کے ساتھ Apple کا آن ڈیوائس کمپیوٹر ویژن فریم ورک۔
  • چہرے کا پتا لگانا، ٹیکسٹ ریکگنیشن (OCR)، بارکوڈ، درجہ بندی اور آبجیکٹ ٹریکنگ کی حمایت کرتا ہے۔
  • اکیڈمک VNRequest میکانزم کے ذریعے کام کرتا ہے — ایک امیج یا ویڈیو سٹریم کے لیے درخواستیں۔
  • VNCoreMLRequest کے ذریعے کسٹم ماڈل کے لیے Core ML کے ساتھ مربوط ہوتا ہے۔
  • فریم ورک ریئل ٹائم کارکردگی کے لیے A12+ چپس پر Neural Engine کے لیے بہتر کیا گیا ہے۔

iOS میں Vision کیا ہے؟

Vision ایک اعلی سطح کا کمپیوٹر ویژن فریم ورک ہے جو پیچیدہ مشین لرننگ الگورتھمز کو ایک سادہ درخواست API (VNRequest) کے پیچھے چھپاتا ہے۔ ڈیویلپر کو کنوولیوشنل نیورل نیٹ ورک کو سمجھنے کی ضرورت نہیں ہے — بس مناسب درخواست کی قسم بنائیں، ایک امیج پاس کریں اور نتیجہ حاصل کریں۔

Vision کا آرکیٹیکچر Request → Handler → Result اصول پر مبنی ہے: VNImageRequestHandler ایک امیج وصول کرتا ہے، VNRequest پر عمل کرتا ہے اور نتائج کے ساتھ VNObservation کی ایک ارے واپس کرتا ہے۔ یہ ایک واحد امیج پر متعدد درخواستوں کو مربوط کرنے کی اجازت دیتا ہے — مثال کے طور پر، ایک فوٹو میں بیک ساتھ چہرے اور ٹیکسٹ کا پتا لگانا۔

Vision iOS 11+ اور macOS 10.13+ کی حمایت کرتا ہے۔ Neural Engine کے ذریعے ہارڈویئر تیزی کے لیے A12 Bionic چپ یا اس سے نئے کی ضرورت ہے۔ A17 Pro اور M سیریز کے آلات پر، Vision سٹریمنگ ویڈیو کے لیے فی سیکنڈ 60 فریم تک پروسیس کرتا ہے۔

بنیادی فائدہ مکمل رازداری ہے: تمام حساب کتاب آلے پر کیے جاتے ہیں، امیجز کبھی سرور پر نہیں بھیجی جاتیں۔ یہ فریم ورک کو حساس ڈیٹا سے کام کرنے والی ایپلیکیشنز، جیسے میڈیکل یا بینکنگ ایپس میں استعمال کرنے کی اجازت دیتا ہے۔

چہرے کا پتا لگانا اور شناخت

VNDetectFaceRectanglesRequest ایک امیج میں چہرے کا پتا لگانے کے لیے بنیادی Vision درخواست ہے۔ یہ کسی مخصوص فرد کی شناخت کیے بغیر، ہر چہرے کو گھیرنے والے مستطیلات کے مختصات واپس کرتا ہے۔

مزید تفصیلی تجزیے کے لیے، VNDetectFaceLandmarksRequest استعمال کریں، جو چہرے کے اہم نکات کی شناخت کرتا ہے: آنکھیں، ابروئیں، ناک، منہ، جبڑے کی خاکہ۔ یہ ڈیٹا ماسک لگانے، ایموجی اینیمیشن اور ریئل ٹائم فلٹرز (جیسے FaceTime اور Snapchat میں) کے لیے استعمال ہوتا ہے۔

swift
import Vision
import UIKit

guard let image = UIImage(named: "photo") else { return }
let request = VNDetectFaceRectanglesRequest()
let handler = VNImageRequestHandler(cgImage: image.cgImage!, options: [:])

try handler.perform([request])
for observation in request.results ?? [] {
    let bbox = observation.boundingBox
    print("Face at x=\\(bbox.origin.x), y=\\(bbox.origin.y)")
}

VNFaceObservation میں صرف boundingBox ہی نہیں بلکہ confidence (0 سے 1 تک) اور landmarks — اگر درخواست VNDetectFaceLandmarksRequest تھی تو چہرے کے نکات کی ایک ارے — بھی شامل ہے۔ 0.5 سے کم confidence عموماً غلط مثبت نتیجہ ہوتا ہے — ایسے نتائج کو مسترد کرنے کی سفارش کی جاتی ہے۔

Vision VNDetectFaceCaptureQualityRequest کی بھی حمایت کرتا ہے، جو چہرے کی امیج کے معیار کا جائزہ لیتا ہے: روشنی، تیزی، گھومنے کا زاویہ۔ یہ صارف رجسٹریشن کے دوران بہترین فریم منتخب کرنے یا اوتار بنانے کے لیے مفید ہے۔

Vision کے ساتھ ٹیکسٹ ریکگنیشن (OCR)

VNRecognizeTextRequest Apple کا داخلی OCR انجن ہے، جو iOS 13 میں متعارف کرایا گیا تھا۔ یہ 13 زبانوں کی حمایت کے ساتھ امیجز میں چھپے ٹیکسٹ کو پہچانتا ہے: انگریزی، روسی، چینی، جاپانی، کورین، اطالوی، جرمن، ہسپانوی، پرتگالی، فرانسیسی، عربی، ویتنامی اور تھائی۔

VNRecognizeTextRequest دو درستگی کی سطحوں کی حمایت کرتا ہے: .fast (تیز، متضاد پس منظر پر سادہ ٹیکسٹ کے لیے) اور .accurate (درست، مختلف فانٹ اور زاویوں والے پیچیدہ مناظر کے لیے)۔ .fast 3–5 گنا تیز ہے لیکن ہاتھ سے لکھے ٹیکسٹ اور غیر معیاری فانٹ کو کم مؤثر طریقے سے سنبھالتا ہے۔

swift
import Vision

let textRequest = VNRecognizeTextRequest { request, _ in
    guard let observations = request.results as? [VNRecognizedTextObservation]
    else { return }
    for observation in observations {
        let topCandidate = observation.topCandidates(1).first
        print(topCandidate?.string ?? "")
    }
}
textRequest.recognitionLevel = .accurate
textRequest.usesLanguageCorrection = true

usesLanguageCorrection پراپرٹی زبان کے ماڈل کا استعمال کرکے پہچانے گئے ٹیکسٹ کی تصحیح کو فعال کرتی ہے۔ یہ انگریزی کی درستگی میں 10–15% بہتری لاتا ہے لیکن پروسیسنگ کا وقت بڑھاتا ہے۔ روسی زبان کی تصحیح بھی دستیاب ہے جب مناسب شناخت متعین کی گئی ہو۔

Apple ML Research 2022 کے مطابق، .accurate سطح پر VNRecognizeTextRequest کی درستگی انگریزی میں صاف دستاویز کی تصاویر کے لیے 96% اور روسی کے لیے تقریباً 88% ہے۔ پیکیجنگ، سائن اور اسکرین پر ٹیکسٹ کے لیے، درستگی 75–85% تک گر جاتی ہے۔

شناخت کی سطحبہاودرستگی (انگریزی)روسی کی حمایت
.fast0.1–0.3 سیکنڈ~85%ہاں
.accurate0.3–1.0 سیکنڈ~96%ہاں

بارکوڈ اور QR کوڈ کا پتا لگانا

VNDetectBarcodesRequest — امیجز میں بارکوڈ اور QR کوڈ کا پتا لگانے اور ڈی کوڈ کرنے کے لیے Vision درخواست۔ تمام اہم فارمیٹ سپورٹ کیے گئے ہیں: EAN-8، EAN-13، UPC-A، UPC-E، Code 39، Code 93، Code 128، PDF417، Aztec اور QR۔

AVFoundation (AVCaptureMetadataOutput) کے برعکس، Vision نہ صرف ویڈیو سٹریمز بلکہ سٹیٹک امیجز کے ساتھ بھی کام کرتا ہے — موجودہ تصاویر یا اسکرین شاٹ سے کوڈ اسکین کرنے کی اجازت دیتا ہے۔ Vision کوڈ کے boundingBox کو پکسل درستگی کے ساتھ بھی متعین کرتا ہے، جو دریافت شدہ کوڈ کے ارد گرد فریم کو متحرک کرنے کے لیے آسان ہے۔

swift
import Vision

let barcodeRequest = VNDetectBarcodesRequest { request, _ in
    guard let observations = request.results as? [VNBarcodeObservation]
    else { return }
    for observation in observations {
        let payload = observation.payloadStringValue ?? ""
        print("Barcode: \\(payload), Symbology: \\(observation.symbology.rawValue)"
    }
}

VNBarcodeObservation میں payloadStringValue (ڈی کوڈ شدہ مواد)، symbology (کوڈ کی قسم) اور confidence شامل ہے۔ QR کوڈ کے لیے، payload URL، ٹیکسٹ یا JSON ہو سکتا ہے۔ EAN/UPC کے لیے، ایک عددی مصنوعاتی کوڈ واپس کیا جاتا ہے جو ڈیٹابیس میں آئٹم کی تلاش کے لیے استعمال کیا جا سکتا ہے۔

Vision ایک واحد امیج میں متعدد بارکوڈ پروسیس کر سکتا ہے — observations ارے میں ہر دریافت کوڈ کے لیے ایک آبجیکٹ ہوتا ہے۔ یہ مصنوعات کی کھیپوں یا متعدد بارکوڈ والے دستاویزات کو اسکین کرنے کے لیے مفید ہے۔

ویڈیو سٹریم میں آبجیکٹ ٹریکنگ

VNDetectObjectAtPointRequest اور VNSequenceRequestHandler — ویڈیو سٹریم میں آبجیکٹ ٹریک کرنے کے لیے Vision اوزار۔ پہلا صارف کے چھونے کے نقطہ سے آبجیکٹ کی شناخت کرتا ہے، دوسرا ویڈیو فریم کے درمیان آبجیکٹ کو ٹریک کرتا ہے۔

VNSequenceRequestHandler تصاویر کے ایک سیکونس (ویڈیو فریم) کو قبول کرتا ہے اور ہر فریم کے لیے ٹریک کیے گئے آبجیکٹ کی اپڈیٹ شدہ پوزیشن واپس کرتا ہے۔ یہ اگمینٹڈ ریئلٹی ایپس، ویڈیو ایڈیٹرز اور نگرانی کے نظام میں استعمال ہوتا ہے۔

swift
import Vision

let trackingRequest = VNTrackObjectRequest(detectedObjectObservation: initialObservation)
let sequenceHandler = VNSequenceRequestHandler()

for frame in videoFrames {
    try sequenceHandler.perform([trackingRequest],
        on: frame.cgImage!)
    let newBBox = trackingRequest.results?.first?.boundingBox
    // اسکرین پر آبجیکٹ کی پوزیشن اپ ڈیٹ کریں
}

VNTrackObjectRequest آپٹیکل فلو پر مبنی ٹریکنگ الگورتھم استعمال کرتا ہے — یہ ہر فریم پر ڈیٹیکٹر کو دوبارہ تربیت نہیں دیتا بلکہ آبجیکٹ کے پچھلے مقام سے اس کے انقال کا حساب لگاتا ہے۔ یہ Neural Engine کے بغیر بھی آلات پر ریئل ٹائم کارکردگی کو قابل بناتا ہے۔

حدود: تیز حرکت، رکاوٹ یا روشنی میں اچانک تبدیلی کے دوران ٹریکنگ آبجیکٹ کھو سکتی ہے۔ Apple ٹریکنگ تصحیح کے لیے ہر 10–15 فریم پر ڈیٹیکشن (VNDetectObjectAtPointRequest) کو دوبارہ شروع کرنے کی سفارش کرتا ہے۔

امیج کلاسیفیکیشن اور کنٹور تجزیہ

VNClassifyImageRequest — 1,000 زمروں میں امیج درجہ بندی کے لیے Vision کا داخلی ماڈل (ImageNet پر تربیت شدہ ResNet-50 ماڈل)۔ درخواست زمرے کے نام اور confidence کے ساتھ VNClassificationObservation کی ایک ارے واپس کرتی ہے۔

VNDetectContoursRequest امیج کنٹور تجزیہ کرتا ہے — آبجیکٹ حدود نکالتا ہے، جو سیگمینٹیشن، خاکہ کھینچنے اور شناخت سے پہلے پری پروسیسنگ کے لیے مفید ہے۔ درخواست امیج میں ہر کنٹور کو بیان کرنے والے نکات کی ایک ارے واپس کرتی ہے۔

swift
import Vision

// تصویری درجہ بندی
let classificationRequest = VNClassifyImageRequest { request, _ in
    guard let results = request.results as? [VNClassificationObservation]
    else { return }
    let topMatch = results.prefix(3).filter { $0.confidence > 0.3 }
    for match in topMatch {
        print("\\(match.identifier): \\(match.confidence)"
    }
}

VNClassifyImageRequest عام زمروں (بلی، کتا، گاڑی، کھانا) کے لیے اچھا کام کرتا ہے لیکن مخصوص آبجیکٹ کے لیے مناسب نہیں ہے — ان کے لیے آپ کو ایک کسٹم Core ML ماڈل تربیت دینے اور VNCoreMLRequest استعمال کرنے کی ضرورت ہے۔ Apple کا ماڈل موبائل آلات کے لیے بہتر کیا گیا ہے اور صرف 5 MB ہے۔

VNDetectContoursRequest کنٹور کی قسم (بیرونی، اندرونی، سوراخ) کے ساتھ نکات کی ایک ارے کے طور پر کنٹور واپس کرتا ہے۔ یہ درخواست OCR سے پہلے امیج پری پروسیسنگ (ٹیکسٹ کنٹراسٹ میں بہتری)، اثرات بنانے (آبجیکٹ خاکہ کھینچنا) اور شکل تجزیہ کے لیے استعمال ہوتی ہے۔

Vision درخواستمقصدiOS ورژن
VNDetectFaceRectanglesRequestامیجز میں چہرے کی تلاشiOS 11
VNRecognizeTextRequestٹیکسٹ شناخت (OCR)iOS 13
VNDetectBarcodesRequestبارکوڈ اور QR کا پتا لگاناiOS 11
VNClassifyImageRequestامیج درجہ بندیiOS 13
VNDetectContoursRequestکنٹور تجزیہiOS 14
VNTrackObjectRequestآبجیکٹ ٹریکنگiOS 11

اکثر پوچھے گئے سوالات

کمپیوٹر ویژن کے لیے Vision اور Core ML میں کیا فرق ہے؟

Vision ماڈل تربیت کے بغیر تیار الگورتھم (چہرے کا پتا لگانا، OCR، بارکوڈ) فراہم کرتا ہے۔ Core ML کسٹم ماڈل کو عملی کرنے کا انجن ہے۔ Vision + VNCoreMLRequest Vision پائپ لائن میں Core ML ماڈل چلانے کی اجازت دیتا ہے، دونوں جہانوں کا بہترین حاصل کرتا ہے: Vision کے تیار ڈیٹیکٹر + Core ML کسٹم درجہ بندی۔

کیا Vision ویڈیو پر ریئل ٹائم کام کرتا ہے؟

ہاں، Vision ٹریکنگ کے لیے VNSequenceRequestHandler اور فریم بہ فریم پروسیسنگ کے لیے AVCaptureVideoDataOutput کے ذریعے ریئل ٹائم ویڈیو سٹریم پروسیسنگ کی حمایت کرتا ہے۔ A12+ اور Neural Engine والے آلات پر، Vision چہرے کا پتا لگانے کے لیے 60 fps تک پروسیس کرتا ہے۔ بھاری کاموں (OCR، درجہ بندی) کے لیے، ہر 5–10 فریم پر پروسیس کرنے کی سفارش کی جاتی ہے۔

VNRecognizeTextRequest کن زبانوں کی حمایت کرتا ہے؟

VNRecognizeTextRequest 13 زبانوں کی حمایت کرتا ہے: انگریزی، روسی، چینی (سادہ اور روایتی)، جاپانی، کورین، اطالوی، جرمن، ہسپانوی، پرتگالی، فرانسیسی، عربی، ویتنامی اور تھائی۔ ایک واحد امیج میں متعدد زبانوں کو پہچاننے کے لیے، recognitionLanguages پراپرٹی میں ایک ارے متعین کریں۔

کیا Vision کو Core ML ماڈل کے ساتھ استعمال کیا جا سکتا ہے؟

ہاں، VNCoreMLRequest کے ذریعے۔ آپ VNCoreMLModel میں لپٹا ایک Core ML ماڈل بناتے ہیں اور اسے VNCoreMLRequest کو پاس کرتے ہیں۔ Vision خودکار طور پر امیج پری پروسیسنگ (اسکیلنگ، کراپنگ) کو سنبھالتا ہے اور اسے Core ML ماڈل میں فیڈ کرتا ہے۔ نتیجہ ماڈل کے آؤٹ پٹ ڈیٹا کے ساتھ VNCoreMLFeatureValueObservation کے طور پر واپس کیا جاتا ہے۔

کیا Vision تصاویر کو Apple کے سرور پر بھیجتا ہے؟

نہیں، Vision تمام تجزیہ مکمل طور پر آلے پر کرتا ہے۔ تصاویر کبھی صارف کے آلے سے باہر نہیں جاتیں۔ یہ Apple کا بنیادی آرکیٹیکچر ہے: تمام ML فریم ورک (Vision، NaturalLanguage، Core ML، Speech) رازداری کو یقینی بنانے کے لیے آن ڈیوائس کام کرتے ہیں۔ Apple کے سرور پر کوئی ڈیٹا نہیں بھیجا جاتا۔

خلاصہ

  • Vision — VNRequest پر مبنی API کے ساتھ Apple کا آن ڈیوائس کمپیوٹر ویژن فریم ورک، iOS 11 سے تمام Apple آلات پر دستیاب۔
  • VNDetectFaceRectanglesRequest اور VNDetectFaceLandmarksRequest فلٹرز، ماسک اور اینیمیشن کے لیے چہرے اور اہم نکات کا پتا لگاتے ہیں۔
  • VNRecognizeTextRequest — 13 زبانوں کے لیے .fast اور .accurate سطحوں کے ساتھ داخلی OCR، دستاویزات کے لیے 96% تک درستگی۔
  • VNDetectBarcodesRequest فوٹو اور ویڈیو سٹریم دونوں میں تمام مشہور بارکوڈ اور QR کوڈ فارمیٹ ڈی کوڈ کرتا ہے۔
  • VNTrackObjectRequest ڈیٹیکٹر کو دوبارہ تربیت دیے بغیر آپٹیکل فلو کے ذریعے ویڈیو فریم کے درمیان آبجیکٹ کو ٹریک کرتا ہے۔
  • VNCoreMLRequest کے ذریعے Core ML انٹیگریشن Vision پائپ لائن کے اندر کسٹم درجہ بندی اور ڈیٹیکشن ماڈل چلانے کے قابل بناتا ہے۔
  • تمام حساب کتاب Neural Engine استعمال کرکے آلے پر کیے جاتے ہیں — کوئی تصویر سرور پر نہیں بھیجی جاتی اور مکمل ڈیٹا رازداری یقینی ہوتی ہے۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں