ホーム » 「MediaPipe 0.8」タグがついた投稿

タグアーカイブ: MediaPipe 0.8

MediaPipe 0.8 : Colab : MediaPipe ポーズ

MediaPipe 0.8 : Colab : MediaPipe ポーズ (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 03/11/2021 (0.8.3)

* 本ページは、MediaPipe の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

無料セミナー実施中 クラスキャット主催 人工知能 & ビジネス Web セミナー

人工知能とビジネスをテーマにウェビナー (WEB セミナー) を定期的に開催しています。スケジュールは弊社 公式 Web サイト でご確認頂けます。
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
  • Windows PC のブラウザからご参加が可能です。スマートデバイスもご利用可能です。
クラスキャットは人工知能・テレワークに関する各種サービスを提供しております :

人工知能研究開発支援 人工知能研修サービス テレワーク & オンライン授業を支援
PoC(概念実証)を失敗させないための支援 (本支援はセミナーに参加しアンケートに回答した方を対象としています。)

お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
E-Mail:sales-info@classcat.com ; WebSite: https://www.classcat.com/
Facebook: https://www.facebook.com/ClassCatJP/

 

 

 

MediaPipe 0.8 : Colab : MediaPipe ポーズ

Python の MediaPipe ポーズ・ソリューション API の使用サンプルです (http://solutions.mediapipe.dev/pose もまた見てください)。

!pip install mediapipe

可視な上半身を持つ人物を持つ任意の画像を Colab にアップロードします。web: https://unsplash.com/photos/4jqfc2vbHJQhttps://unsplash.com/photos/72zsd_fnxYc から 2 つのサンプル画像を取ります。

from google.colab import files

uploaded = files.upload()
import cv2
from google.colab.patches import cv2_imshow

# Read images with OpenCV.
images = {name: cv2.imread(name) for name in uploaded.keys()}

# Preview the images.
for name, image in images.items():
  print(name)   
  cv2_imshow(image)

総ての MediaPipe ソリューション Python API サンプルは mp.solutions 下にあります。

MediaPipe ポーズ・ソリューションについては、mp_holistic = mp.solutions.pose としてこのモジュールにアクセスできます。

初期化の間に static_image_mode と min_detection_confidence のようなパラメータを変更しても良いです。パラメータについてのより多くの情報を得るためには help(mp_holistic.Pose) を実行します。

import mediapipe as mp
mp_pose = mp.solutions.pose

help(mp_pose.Pose)
Help on class Pose in module mediapipe.python.solutions.pose:

class Pose(mediapipe.python.solution_base.SolutionBase)
 |  Pose(static_image_mode=False, upper_body_only=False, smooth_landmarks=True, min_detection_confidence=0.5, min_tracking_confidence=0.5)
 |  
 |  MediaPipe Pose.
 |  
 |  MediaPipe Pose processes an RGB image and returns pose landmarks on the most
 |  prominent person detected.
 |  
 |  Please refer to https://solutions.mediapipe.dev/pose#python-solution-api for
 |  usage examples.
 |  
 |  Method resolution order:
 |      Pose
 |      mediapipe.python.solution_base.SolutionBase
 |      builtins.object
 |  
 |  Methods defined here:
 |  
 |  __init__(self, static_image_mode=False, upper_body_only=False, smooth_landmarks=True, min_detection_confidence=0.5, min_tracking_confidence=0.5)
 |      Initializes a MediaPipe Pose object.
 |      
 |      Args:
 |        static_image_mode: Whether to treat the input images as a batch of static
 |          and possibly unrelated images, or a video stream. See details in
 |          https://solutions.mediapipe.dev/pose#static_image_mode.
 |        upper_body_only: Whether to track the full set of 33 pose landmarks or
 |          only the 25 upper-body pose landmarks. See details in
 |          https://solutions.mediapipe.dev/pose#upper_body_only.
 |        smooth_landmarks: Whether to filter landmarks across different input
 |          images to reduce jitter. See details in
 |          https://solutions.mediapipe.dev/pose#smooth_landmarks.
 |        min_detection_confidence: Minimum confidence value ([0.0, 1.0]) for person
 |          detection to be considered successful. See details in
 |          https://solutions.mediapipe.dev/pose#min_detection_confidence.
 |        min_tracking_confidence: Minimum confidence value ([0.0, 1.0]) for the
 |          pose landmarks to be considered tracked successfully. See details in
 |          https://solutions.mediapipe.dev/pose#min_tracking_confidence.
 |  
 |  process(self, image: numpy.ndarray) -> 
 |      Processes an RGB image and returns the pose landmarks on the most prominent person detected.
 |      
 |      Args:
 |        image: An RGB image represented as a numpy ndarray.
 |      
 |      Raises:
 |        RuntimeError: If the underlying graph throws any error.
 |        ValueError: If the input image is not three channel RGB.
 |      
 |      Returns:
 |        A NamedTuple object with a "pose_landmarks" field that contains the pose
 |        landmarks on the most prominent person detected.
 |  
 |  ----------------------------------------------------------------------
 |  Methods inherited from mediapipe.python.solution_base.SolutionBase:
 |  
 |  __enter__(self)
 |      A "with" statement support.
 |  
 |  __exit__(self, exc_type, exc_val, exc_tb)
 |      Closes all the input sources and the graph.
 |  
 |  close(self) -> None
 |      Closes all the input sources and the graph.
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from mediapipe.python.solution_base.SolutionBase:
 |  
 |  __dict__
 |      dictionary for instance variables (if defined)
 |  
 |  __weakref__
 |      list of weak references to the object (if defined)

# Prepare DrawingSpec for drawing the face landmarks later.
mp_drawing = mp.solutions.drawing_utils 
drawing_spec = mp_drawing.DrawingSpec(thickness=1, circle_radius=1)
with mp_pose.Pose(
    static_image_mode=True, min_detection_confidence=0.5) as pose:
  for name, image in images.items():
    # Convert the BGR image to RGB and process it with MediaPipe Pose.
    results = pose.process(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
    # Print nose landmark.
    image_hight, image_width, _ = image.shape
    if not results.pose_landmarks:
      continue
    print(
      f'Nose coordinates: ('
      f'{results.pose_landmarks.landmark[mp_pose.PoseLandmark.NOSE].x * image_width}, '
      f'{results.pose_landmarks.landmark[mp_pose.PoseLandmark.NOSE].y * image_hight})'
    )

    # Draw pose landmarks.
    print(f'Pose landmarks of {name}:')
    annotated_image = image.copy()
    mp_drawing.draw_landmarks(
        image=annotated_image,
        landmark_list=results.pose_landmarks,
        connections=mp_pose.POSE_CONNECTIONS,
        landmark_drawing_spec=drawing_spec,
        connection_drawing_spec=drawing_spec)
    cv2_imshow(annotated_image)

 

以上







MediaPipe 0.8 : Colab : MediaPipe 全身用 (Holistic)

MediaPipe 0.8 : Colab : MediaPipe 全身用 (Holistic) (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 03/10/2021 (0.8.3)

* 本ページは、MediaPipe の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

無料セミナー実施中 クラスキャット主催 人工知能 & ビジネス Web セミナー

人工知能とビジネスをテーマにウェビナー (WEB セミナー) を定期的に開催しています。スケジュールは弊社 公式 Web サイト でご確認頂けます。
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
  • Windows PC のブラウザからご参加が可能です。スマートデバイスもご利用可能です。
クラスキャットは人工知能・テレワークに関する各種サービスを提供しております :

人工知能研究開発支援 人工知能研修サービス テレワーク & オンライン授業を支援
PoC(概念実証)を失敗させないための支援 (本支援はセミナーに参加しアンケートに回答した方を対象としています。)

お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
E-Mail:sales-info@classcat.com ; WebSite: https://www.classcat.com/
Facebook: https://www.facebook.com/ClassCatJP/

 

 

 

MediaPipe 0.8 : Colab : MediaPipe 全身用 (Holistic)

Python の MediaPipe 全身用 (= Holistic) ソリューション API の使用サンプルです (http://solutions.mediapipe.dev/holistic もまた見てください)。

!pip install mediapipe

可視な上半身を持つ人物を持つ任意の画像を Colab にアップロードします。web: https://unsplash.com/photos/4jqfc2vbHJQhttps://unsplash.com/photos/72zsd_fnxYc から 2 つのサンプル画像を取ります。

from google.colab import files

uploaded = files.upload()
import cv2
from google.colab.patches import cv2_imshow

# Read images with OpenCV.
images = {name: cv2.imread(name) for name in uploaded.keys()}

# Preview the images.
for name, image in images.items():
  print(name)   
  cv2_imshow(image)

総ての MediaPipe ソリューション Python API サンプルは mp.solutions 下にあります。

MediaPipe 全身用ソリューションについては、mp_holistic = mp.solutions.holistic としてこのモジュールにアクセスできます。

初期化の間に static_image_mode と min_detection_confidence のようなパラメータを変更しても良いです。パラメータについてのより多くの情報を得るためには help(mp_holistic.Holistic) を実行します。

import mediapipe as mp
mp_holistic = mp.solutions.holistic

help(mp_holistic.Holistic)
Help on class Holistic in module mediapipe.python.solutions.holistic:

class Holistic(mediapipe.python.solution_base.SolutionBase)
 |  Holistic(static_image_mode=False, upper_body_only=False, smooth_landmarks=True, min_detection_confidence=0.5, min_tracking_confidence=0.5)
 |  
 |  MediaPipe Holistic.
 |  
 |  MediaPipe Holistic processes an RGB image and returns pose landmarks, left and
 |  right hand landmarks, and face mesh landmarks on the most prominent person
 |  detected.
 |  
 |  Please refer to https://solutions.mediapipe.dev/holistic#python-solution-api
 |  for usage examples.
 |  
 |  Method resolution order:
 |      Holistic
 |      mediapipe.python.solution_base.SolutionBase
 |      builtins.object
 |  
 |  Methods defined here:
 |  
 |  __init__(self, static_image_mode=False, upper_body_only=False, smooth_landmarks=True, min_detection_confidence=0.5, min_tracking_confidence=0.5)
 |      Initializes a MediaPipe Holistic object.
 |      
 |      Args:
 |        static_image_mode: Whether to treat the input images as a batch of static
 |          and possibly unrelated images, or a video stream. See details in
 |          https://solutions.mediapipe.dev/holistic#static_image_mode.
 |        upper_body_only: Whether to track the full set of 33 pose landmarks or
 |          only the 25 upper-body pose landmarks. See details in
 |          https://solutions.mediapipe.dev/holistic#upper_body_only.
 |        smooth_landmarks: Whether to filter landmarks across different input
 |          images to reduce jitter. See details in
 |          https://solutions.mediapipe.dev/holistic#smooth_landmarks.
 |        min_detection_confidence: Minimum confidence value ([0.0, 1.0]) for person
 |          detection to be considered successful. See details in
 |          https://solutions.mediapipe.dev/holistic#min_detection_confidence.
 |        min_tracking_confidence: Minimum confidence value ([0.0, 1.0]) for the
 |          pose landmarks to be considered tracked successfully. See details in
 |          https://solutions.mediapipe.dev/holistic#min_tracking_confidence.
 |  
 |  process(self, image: numpy.ndarray) -> 
 |      Processes an RGB image and returns the pose landmarks, left and right hand landmarks, and face landmarks on the most prominent person detected.
 |      
 |      Args:
 |        image: An RGB image represented as a numpy ndarray.
 |      
 |      Raises:
 |        RuntimeError: If the underlying graph throws any error.
 |        ValueError: If the input image is not three channel RGB.
 |      
 |      Returns:
 |        A NamedTuple that has four fields:
 |          1) "pose_landmarks" field that contains the pose landmarks on the most
 |          prominent person detected.
 |          2) "left_hand_landmarks" and "right_hand_landmarks" fields that contain
 |          the left and right hand landmarks of the most prominent person detected.
 |          3) "face_landmarks" field that contains the face landmarks of the most
 |          prominent person detected.
 |  
 |  ----------------------------------------------------------------------
 |  Methods inherited from mediapipe.python.solution_base.SolutionBase:
 |  
 |  __enter__(self)
 |      A "with" statement support.
 |  
 |  __exit__(self, exc_type, exc_val, exc_tb)
 |      Closes all the input sources and the graph.
 |  
 |  close(self) -> None
 |      Closes all the input sources and the graph.
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from mediapipe.python.solution_base.SolutionBase:
 |  
 |  __dict__
 |      dictionary for instance variables (if defined)
 |  
 |  __weakref__
 |      list of weak references to the object (if defined)
# Prepare DrawingSpec for drawing the face landmarks later.
mp_drawing = mp.solutions.drawing_utils 
drawing_spec = mp_drawing.DrawingSpec(thickness=1, circle_radius=1)
# Initialize MediaPipe Holistic.
with mp_holistic.Holistic(
    static_image_mode=True, min_detection_confidence=0.5) as holistic:
  for name, image in images.items():
    # Convert the BGR image to RGB and process it with MediaPipe Pose.
    results = holistic.process(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))

    # Print nose coordinates.
    image_hight, image_width, _ = image.shape
    if results.pose_landmarks:
      print(
        f'Nose coordinates: ('
        f'{results.pose_landmarks.landmark[mp_holistic.PoseLandmark.NOSE].x * image_width}, '
        f'{results.pose_landmarks.landmark[mp_holistic.PoseLandmark.NOSE].y * image_hight})'
      )
    # Draw pose landmarks.
    print(f'Pose landmarks of {name}:')
    annotated_image = image.copy()
    mp_drawing.draw_landmarks(annotated_image, results.left_hand_landmarks, mp_holistic.HAND_CONNECTIONS)
    mp_drawing.draw_landmarks(annotated_image, results.right_hand_landmarks, mp_holistic.HAND_CONNECTIONS)
    mp_drawing.draw_landmarks(
        image=annotated_image, 
        landmark_list=results.face_landmarks, 
        connections=mp_holistic.FACE_CONNECTIONS,
        landmark_drawing_spec=drawing_spec,
        connection_drawing_spec=drawing_spec)
    mp_drawing.draw_landmarks(
        image=annotated_image, 
        landmark_list=results.pose_landmarks, 
        connections=mp_holistic.POSE_CONNECTIONS,
        landmark_drawing_spec=drawing_spec,
        connection_drawing_spec=drawing_spec)
    cv2_imshow(annotated_image)

 

以上







MediaPipe 0.8 : フレームワーク概念 : 概要

MediaPipe 0.8 : フレームワーク概念 : 概要 (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 03/08/2021 (0.8.3)

* 本ページは、MediaPipe の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

無料セミナー実施中 クラスキャット主催 人工知能 & ビジネス Web セミナー

人工知能とビジネスをテーマにウェビナー (WEB セミナー) を定期的に開催しています。スケジュールは弊社 公式 Web サイト でご確認頂けます。
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
  • Windows PC のブラウザからご参加が可能です。スマートデバイスもご利用可能です。
クラスキャットは人工知能・テレワークに関する各種サービスを提供しております :

人工知能研究開発支援 人工知能研修サービス テレワーク & オンライン授業を支援
PoC(概念実証)を失敗させないための支援 (本支援はセミナーに参加しアンケートに回答した方を対象としています。)

お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
E-Mail:sales-info@classcat.com ; WebSite: https://www.classcat.com/
Facebook: https://www.facebook.com/ClassCatJP/

 

 

MediaPipe 0.8 : フレームワーク概念 : 概要

基本

パケット

基本的なデータフロー・ユニットです。パケットは数値のタイムスタンプと immutable なペイロード (データ本体) への共有ポインタから成ります。ペイロードは任意の C++ 型であり得て、そしてペイロードの型はまたパケットの型としても参照されます。パケットは value クラスで安価にコピーできます。各コピーはペイロードの所有権を共有し、参照カウント・セマンティクスを持ちます。各コピーはそれ自身のタイムスタンプを持ちます。Packet も見てください。

 

グラフ

MediaPipe 処理はグラフ内で発生します、これはノード間のパケットフローパスを定義します。グラフは任意の数の入力と出力を持つことができて、データフローは分岐して統合 (= merge) できます。一般にデータは前向きに流れますが、後方ループも可能です。詳細は グラフ を見てください。

 

ノード

ノードはパケットを生成 and/or 消費し、そしてそれらはグラフの作業の大部分が発生するところです。それらはまた歴史的な理由で、“calculators” としても知られています。各ノードのインターフェイスは (タグ and/or インデックスで識別される) 幾つかの入力と出力ポートを定義します。詳細は Calculators を見てください。

 

ストリーム

ストリームはパケットのシークエンスを運搬する 2 つのノード間の接続で、そのタイムスタンプは単調に増加していなければなりません。

 

サイド・パケット

ノード間のサイド・パケット接続は (未指定のタイムスタンプを持つ) 単一パケットを運搬します。それは定常的に残るあるデータを提供するために使用できます、一方でストリームは時間とともに変化するデータのフローを表します。

 

パケット・ポート

ポートは関連付けられた型を持ちます ; ポートを通過するパケットはその型でなければなりません。出力ストリーム・ポートは同じ型の任意の数の入力ストリーム・ポートに接続できます ; 各消費者は出力パケットの別々のコピーを受け取り、そしてそれ自身のキューを持ちますので、それはそれ自身の空間でそれらを消費できます。同様に、サイド・パケット出力ポートは望まれるだけの数のサイド/パケット入力ポートに接続できます。

ポートは必須であり得ます、接続はグラフが妥当であるために作成されなければならないことを意味します、あるいはオプションで、それが接続されないままでも良いです。

Note: ストリーム接続が必要とされる場合でさえも、ストリームは総てのタイムスタンプのためにはパケットを運搬しないかもしれません。

 

入力と出力

データフローは、入力ストリームを持たずそしてパケットを自発的に (= spontaneously) 生成する (e.g. ファイルから読むことにより) ソース・ノード ; あるいはアプリケーションにパケットをグラフに供給させる グラフ入力ストリーム を源とすることができます。

同様に、データを受け取りそれを様々な送り先 (e.g. フアイル、メモリバッファ等) に書く sink ノードがあります、そしてアプリケーションはまたコールバックを使用してグラフから出力を受け取ることもできます。

 

ランタイム動作

グラフ lifetime

ひとたびグラフが初期化されれば、それはデータを処理し始めるために開始できて、各ストリームがクローズされるかグラフがキャンセルされるまでパケットのストリームを処理できます。それからグラフは破壊して再度開始することができます。

 

ノード lifetime

ノード上でフレームワークが呼び出す、3 つの主要な lifetime メソッドがあります :

  • Open: 他のメソッドの前に一度呼び出されます。それが呼び出されるとき、ノードにより必要とされる総ての入力サイド・パケットはが利用可能になります。
  • Process: 入力の新しいセットが利用可能であるとき、ノードの入力ポリシーに従って、複数回呼び出されます。
  • Close: 最後に、一度呼び出されます。

加えて、各 calculator はコンストラクタとデストラクタを定義できます、これらは処理データから独立なリソースを作成して割当てを解除するために有用です。

 

入力ポリシー

デフォルト入力ポリシーはタイムスタンプによるパケットの決定論的な照合 (= collation) です。ノードは、Process メソッドの起動において、同じ時間に同じタイムスタンプのための総ての入力を受け取ります ; そして連続的な入力セットはタイムスタンプ順に受け取られます。これは総ての入力ストリーム上で同じタイムスタンプを持つパケットが受け取られるまで、あるいはそのタイムスタンプを持つパケットがそれを受け取っていないストリーム上で到着していないことが保証できるまで、幾つかのパケットの処理を遅延させることを必要とすることがあり得ます。

他のポリシーもまた利用可能で、InputStreamHandler として知られる個別のコンポーネントの一種を使用して実装されています。

より詳細については Synchronization を見てください。

 

以上







MediaPipe 0.8 : Getting Started : MediaPipe in JavaScript

MediaPipe 0.8 : Getting Started : MediaPipe in JavaScript (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 03/08/2021 (0.8.3)

* 本ページは、MediaPipe の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

無料セミナー実施中 クラスキャット主催 人工知能 & ビジネス Web セミナー

人工知能とビジネスをテーマにウェビナー (WEB セミナー) を定期的に開催しています。スケジュールは弊社 公式 Web サイト でご確認頂けます。
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
  • Windows PC のブラウザからご参加が可能です。スマートデバイスもご利用可能です。
クラスキャットは人工知能・テレワークに関する各種サービスを提供しております :

人工知能研究開発支援 人工知能研修サービス テレワーク & オンライン授業を支援
PoC(概念実証)を失敗させないための支援 (本支援はセミナーに参加しアンケートに回答した方を対象としています。)

お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
E-Mail:sales-info@classcat.com ; WebSite: https://www.classcat.com/
Facebook: https://www.facebook.com/ClassCatJP/

 

 

MediaPipe 0.8 : Getting Started : MediaPipe in JavaScript

MediaPipe は現在以下のソリューションを提供します :

ソリューション NPM パッケージ サンプル
顔メッシュ @mediapipe/face_mesh mediapipe.dev/demo/face_mesh
顔検出 @mediapipe/face_detection mediapipe.dev/demo/face_detection
ハンド @mediapipe/hands mediapipe.dev/demo/hands
Holistic @mediapipe/holistic mediapipe.dev/demo/holistic
ポーズ @mediapipe/pose mediapipe.dev/demo/pose

API とコード・スニペットを含む、より多くの情報については上のソリューション・リンク上をクリックしてください。

慣れるための最も素早い方法は上のサンプルを見ることです。各デモは CodePen へのリンクを持ちますので、コードを編集して貴方自身で試すことができます。貴方が始める手助けをするために幾つかのユティリティ・パッケージを含めました :

Note: MediaPipe on CodePen でこれらのデモとそれ以上を見てください。

これらのソリューションの総ては NPM で実現されてます。npm install で任意のパッケージをインストールできます。例えば :

npm install @mediapipe/holistic.

これらをローカルでホストしたくない場合には、CDN に依拠できます (e.g., jsDelivr)。これはスクリプトを貴方の HTML に直接追加することを可能にします :

<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/drawing_utils@0.1/drawing_utils.js" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/holistic@0.1/holistic.js" crossorigin="anonymous">
</head>

Note: NPM と jsdelivr の両者にバージョン番号を指定できます。それらは <major>.<minor>.<build> として構造化されます。breaking change が動作に影響することを回避するため、リクエストを <minor> 番号に制限してください。e.g., @mediapipe/holistic@0.1 です。

 

以上







MediaPipe 0.8 : Colab : MediaPipe ハンド (Hands)

MediaPipe 0.8 : Colab : MediaPipe ハンド (Hands) (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 03/08/2021 (0.8.3)

* 本ページは、MediaPipe の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

無料セミナー実施中 クラスキャット主催 人工知能 & ビジネス Web セミナー

人工知能とビジネスをテーマにウェビナー (WEB セミナー) を定期的に開催しています。スケジュールは弊社 公式 Web サイト でご確認頂けます。
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
  • Windows PC のブラウザからご参加が可能です。スマートデバイスもご利用可能です。
クラスキャットは人工知能・テレワークに関する各種サービスを提供しております :

人工知能研究開発支援 人工知能研修サービス テレワーク & オンライン授業を支援
PoC(概念実証)を失敗させないための支援 (本支援はセミナーに参加しアンケートに回答した方を対象としています。)

お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
E-Mail:sales-info@classcat.com ; WebSite: https://www.classcat.com/
Facebook: https://www.facebook.com/ClassCatJP/

 

 

 

MediaPipe 0.8 : Colab : MediaPipe ハンド (Hands)

Python の MediaPipe ハンド・ソリューション API の使用サンプルです (http://solutions.mediapipe.dev/hands もまた見てください)。

!pip install mediapipe

ハンド (手) を含む任意の画像を Colab にアップロードします。web: https://unsplash.com/photos/QyCH5jwrD_Ahttps://unsplash.com/photos/tSePVHkxUCk から 2 つのサンプル画像を取ります。

from google.colab import files

uploaded = files.upload()
import cv2
from google.colab.patches import cv2_imshow

# Read images with OpenCV.
images = {name: cv2.imread(name) for name in uploaded.keys()}

# Preview the images.
for name, image in images.items():
  print(name)   
  cv2_imshow(image)

総ての MediaPipe ソリューション Python API サンプルは mp.solutions 下にあります。

MediaPipe ハンド・ソリューションについては、mp_hands = mp.solutions.hands としてこのモジュールにアクセスできます。

初期化の間に static_image_mode, max_num_hands と min_detection_confidence のようなパラメータを変更しても良いです。パラメータについてのより多くの情報を得るためには help(mp_hands.Hands) を実行します。

import mediapipe as mp
mp_hands = mp.solutions.hands

help(mp_hands.Hands)
Help on class Hands in module mediapipe.python.solutions.hands:

class Hands(mediapipe.python.solution_base.SolutionBase)
 |  Hands(static_image_mode=False, max_num_hands=2, min_detection_confidence=0.5, min_tracking_confidence=0.5)
 |  
 |  MediaPipe Hands.
 |  
 |  MediaPipe Hands processes an RGB image and returns the hand landmarks and
 |  handedness (left v.s. right hand) of each detected hand.
 |  
 |  Note that it determines handedness assuming the input image is mirrored,
 |  i.e., taken with a front-facing/selfie camera (
 |  https://en.wikipedia.org/wiki/Front-facing_camera) with images flipped
 |  horizontally. If that is not the case, use, for instance, cv2.flip(image, 1)
 |  to flip the image first for a correct handedness output.
 |  
 |  Please refer to https://solutions.mediapipe.dev/hands#python-solution-api for
 |  usage examples.
 |  
 |  Method resolution order:
 |      Hands
 |      mediapipe.python.solution_base.SolutionBase
 |      builtins.object
 |  
 |  Methods defined here:
 |  
 |  __init__(self, static_image_mode=False, max_num_hands=2, min_detection_confidence=0.5, min_tracking_confidence=0.5)
 |      Initializes a MediaPipe Hand object.
 |      
 |      Args:
 |        static_image_mode: Whether to treat the input images as a batch of static
 |          and possibly unrelated images, or a video stream. See details in
 |          https://solutions.mediapipe.dev/hands#static_image_mode.
 |        max_num_hands: Maximum number of hands to detect. See details in
 |          https://solutions.mediapipe.dev/hands#max_num_hands.
 |        min_detection_confidence: Minimum confidence value ([0.0, 1.0]) for hand
 |          detection to be considered successful. See details in
 |          https://solutions.mediapipe.dev/hands#min_detection_confidence.
 |        min_tracking_confidence: Minimum confidence value ([0.0, 1.0]) for the
 |          hand landmarks to be considered tracked successfully. See details in
 |          https://solutions.mediapipe.dev/hands#min_tracking_confidence.
 |  
 |  process(self, image: numpy.ndarray) -> 
 |      Processes an RGB image and returns the hand landmarks and handedness of each detected hand.
 |      
 |      Args:
 |        image: An RGB image represented as a numpy ndarray.
 |      
 |      Raises:
 |        RuntimeError: If the underlying graph throws any error.
 |        ValueError: If the input image is not three channel RGB.
 |      
 |      Returns:
 |        A NamedTuple object with two fields: a "multi_hand_landmarks" field that
 |        contains the hand landmarks on each detected hand and a "multi_handedness"
 |        field that contains the handedness (left v.s. right hand) of the detected
 |        hand.
 |  
 |  ----------------------------------------------------------------------
 |  Methods inherited from mediapipe.python.solution_base.SolutionBase:
 |  
 |  __enter__(self)
 |      A "with" statement support.
 |  
 |  __exit__(self, exc_type, exc_val, exc_tb)
 |      Closes all the input sources and the graph.
 |  
 |  close(self) -> None
 |      Closes all the input sources and the graph.
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from mediapipe.python.solution_base.SolutionBase:
 |  
 |  __dict__
 |      dictionary for instance variables (if defined)
 |  
 |  __weakref__
 |      list of weak references to the object (if defined)
# Prepare DrawingSpec for drawing the face landmarks later.
mp_drawing = mp.solutions.drawing_utils 
drawing_spec = mp_drawing.DrawingSpec(thickness=1, circle_radius=1)
mp_drawing = mp.solutions.drawing_utils 

with mp_hands.Hands(
    static_image_mode=True,
    max_num_hands=2,
    min_detection_confidence=0.7) as hands:
  for name, image in images.items():
    # Convert the BGR image to RGB, flip the image around y-axis for correct 
    # handedness output and process it with MediaPipe Hands.
    results = hands.process(cv2.flip(cv2.cvtColor(image, cv2.COLOR_BGR2RGB), 1))
    image_hight, image_width, _ = image.shape
    # Print handedness (left v.s. right hand).
    print(f'Handedness of {name}:')
    print(results.multi_handedness)

    # Draw hand landmarks of each hand.
    print(f'Hand landmarks of {name}:')
    if not results.multi_hand_landmarks:
      continue
    annotated_image = cv2.flip(image.copy(), 1)
    for hand_landmarks in results.multi_hand_landmarks:
      # Print index finger tip coordinates.
      print(
          f'Index finger tip coordinate: (',
          f'{hand_landmarks.landmark[mp_hands.HandLandmark.INDEX_FINGER_TIP].x * image_width}, '
          f'{hand_landmarks.landmark[mp_hands.HandLandmark.INDEX_FINGER_TIP].y * image_hight})'
      )
      mp_drawing.draw_landmarks(
          annotated_image, hand_landmarks, mp_hands.HAND_CONNECTIONS)
    cv2_imshow(cv2.flip(annotated_image, 1))

 

以上







MediaPipe 0.8 : Colab : MediaPipe 顔メッシュ

MediaPipe 0.8 : Colab : MediaPipe 顔メッシュ (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 03/07/2021 (0.8.3)

* 本ページは、MediaPipe の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

無料セミナー実施中 クラスキャット主催 人工知能 & ビジネス Web セミナー

人工知能とビジネスをテーマにウェビナー (WEB セミナー) を定期的に開催しています。スケジュールは弊社 公式 Web サイト でご確認頂けます。
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
  • Windows PC のブラウザからご参加が可能です。スマートデバイスもご利用可能です。
クラスキャットは人工知能・テレワークに関する各種サービスを提供しております :

人工知能研究開発支援 人工知能研修サービス テレワーク & オンライン授業を支援
PoC(概念実証)を失敗させないための支援 (本支援はセミナーに参加しアンケートに回答した方を対象としています。)

お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
E-Mail:sales-info@classcat.com ; WebSite: https://www.classcat.com/
Facebook: https://www.facebook.com/ClassCatJP/

 

 

 

MediaPipe 0.8 : Colab : MediaPipe 顔メッシュ

Python の MediaPipe 顔メッシュ・ソリューション API の使用サンプルです (http://solutions.mediapipe.dev/face_mesh もまた見てください)。

!pip install mediapipe

顔を含む任意の画像を Colab にアップロードします。web: https://unsplash.com/photos/JyVcAIUAcPMhttps://unsplash.com/photos/auTAb39ImXg から 2 つのサンプル画像を取ります。

from google.colab import files

uploaded = files.upload()
import cv2
from google.colab.patches import cv2_imshow

# Read images with OpenCV.
images = {name: cv2.imread(name) for name in uploaded.keys()}

# Preview the images.
for name, image in images.items():
  print(name)   
  cv2_imshow(image)

総ての MediaPipe ソリューション Python API サンプルは mp.solutions 下にあります。

MediaPipe Face Mesh ソリューションについては、mp_face_mesh = mp.solutions.face_mesh としてこのモジュールにアクセスできます。

初期化の間に static_image_mode, max_num_faces と min_detection_confidence のようなパラメータを変更しても良いです。パラメータについてのより多くの情報を得るためには help(mp_face_mesh.FaceMesh) を実行します。

import mediapipe as mp
mp_face_mesh = mp.solutions.face_mesh

help(mp_face_mesh.FaceMesh)
Help on class FaceMesh in module mediapipe.python.solutions.face_mesh:

class FaceMesh(mediapipe.python.solution_base.SolutionBase)
 |  FaceMesh(static_image_mode=False, max_num_faces=1, min_detection_confidence=0.5, min_tracking_confidence=0.5)
 |  
 |  MediaPipe FaceMesh.
 |  
 |  MediaPipe FaceMesh processes an RGB image and returns the face landmarks on
 |  each detected face.
 |  
 |  Please refer to https://solutions.mediapipe.dev/face_mesh#python-solution-api
 |  for usage examples.
 |  
 |  Method resolution order:
 |      FaceMesh
 |      mediapipe.python.solution_base.SolutionBase
 |      builtins.object
 |  
 |  Methods defined here:
 |  
 |  __init__(self, static_image_mode=False, max_num_faces=1, min_detection_confidence=0.5, min_tracking_confidence=0.5)
 |      Initializes a MediaPipe FaceMesh object.
 |      
 |      Args:
 |        static_image_mode: Whether to treat the input images as a batch of static
 |          and possibly unrelated images, or a video stream. See details in
 |          https://solutions.mediapipe.dev/face_mesh#static_image_mode.
 |        max_num_faces: Maximum number of faces to detect. See details in
 |          https://solutions.mediapipe.dev/face_mesh#max_num_faces.
 |        min_detection_confidence: Minimum confidence value ([0.0, 1.0]) for face
 |          detection to be considered successful. See details in
 |          https://solutions.mediapipe.dev/face_mesh#min_detection_confidence.
 |        min_tracking_confidence: Minimum confidence value ([0.0, 1.0]) for the
 |          face landmarks to be considered tracked successfully. See details in
 |          https://solutions.mediapipe.dev/face_mesh#min_tracking_confidence.
 |  
 |  process(self, image: numpy.ndarray) -> 
 |      Processes an RGB image and returns the face landmarks on each detected face.
 |      
 |      Args:
 |        image: An RGB image represented as a numpy ndarray.
 |      
 |      Raises:
 |        RuntimeError: If the underlying graph throws any error.
 |        ValueError: If the input image is not three channel RGB.
 |      
 |      Returns:
 |        A NamedTuple object with a "multi_face_landmarks" field that contains the
 |        face landmarks on each detected face.
 |  
 |  ----------------------------------------------------------------------
 |  Methods inherited from mediapipe.python.solution_base.SolutionBase:
 |  
 |  __enter__(self)
 |      A "with" statement support.
 |  
 |  __exit__(self, exc_type, exc_val, exc_tb)
 |      Closes all the input sources and the graph.
 |  
 |  close(self) -> None
 |      Closes all the input sources and the graph.
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from mediapipe.python.solution_base.SolutionBase:
 |  
 |  __dict__
 |      dictionary for instance variables (if defined)
 |  
 |  __weakref__
 |      list of weak references to the object (if defined)
# Prepare DrawingSpec for drawing the face landmarks later.
mp_drawing = mp.solutions.drawing_utils 
drawing_spec = mp_drawing.DrawingSpec(thickness=1, circle_radius=1)
with mp_face_mesh.FaceMesh(
    static_image_mode=True,
    max_num_faces=2,
    min_detection_confidence=0.5) as face_mesh:
  for name, image in images.items():
    # Convert the BGR image to RGB and process it with MediaPipe Face Mesh.
    results = face_mesh.process(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))

    # Draw face landmarks of each face.
    print(f'Face landmarks of {name}:')
    if not results.multi_face_landmarks:
      continue
    annotated_image = image.copy()
    for face_landmarks in results.multi_face_landmarks:
      mp_drawing.draw_landmarks(
          image=annotated_image,
          landmark_list=face_landmarks,
          connections=mp_face_mesh.FACE_CONNECTIONS,
          landmark_drawing_spec=drawing_spec,
          connection_drawing_spec=drawing_spec)
    cv2_imshow(annotated_image)

 

以上







MediaPipe 0.8 : Getting Started : MediaPipe in C++

MediaPipe 0.8 : Getting Started : MediaPipe in C++ (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 03/06/2021 (0.8.3)

* 本ページは、MediaPipe の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

無料セミナー実施中 クラスキャット主催 人工知能 & ビジネス Web セミナー

人工知能とビジネスをテーマにウェビナー (WEB セミナー) を定期的に開催しています。スケジュールは弊社 公式 Web サイト でご確認頂けます。
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
  • Windows PC のブラウザからご参加が可能です。スマートデバイスもご利用可能です。
クラスキャットは人工知能・テレワークに関する各種サービスを提供しております :

人工知能研究開発支援 人工知能研修サービス テレワーク & オンライン授業を支援
PoC(概念実証)を失敗させないための支援 (本支援はセミナーに参加しアンケートに回答した方を対象としています。)

お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
E-Mail:sales-info@classcat.com ; WebSite: https://www.classcat.com/
Facebook: https://www.facebook.com/ClassCatJP/

 

 

MediaPipe 0.8 : Getting Started : MediaPipe in C++

サポートされる MediaPipe ソリューション で C++ コマンドライン・サンプル apps をビルドするには下の手順に従ってください。これらのサンプル apps について更に学習するために、Hello World! in C++ から始めてください。

 

C++ コマンドライン・サンプル apps をビルドする

オプション 1 : CPU 上で実行する

  1. ビルドするには、例えば、MediaPipe ハンド は、次を実行します :
    bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 mediapipe/examples/desktop/hand_tracking:hand_tracking_cpu
    

  2. アプリケーションを実行するには :
    GLOG_logtostderr=1 bazel-bin/mediapipe/examples/desktop/hand_tracking/hand_tracking_cpu \
      --calculator_graph_config_file=mediapipe/graphs/hand_tracking/hand_tracking_desktop_live.pbtxt
    

    これは貴方の webcam をそれが接続されて有効である限りオープンします。どのようなエラーも webcam がアクセス可能でないことによる傾向があります。

 

オプション 2 : GPU 上で実行する

Note: これは現在は Linux 上でのみ動作します、そして最初に OpenGL ES Setup on Linux Desktop に従ってください。

  1. ビルドするには、例えば、MediaPipe ハンド は、次を実行します :
    bazel build -c opt --copt -DMESA_EGL_NO_X11_HEADERS --copt -DEGL_NO_X11 \
      mediapipe/examples/desktop/hand_tracking:hand_tracking_gpu
    

  2. アプリケーションを実行するには :
    GLOG_logtostderr=1 bazel-bin/mediapipe/examples/desktop/hand_tracking/hand_tracking_gpu \
      --calculator_graph_config_file=mediapipe/graphs/hand_tracking/hand_tracking_mobile.pbtxt
    

    これは貴方の webcam をそれが接続されて有効である限りオープンします。どのようなエラーも webcam がアクセス可能でないか、GPU ドライバが正しくセットアップされていないことによる傾向があります。

 

以上







MediaPipe 0.8 : Getting Started : Hello World! in C++

MediaPipe 0.8 : Getting Started : Hello World! in C++ (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 03/06/2021 (0.8.3)

* 本ページは、MediaPipe の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

無料セミナー実施中 クラスキャット主催 人工知能 & ビジネス Web セミナー

人工知能とビジネスをテーマにウェビナー (WEB セミナー) を定期的に開催しています。スケジュールは弊社 公式 Web サイト でご確認頂けます。
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
  • Windows PC のブラウザからご参加が可能です。スマートデバイスもご利用可能です。
クラスキャットは人工知能・テレワークに関する各種サービスを提供しております :

人工知能研究開発支援 人工知能研修サービス テレワーク & オンライン授業を支援
PoC(概念実証)を失敗させないための支援 (本支援はセミナーに参加しアンケートに回答した方を対象としています。)

お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
E-Mail:sales-info@classcat.com ; WebSite: https://www.classcat.com/
Facebook: https://www.facebook.com/ClassCatJP/

 

 

MediaPipe 0.8 : Getting Started : Hello World! in 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 proto で定義された、PrintHelloWorld() 関数の単純な MediaPipe グラフを利用します。
    absl::Status PrintHelloWorld() {
      // Configures a simple graph, which concatenates 2 PassThroughCalculators.
      CalculatorGraphConfig config = ParseTextProtoOrDie(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"
        }
      )");
    

    下の CalculatorGraphConfig コンテンツを visualizer にペーストすることにより MediaPipe Visualizer を使用してこのグラフを可視化できます。visualizer のヘルプについては ここ を見てください。

        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 PassThroughCalculators から成ります。

  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 からの範囲の Timestamp 値を持つ文字列 “Hello World!” を含みます)、各パケットを in 入力ストリームを通してグラフに追加し、そして最後にグラフ実行を終了するために入力ストリームを閉じます。
    for (int i = 0; i < 10; ++i) {
      MP_RETURN_IF_ERROR(graph.AddPacketToInputStream("in",
                         MakePacket("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();
    }
    
 

以上







MediaPipe 0.8 : Colab : MediaPipe 顔検出

MediaPipe 0.8 : Colab : MediaPipe 顔検出 (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 03/06/2021 (0.8.3)

* 本ページは、MediaPipe の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

無料セミナー実施中 クラスキャット主催 人工知能 & ビジネス Web セミナー

人工知能とビジネスをテーマにウェビナー (WEB セミナー) を定期的に開催しています。スケジュールは弊社 公式 Web サイト でご確認頂けます。
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
  • Windows PC のブラウザからご参加が可能です。スマートデバイスもご利用可能です。
クラスキャットは人工知能・テレワークに関する各種サービスを提供しております :

人工知能研究開発支援 人工知能研修サービス テレワーク & オンライン授業を支援
PoC(概念実証)を失敗させないための支援 (本支援はセミナーに参加しアンケートに回答した方を対象としています。)

お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
E-Mail:sales-info@classcat.com ; WebSite: https://www.classcat.com/
Facebook: https://www.facebook.com/ClassCatJP/

 

 

 

MediaPipe 0.8 : Colab : MediaPipe 顔検出

Python の MediaPipe 顔検出ソリューションの使用サンプルです (http://solutions.mediapipe.dev/face_detection もまた見てください)。

!pip install mediapipe

顔を含む任意の画像を Colab にアップロードします。web: https://unsplash.com/photos/JyVcAIUAcPMhttps://unsplash.com/photos/auTAb39ImXg から 2 つのサンプル画像を取ります。

from google.colab import files

uploaded = files.upload()
import cv2
from google.colab.patches import cv2_imshow

# Read images with OpenCV.
images = {name: cv2.imread(name) for name in uploaded.keys()}

# Preview the images.
for name, image in images.items():
  print(name)   
  cv2_imshow(image)

総ての MediaPipe ソリューション Python API サンプルは mp.solutions 下にあります。

MediaPipe Face Mesh ソリューションについては、mp_face_detection = mp.solutions.face_detection としてモジュールにアクセスできます。

初期化の間にパラメータ min_detection_confidence を変更しても良いです。パラメータについてのより多くの情報を得るためには help(mp_face_detection.FaceDetection) を実行します。

import mediapipe as mp
mp_face_detection = mp.solutions.face_detection

help(mp_face_detection.FaceDetection)
Help on class FaceDetection in module mediapipe.python.solutions.face_detection:

class FaceDetection(mediapipe.python.solution_base.SolutionBase)
 |  FaceDetection(min_detection_confidence=0.5)
 |  
 |  MediaPipe Face Detection.
 |  
 |  MediaPipe Face Detection processes an RGB image and returns a list of the
 |  detected face location data.
 |  
 |  Please refer to
 |  https://solutions.mediapipe.dev/face_detection#python-solution-api
 |  for usage examples.
 |  
 |  Method resolution order:
 |      FaceDetection
 |      mediapipe.python.solution_base.SolutionBase
 |      builtins.object
 |  
 |  Methods defined here:
 |  
 |  __init__(self, min_detection_confidence=0.5)
 |      Initializes a MediaPipe Face Detection object.
 |      
 |      Args:
 |        min_detection_confidence: Minimum confidence value ([0.0, 1.0]) for face
 |          detection to be considered successful. See details in
 |          https://solutions.mediapipe.dev/face_detection#min_detection_confidence.
 |  
 |  process(self, image: numpy.ndarray) -> 
 |      Processes an RGB image and returns a list of the detected face location data.
 |      
 |      Args:
 |        image: An RGB image represented as a numpy ndarray.
 |      
 |      Raises:
 |        RuntimeError: If the underlying graph throws any error.
 |        ValueError: If the input image is not three channel RGB.
 |      
 |      Returns:
 |        A NamedTuple object with a "detections" field that contains a list of the
 |        detected face location data.
 |  
 |  ----------------------------------------------------------------------
 |  Methods inherited from mediapipe.python.solution_base.SolutionBase:
 |  
 |  __enter__(self)
 |      A "with" statement support.
 |  
 |  __exit__(self, exc_type, exc_val, exc_tb)
 |      Closes all the input sources and the graph.
 |  
 |  close(self) -> None
 |      Closes all the input sources and the graph.
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors inherited from mediapipe.python.solution_base.SolutionBase:
 |  
 |  __dict__
 |      dictionary for instance variables (if defined)
 |  
 |  __weakref__
 |      list of weak references to the object (if defined)

# Prepare DrawingSpec for drawing the face landmarks later.
mp_drawing = mp.solutions.drawing_utils 
drawing_spec = mp_drawing.DrawingSpec(thickness=1, circle_radius=1)
with mp_face_detection.FaceDetection(
    min_detection_confidence=0.5) as face_detection:
  for name, image in images.items():
    # Convert the BGR image to RGB and process it with MediaPipe Face Detection.
    results = face_detection.process(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))

    # Draw face detections of each face.
    print(f'Face detections of {name}:')
    if not results.detections:
      continue
    annotated_image = image.copy()
    for detection in results.detections:
      # print('Nose tip:')
      # print(mp.python.solutions.face_detection.get_key_point(
      #     detection, mp_face_detection.FaceKeyPoints.NOSE_TIP))
      mp_drawing.draw_detection(annotated_image, detection)
      cv2_imshow(annotated_image)

 

以上







MediaPipe 0.8 : Getting Started : MediaPipe in Python

MediaPipe 0.8 : Getting Started : MediaPipe in Python (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 03/06/2021 (0.8.3)

* 本ページは、MediaPipe の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

無料セミナー実施中 クラスキャット主催 人工知能 & ビジネス Web セミナー

人工知能とビジネスをテーマにウェビナー (WEB セミナー) を定期的に開催しています。スケジュールは弊社 公式 Web サイト でご確認頂けます。
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
  • Windows PC のブラウザからご参加が可能です。スマートデバイスもご利用可能です。
クラスキャットは人工知能・テレワークに関する各種サービスを提供しております :

人工知能研究開発支援 人工知能研修サービス テレワーク & オンライン授業を支援
PoC(概念実証)を失敗させないための支援 (本支援はセミナーに参加しアンケートに回答した方を対象としています。)

お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
E-Mail:sales-info@classcat.com ; WebSite: https://www.classcat.com/
Facebook: https://www.facebook.com/ClassCatJP/

 

 

MediaPipe 0.8 : Getting Started : MediaPipe in Python

Ready-to-use Python ソリューション

MediaPipe は ready-to-use でありながらカスタマイズ可能な Python ソリューションを事前ビルドされた Python パッケージとして提供します。MediaPipe Python パッケージは Linux, macOS と Windows のために PyPI で利用可能です。

例えば、Python 仮想環境を有効にできます :

$ python3 -m venv mp_env && source mp_env/bin/activate

MediaPipe Python パッケージをインストールして Python インタープリタを起動します :

(mp_env)$ pip install mediapipe
(mp_env)$ python3

Python インタープリタで、パッケージをインポートしてソリューションの一つを利用し始めます :

import mediapipe as mp
mp_face_mesh = mp.solutions.face_mesh

configuration オプションと使用サンプルについて更に学習するためには、下のリンクを通して各ソリューションの詳細を探してください :

 

MediaPipe on Google Colab

 

MediaPipe Python フレームワーク

ready-to-use ソリューションは MediaPipe Python フレームワーク上に構築されます、これは 上級ユーザにより自身の MediaPipe graphs を Python で実行するために利用できます。より多くの情報については ここ を見てください。

 

MediaPipe Python パッケージをビルドする

ローカル変更を持ちソースから Python パッケージをビルドする必要がある場合に限り下のステップに従ってください。そうでないなら、ready-to-use ソリューションを利用するために単純に pip install mediapipe を実行することをユーザに強く勧めます、より便利で遥かに高速です。

MediaPipe PyPI は現在 aarch64 Python wheel ファイルを提供しません。Nvidia Jetson と Raspberry Pi のような aarch64 Linux システム上の MediaPipe Python をビルドして使用するためには、ここ を読んでください。

  1. MediaPipe のために Bazel と OpenCV が正しくインストールされていることを確実にしてください。Linux と macOS 上 MediaPipe のために Bazel と OpenCV をどのようにセットアップするかについては Installation を見てください。
  2. 以下の依存性をインストールする。

    Debian or Ubuntu:

    $ sudo apt install python3-dev
    $ sudo apt install python3-venv
    $ sudo apt install -y protobuf-compiler
    
    # If you need to build opencv from source.
    $ sudo apt install cmake
    

    macOS:

    $ brew install protobuf
    
    # If you need to build opencv from source.
    $ brew install cmake
    
  3. Python 仮想環境を有効にする。
    $ python3 -m venv mp_env && source mp_env/bin/activate
    
  4. 仮想環境で、MediaPipe repo ディレクトリに行く。
  5. 必要な Python パッケージをインストールする。
    (mp_env)mediapipe$ pip3 install -r requirements.txt
    
  6. MediaPipe パッケージを生成してインストールする。
    (mp_env)mediapipe$ python3 setup.py gen_protos
    (mp_env)mediapipe$ python3 setup.py install --link-opencv
    

    or

    (mp_env)mediapipe$ python3 setup.py gen_protos
    (mp_env)mediapipe$ python3 setup.py bdist_wheel
    
 

以上







AI導入支援 #2 ウェビナー

スモールスタートを可能としたAI導入支援   Vol.2
[無料 WEB セミナー] [詳細]
「画像認識 AI PoC スターターパック」の紹介
既に AI 技術を実ビジネスで活用し、成果を上げている日本企業も多く存在しており、競争優位なビジネスを展開しております。
しかしながら AI を導入したくとも PoC (概念実証) だけでも高額な費用がかかり取組めていない企業も少なくないようです。A I導入時には欠かせない PoC を手軽にしかも短期間で認知度を確認可能とするサービの紹介と共に、AI 技術の特性と具体的な導入プロセスに加え運用時のポイントについても解説いたします。
日時:2021年10月13日(水)
会場:WEBセミナー
共催:クラスキャット、日本FLOW(株)
後援:働き方改革推進コンソーシアム
参加費: 無料 (事前登録制)
人工知能開発支援
◆ クラスキャットは 人工知能研究開発支援 サービスを提供しています :
  • テクニカルコンサルティングサービス
  • 実証実験 (プロトタイプ構築)
  • アプリケーションへの実装
  • 人工知能研修サービス
◆ お問合せ先 ◆
(株)クラスキャット
セールス・インフォメーション
E-Mail:sales-info@classcat.com