目前網絡服務多以Http方式直接傳播數據信息。在本次調用中,首先是
開通權限
而后是鑒權
public static class AccessToken
{
// 調用getAccessToken()獲取的 access_token建議根據expires_in 時間 設置緩存
// 返回token示例
public static String TOKEN = "24.adda70c11b9786206253ddb70affdc46.2592000.1493524354.282335-1234567";
// 百度雲中開通對應服務應用的 API Key 建議開通應用的時候多選服務
private static String clientId = "VGzQ7jWz57mBGcDTYACgbAaD";
// 百度雲中開通對應服務應用的 Secret Key
private static String clientSecret = "RZOcID2IRUCccUGzXdihZKjaoCMTZIth";
public static String getAccessToken()
{
String authHost = "https://aip.baidubce.com/oauth/2.0/token";
HttpClient client = new HttpClient();
List<KeyValuePair<String, String>> paraList = new List<KeyValuePair<string, string>>();
paraList.Add(new KeyValuePair<string, string>("grant_type", "client_credentials"));
paraList.Add(new KeyValuePair<string, string>("client_id", clientId));
paraList.Add(new KeyValuePair<string, string>("client_secret", clientSecret));
HttpResponseMessage response = client.PostAsync(authHost, new FormUrlEncodedContent(paraList)).Result;
String result = response.Content.ReadAsStringAsync().Result;
Console.WriteLine(result);
return result;
}
}
最后是調用
public class SkySeg
{
// 天空分割
public static string skySeg()
{
string token = "24.f3ad594ec508e2830506909191535524.2592000.1602456936.282335-18132305";
string host = "https://aip.baidubce.com/rest/2.0/image-process/v1/sky_seg?access_token=" + token;
Encoding encoding = Encoding.Default;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
request.Method = "post";
request.KeepAlive = true;
// 圖片的base64編碼
string base64 = getFileBase64("E:/sky.jpg");
String str = "image=" + HttpUtility.UrlEncode(base64);
byte[] buffer = encoding.GetBytes(str);
request.ContentLength = buffer.Length;
request.GetRequestStream().Write(buffer, 0, buffer.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
string result = reader.ReadToEnd();
Console.WriteLine("天空分割:");
Console.WriteLine(result);
return result;
}
public static String getFileBase64(String fileName)
{
FileStream filestream = new FileStream(fileName, FileMode.Open);
byte[] arr = new byte[filestream.Length];
filestream.Read(arr, 0, (int)filestream.Length);
string baser64 = Convert.ToBase64String(arr);
filestream.Close();
return baser64;
}
}
獲得結果(上部分是鑒權結果,下部分是編碼結果)
{
"refresh_token"
:
"25.256af18522b7159b270bc7a8eb45f0b5.315360000.1915224936.282335-18132305",
"expires_in"
:
2592000,
"session_key"
:
"9mzdXUcE6x4mNuLtv5IKZwVKrOZjzxuAMv+HRnZj8k353eMTRTHoyoDvcxg4DRb3DwJaGjf1tPwvj3WbIReWnAorFLmW3Q==",
"access_token"
:
"24.f3ad594ec508e2830506909191535524.2592000.1602456936.282335-18132305",
"scope"
:
"brain_sky_seg public vis-classify_dishes vis-classify_car brain_all_scope vis-classify_animal vis-classify_plant brain_object_detect brain_realtime_logo brain_dish_detect brain_car_detect brain_animal_classify brain_plant_classify brain_ingredient brain_advanced_general_classify brain_custom_dish brain_poi_recognize brain_vehicle_detect brain_redwine brain_currency brain_vehicle_damage wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian ApsMisTest_Test\u6743\u9650 vis-classify_flower lpq_\u5f00\u653e cop_helloScope ApsMis_fangdi_permission smartapp_snsapi_base iop_autocar oauth_tp_app smartapp_smart_game_openapi oauth_sessionkey smartapp_swanid_verify smartapp_opensource_openapi smartapp_opensource_recapi fake_face_detect_\u5f00\u653eScope vis-ocr_\u865a\u62df\u4eba\u7269\u52a9\u7406 idl-video_\u865a\u62df\u4eba\u7269\u52a9\u7406",
"session_secret"
:
"f59b2284ec68e5ad5cb6bdfa8bf10779"}
{
"labelmap"
:
"iVBORw0KGgoAAAANSUhEUgAAAdkAAAHZCAAAAADvLB7eAAAEGElEQVR4Ae3BO07DAAAFwd37HzoUgFJQECkf2087o2SSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkklKJimZpGSSkknKXze+SS5LniA5LXk1yRnIu0mOIAeQvJ0cS37cJK8kVyJ5lOyQ3El+yRLJf+SKJC8jJyL5MPkIyfnI8yRXIo+S7BGQbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJskmySbJJs+gK3GgRzJbjFsgAAAABJRU5ErkJggg==",
"log_id"
:
1304554692201676800,
"scoremap"
:
"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ZZLKJJVJKpNUJqlMUpmkMkllksoklUkqk1QmqUxSmaQySWWSyiSVSSqTVCapTFKZpDJJZZLKJJVJKpNUJqlMUpmkMkllksoklUkqk1QmqUxSmaQySWWSyiSVSSqTVCapTFKZpDJJZZLKJJVJKpNUJqlMUpmkMkllksoklUkqk1QmqUxSmaQySWWSyiSVSSqTVCapTFKZpDJJZZLKJJVJKpNUJqlMUpmkMkllksoklUkqk1QmqUxSmaQySWWSyiSVSSqTVCapTFKZpDJJZZLKJJVJKpNUJqlMUpmkMkllksoklUkqk1QmqUxSmaQySWWSyiSVSSqTVCapTFKZpDJJZZLKJJVJKpNUJqlMUpmkMkllksoklUkqk1QmqUxSmaQySWWSyiSVSSqTVCapTFKZpDJJZZLKJJVJKpNUJqlMUpmkMkllksoklUkqk1QmqUxSmaQySWWSyiSVSSqTVCapTFKZpDJJZZLKJJVJKpNUJqlMUpmkMkllksoklUkqk1QmqUxSmaQySWWSyiSVSSqTVCapTFKZpDJJZZLKJJVJKpNUJqlMUpGUiqRUJKUySWWSyiSVSSqTVCapTFKZpDJJZZLKJJVJKpNUJqlMUpmkMkllksoklUkqk1QmqUxSmaQySWWSyiSVSSqTVCapTFKZpDJJZZLKJJVJKpNUJqlMUpmkMkllksoklUkqk1QmqUxSmaQySWWSyiSVSSqTVCapTFKZpDJJZZLKJJVJKpNUJqlMUpmkMkllksoklUkqk1QmqUxSmaQySWWSyiSVSSqTVCapTFKZpDJJZZLKJBVJqUQi9dchnxl+hYDUl0reDCC/aPhb8uJ/APvlzDCtILtoAAAAAElFTkSuQmCC",
"type"
:
"sky"}
二、延伸研究
對於這樣一個平台,最后如果部署為網絡 服務,肯定還是走Python js等語言,所以Csharp只是簡單測試一下。我想思考的問題是它的應用場景在哪里?我是否需要去做准備?然后應該去做什么准備?
使用DL去做圖像增強,即使是Baidu也意識到是一個領域,但是他們很可能同樣也應用場景不明,其局限應該還是“真”和“假”的區分。因為其根本,這里的增強並不是一種主觀意識的正確(比如夜視、靜脈穿刺、去霧等),它的容錯率是很低的,如果做的不“真”,最終只能是停留在娛樂領域。但是從另一個方面來說,這個方面能力的積累卻不能等到場景展現出來以后再做,至少現在就 應該有所積累。這個我是放在專門的項目中來說明的。
三、BAIDU_AI開放平台
可以看出傾向於CV,這個分類可以說是有參考價值的。
四、備注
獲取Access Token
請求URL數據格式
向授權服務地址https://aip.baidubce.com/oauth/2.0/token
發送請求(推薦使用POST),並在URL中帶上以下參數:
- grant_type: 必須參數,固定為
client_credentials
; - client_id: 必須參數,應用的
API Key
; - client_secret: 必須參數,應用的
Secret Key
;
服務器返回的JSON文本參數如下:
- access_token: 要獲取的Access Token;
- expires_in: Access Token的有效期(秒為單位,一般為1個月);
- 其他參數忽略,暫時不用;
例如:
{"refresh_token": "25.b55fe1d287227ca97aab219bb249b8ab.315360000.1798284651.282335-8574074","expires_in": 2592000,"scope": "public wise_adapt","session_key": "9mzdDZXu3dENdFZQurfg0Vz8slgSgvvOAUebNFzyzcpQ5EnbxbF+hfG9DQkpUVQdh4p6HbQcAiz5RmuBAja1JJGgIdJI","access_token": "24.6c5e1ff107f0e8bcef8c46d3424a0e78.2592000.1485516651.282335-8574074","session_secret": "dfac94a3489fe9fca7c3221cbf7525ff"}
-
返回參數
字段 是否必選 類型 說明 log_id 是 uint64 唯一的log id,用於問題定位 scoremap 否 string 分割結果的灰度圖,base64編碼字符串。每個像素的取值范圍是0-255的整數,可以近似於概率,值越大表示越可能是天空。 labelmap 否 string 分割結果的二值圖,base64編碼字符串。每個像素值是0或1,0表示背景,1表示天空。 返回示例
{"labelmap": "處理后圖片的二值圖base64編碼字符串","log_id": "1262724512684703744","scoremap": "處理后圖片的灰度圖base64編碼字符串","type": "sky"}
附件列表