본문 바로가기

AI/OpenVINO

3-5. Hello Image Classification

참조: https://docs.openvino.ai/2024/notebooks/hello-world-with-output.html

 

Hello Image Classification — OpenVINO™ documentation

Hello Image Classification This Jupyter notebook can be launched on-line, opening an interactive environment in a browser window. You can also make a local installation. Choose one of the following options: This basic introduction to OpenVINO™ shows how

docs.openvino.ai

 

이번 예제는 AI에서 상당히 많이 사용하는, 주어진 이미지에서 분류하는 classification에 대한 내용이다.

미리 학습된 MobileNetV3 모델을 사용할 것이고, TensorFlow의 모델을 이용하여 OpenVINO IR 모델을 생성하는 법을 중점적으로 다룰 것이다. OpenVINO notebook에서는 hello-world라는 폴더에 들어있다.

 

먼저, 모델을 다운받기위해 사용하는 notebook_utils.py 파일을 받는다. (이 파일은 해당 notebook 폴더에 저장된다)

 

 

모델을 받아보자. 

 

 

이제 다운받은 모델을 load하고 사용할 이미지를 눈으로 확인해 보자. 여기서도 device.value = 'CPU' 이다.

 

 

여기서 잠깐 image의 모양이 어떻게 변경되는 살펴보고 가자.

 

 

샘플로 사용할 이미지인 coco.jpg는 800 x 577 사이즈인 컬러 사진이다. 

그렇지만 받아온 모델이 224 x 224 사이즈를 받기 때문에 resize로 변환해주고 expand_dims로 한 차원 늘려주었다.

 

이 이미지를 넣고 추론 결과를 보자.

 

다운받은 imagenet_2012.txt는 입력사진을 분류할때 분류되는 종류를 나열한 text 파일이다.

위에서 만들어 놓은 compiled_model에 input_image를 넣으면 결과인 result_infer는 1 x 1001인 행렬로 나타난다.

이 것을 프린트 해보면, 대부분 0에 가까운 숫자이고 하나 정도가 1에 가까운 숫자일 것이다.

여기서는 1에 가까운 숫자가 206번째 였다.

텍스트 파일 에디터에서 imagenet_2012.txt를 열고 206번째 줄을 살펴보자.

 

 

그렇다. 모델이 사진을 입력받아서 사진속에 있는 것이 무엇인지 추정한(infer) 결과가 206번, flat-coated retriever이다.

 

그럼 내가 가지고 있는 사진을 사용하면 어떻게 될까? 하나 샘플로 아래사진을 사용해보자.

 

 

 

위에서 사진 변환했던 과정을 그대로 적용하자. 사진은 컴퓨터에 저장되어 있음을 확인할 수 있다.

 

이제 모델을 이용해서 추론하고 결과를 보자. 만족스런 결과다. ㅎㅎ

 

그럼 순서를 정리해보자.

1. 적합한 모델을 찾아서 다운로드 받는다. 

2. 다운로드 받은 모델을 읽어드린다.

3. 가지고 있는 이미지를 모델에 맞게 적절히 변환하여 입력으로 넣는다.

4. 출력을 확인한다.