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

電子發(fā)燒友App

硬聲App

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

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

3天內不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>TinySewer低功率下水道故障檢測系統(tǒng)

TinySewer低功率下水道故障檢測系統(tǒng)

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

資料介紹

描述

介紹

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

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

小下水道

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

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

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

檢測特征
?

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

重播功能
?

可擴展性

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

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

低功耗能力

pYYBAGNkrSqAItfOAAFDasI6WfU183.jpg
Arduino Portenta
?

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

低功耗功能演示
?

此外,TinySewer 允許其操作員在檢查待機或完成時關閉攝像頭。這將總共節(jié)省大約 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 使用深度學習神經網(wǎng)絡架構來分類和識別各種下水道故障類型。目前,TinySewer 可以以至少 85% 的置信度檢測四種最常見的下水道故障類型(裂縫、根部侵入、阻塞、位移)

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

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

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

pYYBAGNkrZCASKZYAADiQy-_trQ739.png
創(chuàng)造沖動
?

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

pYYBAGNkrZKAUOxhAAC0R8mabLk124.png
生成特征
?

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

poYBAGNkrZaASKqWAAFU79CK6kA623.png
遷移學習
?

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

pYYBAGNkrZqAcn4yAADN-X1qozo935.png
準確性
?

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

poYBAGNkrZyANBvSAABtZvvrpcw013.png
部署
?

固件

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

首先是設置wifi,這可以通過使用WLAN方法簡單地完成。然后創(chuàng)建一個套接字端口,以便客戶端可以與同一網(wǎng)絡上的 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()

接下來我們定義流式傳輸函數(shù),該流式傳輸函數(shù)使用 MJPEG 協(xié)議將來自 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 發(fā)送到客戶端應用程序

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 之間的整數(shù),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循環(huán),稱為視頻流函數(shù)。

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

完整的實現(xiàn)在 Github 上名為 sewer.py 的文件中

軟件

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

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

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

pYYBAGNkraOAWDH9AAG_qNrp5VM152.png
分析頁面
?

小下水道在行動

?

?


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

評論

查看更多

下載排行

本周

  1. 1DC電源插座圖紙
  2. 0.67 MB   |  1次下載  |  免費
  3. 2AN84-線性技術雜志電路集,第一卷第四集
  4. 2.28MB   |  次下載  |  免費
  5. 3AN43-橋式電路
  6. 3.64MB   |  次下載  |  免費
  7. 4AN69-LT1575超快線性控制器提供快速瞬態(tài)響應電源
  8. 218.44KB   |  次下載  |  免費
  9. 5AN98-2004年秋季的信號源、調理器和電源電路
  10. 864.98KB   |  次下載  |  免費
  11. 6高頻7代電源說明書
  12. 1.04 MB   |  次下載  |  免費
  13. 7AN-616:AD9430評估板對XTAL振蕩器時鐘的修改
  14. 162.24KB   |  次下載  |  免費
  15. 8AN-237: 放大器直接數(shù)字頻率合成的DAC選型器應用漫談
  16. 461.58KB   |  次下載  |  免費

本月

  1. 1ADI高性能電源管理解決方案
  2. 2.43 MB   |  450次下載  |  免費
  3. 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
  4. 5.67 MB   |  137次下載  |  1 積分
  5. 3基于STM32單片機智能手環(huán)心率計步器體溫顯示設計
  6. 0.10 MB   |  128次下載  |  免費
  7. 4使用單片機實現(xiàn)七人表決器的程序和仿真資料免費下載
  8. 2.96 MB   |  44次下載  |  免費
  9. 53314A函數(shù)發(fā)生器維修手冊
  10. 16.30 MB   |  31次下載  |  免費
  11. 6美的電磁爐維修手冊大全
  12. 1.56 MB   |  22次下載  |  5 積分
  13. 7如何正確測試電源的紋波
  14. 0.36 MB   |  15次下載  |  免費
  15. 8感應筆電路圖
  16. 0.06 MB   |  10次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935121次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233088次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73810次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分
主站蜘蛛池模板: 欧美色p| 日本a级影院| 交在线观看网站视频| 中文字幕视频二区| 亚洲一级免费视频| 久久9热| 曰本女人一级毛片看一级毛| 一区二区三区四区免费视频| 婷婷综合七月激情啪啪| 色www 永久免费网站| 毛片新网址| 高清国产下药迷倒美女| 一区二区精品| 日韩成人影院| 中文字幕在线观看亚洲| 色伊人久久| 流不尽奶水的大乳h| 国产盗摄女厕美女嘘嘘| 亚洲欧美高清| 全免费a级毛片免费看不卡| 久久精品人| www四虎在线高清| 手机看片免费福利| 性欧美高清极品xx| 看a网站| 四虎免费影院4hu永久免费| 免费黄色网址网站| 成人涩涩网站| 国产经典三级| 天天视频天天爽| 亚洲性影院| 国产精品香蕉在线一区| 色香蕉在线视频| 国产午夜人做人视频羞羞| 窝窝午夜看片免费视频| www.九色视频| 成人亚洲欧美综合| 人人干人人澡| 2022欧美高清中文字幕在线看| 精品国产午夜久久久久九九| 日本一区二区三区视频在线|