Skip to content

Instantly share code, notes, and snippets.

@dimpler03
dimpler03 / EmotionDetectFile1.txt
Last active May 25, 2018 05:13
Detecting face rects using CIDetector
func detectFaceIn(imageBuffer: CVImageBuffer) {
let image = CIImage(cvImageBuffer: imageBuffer)
let accuracy = [CIDetectorAccuracy: CIDetectorAccuracyHigh]
let faceDetector = CIDetector(ofType: CIDetectorTypeFace, context: nil, options: accuracy)
let faces = faceDetector?.features(in: image)
let imageSize = CVImageBufferGetDisplaySize(imageBuffer)
var actualRect = CGRect()
for face in faces! {
@dimpler03
dimpler03 / ObjcWrapperFile
Created May 25, 2018 05:18
Prepare shape predictor
@property (assign) BOOL prepared;
@implementation MLWrapper {
dlib::shape_predictor sp;
}
- (void)prepare {
NSString *modelFileName = [[NSBundle mainBundle] pathForResource:@"shape_predictor_68_face_landmarks" ofType:@"dat"];
std::string modelFileNameCString = [modelFileName UTF8String];
@dimpler03
dimpler03 / ObjcWrapperFile
Created May 25, 2018 05:25
Compute face points using dlib image
- (NSMutableArray *)doWorkOnSampleBuffer:(UIImage *)image inRects:(NSArray<NSValue *> *)rects {
dlib::array2d<dlib::bgr_pixel> dlibImage;
// convert uiimage to dlib image
CGFloat width = image.size.width, height = image.size.height;
CGContextRef context;
size_t pixelBits = CGImageGetBitsPerPixel(image.CGImage);
size_t pixelBytes = pixelBits/8;