女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在APT-Pi上實(shí)現(xiàn)圖像識別功能

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來源:RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 作者:Papalymo ? 2021-10-09 15:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

不用自己訓(xùn)練模型,也能進(jìn)行 AI 圖像識別;借助百度云平臺,我們可以在 APT-Pi 上實(shí)現(xiàn)圖像識別功能。

創(chuàng)建圖像識別應(yīng)用

1、打開鏈接 百度智能云, 申請賬號;2、打開控制臺

3、打開圖像識別

4、創(chuàng)建應(yīng)用

5、獲取 AK 和 SK

通用圖像識別

該請求用于通用物體及場景識別,即對于輸入的一張圖片(可正常解碼,且長寬比適宜),輸出圖片中的多個(gè)物體及場景標(biāo)簽

1、打開 image_classify.c 文件, 修改 access_token, 填入應(yīng)用的 AK 和 SK;

2、在 SD 卡中放入要識別的圖片;

3、編譯下載;

4、在終端輸入命令: baidu_ai cat.jpg

5、加入百度百科,使能宏定義:#define BD_AI_BAIKE,編譯下載:

返回說明

返回參數(shù)

707e862a-21dd-11ec-82a8-dac502259ad0.png

菜品識別

該請求用于菜品識別。即對于輸入的一張圖片(可正常解碼,且長寬比適宜),輸出圖片的菜品名稱、卡路里信息、置信度。

1、修改 URL 為菜品識別:

1 index = strlen(BAIDU_AI_API[1]);

2 post_uri_size = index;

3 post_uri = rt_malloc(256);

45 rt_memcpy(post_uri, BAIDU_AI_API[1], post_uri_size);

2、編譯下載;

3、識別結(jié)果:

71395fd6-21dd-11ec-82a8-dac502259ad0.png

返回說明

返回參數(shù)

724d175a-21dd-11ec-82a8-dac502259ad0.png

監(jiān)控報(bào)表

在百度服務(wù)端,可以查看 API 調(diào)用成功和失敗的次數(shù):

圖像格式

圖像格式轉(zhuǎn)換流程:

736ea7f2-21dd-11ec-82a8-dac502259ad0.png

1、百度 AI 支持的圖像格式有:PNG、JPG、JPEG、BMP

2、原始的圖片數(shù)據(jù)需要轉(zhuǎn)換為 base64 編碼

3、base64 編碼的圖片數(shù)據(jù)進(jìn)行百分比編碼

Base64 編碼

請求圖片需經(jīng)過base64編碼:圖片的base64編碼指將一副圖片數(shù)據(jù)編碼成一串字符串,使用該字符串代替圖像地址。您可以首先得到圖片的二進(jìn)制,然后用Base64格式編碼即可。

Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,Base64就是一種基于64個(gè)可打印字符來表示二進(jìn)制數(shù)據(jù)的方法。可查看RFC2045~RFC2049,上面有MIME的詳細(xì)規(guī)范。

Base64編碼是從二進(jìn)制到字符的過程,可用于在HTTP環(huán)境下傳遞較長的標(biāo)識信息。采用Base64編碼具有不可讀性,需要解碼后才能閱讀。

Base64由于以上優(yōu)點(diǎn)被廣泛應(yīng)用于計(jì)算機(jī)的各個(gè)領(lǐng)域,然而由于輸出內(nèi)容中包括兩個(gè)以上“符號類”字符(+, /, =),不同的應(yīng)用場景又分別研制了Base64的各種“變種”。為統(tǒng)一和規(guī)范化Base64的輸出,Base62x被視為無符號化的改進(jìn)版本。

百分比編碼

百分比編碼 是一種擁有8位字符編碼的編碼機(jī)制,這些編碼在URL的上下文中具有特定的含義。它有時(shí)被稱為URL編碼。編碼由英文字母替換組成:“%” 后跟替換字符的ASCII的十六進(jìn)制表示。

需要編碼的特殊字符有:‘:’,‘/’,‘?’,‘#’,‘[’,‘]’,‘@’,‘!’,‘$’,‘&’,“‘”,’(‘,’)‘,’*‘,’+‘,’,‘,’;‘,’=‘,以及,’%‘` 本身。其他的字符雖然可以進(jìn)行編碼但是不需要。

’:‘ ’/‘ ’?‘ ’#‘ ’[‘ ’]‘ ’@‘ ’!‘ ’$‘ ’&‘ “’” ‘(’ ‘)’ ‘*’ ‘+’ ‘,’ ‘;’ ‘=’ ‘%’ ‘ ’

%3A %2F %3F %23 %5B %5D %40 %21 %24 %26 %27 %28 %29 %2A %2B %2C %3B %3D %25 %20 或 +

根據(jù)上下文, 空白符 ’ ’ 將會轉(zhuǎn)換為 ‘+’ (必須在HTTP的POST方法中使定義 application/x-www-form-urlencoded 傳輸方式), 或者將會轉(zhuǎn)換為 ‘%20’ 的 URL。

圖像識別流程

獲取 token

1 /* get token */ 2int get_ai_token(const char *uri, unsigned char *token)

3{

4 char *request = RT_NULL;

5 int token_len = 0, index = 0;

6 7 cJSON* cjson_parse = RT_NULL;

8 cJSON* cjson_token = RT_NULL;

910 if (webclient_request(uri, RT_NULL, RT_NULL, (unsigned char **)&request) 《 0)

11 {

12 rt_kprintf(“webclient send get request failed.”);

13 return -RT_ERROR;

14 }

1516 rt_kprintf(“webclient send get request by simplify request interface.

”);

17 rt_kprintf(“webclient get response data:

”);

1819 for (index = 0; index 《 rt_strlen(request); index++)

20 {

21 rt_kprintf(“%c”, request[index]);

22 }

23 rt_kprintf(“

”);

2425 cjson_parse = cJSON_Parse(request);

26 if(cjson_parse == RT_NULL)

27 {

28 LOG_E(“parse fail.

”);

29 goto __exit;

30 }

3132 cjson_token = cJSON_GetObjectItem(cjson_parse, “access_token”);

33 if (cjson_token == RT_NULL)

34 {

35 LOG_E(“get onject ‘a(chǎn)ccess_token’ item fail.

”);

36 goto __exit;

37 }

3839 LOG_D(“get_token: %s

”, cjson_token-》valuestring);

40 token_len = rt_strlen(cjson_token-》valuestring);

41 rt_memcpy(token, cjson_token-》valuestring, token_len);

4243__exit:

4445 if (cjson_parse)

46 {

47 cJSON_Delete(cjson_parse);

48 cjson_parse = RT_NULL;

49 cjson_token = RT_NULL;

50 }

5152 if (request)

53 {

54 web_free(request);

55 }

5657 return token_len;

58}

圖片數(shù)據(jù)編碼

Base 64

1static const char base64_chars[] = “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”;

2 3/* encode image */ 4int base64_encode(unsigned char * bytes_to_encode, unsigned char *encode, int bytes_len)

5{

6 int i = 0, j = 0, encode_size = 0;

7 unsigned char char_array_3[3];

8 unsigned char char_array_4[4];

910 while (bytes_len--)

11 {

12 char_array_3[i++] = *(bytes_to_encode++);

1314 if (i == 3)

15 {

16 char_array_4[0] = (char_array_3[0] & 0xfc) 》》 2;

17 char_array_4[1] = ((char_array_3[0] & 0x03) 《《 4) + ((char_array_3[1] & 0xf0) 》》 4);

18 char_array_4[2] = ((char_array_3[1] & 0x0f) 《《 2) + ((char_array_3[2] & 0xc0) 》》 6);

19 char_array_4[3] = char_array_3[2] & 0x3f;

2021 for(i = 0; i 《 4; i++)

22 {

23 encode[encode_size++] = base64_chars[char_array_4[i]];

24 }

25 i = 0;

26 }

27 }

2829 if (i)

30 {

31 for (j = i; j 《 3; j++)

32 {

33 char_array_3[j] = ‘’;

34 }

3536 char_array_4[0] = (char_array_3[0] & 0xfc) 》》 2;

37 char_array_4[1] = ((char_array_3[0] & 0x03) 《《 4) + ((char_array_3[1] & 0xf0) 》》 4);

38 char_array_4[2] = ((char_array_3[1] & 0x0f) 《《 2) + ((char_array_3[2] & 0xc0) 》》 6);

39 char_array_4[3] = char_array_3[2] & 0x3f;

4041 for(j = 0; (j 《 i + 1); j++)

42 {

43 encode[encode_size++] = base64_chars[char_array_4[j]];

44 }

4546 while ((i++ 《 3))

47 {

48 encode[encode_size++] = ‘=’;

49 }

50 }

5152 return encode_size;

53}

百分比編碼

1int http_percentage_coding(unsigned char *org_data, unsigned char *new_data, int len)

2{

3 int i = 0;

4 unsigned char org_char = 0;

5 6 while (len--)

7 {

8 org_char = *(org_data++);

9 switch (org_char)

10 {

11 case ‘:’ :

12 new_data[i++] = ‘%’;

13 new_data[i++] = ‘3’;

14 new_data[i++] = ‘A’;

15 break;

16 17 case ‘/’ :

18 new_data[i++] = ‘%’;

19 new_data[i++] = ‘2’;

20 new_data[i++] = ‘F’;

21 break;

22 23 case ‘?’ :

24 new_data[i++] = ‘%’;

25 new_data[i++] = ‘3’;

26 new_data[i++] = ‘F’;

27 break;

28 29 case ‘#’ :

30 new_data[i++] = ‘%’;

31 new_data[i++] = ‘2’;

32 new_data[i++] = ‘3’;

33 break;

34 35 case ‘[’ :

36 new_data[i++] = ‘%’;

37 new_data[i++] = ‘5’;

38 new_data[i++] = ‘B’;

39 break;

40 41 case ‘]’ :

42 new_data[i++] = ‘%’;

43 new_data[i++] = ‘5’;

44 new_data[i++] = ‘D’;

45 break;

46 47 case ‘@’ :

48 new_data[i++] = ‘%’;

49 new_data[i++] = ‘4’;

50 new_data[i++] = ‘0’;

51 break;

52 53 case ‘!’ :

54 new_data[i++] = ‘%’;

55 new_data[i++] = ‘2’;

56 new_data[i++] = ‘1’;

57 break;

58 59 case ‘$’ :

60 new_data[i++] = ‘%’;

61 new_data[i++] = ‘2’;

62 new_data[i++] = ‘4’;

63 break;

64 65 case ‘&’ :

66 new_data[i++] = ‘%’;

67 new_data[i++] = ‘2’;

68 new_data[i++] = ‘6’;

69 break;

70 71 case ‘’‘ :

72 new_data[i++] = ’%‘;

73 new_data[i++] = ’2‘;

74 new_data[i++] = ’7‘;

75 break;

76 77 case ’(‘ :

78 new_data[i++] = ’%‘;

79 new_data[i++] = ’2‘;

80 new_data[i++] = ’8‘;

81 break;

82 83 case ’)‘ :

84 new_data[i++] = ’%‘;

85 new_data[i++] = ’2‘;

86 new_data[i++] = ’9‘;

87 break;

88 89 case ’*‘ :

90 new_data[i++] = ’%‘;

91 new_data[i++] = ’2‘;

92 new_data[i++] = ’A‘;

93 break;

94 95 case ’+‘ :

96 new_data[i++] = ’%‘;

97 new_data[i++] = ’2‘;

98 new_data[i++] = ’B‘;

99 break;

100101 case ’,‘ :

102 new_data[i++] = ’%‘;

103 new_data[i++] = ’2‘;

104 new_data[i++] = ’C‘;

105 break;

106107 case ’;‘ :

108 new_data[i++] = ’%‘;

109 new_data[i++] = ’3‘;

110 new_data[i++] = ’B‘;

111 break;

112113 case ’=‘ :

114 new_data[i++] = ’%‘;

115 new_data[i++] = ’3‘;

116 new_data[i++] = ’D‘;

117 break;

118119 case ’%‘ :

120 new_data[i++] = ’%‘;

121 new_data[i++] = ’2‘;

122 new_data[i++] = ’5‘;

123 break;

124125 case ’ ‘ :

126 new_data[i++] = ’%‘;

127 new_data[i++] = ’2‘;

128 new_data[i++] = ’0‘;

129 break;

130131 default:

132 new_data[i++] = org_char;

133 break;

134 }

135 }

136 return i;

137}

獲取識別結(jié)果

1int get_ai_result(const char *uri, const char *post_data, int post_data_size)

2{

3 struct webclient_session* session = RT_NULL; 4 unsigned char *buffer = RT_NULL;

5 int index, result = 0, resp_status, bytes_read;

6 7 buffer = (unsigned char *)web_malloc(POST_RESP_BUFSZ);

8 if (buffer == RT_NULL)

9 {

10 rt_kprintf(“no memory for receive response buffer.

”);

11 result = -RT_ENOMEM;

12 goto __exit;

13 }

1415 /* create webclient session and set header response size */16 session = webclient_session_create(POST_HEADER_BUFSZ);

17 if (session == RT_NULL)

18 {

19 result = -RT_ENOMEM;

20 goto __exit;

21 }

2223 /* add http header */24 webclient_header_fields_add(session, “Content-Length: %d

”, post_data_size);

25 webclient_header_fields_add(session, “Content-Type: application/x-www-form-urlencoded

”);

2627 /* send POST request by default header */28 if ((resp_status = webclient_post(session, uri, (const char *)post_data)) != 200)

29 {

30 LOG_E(“webclient POST request failed, response(%d) error.

”, resp_status);

31 result = -RT_ERROR;

32 goto __exit;

33 }

3435 rt_kprintf(“webclient post response data:

”);

36 do37 {

38 bytes_read = webclient_read(session, buffer, POST_RESP_BUFSZ);

39 if (bytes_read 《= 0)

40 {

41 break;

42 }

43 for (index = 0; index 《 bytes_read; index++)

44 {

45 rt_kprintf(“%c”, buffer[index]);

46 }

4748 } while (1);

4950 rt_kprintf(“

”);

5152__exit:

53 if (session)

54 {

55 webclient_close(session);

56 }

5758 if (buffer)

59 {

60 web_free(buffer);

61 }

6263 return result;

64}

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • PI
    PI
    +關(guān)注

    關(guān)注

    12

    文章

    225

    瀏覽量

    113132
  • 圖像識別
    +關(guān)注

    關(guān)注

    9

    文章

    526

    瀏覽量

    39056
  • AI
    AI
    +關(guān)注

    關(guān)注

    88

    文章

    34917

    瀏覽量

    278093

原文標(biāo)題:基于ART-Pi實(shí)現(xiàn)的AI圖像識別

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    高幀頻圖像識別反無人機(jī) 慧視有辦法!

    的基礎(chǔ)加裝AI高性能圖像處理板,在算法的作用下,就具備無人機(jī)識別功能,為無人機(jī)對抗創(chuàng)造條件。由于無人機(jī)飛行速度極快,因此針對于這樣環(huán)境下的AI
    的頭像 發(fā)表于 12-04 01:06 ?578次閱讀
    高幀頻<b class='flag-5'>圖像識別</b>反無人機(jī)   慧視有辦法!

    AI圖像識別攝像機(jī)

    ?AI圖像識別攝像機(jī)是一種集成了先進(jìn)算法和深度學(xué)習(xí)模型的智能監(jiān)控設(shè)備。這些攝像機(jī)不僅能夠捕捉視頻畫面,還能實(shí)時(shí)分析和處理所拍攝的內(nèi)容,從而實(shí)現(xiàn)對特定對象、場景或行
    的頭像 發(fā)表于 11-08 10:38 ?832次閱讀
    AI<b class='flag-5'>圖像識別</b>攝像機(jī)

    AI大模型在圖像識別中的優(yōu)勢

    AI大模型在圖像識別中展現(xiàn)出了顯著的優(yōu)勢,這些優(yōu)勢主要源于其強(qiáng)大的計(jì)算能力、深度學(xué)習(xí)算法以及大規(guī)模的數(shù)據(jù)處理能力。以下是對AI大模型在圖像識別中優(yōu)勢的介紹: 一、高效性與準(zhǔn)確性 處理速度 :AI
    的頭像 發(fā)表于 10-23 15:01 ?2385次閱讀

    目標(biāo)檢測與圖像識別的區(qū)別在哪

    目標(biāo)檢測與圖像識別是計(jì)算機(jī)視覺領(lǐng)域中的兩個(gè)重要研究方向,它們在實(shí)際應(yīng)用中有著廣泛的應(yīng)用,如自動駕駛、智能監(jiān)控、醫(yī)療診斷等。盡管它們在某些方面有相似之處,但它們之間存在一些關(guān)鍵的區(qū)別。 基本概念 目標(biāo)
    的頭像 發(fā)表于 07-17 09:51 ?1768次閱讀

    圖像識別算法有哪幾種

    圖像識別算法是計(jì)算機(jī)視覺領(lǐng)域的核心技術(shù)之一,它通過分析和處理圖像數(shù)據(jù),實(shí)現(xiàn)圖像中的目標(biāo)、場景和物體的識別和分類。
    的頭像 發(fā)表于 07-16 11:22 ?2411次閱讀

    圖像檢測和圖像識別的原理、方法及應(yīng)用場景

    圖像檢測和圖像識別是計(jì)算機(jī)視覺領(lǐng)域的兩個(gè)重要概念,它們在許多應(yīng)用場景中發(fā)揮著關(guān)鍵作用。 1. 定義 1.1 圖像檢測 圖像檢測(Object Detection)是指在
    的頭像 發(fā)表于 07-16 11:19 ?6883次閱讀

    圖像識別算法都有哪些方法

    圖像識別算法是計(jì)算機(jī)視覺領(lǐng)域的核心任務(wù)之一,它涉及到從圖像中提取特征并進(jìn)行分類、識別和分析的過程。隨著深度學(xué)習(xí)技術(shù)的不斷發(fā)展,圖像識別算法已經(jīng)取得了顯著的進(jìn)展。本文將介紹
    的頭像 發(fā)表于 07-16 11:14 ?7405次閱讀

    圖像識別算法的提升有哪些

    引言 圖像識別是計(jì)算機(jī)視覺領(lǐng)域的核心任務(wù)之一,旨在使計(jì)算機(jī)能夠自動地識別和理解圖像中的內(nèi)容。隨著計(jì)算機(jī)硬件的發(fā)展和深度學(xué)習(xí)技術(shù)的突破,圖像識別算法的性能得到了顯著提升。本文將介紹
    的頭像 發(fā)表于 07-16 11:12 ?1054次閱讀

    圖像識別算法的優(yōu)缺點(diǎn)有哪些

    圖像識別算法是一種利用計(jì)算機(jī)視覺技術(shù)對圖像進(jìn)行分析和理解的方法,它在許多領(lǐng)域都有廣泛的應(yīng)用,如自動駕駛、醫(yī)療診斷、安全監(jiān)控等。然而,圖像識別算法也存在一些優(yōu)缺點(diǎn)。 一、圖像識別算法的優(yōu)
    的頭像 發(fā)表于 07-16 11:09 ?3121次閱讀

    圖像識別算法的核心技術(shù)是什么

    圖像識別算法是計(jì)算機(jī)視覺領(lǐng)域的一個(gè)重要研究方向,其目標(biāo)是使計(jì)算機(jī)能夠像人類一樣理解和識別圖像中的內(nèi)容。圖像識別算法的核心技術(shù)包括以下幾個(gè)方面: 特征提取 特征提取是
    的頭像 發(fā)表于 07-16 11:02 ?1285次閱讀

    圖像識別技術(shù)包括自然語言處理嗎

    計(jì)算機(jī)視覺技術(shù)對圖像進(jìn)行處理、分析和理解,從而實(shí)現(xiàn)圖像中的目標(biāo)、場景、行為等信息的識別和理解。圖像識別技術(shù)包括
    的頭像 發(fā)表于 07-16 10:54 ?1525次閱讀

    圖像識別技術(shù)在醫(yī)療領(lǐng)域的應(yīng)用

    一、引言 圖像識別技術(shù)是一種利用計(jì)算機(jī)視覺技術(shù)對圖像進(jìn)行分析和處理的技術(shù)。隨著計(jì)算機(jī)技術(shù)、人工智能技術(shù)、大數(shù)據(jù)技術(shù)等的發(fā)展,圖像識別技術(shù)在各個(gè)領(lǐng)域的應(yīng)用越來越廣泛。在醫(yī)療領(lǐng)域,圖像識別
    的頭像 發(fā)表于 07-16 10:48 ?1990次閱讀

    圖像識別技術(shù)的原理是什么

    圖像識別技術(shù)是一種利用計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)技術(shù)對圖像進(jìn)行分析和理解的技術(shù)。它可以幫助計(jì)算機(jī)識別和理解圖像中的對象、場景和活動。 圖像預(yù)處理
    的頭像 發(fā)表于 07-16 10:46 ?2491次閱讀

    圖像識別屬于人工智能嗎

    屬于。圖像識別是人工智能(Artificial Intelligence, AI)領(lǐng)域的一個(gè)重要分支。 一、圖像識別概述 1.1 定義 圖像識別是指利用計(jì)算機(jī)技術(shù)對圖像中的內(nèi)容進(jìn)行分析
    的頭像 發(fā)表于 07-16 10:44 ?1979次閱讀

    opencv圖像識別有什么算法

    圖像識別算法: 邊緣檢測 :邊緣檢測是圖像識別中的基本步驟之一,用于識別圖像中的邊緣。常見的邊緣檢測算法有Canny邊緣檢測器、Sobel邊緣檢測器和Laplacian邊緣檢測器。 特
    的頭像 發(fā)表于 07-16 10:40 ?1859次閱讀
    主站蜘蛛池模板: 淳安县| 江山市| 元氏县| 贵溪市| 汝州市| 雅江县| 五家渠市| 营山县| 郓城县| 五莲县| 墨玉县| 织金县| 大悟县| 天长市| 太白县| 舟山市| 滨海县| 柳江县| 关岭| 浙江省| 芜湖市| 田阳县| 屯门区| 汪清县| 阳新县| 盐源县| 新竹市| 鄂托克旗| 嘉鱼县| 贵阳市| 银川市| 肃宁县| 遂昌县| 衡阳市| 嘉定区| 竹山县| 勃利县| 平阴县| 东至县| 于都县| 宁德市|