Last active
April 27, 2019 13:26
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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