実際にやってみました。
おそらく検知結果の表示の感覚が速すぎて長いバイブレーションを使っていては間に合わないので少し変えていますが、検知結果にバウンディングボックスが含まれていた場合、すなわちカメラ入力の中でYOLOモデルが検出できるような物体があった場合にバイブレーションを短く鳴らすプログラムが以下になります。
ViewController
の頭で
Swift
1import AudioToolbox
とした上で
Swift
1Class ViewController: UIViewController {
2 // (前略)
3
4 func showOnMainThread(_ boundingBoxes: [YOLO.Prediction], _ elapsed:
5 CFTimeInterval) {
6 if drawBoundingBoxes {
7
8 DispatchQueue.main.async {
9 // For debugging, to make sure the resized CVPixelBuffer is correct.
10 //var debugImage: CGImage?
11 //VTCreateCGImageFromCVPixelBuffer(resizedPixelBuffer, nil, &debugImage)
12 //self.debugImageView.image = UIImage(cgImage: debugImage!)
13
14 self.show(predictions: boundingBoxes)
15
16 let fps = self.measureFPS()
17 self.timeLabel.text = String(format: "Elapsed %.5f seconds - %.2f FPS", elapsed, fps)
18 if boundingBoxes.count > 0 {
19 AudioServicesPlaySystemSound(1519)
20 }
21 }
22 }
23 }
24
25 // (後略)
26}
とします。ポイントは最後の方のif boundingBoxes.count > 0
のブロックの中です。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/18 00:57
2020/01/07 04:57