www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > AI科技大本營(yíng)
[導(dǎo)讀]作者|小白來(lái)源|小白學(xué)視覺疲勞駕駛:一個(gè)嚴(yán)重的問(wèn)題美國(guó)國(guó)家公路交通安全管理局估計(jì),每年有91,000起車禍涉及疲勞駕駛的司機(jī),造成約50,000人受傷和近800人死亡。此外,每24名成年司機(jī)中就有1人報(bào)告在過(guò)去30天內(nèi)在駕駛時(shí)睡著了。研究甚至發(fā)現(xiàn),超過(guò)20個(gè)小時(shí)不睡覺相當(dāng)于血液酒...

使用卷積神經(jīng)網(wǎng)絡(luò)預(yù)防疲勞駕駛事故


作者|小白來(lái)源|小白學(xué)視覺

疲勞駕駛:一個(gè)嚴(yán)重的問(wèn)題

美國(guó)國(guó)家公路交通安全管理局估計(jì),每年有 91,000 起車禍涉及疲勞駕駛的司機(jī),造成約50,000 人受傷和近 800 人死亡。此外,每 24 名成年司機(jī)中就有 1 人報(bào)告在過(guò)去 30 天內(nèi)在駕駛時(shí)睡著了。研究甚至發(fā)現(xiàn),超過(guò)20個(gè)小時(shí)不睡覺相當(dāng)于血液酒精濃度為0.08%——美國(guó)的法律規(guī)定的上限。由于這個(gè)嚴(yán)重的問(wèn)題,我和一組其他數(shù)據(jù)科學(xué)家開始開發(fā)一種神經(jīng)網(wǎng)絡(luò),可以檢測(cè)眼睛是否閉著,當(dāng)與計(jì)算機(jī)視覺結(jié)合使用時(shí),可以檢測(cè)活人是否閉著眼睛超過(guò)一秒鐘。這種技術(shù)對(duì)于任何對(duì)提高駕駛安全性感興趣的人都很有用,包括商業(yè)和日常司機(jī)、汽車公司和汽車保險(xiǎn)公司。目錄構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)攝像頭應(yīng)用程序數(shù)據(jù)采集我們使用了多個(gè)來(lái)源的完整面部數(shù)據(jù),即麻省大學(xué)阿默斯特分校的睜眼面部數(shù)據(jù)和南京大學(xué)的閉眼面部數(shù)據(jù)。然后,我們使用一個(gè)簡(jiǎn)單的 Python 函數(shù)從這個(gè)數(shù)據(jù)集中裁剪出眼睛,只剩下 30,000 多張裁剪后的眼睛圖像。我們?yōu)槊總€(gè)圖像裁剪添加了一個(gè)緩沖區(qū),不僅可以獲取眼睛,還可以獲取眼睛周圍的區(qū)域。此裁剪功能稍后將重新用于網(wǎng)絡(luò)攝像頭部分。
# installations from command line# brew install cmake # dlib requirement# pip install dlib # face_recognition requirement# pip install face_recognition # library for detecting eye location# imports:from PIL import Image, ImageDrawimport face_recognitionimport osdef eye_cropper(folders): # Establish count for iterative file saving count = 0
# For loop going through each image file for folder in os.listdir(folders): for file in os.listdir(folders '/' folder):
# Using Facial Recognition Library on Image image = face_recognition.load_image_file(folders '/' folder '/' file) # create a variable for the facial feature coordinates face_landmarks_list = face_recognition.face_landmarks(image)
# create a placeholder list for the eye coordinates eyes = [] try: eyes.append(face_landmarks_list[0]['left_eye']) eyes.append(face_landmarks_list[0]['right_eye']) except: continue # establish the max x and y coordinates of the eye for eye in eyes: x_max = max([coordinate[0] for coordinate in eye]) x_min = min([coordinate[0] for coordinate in eye]) y_max = max([coordinate[1] for coordinate in eye]) y_min = min([coordinate[1] for coordinate in eye]) # establish the range of x and y coordinates x_range = x_max - x_min y_range = y_max - y_min
# to make sure the full eye is captured, # calculate the coordinates of a square that has 50% # cushion added to the axis with a larger range if x_range > y_range: right = round(.5*x_range) x_max left = x_min - round(.5*x_range) bottom = round(((right-left) - y_range))/2 y_max top = y_min - round(((right-left) - y_range))/2 else: bottom = round(.5*y_range) y_max top = y_min - round(.5*y_range) right = round(((bottom-top) - x_range))/2 x_max left = x_min - round(((bottom-top) - x_range))/2
#crop original image using the cushioned coordinates im = Image.open(folders '/' folder '/' file) im = im.crop((left, top, right, bottom))
# resize image for input into our model im = im.resize((80,80))
# save file to output folder im.save('yourfolderforcroppedeyes')
# increase count for iterative file saving count = 1 # print count every 200 photos to monitor progress if count % 200 == 0: print(count)
# Call function to crop full-face eye imageseye_cropper('yourfullfaceimagefolder') 以下是我們用來(lái)訓(xùn)練模型的數(shù)據(jù)示例:使用卷積神經(jīng)網(wǎng)絡(luò)預(yù)防疲勞駕駛事故創(chuàng)建卷積神經(jīng)網(wǎng)絡(luò)確定指標(biāo)因?yàn)轭A(yù)測(cè)正面類別(熟睡的司機(jī))對(duì)我們來(lái)說(shuō)比預(yù)測(cè)負(fù)面類別(清醒的司機(jī))更重要,所以我們最重要的指標(biāo)是召回率(敏感性)。召回率越高,模型錯(cuò)誤地預(yù)測(cè)清醒(假陰性)的睡眠驅(qū)動(dòng)程序的數(shù)量就越少。這里唯一的問(wèn)題是我們的正面類別明顯多于我們的負(fù)面類別。因此,最好使用F1 分?jǐn)?shù)或 Precision-Recall AUC 分?jǐn)?shù),因?yàn)樗鼈冞€考慮了我們猜測(cè)駕駛員睡著但實(shí)際上清醒(精確)的次數(shù)。否則我們的模型將始終預(yù)測(cè)我們處于睡眠狀態(tài),無(wú)法使用。另一種我們?cè)谔幚聿黄胶鈭D像數(shù)據(jù)時(shí)沒有使用的方法是使用圖像增強(qiáng),我沒有在這里使用它,但是 Jason Brownlee 在解釋如何在這里使用它方面做得很好。準(zhǔn)備圖像數(shù)據(jù)下一步是導(dǎo)入圖像并用模型進(jìn)行預(yù)處理。本節(jié)所需的導(dǎo)入:
import cv2 import tensorflow as tf from tensorflow import keras from sklearn.model_selection import train_test_split from tensorflow.keras.wrappers.scikit_learn import KerasClassifier from keras.models import Sequential from keras.layers import Dense,Flatten,Conv2D,MaxPooling2D, 導(dǎo)入我們之前創(chuàng)建的圖像并調(diào)整圖像大小,使它們?nèi)科ヅ?,?duì)于這個(gè)項(xiàng)目,我們將大小調(diào)整為 80x80 像素。這是一個(gè)使用 OS 庫(kù)的簡(jiǎn)單導(dǎo)入函數(shù):
def load_images_from_folder(folder, eyes = 0): count = 0 error_count = 0 images = [] for filename in os.listdir(folder): try: img = cv2.imread(os.path.join(folder,filename)) img = cv2.resize(img, (80,80)) ## Resizing the images ## for eyes if it is 0: open, 1: close images.append([img, eyes]) except: error_count = 1 print('ErrorCount = ' str(error_count)) continue
count = 1 if count % 500 == 0: print('Succesful Image Import Count = ' str(count))
return images
folder="../data/train/new_open_eyes"open_eyes = load_images_from_folder(folder, 0)
folder="../data/train/New_Closed_Eyes"closed_eyes = load_images_from_folder(folder, 1)eyes = close_eyes open_eyes 設(shè)置變量,獨(dú)立的 X 是圖像,依賴的 y 是相應(yīng)的標(biāo)簽(1 表示閉眼,0 表示睜眼):
X = [] y = [] for features, label in eyes: X.append(features) y.append(label) 將圖像轉(zhuǎn)換為數(shù)組,以便它可以進(jìn)入模型。此外,將數(shù)據(jù)除以255進(jìn)行縮放。
X = np.array(X).reshape(-1, 80, 80, 3)y = np.array(y)X = X/255.0 使用scikit learn的train_test_Split將數(shù)據(jù)拆分為訓(xùn)練集和驗(yàn)證集。重要提示:確保分層,因?yàn)槲覀冇胁黄胶獾念悺?/span>
X_train, X_test, y_train, y_test = train_test_split(X, y, stratify = y) 創(chuàng)建模型架構(gòu)使用卷積神經(jīng)網(wǎng)絡(luò)預(yù)防疲勞駕駛事故卷積層:該層創(chuàng)建像素子集而不是完整圖像,并允許更快的模型。根據(jù)設(shè)置的過(guò)濾器數(shù)量,這可能比原始圖像的密度更高或更低,但它們將使模型能夠使用更少的資源了解更復(fù)雜的關(guān)系。我們使用 32 個(gè)過(guò)濾器,使用至少一個(gè)卷積層,通常需要兩個(gè)或更多。對(duì)我們來(lái)說(shuō),最佳設(shè)置是將兩個(gè)3x3組合在一起,然后將三個(gè)3x3組合在一起。CNN 的總體趨勢(shì)是使用較小的濾波器尺寸。事實(shí)上,雙3x3層與5x5層基本相同,但速度更快,通常會(huì)產(chǎn)生更好的分?jǐn)?shù)。壓平確保展平圖像陣列,以便它可以進(jìn)入密集層。密集層層越密集,我們的模型訓(xùn)練所需的時(shí)間就越長(zhǎng),隨著這些層中神經(jīng)元數(shù)量的增加,網(wǎng)絡(luò)學(xué)習(xí)到的關(guān)系的復(fù)雜性也會(huì)增加。一般來(lái)說(shuō),通常卷積層的想法是為了避免產(chǎn)生過(guò)深的密集層方案。在我們的模型中我們使用了三層,神經(jīng)元的relu激活率呈下降趨勢(shì)(256、128、64)。我們還在每一層之后使用了 30% 的dropout。輸出層最后,因?yàn)檫@是一個(gè)二進(jìn)制分類問(wèn)題,請(qǐng)確保對(duì)外層使用 sigmoid 激活。編譯模型在 model.compile()中,我們需要將指標(biāo)設(shè)置為 PR AUC(tf.keras.metrics.AUC (curve = 'PR')在 tensorflow 中)或召回率(tf.keras.metrics.recall在 tensorflow 中)。將損失設(shè)置為二進(jìn)制交叉熵,因?yàn)檫@通常是一個(gè)二進(jìn)制分類模型和一個(gè)好的優(yōu)化器。擬合模型將批量大小設(shè)置得盡可能大。我在 Google Colab 的 32 GB TPU 上運(yùn)行了 gridsearch,它輕松運(yùn)行了 1000 多個(gè)批次。如有疑問(wèn),請(qǐng)嘗試 32 個(gè)批次,如果沒有使內(nèi)存過(guò)載,則增加。就epochs 而言,20 個(gè) epochs 后收益遞減,所以我不會(huì)比這個(gè)特定的 CNN 高太多。以下是 Tensorflow Keras 的完整設(shè)置:
# Instantiate the modelmodel = Sequential()
# Adding first three convolutional layersmodel.add(Conv2D( filters = 32, # number of filters kernel_size = (3,3), # height/width of filter activation = 'relu', # activation function input_shape = (80,80,3) # shape of input (image) ))model.add(Conv2D( filters = 32, # number of filters kernel_size = (3,3), # height/width of filter activation = 'relu' # activation function ))model.add(Conv2D( filters = 32, # number of filters kernel_size = (3,3), # height/width of filter activation = 'relu' # activation function ))
# Adding pooling after convolutional layersmodel.add(MaxPooling2D(pool_size = (2,2))) # Dimensions of the region that you are pooling
# Adding second set of convolutional layersmodel.add(Conv2D( filters = 32, # number of filters kernel_size = (3,3), # height/width of filter activation = 'relu' # activation function ))model.add(Conv2D( filters = 32, # number of filters kernel_size = (3,3), # height/width of filter activation = 'relu' # activation function ))
# Add last pooling layer.model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Flatten())
# Adding first dense layer with 256 nodesmodel.add(Dense(256, activation='relu'))
# Adding a dropout layer to avoid overfittingmodel.add(Dropout(0.3))
model.add(Dense(128, activation='relu'))model.add(Dropout(0.3))
model.add(Dense(64, activation='relu'))model.add(Dropout(0.3))
# adding output layermodel.add(Dense(1, activation = 'sigmoid'))
# compiling the modelmodel.compile(loss='binary_crossentropy', optimizer='adam', metrics=[tf.keras.metrics.AUC(curve = 'PR')])
# fitting the modelmodel.fit(X_train, y_train, batch_size=800, validation_data=(X_test, y_test), epochs=24)
# evaluate the model model.evaluate(X_test, y_test, verbose=1) 曲線下的最終精確召回區(qū)域:0.981033創(chuàng)建網(wǎng)絡(luò)攝像頭應(yīng)用程序獲得滿意的模型后,請(qǐng)使用model.save('yourmodelname.h5'). 保存生產(chǎn)模型時(shí),請(qǐng)確保運(yùn)行該模型時(shí)沒有驗(yàn)證數(shù)據(jù),這將在導(dǎo)入時(shí)導(dǎo)致問(wèn)題。安裝和導(dǎo)入:這些是 Mac 優(yōu)化的,盡管也可以在 Windows 上使用相同的腳本。
# installations needed for webcam application# pip install opencv-python # # if you want to play a sound for the alert:# pip install -U PyObjC# pip install playsound# imports for webcam applicationimport cv2from playsound import playsound# import model saved aboveeye_model = keras.models.load_model(‘best_model.h5’) 使用 OpenCV 訪問(wèn)網(wǎng)絡(luò)攝像頭使用cv2.VideoCapture(0)啟動(dòng)攝像頭捕獲。如果想根據(jù)相對(duì)幀大小而不是絕對(duì)坐標(biāo)確定文本位置,請(qǐng)確保使用cap.get(cv2.cap\u PROP\u frame\u width)保存網(wǎng)絡(luò)攝像頭的寬度和高度,還可以每秒查看幀數(shù)。
cap = cv2.VideoCapture(0)w = cap.get(cv2.CAP_PROP_FRAME_WIDTH)h = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)print(cap.get(cv2.CAP_PROP_FPS))if not cap.isOpened(): raise IOError(‘Cannot open webcam’) 使用 OpenCV 捕獲幀并對(duì)其進(jìn)行裁剪如果我們打算用框架數(shù)數(shù)閉著的眼睛,一定要設(shè)置一個(gè)計(jì)數(shù)器。A while True:循環(huán)將使相機(jī)保持開啟狀態(tài),直到我們完成腳本。在 while 循環(huán)中,使用ret, frame = cap.read()格式來(lái)捕獲網(wǎng)絡(luò)攝像頭視頻的幀。最后,調(diào)用框架上的函數(shù)。它應(yīng)該從幀中返回一個(gè)裁剪過(guò)的眼睛,如果在幀中找不到眼睛,函數(shù)將返回不能除以255的None,并跳到下一幀。
counter = 0# create a while loop that runs while webcam is in usewhile True: # capture frames being outputted by webcam ret, frame = cap.read() # function called on the frame image_for_prediction = eye_cropper(frame) try: image_for_prediction = image_for_prediction/255.0 except: continue 通過(guò)模型運(yùn)行框架然后我們可以通過(guò)模型運(yùn)行圖像并獲得預(yù)測(cè)。如果預(yù)測(cè)值更接近于 0,那么我們?cè)谄聊簧巷@示“Open”,否則(即它更接近 1),我們顯示“Closed”。請(qǐng)注意,如果模型檢測(cè)到睜開眼睛,計(jì)數(shù)器將重置為 0,如果眼睛閉上,則計(jì)數(shù)器增加 1。我們可以使用cv2.putText()顯示一些基本文本來(lái)指示眼睛是閉著的還是睜開的。
prediction = eye_model.predict(image_for_prediction)if prediction < 0.5: counter = 0 status = ‘Open’ cv2.putText(frame, status, (round(w/2)-80,70),cv2.FONT_HERSHEY_SIMPLEX, 2, (0,255,0), 2, cv2.LINE_4)
else: counter = counter 1 status = ‘Closed’ cv2.putText(frame, status, (round(w/2)-104,70), cv2.FONT_HERSHEY_SIMPLEX, 2, (0,0,255), 2, cv2.LINE_4) 如果一行中有6幀是閉著眼睛的(“睡眠”),我們還希望顯示一個(gè)警報(bào)。這可以使用一個(gè)簡(jiǎn)單的if語(yǔ)句來(lái)完成:
if counter > 5: cv2.putText(frame, ‘DRIVER SLEEPING’, (round(w/2)-136,round(h) — 146), cv2.FONT_HERSHEY_SIMPLEX, 1, (0,0,255), 2, cv2.LINE_4) counter = 5 使用卷積神經(jīng)網(wǎng)絡(luò)預(yù)防疲勞駕駛事故最后,我們需要顯示幀并為 while 循環(huán)提供退出鍵。在cv2.waitKey(1)確定幀的顯示時(shí)間。括號(hào)中的數(shù)字是幀將顯示的毫秒數(shù),除非按下“k”鍵(在本例中為27)或escape鍵:
cv2.imshow(‘Drowsiness Detection’, frame)k = cv2.waitKey(1)if k == 27: break 在循環(huán)之外,釋放網(wǎng)絡(luò)攝像頭并關(guān)閉應(yīng)用程序:
cap.release()cv2.destroyAllWindows()


最終產(chǎn)品加上一些文體,這是最終產(chǎn)品。使用卷積神經(jīng)網(wǎng)絡(luò)預(yù)防疲勞駕駛事故使用卷積神經(jīng)網(wǎng)絡(luò)預(yù)防疲勞駕駛事故?正如我們所見,該模型非常有效,盡管訓(xùn)練時(shí)間很長(zhǎng),但仍可在幾毫秒內(nèi)返回預(yù)測(cè)。通過(guò)一些進(jìn)一步的改進(jìn)并導(dǎo)出到外部機(jī)器,這個(gè)程序可以很容易地應(yīng)用于實(shí)際情況,甚至可以挽救生命。
import cv2import numpy as npfrom playsound import playsoundfrom PIL import Image, ImageDrawimport face_recognitionfrom tensorflow import keraseye_model = keras.models.load_model('best_model_2.h5')
# webcam frame is inputted into functiondef eye_cropper(frame):
# create a variable for the facial feature coordinates facial_features_list = face_recognition.face_landmarks(frame)
# create a placeholder list for the eye coordinates # and append coordinates for eyes to list unless eyes # weren't found by facial recognition try: eye = facial_features_list[0]['left_eye'] except: try: eye = facial_features_list[0]['right_eye'] except: return
# establish the max x and y coordinates of the eye x_max = max([coordinate[0] for coordinate in eye]) x_min = min([coordinate[0] for coordinate in eye]) y_max = max([coordinate[1] for coordinate in eye]) y_min = min([coordinate[1] for coordinate in eye])
# establish the range of x and y coordinates x_range = x_max - x_min y_range = y_max - y_min
# in order to make sure the full eye is captured, # calculate the coordinates of a square that has a # 50% cushion added to the axis with a larger range and # then match the smaller range to the cushioned larger range if x_range > y_range: right = round(.5*x_range) x_max left = x_min - round(.5*x_range) bottom = round((((right-left) - y_range))/2) y_max top = y_min - round((((right-left) - y_range))/2) else: bottom = round(.5*y_range) y_max top = y_min - round(.5*y_range) right = round((((bottom-top) - x_range))/2) x_max left = x_min - round((((bottom-top) - x_range))/2)
# crop the image according to the coordinates determined above cropped = frame[top:(bottom 1), left:(right 1)]
# resize the image cropped = cv2.resize(cropped, (80,80)) image_for_prediction = cropped.reshape(-1, 80, 80, 3)
return image_for_prediction
# initiate webcamcap = cv2.VideoCapture(0)w = cap.get(cv2.CAP_PROP_FRAME_WIDTH)h = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)if not cap.isOpened(): raise IOError('Cannot open webcam')
# set a countercounter = 0
# create a while loop that runs while webcam is in usewhile True:
# capture frames being outputted by webcam ret, frame = cap.read()
# use only every other frame to manage speed and memory usage frame_count = 0 if frame_count == 0: frame_count = 1 pass else: count = 0 continue
# function called on the frame image_for_prediction = eye_cropper(frame) try: image_for_prediction = image_for_prediction/255.0 except: continue
# get prediction from model prediction = eye_model.predict(image_for_prediction)
# Based on prediction, display either "Open Eyes" or "Closed Eyes" if prediction < 0.5: counter = 0 status = 'Open'
cv2.rectangle(frame, (round(w/2) - 110,20), (round(w/2) 110, 80), (38,38,38), -1)
cv2.putText(frame, status, (round(w/2)-80,70), cv2.FONT_HERSHEY_SIMPLEX, 2, (0,255,0), 2, cv2.LINE_4) x1, y1,w1,h1 = 0,0,175,75 ## Draw black backgroun rectangle cv2.rectangle(frame, (x1,x1), (x1 w1-20, y1 h1-20), (0,0,0), -1) ## Add text cv2.putText(frame, 'Active', (x1 int(w1/10), y1 int(h1/2)), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255,0),2) else: counter = counter 1 status = 'Closed'
cv2.rectangle(frame, (round(w/2) - 110,20), (round(w/2) 110, 80), (38,38,38), -1)
cv2.putText(frame, status, (round(w/2)-104,70), cv2.FONT_HERSHEY_SIMPLEX, 2, (0,0,255), 2, cv2.LINE_4) x1, y1,w1,h1 = 0,0,175,75 ## Draw black backgroun rectangle cv2.rectangle(frame, (x1,x1), (x1 w1-20, y1 h1-20), (0,0,0), -1) ## Add text cv2.putText(frame, 'Active', (x1 int(w1/10), y1 int(h1/2)), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255,0),2)
# if the counter is greater than 3, play and show alert that user is asleep if counter > 2:
## Draw black background rectangle cv2.rectangle(frame, (round(w/2) - 160, round(h) - 200), (round(w/2) 160, round(h) - 120), (0,0,255), -1) cv2.putText(frame, 'DRIVER SLEEPING', (round(w/2)-136,round(h) - 146), cv2.FONT_HERSHEY_SIMPLEX, 1, (0,0,0), 2, cv2.LINE_4) cv2.imshow('Drowsiness Detection', frame) k = cv2.waitKey(1) ## Sound playsound('rooster.mov') counter = 1 continue
cv2.imshow('Drowsiness Detection', frame) k = cv2.waitKey(1) if k == 27: breakcap.release()cv2.destroyAllWindows() 使用卷積神經(jīng)網(wǎng)絡(luò)預(yù)防疲勞駕駛事故




本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉