在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

基于YOLO-V5的網(wǎng)絡(luò)結(jié)構(gòu)及實(shí)現(xiàn)行人社交距離風(fēng)險提示

新機(jī)器視覺 ? 來源:AI人工智能初學(xué)者 ? 作者:ChaucerG ? 2022-07-06 10:24 ? 次閱讀

從代碼的角度理解YOLO V5的工作。YOLO V5的網(wǎng)絡(luò)結(jié)構(gòu)圖如下:

1、與YOLO V4的區(qū)別

Yolov4在Yolov3的基礎(chǔ)上進(jìn)行了很多的創(chuàng)新。比如輸入端采用mosaic數(shù)據(jù)增強(qiáng),Backbone上采用了CSPDarknet53、Mish激活函數(shù)、Dropblock等方式,Neck中采用了SPP、FPN+PAN的結(jié)構(gòu),輸出端則采用CIOU_Loss、DIOU_nms操作。因此Yolov4對Yolov3的各個部分都進(jìn)行了很多的整合創(chuàng)新。這里給出YOLO V4的網(wǎng)絡(luò)結(jié)構(gòu)圖:

Yolov5的結(jié)構(gòu)其實(shí)和Yolov4的結(jié)構(gòu)還是有一定的相似之處的,但也有一些不同,這里還是按照從整體到細(xì)節(jié)的方式,對每個板塊進(jìn)行講解。這里給出YOLO V4的網(wǎng)絡(luò)結(jié)構(gòu)圖:

通過Yolov5的網(wǎng)絡(luò)結(jié)構(gòu)圖可以看到,依舊是把模型分為4個部分,分別是:輸入端、Backbone、Neck、Prediction。

1.1、輸入端的區(qū)別

1 Mosaic數(shù)據(jù)增強(qiáng)

Mosaic是參考CutMix數(shù)據(jù)增強(qiáng)的方式,但CutMix只使用了兩張圖片進(jìn)行拼接,而Mosaic數(shù)據(jù)增強(qiáng)則采用了4張圖片,隨機(jī)縮放、隨機(jī)裁剪、隨機(jī)排布的方式進(jìn)行拼接。

主要有幾個優(yōu)點(diǎn):

1、豐富數(shù)據(jù)集:隨機(jī)使用4張圖片,隨機(jī)縮放,再隨機(jī)分布進(jìn)行拼接,大大豐富了檢測數(shù)據(jù)集,特別是隨機(jī)縮放增加了很多小目標(biāo),讓網(wǎng)絡(luò)的魯棒性更好。

2、減少GPU:可能會有人說,隨機(jī)縮放,普通的數(shù)據(jù)增強(qiáng)也可以做,但作者考慮到很多人可能只有一個GPU,因此Mosaic增強(qiáng)訓(xùn)練時,可以直接計算4張圖片的數(shù)據(jù),使得Mini-batch大小并不需要很大,一個GPU就可以達(dá)到比較好的效果。

2 自適應(yīng)錨框計算

在Yolov3、Yolov4中,訓(xùn)練不同的數(shù)據(jù)集時,計算初始錨框的值是通過單獨(dú)的程序運(yùn)行的。但Yolov5中將此功能嵌入到代碼中,每次訓(xùn)練時,自適應(yīng)的計算不同訓(xùn)練集中的最佳錨框值。

比如Yolov5在Coco數(shù)據(jù)集上初始設(shè)定的錨框:

3 自適應(yīng)圖片縮放

在常用的目標(biāo)檢測算法中,不同的圖片長寬都不相同,因此常用的方式是將原始圖片統(tǒng)一縮放到一個標(biāo)準(zhǔn)尺寸,再送入檢測網(wǎng)絡(luò)中。比如Yolo算法中常用416×416,608×608等尺寸,比如對下面800×600的圖像進(jìn)行變換。

但Yolov5代碼中對此進(jìn)行了改進(jìn),也是Yolov5推理速度能夠很快的一個不錯的trick。作者認(rèn)為,在項(xiàng)目實(shí)際使用時,很多圖片的長寬比不同。因此縮放填充后,兩端的黑邊大小都不同,而如果填充的比較多,則存在信息冗余,影響推理速度。

具體操作的步驟:

1 計算縮放比例

原始縮放尺寸是416×416,都除以原始圖像的尺寸后,可以得到0.52,和0.69兩個縮放系數(shù),選擇小的縮放系數(shù)0.52。

2 計算縮放后的尺寸

原始圖片的長寬都乘以最小的縮放系數(shù)0.52,寬變成了416,而高變成了312。

3 計算黑邊填充數(shù)值

將416-312=104,得到原本需要填充的高度。再采用numpy中np.mod取余數(shù)的方式,得到40個像素,再除以2,即得到圖片高度兩端需要填充的數(shù)值。

1.2、Backbone的區(qū)別

1 Focus結(jié)構(gòu)

Focus結(jié)構(gòu),在Yolov3&Yolov4中并沒有這個結(jié)構(gòu),其中比較關(guān)鍵是切片操作。比如右圖的切片示意圖,4×4×3的圖像切片后變成3×3×12的特征圖。以Yolov5s的結(jié)構(gòu)為例,原始608×608×3的圖像輸入Focus結(jié)構(gòu),采用切片操作,先變成304×304×12的特征圖,再經(jīng)過一次32個卷積核的卷積操作,最終變成304×304×32的特征圖。

需要注意的是:Yolov5s的Focus結(jié)構(gòu)最后使用了32個卷積核,而其他三種結(jié)構(gòu),使用的數(shù)量有所增加,先注意下,后面會講解到四種結(jié)構(gòu)的不同點(diǎn)。

class Focus(nn.Module):

# Focus wh information into c-space

def __init__(self, c1, c2, k=1):

super(Focus, self).__init__()

self.conv = Conv(c1 * 4, c2, k, 1)

def forward(self, x): # x(b,c,w,h) -》 y(b,4c,w/2,h/2)

return self.conv(torch.cat([x[。.., ::2, ::2], x[。.., 1::2, ::2], x[。.., ::2, 1::2], x[。.., 1::2, 1::2]], 1))

2 CSP結(jié)構(gòu)

Yolov5與Yolov4不同點(diǎn)在于,Yolov4中只有主干網(wǎng)絡(luò)使用了CSP結(jié)構(gòu),而Yolov5中設(shè)計了兩種CSP結(jié)構(gòu),以Yolov5s網(wǎng)絡(luò)為例,以CSP1_X結(jié)構(gòu)應(yīng)用于Backbone主干網(wǎng)絡(luò),另一種CSP2_X結(jié)構(gòu)則應(yīng)用于Neck中。

classConv(nn.Module):
#Standardconvolution
def__init__(self,c1,c2,k=1,s=1,g=1,act=True):#ch_in,ch_out,kernel,stride,groups
super(Conv,self).__init__()
self.conv=nn.Conv2d(c1,c2,k,s,k//2,groups=g,bias=False)
self.bn=nn.BatchNorm2d(c2)
self.act=nn.LeakyReLU(0.1,inplace=True)ifactelsenn.Identity()

defforward(self,x):
returnself.act(self.bn(self.conv(x)))

deffuseforward(self,x):
returnself.act(self.conv(x))


classBottleneck(nn.Module):
#Standardbottleneck
def__init__(self,c1,c2,shortcut=True,g=1,e=0.5):#ch_in,ch_out,shortcut,groups,expansion
super(Bottleneck,self).__init__()
c_=int(c2*e)#hiddenchannels
self.cv1=Conv(c1,c_,1,1)
self.cv2=Conv(c_,c2,3,1,g=g)
self.add=shortcutandc1==c2

defforward(self,x):
returnx+self.cv2(self.cv1(x))ifself.addelseself.cv2(self.cv1(x))


classBottleneckCSP(nn.Module):
#CSPBottleneckhttps://github.com/WongKinYiu/CrossStagePartialNetworks
def__init__(self,c1,c2,n=1,shortcut=True,g=1,e=0.5):#ch_in,ch_out,number,shortcut,groups,expansion
super(BottleneckCSP,self).__init__()
c_=int(c2*e)#hiddenchannels
self.cv1=Conv(c1,c_,1,1)
self.cv2=nn.Conv2d(c1,c_,1,1,bias=False)
self.cv3=nn.Conv2d(c_,c_,1,1,bias=False)
self.cv4=Conv(c2,c2,1,1)
self.bn=nn.BatchNorm2d(2*c_)#appliedtocat(cv2,cv3)
self.act=nn.LeakyReLU(0.1,inplace=True)
self.m=nn.Sequential(*[Bottleneck(c_,c_,shortcut,g,e=1.0)for_inrange(n)])

defforward(self,x):
y1=self.cv3(self.m(self.cv1(x)))
y2=self.cv2(x)
returnself.cv4(self.act(self.bn(torch.cat((y1,y2),dim=1))))

1.3、Neck的區(qū)別

Yolov5現(xiàn)在的Neck和Yolov4中一樣,都采用FPN+PAN的結(jié)構(gòu),但在Yolov5剛出來時,只使用了FPN結(jié)構(gòu),后面才增加了PAN結(jié)構(gòu),此外網(wǎng)絡(luò)中其他部分也進(jìn)行了調(diào)整。

35c30642-ec61-11ec-ba43-dac502259ad0.png

Yolov5和Yolov4的不同點(diǎn)在于,Yolov4的Neck中,采用的都是普通的卷積操作。而Yolov5的Neck結(jié)構(gòu)中,采用借鑒CSPNet設(shè)計的CSP2結(jié)構(gòu),加強(qiáng)網(wǎng)絡(luò)特征融合的能力。

1.4、輸出端的區(qū)別

1 Bounding box損失函數(shù)

而Yolov4中采用CIOU_Loss作為目標(biāo)Bounding box的損失。而Yolov5中采用其中的GIOU_Loss做Bounding box的損失函數(shù)。

35db8000-ec61-11ec-ba43-dac502259ad0.png

35ef7ca4-ec61-11ec-ba43-dac502259ad0.png

defcompute_loss(p,targets,model):#predictions,targets,model
ft=torch.cuda.FloatTensorifp[0].is_cudaelsetorch.Tensor
lcls,lbox,lobj=ft([0]),ft([0]),ft([0])
tcls,tbox,indices,anchors=build_targets(p,targets,model)#targets
h=model.hyp#hyperparameters
red='mean'#Lossreduction(sumormean)

#Definecriteria
BCEcls=nn.BCEWithLogitsLoss(pos_weight=ft([h['cls_pw']]),reduction=red)
BCEobj=nn.BCEWithLogitsLoss(pos_weight=ft([h['obj_pw']]),reduction=red)

#classlabelsmoothinghttps://arxiv.org/pdf/1902.04103.pdfeqn3
cp,cn=smooth_BCE(eps=0.0)

#focalloss
g=h['fl_gamma']#focallossgamma
ifg>0:
BCEcls,BCEobj=FocalLoss(BCEcls,g),FocalLoss(BCEobj,g)

#peroutput
nt=0#targets
fori,piinenumerate(p):#layerindex,layerpredictions
b,a,gj,gi=indices[i]#image,anchor,gridy,gridx
tobj=torch.zeros_like(pi[...,0])#targetobj

nb=b.shape[0]#numberoftargets
ifnb:
nt+=nb#cumulativetargets
ps=pi[b,a,gj,gi]#predictionsubsetcorrespondingtotargets

#GIoU
pxy=ps[:,:2].sigmoid()*2.-0.5
pwh=(ps[:,2:4].sigmoid()*2)**2*anchors[i]
pbox=torch.cat((pxy,pwh),1)#predictedbox
giou=bbox_iou(pbox.t(),tbox[i],x1y1x2y2=False,GIoU=True)#giou(prediction,target)
lbox+=(1.0-giou).sum()ifred=='sum'else(1.0-giou).mean()#giouloss

#Obj
tobj[b,a,gj,gi]=(1.0-model.gr)+model.gr*giou.detach().clamp(0).type(tobj.dtype)#giouratio

#Class
ifmodel.nc>1:#clsloss(onlyifmultipleclasses)
t=torch.full_like(ps[:,5:],cn)#targets
t[range(nb),tcls[i]]=cp
lcls+=BCEcls(ps[:,5:],t)#BCE

#Appendtargetstotextfile
#withopen('targets.txt','a')asfile:
#[file.write('%11.5g'*4%tuple(x)+'
')forxintorch.cat((txy[i],twh[i]),1)]

lobj+=BCEobj(pi[...,4],tobj)#objloss

lbox*=h['giou']
lobj*=h['obj']
lcls*=h['cls']
bs=tobj.shape[0]#batchsize
ifred=='sum':
g=3.0#lossgain
lobj*=g/bs
ifnt:
lcls*=g/nt/model.nc
lbox*=g/nt

loss=lbox+lobj+lcls
returnloss*bs,torch.cat((lbox,lobj,lcls,loss)).detach()

2 NMS非極大值抑制

Yolov4在DIOU_Loss的基礎(chǔ)上采用DIOU_NMS的方式,而Yolov5中采用加權(quán)NMS的方式。可以看出,采用DIOU_NMS,下方中間箭頭的黃色部分,原本被遮擋的摩托車也可以檢出。

在同樣的參數(shù)情況下,將NMS中IOU修改成DIOU_NMS。對于一些遮擋重疊的目標(biāo),確實(shí)會有一些改進(jìn)。

2、YOLOv5社交距離項(xiàng)目

yolov5檢測要檢測的視頻流中的所有人,然后再計算所有檢測到的人之間的相互“距離”,和現(xiàn)實(shí)生活中用“m”這樣的單位衡量距離不一樣的是,在計算機(jī)中,簡單的方法是用檢測到的兩個人的質(zhì)心,也就是檢測到的目標(biāo)框的中心之間相隔的像素值作為計算機(jī)中的“距離”來衡量視頻中的人之間的距離是否超過安全距離。

構(gòu)建步驟

使用目標(biāo)檢測算法檢測視頻流中的所有人,得到位置信息和質(zhì)心位置;

計算所有檢測到的人質(zhì)心之間的相互距離;

設(shè)置安全距離,計算每個人之間的距離對,檢測兩個人之間的距離是否小于N個像素,小于則處于安全距離,反之則不處于。

362564ae-ec61-11ec-ba43-dac502259ad0.png

項(xiàng)目架構(gòu):

363b3522-ec61-11ec-ba43-dac502259ad0.png

detect.py代碼注釋如下:

importargparse

fromutils.datasetsimport*
fromutils.utilsimport*


defdetect(save_img=False):
out,source,weights,view_img,save_txt,imgsz=
opt.output,opt.source,opt.weights,opt.view_img,opt.save_txt,opt.img_size
webcam=source=='0'orsource.startswith('rtsp')orsource.startswith('http')orsource.endswith('.txt')

#Initialize
device=torch_utils.select_device(opt.device)
ifos.path.exists(out):
shutil.rmtree(out)#deleteoutputfolder
os.makedirs(out)#makenewoutputfolder
half=device.type!='cpu'#halfprecisiononlysupportedonCUDA

#下載模型
google_utils.attempt_download(weights)
#加載權(quán)重
model=torch.load(weights,map_location=device)['model'].float()
#torch.save(torch.load(weights,map_location=device),weights)#updatemodelifSourceChangeWarning
#model.fuse()
#設(shè)置模型為推理模式
model.to(device).eval()
ifhalf:
model.half()#toFP16

#Second-stageclassifier
classify=False
ifclassify:
modelc=torch_utils.load_classifier(name='resnet101',n=2)#initialize
modelc.load_state_dict(torch.load('weights/resnet101.pt',map_location=device)['model'])#loadweights
modelc.to(device).eval()

#設(shè)置Dataloader
vid_path,vid_writer=None,None
ifwebcam:
view_img=True
torch.backends.cudnn.benchmark=True#setTruetospeedupconstantimagesizeinference
dataset=LoadStreams(source,img_size=imgsz)
else:
save_img=True
dataset=LoadImages(source,img_size=imgsz)

#獲取檢測類別的標(biāo)簽名稱
names=model.namesifhasattr(model,'names')elsemodel.modules.names
#定義顏色
colors=[[random.randint(0,255)for_inrange(3)]for_inrange(len(names))]

#開始推理
t0=time.time()
#初始化一張全為0的圖片
img=torch.zeros((1,3,imgsz,imgsz),device=device)
_=model(img.half()ifhalfelseimg)ifdevice.type!='cpu'elseNone
forpath,img,im0s,vid_capindataset:
img=torch.from_numpy(img).to(device)
img=img.half()ifhalfelseimg.float()#uint8tofp16/32
img/=255.0#0-255to0.0-1.0
ifimg.ndimension()==3:
img=img.unsqueeze(0)

#預(yù)測結(jié)果
t1=torch_utils.time_synchronized()
pred=model(img,augment=opt.augment)[0]

#使用NMS
pred=non_max_suppression(pred,opt.conf_thres,opt.iou_thres,fast=True,classes=opt.classes,agnostic=opt.agnostic_nms)
t2=torch_utils.time_synchronized()

#進(jìn)行分類
ifclassify:
pred=apply_classifier(pred,modelc,img,im0s)

people_coords=[]

#處理預(yù)測得到的檢測目標(biāo)
fori,detinenumerate(pred):
ifwebcam:
p,s,im0=path[i],'%g:'%i,im0s[i].copy()
else:
p,s,im0=path,'',im0s

save_path=str(Path(out)/Path(p).name)
s+='%gx%g'%img.shape[2:]#printstring
gn=torch.tensor(im0.shape)[[1,0,1,0]]#normalizationgainwhwh
ifdetisnotNoneandlen(det):
#把boxesresize到im0的size
det[:,:4]=scale_coords(img.shape[2:],det[:,:4],im0.shape).round()

#打印結(jié)果
forcindet[:,-1].unique():
n=(det[:,-1]==c).sum()#detectionsperclass
s+='%g%ss,'%(n,names[int(c)])#addtostring

#書寫結(jié)果
for*xyxy,conf,clsindet:
ifsave_txt:
#xyxy2xywh==>把預(yù)測得到的坐標(biāo)結(jié)果[x1,y1,x2,y2]轉(zhuǎn)換為[x,y,w,h]其中xy1=top-left,xy2=bottom-right
xywh=(xyxy2xywh(torch.tensor(xyxy).view(1,4))/gn).view(-1).tolist()#normalizedxywh
withopen(save_path[:save_path.rfind('.')]+'.txt','a')asfile:
file.write(('%g'*5+'
')%(cls,*xywh))#labelformat

ifsave_imgorview_img:#Addbboxtoimage
label='%s%.2f'%(names[int(cls)],conf)
iflabelisnotNone:
if(label.split())[0]=='person':
#print(xyxy)
people_coords.append(xyxy)
#plot_one_box(xyxy,im0,line_thickness=3)
plot_dots_on_people(xyxy,im0)

#通過people_coords繪制people之間的連接線
#這里主要分為"LowRisk"和"HighRisk"
distancing(people_coords,im0,dist_thres_lim=(200,250))

#Printtime(inference+NMS)
print('%sDone.(%.3fs)'%(s,t2-t1))

#Streamresults
ifview_img:
cv2.imshow(p,im0)
ifcv2.waitKey(1)==ord('q'):#qtoquit
raiseStopIteration

#Saveresults(imagewithdetections)
ifsave_img:
ifdataset.mode=='images':
cv2.imwrite(save_path,im0)
else:
ifvid_path!=save_path:#newvideo
vid_path=save_path
ifisinstance(vid_writer,cv2.VideoWriter):
vid_writer.release()#releasepreviousvideowriter

fps=vid_cap.get(cv2.CAP_PROP_FPS)
w=int(vid_cap.get(cv2.CAP_PROP_FRAME_WIDTH))
h=int(vid_cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
vid_writer=cv2.VideoWriter(save_path,cv2.VideoWriter_fourcc(*opt.fourcc),fps,(w,h))
vid_writer.write(im0)

ifsave_txtorsave_img:
print('Resultssavedto%s'%os.getcwd()+os.sep+out)
ifplatform=='darwin':#MacOS
os.system('open'+save_path)

print('Done.(%.3fs)'%(time.time()-t0))


if__name__=='__main__':
parser=argparse.ArgumentParser()
parser.add_argument('--weights',type=str,default='./weights/yolov5s.pt',help='model.ptpath')
parser.add_argument('--source',type=str,default='./inference/videos/',help='source')#file/folder,0forwebcam
parser.add_argument('--output',type=str,default='./inference/output',help='outputfolder')#outputfolder
parser.add_argument('--img-size',type=int,default=640,help='inferencesize(pixels)')
parser.add_argument('--conf-thres',type=float,default=0.4,help='objectconfidencethreshold')
parser.add_argument('--iou-thres',type=float,default=0.5,help='IOUthresholdforNMS')
parser.add_argument('--fourcc',type=str,default='mp4v',help='outputvideocodec(verifyffmpegsupport)')
parser.add_argument('--device',default='0',help='cudadevice,i.e.0or0,1,2,3orcpu')
parser.add_argument('--view-img',action='store_true',help='displayresults')
parser.add_argument('--save-txt',action='store_true',help='saveresultsto*.txt')
parser.add_argument('--classes',nargs='+',type=int,help='filterbyclass')
parser.add_argument('--agnostic-nms',action='store_true',help='class-agnosticNMS')
parser.add_argument('--augment',action='store_true',help='augmentedinference')
opt=parser.parse_args()
opt.img_size=check_img_size(opt.img_size)
print(opt)

withtorch.no_grad():
detect()

審核編輯:郭婷

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

    關(guān)注

    28

    文章

    4740

    瀏覽量

    128948
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4788

    瀏覽量

    68612
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1208

    瀏覽量

    24701

原文標(biāo)題:項(xiàng)目實(shí)踐 | 基于YOLO-V5實(shí)現(xiàn)行人社交距離風(fēng)險提示

文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    助力AIoT應(yīng)用:在米爾FPGA開發(fā)板上實(shí)現(xiàn)Tiny YOLO V4

    開發(fā)板,通過底板和豐富接口的載板設(shè)計,非常適合高效的嵌入式低功耗數(shù)據(jù)處理。 Yolo V4 網(wǎng)絡(luò)結(jié)構(gòu)圖 Tiny Yolo V4
    發(fā)表于 12-06 17:18

    求助。我國市級電話網(wǎng)絡(luò)結(jié)構(gòu)

    我國的市級的電話網(wǎng)絡(luò)結(jié)構(gòu)是一樣的么他的結(jié)構(gòu)圖是怎么樣的
    發(fā)表于 11-09 19:43

    linux不同網(wǎng)絡(luò)結(jié)構(gòu)的不同IP設(shè)法

    Linux的裝系統(tǒng)設(shè)IP,這應(yīng)該是系統(tǒng)管理員的基本功,可是不同的網(wǎng)絡(luò)結(jié)構(gòu)有不同的IP設(shè)法,您知道嗎?
    發(fā)表于 07-05 06:52

    神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索有什么優(yōu)勢?

    ,稍有不同就無法復(fù)現(xiàn)論文的結(jié)果。而網(wǎng)絡(luò)結(jié)構(gòu)作為一種特殊的超參數(shù),在深度學(xué)習(xí)整個環(huán)節(jié)中扮演著舉足輕重的角色。在圖像分類任務(wù)上大放異彩的ResNet、在機(jī)器翻譯任務(wù)上稱霸的Transformer等網(wǎng)絡(luò)結(jié)構(gòu)
    發(fā)表于 09-11 11:52

    手繪網(wǎng)絡(luò)結(jié)構(gòu)

    手繪一些網(wǎng)絡(luò)結(jié)構(gòu)圖,很初級
    發(fā)表于 10-25 14:06

    網(wǎng)絡(luò)結(jié)構(gòu)與IP分組交換技術(shù)

    《計算機(jī)體系結(jié)構(gòu)網(wǎng)絡(luò)篇1、2》之 網(wǎng)絡(luò)結(jié)構(gòu)、IP分組交換技術(shù)、IP/MAC映射、NAT轉(zhuǎn)換等...
    發(fā)表于 12-23 06:05

    TD-SCDMA網(wǎng)絡(luò)結(jié)構(gòu)

    TD-SCDMA 系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)完全遵循3GPP 指定的UMTS 網(wǎng)絡(luò)結(jié)構(gòu),可以分為接入網(wǎng)(UTRAN)和核心網(wǎng)(CN)。本章首先介紹UMTS 的物理網(wǎng)絡(luò)結(jié)構(gòu)模型,根據(jù)TD-SCDMA 系統(tǒng)的接入網(wǎng)和核心網(wǎng)組成闡述
    發(fā)表于 06-19 14:10 ?217次下載

    DeviceNet 網(wǎng)絡(luò)結(jié)構(gòu)

    DeviceNet 網(wǎng)絡(luò)結(jié)構(gòu) 基于現(xiàn)場總線的開放的自動化系統(tǒng)底層結(jié)構(gòu)近年來發(fā)展起來的現(xiàn)場總線技術(shù)以其靈活的控制方式信息共享和低成本等特點(diǎn)被廣泛的用于復(fù)的
    發(fā)表于 03-22 15:46 ?30次下載

    環(huán)形網(wǎng)絡(luò),環(huán)形網(wǎng)絡(luò)結(jié)構(gòu)是什么?

    環(huán)形網(wǎng)絡(luò),環(huán)形網(wǎng)絡(luò)結(jié)構(gòu)是什么? 這種結(jié)構(gòu)網(wǎng)絡(luò)形式主要應(yīng)用于令牌網(wǎng)中,在這種網(wǎng)絡(luò)結(jié)構(gòu)中各設(shè)備是直接通過電纜來串接的,最后形成一個閉環(huán),
    發(fā)表于 03-22 11:14 ?6191次閱讀

    網(wǎng)絡(luò)結(jié)構(gòu)中鏈接壽命的研究

    的特性,特別是基于網(wǎng)絡(luò)拓?fù)?b class='flag-5'>結(jié)構(gòu)的研究,以期改善當(dāng)前的網(wǎng)絡(luò)應(yīng)用并創(chuàng)造新的受歡迎的社交網(wǎng)絡(luò)應(yīng)用。然而,大多數(shù)的現(xiàn)有研究方法只是研究隨著時間積累的
    發(fā)表于 11-24 09:50 ?3次下載
    <b class='flag-5'>網(wǎng)絡(luò)結(jié)構(gòu)</b>中鏈接壽命的研究

    概率模型的大規(guī)模網(wǎng)絡(luò)結(jié)構(gòu)發(fā)現(xiàn)方法

    隨著萬維網(wǎng)和在線社交網(wǎng)站的發(fā)展,規(guī)模大、結(jié)構(gòu)復(fù)雜、動態(tài)性強(qiáng)的大規(guī)模網(wǎng)絡(luò)應(yīng)用而生.發(fā)現(xiàn)這些網(wǎng)絡(luò)的潛在結(jié)構(gòu),是分析和理解
    發(fā)表于 02-12 10:48 ?1次下載

    使用Python和OpenCV實(shí)現(xiàn)行人檢測的資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用Python和OpenCV實(shí)現(xiàn)行人檢測的資料合集免費(fèi)下載。
    發(fā)表于 06-01 17:42 ?23次下載
    使用Python和OpenCV<b class='flag-5'>實(shí)現(xiàn)行人</b>檢測的資料合集免費(fèi)下載

    交換機(jī)的三層網(wǎng)絡(luò)結(jié)構(gòu)介紹

    對于一大型監(jiān)控項(xiàng)目,其重點(diǎn)就是交換機(jī)的選擇了,這里我們選用三層網(wǎng)絡(luò)結(jié)構(gòu)網(wǎng)絡(luò)結(jié)構(gòu)為接入層‐匯聚層‐核心層。相對兩層網(wǎng)絡(luò)架構(gòu),三層架構(gòu)網(wǎng)絡(luò)組網(wǎng)規(guī)模更大,傳輸
    的頭像 發(fā)表于 01-09 10:29 ?1.2w次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

    Learning)的應(yīng)用,通過運(yùn)用多層卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),可以自動地進(jìn)行特征提取和學(xué)習(xí),進(jìn)而實(shí)現(xiàn)圖像分類、物體識別、目標(biāo)檢測、語音識別和自然語言翻譯等任務(wù)。 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包括:輸
    的頭像 發(fā)表于 08-17 16:30 ?1233次閱讀

    如何優(yōu)化PLC的網(wǎng)絡(luò)結(jié)構(gòu)

    優(yōu)化PLC的網(wǎng)絡(luò)結(jié)構(gòu)可以提高通信的效率和穩(wěn)定性。以下是一些優(yōu)化PLC網(wǎng)絡(luò)結(jié)構(gòu)的方法: (1)設(shè)計合理的拓?fù)?b class='flag-5'>結(jié)構(gòu):根據(jù)應(yīng)用需求和設(shè)備分布情況,設(shè)計合理的網(wǎng)絡(luò)拓?fù)?/div>
    的頭像 發(fā)表于 12-23 08:15 ?699次閱讀
    如何優(yōu)化PLC的<b class='flag-5'>網(wǎng)絡(luò)結(jié)構(gòu)</b>?
    主站蜘蛛池模板: 奇米奇米| 又粗又爽又色男女乱淫播放男女 | 国产一级特黄aa大片爽爽 | 开心激情播播网 | 日韩精品视频免费在线观看 | 亚洲第一区第二区 | 最刺激黄a大片免费观看下截 | 亚洲丁香婷婷 | 亚洲成网777777国产精品 | 三级黄色免费 | 色先峰 | 午夜免费视频网站 | 一道精品视频一区二区三区男同 | 天天干b| 亚洲日本欧美日韩高观看 | 久久羞羞视频 | 免费观看在线观看 | 色老头久久网 | 十三以下岁女子毛片免费播放 | 国产女人18毛片水真多18精品 | 天堂网www中文天堂在线 | 4444狠狠| 日韩美a一级毛片 | 韩国理论三级在线观看视频 | 黄频免费 | 宅男666在线永久免费观看 | 国产在线观看色 | 亚洲成人免费看 | 日本一区二区三区欧美在线观看 | 很黄很黄叫声床戏免费视频 | 男人扒开美女尿口无遮挡图片 | 忘忧草爱网 | 色多多影视 | www.xxx国产| 亚洲欧美日韩特级毛片 | 手机看片日韩国产 | 美女性色 | 国产成人啪精品午夜在线观看 | 免费看a| 成人手机看片 | 97爱爱|