Package org.apache.tika.dl.imagerec
Class DL4JInceptionV3Net
java.lang.Object
org.apache.tika.dl.imagerec.DL4JInceptionV3Net
- All Implemented Interfaces:
Initializable
,ObjectRecogniser
DL4JInceptionV3Net
is an implementation of ObjectRecogniser
.
This object recogniser is powered by Deeplearning4j.
This implementation is pre configured to use
Google's InceptionV3 model pre trained on
ImageNet corpus. The models references in default settings are originally trained and exported
from Keras and imported using DL4J's importer tools.
Although this implementation is made to work out of the box without user attention, for advances users who are interested in tweaking the settings, the following fields are configurable:
modelWeightsPath
labelFile
labelLang
cacheDir
imgWidth
imgHeight
imgChannels
minConfidence
- Since:
- Tika 1.15
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
checkInitialization
(InitializableProblemHandler problemHandler) The mimes supported by this recogniservoid
initialize
(Map<String, Param> params) This is the hook for configuring the recogniserboolean
Is this service availableloadClassIndex
(InputStream stream) Loads the class toorg.nd4j.linalg.api.ndarray.INDArray
preProcessImage
(org.nd4j.linalg.api.ndarray.INDArray input) Pre process image to reduce to make it feedable to inception networkrecognise
(InputStream stream, ContentHandler handler, Metadata metadata, ParseContext context) Recognise the objects in the stream
-
Constructor Details
-
DL4JInceptionV3Net
public DL4JInceptionV3Net()
-
-
Method Details
-
getSupportedMimes
Description copied from interface:ObjectRecogniser
The mimes supported by this recogniser- Specified by:
getSupportedMimes
in interfaceObjectRecogniser
- Returns:
- set of mediatypes
-
initialize
Description copied from interface:ObjectRecogniser
This is the hook for configuring the recogniser- Specified by:
initialize
in interfaceInitializable
- Specified by:
initialize
in interfaceObjectRecogniser
- Parameters:
params
- configuration instance in the form of context- Throws:
TikaConfigException
- when there is an issue with configuration
-
checkInitialization
public void checkInitialization(InitializableProblemHandler problemHandler) throws TikaConfigException - Specified by:
checkInitialization
in interfaceInitializable
- Parameters:
problemHandler
- if there is a problem and no custom initializableProblemHandler has been configured via Initializable parameters, this is called to respond.- Throws:
TikaConfigException
-
isAvailable
public boolean isAvailable()Description copied from interface:ObjectRecogniser
Is this service available- Specified by:
isAvailable
in interfaceObjectRecogniser
- Returns:
true
when the service is available,false
otherwise
-
preProcessImage
public org.nd4j.linalg.api.ndarray.INDArray preProcessImage(org.nd4j.linalg.api.ndarray.INDArray input) Pre process image to reduce to make it feedable to inception network- Parameters:
input
- Input image- Returns:
- processed image
-
loadClassIndex
public Map<Integer,String> loadClassIndex(InputStream stream) throws IOException, org.json.simple.parser.ParseException Loads the class to- Parameters:
stream
- label index stream- Returns:
- Map of integer -> label name
- Throws:
IOException
- when the stream breaks unexpectedlyorg.json.simple.parser.ParseException
- when the input doesn't contain a valid JSON map
-
recognise
public List<RecognisedObject> recognise(InputStream stream, ContentHandler handler, Metadata metadata, ParseContext context) throws IOException, SAXException, TikaException Description copied from interface:ObjectRecogniser
Recognise the objects in the stream- Specified by:
recognise
in interfaceObjectRecogniser
- Parameters:
stream
- content streamhandler
- tika's content handlermetadata
- metadata instancecontext
- parser context- Returns:
- List of
RecognisedObject
s - Throws:
IOException
- when an I/O error occursSAXException
- when an issue with XML occursTikaException
- any generic error
-