[알약 분류] 0. 프로젝트 설명 및 train 시작!
본문 바로가기
OpenCowork/알약분류

[알약 분류] 0. 프로젝트 설명 및 train 시작!

by Gox2Maker 2023. 10. 17.
728x90
반응형

 

 

     


    알약 분류

    지인이 알약을 분류하는 것이 필요하다고 합니다. 그래서 알약 분류 프로젝트를 시작합니다.

    주어진 샘플 데이터는 사진 4장, 비디오 3개입니다.

     

    요청사항은 다음과 같습니다.

    1. 알약 탐지

    2. 어떤 알약인지 분류

     

    먼저, 탐지부터 시작하겠습니다.

     


    영상에서 사진 얻기

    데이터가 부족해서 3개 영상 중 하나를 사진으로 추출하려고 합니다. 나머지 2개 영상은 test데이터입니다.

     

    '''get image from video'''
    import cv2
    import os
    import numpy as np
    
    def get_image_from_video(video_path, save_path, save_name, time_interval):
        cap = cv2.VideoCapture(video_path)
        frame_count = 1
        success = True
        while (success):
            success, frame = cap.read()
            if frame_count % time_interval == 0:
                cv2.imwrite(os.path.join(save_path, save_name + '_' + str(frame_count) + '.jpg'), frame)
                print('save image:', os.path.join(save_path, save_name + '_' + str(frame_count) + '.jpg'))
            frame_count = frame_count + 1
        cap.release()

    해당 코드를 이용해서 데이터를 얻었습니다.

     

     

     

     


     

    라벨링

    Yolov7을 이용해서 알약을 탐지하려고 합니다. 먼저, Roboflow를 이용해서 라벨링해야 합니다.

     

    33장의 사진을 라벨링을 했습니다.


     

    데이터 확보

    33장의 사진으로 데이터가 너무 부족해서 roboflow에 공개된 데이터에서 알약 데이터가 있는지 확인했습니다.

    다행히 데이터가 있습니다. 그래서 데이터셋을 다운로드하고 하나로 합쳤습니다.

     

     

     

    train 데이터가 2,700여 장으로 늘어났습니다.!!


    Train

    GPU가 없어서 코랩으로 train 합니다.

    힘내라 GPU!!

     

    배치를 16으로 하니까 멈췄습니다... 배치를 8로 변경하고 다시 train 시작!

     

    1 epoch에 20분 정도 걸립니다. 그럼 총 16시간 소유될 것으로 예상해서 내일 아침에 결과를 확인하겠습니다.

    (제발제발제발)

     

    728x90
    반응형

    'OpenCowork > 알약분류' 카테고리의 다른 글

    [알약 분류] 2. 알약 분류  (0) 2023.10.20
    [알약 분류] 1. Yolov7 train 결과  (0) 2023.10.18