ディープラーニングは近年、人気のある研究分野であり、その中には、重要なアプリケーションの1つとしての画像セグメンテーションが広範囲にわたる注目を集めています。 Baiduが提供する画像セグメンテーションAPIにより、開発者はアルゴリズムの実装プロセスを簡素化し、画像セグメンテーションテクノロジーを迅速に経験して学習できます。
この記事では、PHPを使用してBaidu画像セグメンテーションインターフェイスを呼び出して、画像ターゲットの自動セグメンテーションを実現する方法を紹介します。読者はすでに基本的なPHPおよびHTTPリクエスト関連の知識を持っていると仮定します。
Baidu画像セグメンテーションインターフェイスは、インテリジェントな画像セグメンテーションサービスを提供するAPIです。ユーザーが画像を提出すると、インターフェイスは画像内の異なるターゲットを自動的に分離し、対応するマスクデータを返します。 PNGやJSONなどのさまざまな出力形式をサポートしています。
Baidu画像セグメンテーションインターフェイスのリクエストアドレスは次のとおりです。
https://aip.baidubce.com/rest/2.0/image-classify/v1/body_seg
パラメーター | タイプ | 必要ですか | 説明します |
---|---|---|---|
Access_token | 弦 | はい | OAUTH2.0承認を介して取得したアクセストークン。 |
画像 | 弦 | はい | 画像のBase64エンコードされた文字列は、PNG、JPEG、およびBMP形式をサポートしており、サイズは4MBを超えません。 |
タイプ | 弦 | いいえ | 結果形式、サポートされた値を返します:フォアグラウンド(デフォルト)、バックグラウンド、スコア。 |
しきい値 | フロート | いいえ | 0-1の範囲のセグメンテーションしきい値は、切り取った面積の割合を示し、デフォルトは0.5です。 |
フィールド | タイプ | 説明します |
---|---|---|
前景 | 弦 | Base64エンコードされた画像は、セグメント化された見込み客ターゲットです。 |
背景 | 弦 | バックグラウンドパーツのbase64エンコード画像。 |
スコア | フロート | セグメンテーション結果の信頼性スコア。 |
インターフェイスを呼び出す前に、Baidu Developerプラットフォームが提供するアクセストークンを取得する必要があります。特定の手順については、Baiduの公式文書を参照してください。
$ access_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX
PHPの組み込みのCurl拡張子を使用して、Baidu画像セグメンテーションインターフェイスにPOSTリクエストを送信し、JSON形式で応答データを取得します。
$ url = 'https://aip.baidubce.com/rest/2.0/image-classify/v1/body_seg'; $ image = '/path/to/image.jpg'; $ type = 'Foreground'; $しきい値= 0.5; <p>$ data = array(<br> 'Access_token' => $ access_token、<br> 'image' => base64_encode(file_get_contents($ image))、<br> 「タイプ」=> $タイプ、<br> 「しきい値」=> $しきい値、<br> );</p> <p>$ options = array(<br> curlopt_returntransfer => true、<br> curlopt_post => true、<br> curlopt_postfields => $ data、<br> );</p> <p>$ ch = curl_init($ url);<br> curl_setopt_array($ ch、$ options);<br> $ result = curl_exec($ ch);<br> curl_close($ ch);<br>
コード説明:
返されたJSONデータでは、フィールドフォアグラウンドはセグメント化されたターゲット画像であり、base64エンコーディング形式はです。デコードしてローカルファイルとして保存できます。
$ result_arr = json_decode($ result、true); if(isset($ result_arr ['forground'])){ $ base64_image = $ result_arr ['forground']; $ image_data = base64_decode($ base64_image); file_put_contents( '/path/to/foreground.png'、$ image_data); }
バックグラウンドまたは信頼レベルを取得する必要がある場合は、タイプパラメーターを背景に調整したり、対応するフィールドをスコア付けして処理したりできます。
この記事では、PHPがBaiduの画像セグメンテーションインターフェイスにすばやく接続する方法を紹介し、インターフェイスパラメーター、要求プロセス、および結果分析を詳細に説明し、開発者が画像セグメンテーション機能を簡単に実現できるようにします。コードは、実際のニーズに応じて拡張し、より多くの画像処理シナリオに適用できます。