Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

덕배의 블로그

인공지능(AI) roboflow으로 라벨링, 증강, 전처리, 학습 사용법 본문

인공지능

인공지능(AI) roboflow으로 라벨링, 증강, 전처리, 학습 사용법

김덕배_KDB 2023. 7. 7. 22:49
반응형

Roboflow란?

인공지능을 돌리기 위한 Labeling, 학습을 도와주는 툴이다. 

무료와 유로로 이용이 가능하다.

https://roboflow.com/

 

 

Roboflow: Give your software the power to see objects in images and video

With just a few dozen example images, you can train a working, state-of-the-art computer vision model in less than 24 hours.

roboflow.com

 


Roboflow의 사용법

roboflow 메인 화면
위 사이트에 접속하면 이런 페이지가 뜬다.

 

위에서 말했듯이 무료와 유료버전이 있는데 일반적으로 무료만 사용해도 큰 문제는 없다.

 

여러 버전
밑에서 설명하겠지만 유료로 이용하면 증강 할 수 있는 사진이 늘어나 학습에도 효율적이다.

 

위의 그림을 참고하면 되겠다.

 

워크스페이스 만드는 화면
로그인하게 되면 작업 공간을 만들어야한다.

 

workspaces를 추가한다.

 

생성 방법
생성 방법

 

프로젝트 이름은 자유롭게 설정한다.

 

초대 기능
무료는 최대 3명까지 초대 할 수 있다.

 

다른 사람을 초대함으로써 같은 공간에서의 Labeling 작업을 분업 할 수 있다.

 

선택
둘 중에 뭐든 상관없다

 

Business는 3개의 credit, 10000개의 이미지
- credit이란 나중에 dataset을 만들면 학습을 시킬 수 있는데 3번만 돌릴 수 있다는 뜻이다.
Comumunity 5000개의 이미지

 

프로젝트 생성 1
작업 공간을 만들었으니 프로젝트를 생성한다.

 

프로젝트 생성 2
이런식으로 프로젝트 생성이 완료되면 데이터 셋을 준비해야한다.

 

이미지,동영상 준비
이미지와 동영상 준비

 

roboflow의 좋은 점이 이미지 말고도 동영상도 라벨링 할 수 있다는 점이 메리트 인 것 같다.

 

이미지 삽입
이미지 폴더를 넣은 사진

 

동영상 삽입
동영상을 넣은 사진

 

roboflow는 동영상을 사진으로 잘라주는 기능을 제공하기에
이미지 말고 동영상을 넣게되면 1초당 몇 프레임 자를 건지 정할 수 있다.
예를 들어 1초에 30프레임씩 자른다고 생각하면 1초에 30장의 사진이 나온다고 생각하면 되겠다

 

초대 기능
초대하고 같은 workspaces에서 labeling 작업을 같이 할 수 있다.

 

위에 그림을 보듯이 84장을 42장으로 나누는 기능까지 있다.
초대하고 이미지 등록까지하면 드디어 labeling을 할 수 있게된다.

 

라벨링 화면
labeling 화면

 

자신이 원하는 bounding box를 치면 되겠다. 라벨링을 최종적으로 다하면 데이터셋을 생성해야한다.

 

라벨링 여부
위에 사진처럼 2가지로 나뉜다(annotated, unannotated)

 

Annotated는 바운딩 박스가 표시된 이미지를 의미하며
Unannotated는 바운딩 박스가 표시되지 않은 이미지들을 의미한다.
이제 바운딩 박스 친 이미지들을 최종 데이터셋에 추가해야한다.

 

dataset 분류
위에 train,valid,test처럼 데이터 셋을 분류해야한다.

 

Train – 모델을 학습시키기 위한 데이터
Valid – 모델의 성능을 확인하고 개선하기 위한 데이터
Test  - 학습된 모델의 일반화 성능을 확인하기 위한 데이터
대부분 train(70), valid(20), test(10) 이렇게 설정한다.

 

데이터셋 확인
위에 사진처럼 3개의 데이터셋 처럼 분류되었는지 확인한다.

 

데이터셋 생성
생성하고나서 이제 roboflow의 사기적인 기능이 나온다.

 

전처리 단계
위에 사진은 전처리 단계이다 -> 모델 교육 시간을 줄이고 모델 추론 속도 증가

 

바로 전처리 단계와 증강 기능이다.
이 기능을 통해 좀 더 좋은 결과를 낼 수 있다.

 

증강 단계
위에 사진은 증강 단계부분인데 다양하게 증강 할 수 있다.

 

무료는 2,3배이고 유료 결제를 하면 무료버전보다 5배 이상 증강 가능하다.
여기서 중요한 점은 증강 단계는 train data에만 적용된다. 
이것이 무슨 소리냐면 아까 위에서 말했듯이 라벨링을 하고난 데이터셋은
train,valid,test 이 3개의 데이터셋으로 분류가 되는데
train에만 해당이 된다는 뜻이다.

 

https://blog.roboflow.com/why-preprocess-augment/

 

Why should I do pre-processing and augmentation on my computer vision datasets?

Pre-processing is required to clean image data for model input. Augmentation helps your model generalize by adding more training data.

blog.roboflow.com

 

증강과 전처리 단계에 대해서 더 알고 싶다면 위에 사이트를 이용하면 큰 도움이 될 것이다.

 

중강 배수
증강 수치는 원본 이미지 개수에서의 2,3,4,5배의 차이

 

증강을 하면 할수록 좋긴 하겠지만 그만큼 더 업그레이드 해줘야 한다.
무료여도 3배이니 3배만 해도 괜찮을 듯 하다.

 

Roboflow에서 학습이 가능하다.

 

학습 방법
학습 방법

 

주의할 점은 위에서 말했듯이 credits 개수가 학습 가능 횟수이다.
유의해서 사용하면 될 것 같다.

 

다양한 기능
다양한 기능

 

위에서 학습을 시켰다면 성능을 확인해보고 싶을 수 있기에 이 내용도 넣어봤다.
이미지를 넣어서 한번 자신이 만든 모델을 확인 해보는 것도 좋은 경험이 될 것 같다.

 

내보내는 방법
내보내는 방법

 

점점 labeling의 마지막으로 향하고 있다.
라벨링하고 학습도 했으니 이제 내보내기만 하면 될 것 같아 보인다.
export에는 2가지 방식이 존재한다
1. Download zip
2. Download code
대부분 편하게 zip을 이용한다.

 

모델 설정
format은 자신이 원하는 모델에 맞게 설정한다.

 

다운로드 후 압축 해제
데이터셋을 압축해제 하면 위에 그림처럼 나오게 된다.

 

이렇게 roboflow를 이용한 labeling에 대해서 설명해 보았다.

처음이라 미숙한 것 같은데 더 열심히 연구하고 공부해 보겠다.

다들 파이팅!