본문으로 건너뛰기

© 2026 Molayo

Zenn헤드라인2026. 06. 02. 15:41

데이터셋용 얼굴 이미지를 즉시 준비하고 싶다면: iPhone 사진에서 얼굴만 몇 초 만에 100장 추출하기

요약

SemanticImage 라이브러리를 사용하여 iPhone 사진 라이브러리에서 얼굴 이미지를 고속으로 추출하는 방법을 소개합니다. 머신러닝 데이터셋 구축 시 수동 작업의 번거로움을 줄이고 Swift를 통해 효율적으로 이미지를 처리할 수 있습니다.

핵심 포인트

  • SemanticImage 라이브러리로 얼굴 및 전신 이미지 고속 추출 가능
  • SwiftPackageManager를 통한 간편한 설치 및 활용
  • iPhone 11 기준 100장 처리 시 약 14초 소요
  • 대량 처리 시 메모리 관리를 위해 분할 처리 권장

#iPhone의 포토 라이브러리에서 얼굴만 추출하는 방법입니다

#데이터셋을 준비하는 것은 힘들다

예를 들어 머신러닝 (Machine Learning) 등에서 데이터셋으로서 얼굴 사진이나 인체 사진이 수천 장 필요한 경우가 있습니다.

하지만 수동으로 얼굴 사진을 추출하는 것은 매우 힘든 일입니다.

#가지고 있는 iPhone 사진을 사용할 수 있다면 편리

대부분의 사람의 iPhone에는 사람이 찍힌 사진이 수백~수천 장은 있을 것입니다.

그 사진들에서 얼굴만 추출할 수 있다면, 신속한 데이터셋 제작에 활용할 수 있을 것 같습니다.

#SemanticImage로 iPhone 사진을 고속 처리할 수 있다

SemanticImage라는 라이브러리를 사용하면, 고속으로 사진에서 얼굴만 잘라낼 수 있습니다.

#절차

SwiftPackageManager로 SemanticImage를 설치합니다.

let semanticImage = SemanticImage()

PhPicker로 iPhone의 포토 라이브러리에서 여러 장의 사진을 선택합니다.

Person으로 검색하면 사람 이미지만 잘라내기 작업에 걸 수 있어 편리합니다.

var configuration = PHPickerConfiguration()
configuration.selectionLimit = 0 // 선택할 사진의 수를 무제한으로 설정
configuration.filter = .images
...

취득한 사진을 SemanticImage의 얼굴 잘라내기 기능에 적용합니다.

func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
picker.dismiss(animated: true)
for result in results { // 포토 라이브러리에서 취득한 사진을 순차적으로 처리
...

이렇게 하면 잘라낸 얼굴 이미지가 포토 라이브러리에 저장됩니다.

100장 정도라면 14초 만에 처리가 가능하며, 메모리(Memory)와 CPU 사용량도 안전합니다 (iPhone 11).

(수천 장을 한꺼번에 처리하면 이미지 데이터를 모두 유지하지 못해 메모리가 초과되므로, 수백 장씩 나누어 처리하는 것이 좋아 보입니다)

첨부된 이미지는 전부 마스킹(Masking) 처리를 해서 데이터로서의 의미는 없지만, 저자가 수줍음이 많아서 죄송합니다.

#전신 데이터나 개, 고양이 데이터에도

SemanticImage는 전신이나 반려동물을 검출하여 잘라내는 기능도 있으므로, 다양한 데이터 제작에 활용할 수 있습니다.

🐣

프리랜서 엔지니어입니다.

업무 상담은 이쪽으로

rockyshikoku@gmail.com

Core ML이나 ARKit을 사용한 앱을 만들고 있습니다.

머신러닝 (Machine Learning) / AR 관련 정보를 발신하고 있습니다.

Discussion

AI 자동 생성 콘텐츠

본 콘텐츠는 Zenn ML의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0