fix: egeTpu configuration

This commit is contained in:
Cyrille Nofficial 2021-10-12 17:32:03 +02:00
parent 77a2aa351b
commit 61d8bd22c4

View File

@ -18,7 +18,7 @@ import (
func NewPart(client mqtt.Client, modelPath, steeringTopic, cameraTopic string, edgeVerbosity int) *Part {
return &Part{
client: client,
modelPath: modelPath,
modelPath: modelPath,
steeringTopic: steeringTopic,
cameraTopic: cameraTopic,
edgeVebosity: edgeVerbosity,
@ -41,6 +41,7 @@ type Part struct {
}
func (p *Part) Start() error {
p.cancel = make(chan interface{})
p.model = tflite.NewModelFromFile(p.modelPath)
if p.model == nil {
return fmt.Errorf("cannot load model %v", p.modelPath)
@ -64,7 +65,7 @@ func (p *Part) Start() error {
edgetpu.Verbosity(p.edgeVebosity)
p.options = tflite.NewInterpreterOptions()
//options.SetNumThread(4)
p.options.SetNumThread(4)
p.options.SetErrorReporter(func(msg string, userData interface{}) {
zap.L().Error(msg,
zap.Any("userData", userData),
@ -73,6 +74,9 @@ func (p *Part) Start() error {
// Add the first EdgeTPU device
d := edgetpu.New(devices[0])
if d == nil {
return fmt.Errorf("unable to create new EdgeTpu delegate")
}
p.options.AddDelegate(d)
p.interpreter = tflite.NewInterpreter(p.model, p.options)
@ -119,6 +123,13 @@ func (p *Part) onFrame(_ mqtt.Client, message mqtt.Message) {
}
steering, confidence, err := p.Value(img)
if err != nil {
zap.S().Errorw("unable to compute sterring",
"frame", msg.GetId().GetId(),
"error", err,
)
return
}
msgSteering := &events.SteeringMessage{
Steering: steering,
Confidence: confidence,
@ -203,7 +214,7 @@ func (p *Part) Value(img image.Image) (float32, float32, error) {
var registerCallbacks = func(p *Part) error {
err := service.RegisterCallback(p.client, p.cameraTopic, p.onFrame)
if err != nil {
return err
return fmt.Errorf("unable to register callback: %w", err)
}
return nil
}