This repository has been archived by the owner on Apr 18, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 893
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Calls Vision API, then processes the words by adding them to an index stored on a local Redis database. The Java text Redis db is compatible with Python text Redis db.
- Loading branch information
Showing
9 changed files
with
740 additions
and
0 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
en-token.bin |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
# Text Detection using the Vision API | ||
|
||
## Introduction | ||
|
||
This example uses the [Cloud Vision API](https://cloud.google.com/vision/) to | ||
detect text within images, stores this text in an index, and then lets you | ||
query this index. | ||
|
||
## Initial Setup | ||
|
||
### Install and Start Up a Redis server | ||
|
||
This example uses a [redis](http://redis.io/) server, which must be up and | ||
running before you start the indexing. To install Redis, follow the | ||
instructions on the [download page](http://redis.io/download), or install via a | ||
package manager like [homebrew](http://brew.sh/) or `apt-get` as appropriate | ||
for your OS. | ||
|
||
The example assumes that the server is running on `localhost`, on the default | ||
port, and it uses [redis | ||
dbs](http://www.rediscookbook.org/multiple_databases.html) 0 and 1 for its data. | ||
Edit the example code before you start if your redis settings are different. | ||
|
||
### Set up OpenNLP | ||
|
||
Download Tokenizer data and save it to this directory. | ||
|
||
wget http://opennlp.sourceforge.net/models-1.5/en-token.bin | ||
|
||
## Run the sample | ||
|
||
To build and run the sample, run the jar from this directory. You can provide a | ||
directory to index the text in all the images it contains. | ||
|
||
mvn clean compile assembly:single | ||
java -cp target/text-1.0-SNAPSHOT-jar-with-dependencies.jar com.google.cloud.vision.samples.text.TextApp ../../data/text/ | ||
|
||
Once this builds the index, you can run the same command without the input path | ||
to query the index. | ||
|
||
java -cp target/text-1.0-SNAPSHOT-jar-with-dependencies.jar com.google.cloud.vision.samples.text.TextApp | ||
|
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<!-- | ||
Copyright 2016 Google Inc. All Rights Reserved. | ||
Licensed under the Apache License, Version 2.0 (the "License"); | ||
you may not use this file except in compliance with the License. | ||
You may obtain a copy of the License at | ||
http://www.apache.org/licenses/LICENSE-2.0 | ||
Unless required by applicable law or agreed to in writing, software | ||
distributed under the License is distributed on an "AS IS" BASIS, | ||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
See the License for the specific language governing permissions and | ||
limitations under the License. | ||
--> | ||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | ||
<modelVersion>4.0.0</modelVersion> | ||
<packaging>jar</packaging> | ||
<version>1.0-SNAPSHOT</version> | ||
<groupId>com.google.cloud.vision.samples</groupId> | ||
<artifactId>text</artifactId> | ||
|
||
<properties> | ||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | ||
</properties> | ||
|
||
<dependencies> | ||
<dependency> | ||
<groupId>com.google.apis</groupId> | ||
<artifactId>google-api-services-vision</artifactId> | ||
<version>v1-rev2-1.21.0</version> | ||
</dependency> | ||
<dependency> | ||
<groupId>com.google.api-client</groupId> | ||
<artifactId>google-api-client</artifactId> | ||
<version>1.21.0</version> | ||
</dependency> | ||
<dependency> | ||
<groupId>com.google.guava</groupId> | ||
<artifactId>guava</artifactId> | ||
<version>19.0</version> | ||
</dependency> | ||
<dependency> | ||
<groupId>com.google.auto.value</groupId> | ||
<artifactId>auto-value</artifactId> | ||
<version>1.1</version> | ||
<scope>provided</scope> | ||
</dependency> | ||
<dependency> | ||
<groupId>org.apache.opennlp</groupId> | ||
<artifactId>opennlp-tools</artifactId> | ||
<version>1.6.0</version> | ||
</dependency> | ||
<dependency> | ||
<groupId>redis.clients</groupId> | ||
<artifactId>jedis</artifactId> | ||
<version>2.8.0</version> | ||
</dependency> | ||
|
||
<!-- Test Dependencies --> | ||
<dependency> | ||
<groupId>junit</groupId> | ||
<artifactId>junit</artifactId> | ||
<version>4.12</version> | ||
</dependency> | ||
<dependency> | ||
<groupId>com.google.truth</groupId> | ||
<artifactId>truth</artifactId> | ||
<version>0.28</version> | ||
</dependency> | ||
<dependency> | ||
<!-- for checking HTTP response codes --> | ||
<groupId>javax.servlet</groupId> | ||
<artifactId>javax.servlet-api</artifactId> | ||
<version>3.1.0</version> | ||
</dependency> | ||
</dependencies> | ||
<build> | ||
<plugins> | ||
<plugin> | ||
<groupId>org.apache.maven.plugins</groupId> | ||
<version>3.3</version> | ||
<artifactId>maven-compiler-plugin</artifactId> | ||
<configuration> | ||
<source>1.8</source> | ||
<target>1.8</target> | ||
</configuration> | ||
</plugin> | ||
<plugin> | ||
<artifactId>maven-assembly-plugin</artifactId> | ||
<configuration> | ||
<archive> | ||
<manifest> | ||
<mainClass>com.google.cloud.vision.samples.text.TextApp</mainClass> | ||
</manifest> | ||
</archive> | ||
<descriptorRefs> | ||
<descriptorRef>jar-with-dependencies</descriptorRef> | ||
</descriptorRefs> | ||
</configuration> | ||
</plugin> | ||
<plugin> | ||
<groupId>org.apache.maven.plugins</groupId> | ||
<artifactId>maven-checkstyle-plugin</artifactId> | ||
<version>2.17</version> | ||
<configuration> | ||
<configLocation>../google-checks.xml</configLocation> | ||
<excludes>**/AutoValue_*</excludes> | ||
<consoleOutput>true</consoleOutput> | ||
<failOnViolation>true</failOnViolation> | ||
<failsOnError>true</failsOnError> | ||
</configuration> | ||
<executions> | ||
<execution><goals><goal>check</goal></goals></execution> | ||
</executions> | ||
</plugin> | ||
</plugins> | ||
</build> | ||
</project> |
54 changes: 54 additions & 0 deletions
54
java/text/src/main/java/com/google/cloud/vision/samples/text/ImageText.java
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
/* | ||
* Copyright 2016 Google Inc. All Rights Reserved. | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
package com.google.cloud.vision.samples.text; | ||
|
||
import com.google.api.services.vision.v1.model.EntityAnnotation; | ||
import com.google.auto.value.AutoValue; | ||
|
||
import java.nio.file.Path; | ||
import java.util.List; | ||
|
||
import javax.annotation.Nullable; | ||
|
||
/** | ||
* A data object for mapping text to file paths. | ||
*/ | ||
@AutoValue | ||
abstract class ImageText { | ||
|
||
public static Builder builder() { | ||
return new AutoValue_ImageText.Builder(); | ||
} | ||
|
||
public abstract Path path(); | ||
|
||
public abstract List<EntityAnnotation> textAnnotations(); | ||
|
||
@Nullable | ||
public abstract Exception error(); | ||
|
||
@AutoValue.Builder | ||
public abstract static class Builder { | ||
public abstract Builder path(Path path); | ||
|
||
public abstract Builder textAnnotations(List<EntityAnnotation> ts); | ||
|
||
public abstract Builder error(@Nullable Exception ex); | ||
|
||
public abstract ImageText build(); | ||
} | ||
} |
Oops, something went wrong.