첫째주
insightface recognition arcface_mxnet 모델 학습시키는 것을 서버에서 실행해보았습니다.
도커 환경 설치부터 도커 내에서 gpu를 사용하고, 볼륨 연결과 이미지를 받고 컨테이너를 실행시켜보는 등 기본적인 것들을 실행해보며 알 수 있었습니다.
둘째주
기능을 붙이려고 하는 사이트에 대한 정보를 간단히 공유하고
미디어파이프를 사용하기 위한 기능을 확실히 하고, 미디어파이프 스터디를 해보는 것으로 마무리지었습니다.
셋째주
저번주 회의 이후에는 디버깅 연결해보고, face_detection 관련 소스를 보았습니다.
간단한 진행순서로는 Input video 입력받고 > detection 하고 > overlay 해서 output video 에 씌워 보여주었습니다.
구조는 //mediapipe/examples/desktop/face_detection 하위에 BUILD 파일에 .cc 와 .pbtxt 파일 경로를 입력합니다.
.cc 는 //mediapipe/examples/desktop/face_detection와 같은 레벨에 있는 공용으로 쓸 수 있는 메인함수였고,
.pbtxt 는 //mediapipe/graphs/face_detection 하위의 .pbtxt 파일이었으며 파일 안에는 노드들이 선언되어 있고, .pbtxt와 같은 레벨의 BUILD 파일에는 이름과 노드에서 사용되는 calculator 들의 경로가 들어있었습니다.
calculator는 //mediapipe/calculators 하위에 위치하며, .cc, .proto 로 이루어지고 _text.cc 에는 해당하는 테스트 코드가 들어있었습니다.
얼굴 여부만 결과로 반환하여 태깅을 해주는 것이기에
- 기존 미디어파이프에서 쓰는 face_detection 말고 다른 모델을 쓰는 것이 장점이 있는가?
- 차라리 python 으로 mediapipe를 import 해서 구현하고, api 호출하도록 하는 게 제 수준에서 구현할 수 있는 확실한 방법이지 않을까 생각이 들었습니다.
모델 바꿔끼우는 곳:
face_detection_short_range_cpu.pbtxt 에서 InferenceCalculator
.tflite 확장자로 arcface는 .onnx 로 다운로드 받아져서 converting 필요(onnx->tf->tflite)
https://github.com/sithu31296/PyTorch-ONNX-TFLite#onnx-to-tf
구조에 따라 BUILD 파일과 .cc는 공용파일을 쓰고, .pbtxt 는 따로 작성해야할 것 같았습니다.
모델을 바꿔 끼운다면 detection 쪽 세부 node도 (거의 기존 코드를 사용하지만) 모델 경로 부분만 다른 점이고 같은 내용의 pbtxt를 작성해야할 것 같습니다. .tflite 파일이 필요하기에 더 찾아보겠지만 찾지 못할 경우 converting 작업도 진행하면 될 것 같습니다.
기존 detection은 영상을 입력으로 받아 빨간색 네모를 덧입혀 출력하였는데,
저희의 경우 출력 부분을 어떻게 처리해야할지 조금 의문이 들었습니다.
넷째주
기존 모델을 이용하고, 돌아가는 것 이해가 되면 python 으로 작업.
-> 영상 대신 이미지로 입력받을 수 있는지 >>> 가능
-> 출력을 랜더링 대신 bounding box, features(512) 로 뽑을 수 있는지 >>>
bounding box는 face detection 에서 뽑을 수 있고,
bounding box(xmin, ymin, width, height), 6개의 keypoints(왼쪽 눈, 오른쪽 눈, 코끝, 입가운데, 양쪽 귀의 한 부분)
features(512)는 arcface에 해당하는 것이고, 여기는 face mesh 에서 468(478 with iris) 개의 keypoint 로 뽑을 수 있음.
face recognition 에서 필요한 feature 값 과는 다른 것이고,
https://pypi.org/project/arcface/ 를 import 해서 쓰는 방법은 어떤지..
'개발 > mediapipe' 카테고리의 다른 글
[python] face landmarks, keypoints, roi (0) | 2022.05.26 |
---|---|
mac intel 에서 xcode로 opencv 설치 후 실행하기 (0) | 2022.04.23 |
m1 에서 lldb 로 실행시키기 (0) | 2022.04.23 |
Framework Concepts (0) | 2022.03.30 |
Framework Concepts - Real-time Streams (0) | 2022.03.22 |