REP - CP - 012, May 2010 1 웹기반의사진관리시스템의설계 A Design of Web-based Intergrated Photo Management System Ryu Dong-Sung 류동성부산대학교컴퓨터공학과 dsryu99@pusan.ac.kr ABSTRACT 최근디지털카메라의보급으로인해촬영되는사진의수가많아졌고이를효율적으로관리하기에는많은어려움이있기때문에, 촬영된대부분의사진들은개인컴퓨터의각폴더에날짜별혹은통째로분산되어저장되는경우가많다. 이러한경우, 원하는사진을찾거나사진을앨범형태로분류해서보고싶은경우, 정리되지않은사진들로인해많은어려움이존재하게된다. 이를해결하기위해서는, 중앙에서분산된폴더에저장된각사진들을관리해야하며, 각사진들을사용자의편의성을요구하는분류할수있는시스템이필요하다. 이를해결하기위해서, 본보고서에서는많은수의디지털사진을체계적으로관리하기위한웹환경의통합형사진관리시스템에대해논의한다. 먼저, 1) 각사진정보를 DB를통해관리하여, 개인 PC에분산되게저장된각사진들을중앙에서체계적으로저장하며, 2) 사진의촬영시각과색상정보를이용한클러스터링기술을개발하고이를 DB와연동함으로써, 향후사진관리서비스의플랫폼 ( 무선단말기, 스마트폰 ) 확장에대한유연성을향상한다. 그리고 3) 클러스터링된사진의시각화모듈을웹으로구현하여, 사용자가중앙에서효율적으로사진관리를수행할수있도록한다. Keywords Web-based photo management system, Photo clustering, Photo visualization 1 Introduction 최근디지털카메라의보급으로인해촬영되는사진의수가많아졌고이를효율적으로관리하기에는많은어려움이있기때문에, 촬영된대부분의사진들은개인컴퓨터의각폴더에날짜별혹은통째로분산되어저장되는경우가많다. 이러한경우, 원하는사진을찾거나사진을앨범형태로분류해서보고싶은경우, 정리되지않은사진들로인해일반사람들은사진파일의관리자체를포기하는경우가많다. 즉, 관리하지못한개인 PC에분산되어저장된각사진들을중앙에서체계적으로관리하고자동적인방법으로분류하고저장하기위한시스템이필요하다. 이를해결하기위해서, 본보고서에서는많은수의디지털사진을체계적으로관리하기위한웹환경의통합형사진관리시스템에대해설계하고논의한다.
REP - CP - 012, May 2010 2 국내에서서비스되고있는웹기반의사진관리시스템은대부분대형포털사이트를중심으로개발되었으며, 네이버의 포토갤러리, 파란의 푸딩 그리고싸이월드의 스튜디오 와같은사진관리서비스가표 1과같이수행중에있다. 이들시스템은대부분썸네일기반의순차적인인터페이스를사용하거나특정템플릿에의해기계적으로사진을앨범화하는방식을사용하고있으며, 자동화된클러스터링과같은사진관리에효율적으로활용될수있는기능은지원하고있지않다. 현재는운영되고있진않지만네이버에서서비스했었던 포토메니져 의경우 Picasa [3] 와유사한형태의서비스를제공했었고다음에서서비스했던 파이 또한현재운영되고있지않는상태이다. 표 1. 국내의사진관리시스템 시스템 Vendor 클러스터링 레이아웃 검색기능 동작방식 스튜디오 싸이월드 [2] N/A 썸네일그리드 사용자지정태그 Web 포토갤러리 네이버 [4] N/A 게시판형태 사용자지정태그 Web 푸딩 파란 [5] N/A 템플릿앨범 사용자지정태그 Web 본보고서에서는웹기반의통합형시스템개발을위한설계를위해사용자인터페이스를위주로다음과같은내용을언급한다. 먼저, 전반적으로각사용자가로그인을수행한후, 어떻게사진을관리할것인지에대한전체적인줄거리와사용자가회원가입후생성되는데이터베이스의설계그리고실제사진을관리하기위해구성해야할기능들에대해논의한다. 2 웹기반사진관리시스템의인터페이스및기능다이어그램그림 1는보고서에서제안한웹기반의사진관리시스템을사용자관점에서사진을관리하기위한순서도와그에따른인터페이스를도식화한결과이다. 그림에서왼쪽의다이어그램은사용자가사진을관리하기위해서, 실제로해야할일을도식화한것이며, 그에대응되는다이어그램은실제시스템에서사용자의반응에맞게수행되어야하는기능들을각각개념화하였으며, 우측의웹인터페이스는각기능들이실행되는인터페이스와제어의흐름을연결한것이다. 사용자관점에서사진을관리하기위해해야할전체적인작업흐름은다음과같다. 1. 사진관리시스템의사용자가회원등록을한후, 사진관리메뉴에서 DB 생성 버튼을클릭하여, 사용자별로사진관리를위한테이블들을생성한다. 2. 사용자가정리하고자하는사진들을해당폴더에업로드한다. 3. 관리하고자하는사진폴더를선택한후, 앨범생성 버튼을클릭하여, 사진의촬영시각에따른자동클러스터링기능을수행한다. 4. 생성된앨범단위로각사진들의시각화기능을사용할수있다. 이때사용되는사진시각화방법은클러스터링된각사진단위로서로색상이유사한사진들은중첩해서배치하며, 이때,
REP - CP - 012, May 2010 3 중첩된여러장의사진들의촬영시각흐름을최대한유지하는형태로각사진들을시각화한다. 그림 1에서사진관리측면과관련된중요인터페이스는 (1) 사진저장소, (2) 폴더제어부, (3) 앨범게시판 과같이크게 3가지로분류된다. 먼저, (1) 사진저장소는관리해야할사진을업로드하기위해임시로저장하는하드디스크이며, 원본사진을서버측의하드디스크로사용자에의해생성된폴더구조와같이저장하는역할을한다. (2) 폴더제어부는사용자가업로드한각사진폴더들을수정하거나폴더를변경하기위한인터페이스를버튼형식으로구성할것이며, (3) 앨범게시판은실제클러스터링된결과를게시판형태로앨범을구성한다. DB DB PC 그림 1. 웹기반의사진관리시스템의개요와인터페이스구상도 3 데이터베이스의설계웹기반의사진관리시스템을위해설계한데이터베이스는그림 2와같다. 먼저각테이블명칭에서 TB_ 접두어는테이블을의미하며, 각필드의 F_ 는테이블의각필드를의미한다. 또한 USERID 는사용자의로그인아이디를의미한다. 즉, 사용자는회원가입후, 자신의사진정보들을저장하기위해서, 한회원당공유의사진관리와연관된테이블들이필요하게되는데, 자신의사용자아이디가포함된테이블들을각각생성하여, 이문제들을해결할수있다. 사용자의회원가입후, 생성된테이블의전체적인구조를살펴보면, 먼저각사진파일의정보들을저장하는 TB_SRCPHOTO 테이블과 ( 이후부터는 USERID를빼고논의한다 ) 촬영시각에따라클러스터링된결과를저장하는 TB_TMPCLUSTERS 테이블, 촬영시각에의해클러스터링된클러스터를유사한색상에따라다시 2차적으로클러스터링하는 TB_CLRCLUSTERS 테이블그리고사용자가
REP - CP - 012, May 2010 4 1) 2) 3) 4) BOM 그림 2. 웹기반의사진관리시스템을위한데이터베이스설계. TB_ 접두어는테이 블을의미하며, USERID 는사용자의로그인아이디를의미한다. 업로드한사진들을폴더트리구조로저장하기위한 TB_FOLDERS 테이블로구성된다. 마지막으로 TB_ALBUM 테이블은촬영시각별로클러스터링된결과를앨범게시판형태로정리하기위해사용되는게시판용테이블이다. 각테이블들의관계와이를저장하기위한각필드의관계를살펴보면다음과같다. 1. TB_SRCPHOTO:TB_CLRCLUSTERS = n:1 이며, TB_CLRCLUSTERS 테이블의 F_ID 가 TB_SRCPHOTO 테이블의 F_CLRCLSID 필드에저장된다. 2. TB_CLRCLUSTERS: TB_TMPCLUSTERS = n:1 이며, TB_TMPCLUSTERS 테이블의 F_ ID 가 TB_CLRCLUSTERS 테이블의 F_TMPCLUSTERID 필드에저장된다. 3. TB_SRCPHOTO : TB_FOLDERS = n:1 이며, TB_FOLDERS 테이블의 F_ID 가 TB_SR CPHOTO 의 F_FOLDERID 필드에저장된다. 4. TB_TMPCLUSTERS : TB_ALBUM = n:1 이며, TB_ALBUM 테이블의 F_ID 가 TB_TMP CLUSTERS의 F_ALBUMID 필드에저장된다.
REP - CP - 012, May 2010 5 여기서 TB_FOLDERS 테이블은트리형태의폴더인터페이스를사용자에게제공하기위해서, BOM구조로구성하였다. 여기서, BOM (Bill Of Matrial) 구조는트리자료구조와같이계층적으로재귀되는데이터를테이블로저장하기위한자료구조이다. 이 BOM 구조는 TB_FOLDERS 테이블의 F_PARENTID 와같이각레코드의부모아이디만저장하면, 전체적인트리구조를구성할수있는간결함이장점이며, 특정레벨에있는노드의모든자식노드들은재귀구조에기반한 SQL 문을사용하여검색할수있다. 4 사용자인터페이스와구현해야할기능본보고서에서는웹기반의사진관리시스템을구현하기위해서, 크게서버에서구현할기능들과클라이언트측에서구현할기능들을그림 3와같이분류하였다. 서버측에서는주로웹서버와데이터베이스를연계하여각사진을저장하고분류하고평가하는역할을수행하며, 클라이언트측에서는사용자인터페이스위주로서버측에서관리된각사진정보들을시각화하고조작한다. 그림 3. 웹기반사진관리시스템을위해구현해야할기능들을서버와클라이언트측 면으로구성하였다. 먼저, 서버측구현기능은기본적으로웹서버시스템을구축하기위해서, 회원등록및관리와같은기본적인웹사이트의기능들이필요하기때문에, 다음과같은모듈로구성하였다. 서버측에서구현될각기능들중 Photo Evaluator나 Clustering Manager와같이많은이미지연산을처리해야하는모듈들은 GCC 를이용해구현함으로써, 처리속도를개선할수있다. 이를위해서리눅스플랫폼에서 C
REP - CP - 012, May 2010 6 언어와통합가능한 DevIL이나리눅스버젼의 OpenCV와같은영상처리라이브러리가필요하다. 1. DBManager : 클라이언트와데이터베이스연동기능을담당한다. 2. Photo Evaluator : 각사진들을일반지표와사용자지표로나누어평가한다. 3. Clustering Manager : 저장된사진들을촬영시각 [1] 과색상 [6] 에따라분류한다. 4. Layout Manager : Clustering Manager가 2차적으로분류한세부클러스터에소속된각사진들의중첩된위치를계산한다 [7]. Photo Evaluator에서구현해야할사진평가모듈은블러나아웃포커싱혹은화이트밸런스와같이촬영된사진자체의특성에대한일반적인사진평가와사용자의사진관리선호도를고려한사용자지표로구성된다. 여기서사용자지표는사진의계산학적인일반지표를바탕으로사진을관리하는사람들의특성에따라, 사용자가좋아하는사진들은최대한화면에렌더링하거나사용자가선호하지않는사진들은필터링하는등의사진관리에대한커스터마이징서비스를제공한다. 클라이언트측구현기능들은서버와통신하기위한서버연동인터페이스와사진뷰어로구성되며, 나중에스마트폰을이용한사진관리시스템개발을위한인터페이스모듈로구성된다. 여기서다중사진파일의업로드와같은기능은연구실에서자력으로해결하기가어려운기술적인문제들이기때문에, 상용라이브러리나과제와관련된협력업체의도움을받아구현할계획이다. 마지막으로사진뷰어기능은서버측의 Layout Manager에의해계산된각좌표정보들에따라서버에저장된각사진들의썸네일을중복해서시각화하는역할을수행한다. 5 결론및향후연구과제본보고서에서는일반디지털사진촬영자들의개인컴퓨터에분산되어저장된각디지털사진들을통합적으로관리하기위한웹기반의사진관리시스템의설계에대해서논의하였다. 보고서에서설계한사진관리시스템은크게서버측과클라이언트측의모듈로구성되며, 이들모듈들이활용하기위한데이터저장소를관계형데이터베이스로설계하였다. 현재서버측에서구현해야할중요기능들중사진클러스터링과사진시각화와관련된모듈들은윈도우운영체제에서 Stand-Alone 형태로구현되어있으나핵심기능들을리눅스의 GCC 로포팅해야하며, 이과정에서윈도우운영체제에서사용하였던 GDI Plust나 OpenCV 그리고 CUDA와같은각영상처리라이브러리들을대체하기위한리눅스용 C 기반의영상라이브러리들의활용및사용이필요하다. 또한 Photo Evaluator 모듈에서처리해야할사진의평가과정은사진의품질을평가하는모듈을개발해야하는데, 이기능은사람의주관적인관점이개입되는형태이기때문에, 많은연구와실험이수반된다. 보고서에서논의한웹관리시스템의설계에있어서중요한모듈그리고구현시고려해야할점들을정리하면다음과같다. 1. 웹기반의통합형사진관리시스템을구축하기위해서, 각사용자아이디에따른테이블들을설계하였다. 2. 현재윈도우에서구현된클러스터링기능과중첩을고려한레이아웃기능들의구현을위해서, 리눅스용 GCC 기반의영상라이브러리들을활용해야한다.
REP - CP - 012, May 2010 7 3. 사진의초점거리와같은 EXIF 정보를활용하여, 각사진의블러정도와아웃포커싱사진의유무 참고문헌 등을판별하기위한사진평가모듈과이를기반으로한사용자의선호도를고려한사진커스터 마이징모듈에대한연구도필요하다. 1. M. Cooper, J. Foote, A. Girgensohn, and L. Wilcox, Temporal event clustering for digital photo collections, ACM Transactions on Multimedia Computing, Communications and Applications, vol. 1, no. 3, pp. 269 288, 2005. 2. CYWORLD, Studio, http://www.cyworld.com/main2/studio/studio_main.asp. 3. Google, Picasa Web Albums, http://picasa.google.com/features.html. 4. NAVER, Photo Gallery, http://photo.naver.com/. 5. PARAN, Puding, http://pudding.paran.com/. 6. B. G. Prasad, K. K. Biswas, and S. K. Gupta, Region-based image retrieval using integrated color, shape, and location index, Computer Vision and Image Understanding, vol. 94, no. 1-3, pp. 193 233, 2004, special Issue: Colour for Image Indexing and Retrieval. 7. D.-S. Ryu and H.-G. Cho, A photo summarized system with more detailed clustering method keeping temporal order (submitted), Multimedia Tools and Application.