AI를 사용하여 동영상 또는 이미지에서 원하는 사물을 찾거나 해당 사물을 인식하게 하는 로보플로우 roboflow는 컴퓨터 비전과 딥러닝을 활용하여 이미지 및 비디오 처리를 간편하게 해주는 플랫폼이다. 조금 난해할 수 있는데 기본적으로 로보플로우는 사진 또는 영상 속에서 사물이 무엇인지 알려주는 도구라고 생각하면 된다.
- 제품명 : 로보플로우 (roboflow)
- 종류 : AI 사물 인식 플랫폼
- 플랫폼 및 라이선스 : PC 및 모바일 / 유료 (무료 가능)
로보플로우 소개
AI 사물 인식 플랫폼인 로보플로우는 영상 및 사진에서 사물을 인식하거나 특정 사물을 검출할 수 있어서 자율주행, 보안 카메라 등에서 매우 각광을 받고 있다. 이외에도 의료, 작업 현장 등 다양한 분야에서 활용이 가능하다. 일반적으로 로보플로우를 사용하면 딥러닝 모델을 개발하고 학습시키는 과정을 보다 쉽게 수행할 수 있다. 이를 활용해서 주로 이미지 인식, 객체 검출, 세그멘테이션 등 다양한 컴퓨터 비전 작업에 사용한다.
위의 영상을 누르면 AI 사물 인식 플랫폼인 로보플로우 웹사이트로 바로 연결하는데, 상단 우측의 Sign In 버튼을 누르면 무료 계정 가입 페이지로 전환한다. 여기에서 구글 또는 깃허브 계정과 연동해서 로보플로우 무료 계정을 간단히 생성할 수 있다.
로보플로우의 개념이 조금 난해할 수 있는데 개념을 단순화해서 설명하면 다음과 같다. 로보플로우는 컴퓨터 프로그램을 활용해서 영상 또는 이미지 속에 있는 사물을 찾거나, 해당 사물을 인식할 수 있도록 도와주는 플랫폼이다. 예를 들어 사진 속에서 어떤 물건이나 동물이 무엇인지 자동으로 알려주거나, 이미지 속에 물체의 경계를 인식하는 역할을 해준다. 이러한 작업을 수행함에 있어서 로보플로우는 딥러닝 기술을 활용해서 매우 빠르게 처리한다.
로보플로우는 위와 같이 Free 즉 무료로도 제공하는데 이때에는 개인용 연구 또는 취미용으로만 가능하다. 무료 계정으로 사용 시에는 동료로 3명까지 추가할 수 있으며 데이터는 10,000장까지 이미지를 사용할 수 있다. 하지만 영구적인 무료 사용이 아니라 3번까지만 데이터 학습이 가능한 제한적 무료 사용 기회만 제공한다.
로보플로우 사용하기
로보플로우는 무료 계정만으로도 이미지를 정보로 전환하는 데 필요한 해당 데이터를 훈련시켜 사물을 인식하는 작업을 수행할 수 있다.
로보플로우에 로그인을 하면 위와 같이 워크스페이스 화면이 나오는데, 여기에서 사용 용도를 선택하는 Work, Academia, Hbbbies 증 해당 항목을 선택한다. 일, 연구, 취미로 대표되는 사용 목적에서 어떤 것을 선택해도 무방한데, 여기에서는 취미(Hobbies)을 선택한 후에 워크스페이스 이름을 기재했다. 이때 워크스페이스 이름은 임의로 작성해도 무방하다. 이후 Continue 버튼을 누른다.
이후 함께 작업할 동료의 이메일 주소를 기재한 후에 Continue 버튼을 누른다. 이때 자신의 이메일 주소를 적어도 무방하다.
그러면 워크스페이스 타입을 선택하라는 화면이 나오는데 여기에서 Community를 선택해야 무료 사용이 가능하다. 이후 하단에 있는 Create Public Workspace 버튼을 누른다. 이것으로 무료로 사용할 수 있는 워크스페이스를 만들었다. 이후 해당 워크스페이스에 프로젝트를 추가하는 방식으로 진행하는데, 이 과정은 아래에서 살펴본다.
로보플로우 프로젝트
앞에서 제시한 방법대로 로보플로우에서 무료 워크스페이스를 생성했으면 다음으로 프로젝트를 추가한다. 워크스페이스 전면에 있는 Create New Project 항목을 누르면 프로젝트 정보를 기재하는 팝업이 나온다.
여기에서 1번 항목에서는 해당 프로젝트 용도를 선택할 수 있는데 기본값인 Object Detective 즉, 개체 감지 상태로 둔다. 다음으로 2번 항목은 감지할 사물 대상을 기재하는 데 여기에서는 예시로 나온 cars 즉, 자동차를 기재했다. 이후 3번은 프로젝트 이름을 기재하는 공간이므로 임의로 작성하면 된다. 다음으로 4번은 기본값 상태로 둔 채로 5번 Create Public Project 버튼을 누른다.
즉, 현재 로보플로우 웹사이트에서 회원가입을 한 후에 로그인 후 워크스페이스를 만들고, 해당 워크스페이스 상에서 새로운 프로젝트인 Car Models를 생성했다. 이제 해당 프로젝트에 데이터를 추가해서 딥러닝 기술을 활용한 학습 과정을 수행할 차례이다.
참고로, 현재 생성한 Car Models는 로보플로우에 로그인을 하면 하단에 추가되어 있으므로 언제든지 불러서 사용이 가능하다. 다음으로 해당 Car Models에 데이터 즉, 이미지를 추가하고 훈련하는 과정을 살펴본다.
로보플로우 데이터 활용하기
위에서 생성한 Car Models 프로젝트를 열면 아래와 같이 이미지를 넣을 수 있는 공간이 나온다. 하지만 로보플로우는 대량의 이미지 즉 데이터를 학습해서 해당 사물을 인식하도록 훈련을 해야 하므로, 여기에서는 로보플로우에서 제공하는 데이터를 사용하는 방법을 소개한다.
만약 자신의 데이터가 충분히 많다면 해당 이미지를 드래그해서 가져다 놓거나 파일 또는 폴더 선택 버튼을 눌러서 가져와 사용해도 무방하다. 하지만 대부분 활용할 이미지 즉, 데이터가 부족할 수밖에 없으므로 로보플로우에서 제공하는 데이터를 가져와 사용하는 게 일반적이다.
해당 화면에서 아래에 Find a Univese Dataset를 눌러서 필요한 이미지를 가져올 수 있다. 물론 우측에 있는 API를 활용하여 데이터를 불러오는 방식도 있지만, 해당 방식은 프로그래밍 즉 코드 작성에서 주로 사용한다.
위에서 언급한대로 Find a Univese Dataset 항목을 누르면 상기와 같이 로보플로우에서 데이터셋을 제공하는 웹사이트로 전환하는데, 여기에서 프로젝트 생성 시에 감지할 대상으로 기입한 사물을 입력한 후 검색 버튼을 누른다. 참고로, 위에서 csrs를 검색 대상으로 해서 프로젝트를 생성했으므로 여기에서는 cars를 기재한 후 우측에 돋보기 아이이콘인 검색 버튼을 눌렀다.
그러면 위와 같이 Cars와 관련한 다양한 데이터셋 목록이 나오는데, 여기에서는 실사화인 사진 이미지에 이미지 숫자가 비교적 적은 데이터셋을 선택했다.
해당 데이터셋을 선택하면 우측으로 넓은 창이 나오면서 해당 데이터셋에 담긴 이미지를 확인할 수 있다. 이러한 방식으로 원하는 데이터셋을 선택했다면 Download this Dataset 버튼을 눌러서 해당 데이터셋을 다운로드한다. 참고로, 위에서는 박스 표시 때문에 가려져 있지만 해당 붉은 선 부분에 FREE DOWNLOAD 즉, 무료 다운로드라고 기재되어 있다.
그러면 위와 같이 어떤 방식으로 다운로드할 것이냐를 선택하라는 팝업이 나오는데, 우선 Format에서 Pascal VOC를 선택한다. 물론 사용 용도에 따라 다른 포맷을 선택해도 되는데 여기에서는 XML 포맷인 Pascal VOC로 진행했다. 더불어 기본값이 우측 항목인 show download code를 선택하고 있는데 해당 코드 다운로드는 프로그래밍 시에 활용하는 방식이다. 여기에서는 좌측 항목인 zip 압축 파일로 컴퓨터에 다운로드하는 방식에 체크한 후에 Contine 버튼을 누른다.
그러면 위와 같이 zip 압축 파일을 다운로드하는데 해당 zip 파일을 알집 또는 반디집으로 압축을 해제한다. 참고로, 해당 파일은 로보플로우에서 학습을 마친 데이터셋이므로 해당 파일은 train 폴더와 valid 폴더까지 지니고 있다. 이러한 폴더는 원본 이미지가 담긴 test 폴더를 학습시켰을 때 생성되므로, 여기에서는 test 폴더를 갖고 학습하는 과정부터 살펴본다.
프로젝트 화면으로 다시 돌아가서 여기에 다운로드한 zip 압축 파일을 해제한 폴더 중에서 test 폴더만 드래그해서 가져다 놓는다.
그러면 위와 같이 test 폴더에 담긴 이미지가 보여지는데, 상단에 Annotated 항목은 사물을 인식할 라벨 작업을 마친 이미지 숫자이며 Not Annotated는 사물 인식에 필요한 라벨 작업을 수행하지 않은 이미지 숫자이다. 만약 Not Annotated에 0이 아닌 숫자가 표시된다면 해당 이미지를 눌러서 라벨 작업을 수행해야 한다. 또는 이미지에 마우스를 올리면 휴지통 표시가 나오는데, 여기에서 삭제를 해서 Not Annotated 숫자를 0으로 만든 후에 상단 우측에 위치한 Save and Continue 버튼을 누른다.
그런 후에 나오는 팝업에서 Split Images Between Train/Valid/Test 항목을 선택한 후에 Coninue 버튼을 누른다. 참고로, 해당 항목들은 원본 이미지를 학습해서 사용하는 방식으로 조정이 가능하다. 더불어 이미지 학습은 기본값으로 제공하는 훈련 70%, 검증 20%, 테스트 10%를 일반적으로 사용한다.
이후 1번과 2번 항목은 자동으로 진행하는데 3번 항목에서 Add Preprosessing Step을 눌러서 필요한 전처리 과정을 추가할 수 있다. 여기에서는 기본값 상태로 Continue 버튼을 눌러 진행한다.
다음으로 4번 항목에서도 Add Augmentation Step를 눌러서 부가적인 작업을 추가할 수 있는데, 여기에서는 기본값 상태로 Contine 버튼을 누른다.
이후 최종적으로 5번 항목에서 Generate 버튼을 누르면 원본 이미지를 딥러닝 기술을 활용하여 학습시키는 과정으로 전환한다.
로보플로우 모델 생성하기
이제 마지막 과정인 원본 이미지를 딥러닝 기술을 활용하여 트레닝 하는 단계만 남았다. 앞에서 Generate 버튼을 누른 다음에 나오는 화면에서 Start Training 버튼을 누르면 바로 딥러닝 과정 수행 단계로 진입한다.
이후 팝업이 나오면 무료 사용이 가능한 Fast 항목을 선택한 후에 Continue 버튼을 누른다.
다음으로 훈련 방식을 선택하는데 기본값 상태로 Start Training 버튼을 누른다.
해당 작업은 이미지 숫자에 따라 소요되는 시간이 달라지지만 비교적 긴 시간이 소요된다. 그러다 보니 아래와 같은 추출 팝업과 함께 트레이닝 과정을 마치면 가입한 메일로 알려주겠다는 팝업이 나온다.
이후모든 이미지의 학습이 종료하면 해당 프로젝트 화면에 TRY THIS MODEL 항목이 나온다.
여기에서 TRY THIS MODEL 항목을 해당 모델을 선택하면 되는데, 저장된 위치를 알 수 없다면 가입할 때 기재한 메일로 가면 모델이 준비되어 있다는 메일에서 USE YOUR MODEL NOW 버튼을 누르면 된다.
그러면 로보플로우 워크스페이스 화면으로 연결하는데 여기에서 해당 프로젝트를 선택하면 된다.
이후 우측 항목을 조정하면서 사물을 인식할 정도를 결정한다.
이렇게 학습 과정을 마친 모델은 일반적으로 원격 서버에서 실행하는 클라우드에 저장해서 배포한다. 하지만 실제 모델을 사용하는 디바이스에 저장해서 사용하는 것도 가능하다.
지금까지 로보플로우 웹사이트에서 데이터를 학습시켜 모델을 생성하는 과정을 살펴보았는데, 우선 로보플로우 무료 계정 생성 후에 워크스페이스를 만들고 프로젝트명까지 생성하는 기본 단계는 어렵지 않다. 하지만 이후에 데이터를 학습시킬 때 선택하는 다양한 옵션이 존재하고 또한 이렇게 학습 과정을 마친 모델을 활용하는 방법 등 전문적인 지식을 요구한다. 이럴 때 로보플로우에서 공식적으로 제공하는 로보플로우 매뉴얼을 참고하면 된다. 해당 로보플로우 매뉴얼 사이트는 한국어를 지원하므로 로보플로우 사용 방법부터 모델 배포까지 모든 과정을 학습할 수 있다.