객체 추적(Object Tracking)이란 영상의 각 프레임에서 인식된 객체들 중 동일한 객체가 서로 연관되어 있음을 판단하여 각 객체의 궤적(Trajectory)를 얻어내는 방법이다. 객체 인식(Object Detection)을 통해서는 하나의 프레임에서의 공간상의 정보만을 얻을 수 있지만 객체 추적을 통해서는 연속된 여러 프레임에서 나타나는 시간 흐름에 따라 변하는 정보까지도 얻을 수 있으므로 훨씬 더 다양한 응용을 가능하게 해준다.
OpenCV는 실시간 비전 프로세싱을 위한 라이브러리로 C++로 작성되었다. OpenCV는 잘 알려진 거의 모든 비전 알고리즘이 포함되어 있기 때문에 각 알고리즘을 일일히 구현할 필요가 없는데다 성능도 뛰어나기 때문에 비전 관련 프로그램을 만드는데 있어 필수적이라고 할 수 있다.
Xcode 11.0 부터 iOS 프로젝트를 생성하는 경우 변경점이 하나 생겼다. Xcode에서 자동으로 생성해주는 파일에 SceneDelegate.swift라는 파일이 추가된 것이다. Scene이라는 단어가 포함되어 있기 때문에 화면에 보여지는 무언가와 관련된 것임은 짐작할 수 있는데 과연 SceneDelegate는 무엇인지, 어떻게 사용해야 하는지 알아보았다.
Face Alignment는 얼굴 관련 알고리즘 및 머신러닝에서 필요로 하는 전처리 방법으로 원본 이미지에 포함된 얼굴의 각도, 크기, 비율 등에 관계 없이 표준화된 크기 및 눈, 코, 입 위치를 갖는 얼굴 이미지가 되도록 이미지를 Affine Transfrom 및 Crop 하는 것을 말한다.
이번 WWDC19에서 iOS의 UIKit과 MacOS의 AppKit을 대체할 새로운 UI 개발 프레임워크인 SwiftUI가 등장하였다. 애플은 7개나 되는 세션을 SwiftUI와 관련된 내용으로 채운 만큼 이번 WWDC19에서 가장 주요한 내용 중 하나로 포지셔닝하였다.
최근 iOS 프레임워크에서의 MVVM 아키텍처 구현은 RxSwift를 이용한 데이터 바인딩이 표준으로 자리잡는 추세로 보인다. RxSwift는 MVVM과 좋은 궁합으로 시너지를 창출하였지만 좋지 못한 ViewModel 패턴을 양산하고 있는데 대표적으로 Subject의 남용이다.
iOS 개발에 입문할 때 보통 Xcode의 Interface Builder 상에서 Autolayout을 이용한 UI 요소의 배치 방법을 배우게 될 것이다. 간단한 프로젝트에서는 이 방법으로 특별히 문제가 없겠지만 규모가 크고 여러 개발자가 협업하는 프로젝트에서는 어떤 방식으로 UI를 구현할 것인지는 중요한 의사결정 사항 중 하나이다.