public async Task Detect(byte[] imageData, YoloResult result) { try { state = State.Busy; DetectionRequest request = new DetectionRequest { Image = ByteString.CopyFrom(imageData) }; using (var call = client.Detect(request)) { var responseStream = call.ResponseStream; while (await responseStream.MoveNext()) { DetectionResponse response = responseStream.Current; foreach (DetectionResult r in response.YoloItems) { result.Add(new YoloItem(r.Type, r.Confidence, r.X, r.Y, r.Width, r.Height)); } result.ElapsedMilliseconds = response.ElapsedMilliseconds; state = State.NewResponse; } } } catch (RpcException e) { UnityEngine.Debug.LogError("RPC failed " + e); throw; } }
private const int IntervalInMilliseconds = 200; // throttle requests public ClientManager(HiResScreenShots screenShotService) { this._screenShotService = screenShotService; _channel = new Channel("127.0.0.1:50052", ChannelCredentials.Insecure); _client = new ClientWrapper(new YoloService.YoloServiceClient(_channel)); _result = new YoloResult(); _detectionArgs = new DetectionEventArgs(_result); _timer = new Stopwatch(); _timer.Start(); }
public ClientManager(ref Texture2D texture) { channel = new Channel("127.0.0.1:50052", ChannelCredentials.Insecure); client = new ClientWrapper(new YoloService.YoloServiceClient(channel)); this.texture = texture; result = new YoloResult(); detectionEventArgs = new DetectionEventArgs(result); timer = new Stopwatch(); timer.Start(); }
public DetectionEventArgs(YoloResult result) { Result = result; }