德州惩缀会展服务有限公司|午夜喷潮精品|无码不卡在线视频|国产黄A三级三级看三级|综合AV第一页|午夜福利在线播放|四虎黄片|免费国产91网站|日韩足交|国产愉拍91九色国产愉拍|高清无码免费不卡

UCloud發(fā)力AI在線服務(wù) UAI-SERVICE“零基礎(chǔ)”實(shí)現(xiàn)人臉表情識(shí)別

最近幾年,人工智能(AI)技術(shù)不斷發(fā)展,從新聞智能推薦到聽歌識(shí)曲,再到被廣泛應(yīng)用的人臉識(shí)別技術(shù),處處可見(jiàn)人工智能的身影。不得不說(shuō),人工智能已經(jīng)逐漸滲透大眾日常生活,成為不可或缺的一部分。那么如何從“零”開始去實(shí)現(xiàn)一個(gè)AI功能?讓UCloud來(lái)幫您。

UCloud推出了AI as a Service平臺(tái),該平臺(tái)基于UCloud豐富的計(jì)算資源與分布式系統(tǒng)實(shí)踐經(jīng)驗(yàn),致力于提供廉價(jià)、高可靠、高彈性、高易用性的AI在線服務(wù),將客戶從繁雜的平臺(tái)系統(tǒng)開發(fā)和運(yùn)維工作中解放出來(lái)。

以在線人臉表情識(shí)別為例,說(shuō)明如何借助UAI-Service以及開源算法,輕松實(shí)現(xiàn)在線服務(wù),“零基礎(chǔ)”入門使用AI。另外還對(duì)AI在線服務(wù)的性能進(jìn)行了評(píng)估,將其與GPU性能進(jìn)行比對(duì),使用戶更直觀的了解AI在線服務(wù)性能優(yōu)勢(shì)。

實(shí)現(xiàn)步驟

整個(gè)實(shí)現(xiàn)過(guò)程主要由兩部分組成,首先利用tensorflow1.1.0訓(xùn)練所需的模型文件,其次按照UAI-SERVICE的使用說(shuō)明部署在線服務(wù)。具體步驟如下:

Step 1:模型訓(xùn)練

Step1.0 安裝tensorflow1.1.0

安裝環(huán)境為ubuntu14.04.5, python版本為2.7.6,直接借助pip安裝tensorflow,指令如下:

bash

pip install tensorflow=1.1.0

Step1.1 選擇合適的數(shù)據(jù)庫(kù)

UCloud選擇使用目前較大的人臉表情識(shí)別公開數(shù)據(jù)庫(kù)fer2013,共包含35887張人臉圖片,其中訓(xùn)練集28709張、驗(yàn)證集3589張、測(cè)試集3589張。數(shù)據(jù)庫(kù)中各個(gè)樣本在年齡、面部方向等有比較大的差異性,具有一定的實(shí)際意義,也使表情識(shí)別更具挑戰(zhàn)性。

同時(shí),數(shù)據(jù)庫(kù)中的圖片均為灰度圖片,大小為48*48像素,樣本被分為生氣、厭惡、恐懼、開心、中性、傷心、驚訝七類,各種類型分布基本均勻。(該數(shù)據(jù)庫(kù)實(shí)際為kaggle一個(gè)比賽項(xiàng)目提供的數(shù)據(jù),官方給出的文件格式為csv,手動(dòng)將其轉(zhuǎn)換成了圖片格式。)

Step1.2 數(shù)據(jù)預(yù)處理

實(shí)際選用了tensorflow提供的TF-Slim實(shí)驗(yàn)庫(kù)。具體參見(jiàn)TF_Slim官方文檔說(shuō)明。

TF-Slim是一個(gè)用于tensorflow定義、訓(xùn)練和評(píng)估復(fù)雜模型的新型輕量級(jí)API,它提供了集中廣泛使用的卷積神經(jīng)網(wǎng)絡(luò)圖像分類模型代碼以及預(yù)訓(xùn)練模型,同時(shí)還包含了運(yùn)行腳本,借助它可以快速入門,既可以從頭開始訓(xùn)練模型,也可以對(duì)已經(jīng)訓(xùn)練好的網(wǎng)絡(luò)權(quán)重進(jìn)行微調(diào)。

TF-Slim提供了將數(shù)據(jù)集轉(zhuǎn)換成tfrecord格式的代碼,對(duì)代碼進(jìn)行調(diào)整后可以將所用的數(shù)據(jù)集fer2013轉(zhuǎn)成tfrecord格式。

數(shù)據(jù)形式如下所示,其中l(wèi)abels.txt中包含了類別的映射:

Step1.3 訓(xùn)練

本次訓(xùn)練選用了較大的模型inception_v3,對(duì)官方給出的預(yù)訓(xùn)練模型進(jìn)行微調(diào)。由于訓(xùn)練模型的目的在于嘗試一下在線服務(wù),因而該訓(xùn)練過(guò)程并未過(guò)多的涉及調(diào)參。

調(diào)用指令示例如下:

bash

TRAIN_DIR=./train_log

DATASET_DIR=./fer2013

PRETRAINED_CHECKPOINT_DIR=./pretrain_model

 

python train_image_classifier.py \

 –train_dir=${TRAIN_DIR} \

 –dataset_name=fer2013 \

  –dataset_split_name=train\

 –dataset_dir=${DATASET_DIR} \

 –model_name=inception_v3 \

 —checkpoint_path=${PRETRAINED_CHECKPOINT_DIR}/inception_v3.ckpt \

 –checkpoint_exclude_scopes=InceptionV3/Logits,InceptionV3/AuxLogits \

 –trainable_scopes=InceptionV3/Logits,InceptionV3/AuxLogits \

 –max_number_of_steps=1000 \

 –batch_size=32 \

 –learning_rate=0.01 \

 –learning_rate_decay_type=fixed \

 –save_interval_secs=60 \

 –save_summaries_secs=60 \

 –log_every_n_steps=100 \

  –optimizer=rmsprop\

 –weight_decay=0.00004

進(jìn)行模型微調(diào)時(shí),系統(tǒng)自動(dòng)保留最新的五個(gè)生成模型,如果發(fā)生中斷,過(guò)后會(huì)在最新模型基礎(chǔ)上繼續(xù)微調(diào)。

訓(xùn)練模型文件如下:

Step 2:部署在線服務(wù)

模型訓(xùn)練完成之后,就準(zhǔn)備上手部署!

按照官方文檔的提示(https://docs.ucloud.cn/analysis/uai-service/index),在線部署的主要步驟如下(因個(gè)人喜好,本次選擇用命令行部署,官方也給出了使用Console部署的操作說(shuō)明)。

Step2.0 安裝UCloud UFile SDK以及UAI SDK

• 前者是UCloud對(duì)象存儲(chǔ)的SDK(http://sdk.ufile.ucloud.com.cn/python_sdk.tar.gz),主要用于將部署服務(wù)需要的模型和代碼文件上傳到UCloud的對(duì)象存儲(chǔ)空間中,這就涉及到首先創(chuàng)建一個(gè)屬于自己的私有空間,具體步驟在此不贅述。

• 后者是UAI在線服務(wù)的SDK(https://gitlab.ucloudadmin.com/uai-service/uai-sdk/tree/master),提供了部署在線服務(wù)的命令行工具。

Step2.1 依據(jù)SDK工具包內(nèi)的代碼框架編寫inference代碼

代碼如下:

python

# fer_inference.py

import numpy as np

import tensorflow as tf

 

from PIL import Image

from inception_v3 import *

from uai.arch.tf_model import TFAiUCloudModel

 

class FerModel(TFAiUCloudModel):

 def__init__(self, conf):

     super(FerModel, self).__init__(conf)

 

  defload_model(self):

      sess =tf.Session( )

     input_tensor = tf.placeholder(tf.float32, [None, 299, 299, 3])

      arg_scope= inception_v3_arg_scope( )

      withslim.arg_scope(arg_scope):

         logits, end_points = inception_v3(input_tensor,

                                           is_training=False,

                                           num_classes=7)

          saver= tf.train.Saver( )

     params_file = tf.train.latest_checkpoint(self.model_dir)

 

      saver.restore(sess,params_file)

     self.output['sess'] = sess

     self.output['input_tensor'] = input_tensor

     self.output['logits'] = logits

     self.output['end_points'] = end_points

 

  def execute(self, data, batch_size):

      sess =self.output['sess']

     input_tensor = self.output['input_tensor']

      logits =self.output['logits']

     end_points = self.output['end_points']

      ims = [ ]

      for i inrange(batch_size):

          im =Image.open(data[i]).resize((299, 299))

          im = np.array(im) / 255.0

          im =im.reshape(299, 299, 3)

         ims.append(im)

      ims =np.array(ims)

     predict_values, logit_values = sess.run(

         [end_points['Predictions'], logits], feed_dict={input_tensor: ims})

      ret = [ ]

      for valin predict_values:

         ret_val = np.array_str(np.argmax(val)) + '\n'

         ret.append(ret_val)

      return ret

Step2.2 打包上傳需要的模型及代碼文件

  • 文件目錄結(jié)構(gòu):

打包目錄

模型文件目錄(checkpointdir目錄下)

  • 打包上傳文件:

bash

python tf_deploy.py pack –public_key=MY_PUBLIC_KEY –private_key=MY_PRIVATE_KEY –bucket=MY_BUCKET –pack_file_path=/Users/littleape1022/Desktop/fer_uaiservice –main_file=fer_inference –main_class=FerModel –model_dir=checkpoint_dir –code_files=fer_inference.py,inception_v3.py,inception_utils.py –upload_name=fer_uaiservice.tar –ai_arch_v=tensorflow-1.1.0

Step2.3 創(chuàng)建服務(wù)

創(chuàng)建服務(wù):

bash

python tf_deploy.py create  –public_key=MY_PUBLIC_KEY –private_key=MY_PRIVATE_KEY –service_name=fer_uaiservice –cpu=8 –memory=8

創(chuàng)建服務(wù)后返回如下:

Step2.4 部署服務(wù)

部署服務(wù):

bash

python tf_deploy.py deploy –service_id=uaiservice-av4p1c –public_key=MY_PUBLIC_KEY –private_key=MY_PRIVATE_KEY –ai_arch_v=tensorflow-1.1.0 –ufile_url="MY_UFILE_URL" –pip=pillow

部署成功后返回如下:

可以看到已經(jīng)返回服務(wù)的URL了,但注意到狀態(tài)是“ToStart”,啟動(dòng)之后就可以借助URL來(lái)訪問(wèn)服務(wù)。

Step2.5 啟動(dòng)服務(wù)

啟動(dòng)服務(wù):

bash

python tf_deploy.py start –public_key=MY_PUBLIC_KEY –private_key=MY_PRIVATE_KEY –service_name=fer_uaiservice –service_version=SERVICE_VERSION –paas_id=Srv_PAAS_ID

啟動(dòng)成功后返回如下:

 

測(cè)試

上述步驟完成之后,表明人臉表情識(shí)別在線服務(wù)已經(jīng)部署成功,可以實(shí)現(xiàn)在線人臉表情識(shí)別!

URL測(cè)試

通過(guò)云主機(jī)即可訪問(wèn)該URL,具體情況如下:

上述結(jié)果表明,通過(guò)UAI部署在線服務(wù)后給出的URL是通的,可以借助它對(duì)輸入圖片進(jìn)行情感分類。

圖中將輸入圖片“happy.jpg”分成了類別“4”,對(duì)應(yīng)“neutral”類,說(shuō)明模型的識(shí)別率有待提升(^_^)。

在線服務(wù)性能測(cè)試

借助ab測(cè)試評(píng)估了服務(wù)的性能,并與本地測(cè)試以及GPU(K80)做了比對(duì)。

(關(guān)于本地測(cè)試的方法官網(wǎng)有介紹,有興趣的可以關(guān)注以下鏈接:https://docs.ucloud.cn/analysis/uai-service/guide/tensorflow/test )

測(cè)試結(jié)果如下,可以發(fā)現(xiàn):

1)在并發(fā)數(shù)增加到8時(shí),AI在線服務(wù)的性能基本和GPU性能接近,即UAI_Service 8個(gè)節(jié)點(diǎn)的性能相當(dāng)于一塊K80單核的性能。

2)在有并發(fā)的前提下,AI在線服務(wù)的性能普遍高于8核8G云主機(jī)的性能。

人工智能(AI)將是UCloud“CBA”戰(zhàn)略的重要一環(huán)。使用UCloud推出的AI as a Service平臺(tái),可以助力人工智能公司快速將人工智能算法產(chǎn)品化,同時(shí)也在資源管理、資源調(diào)度方面提供了全方位保障。

相關(guān)文章
廣電視聽智能體(AI Agent)開發(fā)工具在短視頻創(chuàng)作領(lǐng)域得到應(yīng)用
廣電視聽智能體(AI Agent)開發(fā)工具在…
注意!9月1日起,AI生成合成內(nèi)容必須添加標(biāo)識(shí)
注意!9月1日起,AI生成合成內(nèi)容必須添…
全國(guó)人大代表、南京郵電大學(xué)校長(zhǎng)葉美蘭:加快推進(jìn)6G等新技術(shù)創(chuàng)新發(fā)展 培養(yǎng)“AI+x”復(fù)合型人才
全國(guó)人大代表、南京郵電大學(xué)校長(zhǎng)葉美蘭…
華數(shù)全面部署DeepSeek,探索“AI+廣電”生態(tài)新路徑
華數(shù)全面部署DeepSeek,探索“AI+廣電”生…
廣東廣電網(wǎng)絡(luò)完成DeepSeek私有化部署,實(shí)現(xiàn)首批AI應(yīng)用升級(jí)換“腦”
廣東廣電網(wǎng)絡(luò)完成DeepSeek私有化部署,…
吉林廣電「整活兒」AI深夜搞事情!DeepSeek全鏈平臺(tái)灰度跑通
吉林廣電「整活兒」AI深夜搞事情!DeepS…
我還沒(méi)有學(xué)會(huì)寫個(gè)人說(shuō)明!

24小時(shí)排行

  • 暫無(wú)文章