gotritron

package module
v0.0.0-...-1cc333a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 27, 2023 License: MIT Imports: 16 Imported by: 0

README

gotritron

OpenCV Installation (Ubuntu)
sudo apt install build-essential cmake git pkg-config libgtk-3-dev \
    libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \
    libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \
    gfortran openexr libatlas-base-dev python3-dev python3-numpy \
    libtbb2 libtbb-dev libdc1394-22-dev libopenexr-dev \
    libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev

Documentation

Index

Constants

View Source
const (
	FaceQualityClassBad = iota
	FaceQualityClassGood
	FaceQualityClassWearingMask
	FaceQualityClassWearingSunglasses
)
View Source
const (
	AgeEstimatorClassRange0_2 = iota
	AgeEstimatorClassRange3_9
	AgeEstimatorClassRange10_19
	AgeEstimatorClassRange20_29
	AgeEstimatorClassRange30_39
	AgeEstimatorClassRange40_49
	AgeEstimatorClassRange50_59
	AgeEstimatorClassRange60_69
	AgeEstimatorClassRange70_100
)
View Source
const (
	DefaultHTTPClientReadTimeout                = 5 * time.Second
	DefaultHTTPClientWriteTimeout               = 5 * time.Second
	DefaultHTTPClientMaxConnPerHost      int    = 16384
	HTTPPrefix                           string = "http://"
	JSONContentType                      string = "application/json"
	TritonAPIForModelVersionPrefix       string = "/versions/"
	TritonAPIPrefix                      string = "/v2"
	TritonAPIForServerIsLive                    = TritonAPIPrefix + "/health/live"
	TritonAPIForServerIsReady                   = TritonAPIPrefix + "/health/ready"
	TritonAPIForRepoIndex                       = TritonAPIPrefix + "/repository/index"
	TritonAPIForRepoModelPrefix                 = TritonAPIPrefix + "/repository/models/"
	TritonAPIForModelPrefix                     = TritonAPIPrefix + "/models/"
	TritonAPIForCudaMemoryRegionPrefix          = TritonAPIPrefix + "/cudasharememory/region/"
	TritonAPIForSystemMemoryRegionPrefix        = TritonAPIPrefix + "/systemsharememory/region/"
)

Variables

View Source
var FaceQualityClassMapper = map[int]string{
	FaceQualityClassBad:               "Bad",
	FaceQualityClassGood:              "Good",
	FaceQualityClassWearingMask:       "WearingMask",
	FaceQualityClassWearingSunglasses: "WearingSunGlasses",
}

Functions

func AnchorPlane

func AnchorPlane(height, width, stride int, baseAnchor [][]float64) (*tensor.Dense, error)

func GenerateAnchorsFPN2

func GenerateAnchorsFPN2(denseAnchor bool, cfgs map[string]Anchor) ([][][]float64, error)

GenerateAnchorsFPN2 generates anchor (reference) windows by enumerating aspect ratios X scales wrt a reference (0, 0, 15, 15) window.

func NewTritonGRPCClient

func NewTritonGRPCClient(serverURL string, grpcOpts []grpc.DialOption) error

NewTritonGRPCClient inits a new gRPC client

func NewTritonHTTPClient

func NewTritonHTTPClient(serverURL string, opts []grpc.DialOption) error

Types

type ARCFaceRecognitionConfig

type ARCFaceRecognitionConfig struct {
	// ModelName defines the name of the model to use
	ModelName string
	// Timeout defines duration in seconds
	Timeout   int64
	ImageSize [2]int32
	BatchSize int32
}

func DefaultARCFaceRecognitionConfig

func DefaultARCFaceRecognitionConfig() *ARCFaceRecognitionConfig

type AgeEstimatorConfig

type AgeEstimatorConfig struct {
	// ModelName defines the name of the model to use
	ModelName string
	// Timeout defines duration in seconds
	Timeout   int64
	ImageSize [2]int32
	BatchSize int32
}

func DefaultAgeEstimatorConfig

func DefaultAgeEstimatorConfig() *AgeEstimatorConfig

type Anchor

type Anchor struct {
	Scale         []float64
	BaseSize      int
	Ratio         []float64
	AllowedBorder int
}

type FaceAlignConfig

type FaceAlignConfig struct {
	ImageSize         [2]int
	StandardLandmarks VectorF32
}

func DefaultFaceAlignConfig

func DefaultFaceAlignConfig() *FaceAlignConfig

type FaceQualityConfig

type FaceQualityConfig struct {
	// ModelName defines the name of the model to use
	ModelName string
	// Timeout defines duration in seconds
	Timeout   int64
	ImageSize [2]int32
	BatchSize int32
	Threshold float32
}

func DefaultFaceQualityConfig

func DefaultFaceQualityConfig() *FaceQualityConfig

type FaceSelectionConfig

type FaceSelectionConfig struct {
	MarginCenterLeftRatio   float32
	MarginCenterRightRatio  float32
	MarginEdgeRatio         float32
	MinimumFaceRatio        float32
	MinimumWidthHeightRatio float32
	MaximumWidthHeightRatio float32
}

func DefaultFaceSelectionConfig

func DefaultFaceSelectionConfig() *FaceSelectionConfig

type ModelConfig

type ModelConfig struct {
}

type Pair

type Pair[T any] struct {
	A, B T
}

type RetinaFaceDetection

type RetinaFaceDetection struct {
	Config       *RetinaFaceDetectionConfig
	TritonClient *triton_client.TritonGRPCClient
	// contains filtered or unexported fields
}

func NewRetinaFaceDetection

func NewRetinaFaceDetection() (*RetinaFaceDetection, error)

func (*RetinaFaceDetection) Forward

func (rfd *RetinaFaceDetection) Forward(src *tensor.Dense) ([]byte, error)

func (*RetinaFaceDetection) Preprocess

func (rfd *RetinaFaceDetection) Preprocess(src *opencv.Mat) (*tensor.Dense, float64, error)

type RetinaFaceDetectionConfig

type RetinaFaceDetectionConfig struct {
	// ModelName defines the name of the model to use
	ModelName string
	// Timeout defines duration in seconds
	Timeout             int64
	ImageSize           [2]int
	MaxBatchSize        int32
	ConfidenceThreshold float32
	IOUThreshold        float32
}

func DefaultRetinaFaceDetectionConfig

func DefaultRetinaFaceDetectionConfig() *RetinaFaceDetectionConfig

type TritonGRPCClient

type TritonGRPCClient struct {
	// contains filtered or unexported fields
}

func GetGRPCInstance

func GetGRPCInstance() *TritonGRPCClient

GetGRPCInstance returns an instance of the Triton gRPC client

func GetHTTPInstance

func GetHTTPInstance() *TritonGRPCClient

func (*TritonGRPCClient) Disconnect

func (tc *TritonGRPCClient) Disconnect() error

func (*TritonGRPCClient) GetModelConfiguration

func (tc *TritonGRPCClient) GetModelConfiguration(modelName, modelVersion string, timeout time.Duration) (*grpc_client.ModelConfigResponse, error)

GetModelConfiguration Get model configuration.

func (*TritonGRPCClient) GetModelTracingSetting

func (tc *TritonGRPCClient) GetModelTracingSetting(modelName string, timeout time.Duration) (*grpc_client.TraceSettingResponse, error)

GetModelTracingSetting get model tracing setting.

func (*TritonGRPCClient) ModelGRPCInfer

func (tc *TritonGRPCClient) ModelGRPCInfer(inferInputs []*grpc_client.ModelInferRequest_InferInputTensor, inferOutputs []*grpc_client.ModelInferRequest_InferRequestedOutputTensor, rawInputs [][]byte, modelName, modelVersion string, timeout time.Duration) (*grpc_client.ModelInferResponse, error)

ModelGRPCInfer Call Triton with GRPC

func (*TritonGRPCClient) ModelInferStats

func (tc *TritonGRPCClient) ModelInferStats(modelName, modelVersion string, timeout time.Duration) (*grpc_client.ModelStatisticsResponse, error)

ModelInferStats Get Model infer stats.

func (*TritonGRPCClient) ModelLoadWithGRPC

func (tc *TritonGRPCClient) ModelLoadWithGRPC(repoName, modelName string, modelConfigBody map[string]*grpc_client.ModelRepositoryParameter, timeout time.Duration) (*grpc_client.RepositoryModelLoadResponse, error)

ModelLoadWithGRPC Load Model with grpc.

func (*TritonGRPCClient) ModelRepositoryIndex

func (tc *TritonGRPCClient) ModelRepositoryIndex(repoName string, isReady bool, timeout time.Duration) (*grpc_client.RepositoryIndexResponse, error)

ModelRepositoryIndex Get model repo index.

func (*TritonGRPCClient) ModelUnloadWithGRPC

func (tc *TritonGRPCClient) ModelUnloadWithGRPC(repoName, modelName string, modelConfigBody map[string]*grpc_client.ModelRepositoryParameter, timeout time.Duration) (*grpc_client.RepositoryModelUnloadResponse, error)

ModelUnloadWithGRPC Unload model with grpc modelConfigBody if not is nil.

func (*TritonGRPCClient) ServerAlive

func (tc *TritonGRPCClient) ServerAlive(timeout time.Duration) (bool, error)

ServerAlive check server is alive.

func (*TritonGRPCClient) ServerMetadata

func (tc *TritonGRPCClient) ServerMetadata(timeout time.Duration) (*grpc_client.ServerMetadataResponse, error)

ServerMetadata Get server metadata.

func (*TritonGRPCClient) ServerReady

func (tc *TritonGRPCClient) ServerReady(timeout time.Duration) (bool, error)

ServerReady check server is ready.

func (*TritonGRPCClient) SetModelTracingSetting

func (tc *TritonGRPCClient) SetModelTracingSetting(modelName string, settingMap map[string]*grpc_client.TraceSettingRequest_SettingValue, timeout time.Duration) (*grpc_client.TraceSettingResponse, error)

SetModelTracingSetting set model tracing setting.

func (*TritonGRPCClient) ShareCUDAMemoryRegister

func (tc *TritonGRPCClient) ShareCUDAMemoryRegister(regionName string, cudaRawHandle []byte, cudaDeviceID int64, byteSize uint64, timeout time.Duration) (*grpc_client.CudaSharedMemoryRegisterResponse, error)

ShareCUDAMemoryRegister cuda share memory register.

func (*TritonGRPCClient) ShareCUDAMemoryUnRegister

func (tc *TritonGRPCClient) ShareCUDAMemoryUnRegister(regionName string, timeout time.Duration) (*grpc_client.CudaSharedMemoryUnregisterResponse, error)

ShareCUDAMemoryUnRegister cuda share memory unregister.

func (*TritonGRPCClient) ShareMemoryStatus

func (tc *TritonGRPCClient) ShareMemoryStatus(isCUDA bool, regionName string, timeout time.Duration) (interface{}, error)

ShareMemoryStatus Get share memory / cuda memory status.

func (*TritonGRPCClient) ShareSystemMemoryRegister

func (tc *TritonGRPCClient) ShareSystemMemoryRegister(regionName, cpuMemRegionKey string, byteSize, cpuMemOffset uint64, timeout time.Duration) (*grpc_client.SystemSharedMemoryRegisterResponse, error)

ShareSystemMemoryRegister system share memory register.

func (*TritonGRPCClient) ShareSystemMemoryUnRegister

func (tc *TritonGRPCClient) ShareSystemMemoryUnRegister(regionName string, timeout time.Duration) (*grpc_client.SystemSharedMemoryUnregisterResponse, error)

ShareSystemMemoryUnRegister system share memory unregister.

type TritonHTTPClientService

type TritonHTTPClientService struct {
	// contains filtered or unexported fields
}

type VectorF32

type VectorF32 [][]float32

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL