ImageEn, unit IEVision

TIEVisionNNet

TIEVisionNNet

Declaration

TIEVisionNNet = interface(TIEVisionNNetBase)

Description

The TIEVisionNNet class provides functionilty related to neural networks and deep learning. The following functions are supported:
◼Recognizing (classifying) a single object within an image,
◼Detecting the position of one or more objects within an image
◼Detecting the position of one or more text blocks within an image.

This class is responsible for loading the model, preparing the input, running the neural network, and post-processing the output.


More information on Deep Learning is available at: learnopencv.com/deep-learning-with-opencvs-dnn-module-a-definitive-guide/

Demo

Demo  Demos\IEVision\NeuralNet\NeuralNet.dpr

Examples

// Recognize the object inside TImageEnView1 using a pretrained BLVC GoogLeNet model
var
  nnet: TIEVisionNNet;
  classId: Integer;
  confidence: Single;
begin
  nnet := IEVisionLib.createNNet('bvlc_googlenet.caffemodel', 'bvlc_googlenet.prototxt');
  nnet.classifyObject(ImageEnView1.IEBitmap.GetIEVisionImage(), classId, confidence);
  ShowMessage( Format( 'Object index %d (%d%%)', [classId, Trunc(confidence * 100)]));
end;

// Detect all text blocks inside TImageEnView using DB_IC15_resnet18.onnx pretrained model
var
  nnet: TIEVisionNNet;
  rrects: TIEVisionVectorRotatedRect;
  confidences: TIEVisionVectorDouble;
  i: Integer;
begin
  nnet := IEVisionLib.createNNet('models\DB\DB_IC15_resnet18.onnx');
  nnet.setInputSize(1280, 736);
  nnet.setInputScale(1.0/255);
  nnet.detectTexts(1, ImageEnView1.IEBitmap.GetIEVisionImage(), confidences, rrects);
  for i := 0 to rrects.size() - 1 do
  begin
    // Do something with the detected text blocks, e.g. use TIEVisionOCR to recognize the text
  end;
end;

Methods and Properties

Public Method  classifyObject
Public Method  detectObjects
Public Method  detectTexts
Public Method  isEmpty
Public Method  setDevice
Public Method  setInputScale
Public Method  setInputSize
Public Method  setSwapRB

See Also

◼createNNet
◼TIEVisionNNetSuperRes