Skip to content

Instantly share code, notes, and snippets.

@devender-yadav
Last active April 27, 2019 13:26
Show Gist options
  • Save devender-yadav/a50be93168f9eca0ac598ef195d63d01 to your computer and use it in GitHub Desktop.
Save devender-yadav/a50be93168f9eca0ac598ef195d63d01 to your computer and use it in GitHub Desktop.
Moderate Picture using AWS in Java. Details - https://docs.aws.amazon.com/rekognition/latest/dg/moderation.html
package com.dev.util.aws;
import java.io.File;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.rekognition.AmazonRekognition;
import com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder;
import com.amazonaws.services.rekognition.model.DetectModerationLabelsRequest;
import com.amazonaws.services.rekognition.model.DetectModerationLabelsResult;
import com.amazonaws.services.rekognition.model.Image;
import com.amazonaws.services.rekognition.model.ModerationLabel;
public class PictureModerator {
// Get from AWS
private static final String ACCESS_KEY = "";
private static final String SECRET_KEY = "";
private static AmazonRekognition rekognitionClient;
private static void initialize() {
if (rekognitionClient == null) {
AWSCredentials credentials = new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY);
rekognitionClient = AmazonRekognitionClientBuilder.standard().withRegion(Regions.US_EAST_1)
.withCredentials(new AWSStaticCredentialsProvider(credentials)).build();
System.out.println("****AWS RekognitionClient initialized!!********");
}
}
public static List<String> getModerationLabels(ByteBuffer byteBuffer) {
initialize();
// Detecting labels with minimum 90% confidence
DetectModerationLabelsRequest request = new DetectModerationLabelsRequest()
.withImage(new Image().withBytes(byteBuffer)).withMinConfidence(90F);
DetectModerationLabelsResult result = rekognitionClient.detectModerationLabels(request);
List<ModerationLabel> labels = result.getModerationLabels();
List<String> labelNames = new ArrayList<>();
if (labels.isEmpty()) {
System.out.println("No Moderation labels");
return labelNames;
}
for (ModerationLabel label : labels) {
System.out.println("name : " + label.getName());
System.out.println(label.getConfidence());
labelNames.add(label.getName());
}
return labelNames;
}
public static void main(String[] args) throws IOException {
File file = new File("/Users/dev/Desktop/file2.jpeg");
byte[] fileContent = Files.readAllBytes(file.toPath());
ByteBuffer byteBuffer = ByteBuffer.wrap(fileContent);
List<String> labelNames = getModerationLabels(byteBuffer);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment