iosで笑顔を認識する
DESCRIPTION
TRANSCRIPT
![Page 1: iOSで笑顔を認識する](https://reader037.vdocuments.site/reader037/viewer/2022100216/54b6f2084a795902588b4639/html5/thumbnails/1.jpg)
iOSで笑顔を認識する@koogawa
![Page 2: iOSで笑顔を認識する](https://reader037.vdocuments.site/reader037/viewer/2022100216/54b6f2084a795902588b4639/html5/thumbnails/2.jpg)
•小川航佑 Kosuke Ogawa • @koogawa • 趣味と仕事の両方でiOSアプリを開発
![Page 3: iOSで笑顔を認識する](https://reader037.vdocuments.site/reader037/viewer/2022100216/54b6f2084a795902588b4639/html5/thumbnails/3.jpg)
• CoreImageを使います • iOS 5から顔認識が使えるようになった • iOS 6から動物認識もできる • iOS 7から笑顔認識もできる
![Page 4: iOSで笑顔を認識する](https://reader037.vdocuments.site/reader037/viewer/2022100216/54b6f2084a795902588b4639/html5/thumbnails/4.jpg)
やりかた
![Page 5: iOSで笑顔を認識する](https://reader037.vdocuments.site/reader037/viewer/2022100216/54b6f2084a795902588b4639/html5/thumbnails/5.jpg)
精度を指定
• HighとLowを選べる • High:精度は高いが、パフォーマンスは悪い • Low:精度は低いが、パフォーマンスは良い
NSDictionary *options = [NSDictionary dictionaryWithObject:CIDetectorAccuracyHigh forKey:CIDetectorAccuracy];
![Page 6: iOSで笑顔を認識する](https://reader037.vdocuments.site/reader037/viewer/2022100216/54b6f2084a795902588b4639/html5/thumbnails/6.jpg)
顔認識用のインスタンス生成
•顔認識なのでCIDetectorTypeFaceを指定
• 今のところCIDetectorTypeFace以外は設定できない
CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeFace context:nil options:options];
![Page 7: iOSで笑顔を認識する](https://reader037.vdocuments.site/reader037/viewer/2022100216/54b6f2084a795902588b4639/html5/thumbnails/7.jpg)
UIImageをCIImageに変換
•検出はCIImageクラスでないとできない
•画像の向きに注意する(回転してると正しく認識できない)
CIImage *ciImage = [[CIImage alloc] initWithCGImage:originalImage.CGImage];
![Page 8: iOSで笑顔を認識する](https://reader037.vdocuments.site/reader037/viewer/2022100216/54b6f2084a795902588b4639/html5/thumbnails/8.jpg)
笑顔認識を有効にする
NSDictionary *options = @{ CIDetectorSmile: @(YES), };
![Page 9: iOSで笑顔を認識する](https://reader037.vdocuments.site/reader037/viewer/2022100216/54b6f2084a795902588b4639/html5/thumbnails/9.jpg)
顔認識実行
•認識できた顔の数だけ返ってくる • 笑っていると判定されるとhasSmileがYESになる
NSArray *features = [detector featuresInImage:image options:options]; for (CIFaceFeature *feature in features) { if (feature.hasSmile) { // 笑ってる! } }