이미지를 익명화하는 프로그램 – Vision + CoreImage
Vision을 이용한 얼굴 인식의 보다 상세한 예제로 자동 익명화 프로그램을 작성해보았다. 이 프로그램은 터미널에서 이미지 파일의 이름을 제시하면 해당 이미지에서 사람의 얼굴을 찾아, 해당 영역을 모자이크 처리한 PNG 파일을 생성한다.
이 프로그램은 크게 세 개의 함수로 구성된다.
detectFaces(in: completionHandler:)
– 주어진 이미지(CGImage
)에서 얼굴을 찾아낸다. 얼굴을 찾으면 해당 영역을 모자이크 처리한 이미지를 만들고, 처리된 이미지를 콜백 클로저에 전달해서 사용하도록 한다.createPixellatedImage(from:CGImage rects:[CGRect])
– 이미지와 정규화된 CGRect 들을 받아서 해당 영역을 모자이크 처리한 이미지를 합성하고, 다시 CGImage 형식으로 만들어 리턴한다.main()
– 명령줄 인자로 전달된 정보를 통해 이미지 파일을 열고 1, 2의 함수를 사용해서 얼굴만 모자이크 처리한 이미지를 만들어 PNG 파일로 저장한다.