Vision Framework - Building on Core ML

What You Can Do with Vision

  1. Face Detection
    • Small Faces
    • Strong Profiles
    • Partially Occluded
    • Hats and Glasses
    • Face Landmarks
  2. Image Registration
  3. Rectangle Detection
  4. Barcode Detection
  5. Text Detection
  6. Object Tracking
    • faces
    • rectangles
    • general templates
  7. Integration with Core ML

On Device vs. Cloud

  1. Privacy
    • Images and video stay on device
  2. Cost
    • No usage fees
    • No data transfer
  3. Real-time use cases
    • No latency, fast execution

Vision Concepts

  1. Analyzing an Image


    2dd7f001-33d3-4fc8-860a-ecbff3b0967c.png

    36d6f7e2-e797-49fd-badf-39c9927cf1e8.png
  2. Tracking in a Sequence


    d9d9bd9a-c67a-4fa4-97c1-4dcc51ef5be4.png
  3. Image Request Handler
    • For interactive exploration of an image
    • Holds on to the image for its lifecycle
    • Allows optimization of various requests performed on an image
  4. Sequence Request Handler
    • For anything that looks at images in a sequence like tracking
    • Does not optimize for multiple requests on an image
  5. Putting It into Code
// Create request
let faceDetectionRequest = VNDetectFaceRectanglesRequest()

 // Create request handle
let myRequestHandler = (url: fileURL, options: [:]) 

// send the requests to the request handler
myRequestHandler.perform([faceDetectionRequest])

// Do we have a face
for observation in faceDetectionRequest.results as! [VNFaceObservation] { /// do something
}
 // Create a sequence request handler
let requestHandler = VNSequenceRequestHandler()

// Start the tracking with an observation
let observations = detectionRequest.results  as! [VNDetectedObjectObservation]
let objectsToTrack = observations.map { VNTrackObjectRequest(detectedObjectObservation: $0) }

// Run the requests
requestHandler.perform(objectsToTrack, on: pixelBuffer)

// Lets look at the results
for request in objectsToTrack
for observation in request.results as! [VNDetectedObjectObservation]

Which Image Type Is Right for Me?

  1. Vision supports various image types
    • CVPixelBufferRef: VideoDataOut
    • CGImageRef: UIImage
    • CIImage: Core Image
    • NSURL: disk
    • NSData: web
  2. The image type to choose depends on where the image comes from
  3. You shouldn’t have to pre-scale the image
  4. Make sure to pass in the EXIF orientation of the image

What Am I Going to Do with the Image?

  1. Interactively explore the image
    • Use VNImageRequestHandler and hold onto it
    • Remember that the input image is immutable
  2. Tracking an observation
    • Use VNSequenceRequestHandler
    • Tracking state is kept in the VNSequenceRequestHandler
    • Lifecycle of images is not tied to the life of the VNSequenceRequestHandler

What Performance Do I Need or Want?

Vision tasks can be time consuming and processing intensive

  • Dispatch your work on a queue with appropriate QOS
  • Use the completion handler to work with the results
  • Completion handler is called on the same queue as the request
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容

  • 那次去苏州,到时已是傍晚。先找住处,宿于“如家”酒店,放下行李,到附近的家乐福超市去购物。第一次到苏州,走进...
    松茯苓阅读 248评论 0 0
  • 当我发现我已到了该成家的年纪 但我的女人呢,但我的女人呢 当我习惯把实话都变成了童话 那我的单纯呢,那我的单纯呢 ...
    一支笔的陪伴阅读 724评论 0 5
  • 17岁那年,暗恋五年的男生答应了情人一起节去看电影,结束的时候,他说,“我都知道,我们在一起吧。”灯还没亮起,光线...
    神田优阅读 478评论 0 0
  • 多少次轮回就有多少次伤悲! --题记 看着一片片飘落的金叶,再伟岸挺拔的古树也禁不住伤悲…… 不断地祈祷,不断地期...
    鹤洺阅读 161评论 6 6