DarkLabel - 이미지/비디오 객체 레이블링 툴 (Image Labeling and Annotation Tool)

개발한 것들 2017.07.18 11:21

동영상(avi, mpg) 또는 이미지에서 물체의 사각형 경계(bounding box)를 따서 labeling 및 다양한 포맷으로 저장할 수 있는 유틸러티 프로그램입니다.


이 프로그램은 물체인식(object detection)이나 영상추적(visual object tracking) 목적의 영상 DB 라벨링 및 ground truth 편집에 활용될 수 있습니다. 최대한 사용 편의성에 초점을 맞추어 프로그램을 개발했으며 영상 추적기를 내장하여 일일히 박스를 그리지 않고도 편리하게 박스편집 및 라벨링 작업을 수행할 수 있습니다.


비상업적 목적이라면 누구나 사용할 수 있으며 사용상 문제점, 건의사항 등이 있으면 댓글로 알려주시기 바랍니다.




프로그램 다운로드 (Download)


DarkLabel1.1_part1.zip

DarkLabel1.1_part2.zip

  • 무설치 / windows에서 동작 (xp 이상)
  • part1과 part2를 모두 다운로드 (첨부파일 용량제한으로 나누어 올림)
  • 첨부된 opencv_ffmpeg320.dll을 동일 실행 폴더에 놓고 프로그램 실행


주요 기능 및 특징

  • 다양한 포맷의 비디오(avi, mpg, ...) 및 이미지(jpg, bmp, png, ...) 지원
  • 복수 개의 박스(box) 설정 및 label 설정 지원
  • 물체인식 및 영상추적 등 다양한 응용의 데이터 포맷 지원
  • 고성능 영상추적기를 내장하여 자동 labeling 지원
  • 사용자 중심의 직관적인 UI 및 다양한 편의기능(단축키 등)


버전 히스토리


* DarkLabel 1.1 (2017.09.06)

- 작업결과를 동영상/이미지로 저장할 수 있는 기능 추가


* DarkLabel 1.0 (2017.07.18)

- labeling 기능 추가, tracker의 성능 및 UI 반응성 개선, 최신 비디오코덱 지원

- 프로그램 이름을 GT_Extractor에서 DarkLabel로 변경


* GT_Extractor 2.3 (2016.09.29)

- 버그 수정 (이미지 리스트에서 GT 파일 저장/불러올 때 오류 현상)


* GT_Extractor 2.2 (2016.08.26)

- 지원 비디오 포맷 추가 (avi, mpg, mp4, wmv, ...)


* GT_Extractor 2.1 (2013.08.12)

- 비디오 뿐만 아니라 이미지 목록에 대해서도 편집 가능


* GT_Extractor 2.0 (2013.01.15)

- 복수개의 대상 설정 및 추적 기능


* GT_Extractor 1.0 (2013.01.08)

- 이미지 당 하나의 대상만 설정할 수 있음



프로그램 사용법




비디오/영상 불러오기 및 프레임간 이동

  • Open Video File: 비디오 파일을 불러온다 (avi, mpg, mp4, wmv, mov, ...)
  • Open Image Directory: 폴더 안의 모든 이미지를 불러온다 (jpg, bmp, png, ...)
  • 영상 프레임간 이동: 키보드 →, ←, PgUp, PgDn, Home, End, 슬라이더 컨트롤


박스(box) 생성 및 편집, Labeling

  • 마우스 드레그(drag)로 새로운 박스 생성
  • 마우스 우클릭: 가장 최근에 생성한 박스 제거(삭제)
  • Shift/Ctrl + 마우스 드레그: 선택된 박스 수정 (이동, 크기 수정, 경계 수정)
  • Shift/Ctrl + 마우스 더블클릭: 선택된 박스의 label 수정
  • Shift/Ctrl + 마우스 우클릭(특정 박스): 선택된 박스 삭제
  • Shift/Ctrl + 마우스 우클릭(빈곳 클릭): 현재 프레임의 모든 박스 일괄 삭제
  • 박스를 생성하면 label 입력창이 자동으로 팝업(popup)
  • label 입력창에서 미리 정의된 label을 선택하거나 새로운 label을 직접 입력
  • 프로그램 실행 폴더에 있는 'labels.txt' 파일을 편집하여 label 목록을 미리 등록
  • label 편집창에 팝업된 상태에서 숫자키(1~9)를 누르면 해당 번째에 해당되는 미리 등록된 label이 자동으로 입력됨
  • label 입력창 비활성화: 'Popup label' 체크 해제 (label이 없는 빈 박스를 생성)


☞ 'Shift/Ctrl'은 Shift 또는 Ctrl의 의미임 (/는 선택사항, 옵션의 의미)



영상추적 기능을 이용한 박스 설정 및 labeling 자동화

  • Enter 키를 누르거나 'Next & Predict' 버튼으로 추적 기능 사용
  • 내장된 영상 추적기를 이용하여 다음 프레임에서의 박스 위치 및 label을 자동으로 설정 (최대 100개까지 복수개의 대상 동시 추적)
  • Enter 키를 계속 누르면서 자동으로 작업하다가 예측된 위치가 틀릴 경우에만 수정하는 방식으로 작업할 수 있음
  • 사용할 tracker는 'Tracker1' 또는 'Tracker2' 중에서 선택 가능 (일반적으로 Tracker1이 성능이 좋지만 자동차 등 형태가 고정된 물체는 Tracker2가 성능이 좋을 수 있음)


☞ 주의: Enter 키를 이용해서 프레임을 넘기면 현재 프레임에서의 박스 및 label을 추적하여 다음 프레임의 박스 및 label을 자동으로 설정하므로 해당 프레임에 원래 있던 데이터는 없어집니다. 프레임간의 단순 이동은 키보드 화살표 키를 이용해야 합니다.



작업 데이터 저장 및 불러오기

  • Load GT: ground truth 파일을 선택한 포맷으로 불러온다.
  • Save GT: 선택한 데이터 포맷으로 현재까지 작업한 결과를 저장한다.
  • 데이터를 불러올 때에는 실제 데이터 파일과 일치하는 포맷을 선택해야 하나 데이터를 저장할 때에는 자신이 원하는 임의의 포맷으로 저장할 수 있음
  • 이미지 목록에서 작업할 경우 프레임 번호(frame#) 포맷을 사용하면 파일명 순으로 정렬했을 때의 이미지 순서가 프레임 번호가 됨 (00001.jpg, 00002.jpg, ... 와 같은 목록에 유용)
  • Save Settings: 현재 선택한 데이터 포맷 및 옵션을 저장 (프로그램 실행시 자동 복원)


데이터 포맷 (Syntax)

  • |: 줄바꿈
  • []: 반복되는 구문
  • frame#: 프레임 번호 (동영상의 프레임 번호, 이미지 목록에서는 이미지 순서)
  • iname: 이미지 파일 이름 (이미지 목록에서 작업할 경우에만 유효)
  • label: 레이블
  • n: 이미지에 설정된 경계사각형 개수
  • x,y: 경계사각형의 left, top 위치
  • w,h: 경계사각형의 폭, 높이
  • cx,cy: 경계사각형의 중심(center) 좌표
  • x1,y1,x2,y2: 경계사각형의 left, top, right, bottom 위치



by 다크 프로그래머


저작자 표시 비영리 변경 금지
신고
  • 이전 댓글 더보기
  • BlogIcon doodler217 2015.01.06 09:36 신고 ADDR 수정/삭제 답글

    안녕하세요. 늘 블로그에서 좋은글 보고 있습니다.
    Tracking에 관련하여 질문을 조금 드리고 싶은데요.
    optical flow기반으로 하셨다고 하셨는데, 그에대한 포스팅 내용이나 다른 설명이 조금 있을까요?
    좋은 정보 감사합니다.

    • BlogIcon 다크pgmr 2015.01.06 13:46 신고 수정/삭제

      안녕하세요. 아직 optical flow에 대한 포스팅은 없습니다만 기회가 되면 글을 올리려고 생각은 하고 있습니다. 하지만 그건 optical flow 자체에 대한 것으로 tracker와는 무관할 것입니다.

  • chochotrain 2015.03.23 22:37 신고 ADDR 수정/삭제 답글

    안녕하십니까 다크프로그래머님 항상 도움을 많이 받고있습니다.
    다크프로그래머님께서 만드신 gt_extractor2.1에 대해 몇 가지 질문이 있습니다.
    현재 진행하고있는 연구과제중에서 GT 에디터를 제작하여 사용하라는 오더가 내려왔습니다.
    공교롭게도 지금 저희랩에서 작업을 맡았습니다.
    그렇다고 해서 코드공개를 바라는것은 절대절대절대 아닙니다!!!!
    무리한 부탁이지만 간략하게 플로우정도는 알려주실수 있지않을까 생각이 들어 부탁을 드립니다....

    • BlogIcon 다크pgmr 2015.03.24 06:52 신고 수정/삭제

      무리한 부탁이시네요 ^^
      프로그램에 무슨 특별한 플로우라는게 있을리 없습니다. 사용자에게 어떤 기능과 UI를 제공할까에 대한 고민만 충분히 된다면 그 이후의 과정은 단순한 프로그래밍 과정이라 볼 수 있습니다.

    • 곰돌이만세^^ 2015.03.24 16:12 신고 수정/삭제

      알고리즘의 문제가 아니라 단순히 프로그래밍 스킬의 문제로 보입니다.
      조금만 노력하시면 할 수 있으실 겁니다.

    • BlogIcon 다크pgmr 2015.03.24 16:30 신고 수정/삭제

      /곰돌이만세^^
      제가 가끔 황당한 답변을 할 때 옆에서 잘 무마를 해주시네요.. 감사합니다 ^^
      chochotrain님, 곰돌님 말씀처럼 프로그래밍 스킬의 문제이니 조금 노력하시면 되리라 생각합니다.

  • ba 2015.04.03 14:23 신고 ADDR 수정/삭제 답글

    안녕하세요 항상 많은 것을 배워갑니다 고맙습니다.
    Ground Truth 프로그램에 대해 질문이 있습니다.

    제가 avi 파일을 Open Avi 했을 때 창은 뜨는데 화면이 계속 검정색으로 나오는데 이건 왜그런지 모르겠습니다..

    • BlogIcon 다크pgmr 2015.04.04 05:33 신고 수정/삭제

      아마도 코덱문제일 것 같습니다. 제공되는 압축파일에 같이 포함되어 있는 ffdshow를 한번 설치해 보시기 바랍니다.

  • 아도나일 2015.07.21 09:41 신고 ADDR 수정/삭제 답글

    안녕하세요^^ 다크님의 프로그램은 정말 유용하고 쉬운 인터페이스를 가지고 계셔서 너무 마음에 듭니다.ㅋ
    또 공부하다보니 궁금한점이 생기더군요.ㅋ
    ground truth프로그램에서 하나의 박스를 치면 다음 frame에서 자동으로 tracking 이 되는 것 같던데.. 사용한 알고리즘과 구현 방법을 알고 싶습니다. opencv 를 사용하신 것 같은데..
    어떤 알고리즘을 쓰셨는지요?^^
    항상 감사드리며 앞으로도 멋진 프로그램을 선물해 주시기 바랍니다^^
    저도 언젠가 보답할 날이 있기를 바라며..
    감사합니다.

    • BlogIcon 다크pgmr 2015.07.21 10:10 신고 수정/삭제

      안녕하세요. 프로그램이 마음에 드신다니 다행입니다 ^^
      내장된 추적기는 제가 개발한 것인데 공개된 기술이 아니라서 알고리즘 등은 공개가 어렵습니다.

  • 2016.01.07 16:47 ADDR 수정/삭제 답글

    비밀댓글입니다

  • 영상쟁이 2016.01.25 23:05 신고 ADDR 수정/삭제 답글

    안녕하세요, 올려주신 프로그램 유용하게 쓰고 있습니다. 그런데 사용중에 일종에 버그? 로 보이는 현상을 발견했는데요. 뭔가 하면, 비디오에서 복수에 오브젝트에 대해 그라운드 설정을 다 하고, txt로 저장한 후에 이를 나중에 다시 load하여 확인해 보면 bounding box개수가 맞지 않거나 약간 이상한 위치에 있더라구요. 맨 마지막 프레임에서 예를들어 오브젝트수가 4개로 끝났고, txt를 열어봐도 마지막에 4로 찍히는데 프로그램을통해열어보면 4개가 아니라 2로 찍히고 실제로도 이상한 곳으로 찍히는 현상이 있었습니다.

    • BlogIcon 다크pgmr 2016.01.29 15:03 신고 수정/삭제

      제가 해 봤을 때에는 그런 현상이 나타나지 않아서 문제의 원인은 잘 모르겠습니다. 프로그램에서 콤보박스를 통해 여러 가지 포맷의 gt 파일을 선택할 수 있도록 지원하고 있는데 혹시 저장한 포맷과 읽어들인 포맷이 다른 것은 아닌지 확인해 보시면 좋을 것 같습니다. 만일 그런 문제가 아니라면 어떤 gt 포맷을 사용했을 때 그런 현상이 나타나는지요? 그리고 그런 문제가 여러 동영상에서 항상 나타나는지요? 아니면 어쩌다 한번씩 나타나는 현상인지요?

  • 영상처리초짜 2016.05.03 21:42 신고 ADDR 수정/삭제 답글

    안녕하세요. 다크프로그래머님 영상처리대학원에 다니고 있는 학생입니다. 항상 관련기술을 검색하다보면 나와서 많은 도움을 받고 있어서 감사하게 생각하고 있습니다.
    지금 다크프로그래머님이 올려주신 프로그램을 해보았는데, 동영상이 아닌 이미지프레임으로 불러들이고, fname,x,y,w,h, 로 저장된 ground-truth 텍스트파일을 불러들이는데 자꾸 오류가 뜨는 현상이 나타나는데 혹시 알고 계신지요?

    • BlogIcon 다크pgmr 2016.05.04 07:30 신고 수정/삭제

      기본 테스트는 하고 올린 것인데.. 좀더 구체적으로 상황과 에러를 설명해 주시면 원인 파악에 도움이 될 것 같습니다. 혹시 fname,x,y,w,h 포맷으로 저장된 파일을 다른 포맷으로 읽어들인 것은 아닌지요?

    • BlogIcon 다크pgmr 2016.09.29 12:02 신고 수정/삭제

      늦게나마 말씀하신 버그를 발견하여 수정하였습니다. 그때 제대로 반영하지 못하여 불편을 드린 것 같아 죄송합니다.

  • 김공자 2016.09.28 17:59 신고 ADDR 수정/삭제 답글

    안녕하세요. 저도 영상처리초짜님과 같은현상을 겪고있습니다.
    이미지GT를 save하고 다시 Load GT를하면 runtime error이 발생합니다.

    • BlogIcon 다크pgmr 2016.09.29 11:59 신고 수정/삭제

      제보 감사합니다. 찾아보니 실행경로 설정과 관련된 버그가 있었습니다. 수정하여 다시 올렸습니다.

  • 나비 2016.10.11 22:22 신고 ADDR 수정/삭제 답글

    안녕하세요 다름이 아니라 http://darkpgmr.tistory.com/70 에서 positive image를 추출하려고 이프로그램을 실행시켰습니다. 메모장에
    1857,1
    618,578,264,176 다음과 같이 출력이 됩니다. 그런데 createSamples을 하려면 동영상파일이 아닌 이미지파일이 필요하지 않나요? 그러면 어떤식으로 해야하나요 ㅠㅠ
    아니면 제가 프로그램 만들어서 메모장에 있는 것을 파일 입력으로 받아서 영상에서 이미지를 추출해야 하나요?

    • BlogIcon 다크pgmr 2016.10.13 04:06 신고 수정/삭제

      네, 구현된 Cascade Training 프로그램은 동영상에서는 샘플을 생성할 수 없기 때문에 이미지를 사용해야 합니다. 동영상을 이미지로 바꾸어 주는 프로그램을 이용하시면 좋을 것 같습니다 (VirtualDub 등)

  • cv초심자 2017.07.27 20:21 신고 ADDR 수정/삭제 답글

    테스트를 해보니, 지원하는 영상 해상도 크기의 한계가 있는 것 같습니다만,
    혹시 지원하는 비디오 영상 해상도 크기 좀 늘려주실 수 있나요? HD급정도(1280 x 720)로만 해주셔도 감사하겠습니다만^^
    그리고 동영상에서 그린 바운딩 박스는 이미지로 저장을 하지 못하나요? 어떻게 저장을 하는지 궁금합니다.

    • BlogIcon 다크pgmr 2017.07.27 23:10 신고 수정/삭제

      딱히 영상 해상도에 제한은 없습니다. 만일 어떤 비디오 영상이 열리지 않는다면 그것은 비디오 코덱 문제일 것입니다 (영상 해상도와는 무관합니다). 그리고 바운딩 박스는 텍스트 파일로만 저장되며 Save GT로 저장하고 Load GT로 불러올 수 있습니다.

    • cv초심자 2017.07.28 09:39 신고 수정/삭제

      비디오 파일 확장자는 avi인데, 720x480의 SD급에서는 열리고, 1280x720의 HD급에서는 비디오 파일이 오픈된 후에 프로그램이 죽어버리는 버그(같은 현상)을 발견해서 문의 드렸습니다. 해당 비디오 파일은 코덱 문제가 아닐 수도 있다는 판단이 드는 건,제가 이미 OpenCV 비디오 플레이어를 만들어서 제 환경에서는 잘 사용을 하고 있기 때문입니다. 신경 써주셔서 감사합니다.^^

    • BlogIcon 다크pgmr 2017.07.28 11:22 신고 수정/삭제

      같이 포함되어 있는 opencv_ffmpeg320.dll이 실행파일과 같은 경로에 없으면 일부 동영상이 정상적으로 동작하지 않거나 프로그램이 죽을 수 있습니다. 만일 ffmpeg 파일이 같이 있는데도 그러한 에러가 났다면 원인은 저도 잘 모르겠습니다. 혹시 해상도 외에 추측되는 원인이 있다면 알려주시면 감사하겠습니다. 비디오 해상도는 아시겠지만 opencv에서 비디오 해상도가 크다고 해서 영상을 읽지 못하지는 않습니다.. HD, full HD, 2560 x 2048 비디오까지 테스트는 했는데 큰 문제는 없는것 같습니다.

    • cv초심자 2017.07.28 17:33 신고 수정/삭제

      원인을 발견하였습니다. 제 실수인데, 비디오 파일의 인코딩이 제대로 완료되지 않은 파일을 재생했네요. 다음 플레이어로 보니까 신기하게도 정상적으로 동작을 하길래, 정상 파일인지 알았습니다. 그런데 동일한 주기로 녹화된 다른 파일들과 용량을 비교해보니까, 해당파일의 용량이 훨씬 적더군요. 정상적으로 동작을 합니다. 착오를 드려서 죄송합니다.^^

    • BlogIcon 다크pgmr 2017.07.31 09:24 신고 수정/삭제

      문제가 해결되었다니 다행입니다 ^^

  • 주냄 2017.08.02 16:59 신고 ADDR 수정/삭제 답글

    안녕하세요. computer vision을 연구하고 있는 대학원생입니다.
    예전부터 다크pgmr님께서 CV에 쓰이는 많은 알고리즘이나 방법론들을 알기쉽게 설명하고 구현해 놓으셔서 공부하는데 많은 도움이 되었습니다.
    최근에 딥러닝으로 detection 및 tracking 연구함에 있어 위와 같은 DB 제작 프로그램이 필요하여 개인적으로 만들어 사용하고 있었는데, 이 프로그램은 정말 최고네요!! 만들어 주신 프로그램으로 열심히 연구하여 보도록 하겠습니다. 감사합니다!!

    • BlogIcon 다크pgmr 2017.08.03 15:08 신고 수정/삭제

      도움이 된다니 보람이 느껴집니다. 감사합니다.

  • 카킴 2017.08.07 16:08 신고 ADDR 수정/삭제 답글

    요즘 이 툴로 labeling 중입니다 너무 좋네요 다른 tool 사용하다가요!
    이 tool은 전체화면 안되나요?

    • BlogIcon 다크pgmr 2017.08.07 16:43 신고 수정/삭제

      창 크기조절도 되고 전체화면도 가능합니다. 하지만 전체화면으로 하면 좌측의 컨트롤 창에 영상 창이 일부 가려지게 됩니다. 사용해 보시고 불편한 사항이 이나 개선 의견이 있으면 댓글 남겨주세요.

  • lynx80 2017.08.07 17:31 신고 ADDR 수정/삭제 답글

    안녕하세요?
    avi 동영상을 해당 프로그램으로 불러와서 박스 설정을 완료하고 Save GT로 저장해서
    텍스트 파일을 저장하는 것 까지 완료했는데 박스 설정을 동영상에 덧씌우기 해서
    한번에 같이 보려면 어떻게 해야하나요? ^^;

    • BlogIcon 다크pgmr 2017.08.07 21:57 신고 수정/삭제

      그러려면 먼저 비디오 파일을 불어온 후 저장된 텍스트 파일을 Load GT로 불어오면 됩니다

  • 카킴 2017.08.08 09:02 신고 ADDR 수정/삭제 답글

    아 저는 이미지 때문에 그런데요! 전체화면으로 하면요 다음 사진으로 넘길때 이미지 사이즈가 원본으로 돌아가요 ㅜㅜ 비율 유지안된 상태로 커저선지 labeling 할때 눈이 아프네요 ㅋㅋ

    • BlogIcon 다크pgmr 2017.08.08 10:23 신고 수정/삭제

      네, 어떤 문제인지 이해했습니다. 원래 구현하기를, 이미지 사이를 이동할 때 이미지 원본의 크기에 변화가 없으면 과거의 창의 크기를 유지하고, 이미지 크기에 변화가 발생하면 새로 불러오는 이미지의 크기에 맞게 (1x) 창의 크기를 조절하도록 구현되어 있습니다. 이미지 크기가 제각각이면서 전체화면으로 작업하는 경우는 고려를 못했었는데요, 원하시는 기능은 이미지의 가로, 세로 비율이 유지되면서 화면 최대 크기로 자동 표출되는 것으로 이해했습니다. 좋은 의견 감사드리며 다음 버전업에 반영토록 노력해 보겠습니다.

    • 카킴 2017.08.08 12:53 신고 수정/삭제

      ㅎㅎ 메카니즘이 그렇게 되는거였네요! 간혹가다 사이즈가 같으면 그대로 출력될때도 있어서 여러시도해보고있었는데 미구현된 기능이었네요 :) 툴 잘쓰고있습니다 감사합니다

  • 초보자 2017.08.08 13:42 신고 ADDR 수정/삭제 답글

    안녕하세요, 처음 연구를 시작했던 때부터 본 블로그에서 많은 정보를 접했던 사람입니다. 먼저 감사의 말씀 드립니다.

    현재 딥러닝 detection을 위한 dataset을 준비 중에 있는데, 마침 DB 구축 프로그램을 개발해주셔서 사용해보려고 합니다.
    혹시 이 프로그램을 통해 구축한 labeling 결과를 바로 VOC 형태로 저장하고 VOC 형태 기반 소스코드(예시: tensorflow 기반 faster-rcnn)에 input이 가능할까요?

    항상 감사드립니다.

    • BlogIcon 다크pgmr 2017.08.08 16:41 신고 수정/삭제

      네, 그런 기능이 있으면 유용하겠네요. 다음 버전에 고려해 보겠습니다. 그런데, VOC나 ImageNet 포맷으로 저장하려면 이미지 하나마다 xml 파일을 하나씩 만들어야 하네요.. 냠냠..

    • 초보자 2017.08.14 09:49 신고 수정/삭제

      그렇군요! 답변 감사 드립니다.
      좋은 하루 되세요~

  • whiteforest 2017.08.09 09:41 신고 ADDR 수정/삭제 답글

    안녕하세요. labeling을 완료하고 Save GT까지 했습니다.
    녹화프로그램을 사용하지 않고 동영상에 씌워서, 동영상을 재생했을때 label 프레임이 같이 나오게 하는 방법은 없을까요?

    좋은 프로그램 감사합니다.

    • BlogIcon 다크pgmr 2017.08.09 13:40 신고 수정/삭제

      구현은 가능합니다만 실제 그러한 기능을 추가할지는 조금 고민해 봐야 할 것 같습니다. 기능이 많다고 좋은건 아니라서요.. 혹시 어떤 경우에 그런 기능이 필요할까요?

  • ㅁㄴㅇ 2017.08.09 15:08 신고 ADDR 수정/삭제 답글

    http://carlvondrick.com/vatic/
    이게 생각나는 프로그램이네요.

    • BlogIcon 다크pgmr 2017.08.09 16:29 신고 수정/삭제

      네, 잘 만들어진 프로그램이네요. 특히 interpolation 기능이 인상적입니다. 저는 tracking 기능을 사용했는데 아무래도 tracking은 성능적 한계가 있을 수 있으니 상황에 따라서는 interpolation 기능이 좀더 유용할 것 같다는 생각이 듭니다. 그리고, object별로 자동으로 id를 부여하고 색상도 다르게 표현한 것도 좋은 것 같습니다. 다음에 버전업을 할 때에 이런 좋은 특징들도 고려해 봐야겠습니다. 그런데, 원래 개인적으로 사용할 목적으로 만든 프로그램을 공개한 것이라서 또 언제 마음이 동할지는 모르겠습니다.. ^^

  • 즐겨라! 2017.08.22 14:04 신고 ADDR 수정/삭제 답글

    안녕하세요 다크님!

    좋은 툴 공개 해 주셔서 감사합니다

    마침 필요할 시점이와서 어떻게 만들어 볼까 생각 하던차에 새로운 포스팅이 떠서 보니 마침 제가

    딱 필요한 프로그램을 만들어 주시다니 ㅜㅜ

    감사합니다~!

    • BlogIcon 다크pgmr 2017.08.22 14:07 신고 수정/삭제

      네, 도움이 된다니 다행입니다 ^^. 사용해 보시다 혹 불편한 점이 있으면 알려주세요.

  • 필명1 2017.09.05 20:51 신고 ADDR 수정/삭제 답글

    이미지 bounding box처리한 이미지를 그대로 저장하는 기능은 없을까요?

    • BlogIcon 다크pgmr 2017.09.06 00:12 신고 수정/삭제

      네, 가능합니다. 간단한 기능이니 시간 되는데로 추가해서 올려놓겠습니다.

  • 2017.09.20 16:04 ADDR 수정/삭제 답글

    비밀댓글입니다

인터뷰

잡기장 2017.07.13 17:11

얼마 전 한 친구와 인텨뷰를 가졌다. 이력서와 자기소개서는 훌륭했다. 하지만 이력서와 자기소개서는 참고일 뿐 그것만으로는 판단이 힘들다. 그래서 자신이 그동안 한 것에 대해서 발표를 부탁했다.


발표는 나쁘지 않았고 딥러닝을 이용해서 실제 문제에 적용한 결과도 나쁘지 않았다. 그리고 사용한 알고리즘이나 발표하면서 사용한 기술적인 용어들로 봤을 때 이 정도면 컴퓨터 비전에 필요한 기본적인 소양은 갖추었다고 판단됐다.


하지만 그것은 성급한 판단이었다. 발표만으로는 확실한 판단이 어렵기 때문에 발표 후 간단한 구술 테스트를 진행했다. 이른바 인터뷰이다. 그런데 인터뷰에서는 전혀 다른 결과가 나왔다.


테스트는 수학, 기계학습, 프로그래밍, 영상처리에 대한 질의응답 형식으로 진행했다. 예를 들어, 그 친구가 발표 도중에 SVM을 사용했다는 내용이 나왔으면 SVM이 무엇인지 간략하게 설명할 수 있느냐? 학습에서 Stochastic gradient 방법을 썼다고 했는데 그게 무슨 방법이냐? gradient가 무엇이냐? 등등 본인이 발표한 내용 중에서 관련된 개념 등을 물어보는 것이다. 그리고 프로그래밍 관련해서는 C에서 포인터가 무엇이냐? C++을 사용할 수 있다고 했는데 virtual 함수가 무엇이냐? 등 기초적이지만 수준을 체크할 수 있는 질문들이다.


그런데, 이 친구가 거의 답변을 못한다.. 막연한 지식 또는 주변적인 답변만 할 뿐 정작 질문 자체에 대해서는 답변을 하지 못한다. 그냥 가져다 쎴다. 잘 모르겠다... 어느 것 하나도 깔끔한 답변이 없다. 딱 자신이 발표한 내용, 말한 내용까지만 알고 있는 것이다.


물론 그럴 수 있다. 바쁜 세상에 모든 것을 다 알 수는 없다. 그게 뭔지는 잘 몰라도 결과가 좋다면 가져다 쓰는 것이 현실이다. 요즘 DNN을 사용하는 것이 그렇다. 그냥 가져다 쓰면 잘 된다. 이른 바 black-box implementer가 되는 것이다. 하지만, 아무리 그래도 최소한 자신이 사용하는 것에 대해서는 기본적인 개념 정도는 알고 있어야 한다.


그 친구는 조금 안타깝다.. 태도나 성실성, 경험 측면에서는 모두 통과다. 하지만 자신이 하고 있는 것에 대해서 의문을 갖지 않는 것은 받아들이기 어렵다. 그것은 잠재력과 같은 것이다..


by 다크 프로그래머

저작자 표시 비영리 변경 금지
신고

'잡기장' 카테고리의 다른 글

인터뷰  (3) 2017.07.13
책읽기의 즐거움  (1) 2017.05.24
말말말  (0) 2016.11.29
한국의 영어 교육  (0) 2016.11.23
  • 1992cjm 2017.07.14 14:10 신고 ADDR 수정/삭제 답글

    저랑은 정확히 반대되는 상황이네요.
    요번에 취업을 하면서 '내가 왜 뽑혔지?' 이런 의문이 들었었거든요.
    시험, 발표, 면접을 보면서 경쟁자 분들의 스펙을 대강 들어보면 제 경력, 경험, 학벌, 영어점수은 모두 보잘것없는 고스펙의 지원자들이더군요.
    저는 제가 아는 한도 내에서만 성실히 답변을 드렸는데 아는 한도내에서
    질문사항들에 대해 해당 개념이 갖는 의의, 무엇을 위한 개념인지, 실제 사용예는 어떠한지, 내가 생각하는 장단점은 무엇인지등
    평소에 생각해오던 제 철학(?)을 이야기드렸던 것 같습니다.
    블로거님이 PM 으로서 필요한 연구인력을 판별하시는것처럼 그 친구분도 겉보기 스펙이 아니라 공학자가 추구해야하는 시스템의 이해, 분석등 대상을 단순화하고 이해하고 응용하는, 학문적인 가치에 집중하였다면하는 아쉬움이 있네요.

    • BlogIcon 다크pgmr 2017.07.14 14:38 신고 수정/삭제

      축하합니다. 현재와 가능성을 인정받은 것이네요. 사람을 뽑을 때, 현재는 최소한의 기준으로서 의미가 있지만 이 기준만 넘는다면 태도와 가능성이 훨씬 중요하다고 생각합니다.

  • 결국 2017.09.15 20:13 신고 ADDR 수정/삭제 답글

    그 지원자분 어떻게 됬나요? 뽑혔나요 나가리됬나요? 궁금하네요

파워포인트(ppt) 동영상 재생하는 다양한 방법

알아두면 좋은 것들 2017.06.16 14:50

파워포인트(ppt)에서 동영상을 재생하기 위해 발표 도중에 마우스로 동영상을 클릭하는 것은 매우 불편한 일이다. 그렇다고 '자동 실행'으로 재생 옵션을 설정하면 ppt 페이지가 바뀌자마자 (마음의 준비를 하기도 전에) 동영상이 재생되어서 발표의 호흡이 흐트러지는 경우가 있다. 그리고 컴퓨터 사양이 낮은 경우에는 간혹 동영상 로딩을 위해 딜레이나 버벅거림이 발생할 수 있다.


이러한 문제점을 해결하는 한 방법은 처음 페이지에 진입했을 때에는 동영상이 정지되어 있다가 스페이스를 한번 눌렀을 때 재생이 시작되도록 만드는 것이다.


언뜻 그게 왜 좋지? 하는 생각이 들 수도 있다. 하지만 이러한 방식에 익숙해지면 이게 유용한 방식임을 수긍하게 될 것이다.


그렇게 하면 (정지된) 화면을 보면서 미리 호흡을 가다듬을 수도 있고 또 상황에 따라서는 필요한 설명을 먼저 진행한 후에 동영상을 재생할 수도 있다. 중요한 점은 자신이 원하는 시점에 (그리고 자연스럽게) 동영상을 재생시킬 수 있다는 점이다.



스페이스바(spacebar)로 동영상 재생하기


먼저 ppt에서 동영상을 선택한후 아래 그림과 같이 비디오도구 - 재생 - 시작옵션이 '클릭할 때'로 선택되어 있는지 확인한다 (기본적으로 설정되어 있는 값)



다음으로 현재 동영상이 선택되어 있는 상태에서 애니메이션 탭을 선택한 후 아래 그림과 같이 '실행' 버튼을 선택한다.



이것으로 설정 완료!! (원하는데로 기능이 동작하는지 슬라이드쇼로 확인하자)


☞ 슬라이드 쇼에서 해당 페이지로 들어오면 동영상이 정지된 상태로 페이지가 나타난다. 여기서 스페이스 바를 한번 눌러주면 동영상 재생이 자동 시작된다.



스페이스바(spacebar)로 여러 동영상 동시에 재생하기


만일 한 페이지에서 재생할 동영상이 여러 개이고 앞서와 마찬가지로 스페이스바를 누를 때 재생을 시작하고 싶다면 아래 그림과 같이 재생할 동영상을 모두 선택한 후 애니메니션 '실행'을 선택해준다.



그러면 설정 끝!!


☞ 위 그림과 같이 동영상 왼쪽 모서리에 같은 숫자(위 예에서는 '1')가 표시되면 성공적으로 설정이 완료된 것이다.



스페이스바로 여러 동영상 하나씩 재생하기


만일, 여러 개의 동영상을 스페이스를 누를 때마다 하나씩 차례대로 시작하고 싶다면 아래 과정을 따라한다.

  • 가장 먼저 재생하고 싶은 동영상을 마우스로 선택한다.
  • 애니메이션 '실행'을 선택한다.
  • 그 다음으로 실행하고 싶은 동영상을 선택한 후, 애니메이션 '실행'을 선택해 준다.
  • 이 과정을 반복한다.



☞ 성공적으로 설정이 되면 위 그림처럼 재생 순서에 따라 동영상 좌상단에 숫자로 번호가 매겨진다. 슬라이드쇼로 이 페이지에 들어오면 처음에는 모든 동영상이 정지된 상태로 보여진다. 이후 스페이스 바를 한번 누르면 첫번째 동영상이 재생된다. 스페이스 바를 다시 한번 더 누르면 두 번째 동영상도 재생을 시작한다.



참고 1) 여러 동영상 동시에 자동 재생하기


참고로 페이지에 진입하자마자 (스페이스바를 누르지 않아도) 여러 동영상이 자동으로 재생되도록 하기 위해서는 먼저 아래 그림처럼 동시에 재생하고자 하는 동영상들을 한꺼번에 선택한 후 비디오도구 - 재생 - 시작옵션을 '자동 실행'으로 선택한다.



이후 애니메이션 탭에서 시작옵션을 '이전 효과와 함께'로 선택해 준다.



이렇게 하면 설정 끝!



참고 2) 발표 도중에 특정 페이지로 바로 이동하기


동영상 재생과는 관계 없지만 유용한 팁으로 발표(슬라이드 쇼) 도중에 특정 ppt 페이지로 바로 이동하는 방법이 있다. 그건, 키보드에서 페이지 번호를 친 후 엔터(enter)키를 누르는 것이다. 발표를 하다보면 특정 페이지에 대해서 질문을 받는 경우가 있는데 이럴 때 사용하면 꽤 유용하다.


☞ 예전에 한번 알았던 것인데, 이제 돌아서면 잊어버리는 나이라.. 방법이 기억나지 않아서 한참 헤맸습니다. 인터넷에는 잘 검색도 되지 않고.. 그래서 개인적으로도 참고할 겸 정리해 놓습니다.


by 다크 프로그래머


저작자 표시 비영리 변경 금지
신고
  • BlogIcon SPW 2017.06.26 01:48 신고 ADDR 수정/삭제 답글

    G메일로 메일 하나 발송했습니다. 확인 바랍니다.

  • ㅇㅇ 2017.07.05 23:04 신고 ADDR 수정/삭제 답글

    항상 좋은정보 잘 보고있습니다.
    우스갯소리로 그냥 검은상자만 넣어둔 다음 발표시 몇번 클릭하는척 하고 "어 안되네" 라고 말한다음 파워포인트를 내리고 파일을 직접 재생시키는 방법도 있다고는(...)합니다.