ওহে বিশ্ব! C++ এ

  1. নিশ্চিত করুন যে আপনার কাছে MediaPipe ফ্রেমওয়ার্কের একটি কার্যকরী সংস্করণ আছে। ইনস্টলেশন নির্দেশাবলী দেখুন.

  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 উদাহরণটি একটি CalculatorGraphConfig প্রোটোতে সংজ্ঞায়িত PrintHelloWorld() ফাংশনে একটি সাধারণ মিডিয়াপাইপ গ্রাফ ব্যবহার করে।

    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"
        }
      )");
    

    আপনি মিডিয়াপাইপ ভিজ্যুয়ালাইজার ব্যবহার করে নীচের ক্যালকুলেটরগ্রাফ কনফিগ বিষয়বস্তুটি ভিজ্যুয়ালাইজারের মধ্যে পেস্ট করে এই গ্রাফটি কল্পনা করতে পারেন। ভিজ্যুয়ালাইজারের সাহায্যের জন্য এখানে দেখুন।

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

    এই গ্রাফটিতে 1টি গ্রাফ ইনপুট স্ট্রীম ( in ) এবং 1টি গ্রাফ আউটপুট স্ট্রীম ( out ), এবং 2টি 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. উদাহরণটি তারপরে MakePacket ফাংশন ব্যবহার করে 10টি প্যাকেট তৈরি করে (প্রতিটি প্যাকেটে একটি স্ট্রিং "হ্যালো ওয়ার্ল্ড!" রয়েছে যার টাইমস্ট্যাম্প মান 0, 1, ... 9 থেকে থাকে) 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>();
    }