iOS 11-ში Vision-ს აქვს ყველაფერი, რაც გჭირდებათ აპლიკაციის შესაქმნელად, რომელსაც შეუძლია ამოიცნოს ტექსტური სიმბოლოები და განხორციელება ერთდროულად ხდება. თქვენ არ გჭირდებათ ტექნიკური კოდირების ცოდნა - მახასიათებლის ნავიგაცია საკმაოდ მარტივია. უფრო მეტიც, განხორციელება შეუფერხებელია.
Vision Framework
ხედვის ჩარჩო საშუალებას გაძლევთ მარტივად განახორციელოთ ნებისმიერი დავალება, რომელიც მოიცავს კომპიუტერის დეტალებს. სტრუქტურა ახორციელებს სახისა და სახის ღირშესანიშნაობების ამოცნობას, შტრიხკოდების ამოცნობას, გამოსახულების რეგისტრაციას, ზოგადი მახასიათებლების თვალყურის დევნებას და ტექსტის ამოცნობას. Vision ასევე საშუალებას გაძლევთ გამოიყენოთ Custom Core ML მოდელები ისეთი ამოცანებისთვის, როგორიცაა კლასიფიკაცია ან ობიექტების აღმოჩენა.
VN DetectTextRectanglesRequest
The VN DetectTextRectanglesRequest არის გამოსახულების ანალიზის მოთხოვნა, რომელიც პოულობს სურათში ხილული ტექსტის რეგიონებს; ფუნქცია აბრუნებს ტექსტის სიმბოლოებს, როგორც მართკუთხა შეზღუდვის ველი საწყისი და ზომა.
თუ თქვენ მიჩვეული ხართ swift-ის გამოყენებას და გარკვეული პერიოდის განმავლობაში პროგრამირებთ, მაშინ ალბათ გაინტერესებთ რა არის Vision-ის გამოყენება, როდესაც არსებობს სხვა ფუნქციები, როგორიცაა image და AVFoundation. ისე, Vision უფრო ზუსტი და პირდაპირია. ფუნქცია ასევე ხელმისაწვდომია სხვადასხვა პლატფორმაზე. თუმცა, Vision-ის გამოყენებას შეიძლება დასჭირდეს მეტი დამუშავების ძალა და დამუშავების დრო.
ტექსტის ამოცნობისთვის Vision-ის გამოსაყენებლად დაგჭირდებათ Xcode 9 და მოწყობილობა, რომელიც მუშაობს iOS 11-ზე.
კამერის შექმნა Avcapture-ით
პირველ რიგში, თქვენ უნდა შექმნათ კამერა AVCapture; ეს არის ერთი ობიექტის AVcapturesession ინიციალიზაცია რეალურ დროში ან ოფლაინ გადაღების შესასრულებლად. ამის შემდეგ, გააკეთეთ სესია მოწყობილობის კავშირთან.
იმისათვის, რომ დაზოგოთ დრო თქვენი აპლიკაციის ინტერფეისის შექმნისგან, იფიქრეთ დამწყებ პროექტზე, დასაწყისისთვის, ეს მოგცემთ დროს ფოკუსირებას Vision Framework-ის სწავლაზე.
- გახსენით თქვენი დამწყები პროექტი. სცენარის ხედები მზად უნდა იყოს და დაყენებული თქვენთვის.
- Ზე ViewController.swift, მოძებნეთ კოდის განყოფილება ფუნქციებითა და საშუალებებით.
- გასასვლელის ქვეშ -ImageView, დგამოაცხადეთ სხდომა AVcapturesession – ეს გამოიყენება მაშინ, როცა გსურთ, რომ მოქმედებები შესრულდეს პირდაპირი სტრიმინგის საფუძველზე.
- Დააყენე AVcapturesession და AVmediatype ვიდეოზე, რადგან თქვენ შეასრულებთ კამერის გადაღებას, რათა ის მუდმივად იმუშაოს
- განსაზღვრეთ გამომავალი და შეყვანის მოწყობილობა
- შეყვანა არის ის, რასაც კამერა დაინახავს, ხოლო გამომავალი არის ვიდეო KCVPixelFormatType_32GRA დაყენებული ტიპის ფორმატით.
- ბოლოს დაამატეთ ა ქვეფენა რომელიც შეიცავს ვიდეოებს imageView და დაიწყე სხდომა. ფუნქცია ცნობილია როგორც inViewdidload. თქვენ ასევე უნდა დააყენოთ ფენის ჩარჩო.
დარეკეთ ფუნქციას ხედი გამოჩნდება მეთოდი.
რადგან საზღვრები ჯერ არ არის დასრულებული, გადააჭარბეთ viewDidLayoutSubviews ( ) შეკრული ფენების განახლების მეთოდი.
iOS 10-ის გამოშვების შემდეგ საჭიროა დამატებითი ჩანაწერი Info.plist-ში, რაც იძლევა კამერის გამოყენების მიზეზს. თქვენ ასევე უნდა დააყენოთ Privacy-Camera Usage Description.
ტექსტის ამოცნობა; როგორ მუშაობს Vision Framework
აპლიკაციაში Vision-ის განსახორციელებლად სამი ნაბიჯია.
- დამმუშავებლები - ეს არის მაშინ, როდესაც გსურთ ფრეიმიკმა გააკეთოს რაღაც მოთხოვნის გამოძახების შემდეგ.
- დაკვირვებები - ეს არის ის, რისი გაკეთებაც გსურთ თქვენს მიერ მოწოდებული მონაცემებით დაწყებული ერთი მოთხოვნით
- მოთხოვნები - ეს არის მაშინ, როდესაც თქვენ ითხოვთ Detect Framework
იდეალურ შემთხვევაში, თქვენ ქმნით ერთ ტექსტურ მოთხოვნას როგორც VNdetecttextrectangles მოთხოვნა. ეს არის ერთგვარი VN მოთხოვნა რომელიც ესაზღვრება ტექსტს. მას შემდეგ, რაც ჩარჩო დაასრულებს აპლიკაციას, თქვენ განაგრძობთ დარეკვას დეტექსტჰანდლერი ფუნქცია. თქვენ ასევე გსურთ იცოდეთ ზუსტი ჩარჩო, რომელიც იქნა აღიარებული, დააყენეთ იგი მოხსენების სიმბოლოების ყუთები= მართალია.
ამის შემდეგ, განსაზღვრეთ დაკვირვებები, რომლებიც შეიცავს ყველა შედეგს VNdetecttextrectangles მოთხოვნადაიმახსოვრე, რომ გამომავალ კამერას დაამატე Vision. ვინაიდან Vision ავლენს მაღალი დონის API-ებს, მასთან მუშაობა უსაფრთხოა.
ფუნქცია ამოწმებს თუ Cmsamplebuffer არსებობს და PutOut Avcaptureoutput. შემდეგ თქვენ უნდა გააგრძელოთ ერთი ცვლადის შექმნა მოთხოვნები როგორც 1 ლექსიკონის ტიპი VNimageoption. The VNmage ვარიანტი არის სტრუქტურის ტიპი, რომელიც შეიცავს თვისებებს და მონაცემებს კამერიდან. შემდეგ თქვენ უნდა შექმნათ VNimagerequesthandler და შეასრულეთ ტექსტის მოთხოვნა.
აღმოჩენილი ტექსტის ირგვლივ საზღვრების დახატვა
თქვენ შეგიძლიათ დაიწყოთ ორი უჯრის დახატვის ჩარჩოს არსებობით, ერთი ყოველი ასოსთვის, რომელიც ამოიცნობს და მეორე ყოველი სიტყვისთვის. ცხრილები არის ყველა სიმბოლოს ველის კომბინაცია, რომელსაც თქვენი მოთხოვნა იპოვის.
- განსაზღვრეთ თქვენი ხედვის წერტილები, რათა დაგეხმაროთ უჯრების განლაგებაში.
- ამის შემდეგ შექმენით ა კელეიr; გამოყენება VNმართკუთხედის დაკვირვება თქვენი შეზღუდვების დასადგენად, რაც ამარტივებს ყუთის მოხაზვის პროცესს.
ახლა თქვენ გაქვთ ყველა თქვენი ფუნქცია ჩამოყალიბებული.
თქვენი წერტილების დასაკავშირებლად, დაიწყეთ თქვენი კოდის ასინქრონულად გაშვებით. შემდეგ თქვენ უნდა შეამოწმოთ არის თუ არა რეგიონი თქვენს შედეგებში VNTextდაკვირვება.
ახლა შეგიძლიათ გამოიძახოთ თქვენი ფუნქცია, რომელიც დახატავს ყუთს ზონაში. შეამოწმეთ არის თუ არა სიმბოლოთა ველები რეგიონში, შემდეგ დარეკეთ სერვისს, რომელსაც მოაქვს ყუთი თითოეული ასოს გარშემო.
ამის შემდეგ შექმენით ცვლადი RequestOptions. ახლა შეგიძლიათ შექმნათ ა VNImageRequestHandler ობიექტი და შეასრულეთ თქვენ მიერ შექმნილი ტექსტის მოთხოვნა.
დაბოლოს, ბოლო ნაბიჯი არის თქვენი ხედვის კოდის გაშვება პირდაპირი სტრიმინგით. თქვენ უნდა აიღოთ ვიდეო გამომავალი და გადაიყვანოთ იგი Cmsamplebuffer.
დამატებითი რჩევები
- ყოველთვის სცადეთ სურათის ამოჭრა და მხოლოდ თქვენთვის საჭირო განყოფილების დამუშავება. ეს შეამცირებს დამუშავების დროს და მეხსიერების კვალს
- ჩართეთ ენის შესწორება, როდესაც საქმე ეხება არარიცხოვან სიმბოლოებს, შემდეგ გამორთეთ იგი ციფრულ სიმბოლოსთან მუშაობისას
- ჩართეთ აღიარებული რიცხვების სტრიქონების ვალიდაცია სიზუსტის დასადასტურებლად და მომხმარებლისთვის ყალბი მნიშვნელობის ჩვენების აღმოსაფხვრელად.
- დოკუმენტის კამერის კონტროლერი საუკეთესო კომპანიონია ტექსტის ამოცნობისთვის, რადგან გამოსახულების ხარისხი მნიშვნელოვან როლს ასრულებს ტექსტის ამოცნობაში.
- განიხილეთ ტექსტის მინიმალური სიმაღლის დაყენება შესრულების გასაზრდელად.
Vision-ით თქვენ გაქვთ ყველაფერი, რაც გჭირდებათ ტექსტის ამოცნობისთვის. ვინაიდან Vision მარტივი გამოსაყენებელია და დანერგვას მცირე დრო სჭირდება, მისი გამოყენება თითქმის Legos-თან თამაშს უტოლდება. სცადეთ თქვენი აპლიკაციის ტესტირება სხვადასხვა ობიექტებზე, შრიფტებზე, განათებაზე და ზომებზე. თქვენ ასევე შეგიძლიათ შთაბეჭდილება მოახდინოთ Vision-ის Core ML-ის კომბინაციით.