最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

通過(guò) Python 和 OpenCV 實(shí)現(xiàn)目標(biāo)數(shù)量監(jiān)控

 更新時(shí)間:2020年01月05日 14:37:25   作者:Python學(xué)習(xí)啊  
這篇文章主要介紹了如何通過(guò) Python 和 OpenCV 實(shí)現(xiàn)目標(biāo)數(shù)量監(jiān)控,本文通過(guò)實(shí)例代碼圖文的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

今天我們將利用python+OpenCV實(shí)現(xiàn)對(duì)視頻中物體數(shù)量的監(jiān)控,達(dá)到視頻監(jiān)控的效果,比如洗煤廠的監(jiān)控水龍頭的水柱顏色,當(dāng)水柱為黑色的超過(guò)了一半,那么將說(shuō)明過(guò)濾網(wǎng)發(fā)生了故障。當(dāng)然不僅如此,我們看的是圖像視頻處理的技巧,你也可以將項(xiàng)目遷移到其他地方等,這僅僅是一個(gè)例子而已。我們知道計(jì)算機(jī)視覺(jué)中關(guān)于圖像識(shí)別有四大類任務(wù):

。

分類-Classification:解決“是什么?”的問(wèn)題,即給定一張圖片或一段視頻判斷里面包含什么類別的目標(biāo)。

定位-Location:解決“在哪里?”的問(wèn)題,即定位出這個(gè)目標(biāo)的的位置。

檢測(cè)-Detection:解決“是什么?在哪里?”的問(wèn)題,即定位出這個(gè)目標(biāo)的的位置并且知道目標(biāo)物是什么。

分割-Segmentation:分為實(shí)例的分割(Instance-level)和場(chǎng)景分割(Scene-level),解決“每一個(gè)像素屬于哪個(gè)目標(biāo)物或場(chǎng)景”的問(wèn)題。

而定位不僅需要找到物體的位置在哪里,還需要能夠統(tǒng)計(jì)目標(biāo)的數(shù)目以及物體狀態(tài)。

除了圖像分類以外,目標(biāo)檢驗(yàn)要解決問(wèn)題的架構(gòu)難題是:

1.目標(biāo)有可能經(jīng)常出現(xiàn)在影像的任何方位;

2.目標(biāo)有各種有所不同的尺寸;

3.目標(biāo)有可能有各種有所不同的外形。

如果用矩形框來(lái)界定目的,則長(zhǎng)方形有有所不同的清晰度。由于目的的清晰度有所不同,因此使用經(jīng)典之作的轉(zhuǎn)動(dòng)視窗+影像圖形的計(jì)劃解決問(wèn)題標(biāo)準(zhǔn)化目的檢驗(yàn)難題的生產(chǎn)成本太低。近幾年來(lái),目標(biāo)檢測(cè)算法取得了很大的突破。比較流行的算法可以分為兩類,一類是基于Region Proposal的R-CNN系算法(R-CNN,F(xiàn)ast R-CNN, Faster R-CNN等),它們是two-stage的,需要先算法產(chǎn)生目標(biāo)候選框,也就是目標(biāo)位置,然后再對(duì)候選框做分類與回歸。而另一類是Yolo,SSD這類one-stage算法,其僅僅使用一個(gè)卷積神經(jīng)網(wǎng)絡(luò)CNN直接預(yù)測(cè)不同目標(biāo)的類別與位置。第一類方法是準(zhǔn)確度高一些,但是速度慢,但是第二類算法是速度快,但是準(zhǔn)確性要低一些。那么今天我們的項(xiàng)目并不會(huì)太多的講解各種算法,而是我們的核心主題,目標(biāo)數(shù)量識(shí)別。

那么我們將如何進(jìn)行實(shí)現(xiàn)呢

多說(shuō)無(wú)益,下面可以開(kāi)始實(shí)現(xiàn)我們的項(xiàng)目。

首先導(dǎo)入相關(guān)的庫(kù)

import cv2
from PIL import Image
from PIL import ImageDraw,ImageFont
import numpy as np

接著我們需要把水龍頭流出水柱的部分提取出來(lái),即需要把圖片預(yù)先處理成這樣,作為背景圖來(lái)用,名為3ji.jpg如圖所示:

然后通過(guò)圖像作差的方法找到水柱的部分,首先就需要將圖像轉(zhuǎn)彩灰度圖然后高斯模糊便于計(jì)算,當(dāng)然其實(shí)不這樣也是可以的。其中2.jpg是測(cè)試的圖片,

代碼如下:

'''3ji是背景圖不可換,調(diào)試換另一個(gè)圖片,3ji自己用畫(huà)圖找到水的位置清除掉水柱即可,所以說(shuō)攝像頭不能動(dòng)'''
firstframe=cv2.imread("3ji.jpg")
firstframe= cv2.cvtColor(firstframe, cv2.COLOR_BGR2GRAY)
firstframe= cv2.GaussianBlur(firstframe, (21, 21), 0)
secondframe0=cv2.imread("2.jpg")
secondframe0= cv2.cvtColor(secondframe0, cv2.COLOR_BGR2GRAY)
secondframe= cv2.GaussianBlur(secondframe0, (21, 21), 0)
frameDelta = cv2.absdiff(firstframe, secondframe)
x,y=frameDelta.shape
print(x,y)

接著通過(guò)邊緣檢測(cè)找到水柱邊界,方便查看。

#frameDelta和canny一個(gè)是區(qū)域一個(gè)是輪廓
img = cv2.GaussianBlur(frameDelta,(3,3),0)
canny = cv2.Canny(img, 0, 100)

定義水柱總面積變量。清水面積變量,ss數(shù)組存儲(chǔ)像素值位置

area=0 #6687,總面積
qingarea=0
ss=[]

然后畫(huà)出輪廓,并記錄水柱處像素值得位置

#畫(huà)輪廓,存儲(chǔ)要識(shí)別的像素值位置,記錄在ss數(shù)組中
for i in range(x):
  for j in range(y):
   if any(frameDelta[i,j]!=[0,0,0]):#白色的時(shí)候,占位
    ss.append([i,j])

然后以原圖加輪廓圖顯示,圖片相加即可:

canny0=cv2.add(secondframe0,canny)

接著根據(jù)像素值大小判斷顏色,通過(guò)調(diào)試這個(gè)項(xiàng)目的閾值是50

#判斷水柱顏色,清水占多少像素
for t in ss:
 k,l=t
 area=area+1
 if canny0[k, l] > 50:
  print(canny0[k,l])
  qingarea+=1
接著統(tǒng)計(jì)黑色水柱占比率為多少
deta=(qingarea/area)*100
print(qingarea)
pred="清水占比為"+str(deta)+"%"
print(pred)

最后輸出圖像結(jié)果:

cv2.imwrite("pred.jpg",canny0)
canny0=cv2.imread("pred.jpg")
img_PIL = Image.fromarray(cv2.cvtColor(canny0, cv2.COLOR_BGR2RGB))
myfont = ImageFont.truetype(r'C:/Windows/Fonts/simfang.ttf', 40)
draw = ImageDraw.Draw(img_PIL)
draw.text((200, 10), pred, font=myfont, fill=(255,23,140))
img_OpenCV = cv2.cvtColor(np.asarray(img_PIL), cv2.COLOR_RGB2BGR)
cv2.imshow("frame", img_OpenCV)
key = cv2.waitKey(0)

最終達(dá)到的演示效果如圖所示:

清水占比96%,還是比較準(zhǔn)確的

清水占比38%,黑水占比62%,也基本準(zhǔn)確。

當(dāng)然這僅僅是一個(gè)思路的問(wèn)題,至少目前為止網(wǎng)上還沒(méi)有對(duì)物體數(shù)目去監(jiān)控的項(xiàng)目例子,盡管并不是如此高深,但是卻是一個(gè)很好的探究方向。不僅僅是智能采礦的需要,也可以是智能農(nóng)業(yè)或者智能畜牧業(yè)等方面監(jiān)控的一個(gè)想法。當(dāng)然大家也是可以再次基礎(chǔ)上修改完善代碼,完整的代碼上面已經(jīng)給出。伴隨著移動(dòng)互聯(lián)網(wǎng)、手機(jī)及各交友的平臺(tái)的較慢持續(xù)發(fā)展,照片的廣泛傳播幅度大大增強(qiáng),廣泛傳播范圍內(nèi)也日益擴(kuò)展。比起書(shū)寫(xiě)、視頻、錄像等廣泛傳播方式,照片廣泛傳播極具“點(diǎn)睛”視覺(jué)效果,合乎節(jié)奏貧困下人們高效的讀者方法。

當(dāng)照片給人們帶給快捷的數(shù)據(jù)紀(jì)錄和共享方法的同時(shí),照片普遍地廣泛傳播在社會(huì)大眾視線下,適當(dāng)?shù)碾y題也接踵而來(lái)。書(shū)寫(xiě)記述,使用者可以精彩通過(guò)關(guān)鍵字搜尋提供意愿數(shù)據(jù),而當(dāng)照片記述,使用者難以必要通過(guò)搜尋照片索引到可借助數(shù)據(jù)。

科技進(jìn)步的變革常常與解決的表達(dá)意見(jiàn)如影隨形,在使用者痛點(diǎn)下,亟需高科技的改進(jìn)創(chuàng)意,此自然環(huán)境下涌現(xiàn)的圖像識(shí)別新技術(shù)之后變得尤為重要。由此也可見(jiàn)計(jì)算機(jī)視覺(jué)的日益高漲的地位。

總結(jié)

以上所述是小編給大家介紹的通過(guò) Python 和 OpenCV 實(shí)現(xiàn)目標(biāo)數(shù)量監(jiān)控,希望對(duì)大家有所幫助!

相關(guān)文章

  • PyTorch中Torch.arange函數(shù)詳解

    PyTorch中Torch.arange函數(shù)詳解

    PyTorch是由Facebook開(kāi)發(fā)的開(kāi)源機(jī)器學(xué)習(xí)庫(kù),它用于深度神經(jīng)網(wǎng)絡(luò)和自然語(yǔ)言處理,下面這篇文章主要給大家介紹了關(guān)于PyTorch中Torch.arange函數(shù)詳解的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • Python 中@lazyprop 裝飾器的用法

    Python 中@lazyprop 裝飾器的用法

    這篇文章主要介紹了Python 中@lazyprop 裝飾器的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python在Word文檔中插入圖片的三種方式

    Python在Word文檔中插入圖片的三種方式

    Word不僅僅是一個(gè)文字處理工具,它還為用戶提供了圖片插入功能,以增強(qiáng)文檔的表現(xiàn)力,一張好的圖片往往能夠起到畫(huà)龍點(diǎn)睛的作用,這篇博客將介紹使用Python在Word文檔中插入圖片的三種方式,需要的朋友可以參考下
    2025-02-02
  • Python操作Sonqube API獲取檢測(cè)結(jié)果并打印過(guò)程解析

    Python操作Sonqube API獲取檢測(cè)結(jié)果并打印過(guò)程解析

    這篇文章主要介紹了Python操作Sonqube API獲取檢測(cè)結(jié)果并打印過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • python 實(shí)現(xiàn)歸并排序算法

    python 實(shí)現(xiàn)歸并排序算法

    python 實(shí)現(xiàn)歸并排序算法代碼,需要的朋友可以參考下
    2012-06-06
  • Python畫(huà)圖工具M(jìn)atplotlib庫(kù)常用命令簡(jiǎn)述

    Python畫(huà)圖工具M(jìn)atplotlib庫(kù)常用命令簡(jiǎn)述

    這篇文章主要介紹了Python畫(huà)圖Matplotlib庫(kù)常用命令簡(jiǎn)述總結(jié),文中包含詳細(xì)的圖文示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • conda虛擬環(huán)境下使用pyinstaller打包程序?yàn)閑xe文件全過(guò)程

    conda虛擬環(huán)境下使用pyinstaller打包程序?yàn)閑xe文件全過(guò)程

    pyinstaller是一個(gè)支持跨平臺(tái)使用的第三方庫(kù),它可以將腳本執(zhí)行所需的模塊和庫(kù),自動(dòng)分析、收集并生成一個(gè)文件夾或者可執(zhí)行文件,這篇文章主要給大家介紹了關(guān)于conda虛擬環(huán)境下使用pyinstaller打包程序?yàn)閑xe文件的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • python之隨機(jī)數(shù)函數(shù)的實(shí)現(xiàn)示例

    python之隨機(jī)數(shù)函數(shù)的實(shí)現(xiàn)示例

    這篇文章主要介紹了python之隨機(jī)數(shù)函數(shù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python基于Opencv識(shí)別兩張相似圖片

    Python基于Opencv識(shí)別兩張相似圖片

    這篇文章主要介紹了Python基于Opencv識(shí)別兩張相似圖片的步驟,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • 如何使用Python多線程測(cè)試并發(fā)漏洞

    如何使用Python多線程測(cè)試并發(fā)漏洞

    這篇文章主要介紹了如何使用Python多線程測(cè)試并發(fā)漏洞,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12

最新評(píng)論

逊克县| 建昌县| 安徽省| 宣威市| 瑞金市| 定陶县| 宜君县| 凤冈县| 边坝县| 新津县| 安化县| 尼木县| 徐闻县| 岑溪市| 无为县| 屯留县| 福贡县| 常宁市| 呼玛县| 元氏县| 涿鹿县| 大悟县| 德钦县| 周宁县| 迁安市| 茂名市| 丹巴县| 剑阁县| 广灵县| 琼海市| 讷河市| 饶平县| 东阳市| 水城县| 尚义县| 封丘县| 上虞市| 资兴市| 曲水县| 家居| 华蓥市|