सभी को नमस्ते! C++ में

  1. पक्का करें कि आपके पास MediaPipe Framework का काम करने वाला वर्शन हो. यहां जाएं: इंस्टॉल करने के निर्देश दिए गए हों.

  2. hello world उदाहरण को चलाने के लिए:

    $ git clone https://github.com/google/mediapipe.git
    $ cd mediapipe
    
    $ export GLOG_logtostderr=1
    # Need bazel flag 'MEDIAPIPE_DISABLE_GPU=1' as desktop GPU is not supported currently.
    $ bazel run --define MEDIAPIPE_DISABLE_GPU=1 \
        mediapipe/examples/desktop/hello_world:hello_world
    
    # It should print 10 rows of Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    # Hello World!
    
  3. hello world के उदाहरण में, एक सामान्य MediaPipe ग्राफ़ का इस्तेमाल किया गया है PrintHelloWorld() फ़ंक्शन, जिसकी जानकारी CalculatorGraphConfig प्रोटो में दी गई है.

    absl::Status PrintHelloWorld() {
      // Configures a simple graph, which concatenates 2 PassThroughCalculators.
      CalculatorGraphConfig config = ParseTextProtoOrDie<CalculatorGraphConfig>(R"(
        input_stream: "in"
        output_stream: "out"
        node {
          calculator: "PassThroughCalculator"
          input_stream: "in"
          output_stream: "out1"
        }
        node {
          calculator: "PassThroughCalculator"
          input_stream: "out1"
          output_stream: "out"
        }
      )");
    

    इस ग्राफ़ को विज़ुअलाइज़ करने के लिए, MediaPipe विज़ुअलाइज़र को चिपकाने के लिए नीचे विज़ुअलाइज़र में CalculatorGraphConfig कॉन्टेंट जोड़ा गया है. यहां जाएं: यहां पढ़ें.

        input_stream: "in"
        output_stream: "out"
        node {
          calculator: "PassThroughCalculator"
          input_stream: "in"
          output_stream: "out1"
        }
        node {
          calculator: "PassThroughCalculator"
          input_stream: "out1"
          output_stream: "out"
        }
    

    इस ग्राफ़ में एक ग्राफ़ इनपुट स्ट्रीम (in) और एक ग्राफ़ आउटपुट स्ट्रीम शामिल है (out), और दो PassThroughCalculator क्रम से कनेक्ट किए गए हैं.

    हैलो_वर्ल्ड ग्राफ़

  4. ग्राफ़ चलाने से पहले, OutputStreamPoller ऑब्जेक्ट को आउटपुट स्ट्रीम, ताकि बाद में ग्राफ़ के आउटपुट को वापस लाया जा सके और ग्राफ़ को रन किया जा सके की शुरुआत StartRun से हुई.

    CalculatorGraph graph;
    MP_RETURN_IF_ERROR(graph.Initialize(config));
    MP_ASSIGN_OR_RETURN(OutputStreamPoller poller,
                        graph.AddOutputStreamPoller("out"));
    MP_RETURN_IF_ERROR(graph.StartRun({}));
    
  5. इसके बाद उदाहरण में 10 पैकेट बनाए जाते हैं (हर पैकेट में एक स्ट्रिंग "हैलो" होती है) दुनिया!" जिनमें टाइमस्टैंप की वैल्यू 0, 1, ... 9 के बीच की हों) का इस्तेमाल करके, MakePacket फ़ंक्शन, हर पैकेट को in की मदद से ग्राफ़ में जोड़ता है इनपुट स्ट्रीम को चुनता है और आखिर में ग्राफ़ को पूरा करने के लिए, इनपुट स्ट्रीम को बंद करता है.

    for (int i = 0; i < 10; ++i) {
      MP_RETURN_IF_ERROR(graph.AddPacketToInputStream("in",
                         MakePacket<std::string>("Hello World!").At(Timestamp(i))));
    }
    MP_RETURN_IF_ERROR(graph.CloseInputStream("in"));
    
  6. इसके बाद, उदाहरण OutputStreamPoller ऑब्जेक्ट की मदद से, सभी 10 ऑब्जेक्ट को फ़ेच करता है आउटपुट स्ट्रीम के पैकेट, हर पैकेट से स्ट्रिंग कॉन्टेंट हासिल करते हैं और उसे आउटपुट लॉग में प्रिंट करता है.

    mediapipe::Packet packet;
    while (poller.Next(&packet)) {
      LOG(INFO) << packet.Get<string>();
    }