女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>TinySewer低功率下水道故障檢測系統

TinySewer低功率下水道故障檢測系統

2022-11-07 | zip | 0.02 MB | 次下載 | 免費

資料介紹

描述

介紹

在美國,全國約有 200 萬公里的污水管道,為 2.4 億美國公民提供服務。據報道,美國每年至少有 23,000–75,000 起下水道管道故障,這會向環境排放多達 3–100 億加侖的未經處理的污水。這會導致巨大的經濟損失、水污染,并威脅到公共健康。

這些下水道管道需要每年維護,以保持正常運行并避免下水道溢出。在大多數情況下,下水道檢查由專家檢查員在現場進行,他們通常使用帶有攝像頭的遙控機器人手動檢查下水道的內部結構。這個過程非常耗時,而且由于工作的困難和令人厭煩的性質,時間常常會導致對下水道管道的檢查有缺陷。

小下水道

TinySewer 是一個獨立的攝像頭模塊,可使用 tinyML 識別下水道缺陷。該模塊旨在安裝在現有的機器人下水道檢查平臺上,為平臺提供機器視覺功能,以在檢查過程中識別下水道故障。

pYYBAGNkrSWAKMGAAAASg31lpMk339.png
安裝在機器人汽車上的 TinySewer
?

該模塊允許自主下水道檢查并減少檢查員的工作量。檢查員可以簡單地緩慢駕駛汽車并觀察屏幕上的 TinySewer 應用程序是否有任何檢測,或者他們可以停下來手動檢查。此外,TinySewer 將準確判斷存在哪種類型的故障,因此無需專業的下水道檢查員、普通檢查員甚至入門級檢查員就足夠了。

檢測特征
?

為了進一步支持自主檢測,TinySewer 客戶端應用程序在視頻時間線上記錄所有帶有檢測標簽的鏡頭,以便檢查員查看鏡頭并輕松選擇故障發生的時間點。這允許檢查員在進行下水道檢查的同時處理其他任務。

重播功能
?

可擴展性

在可擴展性方面,TinySewer 非常便宜,因為它每臺僅需 150 美元左右,并且可以輕松集成到現有的機器人系統或下水道檢查工具中。此外,TinySewer 強大的故障檢測系統允許創建一個更大的系統,其中自主下水道檢查機器人定期進行下水道檢查并將帶有缺陷報告的鏡頭發送到單個主機計算機可以對各種下水道故障報告進行分類并指定人員修復有缺陷的下水道.

pYYBAGNkrSeAGauwAABbu3Z4q0k200.png
以 TinySewer 作為機器視覺系統的自主下水道檢測系統
?

低功耗能力

pYYBAGNkrSqAItfOAAFDasI6WfU183.jpg
Arduino Portenta
?

TinySewer 使用 Arduino Portenta H7 作為其主要計算單元。Arduino Portenta H7 采用雙核低功耗 Cortex M7 處理器,有助于降低功耗。

低功耗功能演示
?

此外,TinySewer 允許其操作員在檢查待機或完成時關閉攝像頭。這將總共節省大約 40mA。最后,操作員可以選擇關閉 Tiny Sewer,這將使設備進入深度睡眠模式,直到有外部中斷將其喚醒。

原理圖

poYBAGNkrS2AGmteAAA6Cl-fkT4732.png
小下水道示意圖
?

TinySewer 模塊包含一個帶有外圍設備的 Arduino Portenta 微控制器,包括一個通過高密度連接器連接的 Vision Shied,用于相機饋送。還有兩個直接連接到 Arduino Portenta PH15 引腳并由 PWM 控制的白色 LED一切都由 5V、2.4 安培便攜式電池供電

套管

TinySewer外殼使用 PLA 燈絲制成,可以使用本文提供的文件從 3D 打印機輕松打印。外殼包括頂部、底部和蓋子。

poYBAGNkrTGAXCC9AACg2ZIf0AM840.jpg
?

該裝置如下組裝,Arduino Portenta H7 先進入,然后將兩個 LED 放在頂部 2 個中間孔上,并將它們連接到 Arduino Portenta H7 的電線上。然后將頂部放在底部,然后在 4 個角上放 4 個 m3 螺釘。最后,將蓋子蓋在裸露的插銷部分上,以防止水和灰塵進入設備內部。

?
?
?
poYBAGNkrYeAIIjBAA68oqgQBBk510.jpg
?
1 / 3
?
pYYBAGNkrYuAPMdpAABtwm5APJw342.png
集會
?

該模型

TinySewer 使用深度學習神經網絡架構來分類和識別各種下水道故障類型。目前,TinySewer 可以以至少 85% 的置信度檢測四種最常見的下水道故障類型(裂縫、根部侵入、阻塞、位移)

poYBAGNkrY2AQJ_kAAA38We-0oQ597.png
TinySewer 可以檢測到的下水道故障類型。(a) 阻塞,(b) 根部侵入,(c) 位移,(d) 裂縫
?

該模型是使用Edge Impulse機器學習平臺創建的。首先,我從ScienceData獲取圖像數據集附帶一個 CSV,其中包含圖像名稱及其故障類型。我只是創建了一個簡單的 python 腳本來讀取這個 CSV 并將圖像分類到其各自的故障文件夾中。然后將這些圖像上傳到 Edge Impluse 進行訓練。總的來說,我們的模型有 5 個不同的類別:正常、裂縫-斷裂-塌陷、障礙物、根部和位移。

接下來,我將創建一個沖動頁面來設置工作流程。選擇 96x96 作為圖像寬 x 高,處理塊作為圖像,遷移學習圖像,然后單擊“生成參數”。

pYYBAGNkrZCASKZYAADiQy-_trQ739.png
創造沖動
?

接下來,轉到圖像選項卡以生成特征參數。請記住為顏色深度選擇灰度,因為 Arduino Portenta Vision Shield 是單色相機。

pYYBAGNkrZKAUOxhAAC0R8mabLk124.png
生成特征
?

最后,選擇遷移學習選項卡來訓練您的模型。對于 TinySewer,我使用 MobileNetV2,學習率為 0.35,最后一層有 40 個神經元。

poYBAGNkrZaASKqWAAFU79CK6kA623.png
遷移學習
?

該模型使用 50 個 epoch 進行訓練,數據增強開啟。該模型整體準確率在94%左右。

pYYBAGNkrZqAcn4yAADN-X1qozo935.png
準確性
?

最后,為 Arduino Portenta 生成模型文件和標簽文件。我轉到部署選項卡并選擇 OpenMV 并單擊構建。這將生成一個 zip 文件,其中包括label.txt (標簽文件)、train.tflite (模型文件)和 ei_image_classification.py(python 分類腳本)。將label.txttrain.tflite復制并粘貼到 Arduino Portenta 內部存儲中。該腳本需要修改以提供 WLAN、視頻和數據傳輸功能。這些修改將在固件部分討論

poYBAGNkrZyANBvSAABtZvvrpcw013.png
部署
?

固件

固件是使用 MicroPython 制作的,它只是 python3 的一個實現,帶有一個標準 Python 庫的子集,經過優化可以在微控制器上運行。

首先是設置wifi,這可以通過使用WLAN方法簡單地完成。然后創建一個套接字端口,以便客戶端可以與同一網絡上的 TinySewer 通信

# Create server socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)

# Bind and listen
print(PORT)
s.bind([HOST, PORT])
s.listen(5)

# Set server socket to blocking
s.setblocking(True)

# Create server socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)

# Bind and listen
print(PORT)
s.bind([HOST, PORT])
s.listen(5)

接下來,程序初始化camera對象、MQTT對象,并設置變量load為model和label

# Init Camera
sensor.reset()
sensor.set_framesize(sensor.QVGA)
sensor.set_pixformat(sensor.GRAYSCALE)


# Load in Model and labels
net = "trained.tflite"
labels = [line.rstrip('\n') for line in open("labels.txt")]

#Setup MQTT
payload = MQTTClient("openmv", "test.mosquitto.org", port=1883)
payload.connect()

接下來我們定義流式傳輸函數,該流式傳輸函數使用 MJPEG 協議將來自 TinySewer 攝像頭的視頻流傳輸回客戶端應用程序,

def start_streaming(s):
    print ('Waiting for connections..')
    client, addr = s.accept()
    # set client socket timeout to 5s
    client.settimeout(5.0)
    print ('Connected to ' + addr[0] + ':' + str(addr[1]))
    # Read request from client
    data = client.recv(1024)
    # Should parse client request here
    # Send multipart header
    client.sendall("HTTP/1.1 200 OK\r\n" \
                "Server: OpenMV\r\n" \
                "Content-Type: multipart/x-mixed-replace;boundary=openmv\r\n" \
                "Cache-Control: no-cache\r\n" \
                "Pragma: no-cache\r\n\r\n")
    # FPS clock
    clock = time.clock()
    # Start streaming images

    while (True):
        clock.tick() # Track elapsed milliseconds between snapshots().
        frame = sensor.snapshot()
        cframe = frame.compressed(quality=35)
        predict = prediction(frame)
        #print(predict)
        header = "\r\n--openmv\r\n" \
                 "Content-Type: image/jpeg\r\n"\
                 "Content-Length:"+str(cframe.size())+"\r\n\r\n"
        client.sendall(header)
        client.sendall(cframe)
        #client.sendall(bytes('POST /%s HTTP/1.0\r\nHost: 127.0.0.1:9990\r\n\r\n' % (predict), 'utf8'))
        payload.publish("openmv/test", str(predict))
        payload.check_msg() # poll for messages.
        print(clock.fps())

接下來,我定義了一種預測方法,它只查看當前幀并使用 tinyML 模型計算每個標簽的置信度。標簽和各自的置信度被連接成一個字符串,然后通過 MQTT 發送到客戶端應用程序

def prediction(img):
    prediction = ""
    #print("predict call")
    for obj in tf.classify(net, img, min_scale=1.0, scale_mul=0.8, x_overlap=0.5, y_overlap=0.5):
        #print("**********\nPredictions at [x=%d,y=%d,w=%d,h=%d]" % obj.rect())
        #frame.draw_rectangle(obj.rect())
        # This combines the labels and confidence values into a list of tuples
        predictions_list = list(zip(labels, obj.output()))
        #prediction = predictions_list[0][1] #defect confidence
        for i in range(len(predictions_list)):
            #print("%s = %f" % (predictions_list[i][0], predictions_list[i][1]))
            label = str(predictions_list[i][0])
            confident = str(predictions_list[i][1])
            prediction += label + ":" + confident + ","
            #name = (predictions_list[i][0])
            #if label != "normal" :
                #prediction = predictions_list[i][1]
    return prediction

然后我有一個 lightcontrol() 方法來控制兩個 LED 的亮度。該方法采用 0 到 100 之間的整數,0 表示最亮,100 表示沒有光

def lightControl(percent):
    for k, pwm in pwms.items():
        tim = Timer(pwm.tim, freq=1000) # Frequency in Hz
        ch  = tim.channel(pwm.ch, Timer.PWM, pin=Pin(pwm.pin), pulse_width_percent=percent)

最后,還有一個設置初始光照值的主while循環,稱為視頻流函數。

while (True):
    try:
        lightControl(50)
        start_streaming(s)
        print("main call")
    except OSError as e:
        print("socket error: ", e)
        #sys.print_exception(e)

完整的實現在 Github 上名為 sewer.py 的文件中

軟件

該軟件是使用名為 Electron 的框架制作的。Electron 允許使用Node.js等 Web 技術開發桌面 GUI 應用程序TinySewer 客戶端分為兩個選項卡。第一個選項卡包含來自 TinySewer 的視頻流、用于錄制視頻的按鈕、用于燈光控制的按鈕以及當前下水道故障及其置信度的顯示框。

pYYBAGNkraCAMSBCAAFIqv-2Slc710.png
視頻流頁面
?

第二個選項卡用于視頻分析。Stream 會自動保存為 .mp4 視頻文件,可以回放以供進一步分析。此外,還有一個視頻時間線,其中包含檢測到下水道故障時的持續時間亮點

pYYBAGNkraOAWDH9AAG_qNrp5VM152.png
分析頁面
?

小下水道在行動

?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費