-
azure-02 cognitive service-custom vision클라우드/azure 2023. 5. 5. 13:50
1. custom vision
Custom Vision Service를 사용하면 사용자 고유의 이미지 분류자를 빌드, 배포 및 개선할 수 있다. 이미지 분류자는 해당 시각적 특성에 따라 이미지에 레이블을 적용하는 AI 서비스이다.
2. 학습 준비
!pip install azure-cognitiveservices-vision-customvision Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/ Collecting azure-cognitiveservices-vision-customvision Downloading azure_cognitiveservices_vision_customvision-3.1.0-py2.py3-none-any.whl (62 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.0/62.0 kB 3.2 MB/s eta 0:00:00 Collecting azure-common~=1.1 Downloading azure_common-1.1.28-py2.py3-none-any.whl (14 kB) Collecting msrest>=0.5.0 Downloading msrest-0.7.1-py3-none-any.whl (85 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 85.4/85.4 kB 7.4 MB/s eta 0:00:00 Collecting azure-core>=1.24.0 Downloading azure_core-1.26.4-py3-none-any.whl (173 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 173.9/173.9 kB 13.4 MB/s eta 0:00:00 Collecting isodate>=0.6.0 Downloading isodate-0.6.1-py2.py3-none-any.whl (41 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 41.7/41.7 kB 3.9 MB/s eta 0:00:00 Requirement already satisfied: requests-oauthlib>=0.5.0 in /usr/local/lib/python3.9/dist-packages (from msrest>=0.5.0->azure-cognitiveservices-vision-customvision) (1.3.1) Requirement already satisfied: requests~=2.16 in /usr/local/lib/python3.9/dist-packages (from msrest>=0.5.0->azure-cognitiveservices-vision-customvision) (2.27.1) Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.9/dist-packages (from msrest>=0.5.0->azure-cognitiveservices-vision-customvision) (2022.12.7) Requirement already satisfied: typing-extensions>=4.3.0 in /usr/local/lib/python3.9/dist-packages (from azure-core>=1.24.0->msrest>=0.5.0->azure-cognitiveservices-vision-customvision) (4.5.0) Requirement already satisfied: six>=1.11.0 in /usr/local/lib/python3.9/dist-packages (from azure-core>=1.24.0->msrest>=0.5.0->azure-cognitiveservices-vision-customvision) (1.16.0) Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.9/dist-packages (from requests~=2.16->msrest>=0.5.0->azure-cognitiveservices-vision-customvision) (2.0.12) Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.9/dist-packages (from requests~=2.16->msrest>=0.5.0->azure-cognitiveservices-vision-customvision) (3.4) Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.9/dist-packages (from requests~=2.16->msrest>=0.5.0->azure-cognitiveservices-vision-customvision) (1.26.15) Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.9/dist-packages (from requests-oauthlib>=0.5.0->msrest>=0.5.0->azure-cognitiveservices-vision-customvision) (3.2.2) Installing collected packages: azure-common, isodate, azure-core, msrest, azure-cognitiveservices-vision-customvision Successfully installed azure-cognitiveservices-vision-customvision-3.1.0 azure-common-1.1.28 azure-core-1.26.4 isodate-0.6.1 msrest-0.7.1
custom vision 모듈을 가져온다.
from azure.cognitiveservices.vision.customvision.training import CustomVisionTrainingClient from azure.cognitiveservices.vision.customvision.training.models import ImageFileCreateEntry from msrest.authentication import ApiKeyCredentials
필요한 모듈을 가져온다.
endpoint = '' training_key = ''
endpoint와 trainig_key를 azure에서 복사한다.
publish_iteration_name = 'GreatWallModel' credentials = ApiKeyCredentials(in_headers={'Training-key': training_key}) trainer = CustomVisionTrainingClient(endpoint, credentials)
이름과 인증을 설정한다.
project_name = 'GreatWall' project = trainer.create_project(project_name)
프로젝트를 생성한다.
jajangmyeon_tag = trainer.create_tag(project.id, 'jajangmyeon') jjamppong_tag = trainer.create_tag(project.id, 'jjamppong') tansuyook_tag = trainer.create_tag(project.id, ' tangsuyook')
각 사진의 태그를 생성한다.
custom vision 사이트에 접속하여 짜장면, 짬뽕, 탕수육 사진을 충분하게 업로드한다.
3. 학습 시작
import time print('Training......') iteration = trainer.train_project(project.id) while (iteration.status != 'Completed'): iteration = trainer.get_iteration(project.id, iteration.id) print('Training status: ' + iteration.status) print('Waiting 10 seconds...') time.sleep(10) Training...... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Training Waiting 10 seconds... Training status: Completed Waiting 10 seconds...
학습을 시작한다.
4. 새로운 이미지로 테스트
from azure.cognitiveservices.vision.customvision.prediction import CustomVisionPredictionClient
모델을 생성하고 학습했으면 예측하고 추론하는 모듈을 불러온다.
prediction_key = '' prediction_endpoint = '' prediction_credential = ApiKeyCredentials( in_headers={'Prediction-key': prediction_key}) predictor = CustomVisionPredictionClient(prediction_endpoint, prediction_credential)
인증에 필요한 prediction_key, prediction_endpoint를 넣고 예측 리소스를 생성한다.
target_image_url = 'https://imagescdn.gettyimagesbank.com/500/201708/jv10947445.jpg' result = predictor.classify_image_url(project.id, 'Iteration1', target_image_url)
테스트 이미지가 아닌 새로운 이미지를 넣어준다.
for prediction in result.predictions: print('\t' + prediction.tag_name + ': {0:.2f}%'.format(prediction.probability * 100)) jjamppong: 79.11% tangsuyook: 27.16% jajangmyeon: 0.11%
결과를 확인한다.
'클라우드 > azure' 카테고리의 다른 글
azure-08 sql database 2 - SSMS (1) 2023.05.05 azure-04 가상 머신(포털, 리눅스) (0) 2023.05.05 azure-07 sql database 1 (0) 2023.05.04 azure-04 webapp (0) 2023.05.04