1 사람 얼굴인식1

bnosac GitHub 저장소에서 이미지 딥러닝 처리에 필요한 팩키지를 설치한다. 맥OS에서 설치할 때 발생되는 문제점 OpenMP문제는 R 딥러닝 환경설정: openmp를 참조한다.

devtools::install_github("bnosac/image",
                         subdir = "image.dlib",
                         build_vignettes = TRUE)

devtools::install_github("bnosac/image",
                         subdir = "image.libfacedetection",
                         build_vignettes = TRUE)

1.1 사진 이미지 살펴보기

magick 팩키지로 사진을 일별한다.

library(tidyverse)
library(magick)
library(image.libfacedetection)

test_image <- magick::image_read("fig/people.jpg")

test_image <- test_image %>% 
  image_resize("700")

test_image

1.2 얼굴 추출

image_detect_faces() 함수로 사진속 얼굴을 식별한다.

test_face <- image_detect_faces(test_image)

print(test_face)
$nr
[1] 14

$detections
     x   y width height confidence landmark1_x landmark1_y landmark2_x
1  487 119    26     33         99         492         131         504
2  290  74    24     33         99         298          86         309
3  410  95    25     30         99         416         106         427
4  164  83    27     35         99         171          95         183
5  449 108    24     30         99         456         118         467
6  220  85    26     31         99         230          95         241
7  260  90    26     35         99         271         102         282
8  118  76    27     35         99         126          89         139
9   66 106    28     36         99          74         120          88
10 326 100    25     32         98         334         112         346
11 561 112    27     35         98         566         125         579
12 615  94    27     36         98         620         108         633
13 526  89    24     32         98         532         100         543
14 367  94    24     31         92         375         105         386
   landmark2_y landmark3_x landmark3_y landmark4_x landmark4_y landmark5_x
1          131         496         137         493         142         502
2           86         303          92         298          97         307
3          106         420         112         416         117         426
4           95         177         101         172         108         182
5          119         462         124         457         129         466
6           97         236         102         229         106         238
7          105         277         110         269         114         278
8           90         133          96         126         101         137
9          119          82         126          76         132          88
10         112         340         118         335         124         345
11         125         572         133         568         139         579
12         109         625         116         621         120         632
13         101         537         105         532         111         541
14         104         383         109         379         116         388
   landmark5_y
1          143
2           97
3          117
4          108
5          130
6          108
7          116
8          102
9          131
10         124
11         138
12         121
13         112
14         115

attr(,"class")
[1] "libfacedetection"

1.3 추출결과 확인

원본 사진과 인식된 얼굴을 겹쳐 추출결과를 시각적으로 확인한다.

plot(test_face, test_image,
    border = "red",
    lwd = 5,
    col = "blue")