C로 작성된 함수를 파이썬에서 사용하기

표준 파이썬 해석기는 C로 만들어져 있다. 그리고 C에는 동적 라이브러리를 링크하여 사용할 수 있는 기능이 마련되어 있다. 따라서 표준 파이썬 해석기를 만드는 사람들도 실행시간에 C로 만들어진 동적 라이브러리를 링크하여 사용할 수 있을 것이라는 생각을 당연히 했을 것이고, 그 결과 ctypes 라는 라이브러리가 탑재되어 있다. 

C로 작성된 함수를 파이썬에서 사용하기 더보기

오일러 프로젝트 73

오일러 프로젝트 73번 문제는 기약진분수에 대한 문제이다. 이전 두 문제에서 오일러 피함수와 관계한 기약 진분수의 문제는 악몽과 같은 수행 시간을 보였는데, 이 문제는 그나마 스케일이 조금 작아서 그다지 어렵지 않다.

오일러 프로젝트 73 더보기

Vision을 이용한 얼굴 인식 – 고급편

Vision을 이용해서 이미지 속에서 얼굴을 인식하는 방법을 살펴본 바 있는데, 당시 글에서 VNDetectFaceLandmarksRequest 를 사용했었다. 사실 얼굴이 들어있는 영역만 찾기 위해서는 VNDetectFaceRectsRequest 를 사용하는 것으로도 충분한데, face landmarks를 찾는다는 것은 얼굴의 주요 요소들 – 눈, 코, 입, 윤곽선 등-을 찾아낸다는 의미이다. 

이 글에서는 VNDetectFaceLandmarksRequest를 사용해서 실제로 얼굴의 각 요소를 추적하는 예제를 소개해 보겠다. 

Vision을 이용한 얼굴 인식 – 고급편 더보기

이미지를 익명화하는 프로그램 – Vision + CoreImage

Vision을 이용한 얼굴 인식의 보다 상세한 예제로 자동 익명화 프로그램을 작성해보았다. 이 프로그램은 터미널에서 이미지 파일의 이름을 제시하면 해당 이미지에서 사람의 얼굴을 찾아, 해당 영역을 모자이크 처리한 PNG 파일을 생성한다.

이 프로그램은 크게 세 개의 함수로 구성된다.

  1. detectFaces(in: completionHandler:) – 주어진 이미지(CIImage)에서 얼굴을 찾아낸다.
  2. createAnonymizedImage(from: boundingBoxes) – 주어진 이미지와 사각형영역을 사용해서 해당 영역이 모자이크처리된 이미지를 합성한다.
  3. main() – 명령줄 인자로 전달된 정보를 통해 이미지 파일을 열고 1, 2의 함수를 사용해서 얼굴만 모자이크 처리한 이미지를 만들어 PNG 파일로 저장한다.
이미지를 익명화하는 프로그램 – Vision + CoreImage 더보기

Vision을 이용한 이미지 인식

Vision을 이용한 얼굴인식이나 QRCode 인식에 대해서 살펴보았는데, 사실 이러한 기능들은 정확도면에서 조금 뒤떨어질 수는 있지만 코어 이미지에서도 어느 정도 지원했었던 기능이다. 대신에 Vision은 CoreML과 결합하여 이미지 내의 오브젝트를 인식하고 그 이름을 추출할 수 있는 기능을 제공한다.  (고양이 사진을 보고 ‘고양이’를 알아내는 바로 그 기능이다.)

이번 시간에는 Vision + CoreML을 이용한 이미지 내 사물 인식 기능을 어떻게 구현할 수 있는지 알아보자.

Vision을 이용한 이미지 인식 더보기