def custom_vision(image_name): # Establishing key connections: training_key = "{insert-training-key}" prediction_key = "{insert-prediction-key}" storage_account_url = "{insert-storage-account-url}" ENDPOINT = "{insert-endpoint}" pid = "{insert-pid}" # For future re-training model purposes: # trainer = CustomVisionTrainingClient(training_key, endpoint=training_endpoint) predictor = CustomVisionPredictionClient(prediction_key, endpoint=ENDPOINT) image_url = storage_account_url + image_name print("Image url: " + image_url + "\n") # Using the default iteration otherwise you can set iteration_id to something else results = predictor.predict_image_url(project_id=pid, url=image_url) return results
class ImageRater(): ENDPOINT = "https://southcentralus.api.cognitive.microsoft.com" project_id = get_projectid_customvision() def __init__(self): self.predictor = CustomVisionPredictionClient(get_customvision_predictionkey(), endpoint=self.ENDPOINT) def rate_image(self, img_url): results = self.predictor.predict_image_url(self.project_id, url=img_url) prediction = results.predictions[0] probability = "{0:.2f} ".format(prediction.probability) label = prediction.tag_name friendly_results = dict() friendly_results['label'] = label friendly_results['confidence'] = probability return friendly_results
def get_prediction(img_url): from azure.cognitiveservices.vision.customvision.prediction import CustomVisionPredictionClient ENDPOINT = "https://southcentralus.api.cognitive.microsoft.com" project_id = '40412ce6-fe45-4fc2-b949-9bb6fe28abf2' predictor = CustomVisionPredictionClient( '57c2350f261b4cf0aec943bcf893e2d8', endpoint=ENDPOINT) #import sys #img_url = sys.argv[1] #img_url = 'https://images.pexels.com/photos/259962/pexels-photo-259962.jpeg?auto=compress&cs=tinysrgb&h=350' print(img_url) results = predictor.predict_image_url(project_id, url=img_url) #output_file_probabilities = open('prediction_result_probabilites.txt', 'w') #output_file_labels = open('prediction_result_labels.txt', 'w') prediction = results.predictions[0] probability = "{0:.2f} ".format(prediction.probability) label = prediction.tag_name return [label, probability]
training_key = "8202cc602079498c8c0b5d002d422bc0" prediction_key = "1bc26fdf4b984a54afae6d05074aeda4" # Now there is a trained endpoint that can be used to make a prediction predictor = CustomVisionPredictionClient(prediction_key, endpoint=ENDPOINT) #test_img_url = "http://i1.adis.ws/i/jpl/bl_208555_a" test_img_url1 = "https://www.popsci.com/sites/popsci.com/files/styles/655_1x_/public/images/2018/01/84711_fea.jpg?itok=nxNwehk-&fc=50,50" test_img_url2 = "https://images-na.ssl-images-amazon.com/images/I/61%2BUrQmHDsL._UX679_.jpg" project_id = "8bc27737-5835-4ba9-95f9-06984cd7d4e3" iteration_id = "c4846c08-c001-47ae-bb5d-7c595dea16ad" results = predictor.predict_image_url(project_id, iteration_id, url=test_img_url1) # Display the results. for prediction in results.predictions: print("\t" + prediction.tag_name + ": {0:.2f}%".format(prediction.probability * 100)) results = predictor.predict_image_url(project_id, iteration_id, url=test_img_url2) # Display the results. for prediction in results.predictions: print("\t" + prediction.tag_name + ": {0:.2f}%".format(prediction.probability * 100))
import matplotlib.pyplot as plt from PIL import Image # Needed to display matplotlib plots in Jupyter get_ipython().run_line_magic('matplotlib', 'inline') from azure.cognitiveservices.vision.customvision.prediction import CustomVisionPredictionClient # Now there is a trained endpoint that can be used to make a prediction predictor = CustomVisionPredictionClient(prediction_key, endpoint=ENDPOINT) test_img1 = "https://image.sportsmansguide.com/adimgs/l/6/673942i3_ts.jpg" test_img2 = "http://content.backcountry.com/images/items/900/MNT/MNT0012/MORBLUOR.jpg" results1 = predictor.predict_image_url(project.id, iteration.id, url=test_img1) results2 = predictor.predict_image_url(project.id, iteration.id, url=test_img2) # Display the results. for prediction in results1.predictions: print("\t" + prediction.tag_name + ": {0:.2f}%".format(prediction.probability * 100)) for prediction in results2.predictions: print("\t" + prediction.tag_name + ": {0:.2f}%".format(prediction.probability * 100)) # Create a figure to display the images fig = plt.figure(figsize=(12, 16)) # Open it and add it to the figure (in a 4-row grid) response = requests.get(test_img1, stream=True)
import matplotlib.pyplot as plt from PIL import Image from io import BytesIO get_ipython().magic(u'matplotlib inline') # Use two test images test_img1_url = 'http://www.pachd.com/free-images/food-images/apple-01.jpg' test_img2_url = 'http://www.pachd.com/free-images/food-images/carrot-01.jpg' # Create an instance of prediction service predictor = CustomVisionPredictionClient(PREDICTION_KEY, endpoint=ENDPOINT) # Get prediction for image 1 result1 = predictor.predict_image_url(PROJECT_ID, url=test_img1_url) # The results include a prediction for each tag, descending order of probability - so we'll get prediction1 = result1.predictions[0].tag_name + ": {0:.2f}%".format(result1.predictions[0].probability) # Get prediction for image 2 result2 = predictor.predict_image_url(PROJECT_ID, url=test_img2_url) # The results include a prediction for each tag, descending order of probability - so we'll get prediction2 = result2.predictions[0].tag_name + ": {0:.2f}%".format(result2.predictions[0].probability) # Download images and show them response = requests.get(test_img1_url) img1 = Image.open(BytesIO(response.content)) response = requests.get(test_img2_url) img2 = Image.open(BytesIO(response.content))