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

개발한 것들 2017. 7. 18. 11:21

동영상 또는 이미지에 ID를 가진 물체 경계사각형(bounding box)를 labeling할 수 있는 유틸러티 프로그램입니다. 인터페이스 등 사용성은 어느 프로그램보다 뛰어나다고 생각합니다. 학습 데이터 생성 외에도 비디오 편집이나 이미지들을 동영상으로 합치거나 분리할 때, 개인정보 보호를 위해 사람 얼굴 등을 모자이크하는 용도로도 활용할 수 있습니다.

 

※ 이 프로그램은 코드서명을 하지 않았기 때문에 Windows 및 웹브라우져에 의해 다운로드 및 실행이 차단될 수 있습니다 (참고링크). 100% 안전한 프로그램이긴 합니다만 필요한 분들만 사용하시기 바랍니다..

 

 

This is a utility program that can label object bounding boxes with ID in videos and images. Anyone can use it for non-commercial purposes. If you have any inquiry or suggestion, you can leave message below or email to darkpgmr.lee at gmail dot com.

 

※ Since this program is not code-signed, download and execution may be blocked by Windows and web browsers. This is a personally created program and a 100% safe program, but only for those who need it.

 

 

DarkLabel (Ver.2.4, 2021.09.04)

 

latest executable: DarkLabel2.4.zip

github: https://github.com/darkpgmr/DarkLabel

previous versions: check Version History below

 

DarkLabel2.0 Tutorial Video (https://www.youtube.com/watch?v=lok30aIZgUw)

 

old demo1(gt_extractor): https://www.youtube.com/watch?v=zFpX2bORz5E

old demo2(darklabel1.2): https://www.youtube.com/watch?v=vbydG78Al8s

 
 

Main Features (주요 기능 및 특징)

  • Video/image object labeling & annotation tool (bounding box with ID and label)

- automatic object labeling by visual tracking (multi-target)

- semi-automatic labeling by linear interpolation

- user-configurable hotkeys and zoom in / zoom out support

- user-configurable data formats (pascal voc, darket yolo, xml/txt, any other user-defined formats)

  • Video splitting (into images) & image merging (into a video file) tool
  • Video cropping tool (cut and save only the selected section in the video)
  • Video/image privacy masking tool (mosaic the box area in the image)
  • Windows only (32/64 bits)

 

Program Configuration (프로그램 설정)

 

The program can be configured by modifying darklabel.yml attached in the zipped archive.

  • define and modify data formats
  • change hotkeys (frame navigation, action keys)
  • change video/image export setting (video codec, frame rate, image format)
  • set default save/load directory
  • define class labels
  • adjust GUI drawing (box width, box color, ...)

 

Basic Instruction (프로그램 사용법)

 

Arow/PgUp/PgDn/Home/End: navigate image frames

 

Mouse: Left(create box), Right(cancel the most recently created box)

Shift+Mouse: Left(modify box), Right(delete selected box/trajectory or all boxes)

Shift+DoubleClick: modify box properties (label, ID, difficulty)

 

DoubleClick: select/deselect box trajectory

*box trajectory: boxes connected across frames with the same ID and label

 

Ctrl+'+'/'-': zoom in/out

Ctrl+Arrow: scroll zoomed window

Ctrl+MouseWheel: zoom in/out

Ctrl+MouseDrag: scroll zoomed window

 

Enter or Spacebar: apply tracking (selected trajectories or newly created boxes only)

Ctrl+'s': save gt

F1: show this help

 

 

Advanced Instruction (고급 사용법)

 

  • Labeling by object tracking

- By pressing 'Return' key, newly created bounding boxes in the current frame are tracked in the next frame and labeled automatically. (newly created boxes: the boxes that are created after entering the frame)

- If there are selected trajectories in the frame (object trajectory can be selected by double clicking a box), only the trajectory boxes are tracked (newly created boxes are not tracked).

- If tracking is applied to trajectories, it first deletes their tail parts (connected trajectory boxes after the current frame) and then continue the tracking, keeping their IDs and labels. This functionality can be used to correct previous wrong tracking.

- Two trackers are embeded. (developed by darkpgmr)
  . tracker1 (robust): good for deformable objects (e.g., human, ..)
  . tracker2 (accurate): good for rigid/static object (e.g., vehicle, wall, house, ...)

  • Data Sampling/gathering

If you want to sample images in a video and save them (e.g. gathering training samples), draw dummy boxes on the images and then export the annotation results as images with the "no box drawing" option selected and the "labeled frames only" checked.

  • Privacy Masking

draw boxes on the privacy area (e.g. human faces) and then export the annotation results with the "mosaic the box area" option selected.

  • Full screen mode

do annotation in full screen mode in case the image is too large to show in your monitor (double click the title bar of image window). You also can utilize zoom in functionality.

  • Don't forget to save your annotation results as often as possible. You can just press Ctrl+S.

 

Remark (2020.7.9)

 

그동안 프로그램이 이유없이 죽는다는 댓글들이 종종 있었는데, 원인을 모르다가 최근에야 UI delay를 없애기 위해 도입했던 thread 처리에 문제가 있었음을 알게 되었습니다. 이번 DarkLabel 2.0에서는 대부분  문제를 제거했지만 혹시 남은 문제가 발견되면 피드백 바랍니다.

 

Version History

 

DarkLabel 2.4 (2021.09.04)

- support to save/load data in .csv file
- support MOT data format
- add a new format specifier ("c=n"): it can be used to save/load dummy values (see darklabel.yml for it's usage)
- enhance error handling (make it more robust to various external and internal errors)

 

DarkLabel 2.3-update2 (2021.07.03)

- fix possible mismatch between labels and saved images in case of video input
- support to delete labels in intervals

- add two new adjustable parameters in darklabel.yml
  . min_object_size: minimum allowed box size
  . hotkey_return: secondary hotkey for return/enter key (for tracking)
- adjust GUI layout (make it more slim)

 

DarkLabel 2.3-update1 (2021.03.23)

- fix the program to sort image list naturally by their file name

. before: 0.jpg, 1.jpg, 10.jpg, 100.jpg, 101.jpg, ...

. after: 0.jpg, 1.jpg, 2.jpg, 3.jpg, ...

 

DarkLabel 2.3 (2020.10.25)

- enable selection of multiple object trajectories at the same time

- tracking is applied for object trajectories.

- minor bug fixes..

 

DarkLabel 2.2 (2020.10.20)

- support media cropping (the selected section in the video / image list)

- it's able to change export settings on the GUI.

 

DarkLabel 2.1 (2020.09.10)

- add two new parameters to support easy data gathering/sampling in darklabel.yml

  . export_labeled_frame_only

  . export_without_box_drawing

- doesn't popup message box now after video/image save is done.

 

DarkLabel 2.0 (2020.06.29)

- support machine learning formats: xml(pascalvoc/imagenet), txt(darknet yolo)

- support user-defined data formats (data formats can be defined in 'darklabel.yml')

- correct program stability problem (bug-fix related to unexpected program exit)

- support zoom in / zoom out of working image

- add user-configurable hotkeys (it can be modified in 'darklabel.yml')

- labeling by tracking is now applied only to newly created boxes (keep the old boxes)

- lots of minor revision to enhance user convenience and program stability

 

* DarkLabel 1.3 (2018.03.31)

- 프로그램의 완성도를 높임 (ui, 반응속도, 안정성, 에러체크, 미세한 기능들, ...)

- trajectory 단위로 박스 선택/삭제/label수정 가능

- label(class)과 id를 분리해서 저장/로드할 수 있는 데이터 포맷 추가

 

* DarkLabel 1.2 (2018.02.19)

- 심각한 버그 수정: 숫자를 label로 사용할 경우 gt 데이터 로드시 오류 현상 수정

- interpolation을 이용한 labeling 기능 추가 (본문의 프로그램 사용법 참조)

- 개체 ID 자동부여 및 auto labeling 기능 추가 (본문의 프로그램 사용법 참조)

- 비디오내 프레임 이동시(navigation) GUI 반응성 개선

 

* 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)

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

 

by 다크 프로그래머

  • 이전 댓글 더보기
  • Tuan Nguyen 2020.10.01 15:37 ADDR 수정/삭제 답글

    What keyboard shortcut to jump up to 30 frames like in your tutorial video on Begin Interpolation and End Interpolation?

    According to your answer: As for save settings, I guess the program is placed in a system folder and it can't create settings file (darklabel.sav). If it is the case, you can move the program to a non-system folder or change authority setting of the folder.
    -> I save the program in D drive, not C. also I try to run in both drives, it's not working in both.

    • BlogIcon 다크pgmr 2020.10.04 20:00 신고 수정/삭제

      You can use PgUp & PgDn keys (or Q & E) to jump frames and the number of frames to jump can be configured in darklabel.yml.

      As for saving settings, I have no other idea why it doesn't work...

  • 다크pgmr's student 2020.10.27 20:13 ADDR 수정/삭제 답글

    thank you for your hard work.
    really thank you.
    dark programmer....... You are the teacher of my heart.

  • 룡섭 2021.01.12 19:59 ADDR 수정/삭제 답글

    정말 감사합니다. github에서 다른 레이블 코드 쓰려는데 계속 오류 떠서 몇일 째 고생했는데, 이거 정말 편리하네요!

  • 제니스 2021.01.19 15:01 ADDR 수정/삭제 답글

    안녕하세요 해당툴을 사용해보려하는데
    ## Predefined Classes Sets (you can define and add your own classes set here)
    해당 부분은 어떻게 수정해서 써야할가요?
    필요한객체들만 라벨링하고싶은데 없는 항목들이 있어서 추가하려고합니다.

    • BlogIcon 다크pgmr 2021.01.19 16:23 신고 수정/삭제

      예시된, my_classes1, coco_classes, voc_classes처럼 자신만의 클래스 셋을 하나 만드신 후, 데이터포맷(format1, format2, ...)의 클래스셋(classes_set:)에 만드신 클래스 셋 이름을 적어주면 됩니다. 이후 툴에서 해당 포맷을 선택하면 설정한 클래스 셋이 활성화될 것입니다.

  • 홈런킹 2021.02.24 00:42 ADDR 수정/삭제 답글

    안녕하세요 맥스테드 이승엽 이라고 합니다.

    현재 Dark Label 프로그램을 설치하고 테스트 중에 있습니다.
    이 프로그램에 대한 커스터마이징 기능이 필요합니다.
    혹시 추가 개발이 가능하신지 문의 드립니다.
    당연히 비용은 지불할 예정입니다.
    비용 지불에 대해 2가지 방법이 있을것 같습니다.
    프로그램을 사용하는 방법하고, 소스를 넘겨 받는 경우가 있는데 2가지 경우 모두 가능하신지 궁금합니다.
    가능한 부분에 대한 비용도 궁금합니다.
    감사합니다.

    • BlogIcon 다크pgmr 2021.02.24 09:48 신고 수정/삭제

      안녕하세요. 말씀하신 것은 현재로서는 모두 어렵습니다. 양해 부탁드립니다. 나중에 오픈소스로 전환할 수 있을지는 모르겠습니다만 장담은 어렵습니다.
      혹시 간단한 기능추가로 해결이 가능한 문제라면 이곳에 댓글로 남겨주시기 바랍니다.

  • 서지니 2021.03.11 09:49 ADDR 수정/삭제 답글

    덕분에 잘 사용하고 있습니다.
    한가지 문제점을 수정 해주실 수 있을지...
    이미지 디렉토리에 파일이 많이 있는 경우 (Linux server에 samba로 연결)
    파일이 이름으로 정렬되지 않고 임의의 순서로 나오는데
    이름 정렬 후 순서대로 나오게 해주실 수 있을지 부탁 드립니다.

    • BlogIcon 다크pgmr 2021.03.18 14:39 신고 수정/삭제

      안녕하세요. 좋은 의견 감사합니다. 그런 문제가 있는 지는 몰랐습니다. 기회가 된다면 다음 업데이트 때에 고려토록 하겠습니다.

    • BlogIcon 다크pgmr 2021.03.23 11:30 신고 수정/삭제

      해당 문제의 수정 버전을 업로드했습니다.

    • BlogIcon 서지니 2021.03.29 10:25 수정/삭제

      바로 반영해주시다니 감사합니다.

  • 학생 2021.04.09 09:50 ADDR 수정/삭제 답글

    딥러닝을 배우고 있는 학생입니다. 덕분에 잘 사용 하고 있습니다. 덕분에 많은 공부가 되었습니다.
    몇가지 문제점 수정 해주실 수 있는지 궁금해서 이렇게 댓글 달아봅니다.

    이미지 디렉토리에서 읽어 올때, 전체화면으로 할 경우 이미지가 전체 화면에 맞춰져서 비율이 이상하게 되는데, 원본 이미지 비율대로 유지 하게 하고. 이미지 라벨링 할때 박스가 제대로 보이지 않는데(오른쪽, 왼쪽선만 보이고 위 아래가 안보임) 할 수 있는지 부탁 드립니다.

    감사합니다. :)

    • BlogIcon 다크pgmr 2021.04.09 19:25 신고 수정/삭제

      고해상도 이미지의 경우 디스플레이 창의 스케일을 줄이다 보면 선이 사라질 수 있습니다. 알고 있는 현상이지만 opencv 라이브러리에 종속된 문제라서 해결이 쉽지 않습니다. 불편하겠지만 프로그램에 있는 zoom 기능을 활용해 보시기 바랍니다.

  • 단칸방 2021.05.01 13:58 ADDR 수정/삭제 답글

    안녕하세요 개발자님.
    프로그램 예전 버전부터 잘 쓰고 있습니다. 2.3으로 업그레이드 된 버전을 사용하는데 어려움이 있어 댓글 작성합니다.
    gt save as 시에 문제가 있습니다.
    4. fn,cname, id, x1, y1 ,w, h
    - 박스를 만들고 4번의 형식으로 gt파일에 저장하려고 하면 다음과 같은 문구가 뜹니다.
    Save failed: format specifier 'fn' cannot be applied for images!
    6. classid, diffcult, x1,y1,x2,y2
    - Save failed: format specifier 'iname' is missing

    정말 간단한 문제인 것 같은데, 해결법좀 알려주실 수 있으십니까 ?
    감사합니다.

    • BlogIcon 다크pgmr 2021.05.07 14:03 신고 수정/삭제

      작업할 원본 데이터의 타입이 이미지목록(jpg, png등)인지 동영상 파일(avi 등)인지에 따라서 저장 포맷을 다르게 설정했기 때문입니다. fn은 frame number이므로 원본이 동영상 파일인 경우에만 사용할 수 있습니다. 그리도 원본이 이미지목록인 경우에 하나의 파일로(merged) 결과를 저장한다면 이미지 참조를 위해 iname(이미지 파일명)이 저장포맷에 반드시 포함되어야 합니다.

  • 뉴비 2021.05.10 18:06 ADDR 수정/삭제 답글

    안녕하세요, 좋은프로그램 개발 감사드립니다.
    데이터셋 구축을 위해 동영상 태깅프로그램을 찾고있었는데,
    혹시 기능이 추가가 되는지 궁금합니다.
    영상 태깅이다보니 구간별 label 기능이 있었으면 합니다.
    예를 들면 1-30 frame은 label1
    35-40은 label2와 같은 기능이 추가가 될수 있는지 알고싶습니다~

    -감사합니다-

    • BlogIcon 다크pgmr 2021.05.11 16:35 신고 수정/삭제

      필요하신 구간 labeling 기능이 box 라벨링 없이 이미지 별로 positive / negative 구분 목적인가요

  • BlogIcon House-of-E 2021.05.17 14:09 신고 ADDR 수정/삭제 답글

    안녕하세요. 다크프로그래머님.
    Darklabel 프로그램을 잘 사용하고 있습니다. 감사합니다.
    혹시 비디오 파일을 읽어와서 라벨링을 할 때 GT와 image 파일 저장이름을 읽어온 (비디오파일이름 + 숫자) 로 저장할 수 있는 방법이 있을까요?

    • BlogIcon 다크pgmr 2021.05.17 14:27 신고 수정/삭제

      툴에서는 따로 해당 기능은 없습니다. DarkNamer 등과 같은 파일명 변환 툴을 이용해 보시면 어떨까 싶습니다.

    • BlogIcon House-of-E 2021.05.18 14:14 신고 수정/삭제

      넵 DarkNamer 사용해 보겠습니다!
      답변 감사합니다!

  • ㅇㅇ 2021.05.24 23:25 ADDR 수정/삭제 답글

    windows고 윈도우즈 보안이랑 백신 다끄고해도 실행 후 directory열고 좌클릭해도 박스가 안쳐집니다..ㅠㅠㅠㅠ 왜이러는걸까요

  • gracehci 2021.06.13 11:25 ADDR 수정/삭제 답글

    안녕하세요. 다크프로그래머님.
    본 사이트에서 항상 많은 도움 얻고 있습니다.

    Darklabel 프로그램을 어떠한 환경에서 프로그래밍 하셨는지 궁금해서, 메모 남깁니다.
    혹시, MFC Dialog 기반으로, opencv의 namedWindow, imshow 등의 함수로 구현하셨는지요?
    (제가 알기로는 이 둘을 연동하는 방법이 없는거 같아서요.)

    아니라면, 전반적인 대략적인 프로그램 구현 환경/방법론이라도 부탁드리겠습니다.
    감사합니다.

    • BlogIcon 다크pgmr 2021.06.13 12:05 신고 수정/삭제

      MFC dialog 기반으로 opencv namedwindow를 이용한 것 맞습니다. 연동이 안될 이유가 없습니다만...

    • BlogIcon gracehci 2021.06.15 10:21 수정/삭제

      네.. 답변 감사합니다.
      그러면, MFC DIALOG에서 버튼클릭 후, 이미지를 선택하면, 오른쪽에 새로운 창이 생성되고, 새로운 창에 이미지가 표시됩니다.
      이 새로운 창이, 혹시 윈도우 컨트롤인가요? OPENCV의 namedwindow로 생성한 창인가요?
      namedwindow로 생성된 창이라면, 어떻게 생성하는지 간단한 코드라도 부탁드리겠습니다.
      감사합니다.

    • BlogIcon 다크pgmr 2021.06.15 11:46 신고 수정/삭제

      예를 들어, 다음과 같은 식으로 이미지를 띄울 수 있습니다.
      CDialog::OnMyButtonClicked()
      {
      cv::imshow("img", m_image);
      cv::waitKey(1);
      }
      그리고 마우스 등의 이벤트 처리는 cv::setMouseCallback 함수를 이용해서 등록할 수 있습니다.
      사실 opencv의 가장 기본적인 내용이라서..

    • BlogIcon gracehci 2021.06.15 16:56 수정/삭제

      친절한 답변 감사합니다. ^^

  • ㅇㅇ 2021.06.17 00:35 ADDR 수정/삭제 답글

    labellmg쓰다가 넘어왔는데 완전 좋네요

    근데 한가지 버그를 발견했습니다
    Open video를 하고 GT load를 하면 이전에 라벨링한대로 문제없이 표시가 되는데
    Open Image Directory를 하고 GT load를 하면 이전에 라벨링 한것들중 몇개가 위치가 안맞거나 크기가 다르게 표시가 되네요 ㅜㅜ

    정확히 설명하자면
    1 프레임 차이로 image저장이 잘못되는거 같습니다.

    확인해보니까 Video로 열었을 때 프레임 번호가 100번인 이미지에 라벨링을 하고 라벨링된 image를 저장하면 99번프레임에 해당하는 이미지가 이름만 "100.jpg"로 저장되는 경우가 가끔 있습니다.

    영상 5개 정도를 라벨링 해봤을 때 1개 영상에서 문제가 발생합니다. 전부 유튜브에서 다운받은 영상이라 화질은 720p, 형식은 mp4 모두 동일한 조건입니다.

    • BlogIcon 다크pgmr 2021.07.01 09:15 신고 수정/삭제

      안녕하세요. 버그 리포트 감사합니다.
      저도 확인해 보고 여기에 댓글로 확인 결과를 남기겠습니다.

    • BlogIcon 다크pgmr 2021.07.02 22:23 신고 수정/삭제

      예전에, 한 친구에게서 opencv로 video에서 frame을 순차적으로 얻어올 때 프레임 번호가 가끔씩 불일치하는 현상이 있다고 들었던 기억이 납니다. 확실치는 않지만 비슷한 문제일 것 같은데요, 일단은 순차접근 방식이 아닌 명시적으로 프레임 번호를 설정한 후에 비디오 프레임에 접근하는 방식으로 프로그램을 수정해 보았습니다.
      darklabel2.3-update2로 올렸으니 해당 문제가 해결이 되었는지 한번 확인을 부탁드립니다. 확인 결과를 알려주시면 큰 도움이 되겠습니다.

  • ivorlee 2021.06.30 16:17 ADDR 수정/삭제 답글

    박스 trajectory를 구할때 어떤 알고리즘을 사용하신건가요?????

    • BlogIcon 다크pgmr 2021.07.01 09:19 신고 수정/삭제

      추적 알고리즘을 물어보신 것인지요? 추적기는 제가 만든 알고리즘(https://darkpgmr.tistory.com/111)이라서 따로 어떤 알고리즘을 썼다고 말씀드리기 어렵습니다.

    • ivorlee 2021.07.01 18:10 수정/삭제

      혹시 프로그램 전채 코드를 오픈하실 계획은 없나요??

  • saeam 2021.07.30 17:08 ADDR 수정/삭제 답글

    설치 후 실행이 되지 않는데 이와같은 오류를 해결할 방법은 없을까요? 클릭해도 나타나질않네요ㅠ

    • BlogIcon 다크pgmr 2021.07.31 00:19 신고 수정/삭제

      아마도 프로그램에 코드서명을 하지 않아서 시스템에서 차단된 것으로 보이는데요, 인터넷에서 관련하여 방법이 나오지 않을까 싶습니다.

  • Hun2 2021.08.07 14:25 ADDR 수정/삭제 답글

    다크라벨 아주 잘 사용하고 있습니다. 감사합니다. ^^

    최근에 라벨링 보안작업을 다시 하고 있는데 라벨링 후 저장을 하면 이상하게 좌표가 마이너스 값이 입력되어서 불러오기가 안돼는 경우가있고, 아예 사이즈 이상으로 저장 자체가 안돼는 겅우가 계속 발생하고 있는데... 혹시 이유를 아시나요??

    위와 같은 현장이 일어나면 이미지에서 라벨링이 없어집니다. 좌표파일 열어보면 -값으로 저장 되어있구요~~

    2 0.47526 0.249306 0.0182292 0.0217593
    0 0.48776 0.494907 0.66875 0.984259
    2 -1.5 -1.5 -1 -1

    이런식으로 저장되있거나

    0 0.492057 0.496065 0.71276 0.981019
    2 -1.49961 -1.49931 -0.99974 -0.999537
    2 0.236589 0.668287 0.0106771 0.0199074

    이런식으로 -값이 들어가서 불러오기가 안됩니다.

    해결 방안이 있을까요??

    최근에 컴터에 새로 깐건 퀵파인더라고 벤처24쪽 서류 통합으로 올라가는 프로그램 깔구부터 그런것 같기도하구요... 정확하진 않습니다.

    리라벨 작업하는데... 괭장한 압박이 오네요~ 도와주세요~~ ㅠㅠ

    • BlogIcon 다크pgmr 2021.08.07 23:08 신고 수정/삭제

      안녕하세요. 저도 확인해 보도록 하겠습니다. 그런데, 사용하시는 darklabel 버전은 어떻게 되시나요? 그리고, 그런 현상이 나타나는 예상되는 사용 패턴이라든지 생각하시는 원인이 있다면 말씀해주시면 도움이 될 것 같습니다. 그리고, 지원되는 포맷들 중에서 어떤 데이터 포맷으로 저장하고 읽었는지도 알려주시기 바랍니다.
      제가 프로그램을 만들어서 드리고는 있지만, 저는 딥러닝 쪽은 거의 안해서 제가 실제로 프로그램을 잘 사용하지는 않습니다. 그래서, 실행시 문제들을 파악하기가 쉽지는 않은데요, 좀더 부가정보를 주시면 원인을 파악하는데 도움이 될 것 같습니다. 그리고 혹시 설정파일(darklabel.yml)에 문제가 있을 수도 있으니 새로 파일을 받아서도 한번 테스트해 보시면 좋을 듯 싶습니다.

  • hun2 2021.08.31 23:50 ADDR 수정/삭제 답글

    안녕하세요~ 다크프로그래머님~ ^^

    전에 문의드렸던 -값 에러 발생 페턴을 알았습니다.

    페턴이라기보다 어떻게 하면 생기는지 알았습니다.

    최초 작업시에는 에러없이 잘 저장되고 잘 로딩 됩니다.

    문제는 라벨링이 끝나고 저장을 했던 데이터를 다시 가지고 와서 제작업 후 저장하면 생기는 현상 같습니다.

    예로 500장 정도의 이미지에
    라벨링 후 저장 (최초 저장시 아무 문제 없음)

    그리고 다시 불러와서 라벨링 수정 후 저장

    그러면 저장이 잘 되는 경우도 있고 오류 메시지가 표시될 때도 있습니다.

    문제는 수정된 라벨링 값이 -값으로 저장되어서 다시 불러오기하면 계속 오류가 뜬다는 거에요~ ㅠㅠ

    한 번 작업 끝낸 데이터를 어느날 갑자기 다시 작업 해야 겠다 마음먹고 제작업을 시작했다 버러진일입니다.

    버전은 최신 버전이고요~

    이전 버전도 같은 오류가 있습니다.

    이버그좀 잡아주세요~~ 네~~~~~ ^^

    • BlogIcon 다크pgmr 2021.09.01 17:40 신고 수정/삭제

      이렇게 피드백 주셔서 감사합니다. 문제 확인을 위해 몇 가지만 추가로 확인을 부탁드립니다.
      1. 사용하신 데이터 포맷은 어떤 건가요? yolo로 보이는데요 [classid, ncx, ncy, nw, nh], merged: 0, ext: txt로 저장하신 건지요? 사용하신 데이터 포맷을 알면 좀더 확실한 문제확인이 가능할 것 같습니다.
      2. 원본 데이터가 이미지인가요? 아니면 동영상 파일인가요? 이미지들로 보이지만 그래도 확인을 바랍니다.

    • BlogIcon 다크pgmr 2021.09.04 19:24 신고 수정/삭제

      코드를 검토해 보니, 데이터 파일이 외부적으로 변경되면(예를 들어 윈도우즈-리눅스 간 이동하면서 포맷이나 인코딩 등변화) 유사한 문제가 발생할 수 있는 것 같습니다.
      일단은 예외처리를 좀더 보완한 버전(2.4)을 올렸습니다. 문제가 해결될지는 모르겠네요.

  • 룡섭 2021.11.27 16:17 ADDR 수정/삭제 답글

    안녕하세요 선생님! 좋은 툴 만들어주셔서 진심으로 감사드립니다. 제가 현재 대학원생 석사과정인데, 이 툴을 논문을 쓸때 인용하고 싶습니다. 깃허브에 라이선스 내용이 없어서 그런데, 혹시 인용해도 괜찮을까요? 웹사이트 주소를 기재하는 방식으로 인용하고자 합니다! 감사합니다 :)

  • mjk 2022.02.21 16:02 ADDR 수정/삭제 답글

    안녕하세요, 다크pgmr님 덕에 데이터 라벨링이 한결 수월해진 수혜자입니다.

    이번에 windows 11으로 업그레이드 했더니 경로에 한글이 포함된 경우 darklabel에서 그림이나 영상을 읽어오지 못하는 문제가 발생하네요.

    처음에는 opencv문제 인줄 알았는데 아마 윈도우 언어 문제가 아닐까 합니다(제가 영어로 써서;;)

    암튼 혹시 문제 생기시는 분들은 파일 경로에 한글을 모두 영어로 바꾸면 된다는걸 알려 드립니다

  • M4 2022.03.16 08:28 ADDR 수정/삭제 답글

    안녕하세요 다크님
    프로그램 사용중에 문의가 있습니다.
    Person 에 대한 Box 칼라는 정하지 못할가요?
    예를 Person : 빨강 / Face : 노랑 이런식으로 지정하고 싶은데
    방법이 있으면 알려주시면 감사하겠습니다.
    좋은 프로그램 만들어 주셔서 감사합니다.

    • BlogIcon 다크pgmr 2022.03.16 08:43 신고 수정/삭제

      좋은 기능인데, 현재는 그런 기능은 없습니다.