色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux下基于百度智能云平臺人臉檢測分析

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2022-12-17 15:35 ? 次閱讀

1.百度智能接口及簡介

云平臺接口

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASVRf6Zi_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center

??接口技術文檔:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASVRf6Zi_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center

網頁功能演示:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASVRf6Zi_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center

2.人臉檢測屬性分析項目示例

?硬件平臺: ubuntu18.04、USB免驅攝像頭
?圖像渲染: SDL庫
?開發語言: C語言
watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASVRf6Zi_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center

3.攝像頭應用框架V4L2示例

#include 
#include 
#include 
#include 
#include 
#include "video.h"

/*攝像頭應用編程框架*/
int Video_Init(u8 *dev,int video_fd,struct video *video_info)
{
    /*1.打開攝像設備文件*/
	video_fd=open(dev,O_RDWR);
	if(video_fd<0)return -1;
    /*2.圖像數據格式*/
	struct v4l2_format video_format;
	memset(&video_format,0,sizeof(struct v4l2_format));
	video_format.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;//捕獲格式
	video_format.fmt.pix.width=800;
	video_format.fmt.pix.height=480;
	video_format.fmt.pix.pixelformat=V4L2_PIX_FMT_YUYV;
	if(ioctl(video_fd,VIDIOC_S_FMT,&video_format))return -2;
	video_info->width=video_format.fmt.pix.width;
	video_info->height=video_format.fmt.pix.height;
    printf("圖像尺寸:%d * %dn",video_info->width,video_info->height);
    /*3.申請空間*/
	struct v4l2_requestbuffers video_requestbuffers;
	memset(&video_requestbuffers,0,sizeof(struct v4l2_requestbuffers));
	video_requestbuffers.count=4;//緩沖區個數
	video_requestbuffers.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;//V4L2捕獲框架格式
	video_requestbuffers.memory=V4L2_MEMORY_MMAP;//內存映射
	if(ioctl(video_fd,VIDIOC_REQBUFS,&video_requestbuffers))return -3;
	printf("緩沖區個數:%dn",video_requestbuffers.count);
	/*4.將緩沖映射到進程空間*/
	int i=0;
	struct v4l2_buffer video_buffer;
	for(i=0;immap_size=video_buffer.length;/*映射大小*/
        video_info->mmapbuf[i]=mmap(NULL,video_buffer.length,PROT_READ|PROT_WRITE,MAP_SHARED,video_fd,video_buffer.m.offset);
	}
	/*5.將緩沖區添加到采集隊列*/
	for(i=0;i

4.調用百度人家屬性分析接示例

// libcurl庫下載鏈接:https://curl.haxx.se/download.html
// jsoncpp庫下載鏈接:https://github.com/open-source-parsers/jsoncpp/
const static char * request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect";
char faceDetect_result[1024];
char faceDetect_result[1024];
/**
 * 人臉檢測與屬性分析
 * @return 調用成功返回0,發生錯誤返回其他錯誤碼
 */
int faceDetect(char *json_result, const char *access_token,const char *image_base64) 
{
    //std::string url = request_url + "?access_token=" + access_token;
   
    char url[1024];
    snprintf(url,sizeof(url),"%s?access_token=%s",request_url,access_token);
    CURL *curl = NULL;
    CURLcode result_code;
    int is_success=0;
	char iamge[1024*1024];
	snprintf(iamge,sizeof(iamge),"{"image":"%s","image_type":"BASE64","face_field":"age,beauty,gender,glasses,eye_status,emotion,race,mask,facetype"}",image_base64);
                                                                                                
    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, url);
        curl_easy_setopt(curl, CURLOPT_POST, 1);
        struct curl_slist *headers = NULL;
        headers = curl_slist_append(headers, "Content-Type:application/json;charset=UTF-8");
        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS,iamge);
        result_code = curl_easy_perform(curl);
        FILE *outfile;
        outfile = fopen("test.cmd", "wb");
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, outfile); 
        result_code=curl_easy_perform(curl);
        fclose(outfile);
    
        if (result_code != CURLE_OK) {
            fprintf(stderr, "curl_easy_perform() failed: %s",curl_easy_strerror(result_code));
            is_success = 1;
            return is_success;
        }
        strcpy(json_result,faceDetect_result);
        curl_easy_cleanup(curl);
        is_success = 0;	
        
    } else {
        fprintf(stderr, "curl_easy_init() failed.");
        is_success = 1;
    }
	
    return is_success;
}

5.base64圖片編碼示例

static const char * base64char = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
char * base64_encode( const unsigned char * bindata, char * base64, int binlength )
{
    int i, j;
    unsigned char current;

    for ( i = 0, j = 0 ; i < binlength ; i += 3 )
    {
        current = (bindata[i] >> 2) ;
        current &= (unsigned char)0x3F;
        base64[j++] = base64char[(int)current];

        current = ( (unsigned char)(bindata[i] << 4 ) ) & ( (unsigned char)0x30 ) ;
        if ( i + 1 >= binlength )
        {
            base64[j++] = base64char[(int)current];
            base64[j++] = '=';
            base64[j++] = '=';
            break;
        }
        current |= ( (unsigned char)(bindata[i+1] >> 4) ) & ( (unsigned char) 0x0F );
        base64[j++] = base64char[(int)current];

        current = ( (unsigned char)(bindata[i+1] << 2) ) & ( (unsigned char)0x3C ) ;
        if ( i + 2 >= binlength )
        {
            base64[j++] = base64char[(int)current];
            base64[j++] = '=';
            break;
        }
        current |= ( (unsigned char)(bindata[i+2] >> 6) ) & ( (unsigned char) 0x03 );
        base64[j++] = base64char[(int)current];

        current = ( (unsigned char)bindata[i+2] ) & ( (unsigned char)0x3F ) ;
        base64[j++] = base64char[(int)current];
    }
    base64[j] = '?';
    return base64;
}

int base64_decode( const char * base64, unsigned char * bindata )
{
    int i, j;
    unsigned char k;
    unsigned char temp[4];
    for ( i = 0, j = 0; base64[i] != '?' ; i += 4 )
    {
        memset( temp, 0xFF, sizeof(temp) );
        for ( k = 0 ; k < 64 ; k ++ )
        {
            if ( base64char[k] == base64[i] )
                temp[0]= k;
        }
        for ( k = 0 ; k < 64 ; k ++ )
        {
            if ( base64char[k] == base64[i+1] )
                temp[1]= k;
        }
        for ( k = 0 ; k < 64 ; k ++ )
        {
            if ( base64char[k] == base64[i+2] )
                temp[2]= k;
        }
        for ( k = 0 ; k < 64 ; k ++ )
        {
            if ( base64char[k] == base64[i+3] )
                temp[3]= k;
        }

        bindata[j++] = ((unsigned char)(((unsigned char)(temp[0] << 2))&0xFC)) |
                ((unsigned char)((unsigned char)(temp[1]>>4)&0x03));
        if ( base64[i+2] == '=' )
            break;

        bindata[j++] = ((unsigned char)(((unsigned char)(temp[1] << 4))&0xF0)) |
                ((unsigned char)((unsigned char)(temp[2]>>2)&0x0F));
        if ( base64[i+3] == '=' )
            break;

        bindata[j++] = ((unsigned char)(((unsigned char)(temp[2] << 6))&0xF0)) |
                ((unsigned char)(temp[3]&0x3F));
    }
    return j;
}

6.JOSN數據格式解析示例

/*josn數據解析*/
int Josn_Get(const char *buff,struct Faceinfo *face_info)
{
	/*創建cJSON對象*/
	cJSON *root=cJSON_CreateObject();
	char *p=strstr(buff,"{"error_code"");
	root=cJSON_Parse(p);/*載入JSON數據*/
	if(root==NULL)return -1;
	/*2.解析字段*/
	cJSON *item;
	int i=0;
	item=cJSON_GetObjectItem(root,"error_code");
	if(item)
	{
		printf("error_code:%dn",item->valueint);
		if(item->valueint)return -2;
	}
	item=cJSON_GetObjectItem(root,"error_msg");
	if(item)
	{
		printf("error_code:%sn",item->valuestring);
	}
	item=cJSON_GetObjectItem(root,"result");
	if(item)
	{
		cJSON *obj;
		obj=cJSON_GetObjectItem(item, "face_num");
		printf("face_num:%dn",obj->valueint);
		item=cJSON_GetObjectItem(item,"face_list");
		if(item)
		{
			int arraysize=cJSON_GetArraySize(item);/*獲取數組成員個數*/
			for(i=0;ivaluestring);
				obj=cJSON_GetObjectItem(array_item,"location");
				if(obj)
				{
					cJSON *data;
					data=cJSON_GetObjectItem(obj, "left");
					printf("left:%fn",data->valuedouble);
					face_info->x=data->valuedouble;
					data=cJSON_GetObjectItem(obj, "top");
					printf("top:%fn",data->valuedouble);
					face_info->y=data->valuedouble;
					data=cJSON_GetObjectItem(obj, "width");
					printf("width:%fn",data->valuedouble);
					face_info->w=data->valuedouble;
					data=cJSON_GetObjectItem(obj, "height");
					printf("height:%fn",data->valuedouble);
					face_info->h=data->valuedouble;
					data=cJSON_GetObjectItem(obj, "face_probability");
				}
				obj=cJSON_GetObjectItem(array_item,"face_probability");
				//printf("probability=%dn",obj->valueint);
				obj=cJSON_GetObjectItem(array_item,"age");
				//printf("年齡=%dn",obj->valueint);
				face_info->age=obj->valueint;
				obj=cJSON_GetObjectItem(array_item,"beauty");
				if(obj!=NULL)
				{
					//printf("顏值=%fn",obj->valuedouble);
					face_info->beauty=obj->valuedouble;
				}
				obj=cJSON_GetObjectItem(array_item,"gender");//性別
				if(obj)
				{
					cJSON *data;
					data=cJSON_GetObjectItem(obj,"type");
					if(strcmp(data->valuestring,"male")==0)
					{
						//printf("性別:男n");
						strcpy(face_info->gender,"男");
					}
					else if(strcmp(data->valuestring,"female")==0)
					{
						//printf("性別:女n");
						strcpy(face_info->gender,"女");
					}
				}
				obj=cJSON_GetObjectItem(array_item,"glasses");//是否帶眼鏡
				if(obj)
				{
					cJSON *data;
					data=cJSON_GetObjectItem(obj,"type");
					if(strcmp(data->valuestring,"none")==0)
					{
						//printf("眼鏡:無n");
						strcpy(face_info->glasses,"無");
					}
					else if(strcmp(data->valuestring,"common")==0)
					{
						//printf("眼鏡:普通眼鏡n");
						strcpy(face_info->glasses,"普通眼鏡");
					}
					else if(strcmp(data->valuestring,"sun")==0)
					{
						//printf("眼鏡:墨鏡n");
						strcpy(face_info->glasses,"墨鏡");
					}
				}
				obj=cJSON_GetObjectItem(array_item,"emotion");//表情
				if(obj)
				{
					cJSON *data;
					data=cJSON_GetObjectItem(obj,"type");
					if(strcmp(data->valuestring,"angry")==0)
					{
						//printf("表情:憤怒n");
						strcpy(face_info->emotion,"憤怒");
					}
					else if(strcmp(data->valuestring,"disgust")==0)
					{
						//printf("表情:厭惡n");
						strcpy(face_info->emotion,"厭惡");
					}
					else if(strcmp(data->valuestring,"fear")==0)
					{
						//printf("表情:恐懼n");
						strcpy(face_info->emotion,"恐懼");
					}
					else if(strcmp(data->valuestring,"happy")==0)
					{
						//printf("表情:高興n");
						strcpy(face_info->emotion,"高興");
					}
					else if(strcmp(data->valuestring,"sad")==0)
					{
						//printf("表情:傷心n");
						strcpy(face_info->emotion,"傷心");
					}
					else if(strcmp(data->valuestring,"surprise")==0)
					{
						//printf("表情:驚訝n");
						strcpy(face_info->emotion,"驚訝");
					}
					else if(strcmp(data->valuestring,"neutral")==0)
					{
						//printf("表情:無表情n");
						strcpy(face_info->emotion,"無表情");
					}
					else if(strcmp(data->valuestring,"pouty")==0)
					{
						//printf("表情:噘嘴n");
						strcpy(face_info->emotion,"噘嘴");
					}
					else if(strcmp(data->valuestring,"grimace")==0)
					{
						//printf("表情:鬼臉n");
						strcpy(face_info->emotion,"鬼臉");
					}
				}
				obj=cJSON_GetObjectItem(array_item,"mask");//是否帶口罩
				if(obj)
				{
					cJSON *data;
					data=cJSON_GetObjectItem(obj,"type");
					//printf("是否帶口罩:%dn",data->valueint);
					if(data->valueint)strcpy(face_info->mask,"是");
					else strcpy(face_info->mask,"否");
				}
				obj=cJSON_GetObjectItem(array_item,"face_type");
				if(obj)
				{
					cJSON *data;
					data=cJSON_GetObjectItem(obj,"type");
					if(strcmp(data->valuestring,"human")==0)
					{
						printf("真實人臉n");
					}
					else if(strcmp(data->valuestring," cartoon")==0)
					{
						printf("卡通人臉n");
					}
				}
			}
		}
	}
	cJSON_Delete(root);//釋放空間
	return 0;
}

7.調用SDL庫圖像渲染

int main()
{
	struct Faceinfo face_info={0};
	int w,h;
    /*初始化攝像頭*/
    video_fd=Video_Init(CAMERA_DEV,video_fd,&video_info);
    if(video_fd<=0)
    {
        printf("攝像頭初始化失敗,res=%dn",video_fd);
        return 0;
    }  
	/*TTF 初始化*/
	TTF_Init();
	/*打開字庫*/
	TTF_Font *ttffont=TTF_OpenFont("方正粗黑宋簡體.ttf",30);
	if(ttffont==NULL)
	{
		printf("字庫打開失敗n");
		return 0;
	}  
	SDL_Color color={255,0,128,255};/*字體顏色 RGBA*/
    /*創建窗口 */
	SDL_Window *window=SDL_CreateWindow("人臉檢測分析", SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,800,480,SDL_WINDOW_ALLOW_HIGHDPI|SDL_WINDOW_SHOWN);
	SDL_GetWindowSize(window,&w,&h);
    /*創建渲染器*/
	SDL_Renderer *render=SDL_CreateRenderer(window,-1,SDL_RENDERER_ACCELERATED);
	/*清空渲染器*/
	SDL_RenderClear(render);
    printf("圖像尺寸:%d * %dn",video_info.width,video_info.height);
    /*創建紋理*/
	SDL_Texture*sdltext=SDL_CreateTexture(render,SDL_PIXELFORMAT_RGB24,SDL_TEXTUREACCESS_STREAMING,video_info.width,video_info.height);
    /*創建攝像頭采集線程*/
    u8 *rgb_data=malloc(video_info.height*video_info.width*3);
    rgb_buff=malloc(video_info.height*video_info.width*3);//保存RGB顏色數據
	u8 *jpg_data=malloc(video_info.height*video_info.width*3);//保存RGB顏色數據
	u8 *imagebase64_data=malloc((video_info.height*video_info.width*3)*8/6);//保存RGB顏色數據
	int jpg_size;
   //printf("size=%dn",video_info.mmap_size);
    video_flag=1;/*攝像頭采集標志*/
    pthread_t pthid;
    pthread_create(&pthid,NULL,Video_CollectImage, NULL);
    bool quit=true;
	SDL_Event event;
	SDL_Rect rect;
	int  display_stat=1;
	char buff[100];
	while(quit)
	{
		while(SDL_PollEvent(&event))/*事件監測*/
		{
			if(event.type==SDL_QUIT)/*退出事件*/
			{
				quit=false;
				video_flag=0;
				pthread_cancel(pthid);/*殺死指定線程*/
				continue;
			}
			else if(event.type==SDL_MOUSEBUTTONDOWN)/*點擊事件*/
			{
				if(event.button.button==SDL_BUTTON_LEFT)/*左鍵*/
				{
					pthread_mutex_lock(&fastmutex);//互斥鎖上鎖
					pthread_cond_wait(&cond,&fastmutex);
					memcpy(rgb_data,rgb_buff,video_info.height*video_info.width*3);
					pthread_mutex_unlock(&fastmutex);//互斥鎖解鎖
					jpg_size=rgb_to_jpeg(video_info.width,video_info.height,video_info.height*video_info.width*3,rgb_data,jpg_data, 80);//RGB轉JPG
					base64_encode(jpg_data, imagebase64_data, jpg_size);
					char json_result[1024];
					int res=0;
					res=faceDetect(json_result,access_token,imagebase64_data);
					FILE *fp=fopen("test.cmd","rb");
					if(fp==NULL)continue;
					struct stat statbuf;
					int size=0;
					stat("test.cmd", &statbuf);
					char *data=malloc(statbuf.st_size+1);
					size=fread(data,1,statbuf.st_size,fp);
					data[size]='?';
					fclose(fp);
					//SDL_ttfDisplayFont(10,10,window,ttffont,45,color,"字庫測試",render);
					
					display_stat=0;
					if(Josn_Get(data,&face_info))
					{
						display_stat=1;
						continue;
					}
					printf("年齡:%dn",face_info.age);
					printf("顏值:%fn",face_info.beauty);
					printf("性別:%sn",face_info.gender);
					printf("表情:%sn",face_info.emotion);
					printf("是否戴眼鏡:%sn",face_info.glasses);
					printf("是否戴口罩:%sn",face_info.mask);
					SDL_SetRenderDrawColor(render,255,0,0, 255);// 透明值
					SDL_Rect rect;
					rect.x=face_info.x;
					rect.y=face_info.y;
					rect.w=face_info.w;
					rect.h=face_info.h;
					SDL_UpdateTexture(sdltext,NULL,rgb_data, video_info.width*3);
					SDL_RenderCopyEx(render, sdltext,NULL,NULL,0,NULL,SDL_FLIP_HORIZONTAL);
					SDL_RenderDrawRect(render,&rect);
					int y=80;
					snprintf(buff,sizeof(buff),"年齡:%d",face_info.age);
					size=SDL_ttfDisplayFont(w-300,y,window,ttffont,30,color,buff,render);
					y+=size;
					snprintf(buff,sizeof(buff),"顏值:%.2f",face_info.beauty);
					size=SDL_ttfDisplayFont(w-300,y,window,ttffont,30,color,buff,render);
					y+=size+10;
					snprintf(buff,sizeof(buff),"性別:%s",face_info.gender);
					size=SDL_ttfDisplayFont(w-300,y,window,ttffont,30,color,buff,render);
					y+=size+10;
					snprintf(buff,sizeof(buff),"表情:%s",face_info.emotion);
					size=SDL_ttfDisplayFont(w-300,y,window,ttffont,30,color,buff,render);
					y+=size+10;
					snprintf(buff,sizeof(buff),"是否戴眼鏡:%s",face_info.glasses);
					size=SDL_ttfDisplayFont(w-300,y,window,ttffont,30,color,buff,render);
					y+=size+10;
					snprintf(buff,sizeof(buff),"是否戴口罩:%s",face_info.mask);
					size=SDL_ttfDisplayFont(w-300,y,window,ttffont,30,color,buff,render);

					SDL_RenderPresent(render); // 渲染
					free(data);
				}
				else if(event.button.button==SDL_BUTTON_RIGHT)/*右鍵*/
				{
					printf("右鍵按下n");
					display_stat=1;
					
				}
			}
		}
		if(!video_flag)
		{
			quit=false;
			continue;
		}
		pthread_mutex_lock(&fastmutex);//互斥鎖上鎖
		pthread_cond_wait(&cond,&fastmutex);
		memcpy(rgb_data,rgb_buff,video_info.height*video_info.width*3);
		pthread_mutex_unlock(&fastmutex);//互斥鎖解鎖
		SDL_UpdateTexture(sdltext,NULL,rgb_data, video_info.width*3);
		//SDL_RenderCopy(render, sdltext, NULL,NULL); // 拷貝紋理到渲染器
		SDL_RenderCopyEx(render, sdltext,NULL,NULL,0,NULL,SDL_FLIP_HORIZONTAL);
		if(display_stat)SDL_RenderPresent(render); // 渲染

	}
    SDL_DestroyTexture(sdltext);/*銷毀紋理*/
    SDL_DestroyRenderer(render);/*銷毀渲染器*/
    SDL_DestroyWindow(window);/*銷毀窗口 */
    SDL_Quit();/*關閉SDL*/
    pthread_mutex_destroy(&fastmutex);/*銷毀互斥鎖*/
    pthread_cond_destroy(&cond);/*銷毀條件變量*/
	free(rgb_buff);
	free(rgb_data);
}







審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11292

    瀏覽量

    209322
  • 嵌入式技術
    +關注

    關注

    10

    文章

    360

    瀏覽量

    35839
收藏 人收藏

    評論

    相關推薦

    機械,求ADMAS軟件的百度盤資料,有的兄弟快快分享,謝謝

    機械,求ADMAS軟件的百度盤資料,有的兄弟快快分享,謝謝機械,求ADMAS軟件的百度盤資料,有的兄弟快快分享
    發表于 02-28 19:42

    Firefly 百度人臉識別開發套件

    `Firefly推出了百度人臉識別套件,基于Firefly高性能主板,融合百度AI精準的離線人臉識別技術,集算法與軟硬件為一體的開發平臺。僅需一個套件,可一站式輕松解決人工
    發表于 07-25 10:19

    labview調用百度人臉識別SDK

    本帖最后由 故人心 于 2021-11-19 13:52 編輯 labview實現人臉識別有多種途徑,我這里調用的百度人臉識別SDK(C#版本),實現離線人臉識別。過程中踩了很
    發表于 11-27 19:40

    人臉識別模塊mini版【ESP32+百度在線識別】UART串口輸出方便連接使用

    ,下面百度平臺配置會介紹到如何獲取。3.AT+RST 這條指令用于復位模塊。ESP32+百度在線人臉
    發表于 12-19 16:03

    百度“天智平臺”發布 開放百度大腦能力

    11月30日,2016百度智峰會正式召開。百度聯席總經理劉煬發表了題為ABC時代的演講,并重點介紹了百度
    發表于 12-01 11:13 ?865次閱讀

    百度IoT平臺介紹

    百度iot平臺基于百度成熟的計算技術,支持每天百億IoT設備接入,并配合IoT平臺完成基本的
    發表于 12-09 14:07 ?33次下載

    華清遠見攜手百度智能共推嵌入式人工智能

    眾所周知,百度智能百度提供的公有平臺,于2015年正式開放運營。
    發表于 06-06 09:42 ?1597次閱讀

    AI技術的推動 百度智能將迎來新的機會

    一年時間很長,百度計算業務完成了架構的升級,從智能事業部(ACU)升級為智能事業群組(AC
    發表于 12-20 09:58 ?530次閱讀

    新基建時代 百度如何加速百度智能發展

    ,以加速百度智能發展。 個人認為,在新基建大潮百度百度
    的頭像 發表于 11-11 16:42 ?1732次閱讀

    對于openEuler的發展,百度智能還有什么樣的期待?

    百度 Linux 智能操作系統將在近期正式上線百度智能
    的頭像 發表于 06-16 14:31 ?2221次閱讀

    國產ChatGPT=百度智能+文心一言?“文心一言”將通過百度智能對外服務

    百度智能正式宣布 “文心一言”將通過百度智能對外提供服務。? ? ? “ “文心一言”是基于
    的頭像 發表于 02-18 16:43 ?2252次閱讀
    國產ChatGPT=<b class='flag-5'>百度</b><b class='flag-5'>智能</b><b class='flag-5'>云</b>+文心一言?“文心一言”將通過<b class='flag-5'>百度</b><b class='flag-5'>智能</b><b class='flag-5'>云</b>對外服務

    GTC 2023:百度智能DPU落地實踐

    百度太行●計算:深度擁抱DPU的彈性計算基礎架構 百度智能DPU落地實踐:極致彈性、高可用的裸金屬實例 百度
    的頭像 發表于 03-24 16:22 ?3712次閱讀
    GTC 2023:<b class='flag-5'>百度</b><b class='flag-5'>智能</b><b class='flag-5'>云</b>DPU落地實踐

    一圖講透百度智能千帆大模型平臺全面升級!

    【一圖講透】百度智能千帆大模型平臺全面升級!
    的頭像 發表于 03-22 10:44 ?493次閱讀
    一圖講透<b class='flag-5'>百度</b><b class='flag-5'>智能</b><b class='flag-5'>云</b>千帆大模型<b class='flag-5'>平臺</b>全面升級!

    百度智能正式發布了《百度智能水業大模型白皮書》

    3月28日,由E20環境平臺主辦的2024(第二十二屆)水業戰略論壇在北京召開。會上,百度智能正式發布了《百度
    的頭像 發表于 03-29 09:20 ?1361次閱讀
    <b class='flag-5'>百度</b><b class='flag-5'>智能</b><b class='flag-5'>云</b>正式發布了《<b class='flag-5'>百度</b><b class='flag-5'>智能</b><b class='flag-5'>云</b>水業大模型白皮書》

    百度智能發布千帆大模型平臺3.0

    2024年百度智大會上,百度智能震撼發布千帆大模型平臺3.0,標志著其在AI領域又一里程碑式
    的頭像 發表于 09-26 14:51 ?423次閱讀
    主站蜘蛛池模板: 97超碰在线视频 免费| 日本欧美午夜三级| 含羞草完整视频在线播放免费 | 日韩人妻双飞无码精品久久| 免费精品国偷自产在线在线| 啦啦啦 中文 日本 韩国 免费 | 国产爱豆果冻传媒在线观看视频 | 在线免费观看成年人视频| 亚洲精品无码午夜福利在线观看| 午夜性色一区二区三区不卡视频| 无人区国产片| 亚洲国产精品久久精品成人网站| 香蕉久久夜色精品国产小优| 午夜福利免费体检区| 性色欲情网站IWWW| 亚洲国产在线午夜视频无| 亚洲欧洲精品A片久久99| 亚洲看片网站| 一区在线观看在线| 综合色中色| 99精彩免费观看| 超碰免费视频caoporn| 国产69精品久久久久乱码| 国产成人啪精品视频免费网| 国产精品无码无卡毛片不卡视| 国产露脸A片国语露对白| 果冻传媒在线播放| 久久综合网久久综合| 蜜柚在线观看免费高清官网视频 | 免费高清国产| 日本理伦片午夜理伦片| 同时被两个男人轮流舔| 亚洲国产成人爱AV在线播放丿| 一个人日本的视频免费完整版| 九九热只有精品| 久久亚洲精品成人综合| 男女XX00上下抽搐动态图| 入禽太深在线观看免费高清| 亚洲电影不卡| 2020亚洲国产在线播放在线| yy8090理论三级在线看|