版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
目錄附錄附錄A:盲區(qū)檢測模塊核心代碼defbounding_box(outs,area):boxes=[]foroutinouts:class_id=out['category_id']category=out['category']confidence=out['score']x=int(out['bbox'][0])y=int(out['bbox'][1])w=int(out['bbox'][2])h=int(out['bbox'][3])#print(w,h,w*h,area)score=out['score']area1=w*hscale=area1/areaifconfidence>=0.4:ifclass_id==0:#personjudge=1ifscale>=0.002else0boxes.append([x,y,w,h,judge,score,category])elifclass_id==1:#print(class_id,scale,category)judge=1ifscale>=0.005else0boxes.append([x,y,w,h,judge,score,category])elifclass_id==2:#carjudge=2ifscale>=0.04else0boxes.append([x,y,w,h,judge,score,category])elifclass_id==5:#busjudge=2ifscale>=0.06else0boxes.append([x,y,w,h,judge,score,category])elifclass_id==7:#truckjudge=2ifscale>=0.06else0boxes.append([x,y,w,h,judge,score,category])elifclass_id==9:judge=3#trafficlightboxes.append([x,y,w,h,judge,score,category])elifclass_id==11:judge=3#stopsignboxes.append([x,y,w,h,judge,score,category])returnboxesdefoperator(frame):result=model.predict(frame)area=frame.shape[0]*frame.shape[1]boxes=bounding_box(result,area)num=[0,0,0,0]font=cv2.FONT_HERSHEY_SIMPLEXfor(i,(x,y,w,h,judge,ss,cls))inenumerate(boxes):#ifiinindexes:ifjudge==0:color=(0,255,0)elifjudge==1:num[0]+=1color=(0,0,255)elifjudge==2:num[1]+=1color=(0,0,255)elifjudge==3:num[2]+=1color=(0,255,0)cv2.rectangle(frame,(x,y-10),(x+90,y),color,-1)cv2.rectangle(frame,(x,y),(x+w,y+h),color,2)cv2.putText(frame,'{:s}{:.3f}'.format(cls,ss),(x,y),font,0.5,(255,255,255),thickness=2)returnframe,num附錄B:預(yù)碰撞檢測模塊核心代碼defbounding_box(outs,area):boxes=[]foroutinouts:class_id=out['category_id']category=out['category']confidence=out['score']x=int(out['bbox'][0])y=int(out['bbox'][1])w=int(out['bbox'][2])h=int(out['bbox'][3])#print(w,h,w*h,area)score=out['score']area1=w*hscale=area1/areaifconfidence>=0.4:ifclass_id==0:#personjudge=1ifscale>=0.002else0boxes.append([x,y,w,h,judge,score,category])elifclass_id==1:#print(class_id,scale,category)judge=1ifscale>=0.005else0boxes.append([x,y,w,h,judge,score,category])elifclass_id==2:#carjudge=2ifscale>=0.04else0boxes.append([x,y,w,h,judge,score,category])elifclass_id==5:#busjudge=2ifscale>=0.06else0boxes.append([x,y,w,h,judge,score,category])elifclass_id==7:#truckjudge=2ifscale>=0.06else0boxes.append([x,y,w,h,judge,score,category])elifclass_id==9:judge=3#trafficlightboxes.append([x,y,w,h,judge,score,category])elifclass_id==11:judge=3#stopsignboxes.append([x,y,w,h,judge,score,category])returnboxesdefoperator(frame):result=model.predict(frame)area=frame.shape[0]*frame.shape[1]boxes=bounding_box(result,area)num=[0,0,0,0]font=cv2.FONT_HERSHEY_SIMPLEXfor(i,(x,y,w,h,judge,ss,cls))inenumerate(boxes):#ifiinindexes:ifjudge==0:color=(0,255,0)elifjudge==1:num[0]+=1color=(0,0,255)elifjudge==2:num[1]+=1color=(0,0,255)elifjudge==3:num[2]+=1color=(0,255,0)cv2.rectangle(frame,(x,y-10),(x+90,y),color,-1)cv2.rectangle(frame,(x,y),(x+w,y+h),color,2)cv2.putText(frame,'{:s}{:.3f}'.format(cls,ss),(x,y),font,0.5,(255,255,255),thickness=2)returnframe,numclassmyapp(QtWidgets.QMainWindow,Ui_MainWindow):def__init__(self,parent=None):super(myapp,self).__init__(parent)self.setupUi(self)#車外檢測self.cap=cv2.VideoCapture(r'C:\\Users\\19269\\Desktop\\sx\\1(1).mp4')#車內(nèi)檢測#self.cap=cv2.VideoCapture(0)self.timer_camera=QtCore.QTimer()#self.pushButton.clicked.connect(self.judge)self.label_30.connect_customized_slot(self.judge)self.timer_camera.timeout.connect(self.show_single)self.start_time=datetime.datetime.now()self.nowminute=0self.nowsecond=0defjudge(self):print(self.timer_camera.isActive())ifnotself.timer_camera.isActive():self.timer_camera.start(30)#self.pushButton.setVisible(False)self.label_29.setHidden(True)self.label_30.setHidden(True)self.label_12.setHidden(False)self.label_14.setHidden(False)self.label_16.setHidden(False)self.label_18.setHidden(False)self.label_20.setHidden(False)self.label_28.setHidden(False)self.label_2.setHidden(False)else:self.timer_camera.stop()self.label.clear()self.pushButton.setText('啟動(dòng)程序')附錄C:實(shí)時(shí)健康檢測模塊核心代碼classDriver_Status():def__init__(self,frame):#cv2.imshow('img',images)#cv2.waitKey(0)self.frame=frame[np.newaxis,:]self.modulehub.Module(directory=r"C:\Users\conda\Desktop\DriverStatusRecognition")self.dicts={'ch0':'nomal','ch1':'texting-right','ch2':'talkingonthephone-right','ch3':'texting-left','ch4':'talkingonthephone-left','ch5':'operatingtheradio','ch6':'drinking','ch7':'reachingbehind','ch8':'hairandmakeup','ch9':'talkingtopassenger'}defprocess(self):results=self.module.predict(images=self.frame)returnself.dicts[results[0][0]['category']]附錄D:定位導(dǎo)航模塊核心代碼Map=folium.Map(location=[34.2634,109.0432],zoom_start=16,control_scale=True,tiles='/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}',attr='default')Map.add_child(folium.LatLngPopup())#顯示鼠標(biāo)點(diǎn)擊點(diǎn)經(jīng)緯度Map.add_child(folium.ClickForMarker(popup='Waypoint'))#將鼠標(biāo)點(diǎn)擊點(diǎn)添加到地圖上#標(biāo)記一個(gè)實(shí)心圓folium.CircleMarker(location=[34.2634,109.0432],radius=1,popup='popup',color='#DC143C',#圈的顏色fill=True,fill_color='#6495E'#填充顏色).add_to(Map)Map.save("save_map.html")classmap_MainWindow(QtWidgets.QMainWindow):def__init__(self,parent=None):super(map_MainWindow,self).__init__(parent)self.setWindowTitle('地圖顯示')self.resize(1000,640)#新建一個(gè)QWebEngineView()對象self.qwebengine=QWebEngineView(self)#設(shè)置網(wǎng)頁在窗口中顯示的位置和大小self.qwebengine.setGeometry(20,20,960,600)#在QWebEngineView中加載網(wǎng)址path="file:\\"+os.getcwd()+"\\map.html"path=path.replace('\\','/')self.qwebengine.load(QUrl(path))附錄E:車道線偏離模塊核心代碼classUFLD:'''Ultra-Fast-Lane-DetectionInferenceClassconfig:Theconfigofthemodel,including'model_path','row_anchor','griding_num'and'cls_num_per_lane'mean:Imagepreprocessmeanstd:Imagepreprocessstd'''def__init__(self,config,mean=[0.485,0.456,0.406],std=[0.229,0.224,0.225]):self.griding_num=config['griding_num']self.row_anchor=config['row_anchor']self.cls_num_per_lane=config['cls_num_per_lane']self.mean=meanself.std=stdcol_sample=np.linspace(0,800-1,config['griding_num'])self.col_sample_w=col_sample[1]-col_sample[0]self.idx=(paddle.arange(end=config['griding_num'])+1).reshape((-1,1,1))self.model=paddle.jit.load(path=config['model_path'],model_filename='__model__',params_filename='__params__')self.model.eval()defpreprocess(self,frame):'''preprocesstheframeintothemodelinputframe:Framereturn:Modelinput'''img=cv2.resize(frame,dsize=(800,288),interpolation=cv2.INTER_LINEAR)img=img/255.0img=(img-self.mean)/self.stdimg=img.transpose((2,0,1))img=img[np.newaxis,...]img=paddle.to_tensor(img,dtype='float32')returnimgdefpostprocess(self,frame,result):'''postprocesstheoutputintothevisualresultframe:Frameresult:Modeloutputreturn:visualresult'''result=result[0][:,::-1,:]prob=paddle.nn.functional.softmax(result[:-1,:,:],axis=0)loc=paddle.sum(prob*self.idx,axis=0).numpy()result=paddle.argmax(result,axis=0).numpy()loc[result==self.griding_num]=0foriinrange(loc.shape[1]):ifnp.sum(loc[:,i]!=0)>2:forkinrange(loc.shape[0]):ifloc[k,i]>0:x=int(loc[k,i]*self.col_sample_w*self.width/800)-1y=int(self.height*(self.row_anchor[self.cls_num_per_lane-1-k]/288))-1point=(x,y)cv2.circle(frame,point,5,(255,0,0),-1)returnframedefpredict(frame):Culane={'model_path':'pretrained_models/UFLD_Culane','row_anchor':[121,131,141,150,160,170,180,189,199,209,219,228,238,248,258,267,277,287],'griding_num':200,'cls_num_per_lane':18}ufld=UFLD(config=Culane)inputs=ufld.preprocess(frame)result=ufld.model(inputs)vis=ufld.postprocess(frame,result)returnviscap=cv2.VideoCapture(r'C:\\Users\\19269\\Desktop\\sx\\1(1).mp4')frame_width=int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))frame_height=int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))fps=cap.get(cv2.CAP_PROP_FPS)fourcc=cv2.VideoWriter_fourcc(*'MP4V')out=cv2.VideoWriter('result.mp4',fourcc,fps,(frame_width,frame_height))whileTrue:ret,frame=cap.read()ifret:frame=predict(frame)out.write(frame)ifcv2.waitKey(1)&0xFF==ord('q'):breakelse:breakcap.release()out.release()cv2.destroyAllWindows()附錄F:駕駛報(bào)表模塊核心代碼conn=sqlite3.connect('driving_data.db')now=datetime.now()month_start=datetime(now.year,now.month,1)month_end=datetime(now.year,now.month+1,1)c=conn.cursor()c.execute('SELECT*FROMdriving_dataWHEREtimestampBETWEEN?AND?',(month_start.timestamp(),month_end.timestamp()))records=c.fetchall()to
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年口腔診所依法執(zhí)業(yè)自查自糾報(bào)告
- 醫(yī)院設(shè)備管理標(biāo)準(zhǔn)制度與操作流程
- 2025年直播電商五年復(fù)盤報(bào)告
- 連鎖超市庫存管理與補(bǔ)貨策略方案
- 橋墩施工方案圖(3篇)
- 海底承包應(yīng)急預(yù)案(3篇)
- 施工方案編制評價(jià)(3篇)
- 應(yīng)急預(yù)案畢業(yè)答辯(3篇)
- 搶險(xiǎn)大隊(duì)?wèi)?yīng)急預(yù)案(3篇)
- 工程應(yīng)急預(yù)案規(guī)范(3篇)
- 《04S519小型排水構(gòu)筑物(含隔油池)圖集》
- 無人機(jī)禁飛區(qū)飛行解禁如何申請
- 房地產(chǎn)項(xiàng)目綠化景觀規(guī)劃與設(shè)計(jì)
- 體溫單模板完整版本
- 2024北京西城區(qū)高一上學(xué)期期末政治試題及答案
- 《材料力學(xué)》課后習(xí)題的答案及解析
- 自動(dòng)扶梯采購?fù)稑?biāo)方案(技術(shù)方案)
- 駐足思考瞬間整理思路并有力表達(dá)完整版
- 汽輪機(jī)本體知識講解
- 湖南省長沙市外國語學(xué)校 2021-2022學(xué)年高一數(shù)學(xué)文模擬試卷含解析
- 我國的宗教政策-(共38張)專題培訓(xùn)課件
評論
0/150
提交評論