Properties · Methods · Demos · Examples
Declaration
TIEGoogleVision = class;
Description
Provides access to the
Google Vision web service to recognize objects, text, handwriting, faces, famous landmarks and logos in images.
Note:
◼You will need an API key that supports the "Google Cloud Vision API". See
www.ImageEn.com/support/CreateGoogleAPIKey.html◼TIEGoogleVision works best with Delphi/BCB 10.1 (Berlin) or newer. On older versions you must use your own REST components and parse content by setting
ResponseJSONGoogle Vision Features
Object localization (iegrObjectLocalization)Detects objects in an image, and returns their label and bounding box.
See:
ObjectAnnotationsFace detection (iegrFaceDetection)Locates faces with bounding polygons, and identifies specific facial "landmarks" such as eyes, ears, nose, mouth, etc. along with their corresponding confidence values.
Also, returns likelihood ratings for emotion (joy, sorrow, anger, surprise) and general image properties (underexposed, blurred, headwear present).
See:
FaceAnnotationsAlso available locally using IEVision:
TIEVisionObjectsFinder Landmark detection (iegrLandmarkDetection)Detects popular natural and human-made structures within an image, returning the name, GPS coordinates and bounding box for the landmark.
See:
LandmarkAnnotationsAlso see:
GenerateGoogleStaticMapURL Logo detection (iegrLogoDetection)Recognizes popular product logos within an image, returning their name and bounding box.
See:
LogoAnnotations Label detection (iegrLabelDetection)Detects information about entities in an image, such as general objects, locations, activities, animal species, products, and more.
Note: Labels are returned in English only
See:
LabelAnnotationsText detection (iegrTextDetection)Recognizes text and handwriting within an image (OCR), returning the text and location.
Returns text in all Google-supported languages.
Note: iegrTextDetection is optimized for sparse areas of text within a larger image
See:
TextAnnotationsFor more advanced, local OCR, use IEVision:
TIEVisionOCR Document text detection (iegrDocumentTextDetection)Optical character recognition (OCR) for a file (PDF/TIFF) or dense text image.
Note: iegrDocumentTextDetection is optimized for dense areas of text in an image (images that are documents), and images that contain handwriting.
See:
TextContentFor more advanced, local OCR, use IEVision:
TIEVisionOCRCrop hint detection (iegrCropHintsDetection)Suggests a crop region for the image and returns its importance relative to the original image for each request.
You can provide up to 16 image ratio values (width:height) for a single image.
See:
CropHintsAnnotationWeb Entities and Pages (iegrWebDetection)Detects references and related web information for an image, including:
◼Best guess label: A best guess as to the topic of the requested image inferred from similar images on the Internet
◼Inferred entities (labels/descriptions) from similar images on the Web
◼Full matching images: A list of URLs for fully matching images of any size on the Internet
◼Partial matching images: A list of URLs for images that share key-point features, such as a cropped version of the original image
◼Pages with matching images: A list of Webpages with an image that matches one of the above rules
◼Visually similar images: A list of URLs for images that share some features with the original image
See:
WebDetection SafeSearch: Explicit content detection (iegrSafeSearchDetection)Detects explicit content such as adult content or violent content within an image.
Provides likelihood ratings for the following explicit content categories: adult, spoof, medical, violence, and racy.
See:
SafeSearchAnnotationImage properties (iegrImageProperties)Returns the dominant colors in an image.
ImageEn does not currently parse iegrImageProperties results.
See:
ResponseMore Information:
cloud.google.com/vision/docs/features-list | Demos\InputOutput\GoogleVisionApi\GoogleVisionApi.dpr |
Cursor := crHourglass;
lblSubmitting.Visible := True;
GVision := TIEGoogleVision.Create( MY_API_KEY );
try
// Use recommended delivery size (for faster processing)
GVision.SendImageWidth := 640;
GVision.SendImageHeight := 480;
GVision.RequestTypes := [iegrWebDetection, iegrSafeSearchDetection, iegrLandmarkDetection];
GVision.ProcessImage( edtFilename.Text );
lbxResults.Clear();
if Length( GVision.WebDetection.bestGuessLabels ) > 0 then
lbxResults.Items.Add( 'This image is likely to be: ' + GVision.WebDetection.bestGuessLabels[0].webLabel );
if GVision.HasLandmarkAnnotations then
begin
lbxResults.Items.Add( 'This image is the landmark: ' + GVision.LandmarkAnnotations[0].description );
lbxResults.Items.Add( 'Latitude: ' + LatLongToStr( GVision.LandmarkAnnotations[0].latitude, True ));
lbxResults.Items.Add( 'Longitude: ' + LatLongToStr( GVision.LandmarkAnnotations[0].longitude, False ));
end;
lbxResults.Items.Add( format( 'Found %d matching images on the web', [ GVision.WebDetection.fullMatchingImages.Count ]));
lbxResults.Items.AddStrings( GVision.WebDetection.fullMatchingImages );
lbxResults.Items.Add( format( 'Found %d pages on the web containing this image', [ GVision.WebDetection.pagesWithMatchingImages.Count ]));
lbxResults.Items.AddStrings( GVision.WebDetection.pagesWithMatchingImages );
if GVision.SafeSearchAnnotation.adult in [ieglLikely, ieglVeryLikely] then
lbxResults.Items.Add( 'Likely to be an ADULT image' );
if GVision.SafeSearchAnnotation.violence in [ieglLikely, ieglVeryLikely] then
lbxResults.Items.Add( 'Likely to be an VIOLENT image' );
finally
Cursor := crDefault;
lblSubmitting.Visible := False;
GVision.Free;
end;
GeneralResultsSee Also
◼GenerateGoogleStaticMapURL