DOI QR코드

DOI QR Code

Camera App of Smartphone with Multi-Focus Shooting and Focus Post-processing Functions

다초점 촬영과 초점후처리 기능을 가진 스마트폰 카메라 앱

  • 박채원 (한성대학교 컴퓨터공학부) ;
  • 김경미 (한성대학교 컴퓨터공학부) ;
  • 유송연 (한성대학교 컴퓨터공학부) ;
  • 김유진 (한성대학교 컴퓨터공학부) ;
  • 황기태 (한성대학교 컴퓨터공학부) ;
  • 정인환 (한성대학교 컴퓨터공학부) ;
  • 이재문 (한성대학교 컴퓨터공학부)
  • Received : 2023.10.27
  • Accepted : 2024.02.09
  • Published : 2024.02.29

Abstract

Currently, it is almost impossible to move the focus of a previously taken photo to a different location. This paper challenges a technology that can move the focus of a captured photo to another location after shooting. To achieve this goal, this paper proposed and implemented a method for taking photos with various focuses at the moment the camera took pictures and storing them in a single JPEG file to extract photos focused on the user's preferred location. In this paper, two methods are implemented: taking various photos by quickly moving the focal length of the lens from close to far away, and taking various photos focused on each object by recognizing objects in the camera viewfinder. Various photos taken are stored in a single JPEG to maintain compatibility with traditional photo viewers. At this time, this JPEG file used the All-in-JPEG format proposed in previous research to store a variety of images. This paper verified its practicality by implementing these technologies in an Android app named OnePIC.

이미지 처리 기법을 통해 이미 촬영된 사진의 초점을 다른 곳으로 이동시키는 것은 현재까지 거의 불가능하다. 본 논문은 촬영된 사진 이미지를 사후에 다른 곳으로 초점을 이동시킬 수 있는 기술에 도전하였다. 본 논문은 이 목적을 달성하기 위해 카메라가 사진을 촬영할 당시부터 여러 초점을 가진 사진을 촬영하여 한 장의 JPEG 파일 속에 저장해두었다가, 사용자가 원하는 위치에 초점을 맞춘 사진을 끌어내는 방식을 제안하고 구현하였다. 본 논문은 가까운 곳부터 먼 곳까지 렌즈의 초점 거리를 빠르게 이동시키면서 여러 사진을 촬영하는 기법과 카메라의 뷰파인더에 보이는 객체들을 인식하여 객체별로 초점이 맞추어진 여러 사진을 촬영하는 2가지 기법을 구현하였다. 촬영된 여러 사진들은 한 장의 JPEG에 저장하여 기존의 사진 뷰어들과 호환성을 유지하도록 하였다. 이 때 이 JPEG 파일은 여러 이미지를 저장할 수 있도록 이전의 연구에서 제안한 All-in-JPEG 형식을 활용하였다. 본 논문은 이 기술들을 OnePIC 이름의 안드로이드 앱으로 구현하여 실용성을 검증하였다.

Keywords

Ⅰ. 서론

사진을 통해 일상을 공유하는 다양한 SNS가 활성화되면서 언제 어디에서나 쉽게 촬영할 수 있는 스마트폰 카메라의 활용이 높아지고 있다. 최근에는 아이폰을 활용한 결혼식 스냅 사진 업체가 인기를 끄는 등 스마트폰 카메라의 상업성이 높아지고 있고[1], 스마트폰 카메라로부터 더 좋은 사진을 얻으려는 사용자들의 욕구가 커짐에 따라 카메라의 성능과 사진 편집 앱의 사용량이 자연스럽게 증가하게 되었다[2].

한편 전문가이든 일반 사용자이든 촬영 후 사진의 초점이 원하는 곳에 맞춰져 있지 않은 경우, 다시 촬영하지 않고 이미 촬영된 사진에서 초점을 다른 곳으로 이동할 수 없다.

이러한 문제점들을 해결하기 위해 흔들린 사진을 복구하거나 사진에서 사람을 지우는 등과 같이 많은 이미지 처리 기술이 제안되어 왔지만[3,4,5], 소프트웨어 기법으로 초점이 맞춰지지 않는 사진을 복구하는 기술은 없었다. 그 원인은 초점이 맞지 않는 사진 영역의 픽셀들은 실제 이미지 데이터를 가지고 있지 않기 때문에, 이들로 부터 온전한 픽셀들로 복구시키는 것은 거의 불가능에 가깝기 때문이다.

본 연구팀은 소프트웨어적인 접근으로 이 문제를 해결하는 것이 거의 불가능하다는 사실을 인지하여, 사진을 촬영할 당시 여러 군데 초점이 맞추어진 사진을 동시에 촬영하여 한 장의 사진으로 저장해두고 후에 사용자가 원하는 위치로 초점을 이동시켜 원하는 사진을 얻도록 하는 기술을 제안한다. 그리고 본 연구팀은 이 기술을 스마트폰 카메라 앱으로 설계 구현하였다.

본 연구에서 제안된 기술이 스마트폰 카메라 앱으로 실용화되기 위해서 다음과 같은 기술이 필요하다.

첫째, 사용자의 불편함을 줄이기 위해서 한 번의 촬영으로 다양한 초점을 맞춘 사진을 촬영할 수 있어야 한다. 둘째, 기술적인 면에서 카메라 렌즈 초점 거리 이동 시간을 매우 빠르게 구현해야 한다. 셋째, 실용적인 면에서 거리별로 혹은 카메라 렌즈에 비친 이미지로부터 감지된 객체별로 빠른 시간 내에 카메라 촬영이 가능해야만 한다. 넷째, 사용자의 편리를 위해 한 번에 촬영된 여러 장의 사진들은 한 장의 JPEG에 담겨야 한다. 이전 연구에서 이미 한 장의 JPEG 파일에 여러 장의 이미지를 담는 기술을 확보하였고 본 연구팀은 이를 All-in-JPEG 포맷[6]이라고 이름 붙였다. 다섯째, 활용적인 면에서 촬영 후에 사용자가 원하는 객체 또는 거리로 초점을 변경할 수 있는 편집 기술이 있어야 한다.

본 논문은 앞서 제안된 기술들을 OnePIC이라는 안드로이드 앱으로 구현하였다.

Ⅱ. 관련 연구

1. 멀티 이미지 저장 기법

지금까지 하나의 이미지 파일에 여러 이미지를 저장하는 시도가 있었다. MP(Multi-Picture Format)는 3D 입체 영상이나 큰 섬네일 이미지를 저장하기 위해 사용된다[7]. JPEG 파일의 EOI 마커 뒤에 서로 다른 이미지들을 모두 연결하여 저장하고 이들에 대한 위치 정보를 APP2 세그먼트에 저장한다.

Animated GIF(Graphics Interchange Format)는 웹에 게시되는 그래픽과 로고로 일반적으로 사용되고 애니메이션이 될 시간 정보와 함께 여러 이미지를 모두 저장한다[8]. 하지만 Animated GIF는 파일 크기와 색상 수의 제한이 있어 촬영된 사진 정보를 저장하기에는 심각한 한계가 있다.

All-in-JPEG는 본 연구팀이 이전 연구를 통해 제안한 기법으로 기존 JPEG 파일에 여러 개의 이미지를 저장할 수 있도록 JPEG 파일을 확장한 저장 기법이다. EOI 마커 뒤에 이미지들의 데이터를 저장하고 APP3 세그먼트에 저장된 이미지에 관한 메타 데이터와 시작 위치 정보 등을 저장한다. MP 기법과 유사하지만, 같은 카메라로 촬영된 이미지에 대해서는, 이미지들의 헤더가 같아 헤더를 제외하고 이미지만 추가한다. 본 논문은 다초점으로 촬영된 여러 이미지를 저장하기 위해 All-in-JPEG 기법을 사용한다.

2. 이미지 처리 기법

지금까지 흔들린 사진을 복구하거나 초점을 이동시키는 등의 이미지 처리 기법이 많이 연구되어왔다. Adobe는 이미지 내에서 흔들린 방향과 그 정도를 추적하여 흔들린 사진을 보정하는 기능을 제공한다[4]. 또한 포커싱 및 피사체의 심도를 조절하는 렌즈 흐림 효과 기능을 제공한다[5]. 이 기능은 이미지 내의 각 픽셀이 카메라에서 얼마나 떨어져 있는지에 대한 정보를 포함하는 깊이 맵기술을 활용하여 다양한 초점 효과를 줄 수 있다. 하지만 이 기법으로는 초점이 아예 맞지 않는 사진에 깊이 맵을 적용해도 초점을 살릴 수 없다.

3. 스마트폰 카메라 제어 기법

안드로이드는 카메라를 제어할 수 있는 CameraX API와 Camera2 API를 제공하며 개발자들은 두 API 중 하나를 사용하여 개발할 수 있다[9]. CameraX API는 개발자가 사용하기 편하게 만들어졌지만 연속 촬영의 기능이 없다. 그러므로 CameraX를 활용하여 연속 촬영을 구현하면 한 장씩 여러 번 촬영하기 때문에 시간이 오래 걸리는 문제점이 있다. 반면, Camera2 API는 활용하기 매우 어렵지만 연속 촬영 기능을 제공한다. 본 논문에서는 Camera2 API를 활용하고, 자체적으로 개발한 알고리즘을 활용하여 초점 거리를 순식간에 이동시킨다.

III. OnePIC 앱

1. OnePIC 앱 개요

본 논문에서 제안하고 구현한 OnePIC 앱의 소프트웨어는 그림 1과 같이 크게 4개의 모듈로 구성되며, 이들은 거리별, 객체별로 초점을 맞춰 촬영하는 카메라 모듈, 한장의 JPEG 파일 안에 여러 개의 이미지를 저장하거나 읽는 All-in-JPEG 모듈, All-in-JPEG 파일 내부의 이미지, 오디오, 텍스트를 보여주는 뷰어 모듈, 사용자가 원하는 곳으로 초점을 이동시키는 편집 모듈 등이다.

OTNBBE_2024_v24n1_189_f0001.png 이미지

그림 1. OnePIC 소프트웨어의 구조

Fig. 1. Software architecture for OnePIC

가. 카메라 모듈

카메라 모듈은 카메라 하드웨어 제어를 통해 객체별 다초점 촬영, 거리별 다초점 촬영을 한다. 객체별 다초점 촬영의 경우, Tensorflow Lite 라이브러리[10]의 객체 감지(Object Detection) 모델을 통해 객체를 감지하여 객체별로 초점이 맞춰진 여러 장의 사진을 촬영한다.

나. All-in-JPEG 모듈

카메라 모듈에서 촬영된 사진들을 All-in-JPEG 파일로 저장하거나 All-in-JPEG 내부의 이미지, 오디오, 텍스트를 삭제, 편집한다.

다. 뷰어 모듈

뷰어 모듈은 All-in-JPEG 파일을 분석한 후, 내부의 이미지, 오디오, 텍스트를 보여준다.

라. 편집 모듈

편집 모듈은 All-in-JPEG을 통해 사용자가 원하는 곳으로 초점을 변경하는 초점 후처리 기능을 제공한다. 또한, All-in-JPEG 내부에 저장된 이미지 중 가장 잘 나온 사진을 추천하는 등 다양한 기능을 제어한다.

2. 다초점 촬영

가. 거리별 다초점 촬영

거리별 다초점 촬영은 카메라 렌즈 초점 거리별로 초점을 맞춰 초점이 서로 다른 이미지들을 순식간에 촬영하는 고속 연사 촬영이다. 그림 2는 거리별 다초점 촬영의 작동 과정을 보여준다.

OTNBBE_2024_v24n1_189_f0002.png 이미지

그림 2. 거리별 다초점 촬영 과정

Fig. 2. Process of distance focus shooting

스마트폰 카메라로부터 가장 가까운 곳에 초점을 맞출 수 있는 초점 거리 N을 알아낸다. 가장 먼 곳에 초점을 맞출 수 있는 초점 거리는 0으로, 0부터 N 사이를 균등하게 나눠 m개의 초점 거리를 생성한다. 촬영을 시작하면, m개의 초점 거리에 따라 카메라의 렌즈를 순식간에 이동시키면서 m장의 이미지를 촬영한다. 촬영된 m장의 이미지들은 한 장의 All-in-JPEG 파일로 저장한다. 본 논문에서는 OnePIC 앱 구현 시 m을 10으로 설정하여 구현하였다.

나. 객체별 다초점 촬영

객체별 다초점 촬영은 카메라에 감지된 객체마다 초점을 맞춰 서로 다른 초점의 이미지들을 순식간에 촬영하는 고속 연사 촬영이다. 그림 3은 객체별 다초점 촬영의 작동 과정을 보여준다.

OTNBBE_2024_v24n1_189_f0003.png 이미지

그림 3. 객체별 다초점 촬영 과정

Fig. 3. Process of object focus shooting

카메라의 뷰파인더에 비친 이미지로부터 Tensorflow Lite 라이브러리를 통해 객체를 감지하여 객체별 위치 정보를 얻을 수 있다. 본 연구에서는 감지된 객체 중에서 정확도가 50% 이상인 상위 5개의 객체를 촬영 대상으로 설정했다. 사용자가 촬영 버튼을 누르면 객체별 위치 정보를 활용하여 촬영 대상으로 선정된 객체마다 초점이 맞춰진 이미지들을 순식간에 촬영한다. 촬영된 이미지들은 한 장의 All-in-JPEG 파일로 저장되고 APP3 세그먼트에 각 이미지에 초점이 맞춰진 객체의 위치 정보를 저장한다.

3. 다초점 이미지 저장

다초점 촬영으로 순식간에 촬영된 다초점 이미지들을 한 장의 JPEG 파일 안에 담기 위해 본 연구팀은 JPEG 포맷을 확장한 All-in-JPEG 포맷을 활용한다.

4. 초점 후처리

초점 후처리 기능은 All-in-JPEG 파일을 활용하여 사용자가 원하는 거리나 객체에 초점이 맞춰진 사진을 얻는 기능이다.

그림 4는 All-in-JPEG 파일에 저장된 이미지들과 APP3 세그먼트에 저장된 객체별 위치 정보를 통해, 사용자가 원하는 객체에 초점이 맞추어진 사진을 얻는 과정이다.

OTNBBE_2024_v24n1_189_f0004.png 이미지

그림 4. 초점 후처리 과정

Fig. 4. Process of focus post-processing

OnePIC 앱이 All-in-JPEG 파일을 분석하여 사진에 객체들의 위치를 보여주며, 사용자가 원하는 객체를 선택하면 선택한 좌표를 포함하는 객체의 위치 정보를 찾아내 원하는 객체에 초점이 잡힌 이미지를 출력한다. 거리별로 초점이 맞추어진 사진의 경우도 사용자가 원하는 초점 거리를 선택하게 하여 원하는 초점 거리의 깨끗한 사진을 제공한다.

IV. OnePIC 앱 구현

이 절에서는 코틀린 언어로 Android 13 버전의 Galaxy S22에서 구현된 OnePIC 앱의 시연을 통해 본 기술의 실행 가능성을 검증한다.

1. OnePIC 앱 시작

OnePIC 앱을 시작하면 그림 5(a)와 같이 OnePIC을 간단하게 소개하는 초기화면이 출력되고, 거리별, 객체별 다초점 촬영 메뉴가 그림 5(b)와 같이 출력된다.

OTNBBE_2024_v24n1_189_f0005.png 이미지

그림 5. OnePIC 앱 시작

Fig. 5. Start of OnePIC

2. 거리별 다초점 촬영과 원하는 사진 얻기

거리별 다초점 촬영을 시작하면 그림 6(a)와 같이 가까운 곳부터 먼 곳까지 초점을 맞춘 여러 장의 사진을 촬영하여 All-in-JPEG으로 저장한다. 촬영된 사진의 초점을 변경시키려면 OnePIC의 갤러리에서 파일을 선택하고 그림 6(b)와 같이 파일을 분석한다.

OTNBBE_2024_v24n1_189_f0006.png 이미지

그림 6. 거리별 다초점 촬영 및 분석

Fig. 6. Distance focus shooting and analyzing

그 후 사용자는 그림 7(a)와 그림 7(b)와 같이 슬라이드 바를 사용하여 원하는 거리에 초점이 맞춰진 사진을 얻을 수 있다.

OTNBBE_2024_v24n1_189_f0007.png 이미지

그림 7. 거리별 초점 후처리

Fig. 7. Distance focus post-processing

3. 객체별 다초점 촬영과 원하는 사진 얻기

객체별 다초점 촬영을 시작하면 그림 8(a)와 같이 객체별로 초점을 맞춘 여러 장의 사진을 촬영하여 All-in-JPEG으로 저장한다. 촬영된 사진의 초점을 원하는 객체로 변경시키려면 OnePIC의 갤러리에서 파일을 선택하고 그림 8(b)와 같이 파일을 분석한다.

OTNBBE_2024_v24n1_189_f0008.png 이미지

그림 8. 객체별 다초점 촬영 및 분석

Fig. 8. Object focus shooting and analyzing

사용자는 분석을 마친 All-in-JPEG의 내부 데이터를 확인하고, 그림 9(a)와 그림 9(b)와 같이 객체 위를 터치하는 방식으로 원하는 객체에 초점이 맞는 사진을 얻을 수 있다.

OTNBBE_2024_v24n1_189_f0009.png 이미지

그림 9. 객체별 초점 후처리

Fig. 9. Object focus post-processing

V. 결론

본 논문은 촬영된 사진 이미지를 사후에 다른 곳으로 초점을 이동시킬 수 있는 기술을 목표로 하였다. 이 목표를 달성하기 위해 본 논문에서는 사진을 촬영할 당시부터 여러 초점을 가진 사진을 촬영하여 한 장의 JPEG에 저장해두고 후에 사용자가 원하는 위치로 초점을 이동시킬 수 있도록 하였다. 초점을 이동시키는 방법은 사진에 등장하는 객체들에 초점을 맞추거나 초점 거리별로 초점을 이동시킬 수 있는 2가지 기법으로 제안하였다. 본 논문에서는 이 기술을 OnePIC이라는 안드로이드 앱으로 구현하여 기술의 실용성을 검증하였다. 본 논문에서 제안되고 구현된 기법은 이미 촬영된 사진에 대해 이미지 처리 기술로 초점을 이동시킬 수 없는 문제를 해결하여 카메라 사용자들이 초점에 대한 개념이나 두려움 없이 촬영할 수 있게 한다.

References

  1. https://biz.heraldcorp.com/view.php?ud=20230526000695
  2. https://onlyaccounts.io/blog/around-40-of-smartphone-users-in-the-top-markets-regularly-use-photo-editing-apps/
  3. S. Yousefi, M. Rahman, N. Kehtarnavaz, "A new auto-focus sharpness function for digital and smart-phone cameras", IEEE Transactions on Consumer Electronics, vol. 57, no. 3, pp. 1003-1009, August 2011, http://doi.org/10.1109/TCE.2011.6018848.
  4. https://helpx.adobe.com/kr/photoshop/using/reduce-camera-shake-induced-blurring.html
  5. https://helpx.adobe.com/kr/photoshop/using/adjusting-image-sharpness-blur.html
  6. Yu-Jin Kim, Kyung-Mi Kim, Song-Yeon Yoo, Chae-Won Park, Kitae Hwang, In-Hwan Jung, Jae-Moon Lee, "Preliminary Study on All-in-JPEG with Multi-Content Storage Format extending JPEG", The Journal of The Institute of Internet, Broadcasting and Communication (IIBC), Vol. 23, No. 5, pp.183-189, Oct.31, 2023. https://doi.org/10.7236/JIIBC.2023.23.5.183.
  7. "Multi-Picture Format", Standard of the Camera & Imaging Products Association, 2009
  8. Compuserve (1987) Graphics Interchange Format (Tm) A Standard Defining a Mechanism for the Storage and Transmission of Raster-Based Graphics Information, Compuserve Incorporated, http://www.w3.org/Graphics/GIF/spec-gif87.txt
  9. Nguyen, Phuoc, Nam Tuan Le, Yeong Min Jang, "Challenges issues for OCC based android camera 2 API", 2017 Ninth International Conference on Ubiquitous and Future Networks (ICUFN), IEEE, 2017. https://doi.org/10.1109/ICUFN.2017.7993875.
  10. Fadlilah, Umi, Bana Handaga, "The development of android for Indonesian sign language using tensorflow lite and CNN: an initial study", Journal of Physics: Conference Series, Vol. 1858, No. 1, IOP Publishing, 2021. https://doi.org/10.1088/1742-6596/1858/1/012085.