· 6 years ago · May 08, 2019, 08:00 AM
1package com.dev.util.aws;
2
3import java.io.File;
4import java.io.IOException;
5import java.nio.ByteBuffer;
6import java.nio.file.Files;
7import java.util.ArrayList;
8import java.util.List;
9
10import com.amazonaws.auth.AWSCredentials;
11import com.amazonaws.auth.AWSStaticCredentialsProvider;
12import com.amazonaws.auth.BasicAWSCredentials;
13import com.amazonaws.regions.Regions;
14import com.amazonaws.services.rekognition.AmazonRekognition;
15import com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder;
16import com.amazonaws.services.rekognition.model.DetectModerationLabelsRequest;
17import com.amazonaws.services.rekognition.model.DetectModerationLabelsResult;
18import com.amazonaws.services.rekognition.model.Image;
19import com.amazonaws.services.rekognition.model.ModerationLabel;
20
21public class PictureModerator {
22
23 // Get from AWS
24 private static final String ACCESS_KEY = "";
25 private static final String SECRET_KEY = "";
26
27 private static AmazonRekognition rekognitionClient;
28
29 private static void initialize() {
30 if (rekognitionClient == null) {
31 AWSCredentials credentials = new BasicAWSCredentials(ACCESS_KEY, SECRET_KEY);
32 rekognitionClient = AmazonRekognitionClientBuilder.standard().withRegion(Regions.US_EAST_1)
33 .withCredentials(new AWSStaticCredentialsProvider(credentials)).build();
34 System.out.println("****AWS RekognitionClient initialized!!********");
35 }
36 }
37
38
39 public static List<String> getModerationLabels(ByteBuffer byteBuffer) {
40 initialize();
41
42 // Detecting labels with minimum 90% confidence
43 DetectModerationLabelsRequest request = new DetectModerationLabelsRequest()
44 .withImage(new Image().withBytes(byteBuffer)).withMinConfidence(90F);
45
46 DetectModerationLabelsResult result = rekognitionClient.detectModerationLabels(request);
47 List<ModerationLabel> labels = result.getModerationLabels();
48
49 List<String> labelNames = new ArrayList<>();
50
51 if (labels.isEmpty()) {
52 System.out.println("No Moderation labels");
53 return labelNames;
54 }
55
56 for (ModerationLabel label : labels) {
57 System.out.println("name : " + label.getName());
58 System.out.println(label.getConfidence());
59 labelNames.add(label.getName());
60 }
61 return labelNames;
62 }
63
64
65 public static void main(String[] args) throws IOException {
66
67 File file = new File("/Users/dev/Desktop/file2.jpeg");
68 byte[] fileContent = Files.readAllBytes(file.toPath());
69 ByteBuffer byteBuffer = ByteBuffer.wrap(fileContent);
70 List<String> labelNames = getModerationLabels(byteBuffer);
71 }
72
73}