狠狠操夜夜甜|人妻在线中文字幕亚洲无码不卡av|一区二区欧美亚洲|日躁夜躁狠狠躁2001|亚洲,超碰,欧美|18AV成人电影|午夜成人免费在线|婷婷激情网深爱五月|色欲综合成人在线|在线美女搞黄大片

網(wǎng)站性能檢測(cè)評(píng)分

注:本網(wǎng)站頁(yè)面html檢測(cè)工具掃描網(wǎng)站中存在的基本問(wèn)題,僅供參考。

python

SubLime Text 3果然好用,Python程序員一文玩爆! 營(yíng)銷(xiāo)視頻課程

img

改變

關(guān)注

比起pycharm我更喜歡做為輕量級(jí)編程神器SubLime Text 3 ,果然名副其實(shí)!確實(shí)好用,要求也不高。

現(xiàn)在即將呈現(xiàn)SubLime Text 3完整使用手冊(cè)!

安裝Python,設(shè)置環(huán)境變量

首先需要安裝Python,訪問(wèn)地址https://python.org,下載Python,無(wú)腦點(diǎn)擊下一步安裝即可。

在CMS輸入命令python,如果進(jìn)入如圖則表明Python安裝成功:

如果沒(méi)有進(jìn)入Python IDE,添加環(huán)境變量:

這里以Windows 10為例,點(diǎn)擊:我的電腦屬性->高級(jí)系統(tǒng)設(shè)置->環(huán)境變量,點(diǎn)擊下方新建:

編輯后,點(diǎn)擊右上角新建,輸入Python得到路徑,最后點(diǎn)擊確定即可:

再點(diǎn)擊Use License 即可成功激活

配置Sublime Text 3 Python編譯系統(tǒng)

首先配置Python編譯模塊,讓編輯器能能解析Python代碼。

點(diǎn)擊Tools->Build System->New Build System

這時(shí)編譯系統(tǒng)就搞好了,在桌面創(chuàng)建py文件,使用Sublime text 3打開(kāi),按Ctrl+b:

這樣就可以運(yùn)行Python代碼了,下一步進(jìn)行優(yōu)化。

導(dǎo)入、中文啥的都支持,跟Python自帶IDE一樣,唯一的區(qū)別就是這個(gè)看著很爽。

在文本編輯框隨意輸入,按F5:

python3.7——安裝教程 企業(yè)視頻課程

img

包浩然

關(guān)注

Python開(kāi)發(fā)環(huán)境的搭建

一. 安裝python

1. 從python官網(wǎng)下載相應(yīng)版本的python安裝包,打開(kāi)百度,搜索python官網(wǎng),或者輸入python

官網(wǎng)地址https://python.org/

2. 點(diǎn)擊download選擇相應(yīng)的操作平臺(tái)

3. 下載完成后點(diǎn)擊安裝包并執(zhí)行,運(yùn)行出該界面

4. 這里安裝到c盤(pán)上,默認(rèn)安裝

此處為自定義安裝

選擇第一項(xiàng)是系統(tǒng)用戶(hù)下所有用戶(hù)可啟動(dòng),Add Python 3.6 to PATH 是將安裝路徑添加到PATH環(huán)境變量中,方便直接運(yùn)行于系統(tǒng)各種環(huán)境中(如果有多個(gè)版本的Python或測(cè)試環(huán)境可不添加,需要添加可手動(dòng)添加,查找到安裝的地址并復(fù)制地址到以下操作,計(jì)算機(jī)——右鍵屬性——高級(jí)系統(tǒng)設(shè)置——環(huán)境變量——系統(tǒng)變量——選擇PATH——雙擊在變量值中添加——注意在最后添加并有“;”為隔斷符)。

我這里選擇自定義安裝,并全選安裝

開(kāi)始安裝過(guò)程,請(qǐng)耐心等待(所有的項(xiàng)目都選擇,根據(jù)網(wǎng)速?zèng)Q定安裝的速度)。如果有未選擇的選項(xiàng),可直接點(diǎn)擊取消,重新開(kāi)始安裝過(guò)程。

安裝完成,開(kāi)啟Python之旅。

如何打開(kāi)命令行窗口

快捷方式:按住wins鍵 + R鍵 --> 輸入cmd指令 -->enter

開(kāi)始進(jìn)入Python的編程界面,輸入print("你好,Python!")。

比較一下不同Python版本,看哪個(gè)最快? 行業(yè)視頻課程

img

慕爾云

關(guān)注

本文所選的Python版本:

2.7.10,

3.4.4,

3.5.4,

3.6.1,和

3.7(我有beta 2)。

此外,這包括PyPy(5.6。)和PyPy3(5.4.10)。

呈現(xiàn)HTML模板

該django_html測(cè)試將使用Django模板渲染引擎,以建立一個(gè)150×150的HTML表格。它利用了Django引擎的內(nèi)容和模板類(lèi)。

Python 3.7的速度比Python 2.7快1.19倍,但是它是唯一一個(gè)能夠擊敗我運(yùn)行的Python 2.7基準(zhǔn)的Python 3.x版本。speed.python.org基準(zhǔn)測(cè)試顯示類(lèi)似的結(jié)果。

PyPy可以摧毀任何CPython結(jié)果,但PyPy3會(huì)比PyPy慢兩倍。值得注意的是Django最近決定在Django 2.0及更高版本中放棄對(duì)Python 2的支持,這意味著PyPy將不再與Django 2兼容。

啟動(dòng)時(shí)間

該測(cè)試只是測(cè)試解釋器啟動(dòng)所花費(fèi)的時(shí)間。如果您通過(guò)運(yùn)行多個(gè)進(jìn)程來(lái)解決Python的“GIL”約束,那么這將非常重要。

Cryptography: crypto_paes

在這個(gè)測(cè)試中,你會(huì)看到Python 2和3之間的速度明顯下降。為什么?加密需要大量的數(shù)字運(yùn)算,Python 3不再具有32位整數(shù)類(lèi)型,只有一個(gè)(非常)長(zhǎng)整數(shù)。

PyPy用戶(hù) - 您會(huì)注意到PyPy3 比PyPy 慢5倍!

n-queens:算法測(cè)試

在CPython系列中,3.7 又一次出現(xiàn),但值得注意的是PyPy和PyPy3的結(jié)果非常相似。

浮點(diǎn)運(yùn)算

“浮動(dòng)”的基準(zhǔn)是一種人為的,浮點(diǎn)運(yùn)算繁重的應(yīng)用程序,將創(chuàng)建計(jì)算10萬(wàn)點(diǎn)的對(duì)象math.cos(),math.sin()和math.sqrt() 。

這是PyPy的完美應(yīng)用,大量的數(shù)據(jù)處理,可預(yù)測(cè)的類(lèi)型和方法以及循環(huán)。Python 3.7具有新的快速方法調(diào)用操作碼,該操作碼正在此測(cè)試中使用。

常用表達(dá)

在正則表達(dá)式測(cè)試中,“網(wǎng)絡(luò)上最流行的網(wǎng)頁(yè)有50個(gè),并記錄了所有正則表達(dá)式操作。每個(gè)操作都有一個(gè)權(quán)重,它是根據(jù)頁(yè)面出現(xiàn)的熱門(mén)程度以及加載每個(gè)頁(yè)面時(shí)執(zhí)行的次數(shù)來(lái)估算的。最后,使用ROT13對(duì)數(shù)據(jù)中的字母進(jìn)行編碼,這樣不會(huì)影響正則表達(dá)式匹配其輸入的方式?!?/p>

那么Python 3比Python 2更快嗎?

是! 在幾乎所有的測(cè)試中。值得注意的例外是crypto_paes測(cè)試,Python 3的速度慢了1.35倍(因?yàn)檎麛?shù)類(lèi)型),python_startup的速度慢了1.39倍。

緩慢的Python 3啟動(dòng)是核心CPython團(tuán)隊(duì)正在為3.8,3.9版本開(kāi)發(fā)的問(wèn)題之一。

除了這兩項(xiàng)測(cè)試外,Python 3在這些基準(zhǔn)測(cè)試中的速度大約快1.2-1.3倍。今年晚些時(shí)候,你會(huì)看到升級(jí)到Python 3.7的改進(jìn)。

為什么PyPy要快得多,為什么不是每個(gè)人都使用它呢?

PyPy比CPython快,因?yàn)樗哂屑磿r(shí)編譯器。JIT編譯器具有很大的好處,因?yàn)樗鼈冊(cè)趫?zhí)行可預(yù)測(cè)的重復(fù)性任務(wù)時(shí)非常高效?;鶞?zhǔn)的其中一個(gè)特點(diǎn)是,您嘗試多次運(yùn)行同一段代碼以使其準(zhǔn)確無(wú)誤,推送應(yīng)用程序并減少錯(cuò)誤邊界。正如PyPy照耀這些測(cè)試。

JIT編譯器,尤其是PyPy的缺點(diǎn)是啟動(dòng)成本高。另一個(gè)缺點(diǎn)是許多C-Extensions缺乏兼容性。因?yàn)椤癙ython”(CPython,官方的PSF Python)是用C語(yǔ)言編寫(xiě)的,PyPi上的許多第三方擴(kuò)展利用了這一點(diǎn)。Numpy就是一個(gè)很好的例子,Numpy的大部分都是用優(yōu)化的C代碼編寫(xiě)的。當(dāng)你pip install numpy使用本地C編譯器并為你的Python運(yùn)行時(shí)建立一個(gè)二進(jìn)制庫(kù)來(lái)使用。

由于PyPy是用Python編寫(xiě)的,很多模塊根本無(wú)法在PyPy中工作。

此外,PyPy也遭遇了與CPython相同的挑戰(zhàn) - 從語(yǔ)言版本2轉(zhuǎn)移到版本3. PyPy3直到最近我發(fā)現(xiàn)它仍然不穩(wěn)定,在基準(zhǔn)測(cè)試中,您仍然可以看到與PyPy的奇怪不一致。我還遇到了一些軟件包問(wèn)題(例如PyTest),他們放棄了對(duì)PyPy3的支持,但他們解決了問(wèn)題。

Python太強(qiáng)了,居然還能用python來(lái)免費(fèi)發(fā)送短信!五分鐘教會(huì)你! 免費(fèi)視頻課程

img

Liu046

關(guān)注

正文

然后進(jìn)入注冊(cè)頁(yè)面

接著通過(guò)了人機(jī)認(rèn)證以后,就會(huì)對(duì)你的手機(jī)號(hào)碼進(jìn)行認(rèn)證,這個(gè)就不發(fā)圖片了。

4. 進(jìn)入console

注冊(cè)好了以后,就可以進(jìn)入我們自己的面板了

5. 寫(xiě)代碼

根據(jù)文檔的內(nèi)容,我們編寫(xiě)了下面的代碼:

然后執(zhí)行程序,你應(yīng)該會(huì)碰到下面的錯(cuò)誤

可以從報(bào)錯(cuò)信息中明顯的看到,提示我們說(shuō)這個(gè)號(hào)碼沒(méi)有驗(yàn)證,我們可以到驗(yàn)證的網(wǎng)址上驗(yàn)證一下,也可以購(gòu)買(mǎi)一個(gè)高級(jí)別的賬號(hào)來(lái)給未驗(yàn)證的號(hào)碼發(fā)送信息。

可以看到我們的用量以及花費(fèi),這個(gè)花費(fèi)是不需要我們真正的付錢(qián)的,官方的解釋是:

9.打電話

打電話的代碼也很簡(jiǎn)單

謝謝閱讀?。?!

Python哪個(gè)版本適合初學(xué)者 營(yíng)銷(xiāo)視頻課程

img

燕酬海

關(guān)注

想學(xué)習(xí)Python的人都會(huì)有一個(gè)困惑,那就是Python目前有兩個(gè)版本Python2和Python3,Python2與Python3有何區(qū)別,兩個(gè)版本該學(xué)習(xí)哪個(gè)呢?

python3 和 python2 是不兼容的,而且差異比較大,python3是不向下兼容的,但是絕大多數(shù)組件和擴(kuò)展都是基于python2的。目前實(shí)際應(yīng)用中大部分暫不考慮 Python3,有的時(shí)候注意寫(xiě)兼容 2/3 的代碼。用 Python2 為主的寫(xiě)新代碼時(shí)要考慮以后遷移到 Python3 的可能性。據(jù)數(shù)據(jù)統(tǒng)計(jì)顯示目前10% 使用 Python 3;20% 既使用Python 2也使用Python 3,Python 2用的更多;70% 使用Python 2。

其實(shí)python是linux上最常用的軟件之一,但是linux目前的版本大部分還是使用python2的,而且,在linux上依賴(lài)python2的程序更多一些,所以 Python3 要代替 python2 成為主流還需要幾年的時(shí)間。如果為了找工作還是學(xué)Python 2,學(xué)會(huì)了Python 2,由Python 2轉(zhuǎn)到python3也不難。

說(shuō)了半天,Python2與Python3到底有何區(qū)別呢?

1.性能

Py3.0運(yùn)行 pystone benchmark的速度比Py2.5慢30%。Guido認(rèn)為Py3.0有極大的優(yōu)化空間,在字符串和整形操作上可以取得很好的優(yōu)化結(jié)果。

Py3.1性能比Py2.5慢15%,還有很大的提升空間。

2.編碼

Py3.X源碼文件默認(rèn)使用utf-8編碼

3. 語(yǔ)法

1)去除了<>,全部改用!=

2)去除``,全部改用repr()

3)關(guān)鍵詞加入as 和with,還有True,False,None

4)整型除法返回浮點(diǎn)數(shù),要得到整型結(jié)果,請(qǐng)使用//

5)加入nonlocal語(yǔ)句。使用noclocal x可以直接指派外圍(非全局)變量

6)去除print語(yǔ)句,加入print()函數(shù)實(shí)現(xiàn)相同的功能。同樣的還有 exec語(yǔ)句,已經(jīng)改為exec()函數(shù)

7)改變了順序操作符的行為,例如x

8)輸入函數(shù)改變了,刪除了raw_input,用input代替:

9)去除元組參數(shù)解包。不能def(a, (b, c)):pass這樣定義函數(shù)了

10)新式的8進(jìn)制字變量,相應(yīng)地修改了oct()函數(shù)。

11)增加了 2進(jìn)制字面量和bin()函數(shù)

12)擴(kuò)展的可迭代解包。在Py3.X 里,a, b, *rest = seq和 *rest, a = seq都是合法的,只要求兩點(diǎn):rest是list 對(duì)象和seq是可迭代的。

13)新的super(),可以不再給super()傳參數(shù),

14)新的metaclass語(yǔ)法:

15)支持class decorator。

4. 字符串和字節(jié)串

1)現(xiàn)在字符串只有str一種類(lèi)型,但它跟2.x版本的unicode幾乎一樣。

2)關(guān)于字節(jié)串,請(qǐng)參閱“數(shù)據(jù)類(lèi)型”的第2條目

5.數(shù)據(jù)類(lèi)型

1)Py3.X去除了long類(lèi)型,現(xiàn)在只有一種整型——int,但它的行為就像2.X版本的long

2)新增了bytes類(lèi)型

6.面向?qū)ο?/p>

1)引入抽象基類(lèi)(Abstraact Base Classes,ABCs)。

2)容器類(lèi)和迭代器類(lèi)被ABCs化,所以cellections模塊里的類(lèi)型比Py2.5多了很多。

3)迭代器的next()方法改名為_(kāi)_next__(),并增加內(nèi)置函數(shù)next(),用以調(diào)用迭代器的

4)增加了@abstractmethod和 @abstractproperty兩個(gè) decorator,編寫(xiě)抽象方法(屬性)更加方便。

7.異常

1)所以異常都從 BaseException繼承,并刪除了StardardError

2)去除了異常類(lèi)的序列行為和.message屬性

3)用 raise Exception(args)代替 raise Exception, args語(yǔ)法

4)捕獲異常的語(yǔ)法改變,引入了as關(guān)鍵字來(lái)標(biāo)識(shí)異常實(shí)例

5)異常鏈,因?yàn)開(kāi)_context__在3.0a1版本中沒(méi)有實(shí)現(xiàn)

8.模塊變動(dòng)1)移除了cPickle模塊,可以使用pickle模塊代替。最終我們將會(huì)有一個(gè)透明高效的模塊。

2)移除了imageop模塊

3)移除了 audiodev, Bastion, bsddb185, exceptions, linuxaudiodev, md5, imeWriter, mimify, popen2, rexec, sets, sha, stringold, strop, sunaudiodev, timing和xmllib模塊

4)移除了bsddb模塊(單獨(dú)發(fā)布,可以從Python "bindings" for Oracle Berkeley DB獲取)

5)移除了new模塊

6)os.tmpnam()和os.tmpfile()函數(shù)被移動(dòng)到tmpfile模塊下

7)tokenize模塊現(xiàn)在使用bytes工作。主要的入口點(diǎn)不再是generate_tokens,而是 tokenize.tokenize()

9.其它 1)xrange() 改名為range(),要想使用range()獲得一個(gè)list,必須顯式調(diào)用

2)bytes對(duì)象不能hash,也不支持 b.lower()、b.strip()和b.split()方法

3)zip()、map()和filter()都返回迭代器。

4)string.letters和相關(guān)的.lowercase和.uppercase被去除,請(qǐng)改用string.ascii_letters 等

5)如果x< y的不能比較,拋出TypeError異常

6)__getslice__系列成員被廢棄。

7)file類(lèi)被廢棄

目標(biāo)檢測(cè)必須要OpenCV?10行Python代碼也能實(shí)現(xiàn),親測(cè)好用! 企業(yè)視頻課程

img

霍碧菡

關(guān)注

大數(shù)據(jù)文摘出品

編譯:朱一輝、雪清、小魚(yú)

短短10行代碼就可以實(shí)現(xiàn)目標(biāo)檢測(cè)?!

本文作者和他的團(tuán)隊(duì)構(gòu)建了一個(gè)名為ImageAI 的Python庫(kù),集成了現(xiàn)今流行的深度學(xué)習(xí)框架和計(jì)算機(jī)視覺(jué)庫(kù)。本文將手把手教你構(gòu)建自己的第一個(gè)目標(biāo)檢測(cè)應(yīng)用,而且文摘菌已經(jīng)幫你踩過(guò)坑了,親測(cè)有效!

無(wú)人超市、人臉識(shí)別、無(wú)人駕駛,眾多的使用場(chǎng)景及案例,使得【目標(biāo)檢測(cè)】正成為計(jì)算機(jī)視覺(jué)最有前景的方向。

聽(tīng)起來(lái)似乎是個(gè)很難實(shí)現(xiàn)的技術(shù),需要大量訓(xùn)練數(shù)據(jù)和算法才能完成。事實(shí)上,本文作者開(kāi)發(fā)了一個(gè)基于Python的函數(shù)庫(kù),可以用十行代碼高效實(shí)現(xiàn)目標(biāo)檢測(cè)。

還不熟悉的讀者,我們先來(lái)看看,目標(biāo)檢測(cè)到底是什么,以及軟件開(kāi)發(fā)人員面臨的挑戰(zhàn)。

目標(biāo)檢測(cè)是借助于計(jì)算機(jī)和軟件系統(tǒng)在圖像/場(chǎng)景中,定位目標(biāo)并識(shí)別出每個(gè)目標(biāo)的類(lèi)別的技術(shù)。目前已廣泛用于人臉檢測(cè)、車(chē)輛檢測(cè)、行人計(jì)數(shù)、網(wǎng)絡(luò)圖像、安全系統(tǒng)和無(wú)人駕駛汽車(chē)等領(lǐng)域。隨著計(jì)算機(jī)技術(shù)不斷發(fā)展和軟件開(kāi)發(fā)人員的不懈努力,未來(lái)目標(biāo)檢測(cè)技術(shù)將更廣泛的普及開(kāi)來(lái)。

在應(yīng)用程序和系統(tǒng)中使用先進(jìn)的目標(biāo)檢測(cè)方法,以及基于這些方法構(gòu)建新的應(yīng)用程序并不容易。早期目標(biāo)檢測(cè)是基于經(jīng)典算法而實(shí)現(xiàn)的,如 OpenCV(廣受歡迎的計(jì)算機(jī)視覺(jué)庫(kù))所支持的一些算法。然而,這些經(jīng)典算法的性能會(huì)因條件而受到限制。

2012年,深度學(xué)習(xí)領(lǐng)域取得眾多突破,學(xué)者們提出了一系列全新、高精度的目標(biāo)檢測(cè)算法和方法,比如R-CNN, Fast-RCNN, Faster-RCNN, RetinaNet,以及既快又準(zhǔn)的SSD和YOLO等。要使用這些基于深度學(xué)習(xí)的方法和算法(當(dāng)然深度學(xué)習(xí)也是基于機(jī)器學(xué)習(xí)),需要對(duì)數(shù)學(xué)和深度學(xué)習(xí)框架有很深的理解。數(shù)百萬(wàn)的軟件開(kāi)發(fā)人員致力于整合目標(biāo)檢測(cè)技術(shù)進(jìn)行新產(chǎn)品的開(kāi)發(fā)。但是想要理解這項(xiàng)技術(shù)并加以使用,對(duì)非深度學(xué)習(xí)領(lǐng)域的程序員來(lái)說(shuō)并不容易。

一位自學(xué)了計(jì)算機(jī)的開(kāi)發(fā)者M(jìn)oses Olafenwa在幾個(gè)月前意識(shí)到了這個(gè)問(wèn)題,并與同伴一起開(kāi)發(fā)了一個(gè)名叫ImageAI的Python函數(shù)庫(kù)。

ImageAI可以讓程序員和軟件開(kāi)發(fā)者只用幾行代碼,就能輕易地把最先進(jìn)的計(jì)算機(jī)視覺(jué)技術(shù)整合到他們現(xiàn)有的以及新的應(yīng)用程序里面。

用ImageAI實(shí)現(xiàn)目標(biāo)檢測(cè),你只需要以下步驟:

1. 安裝Python

2. 安裝ImageAI和相關(guān)函數(shù)庫(kù)

3. 下載目標(biāo)檢測(cè)模型文件

4. 運(yùn)行示例代碼(只有10行)

準(zhǔn)備工作

文摘菌測(cè)試環(huán)境為Windows 64位系統(tǒng),Python版本為3.6。關(guān)注大數(shù)據(jù)文摘微信公眾號(hào),在后臺(tái)回復(fù)“檢測(cè)”可獲取代碼和模型文件~

1) 從Python官網(wǎng)下載并安裝Python 3,并安裝pip。

下載地址:

https://python.org

https://pip.pypa.io/en/stable/installing/

2)用pip安裝下列依賴(lài)

找到Pyhthon安裝目錄下的Scripts文件夾,如C:\XXX \Python\Python36\Scripts,打開(kāi)cmd命令窗口,依次輸入下列安裝命令即可。

1. Tensorflow:

pip install tensorflow

2.Numpy:

pip install numpy

3.SciPy

pip install scipy

4.OpenCV

pip install opencv-python

5.Pillow

pip install pillow

6.Matplotlib

pip install matplotlib

7. H5py

pip install h5py

8. Keras

pip install keras

9. ImageAI

pip install https://github/OlafenwaMoses/ImageAI/releases/download/2.0.1/imageai-2.0.1-py3-none-any.whl

注:在安裝ImageAI時(shí)如果出現(xiàn)異常,可先下載.whl文件,并放在Scripts文件夾下,用下列命令進(jìn)行安裝:

pip install imageai-2.0.1-py3-none-any.whl

3) 下載用于目標(biāo)檢測(cè)的RetinaNet模型文件:

下載地址:

https://github/OlafenwaMoses/ImageAI/releases/download/1.0/resnet50_coco_best_v2.0.1.h5

準(zhǔn)備工作到此結(jié)束,你可以寫(xiě)自己的第一個(gè)目標(biāo)檢測(cè)代碼了。新建一個(gè)Python文件并命名(如FirstDetection.py),然后將下述代碼寫(xiě)入此文件。接著將RetinaNet模型文件、FirstDetection.py和你想檢測(cè)的圖片放在同一路徑下,并將圖片命名為“image.jpg”。

下面是FirstDetection.py中的10行代碼:

from imageai.Detection import ObjectDetectionimport osexecution_path = os.getcwd()detector = ObjectDetection()detector.setModelTypeAsRetinaNet()detector.setModelPath( os.path.join(execution_path , "resnet50_coco_best_v2.0.1.h5"))detector.loadModel()detections = detector.detectObjectsFromImage(input_image=os.path.join(execution_path , "image.jpg"), output_image_path=os.path.join(execution_path , "imagenew.jpg"))for eachObject in detections:print(eachObject["name"] + " : " + eachObject["percentage_probability"] )

然后,雙擊FirstDetection.py運(yùn)行代碼,并稍等片刻,識(shí)別結(jié)果就會(huì)在控制臺(tái)打印出來(lái)。一旦結(jié)果在控制臺(tái)輸出,在包含F(xiàn)irstDetection.py的文件夾里,你會(huì)發(fā)現(xiàn)一張新保存的圖片,文件名為“imagenew.jpg”。

注:如果運(yùn)行代碼時(shí)出現(xiàn)下列異常:

則需要安裝Numpy+MKL依賴(lài),下載對(duì)應(yīng)的.whl文件并放在Scripts文件夾下,用pip安裝.whl文件即可。

下載地址:

https://lfd.uci.edu/~gohlke/pythonlibs/#numpy

檢測(cè)結(jié)果

來(lái)看看下面這2張示例圖片以及經(jīng)過(guò)檢測(cè)后保存的新圖片。

檢測(cè)前:

檢測(cè)后:

檢測(cè)結(jié)果:

person : 55.8402955532074

person : 53.21805477142334

person : 69.25139427185059

person : 76.41745209693909

bicycle : 80.30363917350769

person : 83.58567953109741

person : 89.06581997871399

truck : 63.10953497886658

person : 69.82483863830566

person : 77.11606621742249

bus : 98.00949096679688

truck : 84.02870297431946

car : 71.98476791381836

檢測(cè)結(jié)果:

person : 71.10445499420166

person : 59.28672552108765

person : 59.61582064628601

person : 75.86382627487183

motorcycle : 60.1050078868866

bus : 99.39600229263306

car : 74.05484318733215

person : 67.31776595115662

person : 63.53200078010559

person : 78.2265305519104

person : 62.880998849868774

person : 72.93365597724915

person : 60.01397967338562

person : 81.05944991111755

motorcycle : 50.591760873794556

motorcycle : 58.719027042388916

person : 71.69321775436401

bicycle : 91.86570048332214

motorcycle : 85.38855314254761

文摘菌測(cè)試了另外幾張圖片,結(jié)果如下:

檢測(cè)前:

檢測(cè)后:

檢測(cè)結(jié)果:

car : 59.04694199562073

car : 50.62631368637085

car : 71.59191966056824

car : 52.60368585586548

person : 76.51243805885315

car : 56.73831105232239

car : 50.02853870391846

car : 94.18612122535706

car : 70.23521065711975

car : 75.06842017173767

car : 87.21032738685608

car : 89.46954607963562

person : 73.89532923698425

bicycle : 90.31689763069153

bus : 65.3587281703949

竟然可以檢測(cè)出牛……

檢測(cè)結(jié)果:

person : 55.15214800834656

person : 62.79672980308533

person : 69.01599168777466

person : 67.26776957511902

person : 75.51649808883667

person : 52.9820442199707

person : 67.23594665527344

person : 69.77047920227051

person : 83.80664587020874

person : 61.785924434661865

person : 82.354336977005

person : 93.08169484138489

cow : 84.69656705856323

檢測(cè)結(jié)果:

person : 65.07909297943115

person : 65.68368077278137

person : 68.6377465724945

person : 83.80006551742554

person : 85.69389581680298

person : 55.40691018104553

person : 56.62997364997864

person : 58.07020664215088

person : 70.90385556221008

person : 95.06895542144775

代碼解釋

下面我們來(lái)解釋一下這10行代碼的含義。

from imageai.Detection import ObjectDetectionimport osexecution_path = os.getcwd()

上面3行代碼中,第一行導(dǎo)入ImageAI的目標(biāo)檢測(cè)類(lèi),第二行導(dǎo)入Python的os類(lèi),第三行定義一個(gè)變量,用來(lái)保存Python文件、RetianNet模型文件和圖片所在文件夾的路徑。

detector = ObjectDetection()detector.setModelTypeAsRetinaNet()detector.setModelPath( os.path.join(execution_path , "resnet50_coco_best_v2.0.1.h5"))detector.loadModel()detections = detector.detectObjectsFromImage(input_image=os.path.join(execution_path , "image.jpg"), output_image_path=os.path.join(execution_path , "imagenew.jpg"))

上面5行代碼中,第一行定義目標(biāo)檢測(cè)類(lèi),第二行將模型類(lèi)型設(shè)置為RetinaNet,第三行將模型的路徑設(shè)為RetinaNet模型文件所在路徑,第四行將模型載入目標(biāo)檢測(cè)類(lèi),然后第五行調(diào)用檢測(cè)函數(shù),并解析輸入圖片和輸出圖片的路徑。

for eachObject in detections:print(eachObject["name"] + " : " + eachObject["percentage_probability"] )

上面2行代碼中,第一行迭代所有detector.detectObjectsFromImage函數(shù)返回的結(jié)果,然后,第二行打印出模型檢測(cè)出的圖片中每個(gè)目標(biāo)的類(lèi)型和概率。

ImageAI還支持配置目標(biāo)檢測(cè)過(guò)程中的其他功能。例如,將檢測(cè)到的每個(gè)目標(biāo)的圖片單獨(dú)提取出來(lái)。通過(guò)簡(jiǎn)單地把extract_detected_objects=True寫(xiě)入detectObjectsFromImage函數(shù),目標(biāo)檢測(cè)類(lèi)就會(huì)為圖片對(duì)象集新建一個(gè)文件夾,然后提取出每個(gè)圖片,將它們存入這個(gè)文件夾,并返回一個(gè)數(shù)組用來(lái)保存每個(gè)圖片的路徑,如下所示:

detections, extracted_images = detector.detectObjectsFromImage(input_image=os.path.join(execution_path , "image.jpg"), output_image_path=os.path.join(execution_path , "imagenew.jpg"), extract_detected_objects=True)

我們用第一個(gè)示例圖片提取出來(lái)的檢測(cè)結(jié)果如圖所示:

參數(shù)配置

為了滿足目標(biāo)檢測(cè)的生產(chǎn)需求,ImageAI提供了一些可配置的參數(shù),包括:

Adjusting Minimum Probability(可調(diào)整最小概率閾值)

默認(rèn)閾值為50%,如果檢測(cè)結(jié)果的概率值低于50%,則不顯示檢測(cè)結(jié)果。你可以根據(jù)具體需求對(duì)該閾值進(jìn)行修改。

Custom Objects Detection(自定義目標(biāo)檢測(cè))

使用提供的CustomObject類(lèi),你可以讓檢測(cè)結(jié)果只顯示特定類(lèi)型的目標(biāo)。

Detection Speeds(檢測(cè)速度)

可以將檢測(cè)速度設(shè)置為“fast”、“ faster”和“fastest”,以減少檢測(cè)圖片所需的時(shí)間。

Input Types(輸入類(lèi)型)

你可以解析并修改圖像的文件路徑,其中,Numpy數(shù)組,或是圖片文件流都可以作為輸入類(lèi)型。

Output Types(輸出類(lèi)型)

你可以修改detectObjectsFromImage 函數(shù)的返回結(jié)果,例如返回圖片文件或Numpy數(shù)組。

詳細(xì)的說(shuō)明文檔在GitHub上,GitHub鏈接:

https://github/OlafenwaMoses/ImageAI

關(guān)注大數(shù)據(jù)文摘微信公眾號(hào),在后臺(tái)回復(fù)“檢測(cè)”可獲取代碼和模型文件~

動(dòng)手試試吧,歡迎在留言區(qū)分享~

img

在線咨詢(xún)

建站在線咨詢(xún)

img

微信咨詢(xún)

掃一掃添加
動(dòng)力姐姐微信

img
img

TOP