jupyter lab에서 이미지 라벨링하기

하고 싶은 일



AI에 사용하고 싶은 이미지의 라벨링을 하고 싶지만, GUI를 만드는 것이 귀찮다. . . 생각,
JupyterLab상에서 할 수 없을까라고 생각해, 여러가지 조사하고 있으면 할 수 있었으므로 그 때의 메모.
matplot에 표시된 이미지를 업데이트하는 동안 입력에서 라벨링을 입력하는 이미지.

실행 환경


  • Python 3.8.5
  • jupyter lab 2.2.2
  • mac (windows10에서도 실행됨)

  • 코드



    sample_img 폴더에 있는 이미지를 라벨링합니다.

    준비


    import cv2
    import matplotlib.pyplot as plt
    import os
    import glob
    import IPython
    # 画像のpathを取得
    img_list = glob.glob(os.path.join(r"sample_img","*.jpg"))
    img_list
    >>> ['sample_img/img3.jpg', 'sample_img/img2.jpg', 'sample_img/img1.jpg']
    

    이미지를 표시하는 코드


    name_list = []
    for img_path in img_list:
        # 画像の読み込み
        img = cv2.imread(img_path)
        # 画像を表示するフレーム
        fig = plt.figure(figsize=(5,5))
        ax = fig.add_subplot(1,1,1)
        ax.imshow(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))
        plt.title(img_path)
        plt.pause(.01)
    
        # ラベル付けするためのテキストボックス
        comment = input()
    
        if comment == "break":
            break
        else:
            # 表示している画像をクリア
            IPython.display.clear_output()
            # Inputに入力した文字列をリストに追加
            name_list.append(comment)
    

    동작 화면은 이런 느낌.
    pass

    확인


    # name_listの確認
    name_list
    >>> ['dog', 'cat', 'cat']
    

    마지막으로



    Input 부분을 라디오 버튼처럼 할 수 있으면 좋겠다 ~.

    좋은 웹페이지 즐겨찾기