深度學習:貓頭鷹「殭屍」探測器

2021-02-11 趣無盡

MAKERt3chflicks/ 譯:

這是一隻外形是貓頭鷹的「殭屍」探測器,它通過圖像處理技術實現人體識別和跟蹤。如果你手頭剛好有樹莓派4(Raspberry Pi) 的話就可以來練練手。新版的樹莓派擁有 4GB 內存,可以實現許多比較複雜的項目,其中就包括在深度學習模式下的圖像處理。材料清單

樹莓派4(Raspberry Pi)×1
夜視攝像頭×1
微型舵機×1
貓頭鷹模型×1
膠水×1
油漆×若干
螺絲×若干
USB 揚聲器×1
大型可攜式電源(5v)×1
3D印表機×1

處理貓頭鷹這裡主要處理貓頭鷹的頭部,以便安裝夜視攝像頭。如果你選用的是其他「殼」,可根據自己的實際情況來操作。
1、取下貓頭鷹的頭部並將連接處的圓柱體移除。

2、拆掉的圓柱體是由一個塑料體和軸承組成,使用螺絲刀將軸承拆除。
3、用螺絲將塑料圓柱體與彈簧連接起來並將舵機連接到圓柱體上。
4、取下連接貓頭鷹身體部分的螺絲。
5、在貓頭鷹身體部分的頂部開一個孔。孔的大小可以放入若干電線和攝像頭的線。

安裝電子設備部分安裝頭部設備
3D 列印攝像頭外殼後刷漆讓使其與貓頭鷹的顏色相匹配。

1、將攝像頭的頂部安裝到貓頭鷹頭部的裡面,再將攝像頭放入到外殼內並連接電線。
2、將舵機粘到彈簧的頂部。

3、將長線連接到舵機引腳(5V、接地、信號)。
4、將攝像頭電線和舵機電線穿過彈簧,然後再穿過貓頭鷹身體頂部的孔。

安裝身體部位設備
1、去掉底部的塞子,擴大孔的尺寸,以便樹莓派和揚聲器等硬體設備可以放入到貓頭鷹的體內。
2、將攝像頭的線從貓頭鷹頂部拉出來插入到樹莓派,同時也將舵機的線穿過插入樹莓派。
插線方式如下:
舵機 +5v => 樹莓派 +5V
舵機 Gnd => 樹莓派 Gnd
舵機 信號 => 樹莓派 Pin 12

3、將 USB 揚聲器、SD 卡、插入樹莓派。
4、使用可攜式電源為樹莓派供電。
5、通過底座上的孔將樹莓派、電源和揚聲器插入貓頭鷹。

配置樹莓派

所有的代碼都可以在 GitLab 下載到:
https://gitlab.com/t3chflicks/cctv-owl
1、使用 Balena Etcher 給樹莓派刷好系統。
參考:http://shumeipai.nxez.com/2019/04/17/write-pi-sd-card-image-using-etcher-on-windows-linux-mac.html

2、開啟樹莓派的 SSH 並配置好 WiFi。
參考:
http://shumeipai.nxez.com/2017/09/13/raspberry-pi-network-configuration-before-boot.html
3、將 SD 卡插入樹莓派,然後嘗試通過 SSH 訪問樹莓派。

設置頭部動作

下面的代碼示例用來了解使用舵機實現貓頭鷹頭部的移動:

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(12, GPIO.OUT)
p = GPIO.PWM(12, 50)
p.start(7.5)
print("starting")
try:
while True:
print("looping duty cycle")
p.ChangeDutyCycle(7.5) # turn towards 90 degree
time.sleep(1) # sleep 1 second
p.ChangeDutyCycle(2.5) # turn towards 0 degree
time.sleep(1) # sleep 1 second
p.ChangeDutyCycle(12.5) # turn towards 180 degree
time.sleep(1) # sleep 1 second
except KeyboardInterrupt:
p.stop()
GPIO.cleanup()


1、舵機與樹莓派的連接方式如下:
舵機 +5V => 樹莓派 +5V
舵機 Gnd => 樹莓派 Gnd
舵機 信號 => 樹莓派 Pin 12
2、首先設置 GPIO 引腳以便舵機的信號引腳上使用 PWM。
3、簡單地選擇信號引腳的佔空比,佔空比的設置是 7.5 為 90 度,2.5 為0度,12.5 為 180度。

配置聲音

下面的代碼示例實現貓頭鷹的叫聲,使用樹莓派播放音頻:

1、插入 USB 揚聲器,下載聲音。我選擇了驚悚的聲音(用來嚇唬人)。

2、通過運行以下命令來播放聲音:omxplayer -o alsa:hw:1,0 owl_sound.mp3
如果跑不起來,請使用 alsamixer 命令檢查樹莓派的輸出以及音量的大小。你可以在調音臺屏幕上更改音量並選擇媒體設備。要增加聲音的音量,請執行以下命令:

omxplayer -o alsa:hw:1,0 owl_sound.mp3 --vol 500

使用 Python 播放聲音,然後測試腳本。

import subprocess
command = "omxplayer -o alsa:hw:1,0 ../../assets/owl_sound.mp3 --vol 500"
player = subprocess.Popen(command.split(' '),
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)


聲音文件請在項目文件庫中下載:
https://make.quwj.com/project/181

樹莓派上視頻流的實現



1、創建樹莓派攝像頭視頻流的代碼教程可參考:
https://gitlab.com/t3chflicks/cctv-owl/tree/master/tutorials/3_stream_video
2、運行 python app.py 並在http://raspberrypi.local:5000/的本地網絡上查看。
3、本代碼是從 Miguel Grinberg 的網站上獲取並稍作改編的。基本概念是使用線程和生成器來提高視頻流的傳輸速度。
https://blog.miguelgrinberg.com/post/flask-video-streaming-revisited

人體識別


使用 ImageNetSSD 實現視頻中的人體識別可參考:
https://gitlab.com/t3chflicks/cctv-owl/tree/master/tutorials/4_object_detection
因為使用樹莓派4,我們準備用深度學習模型來替代基本 HaarCascade 方法。

1、首先查看一些預先訓練好的模型,例如 YOLOv3。YOLOv3 很輕,對於樹莓派來說很完美,但卻無法完美運行起來。

2、然後我們選擇了 openCVs DNN(深度神經網絡)模塊運行的 MobileSSD 模型。
代碼部分:
https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry-pi-using-opencv-dnn-98827255fa60

圖像處理部分:
https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and-opencv/

3、然而當我們嘗試流式傳輸內容並在每個幀上運行模型時,最後導致視頻播放緩慢而且片段化。最後我們學習了Adrian Rosebrock 的方法:
https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/
使用 Python 多處理模塊將圖像放入隊列可以在不嚴重阻塞攝像頭視頻流的情況下進行處理。

4、嘗試自己運行代碼吧:
https://gitlab.com/t3chflicks/cctv-owl

給手機發送「殭屍來了」通知

1、使用https://pushed.co/通知服務。

2、註冊一個免費帳戶並下載該應用程式,然後快速設置,並獲取移動通知。

import requests

payload = {
"app_key": "APP_KEY",
"app_secret": "APP_SECRET",
"target_type": "app",
"content": "Owl has detected a zombie."
}

r = requests.post("https://api.pushed.co/1/push", data=payload)

這非常的簡單,你也可以自定義通知的名稱。

完成


希望你喜歡這隻聰明的貓頭鷹,快來做一隻來守護你的家吧!

http://make.quwj.com/project/181via instructables.com/id/Smart-Security-Owl/

BrachioGraph:樹莓派繪圖機

相關焦點

  • 殭屍 (2013)
    類型: 劇情 / 恐怖 / 奇幻製片國家/地區: 中國香港語言: 粵語上映日期: 2013-10-24(中國香港)片長: 101分鐘又名: 七日重生 / Rigor Mortis豆瓣評分7.8殭屍的劇情簡介 · · · · · ·       故事講述了80年代知名動作影星小豪(錢小豪飾)曾經憑《殭屍先生
  • { 日本情報 } 東京流行貓頭鷹咖啡館 萌翻地球人
    日本這幾年流行起貓頭鷹陪食的餐廳及咖啡館,上門光顧的客人不僅能夠近距離觀賞貓頭鷹,還可以親手摸摸牠們,每天吸引不少OL在店外排隊,等待著要被這充滿個性的可愛動物療愈。每星期還會舉行貓頭鷹愛好者聚會,超萌的貓頭鷹醫生,治癒值.+100!
  • 殭屍世界生存:值得通關!街機殭屍小遊戲
    小遊戲玩家群《殭屍世界生存》遊戲攻略,無限鑽石禮包「龍蝦遊戲推薦」龍蝦遊戲推薦(原:龍蝦遊戲資訊)是一個「專注小遊戲交流」的公眾號。標籤:殭屍、動作射擊蝦吐槽:你以為羽仁遊戲只會做沙盒嗎?人做小巧玲瓏的遊戲也一樣很棒。《殭屍世界生存》看上去很孩子氣,但一點也不是。
  • 用金屬探測器探寶,別探到了「雷」
    進口的金屬探測器,不但探測深度深,而且性能穩定、抗幹擾能力最強。最重要的是以土壤為導體在探測地下金屬時能獲得比空氣中更好的性能,而且操作極為簡單,識別目標、定位準確、地下金屬探測器裝有先進的地平衡系統,能排除「礦化反應」的幹擾,大大提高了儀器的探測深度和效果。
  • 從零開始:深度學習軟體環境安裝指南
    在搭建深度學習機器之後,我們下一步要做的就是構建完整的開發環境了。
  • 植物大戰殭屍2:正版植物大戰殭屍微信小遊戲,海盜題材!
    《植物大戰殭屍2》遊戲攻略,兌換碼,禮包碼《植物大戰殭屍2》小遊戲玩家群小遊戲進不去怎麼辦?問題解答(點擊跳轉)「甚至在本文眾多植物殭屍系列遊戲裡沒有後綴名你敢信~遊戲的故事發生在海盜船上,是一款海盜題材的植物大戰殭屍。而另外,本作也加入了「雲存檔」功能。
  • 臺灣志願者招募 | 讓我們一起去寶島守護貓頭鷹傳說吧~
    但一定沒有多少人知道,在臺灣,貓頭鷹是一種吉祥的象徵。對於日月潭的邵族朋友來說,貓頭鷹有著不可侵犯和崇高的精神意義。所以在臺灣,我們能見到許多當地人對貓頭鷹的保護措施,還有富有創意的超可愛貓頭鷹飾品~(臺灣一共有12種種類的貓頭鷹!你甚至在臺北101附近都能找到貓頭鷹的蹤跡!)
  • 國際雙語:趙揚老師獲2017「智慧課堂創新獎」特等獎
    (Smarter Lecture),臺灣科技領導與教學科技發展協會今年上半年舉辦「2017智慧課堂創新獎」選拔活動,鼓勵教師發展「可複製、會擴散」的智慧教室創新教學模式。透過教育教學與智慧教室的深度融合,實現「以學生為中心」的智慧教育理想。   在這次活動中我校趙揚老師所設計講授的《歐洲西部》一課,被評為「2017智慧課堂創新獎」特等獎;與此同時他的教學設計被選入臺灣科技領導與教學科技發展協會《智慧教育》年刊,被評為「2017智慧課堂創新獎」TPC十大精選教學設計。
  • 這家「奇葩」商店,火了
    魔杖、咒語,讓人一下子穿越回那個憧憬著霍格沃滋貓頭鷹飛來的小時候。這令玩物君想起前陣子很流行的「魔法充電器」。乍看之下,是一塊平平無奇的桌墊。當全部「咒語」亮起時,「魔法」生效了!TADA —— 手機充電成功。
  • 萬聖節主題參考之:「屍囚之路」
    」,一定會令你大跌眼鏡。領展樂富廣場以「屍囚之路」為主題的鬼屋,顧客可以自己設定角色,自選成為4種喪屍之一,並展開逃獄之旅。」,瞬即令每位到場人士的尖叫聲勁10倍。、黃大仙中心、H.A.N.D.S、良景廣場、啟田商場及街市 場、鯉魚門廣場、尚德廣場、彩明商場換領方法:在指定領展商場或街市一星期內累積消費滿HK$400或以上,並出示該消費商場內商戶發出之機印發票正本(同一商場及街市2張至4張由不同商戶發出的機印發票正本,其中最少一張必須為電子消費發票,每張發票金額須為HK$100或以上),即可換領「喪玩快證套票」一套
  • 百萬殭屍:微信小遊戲裡也可以玩steam好評如潮《億萬殭屍》?!可以可以!
    小遊戲玩家群百萬殭屍遊戲攻略,無限鑽石禮包「龍蝦遊戲>推薦」龍蝦遊戲推薦(原:龍蝦遊戲資訊)是一個「專注小遊戲交流」的公眾號。它原來叫《千萬殭屍》,但是我不知道為什麼變成了百萬了……一般人不都是越大越好嗎?你看steam之前那款《億萬殭屍》俘虜了多少策略遊戲愛好者!《百萬殭屍》的塔防更為策略,它是一款給玩家有更多擺放空間的塔防型小遊戲。而且,它是比較符合成人玩家喜好的那一種~不過,遊戲的屍潮感覺還是不太給力,要是真有百萬的感覺就好了!這款很不錯,我還是非常推薦的!
  • 下湖遊泳失蹤5天 「歡樂合唱團」女星屍體尋獲,獨留4歲兒在船上
    (Lake Piru)湖裡尋獲的一具屍體,就是8日乘船遊湖後失蹤的電視影集「歡樂合唱團」(Glee)33歲女星娜婭裡維拉(Naya Rivera)。他表示,找到屍體地點,過去幾天警方一直努力進行搜救行動,「我不確定她是在湖底什麼深度被找到的。」在搜救行動中,警方出動了搜救犬,並使用聲納探測器。巴斯丘說,希望找到屍體之後,可以讓家屬能夠不必再焦急等待,「希望他們在某種程度上,可以在心理上覺得告一段落。」
  • 真的很嚇人:但加拿大"殭屍男孩"紅透了...(膽小者慎入!)
    點擊上方標題下「加拿大家園」可快捷關注一個名叫Rick Genest的加拿大男孩,被Nicola Formichetti在Facebook
  • BM Mint口臭探測器:情人節約妹子前記得測測哦
    BreathometerMint能幹嘛這是一款非常小巧的口臭探測器。你只需要將它打開,放進嘴裡吹幾秒,就可以在手機上看到自己的個人問題是個什麼情況了!猛戳右上角菜單中的「查看公眾號」關注我們吧!
  • 人氣貓頭鷹咖啡廳背後藏超殘酷真相,離職員工爆料:一年死七隻
    近年來「貓頭鷹咖啡廳」在日本相當受歡迎,許多人在享受美食的同時,還能與呆萌療愈的貓頭鷹近距離互動,成為許多當地民眾的必去聖地。客人在貓頭鷹咖啡廳消費後,可以將貓頭鷹放在手腕上拍照留念,這樣的噱頭卻對貓頭鷹造成很大的傷害。
  • 臺中市「潛水旅館」潛客「黑視症」昏迷沉21米池底
    8月11日中午,臺中市「潛水旅館」驚傳一名男性潛客在自由潛水到11米深度時,疑憋氣時間過久產生「黑視症」而昏迷溺水,張男下沉到最深的21米池底時被教練發現拉上岸實施CPR急救,同時送醫搶救插管治療中。亞洲首座「潛水旅館」出意外該間位在西屯區安和西路上的「潛立方」潛水旅館,在其官網標榜想潛水不用再跑到墾丁,除了是亞洲首座「潛水旅館」,也是世界第三大潛水場地,是專為喜愛自由潛水或水肺潛水等潛水運動者所設計的旅館。
  • 日語研究 |「修正」和「訂正」用法區分
    所以,今天我們就一起學習下吧!修正「しゅうせい」該詞語意思是改正錯誤或不足,但要修改的對象並不一定有錯誤。「修正」一詞,指的是改正不足、不合適之處。說話人沒有道歉的意思。訂正「ていせい」訂正,修訂。改正錯誤,使用對象一定有錯誤。說話人暗含有道歉之意。
  • 學界 KDD 2016 演講和論壇視頻出爐:深度學習是一切問題的終極答案嗎?
    一、小組研討會(Panel)KDD 2016 的這個 Panel 有一個非常有意思的主題:「深度學習是新的終極答案嗎?」研討會主持人是谷歌傑出科學家、前雅虎 Computational Advertising 研究者兼副總裁 Andrei Broder。
  • 體驗「UOS」V20 專業版:能代替 Win10 了嗎?
    之前體驗過「UOS」系統的小夥伴覺得這就是深度「Deepin」的"換皮改名"版,後來統信官方也給出了解答:「UOS」是 Linux 在中國的商業發行版,主要開發工作由「Deepin」團隊完成,「UOS」與「Deepin」的關係就像是 Fedora 和 Redhat RHEL那樣(不要問我 Fedora 和 Redhat RHEL 是什麼關係)。
  • 日語天天學:日語助詞「か」與「と」的用法
    上次我們介紹了助詞「に」「で」「が」「は」以及它們的區分,這次我們向大家介紹兩個有多種意思的助詞:「か」「と」。