Orange3로 해보는 Image classification

Hesoyam·2021년 2월 26일
0

Orange3

목록 보기
2/3
post-thumbnail

Orange3를 설치 하신 분들은 해당 포스터를 보고 진행하시면 됩니다.
설치를 안하신 경우 아래 포스터를 통해 설치 절차를 진행하고 설치가 제대로 되었는지 확인해주시면 됩니다.

Orange3 설치


Orange로 하는 Image classification

우선 Image 파일을 다루기 위해 Image Analytics를 추가해 줘야 합니다.
이 부분은 Option -> Add-ons-> Orange3-ImageAnalytics->OK 를 통해 추가로 설치해야합니다. 시간인 몇분정도 소요가 되니 천천히 기다리시면 돼요.

Add-ons 위치

Add-ons 위치

Add-ons 켰을때 화면

  • 위의 부분이 check가 되어 있다면, Image classification을 하기 위한 준비가 모두 끝났습니다.

Orange3 Image 준비


Image classification으로는 Manet과 Monet 그림을 사용하겠습니다.

이제 Orange에 이미지 classification을 할 이미지를 Import해야 합니다.

위의 시작 단계를 다 끝내셨으면, Image Analytics라 적힌 새로운 bar 보이실 겁니다.

그 bar를 클릭하고 Import images를 드래그해서 흰 background에 가져다 놓습니다.

drag & drop 하시거나 클릭하시면, 아래와 같은 위젯이 생성됩니다.

이제 이 위젯을 클릭하고 classification을 하고 싶은 이미지 폴더를 가지고 옵니다.

여기서 Import한 이미지가 제대로 가져와 졌는지 확인하기 위해서 Import Image 옆에 Image Viewer 위젯을 사용합니다.

  • Image Viewer도 위의 방법과 동일하게 가지고 옵니다.

여기서 Import Images 옆에 보면 회색 점선이 보이는데, 이 점선을 클릭한 상태로 Image Viewwer에 회색 점선과 연결해 줍니다.

다음과 같이 연결이 되었으면, 이제 Image Viewer를 클릭하시면 Import한 이미지를 보실 수 있게 됩니다.


Orange3 Image Embedding


이미지가 제대로 들어왔으면 이제 본격적인 classification을 시작해 봅시다.

우선, 그러면 각 Image category에서 Image의 feature를 추출하는 Image Embedding을 합니다.

Image Embedding은 Image Viewer 옆에 있습니다.

이것도 background에 가져다 놓고 Import ImagesImage Embedding를 연결하면, Image Embedding이 자동으로 진행됩니다.

Image Embedding 위젯을 클릭하면 Embedder을 선택할 수 있는데 저는 Inception v3를 사용하여 Embedding를 진행하겠습니다.

  • Inception v3는 구글에서 만든 이미지 인식 모델이고 ImageNet 데이터세트에서 78.1% 이상의 정확성을 보였습니다.

  • 이 Embedder는 ImageNet으로 훈련을 한 model 입니다.

Image Embedding을 완료했으면, 각 이미지의 어떤 정보가 얼마의 값으로 나타내있는지, feature를 몇개를 찾았는지 확인해 봅시다.

Image Embedding의 점선을 끌고서 빈 공간에 놓으면, 작은 창이 뜨는데 거기서 Data Table를 클릭합니다.

위의 Data Table를 클릭하면 Data Table 위젯이 생기고 그 Data Table에서 image feature, size, width 등의 정보를 볼 수 잇습니다.



Orange3 Image-classification


이제 Model을 사용해서 Image classification을 하겠습니다.

이미지 분류가 잘 되었는지 확인하기 위해 평가지표(evaluation metrics)로 evaluate를 하겠습니다.
우선 Embedding과 마찬가지로 빈 공간의 점선을 끌어서 놔줍니다.
위에선 Data Table를 사용했다면 지금은 Test and Score 위젯을 사용할 겁니다.

이제 Image Embedding 결과를 Test and Score로 확인화면 되는데 뭔가가 빠진것 같죠?
Image 분류에 대한 평가를 할것인데 어떤 Model로 분류를 할 것이냐를 정해 주어야 합니다.

사용하고 싶은 모델을 가지고와서 사용을 해봅시다. 저는 분류에서 자주 사용되는 Logistic regression을 사용하겠습니다.

  • 만약 가지고 온 모델을 사용할 때 위의 빨갛게 x가 나오면 그 모델을 해당 데이터에서 사용이 안되거나 오류가 있다는 표시입니다.

이제 Model과 Test and Scor를 연결해 주면 됩니다.
연결하는 부분은 Test and Score에서 처음엔 점선이었지만, Image Embedding과 연결하면서 실선으로 바뀐 부분과 연결해 주어야 합니다.

연결을 하면 Test and scor에서 학습이 진행된 결과가 나오게 됩니다.

  • 이렇게 나온 결과를 Confusion Matrix 위젯과 연결하면 결과가 더 보기 좋게 나타납니다.

Confusion Matrix는 Evaluate bar에서 찾을 수 있습니다.

위와 같이 연결을 마치고 Confusion Matrix를 클릭하면 Confusion matrix로 분류 결과를 보실 수 있습니다.


제가 한 위의 결과를 보면 Manet를 Manet라 예측한게 10개로 Manet는 맞게 예측하는데 성공했습니다.


그렇지만, Monet의 경우 Manet으로 잘못 예측한 그림이 하나 있네요.
예측의 전체적인 결과는 좋지만 그래도 어떤 그림을 혼동 했는지 확인해 봅시다.

Confusion Matrix 결과 창에서 Select Misclassified를 클릭해 줍니다.
그리고 Image에서 Image Viewer 위젯을 가지고 온 후 Confusion Matrix와 다음과 같이 연결해주면, Image Viewer에서 Misclassified한 이미지를 볼 수 있습니다.

  • Image Viewer 위젯의 이름이 다른 이유는 이미 중복된 위젯이 있기에 보기 헷갈리지 않게 이름을 바꿔주었습니다.

  • 이름을 바꾸는 방법은 위젯을 클릭하고 키보드의 F2를 누르면 이름을 변경할 수 있습니다.

그럼 어떤 이미지가 위의 Misclassified한 이미지와 가까운지 살펴 봅시다.

이렇게 데이터를 살펴볼 때는 Visualize에서 시각화 하는 위젯을 사용하면 됩니다.

여기서 저는 Scatter plot를 사용해 Visualize를 적용했어요.

Test and Score에 Scatter Plot를 연결하면, 다음과 같이 산점도로 시각화 해줄 수 있습니다.

그렇지만, 여러분은 위와 같은 화면이 아닐 수 있는데 Scatter Plot 왼쪽 위에 Axis X, Axis Y를 Logistic Regression (Manet), (Monet)로 바꿔줍니다.

그리고 그 아래의 Color, Shape, Label의 옵션을 category로 바꿔주면 위와 같은 결과를 얻을 수 있어요.

이제 그럼 Manet쪽으로 잘못 분류된 Monet의 점과 가장 가까운 점을 드래그하고 Image Viewer로 해당 이미지를 출력해주면 됩니다.

저의 경우 위의 Manet 이미지가 Misclassified된 Monet 이미지와 가장 비슷하다고 모델이 판단했네요.


그럼 여기까지 Orange3로 하는 Image classification을 마치겠습니다.

그리고 위의 저가 한 방식이 아닌 모델들을 여러개 연결할 수 있어서 모델별 성능을 확인할 수 있어요.

그리고 Visualize하는 것도 Scatter plot가 아닌 다른 것을 사용해서 할 수 있습니다.

다양한 방법으로 Orange3를 사용해 보세요!!


Reference

profile
거북이가 되고 싶은 자라

1개의 댓글

comment-user-thumbnail
2022년 5월 10일

쉽게 잘 설명해주셔서 감사합니다!

답글 달기