人體分析Demo-百度API


本示例是采用Delphi 7 調用百度人體分析API;首先說明一下,怎么創建測試應用。

1、  登錄百度雲官網 https://cloud.baidu.com/ 當然需要一個百度賬號

2、  進入管理控制台,然后選擇產品服務-人工智能-人體分析

 

 

 3、  創建應用即可獲取,相應API Key 信息/

 

4、  人流量統計:對應API地址 https://cloud.baidu.com/doc/BODY/s/Pjwvxzafo

 

 

 返回數量和已經渲染的過的圖片(非必選)。不知道,有沒有17個人。

 

 

獲取圖片類型時有個小插曲;內存流兩個字節是圖片類型,一般定義為word,但我直接寫了個dword,大家可以自己查一下,有什么區別;

在我正常加載圖片的時候,好像沒有區別,jpg圖片確實是D8FF。但是當在調用人流量統計API返回的渲染圖時會多出兩位來,出現過18D8FF,4ED8FF。

最后Dword改為Word就可以了。大家可以測試一下/

procedure TFrmMain.cxButton2Click(Sender: TObject);
var
  memImg: TMemoryStream;
  strImg: TStringStream;
  sUrl: string;
  lstParam: TStrings;
  ret: ISuperObject;

  buff: dWORD;
begin
  memImg := TMemoryStream.Create;
  strImg := TStringStream.Create('');
  lstParam := TStringList.Create;
  try
    if Image2.Picture.Graphic = nil then
    begin
      ShowMessage('圖片為空, 請下加載圖片');
      Exit;
    end;
    Image2.Picture.Graphic.SaveToStream(memImg);
    memImg.Position := 0;
    memImg.ReadBuffer(buff, 2);
    memImg.Position := 0;
    EncdDecd.EncodeStream(memImg, strImg);
    lstParam.Add(Format('image=%S', [strImg.DataString]));
    lstParam.Add(Format('show=true', []));
    sUrl := Format(sUrl_TrafficStat, [FToken]);
    ret := SO(UTF8Decode(IdHTTP1.Post(sUrl, lstParam)));
    cxMemo1.Text := ret.AsString;
    Image2.Picture.Bitmap.Assign(StringToBitmap(ret.S['image']));
  finally
    memImg.Free;
    strImg.Free;
    lstParam.Free;
  end;
end;

5、  手勢識別:對應API地址 https://cloud.baidu.com/doc/BODY/s/tjwvxz8jp

單手比心/

 

 其它的大家摸索一下。人體關鍵點識別,人體屬性識別。感覺不是很准,有時候傳回的數據也有問題(json串)

不知道是不是圖片的問題。

 源碼(D7).rar


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM