コード例 #1
0
        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;
            }
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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();
        }
コード例 #4
0
 public DetectionEventArgs(YoloResult result)
 {
     Result = result;
 }