精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發燒友App

硬聲App

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

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

3天內不再提示
電子發燒友網>電子資料下載>電子資料>用Raspberry Pi的視覺識別事物

用Raspberry Pi的視覺識別事物

2022-12-26 | zip | 0.30 MB | 次下載 | 免費

資料介紹

描述

這篇文章包含制作您自己的圖像分析器的說明。

硬件要求

  • 樹莓派
  • 樹莓派相機
  • 字符型液晶顯示器
  • 跳線
  • 面包板
  • 電位計(如果您的 LCD 支持對比度調整)
  • 按鈕

請檢查下面的示意圖以獲取接線圖。

軟件要求

我們將在按下按鈕時拍攝照片,然后將該圖像上傳到 Dropbox。然后,我們將從 Dropbox 獲取可共享鏈接,并使用該照片鏈接調用 Microsoft Computer Vision APIAPI 調用返回的結果將顯示在字符 LCD 上。

安裝依賴項

Adafruit Python CharLCD 庫

從以下 Github 鏈接獲取 LCD 庫。

https://github.com/adafruit/Adafruit_Python_CharLCD  

CD 到下載的文件夾并運行以下命令。

sudo python3 setup.py install   

要求

sudo pip3 install requests   

投遞箱

登錄您的保管箱帳戶并創建一個應用程序來存儲捕獲的圖像。您還需要一個訪問令牌。以下鏈接可能會有所幫助。

通過鍵入以下命令安裝 dropbox python 客戶端庫

sudo pip3 install dropbox   

獲取計算機視覺 API(訂閱)密鑰以進行 API 調用

您可以通過訪問以下鏈接獲取免費訂閱密鑰。在撰寫本文時,Microsoft 允許每月進行 5000 次免費交易

Python 3 代碼

導入依賴項

import RPi.GPIO as GPIO  
import picamera  
import Adafruit_CharLCD as LCD  
import os.path  
import time  
import requests  
import dropbox  
import json   

調用 API 的變量

使用您之前獲得的密鑰更新 subscription_key 變量。

subscription_key = 'YOUR_Subscription_KEY'  
# URL will be mentioned when you obtain your  
url = "https://westcentralus.api.cognitive.microsoft.com/vision/v1.0/analyze"   

Dropbox 的訪問令牌

access_token = 'YOUR_ACCESS_TOKEN'   

樹莓派開發板

GPIO.setmode(GPIO.BCM)   

按鈕設置

btn = 16  
GPIO.setup(btn, GPIO.IN, pull_up_down=GPIO.PUD_UP)   

驅動 LCD 的變量

對應的 Raspberry Pi GPIO 引腳用于 LCD 上的寄存器選擇、指令和數據寄存器。稍后我們將使用這些變量來初始化 LCD。

lcd_rs = 4  
lcd_en = 17  
lcd_d4 = 25  
lcd_d5 = 24  
lcd_d6 = 23  
lcd_d7 = 18   

LCD 的尺寸,如果您有 16x2 的字符 LCD,則將 lcd_columns 變量修改為 16,將 lcd_rows 修改為 2。由于我使用的是 20x4 LCD,因此我將使用以下值。

lcd_columns = 20  
lcd_rows = 4   

初始化

通過調用 Dropbox、Adafruit 和 picamera 庫提供的構造方法來初始化 Dropbox、LCD 和相機。如果您的 LCD 支持背光,那么您可以傳入一個附加參數 backlight = 1 或 backlight = 0 來打開或關閉它。

# Initilaize Dropbox  
dbx = dropbox.Dropbox(access_token)  
# Initialize the LCD using the pins above by calling the construct method of Adafruit LCD library  
lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows)  
# Initialize the camera  
cam = picamera.PiCamera()   

主函數

main() 函數是程序啟動時第一個被調用的函數。它等待按鈕按下,當按下按鈕時,它調用其他函數來捕獲圖像,將其上傳到保管箱,獲取上傳的圖像鏈接,然后最后調用 predict_contents() 函數,該函數調用 Vision API 并在 LCD 上顯示結果。當用戶再次按下按鈕時,在最后一步調用 main() 函數以執行相同的步驟。

def main():  
  while True:  
    cam.capture('image.jpg')  
    display_message('Uploading..')  
    upload_image()  
    display_message('Generating Image', 'link..')  
    image_url = get_image_url()  
    display_message('Analysing..')  
    predict_contents(image_url)  
    main()   

下面將更詳細地描述此處使用的每個函數。

display_message() 函數

display_function() 函數利用 Adafruit LCD 庫提供的 message() 函數。調用它時最多可以傳入四個字符串,它會在新行上顯示每個字符串。但是,如果您只傳入 line1 參數,它將在多行中顯示消息。lcd.clear()將清除 LCD 上的任何現有文本 lcd.home() 并將光標移至第 1 行和第 1 列。

def display_message(line1 = '', line2 = '', line3 = '', line4 = ''):  
  lcd.clear() # Clear the display  
  lcd.home() # Bring cursor to row 1 and column 1  
  if(line1 != '' and line2 == '' and line3 == '' and line4 == ''):  
    lcd.message(line1)  
  else:  
    lcd.message(line1 + '\n' + line2 + '\n' + line3 + '\n' + line4)  

upload_image() 函數

這段代碼在命名的工作目錄中獲取先前捕獲的圖像image.jpg并將其上傳到 dropbox。

def upload_image():  
  remote_file = '/image.jpg'  
  f = open(local_file, 'rb')  
  dbx.files_upload(f.read(), remote_file, mode=dropbox.files.WriteMode.overwrite)   

get_image_url() 函數

此函數向 Dropbox 發出發布請求,以獲取我們在上一步上傳的圖像的可共享鏈接。然后將結果轉換為 JSON。image_url.replace('www', 'dl')以便可以下載。此步驟是必要的,否則圖像會在 Dropbox Web 應用程序中打開。此處使用之前從 Dropbox 獲取的訪問令牌對請求進行身份驗證。

def get_image_url():  
  headers = {  
    'Authorization': 'Bearer ' + access_token,  
    'Content-Type': 'application/json'  
  }  
  data = {  
    "path": "/image.jpg"  
  }  
  r = requests.post('https://api.dropboxapi.com/2/sharing/create_shared_link', headers=headers, data=json.dumps(data))  
  image_url = r.json()['url']  
  image_url = image_url.replace('www', 'dl')  
  return image_url   

predict_contents(image_url) 函數

該函數將之前獲取的圖片鏈接作為參數傳入計算機視覺API。訂閱密鑰用于對請求進行身份驗證,visualFeatures參數包含有關我們要在圖像中分析哪些特征的詳細信息Vision API 應用機器學習來識別圖像并返回結果。標題最好用一個句子概括圖像,標簽包含有關圖像中有哪些特征的信息。前 8 個最有信心的標簽顯示在 LCD 上的標題后。

def predict_contents(image_url):  
  params   = {'visualFeatures': 'Description'}  
  data     = {'url': image_url}  
  response = requests.post(url, headers=headers, params=params, json=data)  
  response.raise_for_status()  
  image_desc = response.json()['description']['captions'][0]['text']  
  image_tags = response.json()['description']['tags']  
  display_message(image_desc)  
  time.sleep(5)  
  display_message('{}, {},'.format(image_tags[0], image_tags[1]), '{}, {},'.format(image_tags[2], image_tags[3]), '{}, {},'.format(image_tags[4], image_tags[5]), '{}, {}'.format(image_tags[6], image_tags[7]),)  
  time.sleep(10)   

我們應用程序的起點

這是我們調用main()函數并在程序停止時顯示“程序停止”的地方。

try:  
  main()  
finally:  
  display_message('Program Stopped.')   

運行應用程序

最后,我們到了啟動程序并享受拍照的樂趣。https://github.com/dsdilpreet/blog/blob/master/recognize-things-with-raspberry-pi-vision

從 github 下載文件,打開終端并 cd 進入下載文件所在的文件夾并運行以下命令。

python3 app.py   

帶有示例圖片和結果鏈接的原始帖子

?


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

評論

查看更多

下載排行

本周

  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次下載  |  免費