2121import com .microsoft .azure .cognitiveservices .vision .customvision .training .models .Iteration ;
2222import com .microsoft .azure .cognitiveservices .vision .customvision .training .models .Project ;
2323import com .microsoft .azure .cognitiveservices .vision .customvision .training .models .Region ;
24- import com .microsoft .azure .cognitiveservices .vision .customvision .training .TrainingApi ;
24+ import com .microsoft .azure .cognitiveservices .vision .customvision .training .models .TrainProjectOptionalParameter ;
25+ import com .microsoft .azure .cognitiveservices .vision .customvision .training .CustomVisionTrainingClient ;
2526import com .microsoft .azure .cognitiveservices .vision .customvision .training .Trainings ;
2627import com .microsoft .azure .cognitiveservices .vision .customvision .training .CustomVisionTrainingManager ;
2728import com .microsoft .azure .cognitiveservices .vision .customvision .prediction .models .ImagePrediction ;
2829import com .microsoft .azure .cognitiveservices .vision .customvision .prediction .models .Prediction ;
29- import com .microsoft .azure .cognitiveservices .vision .customvision .prediction .PredictionEndpoint ;
30+ import com .microsoft .azure .cognitiveservices .vision .customvision .prediction .CustomVisionPredictionClient ;
3031import com .microsoft .azure .cognitiveservices .vision .customvision .prediction .CustomVisionPredictionManager ;
3132import com .microsoft .azure .cognitiveservices .vision .customvision .training .models .Tag ;
3233
@@ -37,7 +38,7 @@ public class CustomVisionSamples {
3738 * @param trainer the Custom Vision Training client object
3839 * @param predictor the Custom Vision Prediction client object
3940 */
40- public static void runSample (TrainingApi trainer , PredictionEndpoint predictor ) {
41+ public static void runSample (CustomVisionTrainingClient trainer , CustomVisionPredictionClient predictor ) {
4142 try {
4243 // This demonstrates how to create an image classification project, upload images,
4344 // train it and make a prediction.
@@ -52,7 +53,7 @@ public static void runSample(TrainingApi trainer, PredictionEndpoint predictor)
5253 }
5354 }
5455
55- public static void ImageClassification_Sample (TrainingApi trainClient , PredictionEndpoint predictor ) {
56+ public static void ImageClassification_Sample (CustomVisionTrainingClient trainClient , CustomVisionPredictionClient predictor ) {
5657 try {
5758 // <snippet_create>
5859 System .out .println ("ImageClassification Sample" );
@@ -94,7 +95,7 @@ public static void ImageClassification_Sample(TrainingApi trainClient, Predictio
9495
9596 // <snippet_train>
9697 System .out .println ("Training..." );
97- Iteration iteration = trainer .trainProject (project .id ());
98+ Iteration iteration = trainer .trainProject (project .id (), new TrainProjectOptionalParameter () );
9899
99100 while (iteration .status ().equals ("Training" ))
100101 {
@@ -103,13 +104,17 @@ public static void ImageClassification_Sample(TrainingApi trainClient, Predictio
103104 iteration = trainer .getIteration (project .id (), iteration .id ());
104105 }
105106 System .out .println ("Training Status: " + iteration .status ());
106- trainer .updateIteration (project .id (), iteration .id (), iteration .withIsDefault (true ));
107- // </snippet_train>
107+
108+ // The iteration is now trained. Publish it to the prediction endpoint.
109+ String publishedModelName = "myModel" ;
110+ String predictionResourceId = System .getenv ("AZURE_CUSTOMVISION_PREDICTION_ID" );
111+ trainer .publishIteration (project .id (), iteration .id (), publishedModelName , predictionResourceId );
108112
109113 // use below for url
110114 // String url = "some url";
111- // ImagePrediction results = predictor.predictions().predictImage ()
115+ // ImagePrediction results = predictor.predictions().classifyImageUrl ()
112116 // .withProjectId(project.id())
117+ // .withPublishedName(publishedModelName)
113118 // .withUrl(url)
114119 // .execute();
115120
@@ -118,8 +123,9 @@ public static void ImageClassification_Sample(TrainingApi trainClient, Predictio
118123 byte [] testImage = GetImage ("/Test" , "test_image.jpg" );
119124
120125 // predict
121- ImagePrediction results = predictor .predictions ().predictImage ()
126+ ImagePrediction results = predictor .predictions ().classifyImage ()
122127 .withProjectId (project .id ())
128+ .withPublishedName (publishedModelName )
123129 .withImageData (testImage )
124130 .execute ();
125131
@@ -134,7 +140,7 @@ public static void ImageClassification_Sample(TrainingApi trainClient, Predictio
134140 }
135141 }
136142
137- public static void ObjectDetection_Sample (TrainingApi trainClient , PredictionEndpoint predictor )
143+ public static void ObjectDetection_Sample (CustomVisionTrainingClient trainClient , CustomVisionPredictionClient predictor )
138144 {
139145 try {
140146 // <snippet_od_mapping>
@@ -250,21 +256,26 @@ public static void ObjectDetection_Sample(TrainingApi trainClient, PredictionEnd
250256
251257 // <snippet_train_od>
252258 System .out .println ("Training..." );
253- Iteration iteration = trainer .trainProject (project .id ());
259+ Iteration iteration = trainer .trainProject (project .id (), new TrainProjectOptionalParameter ());
260+
254261 while (iteration .status ().equals ("Training" ))
255262 {
256263 System .out .println ("Training Status: " + iteration .status ());
257264 Thread .sleep (5000 );
258265 iteration = trainer .getIteration (project .id (), iteration .id ());
259266 }
260267 System .out .println ("Training Status: " + iteration .status ());
261- trainer .updateIteration (project .id (), iteration .id (), iteration .withIsDefault (true ));
262- // </snippet_train_od>
268+
269+ // The iteration is now trained. Publish it to the prediction endpoint.
270+ String publishedModelName = "myModel" ;
271+ String predictionResourceId = System .getenv ("AZURE_CUSTOMVISION_PREDICTION_ID" );
272+ trainer .publishIteration (project .id (), iteration .id (), publishedModelName , predictionResourceId );
263273
264274 // use below for url
265275 // String url = "some url";
266- // ImagePrediction results = predictor.predictions().predictImage ()
276+ // ImagePrediction results = predictor.predictions().detectImageUrl ()
267277 // .withProjectId(project.id())
278+ // .withPublishedName(publishedModelName)
268279 // .withUrl(url)
269280 // .execute();
270281
@@ -273,8 +284,9 @@ public static void ObjectDetection_Sample(TrainingApi trainClient, PredictionEnd
273284 byte [] testImage = GetImage ("/ObjectTest" , "test_image.jpg" );
274285
275286 // predict
276- ImagePrediction results = predictor .predictions ().predictImage ()
287+ ImagePrediction results = predictor .predictions ().detectImage ()
277288 .withProjectId (project .id ())
289+ .withPublishedName (publishedModelName )
278290 .withImageData (testImage )
279291 .execute ();
280292
@@ -347,11 +359,13 @@ public static void main(String[] args) {
347359 //=============================================================
348360 // Authenticate
349361
350- final String trainingApiKey = System .getenv ("AZURE_CUSTOMVISION_TRAINING_API_KEY" );;
351- final String predictionApiKey = System .getenv ("AZURE_CUSTOMVISION_PREDICTION_API_KEY" );;
362+ final String CustomVisionTrainingClientKey = System .getenv ("AZURE_CUSTOMVISION_TRAINING_API_KEY" );
363+ final String predictionApiKey = System .getenv ("AZURE_CUSTOMVISION_PREDICTION_API_KEY" );
364+
365+ final String Endpoint = System .getenv ("AZURE_CUSTOMVISION_ENDPOINT" );
352366
353- TrainingApi trainClient = CustomVisionTrainingManager .authenticate (trainingApiKey );
354- PredictionEndpoint predictClient = CustomVisionPredictionManager .authenticate (predictionApiKey );
367+ CustomVisionTrainingClient trainClient = CustomVisionTrainingManager .authenticate ("https://{Endpoint}/customvision/v3.0/training/" , CustomVisionTrainingClientKey ). withEndpoint ( Endpoint );
368+ CustomVisionPredictionClient predictClient = CustomVisionPredictionManager .authenticate ("https://{Endpoint}/customvision/v3.0/prediction/" , predictionApiKey ). withEndpoint ( Endpoint );
355369
356370 runSample (trainClient , predictClient );
357371 } catch (Exception e ) {
0 commit comments