Java 类com.amazonaws.services.rekognition.model.Label 实例源码

项目:RekognitionS3Batch    文件:Processor.java   
private void processTask(Message message) {
    String path = message.getBody();
    PathSplit pathComp = new PathSplit(path);
    String bucket = pathComp.bucket;
    String key = pathComp.key;
    Logger.Info("Processing %s %s", bucket, key);

    // Rekognition: Detect Labels from S3 object
    DetectLabelsRequest req = new DetectLabelsRequest()
        .withImage(new Image().withS3Object(new S3Object().withBucket(bucket).withName(key)))
        .withMinConfidence(minConfidence);
    DetectLabelsResult result;
    result = rek.detectLabels(req);
    List<Label> labels = result.getLabels();
    Logger.Debug("In %s, found: %s", key, labels);

    // Process downstream actions:
    for (LabelProcessor processor : processors) {
        processor.process(labels, path);
    }
}
项目:smart-security-camera    文件:RekognitionImageAssessmentHandler.java   
@Override
public Parameters handleRequest(Parameters parameters, Context context) {

    context.getLogger().log("Input Function [" + context.getFunctionName() + 
            "], Parameters [" + parameters + "]");

    // Create Rekognition client using the parameters available form the runtime context
    AmazonRekognition rekognitionClient = 
            AmazonRekognitionClientBuilder.defaultClient();

    // Create a Rekognition request
    DetectLabelsRequest request = new DetectLabelsRequest().withImage(new Image()
            .withS3Object(new S3Object().withName(parameters.getS3key())
                    .withBucket(parameters.getS3Bucket())));

    // Call the Rekognition Service
    DetectLabelsResult result = rekognitionClient.detectLabels(request);

    // Transfer labels and confidence scores over to Parameter POJO
    for (Label label : result.getLabels()) {
        parameters.getRekognitionLabels().put(label.getName(), label.getConfidence());
    }

    context.getLogger().log("Output Function [" + context.getFunctionName() +
            "], Parameters [" + parameters + "]");

    // Return the result (will be serialised to JSON)
    return parameters;
}
项目:RekognitionS3Batch    文件:CloudSearchIndexer.java   
@Override
public void process(List<Label> labels, String path) {
    LabelInsertDoc doc = new LabelInsertDoc(labels, path);
    Logger.Debug("Json to push: \n%s", doc.asJson());

    byte[] jsonBytes = doc.asJsonBytes();
    UploadDocumentsRequest pushDoc = getUploadReq(jsonBytes);
    UploadDocumentsResult upRes = searchClient.uploadDocuments(pushDoc);

    Logger.Debug("Indexed %s, %s", path, upRes.getStatus());
}
项目:RekognitionS3Batch    文件:CloudSearchIndexer.java   
public LabelContent(List<Label> rekLabels, String imgPath) {
    path = imgPath;
    labels = new ArrayList<>(rekLabels.size());
    confidence = new ArrayList<>(rekLabels.size());
    for (Label label : rekLabels) {
        labels.add(label.getName());
        confidence.add(label.getConfidence().intValue()); // decimal precision not required
    }
}
项目:RekognitionS3Batch    文件:DynamoWriter.java   
@Override
public void process(List<Label> labels, String imgPath) {

    String id = idHash.hashString(imgPath, charset).toString();
    Item item = new Item()
        .withPrimaryKey("id", id)
        .withString("path", imgPath)
        .withList("labels", labels.stream().map(DynamoWriter::labelToFields).collect(Collectors.toList()));

    table.putItem(item);
}
项目:RekognitionS3Batch    文件:S3ObjectTagger.java   
@Override
public void process(List<Label> labels, String path) {
    Processor.PathSplit components = new Processor.PathSplit(path);
    String bucket = components.bucket;
    String key = components.key;

    // fetch the current set
    GetObjectTaggingResult tagging = s3.getObjectTagging(new GetObjectTaggingRequest(bucket, key));
    List<Tag> origTags = tagging.getTagSet();
    List<Tag> updateTags = new ArrayList<>();

    // copy the existing tags, but drop the ones matched by prefix (∴ leaves non-Rekognition label tags alone)
    for (Tag tag : origTags) {
        if (!tag.getKey().startsWith(tagPrefix))
            updateTags.add(tag);
    }

    // add the new ones
    for (Label label : labels) {
        if (updateTags.size() < maxTags)
            updateTags.add(new Tag(tagPrefix + label.getName(), label.getConfidence().toString()));
        else
            break;
    }

    // save it back
    s3.setObjectTagging(new SetObjectTaggingRequest(bucket, key, new ObjectTagging(updateTags)));
}
项目:myrobotlab    文件:Rekognition.java   
/**
 * returns label from file
 * 
 * @param filename
 * @return
 * @throws FileNotFoundException
 * @throws IOException
 * @throws URISyntaxException
 */
public List<Label> getLabels(String path) throws FileNotFoundException, IOException, URISyntaxException {
  if (path == null) {
    return getLabels();
  }

  InputStream inputStream = null;
  if (path.contains("://")) {      
    inputStream = new URL(path).openStream();     
  } else {
    inputStream = new FileInputStream(path);
  }   
  return getLabels(inputStream);
}
项目:myrobotlab    文件:Rekognition.java   
/**
 * Hopefully, Label is serializable, otherwise it needs to return a list of
 * POJOs.
 * 
 * @return
 */
public List<Label> getLabels(ByteBuffer imageBytes) {
  AmazonRekognition client = getClient();
  DetectLabelsRequest request = new DetectLabelsRequest().withImage(new Image().withBytes(imageBytes)).withMaxLabels(maxLabels).withMinConfidence(minConfidence);
  DetectLabelsResult result = client.detectLabels(request);
  List<Label> labels = result.getLabels();
  lastImage = imageBytes;
  lastLabels = labels;
  return labels;
}
项目:myrobotlab    文件:Rekognition.java   
public static void main(String[] args) throws Exception {

    Rekognition recog = (Rekognition) Runtime.start("recog", "Rekognition");

    /*
     * OpenCV opencv = (OpenCV) Runtime.start("opencv", "OpenCV");
     * opencv.capture();
     * 
     * sleep(1000); String photo = opencv.recordSingleFrame();
     * 
     * 
     * System.out.println("Detected labels for " + photo);
     */

    // set your credentials once - then comment out this line and remove the
    // sensitive info
    // the credentials will be saved to .myrobotlab/store
    // recog.setCredentials("XXXXXXXXXXXXXXXX",
    // "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
    recog.loadCredentials();
    List<Label> labels = null;
    // labels = recog.getLabels("opencv.input.48.jpg");
    labels = recog.getLabels("http://animals.sandiegozoo.org/sites/default/files/2016-08/hero_zebra_animals.jpg");
    for (Label label : labels) {

      System.out.println(label.getName() + ": " + label.getConfidence().toString());
    }

  }
项目:RekognitionS3Batch    文件:CloudSearchIndexer.java   
public LabelInsertDoc(List<Label> labels, String imgPath) {
    id = idHash.hashString(imgPath, charset).toString();
    fields = new LabelContent(labels, imgPath);
}
项目:RekognitionS3Batch    文件:DynamoWriter.java   
private static Map<String, Object> labelToFields(Label label) {
    HashMap<String, Object> map = new HashMap<>();
    map.put("name", label.getName());
    map.put("confidence", label.getConfidence());
    return map;
}
项目:myrobotlab    文件:Rekognition.java   
public List<Label> getLabels() {
  return getLabels(lastImage);
}
项目:myrobotlab    文件:Rekognition.java   
/**
 * 
 * @param file
 *          - image file
 * @throws IOException
 * @throws FileNotFoundException
 */
public List<Label> getLabels(InputStream inputStream) throws FileNotFoundException, IOException {
  ByteBuffer imageBytes;
  imageBytes = ByteBuffer.wrap(IOUtils.toByteArray(inputStream));
  return getLabels(imageBytes);
}
项目:RekognitionS3Batch    文件:LabelProcessor.java   
public void process(List<Label>labels, String path);