
智慧飛行-大疆無人機M4系列機載算法【小吃車違規占道經營識別】1、支持M4系列、M4D系列、M400型號2、提供設備SN碼即可遠程下發部署提供部署支持3、識別提供1類告警標簽小吃車大疆M4/M4D/M400 無人機小吃車占道識別系統業務場景航拍識別道路小吃車違規占道經營機載AI告警輸出單類別snack_cart小吃車數據集yaml配置 snack_cart.yamlnc:1names:0:snack_carttrain:./datasets/snack_cart/images/trainval:./datasets/snack_cart/images/valtest:./datasets/snack_cart/images/testYOLOv11n訓練代碼 train_snack.pyfromultralyticsimportYOLOif__name____main__:modelYOLO(yolo11n.pt)resultsmodel.train(datasnack_cart.yaml,epochs65,imgsz640,batch8,device0,workers2,conf0.25,iou0.45,projectuav_snack_cart,namem4_air_exp)#驗證評估metricsmodel.val()print(fmAP50?95:{metrics.box.map})#本地圖片推理model.predict(source./test_images,saveTrue,conf0.35)機載業務邏輯簡易Python模擬代碼模擬大疆機載SDK業務流程功能讀取無人機回傳圖像檢測小吃車觸發告警輸出目標坐標、數量適配M4/M4D/M400業務下發fromultralyticsimportYOLOimporttimeclassUavSnackCartDetect:def__init__(self,weight_path./weights/best.pt,conf_thresh0.35):self.modelYOLO(weight_path)self.conf_threshconf_threshdefdetect_frame(self,frame):輸入無人機實時幀返回檢測結果、告警標志outputsself.model.predict(frame,confself.conf_thresh,saveFalse,verboseFalse)[0]detect_list[]alert_flagFalseforboxinoutputs.boxes:cls_idint(box.cls)cls_nameoutputs.names[cls_id]conffloat(box.conf)x1,y1,x2,y2map(int,box.xyxy[0])detect_list.append({class:cls_name,confidence:conf,bbox:[x1,y1,x2,y2]})alert_flagTrue#識別到小吃車觸發占道告警result{alert:alert_flag,target_count:len(detect_list),targets:detect_list,timestamp:time.time()}returnresultif__name____main__:detect_engineUavSnackCartDetect()#傳入無人機回傳圖片importcv2 imgcv2.imread(uav_sample.jpg)resdetect_engine.detect_frame(img)print(檢測輸出結果,res)ifres[alert]:print(f【告警】檢測到小吃車占道數量{res[target_count]})PyQt5地面站簡易演示代碼模擬地面接收無人機告警importsysimportcv2fromPyQt5.QtWidgetsimport*fromPyQt5.QtGuiimport*fromPyQt5.QtCoreimport*classGroundStation(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle(無人機小吃車占道識別地面演示端)self.resize(1000,700)self.detectUavSnackCartDetect()self.img_labelQLabel()self.img_label.setFixedSize(700,520)self.alert_textQTextEdit()self.alert_text.setReadOnly(True)self.btn_openQPushButton(加載無人機航拍圖像)self.btn_open.clicked.connect(self.load_uav_img)v_layoutQVBoxLayout()v_layout.addWidget(self.img_label)v_layout.addWidget(self.btn_open)v_layout.addWidget(QLabel(告警日志))v_layout.addWidget(self.alert_text)central_widgetQWidget()central_widget.setLayout(v_layout)self.setCentralWidget(central_widget)defload_uav_img(self):file,_QFileDialog.getOpenFileName(self,選擇航拍圖片,,*.jpg *.png)ifnotfile:returnimgcv2.imread(file)rgb_imgcv2.cvtColor(img,cv2.COLOR_BGR2RGB)detect_resself.detect.detect_frame(img)forobjindetect_res[targets]:x1,y1,x2,y2obj[bbox]cv2.rectangle(rgb_img,(x1,y1),(x2,y2),(255,120,0),2)cv2.putText(rgb_img,f{obj[class]}{obj[confidence]:.2f},(x1,y1-8),cv2.FONT_HERSHEY_SIMPLEX,0.6,(255,120,0),1)logf[{QDateTime.currentDateTime().toString(hh:mm:ss)}] 告警狀態:{detect_res[alert]}目標數:{detect_res[target_count]}\nself.alert_text.append(log)q_imgQImage(rgb_img.data,rgb_img.shape[1],rgb_img.shape[0],QImage.Format_RGB888)self.img_label.setPixmap(QPixmap.fromImage(q_img).scaled(self.img_label.size(),Qt.KeepAspectRatio))if__name____main__:appQApplication(sys.argv)winGroundStation()win.show()sys.exit(app.exec_())環境依賴pipinstallultralytics opencv-python pyqt5說明模型訓練完成后可針對大疆M4/M4D/M400做模型轉換rknn/onnx用于機載部署提供設備SN碼遠程下發部署告警輸出識別到snack_cart小吃車即輸出占道告警返回目標數量、圖像坐標、時間戳適配場景城市道路無人機巡檢識別流動小吃車違規占道經營。關鍵詞大疆M400M4M4D無人機機載AI小吃車識別占道經營檢測城市巡檢低空治理YOLO機載部署備選標題大疆M4系列無人機機載小吃車占道經營目標識別算法城市低空治理?無人機航拍小吃車違規占道檢測數據集與算法適配M400機載端小吃車流動攤販識別檢測系統