labelImg 및 ChainnercV를 사용하여 개편 작업을 간편하게 수행

대강


최근 수년간 연구자들은 AI를 위해'변형 ※ '의식을 반복하며 창조적인 작업을 박탈당했다.
이것은 이런 모방을 좀 간단하게 하는 이야기다.
※ 모조(영어:annotation)
메모로 데이터에 관련 정보(메타데이터)를 추가합니다.
일반적으로 메타데이터는 XML과 같은 설명으로 표시됩니다Wikipedia.
※ 주의
이 글에서 이른바 대상의'변형'은 이미지에서 물체를 검출하는 데 쓰이는 변형 방법을 가리킨다.
그림 속의 물체 이름 (라벨) 과 물체 위치 (물체를 둘러싼 직사각형) 의 정보를 아날로그 정보로 기록합니다.

1 labelImg


세상에는 편리한 게 많아요.
이번에 주목한 것은'labelImg'이라는 도구다.
Github:  https://github.com/tzutalin/labelImg

1.1 특징

  • 직사각형은 Pascal VOC 형식과 YOLO 형식으로 출력할 수 있다
  • 직사각형을 부여할 때 보조선
  • 이 나타난다
  • 출력된 xml 파일을 다시 읽을 수 있음
  • 이것은!쓸 수 있다!(자세한 내용은 아래와 같다)

    1.2 설치 및 실행 방법


    저자의 지아이허브에도 기재돼 있지만 일단 적어보자.

    Python 3 + Qt5

    git clone https://github.com/tzutalin/labelImg.git
    cd labelImg
    sudo apt-get install pyqt5-dev-tools
    sudo pip3 install lxml
    make qt5py3
    python3 labelImg.py
    

    1.3 사용 방법

    python3 labelImg.py를 실행하면 다음 화면이 표시됩니다.

  • 이미지나 이미지가 포함된 디렉토리를 Open 또는 Open Dir에 지정하면 이미지가 표시됩니다.
  • Create RectBox를 눌러 사각형을 그리고 사각형을 그립니다.
  • 사각형을 그리면 탭의 선택 화면이 표시되므로 사각형 물체의 탭을 선택합니다.
  • 초대장 결과를 저장할 수 있습니다.
  • 에는 AutoSave 기능(선택 사항)도 있습니다.

  • 2 편의성


    여기까지는 일반적인 모조 소프트웨어였지만, 이 labelImg 소프트웨어는'출력된 xml 파일을 자동으로 다시 읽기'기능이 있습니다.
    기존 물체 검출 알고리즘으로 물체 검출을 한 출력 결과를 패스칼 VOC 포맷으로 저장하면 이미지의 변형 처리가 반자동화될 수 있다는 것이다.

    2.1 실제로 해봤어요.


    Chainer CV의 example에서 SSD의 검측 처리를 약간 개량하여 이미지에 물체 검측 처리를 가하다
    결과를 Pascal VOC 형식으로 출력하는 프로그램을 만들었습니다.
    프로그램은 이미 GiitHub에게 주었습니다.
    또한 기능상 JPG 이미지로 가져오기, 출력은 Pascal VOC 형식만
    모방 데이터 생성: https://github.com/wakaba130/create_annotation
    사용 방법 등이 GiitHub에 적혀 있습니다.
    이해하기 어려운 부분이 있다면 여기 댓글에 기재해도 대응이 가능하다.

    2.2 출력 정보


    출력 형식은 다음과 같습니다.path 부분은 본가의 패스칼 VOC가 아닌 labelImg 규격이다.
    <annotation>
        <folder>hogehoge</folder>
        <filename>image.jpg</filename>
        <path>/home/hogehoge/image.jpg</path>
      <source>
            <database>Unknown</database>
        </source>
        <size>
            <width>1125</width>
            <height>1600</height>
            <depth>3</depth>
        </size>
        <segmented>0</segmented>
        <object>
            <name>person</name>
            <pose>Unspecified</pose>
            <truncated>1</truncated>
            <difficult>0</difficult>
            <bndbox>
                <xmin>4</xmin>
                <ymin>143</ymin>
                <xmax>947</xmax>
                <ymax>1600</ymax>
            </bndbox>
        </object>
    </annotation>
    

    2.3 워크플로우

  • 한 디렉터리에서 모조 이미지 집합
  • create_ano.py를 사용하여 한 번의 식별
  • labelImg을 시작하고 create_ano.py 출력에 지정된 디렉터리
  • Let's annotation
  • 3 마지막


    다들 당혹스러웠지만 "그냥 하자, 결말이 어떻게 될까?"이런 감정도 있어요.
    상당히 "이거다!"이렇게 이해하는 소프트웨어는 아무리 해도 찾을 수 없다
    이번에 소개한 labelImg 외에도 "이거 편해요!"이런 공구가 있다면 소개해 주세요.

    좋은 웹페이지 즐겨찾기